迁移技术:PHP+;MySQL->;ASP.NET MVC+;MS SQL 2008

迁移技术:PHP+;MySQL->;ASP.NET MVC+;MS SQL 2008,php,mysql,sql-server,asp.net-mvc,Php,Mysql,Sql Server,Asp.net Mvc,我有一个完整的PHP 5+MySQL web应用程序。我还没有开始转换,但它将迁移到ASP.NET MVC+MS SQL 2008。我不确定如何进行最简单的过渡: 编辑用于SQL Server的PHP DAL。立即迁移到新数据库 不要使用实时代码。使用MySQL DAL创建ASP.NET MVC以供当前使用。稍后迁移到新数据库 不要使用实时代码。完整地编写新版本。同时转换数据库和代码 是否有一些共同的智慧,哪条道路是最好的选择 编辑:解决Dave的问题: 您如何访问数据库?如果你有很好的分离

我有一个完整的PHP 5+MySQL web应用程序。我还没有开始转换,但它将迁移到ASP.NET MVC+MS SQL 2008。我不确定如何进行最简单的过渡:

  • 编辑用于SQL Server的PHP DAL。立即迁移到新数据库
  • 不要使用实时代码。使用MySQL DAL创建ASP.NET MVC以供当前使用。稍后迁移到新数据库
  • 不要使用实时代码。完整地编写新版本。同时转换数据库和代码
  • 是否有一些共同的智慧,哪条道路是最好的选择


    编辑:解决Dave的问题:


    您如何访问数据库?如果你有很好的分离 在您的代码和数据库之间,并且正在使用存储过程 可能会影响给出的答案

    ASP.NETMVC的东西都没有写过。要使当前的PHP数据层与MS SQL一起工作,必须进行一些更改。我目前正在利用PHP+MSSQL中不存在的一些PHP+MySQL功能。没什么大不了的,但需要一些重新装备。我的数据层是足够独立的,我希望它不会太侵入性

    你的发布计划是什么?你会被迫逐步释放吗 或者有一天你打算“扳动开关”吗

    拨动开关——这只是我家人的一个爱好网站。但我并不反对保留1db,这两个代码集都会运行一段时间,直到我确信新的代码集是好的


    编辑2:


    看来我的选择比我想象的要有限。对于SQL 2000及之前的版本,只能使用PHP的原生MSSQL函数。对于2005+版,您需要安装MS提供的驱动程序。我在el cheapo共享主机上,所以我不能真正要求他们为我安装驱动程序。看起来我很不幸地得到了我的答案:(

    纯粹主义者会建议从TDD开始,这样您就可以通过所有单元测试来判断迁移何时相当完整


    但是,我建议您在ASP.NET MVC中从头开始使用该应用程序,因为它与非MVC PHP应用程序大不相同。我会先映射数据层并构建一些模型,然后逐步升级控制器和视图。如果您使用visual studio surface designer,数据模型应该很容易迁移。

    一种简单的方法将使用应用程序生成器

    有许多可用选项,如:
    -Iron Speed Designer(仅支持ASP.NET)
    -Code Charge Studio(支持许多不同的web脚本语言,如PHP、ASP、ASP.NET、Pearl等)

    我已经尝试了这两种方法,但对任何一种都不满意,因为它们没有记录MVC/MVP部分,以至于开发人员修改生成的代码变得很容易


    Iron Speeds Designer MVC比CCS更好,但ISD将被证明成本高昂,因为它只支持一套技术,而CCS支持多种技术,并且可以在开发人员的少量支持下增加对新语言的支持。

    您如何访问数据库?如果您的代码和数据库之间有很好的分离,并且使用存储过程可能会影响给出的答案。另外,您的发布计划是什么?您是被迫以增量方式发布,还是只计划“翻转开关”总有一天?我会保留mysql数据库,并在mvc应用程序完成后将其迁移到sql server。这可能会为您节省一些时间,让您可以一个接一个地执行,而不是同时执行这两个操作。当您的查询不使用mysql sql方言特定的查询时,您的查询将可移植到sql server。这也可能会为您节省大量时间y与asp.net mvc一起使用orm