NET之全平台一体化
NET之全平台一体化的体验
一、前言
近来利用空闲时间研究了一下Xamarin的技术,想想既然提供了如此好的支持,就该尝试一切可能,来一个”大小通吃“。
何为全平台:APP包括Android、IOS、WP,WEB可在Window和Linux部署运行(进可攻,退可守)
二、简单实现
先来看张图吧

这个是本人实现项目的截图,比较简单。
app那块的话,目前仅实现了Android,IOS的话,没有机器,不想在虚拟机装(已经装了3个Linux了,再装估计要卡爆了)
UWP也是机子问题(还未升级到win 10 10568,界面不能实时看到调起来很蛋疼,所以暂时现放着,过段时间补上)
对于我这种情况来说,标题说成是全平台是夸大了一点,但是却是完全可行!!不是弄虚作假的。
下面来说说“进可攻,退可守”
这个问题主要是针对web端的。
先来说说“进可攻”,可以在linux下部署我们的后台网站和数据服务,主要的话还是Jexus(免安装mono版)和TinyFox
不是我不用ASP.NET Core,而是用的我好揪心所以就没用了。
"退可守",我们还有win server 的IIS

看,我真的没有装mono喔!!!
然后简单说说一些细节上的东西
目前有14个子项目分在5个项目文件夹里面(包含几个测试项目)
01-APP 是app相关的
02-Website 是后台管理的网站,基于NancyFx,身份验证用了自带的Forms Authentication
03-DataService 主要用于给app提供数据服务,或者可以说是接口,这里我写了两套,一套基于MVC,一套基于NancyFx(使用OWIN)
04-Core 是数据访问和模型,用到了Dapper
05-Logic 逻辑层
里面用到Nancy和app的简单使用,都可以在我前面的博客找到相应的用法
其中包含了几个测试项目,用到的是xUnit,不过前三个项目文件夹的测试还没有做,对app的UI测试还是懵懂状态
evolve 2016上看到 Test Cloud Live 很开心,不过到处找不到,最后发邮件去问,得到的回复如下
“Keep a look out on our blog for more information on when Test Cloud Live is available to everyone. But yes, at this time, it's not open for general use.”
有点小小的失望。
最后来看看部分运行图吧(界面很丑,很丑,很丑,不要吐槽)

上面是Android端的
下面是Web端的(server是jexus/5.8.1.3 Linux)



至于源码的话,现在还有许多bug,所以暂时不上传,过段时间会上传到github
NET之全平台一体化的更多相关文章
- .NET之全平台一体化的体验
一.前言 近来利用空闲时间研究了一下Xamarin的技术,想想既然提供了如此好的支持,就该尝试一切可能,来一个”大小通吃“. 何为全平台:APP包括Android.IOS.WP,WEB可在Window ...
- ewebeditor下利用ckplayer增加html5 (mp4)全平台的支持
学校数字化平台富文本编辑器一直用的ewebeditor,应该说非常的好,支持常用office文档的直接导入,极大的方便了老师们资料的上传,最近在规划整个数字化校园向全平台改版,框架采用bootstra ...
- Qt下如何修改文件的时间(全平台修改)
提供一个全平台修改文件的时间的方法,希望大家喜欢 /* UTIME.C: This program uses _utime to set the * file-modification time to ...
- 全平台轻量级 Verilog 编译器 & 仿真环境
一直苦于 modelsim 没有Mac版本,且其体量过大,在学习verilog 时不方便使用. 终于找到一组轻量级且全平台 ( Linux+Windows+macOS ) 的编译仿真工具组. Icar ...
- 全平台 Chrome 浏览器 44.0.2403.89 版本下载
全平台 Chrome 浏览器 44.0.2403.89 版本发布 详细更新日志请参见:https://chromium.googlesource.com/chromium/src/+log/43.0. ...
- 海康、大华NVR网络硬盘录像机录像无插件全平台访问实现—录像回放时间轴功能实现方法
在之前的博文中我们有介绍方案*NVR硬件录像机web无插件播放方案(支持取特定时间段视频流)*:该片博文旨在介绍时间轴功能的实现和相关接口的调用: 时间轴样式展示: 问题分析 对于 时间轴的展示实现需 ...
- EasyNVR流媒体直播之:零基础实现摄像头的全平台直播 (二)公网直播的实现
接上回(https://blog.csdn.net/xiejiashu/article/details/81276870),我们实现内网直播,可以实现直播的web观看,该篇博文我们将实现公网的直播. ...
- 可能是目前市面上唯一能够支持全平台的RTMP推流组件:Windows、Linux、Android、iOS、ARM
EasyRTMP是什么? EasyRTMP是一套RTMP直播推送功能组件,内部集成了包括:基本RTMP协议.断线重连.异步推送.环形缓冲区.推送网络拥塞自动丢帧.缓冲区关键帧检索.事件回调(断线.音视 ...
- Cocos2d-x 3.0 打造一个全平台概念文件夹
Cocos2d-x 3.0 打造一个全平台概念文件夹http:// www.eoeandroid.com/thread-328055-1-1.html
随机推荐
- Mac下显示隐藏文件 以及修改 hosts文件内容
修改hosts 文件内容: 进入etc 文件夹,找到hosts 文件,把该文件复制出来,修改完里面的内容后,先把etc中的hosts 文件删除,然后在把修改后的文件脱机去 可能需要管理员的密码,你输入 ...
- C++中实现 time_t, tm 相互转换
time_t -> tm: localtime tm -> time_t: mktime time_t curTime; time(&curTime); dwCurTime = c ...
- WebBrowser与IE的关系,如何设置WebBrowser工作在IE9模式下?
原文 WebBrowser与IE的关系,如何设置WebBrowser工作在IE9模式下? 一.问题的提出 偶然发现,Winform里的WebBrowser和IE实际安装的版本似乎并不同步,很有趣! 下 ...
- IT段子,娱乐一下
1.我是个程序员,一天我坐在路边一边喝水一边苦苦检查bug.这时一个乞丐在我边上坐下了,开始要饭,我觉得可怜,就给了他1块钱,然后接着调试程序.他可能生意不好,就无聊的看看我在干什么,然后过了一会,他 ...
- 讲解下for循环的用法,加深记忆
引子 这是一段很简单的代码,但是即便是这么简单的东西,这里我们还是需要说一下. 关于for循环整个执行流程就是,先执行var i=10,然后到了第二个语句,判断10是否大于0,很明显为true,所以此 ...
- 在C++工程中main函数之前跑代码的廉价方法(使用全局变量和全局函数)
// test.cpp : Defines the entry point for the console application. // #include "stdafx.h" ...
- PHP移动互联网开发笔记(5)——文件的上传下载
原文地址:http://www.php100.com/html/php/rumen/2014/0326/6706.html 一.文件的上传 1.client设置: (1).在 标签中将enctype和 ...
- Effective C++_笔记_条款03_尽可能使用const
(整理自Effctive C++,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 关键字const多才多艺,语法变化多端.关于const的基本用法 ...
- ASP.NET - 服务器控件button 先执行js 再执行后台的方法
关于button这个服务器控件,我一直想减少它向服务器提交数据.那些检测,还是在客户端实现就好了.这就需要javascript,但是我发现仅仅有javascript还是不够的.button服务器控件的 ...
- EF具体用在什么类型的项目上
一般来说,使用EF框架,肯定会比直接使用ADO.NET,消耗的时间多一些. 因为使用ADO.NET直接把SQL语句传回数据库执行. 而使用EF框架的话,会把所用到的尸体,转换成相对应得SQL,然后再传 ...