65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Wisej 将 Windows 桌面应用程序迁移到 Web

starIconstarIconstarIconstarIconstarIcon

5.00/5 (23投票s)

2020年6月2日

CPOL

9分钟阅读

viewsIcon

31928

Wisej 在不损失任何优势的情况下,将熟悉的桌面开发体验带入 Web。

将 Windows Forms、WPF、VB6 或其他遗留应用程序迁移到 Web 可能非常困难且昂贵。在评估当前 Web 技术时,迁移的障碍可能层出不穷。如果您是负责使用 Angular 或其他 Web 技术重写整个应用程序的新人……祝您好运!

Wisej 就是为此而设计的。它借鉴了 WinForms 对象模型的便利性,并集成了许多高级 JavaScript 组件,在不损失任何优势的情况下,将熟悉的桌面开发体验带入 Web。原本只能在 Windows 上运行的应用程序,现在可以在现有的所有符合 HTML5 标准的设备上运行。

考虑从 Gupta Team Developer、VB6 和 WinForms 迁移的开发人员可以选择保留现有的业务逻辑,获得极度现代化的 UI 和相同的开发流程。Wisej 和 Ice Tea Group 为 Gupta Team Developer、Visual Basic 6 和 WinForms 应用程序到完全现代化的 Web 平台提供了自动化迁移解决方案。对于 Microsoft C++、Windows Presentation Foundation (WPF)、Silverlight 和 Visual FoxPro,也提供了半自动化的迁移路径。

考虑为项目使用全栈开发工具的开发人员将有机会利用 Wisej 提供的可扩展性、灵活性和安全性。

案例研究:业务应用程序的挑战

当今企业级业务应用程序通常具有丰富的功能历史演进和增强,这使得从 Windows 桌面迁移到原生 Web 的过程变得困难、有风险,有时甚至是不切实际的任务。典型的挑战是什么?它是如何工作的?

让我们快速看一个来自公共部门的例子

Harris Local Government(Constellation Software Group 的一部分)决定将用 Visual Basic 6 开发的 150 个独立的 Windows 模块现代化,迁移到一个集成的 Web 平台。Harris 为 5,500 多个中小型市政单位提供各种解决方案,如车辆注册、房地产、动产和公用事业计费。软件套件包括会计、固定资产和工资单等财务模块。

图 1 展示了使用 VB6 构建的现有桌面用户界面的截图

图 1:Harris Local Government 应用程序现代化之前(Visual Basic 6)

从头开始开发一个复杂的企业级应用程序通常不是一个可行的选项。以下是需要考虑的典型障碍:

  • 手动重写所需的时间、精力、风险和成本在许多情况下是无法考虑的。一个包含数百或数千个表单和对话框的应用程序,从头开始重写和测试可能需要几十个“人年”的时间。
  • 在无法接管遗留应用程序的业务逻辑和代码的情况下进行手动重写,风险巨大。通常,算法和逻辑经过数十年的发展,可以处理无限的数据输入和输出场景。保证 100% 向后兼容性的质量保证和测试工作量是巨大的。
  • 用户群已经接受并习惯了现有应用程序。工作流程、屏幕和手册应该得到很好的更新和全新的设计,但核心功能不能完全改变,特别是对于拥有最终客户安装的 ISV(独立软件供应商)来说。
  • 另一个限制因素是研发。大多数公司无法负担维护现有应用程序并多年构建新替代品的费用。开发团队需要加倍。程序员很难找到,“银牌程序员”的经验和知识对软件供应商来说非常有价值。

使用 Wisej 将企业级应用程序迁移到 Web

得益于 Wisej 和 fecher(Ice Tea Group 的首选实施合作伙伴之一)的咨询团队,Harris Local Government 的 150 个独立模块被转换成了一个基于 Microsoft .NET、C# 和 Wisej 的、外观精美的现代化 Web 应用程序套件。图 2 显示了与之前相同的窗口,现在它是一个现代 UI 的一部分,具有新的导航栏和标签式 MDI 界面,旨在将独立的应用程序整合到一个统一的解决方案中。

