类似开发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是面向仓库管理的,这些开源的项目可以拿来修修改改就可以上手了,进一步降低使用门槛。

最新文章

  1. 代码的坏味道(10)——发散式变化(Divergent Change)
  2. Servant:基于Web的IIS管理工具
  3. IIS/IIS Express/Asp.net配置片段记录
  4. git push时错误提示的解决办法 By default, updating the current branch in a non-bare repository error: is denied,
  5. The Basics of 3D Printing in 2015 - from someone with 16 WHOLE HOURS' experience
  6. 无法嵌入互操作类型“ESRI.ArcGIS.Carto.RectangleElementClass”。请改用适用的接口。
  7. ex26 纠正练习
  8. razor 拼接字符串
  9. 5分钟破解wpa2密码(转)
  10. 6.原型模式(Prototype Pattern)
  11. 如何查看mac系统是32位还是64位的操作系统
  12. windows系统调用 线程 启动与挂起
  13. ios-UIWebView中js和oc代码的互调
  14. CreateThread函数&&CString::GetBuffer函数
  15. 图像储存容器Mat[OpenCV 笔记11]
  16. file_get_contents 获取不了网页内容
  17. shell基础——字符串连接
  18. stm32之GPIO库函数开发
  19. qt 提高图片加载速度
  20. MsgWaitForMultipleObjects_测试

热门文章

  1. matlab 深度学习
  2. ios-利用键盘通知处理键盘出现时遮挡控件问题
  3. WPF - 本质:数据和行为
  4. XF警告试图
  5. 读BeautifulSoup官方文档之与bs有关的对象和属性(3)
  6. WPF 数据库增删改查
  7. 从一段简单算法题来谈二叉查找树(BST)的基础算法
  8. 深入解析Android关机
  9. vs2015未能正确加载“ProviderPackage”包。
  10. Have You Tried Delphi on Amazon Linux? (就是AWS用的Linux)