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

你可能感兴趣的文章
netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
查看>>
Netty核心模块组件
查看>>
Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
查看>>
Netty源码—2.Reactor线程模型一
查看>>
Netty源码—4.客户端接入流程一
查看>>
Netty源码—4.客户端接入流程二
查看>>
Netty源码—5.Pipeline和Handler一
查看>>
Netty源码—6.ByteBuf原理二
查看>>
Netty源码—7.ByteBuf原理三
查看>>
Netty源码—7.ByteBuf原理四
查看>>
Netty源码—8.编解码原理二
查看>>
Netty源码解读
查看>>
Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
查看>>
Netty相关
查看>>
Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
查看>>
Network Sniffer and Connection Analyzer
查看>>
NetworkX系列教程(11)-graph和其他数据格式转换
查看>>
Networkx读取军械调查-ITN综合传输网络?/读取GML文件
查看>>
Net与Flex入门
查看>>
net包之IPConn
查看>>