现代化分四个阶段完成:

  1. Visual Basic 6 项目被转换为 C# 项目。
  2. 所有项目被整合到 Visual Studio 解决方案中,并以 Wisej 组件为基础进行重构。
  3. 构建了新的导航控件,如左侧的侧边栏和顶部的标签栏,以支持新集成应用程序套件中的 150 个不同模块。
  4. 根据 UI/UX 设计师的模拟图,Wisej 主题生成器 (Theme Builder) 被用来为 Harris Local Government 应用程序提供全新的外观和感觉。

图 2:基于 Microsoft C#/.NET 和 Wisej 迁移与现代化后的全新外观和感觉

Wisej Web 技术栈,适用于任何复杂度的业务应用程序

Wisej 是一个基于 .NET 的单页应用程序 (SPA) 框架,支持 C# 和 VB.NET。它兼顾了桌面和 Web 开发的优点,将用户熟悉的控件带到 Web 上,并进行了现代化和增强。想象一下,使用当前 Web 技术从头开始重写 1,000 个屏幕(包含 100,000 个控件)、500 个报告、800 个存储过程,结果会是一个充斥着模板、HTML、JS 和重叠 CSS 的迷宫,更不用说与服务器交互的简陋方式,这种方式可能适用于房地产网站,但对于我们日常看到的业务线 (LOB) 应用程序来说是完全不够的。使用 Wisej,可以在不冒代码库风险的情况下迁移现有业务逻辑。

使用 Wisej 的最大好处是什么?如果您不想,您无需接触 HTML、JavaScript 或 CSS。Wisej 封装了一套完整的 .NET 控件,涵盖了从简单的按钮、组合框、文本框到更复杂的控件,如数据网格、数据重复器、功能区或导航栏。就像在 Visual Studio 工具箱中选择一个控件并将其拖放到页面上一样简单。

Wisej 与 WinForms 对比

WinForms 和 Wisej 的开发环境在外观和感觉上非常相似。使用 Wisej,您可以像在 WinForms 中一样,从工具箱拖放控件,双击添加事件处理程序,并连接属性。

图 3:Visual Studio 中的 Windows Forms 设计器

图 4:Wisej 在 Visual Studio 中实现 Web 应用程序的像素级 WYSIWYG 设计

为应用程序设计现代外观和感觉

