我需要为朋友的网站编写一个论坛应用程序。我想用 C# 3.0 针对 ASP.NET MVC 框架使用 SQL Server 数据库编写它。
所以,我有两个问题:
- 我应该使用 Linq to SQL 还是 Entity Framework 作为数据库抽象?
- 我应该使用 ASP.NET Membership API 还是添加 Users 表并自己实现它?
谢谢。
我需要为朋友的网站编写一个论坛应用程序。我想用 C# 3.0 针对 ASP.NET MVC 框架使用 SQL Server 数据库编写它。
所以,我有两个问题:
谢谢。
1)两者怎么样?只需创建一个抽象,您就可以使用其中任何一个。我的建议是使用存储库模式。
2) 会员供应商有其优势和劣势。对于某些项目,它对于我的需求来说太复杂了。但是,如果您需要在短时间内运行某些东西,那就太好了。
我不会回答第一个问题,因为我是 nhibernate 的粉丝,因为我是第二个问题添加用户表并自己实现成员资格的粉丝我认为你至少不能以正确的方式做到这一点(很多人都试过制作自己的会员API,但他们搞砸了!)
1)完全取决于事情会变得多么复杂。如果您想要一个或多或少以 1:1 方式反映您的表格的快速 DAL,请选择 L2S(如果您想要更成熟和受支持的东西,则选择 SubSonic)。如果您想要更多的 n 层类型的东西,而您的表和域模型完全不同,请选择 OR/M 之类的实体框架(或者 NHibernate,如果您想要在各方面都更好的东西)
2) ASP.net 成员资格极其复杂,而且其中有些部分设计得很差。但是,这取决于您对这些东西有多少经验。如果您足够了解如何采取措施来避免会话固定攻击,那就自己动手吧,因为它可能会比罐装解决方案更好。如果您不知道那是什么,请花时间学习默认的。
考虑一下,SubSonic 3是一个非常强大的数据访问生成工具。据我了解,它基本上将 Linq to Sql 包装在一些非常有用的包装器中,并使 Linq 的使用更加直观。使用 SubSonic 时,您可以立即构建一个非常强大的应用程序。不过有一个小问题,如果您使用共享主机(例如 GoDaddy),您将遇到中等信任问题。在这种情况下,您可以随时退回到 Linq To Sql,而无需对代码库进行很多更改。
至于 Aspnet_Membership。仅就它提供的工具数量而言,我建议使用它。
祝你好运,希望这能帮到你。