asp.net-mvc – ASP.NET MVC适合复杂的Web应用程序吗?

上周,我的老板要求我的团队为下一个项目评估ASP.NET MVC.
我们所有人都从.NET 1.1开始使用webform,之前我们没有MVC经验,但我的所有同事都对ASP.NET MVC感兴趣,但没有运气,我们的最终答案是否定的.

因为:

>我们相信尽管您是ASP.NET Guru,但您可以在短时间内构建复杂的应用程序.但是如果你改为ASP.NET MVC,开发时间会花费更长的时间,每个东西都需要使用html helper,没有web控件,还有很多问题,请继续打开带有ASP.NET论坛的Firefox Tab,询问How-To问题.
>我们曾经多次看到人们说MVC提供更好的项目管理,但如果它是一个复杂的网站,我可以想象有百分之百<%=%> TAG在一个页面中,并保持打开控制器以查看要返回的内容,并保持打开模型以查看逻辑.

我可以说,MVC并不坏,但Webform足以应对这项工作.

解决方法

转换为新技术或“思维方式”需要数周时间.

使用MVC,您必须摆脱旧的ASP.NET Forms思考“复杂Web应用程序”的方式,即“我们有多少页面,超过300页!这将是巨大的!”.您可以更改整个应用程序的视图.你从“接下来需要创建的页面”的旧思维转向MVC思考“我们下一步需要实现什么功能”的思维方式.

例如,我自己控制了一个项目,该项目仅在’web’项目中有超过3300个文件(加上11个支持程序集).我正在构建的一件事是MVC将如何将物理文件数量大幅减少到大约310左右.怎么样?因为我正在离开“这里是一页.这是另一页.”以“这是我想要实现的功能”的思维方式.

通过将页面视为您要完成的功能,您可以开始将该页面的各个部分抽象为常用功能.

MVC可以通过这种思维方式进行大规模扩展,因为现在你有一个模板用于你希望它的外观,你只需要实现另一个函数”来改变你想要渲染的视图(html)的外观.没有第二页,没有额外的控制等.

现在,正如你所提到的“没有网络控制”:再次,这需要一种不同的思维方式. HtmlHelper用于基本渲染和编码.我使用一个名为MyProjectHelper的抽象类使用相同的概念,它将我的“函数”呈现在页面上(functions = code).

例如,我过去总是为我的displayNames创建一个服务器控件.这允许我控制displayName的显示方式,特别是切换到Facebook Connect和其他东西.使用MVC,我不再使用“服务器控件”,而是使用viewmodel上的“函数”来呈现该文本:CollegeProjectviewmodel.RenderdisplayName().因为这只是UI层的一部分,所以这将根据需要使用我想要的任何选项呈现Anchor(当然,摘要由CollegeProjectviewmodel继承,它接收“基本”文本呈现).

MVC的强大之处在于不再需要“网页”,而是“功能”或您想要对您的网站做什么的方法.通过改变这种思维方式,您可以使用在控制器上创建的方法进行扩展.它确实加速了大规模的IMO.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....