【发布时间】:2011-02-20 10:46:00
【问题描述】:
我必须非常快速地开发一个相当大的 ASP.NET MVC 项目,并且我想就我的 DAL 设计获得一些意见,以确保没有任何事情会再次困扰我,因为 BL 可能会变得相当复杂。一点背景知识:我正在使用 Oracle 后端,所以内置的 LINQ to SQL 已经出来了;我还需要使用生产级库,因此 Oracle EF 提供程序项目已退出;最后,我无法使用任何 GPL 或 LGPL 代码(Apache、MS-PL、BSD 都可以),所以 NHibernate/Castle 项目退出了。我宁愿——如果可能的话——避免花钱,但我更关心实施正确的解决方案。总而言之,有我的要求:
- Oracle 后端
- 快速发展
(L)无 GPL
免费
我对 DataSets 相当满意,但我会受益于使用 POCO 作为 DataSets 和视图之间的中介。谁知道呢,也许在某个时候会出现另一个 DAL 解决方案,我会抽出时间将其关闭(是的,对)。因此,虽然我可以使用 LINQ 将我的 DataSet 转换为 IQueryable,但我希望有一个通用的解决方案,这样我就不必为每个类编写自定义查询。
我现在正在修改反射,但同时我有两个问题:
- 此解决方案是否存在我忽略的问题?
- 您是否推荐其他任何将 DataSet 转换为 POCO 的方法?
提前致谢。
【问题讨论】:
-
NHibernate 不是 GPL,它是 LGPL。很大的区别。 Castle 是 Apache 2。
-
我同意,GPL 和 LGPL 非常不同,但无法用于我的目的。我将 Castle 放在同一个句子中,因为它建立在 NHibernate 之上。
-
这是一个很好的问题,真正触及了软件工程关键部分的核心,即如何准确安排您的 BL 和 DAL 链接。您会发现人们做事的方式不同,而且大多数人都确信他们以“正确”的方式做事。
标签: c# .net asp.net-mvc dataset poco