类似开发WinForm的方式,使用C#开发Android和IOS的移动应用?听起来感觉不可思议,那么Smobiler平台到底是如何实现的呢,这里给大家介绍一下。

客户端

  Smobiler分为两种客户端,一种是开发版,一种是打包版

开发版:顾名思义,就是用来做开发时候的版本,在上面一章节中,大家其实都用过了,就是扫描服务端的二维码,添加服务端后,就可以进行开发调试了。这个客户端是官方的应用,可以在如下地址下载:https://www.smobiler.com/download.html

  IOS对应苹果客户端,Android对应安卓客户端,内测版本是代表还没有正式发布的版本,比如上面,正式版本是4.5,内测版本是4.6,内测版本官方说是每周更新,和内部开发保持一致。所以如果有一些Bug类的,内测版本很快能解决,不用等正式版了。下面是开发版的样子。

打包版:打包版的意思就是把生成自己独立可安装的APP,可以自定义应用名称,应用图标,企业用户还可以自定义启动页面,关于页等等。可以分别打包Android和IOS的,不过IOS的是要去买苹果的开发者账号的,这个具体有文档,去看官方的文档吧。 https://www.smobiler.com/yunapp.aspx#应用打包

  另外对于客户端的可扩展性,Smobiler推出了插件开发,就是可以开发原生的Android或者IOS的功能,然后集成到Smobiler的客户端里,这个方便了一些需要个性化实现的功能。还是很方便的,可以看文档 https://www.smobiler.com/guide/plugin.aspx

