博客
关于我
.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/

你可能感兴趣的文章
Openlayers高级交互(3/20):动态添加 layer 到 layerGroup,并动态删除
查看>>
Openlayers高级交互(4/20):手绘多边形,导出KML文件,可以自定义name和style
查看>>
Openlayers高级交互(5/20):右键点击,获取该点下多个图层的feature信息
查看>>
Openlayers高级交互(6/20):绘制某点,判断它是否在一个电子围栏内
查看>>
Openlayers高级交互(7/20):点击某点弹出窗口,自动播放视频
查看>>
Openlayers高级交互(8/20):选取feature,平移feature
查看>>
Openlayers高级交互(9/20):编辑图形(放缩、平移、变形、旋转),停止编辑
查看>>
Openlayers:DMS-DD坐标形式互相转换
查看>>
openlayers:圆孔相机根据卫星经度、纬度、高度、半径比例推算绘制地面的拍摄的区域
查看>>
OpenLDAP(2.4.3x)服务器搭建及配置说明
查看>>
OpenLDAP编译安装及配置
查看>>
Openmax IL (二)Android多媒体编解码Component
查看>>
OpenMCU(一):STM32F407 FreeRTOS移植
查看>>
OpenMCU(三):STM32F103 FreeRTOS移植
查看>>
OpenMCU(三):STM32F103 FreeRTOS移植
查看>>
OpenMCU(二):GD32E23xx FreeRTOS移植
查看>>
OpenMCU(五):STM32F103时钟树初始化分析
查看>>
OpenMCU(四):STM32F103启动汇编代码分析
查看>>
OpenMetadata 命令执行漏洞复现(CVE-2024-28255)
查看>>
OpenMMLab | AI玩家已上线!和InternLM解锁“谁是卧底”新玩法
查看>>