了解最新技术文章
从最终用户的角度来看,当今数字消费者定义优秀应用程序的要素是速度、可访问性、功能性、安全性,甚至是给予用户添加自定义和调整的自由。
从开发人员的角度来看,一个出色的应用程序意味着它可以使用现代框架和工具从设计转换为功能齐全的应用程序,它具有干净的代码、强大的测试策略(包括单元测试、集成测试和自动化测试) , ETC。
桌面应用程序适合这个框架吗?在某种程度上,是的。尽管如此,与网络应用程序相比,桌面应用程序仍存在某些无法跟上的因素。
那么,组织是否应该将其桌面应用程序迁移到网络上呢?再说一次,是的。原因如下。
什么是桌面应用程序
什么是网络应用程序
桌面应用程序与网络应用程序:优点和缺点
一些开发困难
从桌面应用程序转向 Web 应用程序之前需要解决的问题
开始桌面到 Web 应用程序转换的步骤
App Builder TM如何促进这一过程
桌面应用程序是在计算机或笔记本电脑上运行的软件应用程序。它通常安装并存储在用户设备本地,即使计算机与互联网断开连接,也可以灵活使用。构建这样一个应用程序需要对 Java、Python 和 C# 等编程语言、UI 设计经验和软件开发工具有很好的了解。
Web 应用程序被设计为独立于平台,以便可以通过 Web 浏览器(例如 Google Chrome、Microsoft Edge、Firefox 或 Safari)从具有 Internet 连接的任何设备进行访问。网络应用程序的一些示例包括在线银行系统、社交媒体平台、亚马逊等电子商务网站、生产力工具等。
构建 Web 应用程序需要使用各种编程语言、前端和后端框架、工具、Web 服务器、数据库,具体取决于应用程序的具体需求和要求。开发 Web 应用程序有时可能涉及集成第三方 API、实施安全措施以及优化应用程序的性能和可扩展性。
软件开发行业处于不断变化且不断发展的状态。它与新的开发工具的引入、软件开发趋势、 UX 和 UI 趋势、不断变化的用户行为、业务需求、经济转变等齐头并进。随着用户体验与应用程序的执行方式紧密相连,越来越多的软件开发企业更加注重权衡利弊,决定是否应该优先为企业和个人消费者创建桌面解决方案或 Web 解决方案。
在过去的几年里,桌面应用程序已经发生了显着的发展,适应了用户的需求和技术的进步。其中一些现在包含:
人工智能和机器学习技术提供更加个性化和高效的用户体验。
改进的安全功能可保护数据免受网络攻击。
更好的集成,实现无缝工作流程和更好的用户体验。
功能更丰富、功能更丰富的界面,以及更人性化和更具视觉吸引力的设计。
但在 Web 应用程序中也可以观察到相同的趋势。自成立以来,它们发生了怎样的变化?
它们从简单的 HTML 页面到更加动态和交互式的界面,融入了现代设计原则 - 响应式设计、动画和微交互。
由于服务器端渲染、缓存等 Web 技术的进步,性能更快。
网络应用程序现在可以提供离线功能,因此即使没有互联网连接,用户仍然可以使用它们。
随着移动设备的广泛使用,网络应用程序已经发展为采用移动优先的方法进行设计。
渐进式 Web 应用程序 (PWA) 提供了一种混合体验,融合了本机应用程序和 Web 应用程序的优点,为用户提供类似应用程序的 Web 体验。PWA 具有多种功能,例如推送通知、离线支持以及在主屏幕上安装应用程序的功能。
Web 应用程序吸引用户,优先考虑响应式交互,同时能够与移动应用程序类似地执行和操作。
当然,还可以通过处理跨站点脚本 (XSS)、SQL 注入攻击和其他网络威胁的功能来提高安全性。
Web 应用程序也变得更加通用,使其能够在服务器端和客户端以分布式甚至去中心化的方式处理数据。
对此,云图像和视频管理公司 Cloudinary 的开发者关系副总裁Doron Sherman指出:“与通常针对特定操作系统和设备构建的‘地面’应用程序相比,网络应用程序可以通过任何设备上的网络浏览器‘前端’从任何地方访问。在典型的软件即服务 (SaaS) 云计算部署中,Web 应用程序的后端被构建为一组可通过 API 访问的云服务。使用网络技术,还可以构建没有后端的网络应用程序 - 终极的 “胖客户端”应用程序,能够在没有网络或互联网连接的情况下运行。”
然而,习惯于创建桌面应用程序的开发人员常常发现迁移到基于 Web 的应用程序开发很困难。但有些方法可以帮助这个过程更顺利、更少摩擦地进行。
以下是桌面应用程序与网络应用程序的一些优缺点,总结了它们的优点和缺点。
桌面应用程序
优点 | 缺点 |
提供更高级别的安全性
| 更陡峭的学习曲线 |
离线访问,因此不需要互联网连接即可使用它们 | 该应用程序仅在本地运行并且依赖于平台 |
提供更快的速度并且响应更快
| 需要安装,这可能进一步导致兼容性问题 |
具有更多功能,特别是对于科学或工程软件等复杂应用程序
| 可能需要重大基础设施升级才能处理更多用户 |
很难将它们作为网络应用程序访问 |
网页应用程序
优点 | 缺点 |
由于它们在云上运行,因此可以从任何设备上的任何位置进行访问 | 需要互联网连接 |
有些现在可以提供本地功能 | 网络攻击的风险更大。然而,网络应用程序可以托管在安全服务器上并通过安全连接进行访问,从而提供更高的安全性 |
自动更新和更轻松的集中维护,而不是更新每个单独的设备。 | 速度可能会有所不同(取决于不同因素) |
跨平台可访问性 | 由于网络应用程序不是原生的,因此它们的功能可能有限 |
它可以轻松扩展以适应不断增长的用户群 | |
它可以促进用户之间的实时协作和沟通 | |
节省成本,因为组织可以避免购买和维护单个设备的硬件和软件的成本 | |
借助低代码应用程序构建器简化设计到代码流程,开发更轻松 |
平台特定代码
对于桌面应用程序,程序员通常必须为不同的操作系统编写特定于平台的代码。加上可能出现的兼容性问题,需要再次重写代码,再加上修复错误,开发过程变得更繁重、更复杂、更耗时。
安装和硬件细节
桌面应用程序需要安装和分发,这对于开发人员来说管理起来可能具有挑战性,特别是对于跨平台应用程序。以下是进一步限制UX 和 UI以及用户可以访问应用程序的位置的特定硬件要求。
更复杂的用户界面
桌面应用程序需要针对桌面使用进行优化的用户界面,这可能与 Web 或移动界面不同。为桌面使用创建直观、高效且优化的用户界面也可能具有挑战性。
正是由于所有这些因素以及利弊,组织才将其桌面应用程序迁移到网络,寻找:
无障碍
可扩展性
节约成本
跨平台兼容性
自动更新
数据安全
在从桌面应用程序迁移到 Web 应用程序之前,首先仔细考虑构建它的要求、风险和机会非常重要。
考虑以下问题:
构建 Web 应用程序是满足组织需求的正确解决方案吗?Web 应用程序能否满足组织及其用户的要求,包括性能、功能和安全性?
迁移所需的开发成本和资源有哪些?
您是否拥有开始从桌面应用程序过渡到 Web 应用程序所需的工具和技术知识?
桌面应用程序的主要特性和功能是什么?
这些功能在 Web 应用程序中是否可用,或者是否需要修改或替换?您必须将它们全部编码吗?
谁是桌面应用程序的主要用户以及他们将如何访问 Web 应用程序?
迁移的时间表和预算是多少?需要哪些资源来确保成功过渡?
运行网络应用程序的硬件和软件要求是什么?它们将如何影响用户体验?
迁移到 Web 应用程序有哪些潜在风险和挑战,例如数据安全或兼容性问题?
数据如何从桌面应用程序传输到 Web 应用程序?
首先建立工作流程。考虑您的网络应用程序将包含哪些内容以及如何使用您的资源和预算来满足这些要求。因为这是软件开发,所以您的工作流程应该面向业务和技术。一个例子是:
步骤一:确定业务需求。第一步是理解它们并列出期望的结果。此时,你仍然不必关注技术。这是因为,每当您预先决定技术选择时,您都会立即对您可以构建的内容设置某些限制。例如,在使用 App Builder 时,您编写应用程序所使用的技术在很大程度上是无关紧要的。它可以是任何内容,直到您决定在流程结束时导出 Angular、Blazor 或 Web 组件中的代码。所以,当应用程序构建到一定程度后,你就可以选择甚至改变技术栈,而不必从头开始重写应用程序。
第 2 步: 与用户一起进行原型设计和迭代。制作您的应用程序原型。从应用程序设计和用户体验开始,因为网络和桌面应用程序有不同的用途。从这个意义上说,网络应用程序应该更易于访问、简单和直观。他们应该用更少的视觉元素提供更多的信息。而桌面应用程序主要用于银行软件、ERP系统、票务系统等。
第三步: 开始开发。此时,您可以根据团队的能力来选择 Web 框架。考虑到实施的紧迫性和您的长期计划,您必须选择一个更适合您需求的Web框架。React 和 Vue 等框架将帮助您快速构建 Web 应用程序。另一方面,Angular 不仅仅是一个 Web 开发框架,而且是一个为您提供服务器端渲染、树摇动等工具的平台。或者,您可以选择 Web 组件,不仅仅是一个框架,而且是一个 Web 标准。
步骤 4: 考虑应用程序的前端可以处理什么以及应用程序的后端(服务器端)可以处理什么。
步骤 5: 考虑允许数据访问的适当数据服务。无需将现有数据库迁移到云中即可开始使用 Web 应用程序。您将轻松处理与适当的数据提供商和 API 服务的数据通信。
第 6 步: 移动支持。Web 应用程序的主要好处之一是它们能够随时“在您手中”。话虽如此,拥有一个适合移动设备的应用程序是必要的,但同时实现却非常困难。
步骤 7: 考虑 Web 应用程序安全性 (Web AppSec)。我们的想法是建立即使受到攻击也能按预期运行的网站。该概念涉及设计到 Web 应用程序中的一组安全控制,以保护所有资产免受潜在恶意代理的侵害。与所有软件一样,Web 应用程序不可避免地包含缺陷。其中一些缺陷构成了可被利用的实际漏洞,给组织带来风险。Web 应用程序安全性可以防御此类缺陷。它涉及利用安全开发实践并在整个软件开发生命周期 (SDLC) 中实施安全措施,确保解决设计级缺陷和实现级错误。
Web 应用程序框架和预构建的 UI 组件
它可以为 Web、移动和桌面开发人员提供预构建的 UI 组件。通过 Angular、Blazor 和 Web Components 等技术之间的功能对等,它可以使迁移过程更快、更高效。
按照此分步指南了解如何通过单击生成 Angular 代码。
按照本教程学习如何轻松生成 Blazor 代码。
数据绑定和 OpenAPI
借助我们基于 Web 的低代码 App Builder,您可以轻松连接到任何 REST 数据源并合并有价值的数据。我们的最新更新包括 Swagger UI 和 Localhost 数据访问支持,提供更多灵活性和选项。
单击即可转换代码
在构建 Web 应用程序时,您可以实时预览和观察源代码。一旦您对自己的创建感到满意,就可以快速轻松地生成可用于生产的代码。然后,您可以将代码上传到 GitHub 存储库或在您首选的 IDE(例如 Visual Studio Code)中运行它。
导入设计文件
另外,您还可以在 Sketch 或 Figma 中创建/导入设计,从 Figma 设计文件导出代码或从 Sketch 生成代码,并将您自己的数据服务与 Swagger 集成,因为这提供了最强大、最简单的方式来充分利用OpenAPI 规范,使您能够设计、构建、记录和使用 REST API 等等。