这更像是一个设计问题,而不是我想要解决的问题。我在这里发布这个是为了获得其他人对ASP.NET MVC框架设计的看法。
首先,我将陈述我对框架的问题:
我没有详细解释我对上述问题的解释,希望有其他人看到我看到的问题。说实话,我没有人提出这些问题,所以我开始怀疑自己是否独自一人:)。
某人在构建大型应用程序时必须看到/感受到这些问题吗?
答案 0 :(得分:3)
某人在构建大型应用程序时必须看到/感受到这些问题吗?
不,不是真的。至少 - 我不把这些称为问题。
视图中的Html和代码
简单if
或foreach
不会削减您的头脑。比这简单得多:
<asp:Repeater ID="uberRepeater" runat="server">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate></ItemTemplate>
<FooterTemplate></FooterTemplate>
</asp:Repeater>
如果你把复杂的东西放在那里,那不是框架的错,它是开发者的错,也不是他对mvc模式的误解。
方法名称,例如View(),通过查看名称以及它实际返回的内容无法辨别
对我来说很有意义:
如果开发人员不熟悉asp.net mvc遵循的mvc模式和约定,那可能不会。
太多重载方法接受完全不同的参数(如View())
这似乎是一个问题。但是对于c#4.0,如果它困扰你,你可以使用命名参数来保持代码的可读性。
Html助手 - 我不相信为此用途引入了扩展方法
html帮助程序确实没有引入扩展方法。引入它们是为了对现有类附加逻辑。它必须具有成功实现LINQ的功能。
虽然看不出这个问题。
的ViewData
嗯......嗯?
但这并不意味着问题不存在。他们确实存在 例如。 - Mvc V3的很大一部分是关于对依赖注入的适当支持。
答案 1 :(得分:0)
ASP.NET MVC框架功能强大。您可以完全控制HTML /客户端脚本输出。
如果您以正确的方式使用它并使用SharpArchitecture等良好的基础架构,那么与其他任何框架(Silverlight除外)相比,您可以获得更多的用户体验。
根据我的经验,使用框架4,asp.net mvc,一个不错的ORM(如hibernate),DDD架构,良好的模式和IoC,您可以节省30%的项目时间并将其用于用户体验。
旁注:SharpArchitecture是很棒的架构示例,实际上它是完美的,但即使是开箱即用,它也可以处理任何规模的项目。凭借自MVC1以来的经验,我无法想象没有ASP.NET MVC的任何大型项目,并且它越来越强大,因为社区是如此富有创造力和技能。
答案 2 :(得分:0)
通过回答这个问题,我会引导你找一本做得很好的书:Scott Millett的Professional ASP.NET Design Patterns。本书采用了最流行的模式,包括“四人帮”记录的模式和Martin Fowler的企业模式,并根据所有ASP.NET应用程序类型(包括MVC)进行讨论。
如果他不能说服你MVC在划分用户显示,业务逻辑和数据存储方面提供优势,那么可能没人会
答案 3 :(得分:0)
@Buggieboy,我不是在质疑MVC设计模式或其优点。我的问题与ASP.NET MVC框架的实现/设计有关。
我想我不会和客观的人群交谈。或者正如jfar所说,我可能一个人。