一个好老好老的老程序员了。
全部博文(915)
分类: Android平台
2017-10-10 20:25:07
无论平台如何,企业应用开发人员都面临着几个挑战:
考虑到这些,建立可以随时间轻松修改或扩展的应用程序很重要。 设计这种适应性可能很困难,因为它需要允许应用程序的各个部分独立开发和测试的架构,而不会影响应用程序的其余部分。
许多企业应用程序非常复杂,需要多个开发人员。 决定如何设计应用程序可能是一个重大挑战,以便多个开发人员可以独立工作在不同的应用程序上,同时确保在集成到应用程序中时,这些程序无缝集成。
设计和构建应用程序的传统方法导致所谓的单片应用程序,其中组件紧密耦合,并且它们之间没有明确的分离。 通常,这种单一的方法导致难以维护的应用程序,因为可能难以在不破坏应用程序中的其他组件的情况下解决错误,并且可能难以添加新功能或替换现有功能。
对这些挑战的有效补救是将应用程序分解成离散的,松散耦合的组件,可以轻松地集成到应用程序中。 这种方法提供了几个好处:
本指南提供有关这些问题的指导,并重点介绍使用Xamarin.Forms构建跨平台企业应用程序的核心模式和架构。 该指南旨在通过解决常见的Xamarin.Forms企业应用程序开发场景,并通过支持Model-View-ViewModel(MVVM)模式来分离演示,演示逻辑和实体的关注,从而帮助生成适应性强,可维护和可测试的代码。
本指南包括一个示例应用程序eShopOnContainers,它是一个包含以下功能的在线商店:
图1-1提供了示例应用程序架构的高级概述。
图1-1:eShopOnContainers高级架构
示例应用程序附带三个客户端应用程序:
有关Web应用程序的信息,请参阅。
示例应用程序包括以下后端服务:
这些后端服务作为使用ASP.NET Core MVC的微服务实现,并在单个Docker主机中部署为唯一容器。 总而言之,这些后端服务被称为eShopOnContainers参考应用程序。 客户端应用程序通过表示状态转移(REST)Web界面与后端服务进行通信。有关微服务和Docker的更多信息,请参阅Containerized微服务.
有关后端服务实现的信息,请参阅 .。
本指南的重点是使用Xamarin.Forms构建跨平台企业应用程序,并使用eShopOnContainers移动应用程序作为示例。 图1-2显示了eShopOnContainers移动应用程序中提供前面列出的功能的页面。
图1-2:eShopOnContainers手机应用程序
移动应用程序使用eShopOnContainers参考应用程序提供的后台服务。 但是,它可以配置为为希望避免部署后端服务的用户使用来自模拟服务的数据。
eShopOnContainers手机应用程序执行以下Xamarin.Forms功能:
有关此功能的更多信息,请参阅Xamarin开发人员中心上的Xamarin.Forms文档,以及。
此外,eShopOnContainers手机应用程序中的某些类提供了单元测试。
eShopOnContainers移动应用程序解决方案将源代码和其他资源组织到项目中。 所有项目都使用文件夹将源代码和其他资源组织到类别中。 下表列出了构成eShopOnContainers手机应用程序的项目:
项目 |
描述 |
eShopOnContainers.Core |
该项目是包含共享代码和共享UI的便携式类库(PCL)项目。 |
eShopOnContainers.Droid |
该项目拥有Android特定代码,是Android应用的入门点。 |
eShopOnContainers.iOS |
该项目拥有iOS专用代码,是iOS应用程序的入门点。 |
eShopOnContainers.UWP |
该项目拥有通用Windows平台(UWP)特定代码,是Windows应用程序的入门点。 |
eShopOnContainers.TestRunner.Droid |
该项目是eShopOnContainers.UnitTests项目的Android测试运行器。 |
eShopOnContainers.TestRunner.iOS |
这个项目是eShopOnContainers.UnitTests项目的iOS测试运行器。 |
eShopOnContainers.TestRunner.Windows |
该项目是eShopOnContainers.UnitTests项目的通用Windows平台测试运行器。 |
eShopOnContainers.UnitTests |
该项目包含eShopOnContainers.Core项目的单元测试。 |
来自eShopOnContainers手机应用程序的课程可以重新用于任何Xamarin.Forms应用程序,很少或根本没有修改。
eShopOnContainers.Core PCL项目包含以下文件夹:
文件夹 |
描述 |
Animations |
包含能够在XAML中使用动画的类。 |
Behaviors |
包含暴露于视图类的行为。 |
Controls |
包含应用程序使用的自定义控件。 |
Converters |
包含将自定义逻辑应用于绑定的值转换器。 |
Effects |
包含EntryLineColorEffect类,用于更改特定Entry控件的边框颜色。 |
Exceptions |
包含自定义Service AuthenticationException。 |
Extensions |
包含VisualElement和IEnumerable 类的扩展方法。 |
Helpers |
包含应用程式的辅助类。 |
Models |
包含该应用程序的模型类。 |
Properties |
包含AssemblyInfo.cs,.NET程序集元数据文件。 |
Services |
包含实现提供给应用程序的服务的接口和类。 |
Triggers |
包含BeginAnimation触发器,用于在XAML中调用动画。 |
Validations |
包含验证数据输入的类。 |
ViewModels |
包含暴露于页面的应用程序逻辑。 |
Views |
包含应用程序的页面。 |
平台项目包含效果实现,自定义渲染器实现和其他平台特定的资源。
Xamarin的跨平台移动应用开发工具和平台为B2E,B2B和B2C移动客户端应用提供了全面的解决方案,能够在所有目标平台(iOS,Android和Windows)之间共享代码,并有助于降低总成本 的所有权。 应用程序可以共享其用户界面和应用程序逻辑代码,同时保留本机平台的外观和感觉。
企业应用开发人员面临着几个挑战,可以在开发过程中改变应用的架构。 因此,重要的是构建一个应用程序,以便随着时间的推移可以修改或扩展。 设计这种适应性可能很困难,但通常包括将应用程序分割成离散的,松散耦合的组件,可以轻松地集成到应用程序中。