- Get Methods - eg. OrderDAO.GetByOrderID(int OrderID)
- Paged Get Methods - eg. OrderDAO.GetAll(int PageNumber,int PageSize)
- Persist Methods - eg. OrderDAO.Persist(OrderDataSet objOrderDataSet)
- Insert, Update, Delete Methods - eg. OrderDAO.DeleteByOrderID(int OrderID)
- Custom Queries - eg. UserDAO.GetByLogin(string Username, string Password)
- Multi-Table DataSet DAOs - eg. CustomerOrdersDAO.cs, Product_ProductCategoryDAO.cs
- Strongly-Typed DataSets, DataTables and DataRows Generated - eg. OrderDataSet.Order.Add(DataTime OrderDate, int CustomerID, string Notes)
- Multi-Tabled DataSets
- Serializable to XML
- Ideal for Inter-Layer Data Transport
- Full support for winform and webform control data binding
- Can be extended to include custom business rules and processes
- Methods can be easily exposed as XML web services
- Can be extended to include custom business rules and processes
- Methods can be easily exposed as XML web services
- Distribute your application across a network
- Generates Get, Insert, Update, and Delete Stored Procedures
- Generates GetByForeginKey, GetByPrimaryKey
- Generates Custom Query Procedures - eg. GetOrderByOrderDateRange, GetUserByUserTypeID
从官方网站上下载的NtierGen,用起来,感觉上一般,而且因为是试用版,不但有日期限制,还被限制为了只能导出三张表。看了看价格为$40,比起Deklarit的几百美元的天价来说,的确算是便宜,可惜它没有集成在VS.NET的开发环境中,而仅仅只是一个代码生成器而已。
虽然可导出的表的数量有限制,但对于熟悉IL的老兄,这不是什么问题。我用Reflector for .NET看了一下里面的代码,发现里面有一个MAX_TABLES变量,所以把MAX_TABLES由3改成了03e8,然后,在数据库中,导出了十张表,测试了一下效果。
生成的过程有点慢,并且我配置不高的机器进入了暂时的无响应状态,不过稍后代码确实生成成功了。在生成代码后,指定的目录内有五个文件夹,分别是01. Common DataSets、02. Business Rules Layer、03. Data Access Layer、04. SQL Stored Procedures、99. Inter-Tier Communication,我打开了Common DataSets看了看,感觉一般,它只是将数据库中的表进行了类型化,然后又看了一下SQL Stored Procedures文件夹里面的sql文件,发现它在自动生成Sql的添加、删除、修改、查询的存储过程上,虽然功能稍显薄弱,但还是可以接受的,其它的还没有仔细测试,所以也不是很清楚,究竟生成的代码的可用性有多少,还等一段时间才能知道了。
不过,说实话,我不太喜欢把所有的数据操作都放到存储过程中实现,尤其是一些简单的操作,因为这样做,我反而会觉得麻烦,尽管大家都说有这样或那样的好处,但我还是觉得在SQL Sever的企业管理器中或查询分析器中写存储过程的代码,界面实在是不够友好,长一点的代码写起来有不少的麻烦,实在是不爽。以前没有Vs2003时,我都是在一些文本编辑软件中写了以后再Copy进去,所以在编写过程中难免会有不少的问题出现,现在问题也没有解决,如果NtierGen生成的代码确实能够可用的话,倒是能帮上不少的忙。
大家可以试试这个软件,对于快速开发可能会起到一定的帮助。