使用动软.net代码自动生成工具的步骤

使用动软.net代码生成工具(V2.4.1)在建立好数据库之后快速的生程自己的工程代码.

首先建立自己的数据库,用动软连接连接数据库.根据需要选择数据库并自动生成代码.

动软自动生成的代码还不能立刻使用需要修改一些地方:

1、 修改webconfig中的<add key="DAL" value="Maticsoft.SQLServerDAL"/>节为自己的命名空间。

2、 修改webconfig<add key="ConnectionString"value="server=127.0.0.1;database=codematic;uid=sa;pwd="/>database为自己数据库的名字,并添加pwd密码。

3、 Web这个程序集的“引用”中添加对SQLServerDAL的引用。(如果这里不引用将会导致DALFactory程序集中的DataAccess类的CreateObject方法不能使用反射产生实例从而引发“未将对象引用设置到对象的实例。”的错误

4、 web程序集设为启动项目。

5、 根据需要把Web程序集中把自动生成的Web页添加进自己的工程。

 

 

关于反射:

    objType=Assembly.Load(AssemblyPath).CreateInstance(classNamespace);其中:AssemblyPath指命名空间.程序集名称。classNamespace指命名空间.程序集名称.类名称

   

关于使用动软.net代码生成工具:

为了使工具更适合于自己的习惯,可以在使用前对它进行简单的设置:安装好动软.net代码生成工具后在“选项设置”中修改“代码生成设置”的顶级命名空间,然后修改“默认生成项目架构类型”为“工厂模式三层”。“类命名规则”表名规则修改为“首字母大写ModelBLLDAL类命名规则分别加上:“Mdl”、“Mgr”、“DAO”。

 

 

 

关于使用加密方法提高安全性:

这个工具中提供了加密/解密功能,主要是对连接的字符串进行加密和解密.加密/解密的方法在DBUtility程序集的DESEncrypt类中定义,预定义的加密密钥是 litianping 对其进行修改可设置自己的密钥.

获得加密字符串并进行加密的方法:

1、在配置文件中设置正确的连接字符串:<add key="ConnectionString" value="server=127.0.0.1;database=codematic;uid=sa;pwd= "/>

2、在Web程序集中建立一个页面并添加对DBUtility程序集的引用(右键添加引用).并在页面代码中添加: usingMaticsoft.DBUtility;

3、添加如下代码:

        protected void Page_Load(object sender, EventArgs e)

        {

            string _connectionString = ConfigurationManager.AppSettings["ConnectionString"];

            string ConStringEncrypt = ConfigurationManager.AppSettings["ConStringEncrypt"];

            Response.Write("原文:" + _connectionString + "<br/>");

 

            string s1 = Maticsoft.DBUtility.DESEncrypt.Decrypt(_connectionString);

            Response.Write("对原文解密值:" + s1 + "<br/>");

 

            string s2 = Maticsoft.DBUtility.DESEncrypt.Encrypt(_connectionString);

            Response.Write("对原文加密值:" + s2 + "<br/>");

 

        }

4、在浏览器中查看此页面即可获得加密的字符串。

5、复制所需要的加密字符串将value中的值改为复制的加密字符串,如:将<add key="ConnectionString"value=" server=127.0.0.1;database=codematic;uid=sa;pwd= "/>改为:<add key="ConnectionString" value="8618B53C32BF8E0B6CD3BDFF59B9F24BE1C6D586A5915C8B6DC69A09ABB2DF60A4026BDE8E76B6FDE2BFCEA3FA8E06CB "/>

6、在webcongig中设置<add key="ConStringEncrypt" value="false"/>, false 改为 true.(此为关键步骤)

 

关于使用“工厂模式结构”自动生成代码的架构

这里所说的三层都是针对动软.net代码生成工具自动生成的代码的讲解,并不代表规范。

其实就是在简单三层的基础上对DAL层增加了一个接口层。简单的三层分别为:ModelBLLDAL

Model层是一些数据实体,主要是每个数据表生成一个类,表中的字段对应类中的属性。

DAL层处理数据库的增删改查。

BLL层把页面层和DAL层关联起来,处理业务逻辑,这一层是我们应该根据实际情况进行修改的部分。

还有一些辅助的程序集:

DALFactory是生成具体类的程序集,使用的是工厂方法模式。DataAccess类是这个程序集的主要类。DataCache类是DataAccess类的辅助类,可以使用Cache提高性能。

 

DBUtility程序集提供了访问数据库的基础方法,CommandInfo类是此程序集中其余类的辅助类。SQLHelperOracleHelper是微软官方的的书写方式。PubConstant也是为其他类提供服务的辅助类,主要用于获取数据库连接字符串。DESEncrypt是加密解密类,也是一个辅助类,此类默认加解密密钥是litianping。其余类DbHelperMySQLDbHelperOleDbDbHelperOraDbHelperSQLDbHelperSQLP有很大的相似性,分别提供了对不同数据库进行访问的方法。

 

IDAL提供了DAL层接口,引入接口就可以避免对具体类的依赖。针对接口编程。

 

SQLServerDAL程序集实现了IDAL接口,是具体访问数据库进行增删改查的类。

OracleDAL程序集实现了IDAL接口,也是具体访问数据库进行增删改查的类。

 

BLL程序集是逻辑业务层,这对IDAL层编程不依赖于具体数据库处理类,通过DALFactory中的反射生成实例的方法生成具体的数据库处理类。

 

如果有需要还可以对BLL层添加接口层IBLL,让Web层针对IBLL层编程,但个人认为应该根据需要分层并不是分层越多越好。

你可能感兴趣的:(DAO,数据结构,编程,.net,Web)