gpt4 book ai didi

.net - 设计一套 Web 应用程序

转载 作者:行者123 更新时间:2023-12-03 03:00:12 24 4
gpt4 key购买 nike

我们正在重写以前用 Delphi 编写的企业遗留应用程序套件。该套件由高级用户使用的一些 FAT 客户端、单个租户关系数据库、所有员工使用的 Windows 服务 Web 应用程序以及一堆按需或按计划运行的 .EXE 工具组成。该套件始终安装在本地(在客户站点),并且主要限于其 LAN。

现在已经是 2018 年了,我们必须将套件重写为 Web 界面应用程序。但不仅如此,我们还必须对其进行设计,使其能够轻松地在现场安装、由我们托管或以 Multi-Tenancy 方式作为 SaaS 提供。每次安装时我们都会有一些自己的现场硬件。

我们已经开始将 Web 应用程序解耦到引擎、Web API (.NET Web API 2) 和前端 SPA (Angular 2) 中。我们将使用 MQTT 和 Azure Iot Hub 与我们的本地硬件进行通信。

我们正在努力避免新的 Web 应用程序使用单一的整体代码库,该代码库现在将替换多个遗留组件,同时又不想最终得到我们以前拥有的东西:大量具有不同用途的应用程序和工具、兼容性、编写的技术等。

具体来说,我们有几个设计疑点:

  1. 我们是否将应用程序分解为几个相当独立且基于我们自己的 SSO 服务器来提供授权和身份验证的 Web 应用程序(模块)?我们确实希望为用户提供无缝体验,尤其是能够访问几乎所有模块的高级用户。因此,一个“门户”是必须具备的。

  2. 我们是选择 Multi-Tenancy 数据库还是使用 Azure 弹性数据库池并在 SaaS 环境中为每个租户分配一个数据库?

  3. 分发:该套件的安装相当复杂,并且基于 .NET 框架(而不是 .NET 核心),MS 许可根本无法提供提供设备的好方法。安装程序太 1990 年了。Docker 并不是真正的本地安装选项。

最佳答案

永远、永远不要从头开始重写大型应用程序。这样做几乎总是doomed to failure 。有几种工具可以让您在 Delphi 之上编写静态服务,例如 this

我会选择最常见的模块,在这些服务之上编写 Web 前端,从而降低您的安装成本。然后,一旦您拥有足够数量的前端,就可以重写后端以降低安装成本(并引入 Multi-Tenancy )。

逐步执行此操作不仅可以为您提供现有应用程序基础架构的优势,还可以缓解重大重写带来的最大问题,即“在启动之前我们需要多少”?这个问题通常会让软件组织陷入瘫痪,因为管理层通常断言新应用程序必须完成旧应用程序所做的一切,再加上一些附加功能。问题是,旧应用程序已经编写了 10 多年,出于某种原因,他们不愿意等待 10 年来构建新应用程序。

如果您打算进行大爆炸式重写,请确保在开始编写代码之前花大量时间确定范围。

关于.net - 设计一套 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49642400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com