2011-06-10 48 views
5

Diamonds是一个基于Windows窗体的ERP,我会使用网络技术,而不是Windows窗体重建它..asp.net web表单VS MVC这是最适合业务应用

,但现在我需要决定这是最好的,ASP.NET webforms(我认为)更容易(设计)我的意思是在这里的用户界面,但mvc有更简单的HTML输出,和一些其他功能...

你能帮我决定技术使用和为什么?

我使用C#,

干杯

回答

5

我认为这两种技术在经过任何基础知识之后都会变得有些复杂。以下是我在实现必须同时存在于MVC和WebForms主机中的项目时收集的一些简短意见。

WebForms的肯定:

  1. 产品的成熟度
  2. 大量的第三方支持,对于复杂的控制
  3. 有办法绕过框架的传统感觉的方面(例如,WebForms MVP

WebForms的否定:

  1. 页面生命周期问题可能会激怒你无止境;有很多运动部件的复杂的Web应用程序
  2. 使用依赖注入是“难”来使用/实施
  3. 有很多的框架,你无法控制
  4. 需要类似反射来如果有任何问题没有通过文档,网页,实验回答,请参阅反编译源代码。

MVC肯定:

  1. 的依赖注入的关注和支持大分离
  2. 了这么多的事情(即项目结构,MVC框架,呈现的内容等)
  3. 更多控制
  4. 您可以xcopy在asp.net 4安装(即第三方托管服务提供商)之上随同mvc框架一起部署您的应用程序
  5. JSON的本机支持
  6. 提供源代码(带注释!!),以便您在遇到内部问题时可以深入了解各种功能。
  7. 他们一直在做工具上的带外发布,我相信计划在框架上这样做(?);他们有一个期货项目以及来源,向您展示他们将要进行的一些方向,以及如果您应该选择可以使用的方向。

MVC否定:

  1. 可能需要一点时间来包装一个人的头脑周围
  2. 没有像很多第三方佣工(无管制);那些存在似乎不像他们的WebForm同行

就我个人而言,我是一个MVC粉丝,因为控制,灵活性和透明的依赖注入支持。也许你应该用两种技术做一个小型飞行员,看看你更喜欢哪一个。祝好运并玩得开心点!

+0

“使用依赖注入很难”使用/实现“ - 如何?在'Page'中注入依赖关系非常简单,类似于设置控制器工厂http://aspnetresources.com/articles/ioc_and_di_with_web_forms – jfar 2011-06-10 15:42:11

+0

对不起,但对我来说,使用nuget将ninject“安装”到我的mvc中项目(然后使用WebActivator将依赖关系无缝注入到我的控制器中)比实现自定义PageHandlerFactory更直观。我有一个解决方案,部分在mvc中运行,部分在webforms中运行,并且我最终为Webforms使用了ServiceLocator模式。我无法将基类更改为我的控件/页面,我想简化它。一个人肯定可以得到它的工作,但我发现MVC更容易设置。 – Jason 2011-06-10 18:43:22

+0

@Jason - 有一个用于webforms的Ninject nuget包。没有看到这与MVC有何不同或更直观。 – jfar 2011-06-10 19:08:33

6

如果你关心的可扩展性,易维护性,可扩展性和应用程序的稳健性,以及你的软件开发技能的开发,然后留远尽可能远离网页表单。

通过在窗体中包装所有内容来添加一层状态的想法是错误的。 HTTP是无状态的,并且MVC是围绕该模型构建的,这很好。

编辑 关于提出的意见。 Web表单应用程序不可扩展,因为表示层,业务逻辑和数据访问代码(数据源)都驻留在代码后面。 Web表单提供的控件仅适用于Web表单。这意味着您将无法将这些技能转移到其他Web开发框架。

最后,当然可以使用MVC编写一个紧密耦合的应用程序 - 总有一种方法可以销毁某些东西。对此没有任何争议。主要的一点是,当网络形式实际上把你从你身上带走时,MVC鼓励分离顾虑和单一责任原则。

你也说过,网页表单比较容易。如果您一直在使用它,并且与MVC相比更快,但是从长期来看,MVC可能变得“更容易”。在www.asp.net/mvc上观看一些视频。另外你可能想看看测试驱动的开发(单元测试)。我不认为单元测试适用于网页表单,因为所有内容都紧密结合在一起。如果我错了,请纠正我。

我会非常有兴趣听到其他开发人员对使用这两个框架的经验有兴趣。

+3

这个答案是当场上。你会看到人们支持论证的双方,但作为一个很长一段时间webforms开发者谁最近首先进入MVC,我可以诚实地说,我从来不想再写一个Web表单应用程序:) – stephen776 2011-06-10 11:40:07

+1

恕我直言,MVC显然更好,但所有您所引用的原因与底层框架无关,而是从开发人员提供的代码质量中获得。可伸缩性也与Web前端无关,但始终依赖于基础数据服务。带有重载数据库的MVC站点与webforms数据库一样慢。 – jfar 2011-06-10 12:09:44

+1

请参阅编辑。 – 2011-06-10 13:47:35

4

我强烈推荐MVC,因为一旦UI被淘汰,它会使后端观点更容易开发。有MVC的吨VS ASP的问题在那里:单靠TDD和没有根据的Viewstate 123

从我的角度MVC胜。但这取决于你打算如何管理和使用其中的各种功能。

0

这是所有关于您的选择让Web窗体可以让您轻松设计您的应用程序,因为现在MVC已经成为行业标准,甚至MS正在推广它。如果你想保持你的代码清洁,毫无疑问MVC是更好的选择。

1

尽管我已经完成了大量使用Web表单的项目,但我必须说他们存在的主要原因是通过HTTP提供了一个抽象层,主要是为了促进基于事件的无状态协议模型。不幸的是,像大多数MS解决方案一样,这是有代价的。

从历史上看,Web表单过去一直困扰着标记生成的问题。其中一些问题今天仍然存在,尤其是涉及到ViewState时。事情现在稍微好一点(你可以在ASP .NET 4.0中管理DOM id),但Web表单仍然会导致你的悲伤。在Web表单项目中你会看到的常见事物是在代码隐藏中大量的biz逻辑。

MVC并没有消除这一点,但它提供了一个结构和关注点的分离,使不好的练习变得不太可能。也就是说,尽管从最终用户的角度来看,默认视图引擎在生成清晰标记方面效果更好,但视图中的内联代码是对传统ASP的反拨。

对于它的价值,我已经停止开发web表单项目,并专门转到MVC进行新的工作。

1

恕我直言,MVC

我不得不写了一份报告,证明从Web窗体/ Nettiers

更改为MVC我在博客里我的论点here

相关问题