加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 为“简单”SaaS启动选择ORM(ASP.NET MVC)

发布时间:2020-12-16 07:21:32 所属栏目:asp.Net 来源:网络整理
导读:我即将开始开发基于网络的应用程序,我可以将其描述为37Signal高层联系管理应用程序的专用版本,针对草坪护理等服务业务.我决定使用ASP.NET MVC来利用我的BizSpark成员资格并利用我已经知道的C#/ ASP.NET / SQL Server. 我正在做一些研究,为项目选择ORM;我不确
我即将开始开发基于网络的应用程序,我可以将其描述为37Signal高层联系管理应用程序的专用版本,针对草坪护理等服务业务.我决定使用ASP.NET MVC来利用我的BizSpark成员资格并利用我已经知道的C#/ ASP.NET / SQL Server.

我正在做一些研究,为项目选择ORM;我不确定我是否应该使用LINQ to SQL之类的轻量级东西,或者使用NHibernate的大枪.在这一点上,我并不认为应用程序过于复杂.我基本上有这些模型:

>帐户
>用户(由ASP.NET提供,但我可能需要扩展它)
>客户
>工作

适用以下业务规则的地方:

>该帐户是主记录(因为它代表订阅者),其他所有内容(用户,客户,作业)都将其挂起
>客户可以拥有多个工作
>有两种类型的客户:“潜在客户”和“客户” – 客户可以从我们提供的表单请求后续处理并自动添加到帐户的客户数据库中,然后员工可以跟进安排工作,“转换”领导
>工作可以是一次性的,也可以是定期的(例如每两周一次,每月一次)

我有一个习惯于尝试overarchitect的坏习惯. LINQ to SQL似乎可以立即满足我的需求,但我担心未来的可扩展性以及使用功能更丰富的ORM(如Entity Framework或NHibernate)的前期成本是否会在查询效率和优化.我正在考虑使用Windows Azure来托管应用程序.

有什么想法吗?

解决方法

您的模型看起来很简单,可以得到Linq2Sql,Entity Framework和NHibernate的支持.

您需要做的最大选择是您希望遵循域驱动设计方法进行软件建模,还是希望将对象作为数据库行使用.如果您希望在将行映射到对象时获得乐趣,那么NHibernate是最佳选择.如果您对业务对象和数据库行Linq2Sql和Entity Framework之间的1:1感到满意就好了.

NHibernate和一定程度上,Entity Framework支持不从基类继承的POCO对象,并且可能不知道它们的持久性要求. Linq2Sql可以,但它的hacky和怪异.

至于扩展,所有这三个ORM工具都会让你走得很远AFAIK NHibernate在分割数据库服务器和处理跨数据库ID方面有更多选择,甚至还有一些Sharding支持正在进行中.

NHibernate也支持大多数提供者,你可以在一小时内从MSSql转到MySql,用Linq2Sql和EF(虽然支持即将到来你不能)

所以TL; DR:

> NHibernate如果你想要更好的POCO支持,更多的缩放功能,以及“有一个映射”行 – >对象映射功能. FluentNHibernate很棒.您有多个提供商支持
>实体框架,如果你想要更好的设计师GUI支持,并愿意等待EF4,vs2010的全功能ORM.
> Linq2Sql如果只需要简单的数据库访问权限.

我已经使用了所有这三个并且我对EF1最不满意,EF4更好但不如NHibernate好.

我正在将VS4与VS 2010一起用于所有未来的“简单CRUD”应用程序和NHibernate,当我需要得到它的时候.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读