与企业应用开发人员多年合作,我们知道他们面临着几个挑战,其中包括:
- 随着时间的推移,需求不断变化
- 新的商机和挑战
- 在开发期间持续的反馈可能会显着影响应用程序的范围和要求
考虑到这一点,重要的是构建既灵活又可随时间轻松修改或扩展的应用程序。设计这样的灵活性可能很困难,因为它需要一种架构,允许应用程序的各个部分独立开发和测试,而不会影响应用程序的其余部分。
设计和构建应用程序的传统方法导致所谓的单片应用程序,其中组件紧密耦合,并且它们之间没有明确的分离。通常,这种单一的方法会导致难于维护的难度和效率低下的应用程序,因为可能难以在不破坏应用程序中的其他组件的情况下解决错误,也可能难以添加新功能或替换现有功能。
对这些挑战的有效补救是将应用程序分解成离散的,松散耦合的组件,可以轻松地集成到应用程序中。这种方法提供以下好处:
- 它允许个人功能由不同的个人或团队开发,测试,扩展和维护。
- 它促进了应用程序的横向功能(例如身份验证和数据访问)以及垂直功能(例如应用程序特定的业务功能)之间的重用和干净的分离。 这样可以更容易地管理应用程序组件之间的依赖关系和交互。
- 它有助于通过允许不同的个人或团队根据他们的专业知识专注于特定任务或功能,来保持角色分离。 特别是,它在用户界面和应用程序的业务逻辑之间提供了更清晰的分隔。
但是,分区应用程序时还有许多问题需要解决。 这些包括:
- 决定如何在用户界面控件及其逻辑之间提供清晰的关注点。
- 决定是否使用依赖注入容器。
- 选择不便于通过对象和类型引用进行链接的组件可以进行通信。
- 决定如何在页面之间导航,包括如何调用导航和导航逻辑应位于何处。
- 决定如何验证用户输入的正确性。 该决定必须包括如何验证用户输入以及如何通知用户有关验证错误。
- 决定如何执行身份验证以及如何通过授权保护资源。
- 决定如何从Web服务访问远程数据,包括如何可靠地检索数据以及如何缓存数据。
- 决定如何单元测试应用程序。
使用Xamarin.Forms引入企业应用程序模式
今天,我们很高兴向您介绍电子书的预览版,为这些问题(及更多)提供指导。
电子书专注于开发Xamarin.Forms更容易测试,维护和发展的企业应用程序的核心模式和架构指导。 提供了关于如何实现Model-View-ViewModel(MVVM)模式,依赖注入,导航,验证和配置管理的指导,同时保持松耦合。 此外,还提供了使用IdentityServer执行认证和授权,从集装式微服务访问远程数据以及单元测试的指导。
样例应用
该电子书附带了eShopOnContainers应用程序的源代码,这是一个包含以下功能的在线商店:
- 使用后端服务进行身份验证和授权。
- 浏览衬衫,咖啡杯和其他营销物品的目录。
- 过滤目录。
- 从目录中订购物品。
- 查看用户的订单历史记录。
- 配置设置。
下图显示了示例应用程序架构的高级概述:
示例应用程序附带三个客户端应用程序:
- 使用ASP.NET Core开发的MVC应用程序。
- 用Angular 2和Typescript开发的单页应用程序(SPA)。
- 用Xamarin.Forms开发的跨平台移动应用程序。
示例应用程序还包括以下后端服务:
- 一个身份微服务器,它使用ASP.NET Core Identity和IdentityServer。
- 目录微服务,它是一种数据驱动,创建,读取,更新,删除(CRUD)服务,它使用EntityFramework Core来消耗SQL Server数据库。
- 一个订购的微服务器,它是一个使用域驱动设计模式的域驱动服务。
- 一个篮子微服务器,它是使用Redis Cache的数据驱动CRUD服务。
这些后端服务使用ASP.NET Web API实现为微服务器,并在单个Docker主机中部署为唯一容器。然后,客户端应用程序通过表示状态转移(REST)Web界面与后端服务进行通信。
移动应用
电子书专注于使用Xamarin.Forms构建跨平台企业应用程序,并使用eShopOnContainers手机应用程序作为示例。 下图显示了eShopOnContainers手机应用程序提供前面列出的功能的页面:
移动应用程序消耗由集装箱式微服务提供的后端服务。 但是,它也可以配置为为希望避免部署后端服务的用户使用来自模拟服务的数据。
结束语
使用Xamarin.Forms的企业应用程序模式侧重于开发Xamarin.Forms更容易测试,维护和演进的企业应用程序的核心模式和架构指导。 提供了关于如何实现MVVM,依赖注入,导航,验证和配置管理的指导,同时保持松耦合。 此外,还提供了使用IdentityServer执行认证和授权,从集装式微服务访问远程数据以及单元测试的指导。
电子书还附带了一个示例应用程序,可以在下载。
电子书是的补充,该应用程序专注于开发集装箱式微服务及其部署。
值得阅读的其他指南包括,以及。