有了 Wisej,就无需再担心在应用程序中集成样式表。样式设计使用 Wisej 主题生成器 (Theme Builder) 完成,并作为一个单一的 JSON 文件自动加载到您的项目中。主题生成器允许您自定义所有 Wisej 控件的外观和感觉。您可以使用 10 个预设主题之一(请参阅 https://wisej.com/themes/),创建自己的自定义主题,或仅使用较小的混入文件修改任何基础主题。Ice Tea Group 的专业服务团队很乐意协助您重新设计现有应用程序并提供建议。

选择好主题后,您可以使用任何活动 Wisej 应用程序的 URL 实时测试它。如果主题生成器没有您需要的样式功能,Wisej 中的每个控件都有一个 CssStyle 属性,允许您为该控件配置可选的 CSS。

图 5:使用 Wisej 主题生成器修改任何控件的外观和感觉

图 6:动态更改应用程序的主题

集成 JavaScript 小部件

虽然不需要 JavaScript 编程,但它对于集成第三方小部件非常有用。Wisej 包含大量免费和付费的扩展,包括 Google Maps、FullCalendar 和语音识别。如果需要新控件,Wisej Widget 控件能够包装任何第三方 JavaScript 控件,并将其转换为服务器连接的设计组件。

图 7:Telerik 小部件在设计器中的集成

有关包含的扩展的完整列表,请访问:https://wisej.com/extensions.

Wisej Mobile for iOS and Android

从 2.2 版本开始,Wisej 将包含一个渐进式 Web 应用程序 (PWA) 集成模块,以及一套用于原生 iOS 和 Android 应用程序的付费包。开发人员将能够创建 Wisej 应用程序,从服务器控制设备的任何方面,并且无需了解 HTML、CSS、JavaScript、Java 或 Swift 即可使用移动包。所有这些都可以通过 C# 或 VB.NET 完成。这些包还将包含响应式模板,使响应式设计变得轻而易举。

Wisej Mobile Integration 包让 Web 开发人员能够为移动设备设计复杂的业务应用程序,而无需接触原生代码,并能利用设备的所有原生功能,包括但不限于生物识别认证、触觉反馈、屏幕亮度、原生警报、原生工具栏、标签栏等!

C# 代码

// Dims the device’s screen to half of its possible brightness
Device.Brightness = 50;

// Uses the device’s built in biometrics or passcode to authenticate user
var authenticated = Device.Authenticate("Reason for authenticating");

在服务器上处理设备事件非常容易。以下是如何添加用于选择标签栏项目、工具栏项目、订阅通知以及设备上发生的几乎任何其他事件的事件处理程序。

C# 代码

// somewhere in your code
Device.TabBar.Selected += TabBar_Selected;
…
private void TabBar_Selected(object sender, DeviceTabBar.SelectedEventArgs e)
{
	AlertBox.Show($“{e.Button.Text} was clicked!”);
}

使用 Wisej 的响应式配置文件和像素级 WYSIWYG 设计器,开发人员可以调整窗体大小、控件外观、显示文本等,以适应每个客户端的屏幕。

用于桌面和嵌入式部署的自托管

Wisej 提供通过 OWIN / Katana Web 服务器进行自托管,该服务器作为进程或服务在机器上运行。

对于希望保留其应用程序在桌面上的开发人员,Wisej 可以作为桌面应用程序运行,使用 Chromium、Firefox 或轻量级 500KB 的基于 IE 的应用程序。窗口框架完全可定制,并且不需要互联网连接即可运行。该应用程序可以利用一些原生 Windows 功能,如 MessageBox 或文件系统。提供完整的源代码,以便开发人员可以处理身份验证、日志记录和目录浏览。

Syncfusion、DevExpress 和 Infragistics 的组件库集成

Wisej 已集成了多个第三方组件库。这些 JavaScript 小部件现在充当熟悉的服务器端 .NET 控件,消除了开发人员使用 JavaScript、HTML、CSS 或 Ajax 请求来操作它们的需要。在 Wisej 中使用这些小部件就像使用任何 WinForms 控件一样简单。例如,更改小部件的背景颜色

C# 代码

// this is updated automatically on the client.
this.ejCircularGauge1.Options.backgroundColor = "white";

// handling any event from the widget on the server.
this.ejCircularGauge1.Widget.legendItemClick += this. ejCircularGauge1_LegendItemClick;

Syncfusion Essential JS

图 8:Syncfusion Essential 与 Wisej 的集成

DevExpress DevExtreme

图 9:DevExpress 与 Wisej 的集成

Infragistics IgniteUI

图 10:Infragistics IgniteUI 与 Wisej 的集成

培训

当前的桌面开发人员可以相对轻松地适应 Wisej 框架,从而降低培训成本并提高生产力。他们会发现自己能够快速开发出可投入市场的生产力软件。对于希望更深入了解 Wisej 框架的开发人员,还提供额外的培训和支持。

丰硕的成果

世界各地的公司,无论规模大小,都已使用 Wisej 来现代化他们的应用程序。Wisej 被广泛应用于农业、医疗、建筑、制造、金融等众多行业。从个人开发团队到数十亿美元的公司,Wisej 都致力于为开发人员提供完成工作所需的工具。了解其他人对 Wisej 的评价:

如需咨询服务,请通过 https://wisej.com 联系我们。

© . All rights reserved.