我将很快开始将多个独立的访问应用程序迁移到“真实”应用程序*的痛苦*(开玩笑)*过程*(请注意引号,请不要发生火焰战争)*。这很可能是Web应用程序,因为通常的原因是多用户和可部署性,但我会逐个采用它。
其中一些是使用Access作为后端的传统Access应用程序,而其他应用程序则使用SQL Server(中央)作为后端。
我正在寻找的是您在此方面的经验以及您曾经提供过哪些资源的组合。
网站,应用程序,标准,最佳做法,问题,不要忘记,等等。
我是一个拥有SQL Server后端的1人C#商店,所以无论是否Web,我都会看到那个方向。
此外,尝试为此类事物开发框架是否过度或无法实现?是否只有太多变量才能尝试走这条路?有人试过吗?
基于以下问题的一些进一步信息。我们目前有大约250个用户,他们分布在5个地点之间。
我的可部署性意味着可能有点模糊。我只是意味着我们是一个非营利组织,因此我们没有最好的带宽,所以部署完整的应用程序,即使通过ClickOnce与我的用户的高度变幻无常的性质组合*也很棘手*(我希望那个盒子紫色,没有绿色,没有完全摆脱它类型的东西......)*。
我的想法是尝试开发各种各样的“框架”,这将有助于简化将Access应用程序移动到.Net应用程序的过程。
现在我完全明白,这个“框架”可能只不过是一套步骤和指导方针;比如,使用ORM *(LINQ2SQL或SubSonic)*生成DAL,将UI复制到相应的UserControls,重写业务逻辑。
我只是在寻找您的经验/专业知识,以帮助我简化我的精简流程......;)
答案 0 :(得分:4)
使用Access数据库存储表并需要Web访问的应用程序应首先升级到SQL Server。 SQL Server组中有一个工具。 SQL Server Migration Assistant for Access (SSMA Access)
然后考虑仅迁移到需要远程访问的应用程序部分的Web。并将应用程序的其余部分留在Access中。这可以节省相当多的时间。
或者考虑转到终端服务器。这与VPN一起只意味着一些软件许可成本,而且几乎没有工作。
那说“多用户”和“可部署性”是什么意思?可能我们可以在那里给你一些建议。 Access是开箱即用的多用户。但是,如果您有关键任务数据或者在发生损坏时无法重新生成数据,或者LAN上的用户数超过25-50,那么您应该将数据移动到SQL Server。
现在它是公共Access 2010可以将应用程序部署到Web。各种非常有趣的东西都可以做到。有关详细信息,请查看Microsoft Access product group blog或我的blog with the appropriate Access 2010 tags
答案 1 :(得分:1)
根据经验,我认为您需要根据具体情况进行升级。升级本质上是从头开始重写,你应该抓住机会在必要时重新设计。用于Access的应用程序结构和代码样式的类型(可能是我猜测的程序)与设计良好的OO .Net应用程序非常不同。
您当然可以重用SQL Server数据库,具体取决于应用程序,甚至可能是Access。如果你有勇气,你甚至可以尝试升迁向导,虽然我不推荐它,因为我们发现结果不太理想。
我还建议你看看某种ORM工具(我们使用Subsonic),因为这可以大大减少你需要写的锅炉板代码的数量。一些ORM工具也会为您的数据库生成DDL。
我们遵循these标准(很好地选择标准,并坚持我们发现它),并且发现this对于启动和运行非常有用。
希望这是一些帮助。