我一直在互联网上研究可以通过Webform实现的MVC中的事物。我发现了很多文章,喜欢整合。
通过为Web表单实现类似的文件夹结构,可以在Web表单中实现MVC中的1松耦合架构。即,将aspx保留在view文件夹中,将模型保留在模型中,并将自定义控制器保留在controller文件夹中。类似于MVC 2和3中使用aspx视图的aspx视图。
2 MVC URL路由可以通过创建Web表单中的URL重写来实现。
如果我们创建对单元测试友好的服务并以Web形式使用这些服务,那么在MVC中也可以实施3个单元测试。
4依赖注入也可以使用Webform来实现。
5种支持外部jQuery库的MVC简便性也可以使用Webform中的Web API来实现。
6如果我们在Webforms中使用HTML控件,也可以消除Webform服务器端控件的视图状态和事件绑定问题。 (在.net Framework 4.5中的webform 4之后非常容易)
7如果项目中同时包含Web表单和MVC,我们可以轻松地从.webform与MVC控制器通信,反之亦然。
任何人都可以指出MVC中无法使用Web表单实现的任何内容或与上述声明相抵触的任何内容吗?
谢谢
答案 0 :(得分:1)
“可以使用X实现来自Y的东西”的问题通常是微不足道的-基础语言C#是图灵完备的,因此您可以实现任何可以在使用它的任何技术中实际实现的东西。您也可以使用普通的旧C或Assembly来实现ASP.NET MVC或Webforms中的任何功能。您的观点基本上表明,您可以通过编写大量样板代码来模拟Webforms中的ASP.NET MVC功能。好吧,显然,您可以-您可以使用C来做同样的事情,不是吗?
关于第1点,我也没有发现“实现类似的文件夹结构”是松散耦合体系结构的引人注目的论点。文件夹结构几乎不是体系结构。存在MVC,因为它可以使关注点更容易分离。开箱即用的Webforms 不不支持MVC。您是直接向您的专页提出请求,没有控制器。文件夹结构无法解决此问题。您必须非常努力并围绕该问题编写很多代码以实现MVC,基本上是在框架之上编写框架。这就是我们通常所说的“重新发明轮子”。
这个问题归结为人体工程学和长期支持。 Webforms具有很多不可思议的功能,它使控制失去了控制,使实现架构模式更加困难,并且不再真正开发了。重点主要放在Razor Pages和ASP.NET Core MVC上。如果您喜欢使用Webforms,则可能会发现Razor Pages是一个更好的选择。这两个框架都比较现代,可以减少编写代码即可实现干净,松散耦合的体系结构。
作为现代技术的补充说明,jQuery与Webforms一样现代。