博客
关于我
.NET之全平台一体化的体验
阅读量:442 次
发布时间:2019-03-06

本文共 1319 字,大约阅读时间需要 4 分钟。

一、前言

最近利用空闲时间研究了一番Xamarin技术,发现其提供的支持非常到位,因此决定尝试全面的开发,目标是实现“进可攻,退可守”。

全平台开发的概念是指开发的APP能够在Android、iOS、WP等移动端运行,同时又能在Windows和Linux等桌面端运行。这种开发模式的优势在于既能覆盖多个平台,又能灵活应对不同环境的需求。

二、简单实现

为了展示项目的基本实现情况,以下将通过文字描述截图内容。目前,我的开发工作主要集中在Android平台上,而iOS平台由于缺乏实际设备,暂时无法进行测试。至于UWP(Universal Windows Platform),由于设备升级到Windows 10 10568版本的问题,目前也无法实时调试,计划在未来阶段补上开发。

需要注意的是,标题中的“全平台”并非完全覆盖所有平台,但通过合理选择和配置,确实可以实现跨平台的开发需求,这并非虚构的夸张,而是真实可行的实现方案。

三、进可攻,退可守

“进可攻”主要体现在Web端的开发上。在Linux环境下,我采用Jexus(免安装Mono版)和TinyFox来部署后台网站和数据服务。虽然初衷上曾考虑使用ASP.NET Core,但由于一时难以适应,因此暂时搁置了这一选择。

“退可守”则体现在Windows Server的IIS部署上。需要强调的是,我的开发环境中并未安装Mono,这一点可能会让一些观众感到意外,但这正是实现跨平台开发的关键所在。

四、项目结构与细节

项目目前包含14个子项目,分布在5个项目文件夹中,包括多个测试项目。详细项目结构如下:

  • 01-APP:用于开发移动端应用,目前仅支持Android。
  • 02-Website:后台管理网站,基于NancyFX框架,使用自带的Forms Authentication进行身份验证。
  • 03-DataService:用于提供数据服务的接口,目前开发了两套解决方案,一套基于MVC框架,另一套基于NancyFX(使用OWIN)。
  • 04-Core:数据访问和模型层,采用Dapper进行数据库操作。
  • 05-Logic:业务逻辑层,主要包含Nancy和应用程序的基本使用方法,相关内容可参考我的前期博客。

此外,项目中还包含多个测试项目,使用xUnit进行测试,但目前前三个项目文件夹的测试尚未完成,UI测试的工作也处于探索阶段。

五、测试与学习

在此过程中,我对测试工具有了一番了解,了解到Evolve 2016上展示的Test Cloud Live功能非常有趣。然而,目前找不到相关资料,只能通过邮件联系相关人员,得到了以下回复:“请关注我们的博客,稍后会对所有人开放Test Cloud Live功能。”这让人既期待又有点失望。

六、运行图示

以下是部分项目的运行界面,虽然界面设计较为简陋,但功能已经基本实现。下方是Android端的界面,上方是基于Jexus 5.8.1.3在Linux环境下运行的Web端。

结语

目前项目仍处于开发初期,存在许多待解决的问题和bug。源码目前尚未上传到github,计划在6月底或7月初进行发布。之后将定期更新项目进展,并分享开发心得。

转载地址:http://oexkz.baihongyu.com/

你可能感兴趣的文章
Objective-C实现寻找无向图的关节点Articulation Points算法(附完整源码)
查看>>
Objective-C实现寻找欧拉路径/回路(附完整源码)
查看>>
Objective-C实现导弹跟踪算法(附完整源码)
查看>>
Objective-C实现将 b 除以模 n 的有效算法(附完整源码)
查看>>
Objective-C实现将 base64 字符串转换为字节数组算法(附完整源码)
查看>>
Objective-C实现将两个给定的字符串以O(n)的时间复杂度排列在一个字符串中算法(附完整源码)
查看>>
Objective-C实现将位转换为浮点数bitsToFloat算法(附完整源码)
查看>>
Objective-C实现将列表向右旋转 k 个位置算法(附完整源码)
查看>>
Objective-C实现将字符串中大写字母转换为小写字母(附完整源码)
查看>>
Objective-C实现将字符串从一个基转换为另一个基算法(附完整源码)
查看>>
Objective-C实现将字符串小写转大写算法(附完整源码)
查看>>
Objective-C实现将字节数组转换为 base64 编码算法(附完整源码)
查看>>
Objective-C实现将彩色图像转换为负片算法(附完整源码)
查看>>
Objective-C实现将无符号整数n变成成d进制表示的字符串s(附完整源码)
查看>>
Objective-C实现将给定的 utf-8 字符串编码为 base-16算法(附完整源码)
查看>>
Objective-C实现将给定的字符串编码为 base32算法(附完整源码)
查看>>
Objective-C实现小根堆(附完整源码)
查看>>
Objective-C实现局域网双向通信(附完整源码)
查看>>
Objective-C实现局部最大值点数算法(附完整源码)
查看>>
Objective-C实现屏幕捕获功能( 附完整源码)
查看>>