月归档:九月 2011

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; } … 继续阅读

发表在 开源 | 评论关闭

C#实现插件式架构的方法

    插件式架构,一种全新的、开放性的、高扩展性的架构体系.插件式架构设计近年来非常流行,基于插件的设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布。基于插件设计并不神秘,相反它比起一团泥的设计更简单,更容易理解。下面已C# .Net简要介绍一下插件式架构的方法. 定义插件接口,将其编译成dll namespace PluginInterface { public interface IPlugin { string Show(); } } 编写插件,引用上面的DLL,实现上面定义的接口,也编译为DLL //插件A namespace PluginA { public class PluginA:IPlugin { public string Show() { return “插件A”; } } } //插件B namespace PluginB { public class PluginB : … 继续阅读

发表在 Net | 一条评论

asp在线压缩access数据库的秘密

     access数据库在使用过程中会不断增大,多数情况下是删除旧数据后并不能减小数据库的大小,如何才能在线为access数据库瘦身呢?下面提供了一个解决方法: <% Const Jet_Conn_Partial = “Provider=Microsoft.Jet.OLEDB.4.0; Data source=” Dim strDatabase, strFolder, strFileName ‘################################################# ‘# 修改下面两行 ‘# 定义了数据库文件夹的全路径 ‘# 数据库的名字 strDatabase = “renfb_2009_data.mdb” strFolder = server.mappath(“.”)&”\data\” ‘站点根目录下的Data文件夹 ‘# 修改结束 ‘################################################## Private Sub dbCompact(strDBFileName) Dim SourceConn Dim DestConn Dim oJetEngine Dim … 继续阅读

发表在 asp | 评论关闭