摘要: 一、实体类是现实 实体在计算机中的表示。 它贯穿于整个架构, 负担着在各层次及模块间传递数 据的职责。一般来说,实体类可以分为“贫血实体类”和“充血实体类”,前者仅仅保存实体的 属性,而后者还包含一些体间的关系与逻辑。我们在这个 Demo 中用的实体类将是“贫血 体类”。 大多情况下, 实体类和数据库中的表 (这里指体表, 不包括表示多对多对应的关系表) 是一一对应的... 阅读全文
posted @ 2013-10-14 20:48 ZWmaqing 阅读(694) 评论(0) 推荐(0)
摘要: Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。4月份以来,Terrylee写了一系列的Castle的文章,这里做一下总结,后续还有Facility系列等,本部分内容会不断的更新。 第一部分:ActiveRecord学习实践系列 1.Castl... 阅读全文
posted @ 2013-10-14 19:53 ZWmaqing 阅读(173) 评论(0) 推荐(0)
摘要: 在.NET平台下,关于数据持久层框架非常多,本文主要对如下几种做简要的介绍并推荐一些学习的资源: 1.NHibernate 2.NBear 3.Castle ActiveRecord 4.iBATIS.NET 5.DAAB 附加介绍:DLinq 一.NHibernate 提起NHibernate,相信大家都不陌生,NHibernate来源于非常优秀的基于Java的Hibernate关系型持久化工具,它从数据库底层来持久化.Net对象到关系型数据库,NHibernate为我们完成这一切,而不用自己写SQL语句去操作数据库对象,所写的代码仅仅和对象关联,N... 阅读全文
posted @ 2013-10-14 19:52 ZWmaqing 阅读(251) 评论(1) 推荐(0)
摘要: 本次介绍一种调用dll函数的通用简洁的方法,消除了原来调用方式的重复与繁琐,使得我们调用dll函数的方式更加方便简洁。用过dll的人会发现c++中调用dll中的函数有点繁琐,调用过程是这样的:在加载dll后还要定义一个对应的函数指针类型,再调用GetProcAddress获取函数地址,再转成函数指针,最后调用该函数。下面是调用dll中Max和Get函数的例子。void TestDll(){typedef int(*pMax)(int a,int b);typedef int(*pGet)(int a);HINSTANCE hMode =LoadLibrary("MyDll.dll&q 阅读全文
posted @ 2013-10-14 19:04 ZWmaqing 阅读(398) 评论(0) 推荐(0)
摘要: 一。使用配置工具1.单独使用配置工具。 开始->所有应用程序->Microsoft patterns & practices->Enterprise Library 5.0->Enterprise Library Configuration 选择相应的版本,弹出配置窗口。可以新建或打开编辑已有的配置文件。 在blocks中可以选择相应的模块配置,wizards可配置数据库异常日志记录,配置完成后保存即可。 2.在vs中,点击config文件,右键可用Enterprise Library V5 Configuration Editor编辑,也可选择打开方式将其设为 阅读全文
posted @ 2013-10-14 19:04 ZWmaqing 阅读(208) 评论(0) 推荐(0)
摘要: 在前一篇文章:[EntLib]微软企业库5.0 学习之路——第二步、使用VS2010+Data Access模块建立多数据库项目中我们搭建好了项目的整体多数据库环境,实现了项目的多数据库访问,而整个项目中最主要的异常处理却没有进行部署,今天我们就使用企业库中的Exception Handling+Logging模块为项目加上异常处理以及异常日志记录。 (注:关于Exception Hand... 阅读全文
posted @ 2013-10-14 18:39 ZWmaqing 阅读(506) 评论(0) 推荐(0)
摘要: ConnectionString 类似于 OLE DB 连接字符串,但并不相同。与 OLE DB 或 ADO不同,如果“Persist Security Info ”值设置为false(默认值),则返回的连接字符串与用户设置的ConnectionString 相同但去除了安全信息。除非将“Persist Security Info ”设置为true,否则,SQL Server .NET Framework数据提供程序将不会保持,也不会返回连接字符串中的密码。可以使用 ConnectionString 属性连接到数据库。下面的示例阐释了一个典型的连接字符串。"Persist Secur 阅读全文
posted @ 2013-10-14 17:13 ZWmaqing 阅读(1069) 评论(0) 推荐(0)
摘要: 看了SHY520写的关于Data Access Application Block的文章,写得不错,忽略了一点就是如何去加密数据库连接字符串,这儿我简单的介绍一下。我们知道,在Enterprise Library1.1中加密连接字符串,需要依赖于Cryptography Application Block。.NET Framework2.0中已经内置了这项功能,通过Configuration命名空间下的一些类来完成,支持两种类型的加密:DPAPIProtectedConfigurationProvider:使用Windows Data Protection API (DPAPI)RsaProt 阅读全文
posted @ 2013-10-14 16:47 ZWmaqing 阅读(648) 评论(0) 推荐(0)
摘要: 综述什么是数据库连接字符串?连接字符串的格式是一个以分号为界,划分键/值参数对的列表。连接字符串包含一个由一些属性名/值对组成的集合。每一个属性/值对都由分号隔开。PropertyName1="Value1";PropertyName2="Value2";PropertyName3="Value3";.....同样,连接字符串必须包含SQL Server实例名称: Data Source=ServerName;总的来说,数据库的连接字符串分为两种:Windows身份验证和SQL Server身份验证。每种方法都有各自的优缺点。但是遵循 阅读全文
posted @ 2013-10-14 16:44 ZWmaqing 阅读(1386) 评论(0) 推荐(0)
摘要: 一般情况下,大多数人习惯于将数据库连接写在web.config上里面,理论上讲,将明文存放在该文件里面是安全的,因为web.config文件是不允许被客户端下载,但一旦该文件泄漏出去,哪怕是很短的时间,数据库都将承受巨大的危害,可能花上N年才充实起来的信息在很短时间里毁于一旦。这是任何程序绝对不应该出现的问题。有人用简单的对称加密来将数据库连接字符串的密文存放,但密钥一旦丢失,加密与否,形同虚设,那么如何保证连接字符串的安全性呢。下面这个类就完成这个功能,该类调用系统API,在不同的系统中对相同的连接串会生成不同的密文,即使非法获得该串,不能获得在服务器上的管理员权限,仍然没有能力知道数据库的 阅读全文
posted @ 2013-10-14 16:28 ZWmaqing 阅读(315) 评论(0) 推荐(0)
摘要: 本文将详细介绍如何使用Connection对象连接数据库。对于不同的.NET数据提供者,ADO.NET采用不同的Connection对象连接数据库。这些Connection对象为我们屏蔽了具体的实现细节,并提供了一种统一的实现方法。 Connection类有四种:SqlConnection,OleDbConnection,OdbcConnection和OracleConnection。 SqlConnection类的对象连接SQL Server数据库;OracleConnection 类的对象连接Oracle数据库; OleDbConnection类的对象连接支持OLE DB的数据库,如Acc 阅读全文
posted @ 2013-10-14 16:15 ZWmaqing 阅读(1062) 评论(0) 推荐(0)
摘要: ASP.NET web.config中,数据库连接字符串的加密与解密ASP.NET web.config中,数据库连接字符串的加密与解密。 开始--->运行,输入cmd,接着输入以下内容 加密: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "你的Web项目路径" 解密: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf " 阅读全文
posted @ 2013-10-14 16:08 ZWmaqing 阅读(1092) 评论(0) 推荐(0)
摘要: 先来看一下默认的连接SQL Server数据库配置 SqlConnectionStringBuilder实例化时需要使用connectionString。如:SqlConnectionStringBuild builder = new SqlConnectionStringBuild(connectionString); 一、Data Source Sql... 阅读全文
posted @ 2013-10-14 16:02 ZWmaqing 阅读(8265) 评论(0) 推荐(0)
摘要: 在sqlite编程中多线程同时写时会出现异常,我写了个类来解决这个问题。思路很简单,就是在开始写操作时,记下写操作的托管线程id,表示目前有线程正在做写操作;其他线程来写时,需要先检测是否有进程正在做写操作,如果有就需要等待,等待到某一个配置的超时时间时,会抛出异常终止等待;如果没有则直接放行,此线程可以获得写锁。最后写操作执行完毕时需要释放锁。下面是具体的代码:SQLiteWriteLock /// /// 用于在多线程访问sqlite时防止同步写导致锁文件////// 使用方法:/// using (SQLiteWriteLock sqliteLock = new SQLiteWriteL 阅读全文
posted @ 2013-10-14 15:58 ZWmaqing 阅读(812) 评论(0) 推荐(0)
摘要: 晒晒数据访问层DAL,看看你的项目数据访问层使用的是什么形式,数据访问性能比较采用什么样的数据访问形式是软件编码很重要的一个环节,良好的数据访问形式不仅能够提搞代码的执行效率,协作能力,更重要的是对未来程序维护,功能扩展起到至关重要的作用。当然良好的设计模式可以为我们提供很多的选择,但面对实际问题,公司规模小考虑成本,资金投入少,软件逻辑不算复杂,功能较少,部分客户需求只需要单个功能模块,类似小型管理系统,门户网站,crm等,这也为众多IT人事提供了兼职的好机会。借鉴类似程序,cpy下部分代码,小修小改下数据库字段新的软件就大功告成。这种现状在弊端同时也很多程序没有通过完整的测试,部分存在漏洞 阅读全文
posted @ 2013-10-14 12:19 ZWmaqing 阅读(650) 评论(0) 推荐(0)
摘要: IOC 阅读全文
posted @ 2013-10-14 09:54 ZWmaqing 阅读(206) 评论(0) 推荐(0)
摘要: 1.依赖 依赖就是有联系,有地方使用到它就是有依赖它,一个系统不可能完全避免依赖。如果你的一个类或者模块在项目中没有用到它,恭喜你,可以从项目中剔除它或者排除它了,因为没有一个地方会依赖它。下面看一个简单的示例: /// /// 用户播放媒体文件 /// public class OperationMain { public void... 阅读全文
posted @ 2013-10-14 09:47 ZWmaqing 阅读(285) 评论(0) 推荐(0)
摘要: 1.引言 高内聚,低耦合成为一个OO架构设计的一个参考标准。高内聚是一个模块或者一个类中成员跟这个模块或者类的关系尽量高,低耦合是不同模块或者不同类之间关系尽量简单。 拿咱国家举例来说,假如你是中国人。 高内聚:就是说你跟中国亲,关系好,国家会保护你。 低内聚:就是说你跟中国的关系不好,那还怎么混,改天就要批斗你,你就是个问题源。 低耦合:就是说你跟日本的关系非常正常,非常简单,这样的话,就不会... 阅读全文
posted @ 2013-10-14 09:46 ZWmaqing 阅读(345) 评论(0) 推荐(0)