分类目录归档:开源

开源-集合人的智慧,才能创造出更大的智慧

服务器上部署https,免费又好用的https证书

随着苹果发布声明接口https化,再加上微信小程序的接口必须使用https,可是服务器上部署https就需要一笔小小的费用,在天朝掏钱的事是没人干的,都在找寻免费的服务,虽然挺折腾,但是难不住天朝的程序员。特别是为了测试微信小程序,实在是没必要购买ssl证书,只好寻求免费的服务。 StartSSL(官网:https://www.startssl.com/),提供免费的ssl证书申请,16年的时候按照网上的教程申请过一个免费的证书,用着还不错,17年的时候想为相同域名下的另一个二级域名申请证书的时候,提示系统正在升级,跳转到另一个主站,申请之后一直是Pending Issued(待签发)状态,也没有原因提醒,一直没搞懂神马情况,只好另寻办法。 Let’s Encrypt,免费的,开放的证书签发服务,之前也看到过,虽然只有90天的有效期,但是如果要安装 Let’s Encrypt 凭证,必须要熟悉 Unix 指令,才能够在远端主机下指令来取得凭证(不是很难,却需要一些时间)。自从发现了有开发者推出一款名为 SSL For Free 线上工具,让你从网站上取得免费 SSL 凭证,当然这是连接 Let’s Encrypt 的凭证签发功能,不过无须自己到主机输入安装指令,即可透过网页介面来取得凭证的相关档案(包括私密金钥、CA bundle 和凭证 crt 档),再从控制台 SSL 功能将凭证安装进去就能使用。 网站名称:SSL For Free 网站链接:https://www.sslforfree.com/ 1,进入网站之后,直接在上方填入你要申请 Let’s Encrypt 凭证的网域名称,可以用空白来分隔不同的网址,例如「subdomain.domain.com domain.com other.com」,填入后点选右边的「Create Free SSL Certificate」继续。 2,为了确定这个网域名称使你所有,会有三种验证方式,如果你的网站本身开启 FTP … 继续阅读

发表在 开源, 服务器 | 标签为 , | 评论关闭

Dapper ORM 用法—Net下无敌的ORM

假如你喜欢原生的Sql语句,又喜欢ORM的简单,那你一定会喜欢上Dapper这款ROM.点击下载 Dapper的优势: 1,Dapper是一个轻型的ORM类。代码就一个SqlMapper.cs文件,编译后就40K的一个很小的Dll. 2,Dapper很快。Dapper的速度接近与IDataReader,取列表的数据超过了DataTable。 3,Dapper支持什么数据库。Dapper支持Mysql,SqlLite,Mssql2000,Mssql2005,Oracle等一系列的数据库,当然如果你知道原理也可以让它支持Mongo db 4,Dapper的r支持多表并联的对象。支持一对多 多对多的关系。并且没侵入性,想用就用,不想用就不用。无XML无属性。代码以前怎么写现在还怎么写。 5,Dapper原理通过Emit反射IDataReader的序列队列,来快速的得到和产生对象。性能实在高高高。 6,Dapper支持net2.0,3.0,3.5,4.0。【如果想在Net2.0下使用,可以去网上找一下Net2.0下如何配置运行Net3.5即可。】 7,Dapper语法十分简单。并且无须迁就数据库的设计。 下面介绍Dapper如何使用,来进行高效开发,以下操作是编译后在Net3.5下操作的例子,Net4.0下大部分函数有默认值,参数很简单。 //数据库里的表: CREATE TABLE ColumnCat ( Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, NAME NVARCHAR(150) NULL, ModifiedOn SMALLDATETIME NULL DEFAULT(GETDATE()), Parentid INT ) CREATE TABLE Column ( Id INT … 继续阅读

发表在 开源 | 评论关闭

依赖注入容器Autofac的详解

Autofac和其他容器的不同之处是它和C#语言的结合非常紧密,在使用过程中对你的应用的侵入性几乎为零,更容易与第三方的组件集成,并且开源,Autofac的主要特性如下: 1,灵活的组件实例化:Autofac支持自动装配,给定的组件类型Autofac自动选择使用构造函数注入或者属性注入,Autofac还可以基于lambda表达式创建实例,这使得容器非常灵活,很容易和其他的组件集成。 2,资源管理的可视性:基于依赖注入容器构建的应用程序的动态性,意味着什么时候应该处理那些资源有点困难。Autofac通过容器来跟踪组件的资源管理。对于不需要清理的对象,例如Console.Out,我们调用ExternallyOwned()方法告诉容器不用清理。细粒度的组件生命周期管理:应用程序中通常可以存在一个应用程序范围的容器实例,在应用程序中还存在大量的一个请求的范围的对象,例如一个HTTP请求,一个IIS工作者线程或者用户的会话结束时结束。通过嵌套的容器实例和对象的作用域使得资源的可视化。 3,Autofac的设计上非常务实,这方面更多是为我们这些容器的使用者考虑: ●组件侵入性为零:组件不需要去引用Autofac。 ●灵活的模块化系统:通过模块化组织你的程序,应用程序不用纠缠于复杂的XML配置系统或者是配置参数。 ●自动装配:可以是用lambda表达式注册你的组件,autofac会根据需要选择构造函数或者属性注入 ●XML配置文件的支持:XML配置文件过度使用时很丑陋,但是在发布的时候通常非常有用 Autofac的简单使用,并加入了Repository模式. 定义两个简单实体类: public class Persion { public string Name { get; set; } public int Age { get; set; } } public class Custom { public string CustomName { get; set; } … 继续阅读

发表在 开源 | 评论关闭

如何选择开源软件(CMS)

    对于使用者来说,并不需要关心闭源还是开源,只要用得顺手就是好系统。如果你是这一类朋友,完全可以点击右上角的关闭按钮;如果你是准备踏上开源软件(CMS)之路认真探索,那还是可以花几分钟看完,毕竟大家都处于摸索时间,抱有一颗求知的心态也未尝不可。      在探讨这个话题之前,我们先来了解开源的定义。通常,大家理解的开源就是软件源代码是公开,可以被查看的。不过在百度百科里,这一定义描述复杂得多,但这些来自国外的概念,不论从传播度还是接受程度,显然都不适合中国国情。为方便文章描述,我们在这里姑且就将开源简单理解为开放源代码。     通常像CMS之类的建站软件,大众群体对开源与闭源有两大误解: 一、闭源软件比开源软件安全      安全性是软件一个非常重要的评价因素,从理论上,开放源代码的软件,漏洞被黑客一览无余,所以闭源才安全。大家最熟悉的Windows就是闭源软件,近几年受到的攻击应该数不过来了吧。因此,一款软件是否安全绝不是因为闭源还是开源,程序严密性、更新速度才是决定因素。如果把某些知名的闭源CMS系统解密一样能找到许多漏洞,何况解密web程序对黑客来说是轻而易举的事,他们想要攻击还困难吗? 二、开源等于免费      恐怕这是现在对开源软件最大的误解,认为开源就是免费。这可能是国内许多建站软件以开源免费为口号,直接提供下载,再加上国人都不愿在软件上消费形成比较特别的现象。开源软件也是有知识版权的,开源并不是说完全的免费。其实这些开源软件都存在一个license(授权协议),在某些条件(少数情况)是可以免费使用的,在其他情况下则需要购买了。当然,如果是个人非要免费使用,软件商也不会来找你麻烦,但如果是企业就不能保证了。     通过对上面两个错误认识的重新梳理,好像闭源和开源CMS系统没有区别了。不过既然存在开源和闭源两种形式,存在即是合理。在国内,开源和闭源的最大区别就是前者源码代码是开放的,可以被修改,后者是加密的,若想改动,只能依靠制作的软件商。那么,CMS系统代码开源的价值体现在哪儿?      大概有以下三点: 一、容易个性化      代码开源的CMS系统,网站管理人员能够根据需要,可以自行二次开发出各种功能和界面。闭源系统则明显会很吃力。 二、成本可控制      CMS网站形态必定是丰富多彩的,一旦发展壮大就必定有自己的技术团队,以便随时对网站功能和样式进行修改,这对于开源CMS系统而言是非常容易的。如果使用闭源的CMS系统,所有的二次开发都需要通过软件商,要知道,任何服务只要打上“官方”必定价格不菲,可能找软件商只增加一个支付接口,十来天的开发时间费用就得上万,对比一个程序员十天的工资,哪个费用高一目了然。 三、节省网站建设时间      在网站建设初期,它们在时间上基本上一样。但当发展到有自己的技术团队时,如果需要进行网站整体改版,如果一开始使用的开源CMS系统,工程师只需在系统上进行开发,就能实现更多功能。如果是闭源系统,只能推倒重头开发。一套正规的系统可能需要花费软件商一年以上的开发时间,两者开发时间的差距可想而知。      选择开源软件,主要是看开源软件使用的协议,开源软件社区的活跃程度,开源软件更新速度都是考虑的重点。如何为代码选择开源许可证,这是一个重要而头疼的问题。     世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种—-GPL、BSD、MIT、Mozilla、Apache和LGPL—-之中做选择,也很复杂。    乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。这是我见过的最简单的讲解,只用两分钟,你就能搞清楚这六种许可证之间的最大区别,请看下面的大图:    

发表在 开源 | 一条评论