更新:我知道没有一种方法可以做任何事情.很抱歉没有说出来.在数据访问教程的上下文中,如果你必须完成他在该教程中所做的项目,你会做他所做的或将使用MVC,如果你必须选择其中一个吗?
更新: MVC是编程asp.net应用程序的更合适的方式,而不是这里的教程:
http://www.asp.net/Learn/data-access/
原版的:
我问,因为我最初了解了使用Java应用程序的MVC,然后是RoR和Django.这些其他项目和公司说好像MVC已经存在了很长时间,并且从我发现它已经发现了.然后微软开始将MVC放入.net框架.
我问,因为我不知道如何设计得非常好,并且认为我在使用Scott Mitchell的教程模拟asp.net网站上的内容时效果很好.我认为在BLL中创建抽象层是一种方法,直到我发现MVC和现在的asp.net的MVC.
老实说,我不知道"正确"的做法是什么.我只是创造了我需要的东西,但我不禁觉得我错过了什么.
MVC是在大型项目中开始做事的正确方法,特别是我的意思是MVC和ASP.NET,但也可以表示PHP和他们的MVC框架之一.
无论如何,我现在想采取一种标准的做事方式......
而且,出于好奇,为什么微软现在才开始做MVC?
更新: MVC比asp.net上设置的当前教程更好吗?
我指的是Scott Mitchell教程,他在那里创建了用于抽象的BLL.或者这也是一个linq问题.我应该说,我理解保持逻辑和表示分离的必要性,但不确定最好的方法.我正在使用asp.net教程.它工作正常.然后我发现世界其他地方,正如我所看到的那样,正在使用MVC.然后微软开始开发MVC,所以对我来说,另一种方法似乎已经过时,而且做错了.
不,这不是唯一最好的做事方式.
MVC只是一种设计模式.所有设计模式的目标都是简单.因此,只要它使您的设计更简单,请使用它.如果它使您的特定应用程序更复杂,请尝试不同的方法.
不幸的是,有些人认为如果他们看到一种模式,他们应该使用它.这不是真的.设计模式本身并不能使您的应用程序更好.他们不是目的.它们是达到目的的手段(简单).因此,只有在值得的时候才应该使用它们.
在我看来,没有充分理由过度构建事物比编写没有任何特定设计的代码更糟糕.
编辑:关于ASP.NET MVC:我对ASP.NET Web表单有负面的个人偏见.在MVC之前,我通过编写自定义处理程序来对HTML进行细粒度控制,从而完成了高级项目的大部分动态方面.Web窗体使Web开发变得非常容易,但它们特别有一些很好但有时会有问题的东西.第一个是ViewState
第二个是复杂的WebControl
架构.别误会我的意思.这些都是ASP.NET的辉煌迹象.我没有看到像Web Web Forms一样简单的Web开发平台,这只是因为WebControl
需要很大的支持ViewState
.但是,在某些项目中,您希望对呈现的HTML进行精确控制(特别是当您有一些客户端逻辑时).您还希望在大型项目中维护服务器端代码.在这些领域,ASP.NET MVC真的很棒.但我认为ASP.NET Web Forms仍然是一种更适用的优秀技术.毕竟,正如我所说的一般的设计模式,你应该仔细评估你的设计,看看哪一个更适合你的需求.
具体来说,关于数据访问,MVC通常需要比Web Forms对应的代码更多的代码.为了呈现表格数据(即GridView适用的地方),我认为ASP.NET Web Forms是更容易实现的方法.但是,大多数数据驱动的Web应用程序不仅仅是直接在数据库中操作表.它们的布局复杂.StackOverflow就是一个很好的例子.它肯定是数据驱动的,但ASP.NET MVC更适合它.
在不知道"事物"是什么的情况下,没有"正确"的做法.MVC是一种解决特定常见问题的设计模式 - 表示逻辑和域逻辑的分离.每种设计模式都是普遍接受的针对特定问题的"好"解决方案.
这些解决方案结合知识和经验是良好设计的基石."正确"的做事方式是研究您的问题领域,研究可能的解决方案并应用最有效解决方案的解决方案.犯错也是这个过程的一部分,所以不要害怕进行实验,然后严格重构,直到找到最适合你的解决方案.