我在一家小型网站公司工作(一对程序员,几位设计师).目前我们使用ASP.NET网站项目 - 这使我可以轻松地在本地计算机上对编程进行排序,而设计人员直接在开发服务器上工作,并且"即时"编译允许他们查看任何更改无需编译和部署网站即可完成(并且所有这些都与SVN捆绑在一起).
我想开始使用ASP.NET MVC几乎所有的原因使它与Webforms(逻辑URL,没有viewstate,更多控制html,单元测试等)不同但是不想让它成为开发者过程过于复杂,所以:
您无法将MVC网站设置为网站项目而不是应用程序的任何原因,因此不必在整个开发过程中明确编译它们?(我们的"直播"网站无论如何都使用网络编译项目).
这仍然可以进行单元测试吗?
有没有其他方式允许设计师以与他们目前相同的方式开发MVC网站?注意:他们使用Dreamweaver,因此没有Cassini开发服务器.
任何人都可以建议任何上述(即使只是告诉我我的开发过程没有意义.. :)
谢谢.
我曾经是一名ASP.NET开发人员.最近我开始使用Django进行开发,并通过SVN与另一位开发人员进行远程开发.我发现MVC框架使小项目变得更加容易,而大型项目比旧式ASP.NET更难实现.
模板比ASP.NET中的Web控件更容易控制和样式.逻辑分离(除了代码隐藏方法之外)使得不止一个人可以更容易地同时处理站点的不同部分.在处理ASP.NET页面生命周期问题足够长的时间之后,以动作为中心的RESTful设计开始变得更有意义.此外,URL驱动的路由和反向查找功能意味着您的代码中的硬编码链接更少,更容易向您的网站添加新的部分,等等.
回答你的一些问题:
我不确定实时编译,但它很容易编写一些简单的部署工具来自动化这个过程.
由于控制器中的操作更好地划分逻辑,因此在MVC框架上进行单元测试通常更容易.
ASP.NET MVC允许您使用webforms作为默认模板语言,但我建议您研究更清晰的模板语言,例如NVelocity.任何以HTML为中心的模板系统都将比webforms更好,因为即使是简单的Web控件方面也很难驯服和设计风格.
无论什么类型的项目,ASP.NET MVC都是一个很棒的平台.如果你已经了解了HTTP的基础知识以及网站的实际工作方式,那么ASP.NET MVC就像你生活中缺少的那样.如果你已经习惯了ASP.NET WebForms的回发模型,那么最初可能会有点难以掌握,但很容易低估.它基本上是一个无状态模型.你的控制器给出了一些参数,它会回写一些HTML ......故事的结尾直到下一个请求.
我不这么认为,我认为这样做的原因是允许可部署bin的ASP.NET MVC项目.您可以直接从Visual Studio 2008发布ASP.NET MVC应用程序,而终端服务器甚至不必了解ASP.NET MVC,只要它具有ASP.NET 3.5(我认为使用SP1)
ASP.NET MVC完全是关于单元测试的,它在这方面非常灵活,甚至ASP.NET MVC背后的一些设计决策都是基于允许用户对其代码进行单元测试.Scott Guthrie在ASP.NET MVC(beta)的最新版本中专门命名单元测试http://weblogs.asp.net/scottgu/archive/2008/10/16/asp-net-mvc-beta-released.aspx#六
任何与ASP.NET WebForms一起使用的控件都可以与ASP.NET MVC一起使用,只要它不依赖于回发即可.如果确实如此,则无法使用该控件/代码.
MVC是一个经过验证的网站设计模式,甚至你发布的问题都基于ASP.NET MVC而且只由少数人构建,现在由1个人(很快就是2个人)维护.我目前正在将它用于3个私人项目,我喜欢它.我见过光明,我永远不会回到WebForms.
资源:
Scott Guthrie的博客
Phil Haack的博客
Rob Conery的博客他创建了超过25个视频的MVC店面演示.
Scott Hanselman的博客
Stephen Walther的博客
PDC08 ASP.NET MVC Session Session与Phil Haack和Jeff Atwood(本网站的创建者)合作.
HTH!