管理大型项目

时间:2010-11-08 18:11:15

标签: asp.net asp.net-mvc

这更像是一个设计问题,而不是我想要解决的问题。我在这里发布这个是为了获得其他人对ASP.NET MVC框架设计的看法。

首先,我将陈述我对框架的问题:

  1. Html和视图中的代码
  2. 方法名称,例如View(),其中一个人无法通过查看名称来识别它实际上返回的内容
  3. 太多重载方法接受完全不同的参数(如View())
  4. Html Helpers - 我不相信为此用途引入了扩展方法
  5. 的ViewData
  6. 我没有详细解释我对上述问题的解释,希望有其他人看到我看到的问题。说实话,我没有人提出这些问题,所以我开始怀疑自己是否独自一人:)。

    某人在构建大型应用程序时必须看到/感受到这些问题吗?

4 个答案:

答案 0 :(得分:3)

  

某人在构建大型应用程序时必须看到/感受到这些问题吗?

不,不是真的。至少 - 我不把这些称为问题。


  

视图中的Html和代码

简单ifforeach不会削减您的头脑。比这简单得多:

<asp:Repeater ID="uberRepeater" runat="server"> 
 <HeaderTemplate></HeaderTemplate> 
 <ItemTemplate></ItemTemplate> 
 <FooterTemplate></FooterTemplate> 
</asp:Repeater> 

如果你把复杂的东西放在那里,那不是框架的错,它是开发者的错,也不是他对mvc模式的误解。

  

方法名称,例如View(),通过查看名称以及它实际返回的内容无法辨别

对我来说很有意义:
alt text

如果开发人员不熟悉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所说,我可能一个人。