ASP.NET MVC中的经典ASP(C#)

我有一个应用程序,我想(最终)转换为ASP.NET MVC。 我想进行全面的服务升级(到ASP.NET),但是想要使用当前的asp东西来运行当前的function,这样我就可以升级小块,同时对新框架进行增量升级。 这个站点在很大程度上依赖于一个不太成熟的VB6 DLL,所以我们也想最终升级它,可能会用Web服务取代当前的function。 有快速解决方案还是这个任务是3个月+任务? 此外,我相信之前已经想到过,MVC的美妙之处在于我认为有办法解决这个问题,尽管我不确定从哪里开始。 转换这个应用程序的最快方法是什么(在40个小时左右),我可以在其中进行小的配置更改并在ASP.NET MVC中使用它?

简短的回答是……你做不到。 经典asp和asp.net之间的差异不仅在语法上而且在整体设计上都相当激烈。 MVC不仅仅是与经典asp类似的实现,尽管它可能看起来像那样。 任何转换都需要时间,思考和努力才能使其完全正常工作。

好消息是,你可以运行它们SxS,这样你就可以在一个设置为ASP.NET或ASP.NET MVC站点的站点下运行经典的asp代码。 因此,使用一些胶带可以将您升级的解决方案逐个部分地组合在一起。

将您的VB6 DLL重写为COM可调用.NET程序集。 然后,您可以从ASP和ASP.NET引用它。

希望,大部分繁重的工作都在VB6 DLL中。 如果是这样,您可以根据需要开始将页面迁移到ASP.NET MVC。 您必须注意页面到页面的通信 – 例如Session和Cookies。 Cookie几乎可以正常工作,但你需要将Session转移到MVC和ASP之间可共享的东西,比如Sql Server。 不幸的是,这需要将ASP中的Session调用重写为其他东西(可能是围绕.NET组件的COM包装器)。 但是,搜索和替换应该可以解决问题。

至于工作的时间表和工作量 – 这是相当依赖于现有应用程序中的意大利面条数量,DLL与ASP中的逻辑数量以及您要迁移的页数。

我不认为40小时是合理的时间来加速.NET,MVC和重写 – 尽管我认为2-3个月可能会。

我一直在做类似的项目很长一段时间了; 我们有一个经典的ASP应用程序,并希望将其移动到ASP.Net(使用WebForms)。 我们一次只做一件,如果我们在.Net中添加一个新页面,只需在.asp文件和.aspx文件之间重定向用户。 与MVC合作应该没有什么不同。

我们遇到的最大问题是安全性; 该站点需要登录,当然不会在两者之间共享会话。 我们通过将我们关心的会话位持久保存到数据库中的表并通过查询字符串传递GUID来处理这个问题(我们只在登录时执行此操作,然后从数据库中删除记录以降低安全风险)。