.net 设计一套web应用程序
我们正在重写以前用Delphi编写的企业遗留应用程序套件。该套件包括一些超级用户使用的胖客户端、一个单一租户关系数据库、一个供所有员工使用的windows service web应用程序以及一系列按需或按计划运行的.EXE工具。该套件始终安装在本地(客户站点),并且主要限于其局域网 现在是2018年,我们必须将套件重写为web界面应用程序。但不仅如此,我们还必须对其进行设计,使其易于现场安装、由我们托管或以多租户的方式作为SaaS提供。我们也有一些自己的硬件现场安装 我们已经开始将web应用程序解耦到引擎、web api(.NET web api 2)和前端SPA(Angular 2)中。我们将使用MQTT和Azure Iot Hub与内部硬件进行通信 我们正在努力避免为新的web应用程序创建一个单一的代码库,该代码库现在将取代多个遗留组件,同时又不希望以我们以前拥有的东西结束:一个应用程序和工具的混合体,具有不同的用途、兼容性、编写的技术等 具体而言,我们有几个设计疑问:.net 设计一套web应用程序,.net,azure,architecture,software-design,.net,Azure,Architecture,Software Design,我们正在重写以前用Delphi编写的企业遗留应用程序套件。该套件包括一些超级用户使用的胖客户端、一个单一租户关系数据库、一个供所有员工使用的windows service web应用程序以及一系列按需或按计划运行的.EXE工具。该套件始终安装在本地(客户站点),并且主要限于其局域网 现在是2018年,我们必须将套件重写为web界面应用程序。但不仅如此,我们还必须对其进行设计,使其易于现场安装、由我们托管或以多租户的方式作为SaaS提供。我们也有一些自己的硬件现场安装 我们已经开始将web应用程序
永远不要从头重写大型应用程序。这样做几乎总是不可避免的。有几种工具允许您在类似Delphi的基础上编写restful服务 我会选择最常见的模块,在这些服务之上编写web前端,降低安装成本。一旦前端数量达到临界值,就要重写后端以降低安装成本(并引入多租户) 循序渐进地这样做不仅可以让您获得现有应用程序基础架构的优势,还可以缓解主要重写所带来的最大问题,即“启动前需要多少?”?这个问题通常会使软件组织瘫痪,因为管理层通常会断言,新应用程序必须完成旧应用程序所做的一切,再加上一些附加功能。问题是,旧的应用程序是用10年时间编写的,出于某种原因,他们不愿意等待10年时间来构建新的应用程序
如果您打算进行一次大爆炸式的重写,请确保在开始编写代码之前花大量时间建立范围。对于#1,请查看微服务体系结构#2.如果您需要支持它,您应该从一开始就设计多租户,包括在您的应用层/服务合同中。感谢@AlwaysLearning,我的雷达上有微服务。谢谢Rob。我们知道斯波尔斯基的博客文章中提出的问题。尽管如此,问题仍然在于如何编写新的web前端以避免庞大的代码库,同时允许无缝的用户体验。