将Classic ASP和ASP.NET Webforms转换为ASP.NET MVC

Jam*_*mes 3 asp.net asp.net-mvc asp-classic

我目前在一家公司工作,该公司使用ASP.NET Webforms和传统ASP页面的组合进行Web开发.这对于他们当前的项目非常有效,但我想说服/建议他们切换到ASP.NET MVC,因为他们的大多数代码库都包含将表单元素连接到存储过程参数.仅使用ORM也是可能的,但我认为利用这个机会切换到MVC框架是个好主意.

但是,我不确定在更新代码库时,在ASP.NET和Classic ASP代码中部署ASP.NET MVC应用程序会有多容易.首先,我想问一下这是否可行.我见过关于使用经典ASP和ASP.NET MVC运行ASP.NET的线程,但不是所有三个都在同一个应用程序中.他们目前将Webforms和Classic ASP协同工作,因此与此相关的陷阱已经解决.其次,有哪些强大的卖点可以帮助我说服团队的其他成员,从长远来看,学习新框架和转换现有代码是否值得?

3Da*_*ave 8

我觉得这是一个老问题,但由于我在同一条船上,我以为我会试一试.

在过去的12到15年里,我有一个用经典ASP编写的10万多页的网站.与许多被黑客攻击的代码不同,它结构合理,复杂且高效,并且经过精心修改,以至于错误非常非常罕见.

在过去的三四年中添加的许多新功能都是在ASP.NET中实现的.这需要重新实现许多潜在的DAL和业务逻辑,当然,新的东西永远不会像近十年来一直运行的代码一样稳定.将信号源服务器上移开并远离窥探眼睛和手指也是非常非常好的.

我起初抵制MVC,但我爱上了它.它没有提供Webforms的所有功能 - 易于打包和可再发行的用户控件是我真正非常想念的 - 但它比我喜欢的Web开发更传统的应用程序开发.编写测试也更容易 - 对我来说是一个巨大的卖点.

因此,当前的Visual Studio解决方案如下所示:

  • 一堆.NET类库(DAL等)
  • 一个ASP Web应用程序项目,包含所有旧代码和所有webforms内容
  • 一个MVC Web应用程序项目.

IIS指向MVC项目文件夹,因此所有MVC内容都按预期工作.网站配置包括所有尚未迁移的ASP内容的虚拟文件夹(这将需要数年时间).这些虚拟目录指向MVC文件夹结构之外的文件夹,其中存储了Webforms和Classic ASP代码/对象.当IIS收到请求时,映射到虚拟文件夹的内容将由传统ASP或webforms处理,而其他所有内容都将路由到相应的MVC区域.

我故意将这些项目分开; 拥有ASP,MVC和webforms的单一解决方案都在相同的文件夹结构中是疯狂的可靠途径.

它工作得很好,但在开始时配置有点痛苦.

所以,是的,所有这三种技术都会幸运地存在于同一个站点中,但是您面临着一些组织挑战.