所以我即将开始为我的体育俱乐部开设一个小型项目进行会员注册,我正在尝试在WebForms或MVC之间做出决定。
Allit将是一个用户登录和数据捕获表单(或数据检索),所以我最初用FBA思考WebForms但是我想在MVC上玩一段时间而且我想它不会选择太差了。
但是并不是真的对MVC有很多了解,我不知道它是不合适的。
那么判断WebForms或MVC是否是正确选择的好方法是什么?
答案 0 :(得分:12)
这是一个关键的生产级别应用程序还是小型一次性应用程序?你能否处理MVC学习曲线所需的额外时间,或者你需要立即完成它吗?如果MVC无法解决问题,你可以放弃整个事情并重新开始吗?在开发过程中,您是否愿意更改平台(现在测试版可能不多)?还有另一个项目不太重要,你可以使用MVC来学习它。
根据您回答这些问题的方式,在这个项目上学习MVC可能是值得的。就个人而言,我认为这是一个更好的架构,但在这一点上是一个不太成熟的技术。它肯定增加了我的Web代码的可测试性。我希望在未来一年左右的时间内将我的所有发展都朝着这个方向发展,不过我怀疑我是否会改变我在开发过程中的任何项目一段时间。我刚刚在MVC开始了我的第一个新项目。我不愿意承诺,直到它进入测试版,我认为它将在我完成项目之前投入生产。
答案 1 :(得分:5)
我实际上非常喜欢WebControls方法。很多人都说“在进行MVC时,单元测试更容易”。首先,无论如何,您应该使用什么类型的方法来清晰地分离Business Logic和UI层。如果您这样做,那么无论您使用哪种方法,都可以对您的业务逻辑进行单元测试。当然它可能更容易并且与MVC一起“开箱即用”,但它不是一些魔法银弹,这是通往罗马的唯一道路......
其次,您可以使用WatiN,这使您的应用程序可以以远远优于传统单元测试的方式进行测试。 (注意我并不是说它应该取代单元测试,但除了单元测试之外,它还会带你以前无法获得的安全级别)
第三,网络是无国籍的。这是因为HTTP是完全无状态的协议。这正是使网络美观的原因,但同时很难开发应用程序。 WebControls方法主要通过使用ViewState等概念来完全解决这个问题。在进行应用程序开发时,这会消除麻烦的批次。看看这个Ajax Calendar sample,这在任何其他范例中使用相同的(小)代码来实现,而WebControls(免责声明;我自己使用Ra-Ajax)< / p>
现在看看Stacked(免责声明; ......我也与BTW合作)然后意识到我到目前为止花了不到3天的时间来开发你在那里看到的东西。也许有人可以用MVC达到最高成就,但我对此表示怀疑......
我认为WebControl范例非常漂亮。当然它缺乏一些观点,但猜猜是什么,所有也是如此。编程中作为艺术形式存在的唯一“银弹”是没有任何银弹。
当说到这一点时,我知道Grurrah正在将添加中的Castle Project的MVC层用于基于WebControl的Ajax库。所以混合WebControls 和 MVC可能很难,但肯定不是不可能......
我认为MVC已经获得了很多“应得的”炒作,但不幸的是,在这个过程中也有很多不值得的炒作......! :(
自己做出自己的想法,不要听MVC传道者试图说服你已经找到了“银弹”来为网络编程。而且更多,不相信我!我也有议程(通过Ra-Ajax)
构建自己的头脑。询问某人是否应该做MVC就像是在问我应该吃苹果还是橘子......你唯一能得到的好回答是; “这取决于......”
答案 2 :(得分:1)
IMO,MVC是前进的方式。如果你有时间学习MVC编程方式(因为你暗示你想要使用MVC ......意思,你还没有使用过它),那么这将是一个深入挖掘产品的好机会。
如果您有以前的WebForms经验(我猜你这样做),学习曲线不高。
如果您需要快速建立网站,不关心它是什么,网站会很小,那么请转到WebForms。这是快速而令人讨厌的解决方案(仅限我的意见)。 WebForms 100%完美地工作。我所有的网站都是WebForms,它们很好。
要点:
gl和hth。
答案 3 :(得分:1)
我们获得了同样的机会。在玩了几个星期的MVC之后,我们发现有些东西我们还没有完全理解,以及会涉及一些变化的事情:
我们决定继续玩它并等到它正式发布然后写一个内部应用程序,看看它在哪里引导我们。
答案 4 :(得分:1)
Webforms是来自gui世界的人们的网络抽象。我发现它有很多优点,特别是在RAD意义上,但是当你写一些强大的应用程序时,你经常最终把自己画成一个角落,很难摆脱(即:与viewstate做的一切。)
另一个问题是你会遇到使用网络表单的不良做法。您不应该使用拖放数据源,内置网格控件,如果您想要一些可扩展且可维护且具有干净架构的东西,则绝对不会在代码中具有业务逻辑。要在网络表格中做到这一点需要深思熟虑和纪律,因为一切都会引导你走向那些方向。
相比之下,对于MVC,你有点属于最佳实践。它的性能更高(整个页面生命周期/视图状态在客户端和服务器上都是chews),从架构的角度来看,它更加清晰。
缺点是你可以向RAD说再见,你实际上需要有正确的css / javascript知识来制作好看的页面。
这真的归结为工作的最佳工具,以及您/团队所拥有的经验/知识类型。
答案 5 :(得分:0)
根据您对tvanfosson的评论,听起来MVC对您来说是一个不错的选择,因为您列出了学习选择该技术的理由。我怀疑MVC会从beta版中彻底改变 。因此,这可能是学习新工具的好机会。至于WebForms是“快速和讨厌”的解决方案,我担心这是MVC宣传。