我期待开发一个新闻频道网站。
所以,很显然它会每天收到很多次,将每天更新一次。很多..
我在ASP.Net和SQL Server的经验..
这些是我正在考虑与之合作的技术。 请帮我选考虑负荷将采取的金额正确的方法..
技术??
1)ASP.Net Web表单
2)ASP.Net MVC 1.0
和数据访问?
1)LINQ到SQL(令人印象深刻,但传言说,微软正在放弃它)
2)LINQ到实体 (性能问题)
3)Datreader /数据集
4) 亚音速 (不知道)
5)NHibernate的 (不知道)
请解释一下你的观点,同时留下您的意见..
谢谢
Chitresh
Answer 1:
我选择的工具,现在是ASP.Net MVC 1.0和NHibernate。
这里是我的推理:
ASP.Net MVC
我更喜欢MVC过的WebForms有以下原因。
- ASP.Net MVC清楚我的观点我分开逻辑控制器
- 在ASP.Net MVC我没有通过,我们在Web窗体页面生命周期工作
- 我觉得它更容易编写使用好的Javascript库如jQuery在ASP.Net MVC AJAX应用程序。 ASP.Net MVC也使得它超级容易为JSON返回结果没有太多的工作
- 更直白地写一个ASP.Net MVC应用程序测试。 作为一名顾问,我有一次和具有良好的测试使得它更容易地从一个项目到下一个多任务的几个项目之间。
NHibernate的
虽然是与NHibernate一个体面的学习曲线,它使你坚持的实体容易得多。 我喜欢与NHibernate我可以: - 自动延迟加载我的收藏 - 级联删除,并从根对象更新到其子对象 - 一组功能强大的查询对象包括LINQ,标准API和HQL(即使你真的想直接SQL到) - 一些缓存选项
如果你要使用NHibernate的,我肯定会用FluentNhibernate 。 这使得映射更容易。
Answer 2:
如果我是你,我会使用LINQ to SQL中,而不必担心微软的“放弃”了。 首先,微软并没有放弃的LINQ to SQL他们创造允许其他厂商(甲骨文,DB2等),以LINQ的目的,它的另一个路径到其中,因此来讲话。 我已经通过LINQ团队的主要成员阅读几个职位,他们将继续进行修改,以LINQ to SQL和从他们的新工具的迁移路径将是容易的。 其次,LINQ to SQL的是SOOOO容易与数据上下文中使用。 如果你知道SQL那么学习LINQ是不是太困难。
至于使用哪种技术,1)ASP.Net Web表单或2)MVC:我的回答是,他们不是相互排斥的。 Web表单可以建立在MVC模型,或者不上。 这取决于你是否或不使用MVC。 如果你希望你的网站可以完成快速和肮脏的,我可能会跳过MVC。 如果你想让你的网站在未来很容易扩展和/或使图形设计人员修改设计不搞乱代码,然后我会实现MVC。
Answer 3:
WebForms和MVC之间的选择真的归结到你是否喜欢的模型 - 视图 - 控制器的方法。 就个人而言,我更喜欢的WebForms,但我学习MVC(Rails内部)只是为了拓宽我的经验,并获得更好的测试的好处。 无论是会为你的情况做既能够扩展到大型系统。
对于数据,我会鼓励你去思考任何形式选择的LINQ之前漫长而艰难的。 请看看这些以前的讨论:
不LinqToSql错过了这一点?
是LinqToSql足够强大? 不流利的接口容易建立?
由于文档是不存在我不会推荐亚音速。 你会拉你的头发试图弄清楚它是如何工作的。 这是悲伤,因为,在很多方面,它比Linq的一个更好的模型。
最后,我总是选择去与周围ADO.NET自定义DAL包装。 首先,我知道我得到。 其次,你真的要知道在任何情况下SQL何必让生活更加困难努力学习第二数据访问语言? 到LINQ和亚音速的缺点是明显的,其优点有主要的理论(再次,请参阅该链接以获取更多信息的讨论)。
Answer 4:
微软并没有“放弃”的LINQ到SQL本身,只是不添加主要功能,它(代替添加功能的EF代替)。
我的偏见是使用ASP.NET MVC与流利,NHibernate的。 我想利用这些工具提供了灵活性和易用性的一个很好的平衡。 但是,如果你有更多的WebForms经验,然后用它来代替会降低你的加速时间。 我也倾向于避免使用,除非绝对必要的DataSet,如果你打算使用直ADO.NET。
Answer 5:
您有ASP.NET的经验,我说留在这一点,但如果你想学习一些新的是ASP.NET MVC好办法。
数据访问取决于你愿意,你需要什么,什么。
LINQ2SQL和DataReader /数据集使用到数据库的直接访问,它是对简单的应用程序。
LINQ2Entities亚音速和NHibernate的ORM框架,它的良好的应用程序,你需要的可扩展性的未来。
而且它很好地利用一些存储库模式来访问数据。
Answer 6:
性能方面,它们都能够处理数以千计的并发用户。
在任何高流量的网站最大的单一性能的考虑是缓存。 的WebForms / MVC对输出缓存实际呈现的HTML(最有效的),你的数据对象的API缓存不错的选择。
我觉得你最好的选择将是使用您最舒适的开发数据访问框架 - 你最熟悉与设计模式/工具集。 之后:缓存,缓存,缓存。
Answer 7:
既然你已经熟悉ASP.NET和SQL,为什么不看看ASP.NET MVC和亚音速。 我认为,新的.NET MVC促进更清洁,更有条理的代码和亚音速ORM似乎让你和用于获取涉及您的代码的数据库非常快的运行。 这里有一个链接,了解更多关于亚音速http://subsonicproject.com/docs/The_5_Minute_Demo 。 有我的想法! :)
顺便说一句,我个人使用ASP.NET MVC和NHibernate。
Answer 8:
我只是开发一些东西,是你和现在相同的十字路口。 如果你是一个经验丰富的开发人员,我建议你用Asp.net MVC去。 总的来说,我已经受够了它一个很好的经验。
考虑到你的DAL这是一个有点更靠谱。
我们没有选择使用LINQ去实体(因为L2SQL被放弃),但我们最后使用生成的代码进行EDMX文件的自定义T4模板。 它的伟大工程,我们有所有可能的定制需要。 但如果我现在选择,我可能宁愿去与任何亚音速3(因为LINQ到DB支持和T4发电机)或功能NHibernate。 我知道亚音速是不是可能将提供正是我需要的东西,但我可以自定义模板。 NHibernate的对对方不支持LINQ到DB这是我的喜好的东西。
编辑如果你问我:LINQ到实体基本上是LINQ额外映射到自定义类型为SQL。 好。 有alyo一些细微的差别,但普遍认为它是什么。 它似乎natiral,多发性硬化症是放弃它。
Answer 9:
如果你想要一个简单干净的设计,这就是有趣的实施和未来扩展患上asp.mvc和实体框架去。 我就开始了与电影数据库视频教程关闭asp.net mvc的网站。
文章来源: Linq to Sql vs Nhibernate vs SubSonic vs Stored Procedure (Help)