服务端

  Smobiler的服务端其实就是一个完整的.Net Framework,所以你需要实现Socket、WebService、WCF,以及调用数据库接口,甚至COM接口都是可以的,只要是.Net Framework支持的,Smobiler都支持。另外如果你需要修改界面和代码,不需要修改客户端,只需要在服务端上修改,重新布置就可以了。另外如果你关掉客户端,再重新打开,那么你还会回到上次你操作的地方,而且数据也不会丢失,你可能会说,这就是一个Web吧,其实不是,因为客户端是原生的,另外如果是Web,都是无状态的,但是Smobiler的界面是有状态的。所以它不是一个Web。那么它是什么呢?

  你可以这么理解,一个原生展现的客户端 + 类似于WebForm+WinForm结合体的服务端。这样来理解就简单多了。客户端只是一个展现层,把客户端上输入或者操作通过socket与发送给服务端做处理,服务端把界面和业务逻辑通过socket发送给客户端显示。所以服务端缓存和客户端的数据和状态,这也解释了为什么关闭客户端,还能回到上一次操作的地方。因为你的数据在服务端。另外也解释了为什么修改业务和界面,只需要修改服务端即可。总结来说:SmobilerDesigner通过实现.NET的component组件方式,借助Visual Studio集成开发环境来开发移动应用。SmobilerClient是通用的框架客户端,使用自有的stml协议实现客户端的原生控件渲染和事件。

  这种方式可能有人说好,有人说不好,不过考虑开发速度,开发成本,开发门槛(比如一个只会c#的简单开发的人,可以很快开发出一个应用出来,不用去学习Android或者IOS的复杂的知道,甚至也不用学习webapi这种接口,这就产生了价值)。所以Smobiler也提供了一些开源的产品,比如SmoONE是面向OA的,SmoSEC是面向设备管理的,SmoWMS是面向仓库管理的,这些开源的项目可以拿来修修改改就可以上手了,进一步降低使用门槛。

转载于:https://blog.51cto.com/14360220/2402812

smobiler介绍(二)相关推荐

  1. 蒙特卡罗方法介绍( 二)

    蒙特卡罗方法介绍( 二) 一.蒙特卡罗求解定积分 蒙特卡洛方法求解定积分有两种方法,一种是上一节中讲的投点法,另外一种是期望法(也称平均值法). 1.1 投点法 给出如下曲线f(x)f(x)f(x), ...

  2. Python Pillow(PIL)库的用法介绍(二)

    Python Pillow(PIL)库的用法介绍(二) 在上一篇文章中介绍了Pillow库的一些基本用法,参考:https://blog.csdn.net/weixin_43790276/articl ...

  3. Lucene.Net 2.3.1开发介绍 —— 二、分词(一)

    原文:Lucene.Net 2.3.1开发介绍 -- 二.分词(一) Lucene.Net中,分词是核心库之一,当然,也可以将它独立出来.目前Lucene.Net的分词库很不完善,实际应用价值不高.唯 ...

  4. abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二)

    abp(net core)+easyui+efcore实现仓储管理系统--解决方案介绍(二) 参考文章: (1)abp(net core)+easyui+efcore实现仓储管理系统--解决方案介绍( ...

  5. 尼康d850相机参数测试软件,新功能介绍二:景深合成与自动调焦_尼康 D850_数码影像评测-中关村在线...

    ·新功能介绍二:景深合成与自动调焦 对于D850来说,机身也加入了非常多的新功能,这里还逐一介绍一下.首先我们要说的机身的景深合成功能.什么是景深合成?相信很多朋友都了解,相机在很多环境下,景深太浅是 ...

  6. 企业级360°全方位用户画像:项目介绍[二]

    絮叨两句: 博主是一名软件工程系的在校生,利用博客记录自己所学的知识,也希望能帮助到正在学习的同学们 人的一生中会遇到各种各样的困难和折磨,逃避是解决不了问题的,唯有以乐观的精神去迎接生活的挑战 少年 ...

  7. 《C#零基础入门之百识百例》(五十二)封装介绍 -- 二维多项式求值

    C#零基础入门 面向对象 -- 封装介绍 -- 二维多项式求值 前言 一,封装概念 二,封装属性 三,实例练习 -- 二维多项式求值 3.1 题目描述 3.2 问题分析 3.3 参考代码 前言 本文属 ...

  8. C语言生成midi文件,介绍二个wave 转 midi的开源项目

    //lihaoyxj@gmail.com 在进行音频处理时,往往需要把wav数据转成其它格式,而作为音乐编辑类的软件,更多则是要以midi格式去处理. 在这里简单介绍二款开源的有关音频中和midi相关 ...

  9. 白鹭(egret)工具集介绍二

    白鹭[egret]工具集介绍二 前言 一.Egret Wing 3 二.Res Depot 三.Texture Merger 四.Egret Feather 五.Egretia Server 六.Eg ...

  10. 工控系统及装备M10连接器耐压测试介绍二接上一篇

    工控系统及装备M10连接器耐压测试介绍二接上一篇测试电压 样品应服从于所规定的一定量和一定属性(交流或直流)的测试电压. 6.2.3 测试中的电压上升率 除非另作说明﹐否则测试电压应以接近于500伏/ ...

最新文章

  1. 老调重弹:插件式框架开发的一个简单应用
  2. 网上看到的一道题,分享一下
  3. Python学习10 内置属性 对象属性 类属性 私有属性 私有方法 对象方法 类方法 静态方法
  4. maven 镜像_Maven(一)
  5. mysql10.3修改默认存储路径
  6. 小程序 微信红包封面后台独立版 带测评积分功能源码
  7. Django:admin管理后台2,ModelAdmin模型管理器类
  8. 游戏开发之类实现String及其迭代器(C++基础)
  9. C#实现Windows开机自启动
  10. 关于java实习报告周记_2019年度热门关于java实习报告周记优秀七篇
  11. 程序员高手必会的十大编程算法
  12. 4k hidpi 黑苹果_黑苹果开启缩放分辨率HiDPi以及字体模糊的调整方法总结
  13. 关于阿里云的一键部署工具【飞流】的使用(详细)
  14. 图片后缀和ContentType大全
  15. 闲聊机器人实例一:python实现小姜机器人chatbot_xiaojiang聊天(概述)
  16. 给 Java 程序猿们推荐一些值得一看的好书
  17. 可以查看计算机主要自启动项的技术,电脑中怎么查看启动项
  18. 系统镜像ISO、GHO、WIM、ESD的区别
  19. Whole Word Masking
  20. android飞机大战功能,安卓飞机大战(二) SurfaceView实现自制背景

热门文章

  1. layoutSubviews 调用情况
  2. Openfire服务器的安装部署
  3. android随手记
  4. mysql-cluster 安装配置
  5. 分享一段Java搞笑的代码注释
  6. 深入Jetty源码之Servlet框架及实现(AsyncContext、RequestDispatcher、HttpSession)
  7. Git详解之二 Git基础
  8. linux中的for命令
  9. Cron 表达式极速参考
  10. 揭秘vue——vue-cli3全面配置