在构建企业解决方案时,可以安全地加入ASP.NET MVC的潮流吗?

Fun*_*ung 11 migration asp.net-mvc

在我指出其中一个'VS.'之前 以下问题......

...请让我声明我不是在寻找比较.

我需要答案的一些问题包括:

  1. 做疯狂UI的学习曲线(例如,用于在线构建BOM树的UI)是否陡峭?发布问题的很多人似乎遇到了一些UI需求问题,或者另一个让我担心的问题.该技术是否足够成熟以满足这些类型的要求?
  2. 是否有一个相当发达的社区,以及在线文学的可用性如何?你可以获得大量关于WebForms的文献.
  3. 开发它的时间是否与构建传统企业WebForms站点相当或更少?
  4. 要让整个开发团队感到舒适(如果不是迷恋),WebForms能够熟练掌握ASP.NET MVC需要多长时间?

我认为它的真实性在于StackOverflow是类似Google的产品,ASP.NET MVC可能对此非常有用.但是我不愿意在贵公司的应用类别中开发软件.

替代文字http://stuffthathappens.com/blog/wp-content/uploads/2008/03/simplicity.png

因此,如果某些事情无法完成或者必须被黑客攻击,那么在以后采取暴跌可能会非常昂贵.希望听到那些冒险的人.

谢谢.

Pre*_*zel 4

大约 3 个月前,我被告知我需要开发一个企业 Web 应用程序(实际上是一系列小型 Web 应用程序),但我可以选择我想要的任何技术。

由于我对 VS/C#/.Net 最熟悉,因此面临的困境是选择 ASP.NET WebForms 还是 ASP.NET MVC2 —— 与您不同,我唯一的背景是 Windows 窗体 (WinForms) 和一点 WPF。所以我必须研究(并尝试)WebForms 和 MVC。

就像你一样,我意识到我的应用程序既不像谷歌也不像苹果,而是你的沼泽标准公司应用程序,有数千个按钮和框等。WebForms 似乎是部署最快的,但很难测试,也很难长期维持。MVC 似乎有一个更陡峭的学习曲线,但一旦建立,测试和维护将变得轻而易举。

我只摆弄了 WebForms 一周,所以我无法对其进行真正的评论。但 MVC 绝对符合我的预期。

是的,这是一个陡峭的学习曲线。对我来说新的概念:

  • 模型-视图-控制器 (MVC)
  • 关注点分离 (SoC)
  • 模型绑定
  • 单元测试和测试驱动设计(TDD)
  • 模拟和存根
  • 依赖注入(DI)

对我帮助最大的书是:

我还必须温习 HTML、CSS 和 Javascript。

总的来说,一开始似乎有相当多的启动工作,但维护和扩展现有应用程序相当轻松。每当我被要求做出改变时,这都相当容易,而且我通常能够按时甚至有时提前交付。

在理想的世界中,编写 MVC 应用程序将由 2 个人进行。一个人编写核心代码,另一个人编写 UI 和视图(HTML、CSS、Javascript)。尽管您完全可以自己完成这一切。(这就是我现在正在做的事情......)

不过,我在企业版中部署时遇到了一些问题。在内部,我的公司运行的是 Windows Server 2003 和 IIS6。不幸的是,当使用虚拟路径时,我们无法让应用程序在 IIS6 上正确部署。(CSS 文件中的所有引用均已损坏。)如果您计划部署 MVC,我建议使用 IIS7 或更高版本。MVC 据说可以在 IIS6 上运行,但要求您的 IT 部门愿意弄清楚如何让它工作。

编辑:我刚刚意识到我从未直接回答过你的问题。开始:

  1. 我的个人经验表明,是的,构建良好的模型和 UI 的学习曲线很陡峭,但我并不是真正的 Web 开发人员,所以我一直在克服这一障碍。好消息是 MVC 技术已经相当成熟。

  2. 是的,社区非常发达并且不断发展。您将从 StackOverflow 以及 MS 的 ASP.NET MVC 子论坛获得很多好的答案。

  3. 我没有编写 WebForms 的个人经验,但我编写过很多 WinForms 应用程序,我觉得这花了我大约 10 分钟的时间。构建此 MVC 应用程序的时间延长了 3 倍。最初的投资是一笔巨大的开支,但定期维护和改进似乎来得更快,尤其是随着应用程序的发展……由于你们似乎有一个程序员团队,所以对你们来说可能会来得更快,因为你们可能可以分开学习/工作量。

  4. 再说一次,我之前没有使用 WebForms 的经验,但我可以告诉你的是,当我学习 ASP.NET MVC 时,有时我很难理解正在发生的事情,因为我之前没有 ASP.NET 背景。(示例:成员资格和角色提供者 - 我最近不得不编写自己的代码。男孩真是太有趣了...)从好的方面来说,我没有任何“旧的做事方式”(又名 WebForms)需要忘记任何一个。如果您有一个热衷于 PostBack / CodeBehind 的团队,您可以打赌 MVC 一开始会显得非常奇怪。但希望您的团队能够看到 MVC 带来的优势并充分接受它。

哦,应该注意的是,您可以混合 MVC 和 WebForms。这不是一个全有或全无的提议。不过,如果我处于您的立场,我会尝试尽可能多地采用 MVC,并且仅在明显更有意义的情况下使用 WebForms。

好的,我希望这有帮助......:-)