基于OSGI.Net的图形界面系统
在2013年的十月份有幸接触了osgi.net和iopenworks的创始人,了解和学习的插件式开发,开始了后台数据的处理生涯。
第一个有图形界面的系统——智能农业的环境监测系统,其实在这个系统中所有的通信处理都是现有的,但是当时是由一个没有多线程处理的同事开发的,缺点就如果这个果园中如果有十个摄像头,就需要部署在十台机器上实时监控不同的位置、还有自动滴管和土壤信息的数据采集,这两个是一个单独的程序。我的任务就是在一周之内整合程序,评估时间极不准确,因为我不了解业务逻辑,在开发的过程中,我不断的遇到问题,主要是业务逻辑的实现,因为以前有过多线程开发的经验,所以构建服务框架很快,多线程通信还是可以完全把控风险大的,我使用了OSGI.Net的插件是开发框架, 让我的开发省心省力,因为我使用了很多公共插件,例如:
1、 Outlook 风格 WinForm界面框架
2、 NLog日志插件

上图是服务端(后台)的界面,前台(Web)的处理是另外一个同事的处理,双方的通信通过消息队列实现前台和后台的交互,后台将相关命令下发给对应的实体,同时将实时上报的数据存储在数据库中,提供给前台访问显示。这个程序大部分是移植的处理做了整合而已。
第二个基于OSGI.Net的程序是去年的八九月份帮一个朋友的忙,自己开发的系统是Web端,现在已近开始使用了。使用的插件,例如:
1、 Win7风格的Web界面框架
2、 NOPI库插件
3、 NLog日志插件
等等,同时还有数据库访问的插件,在开发的过程中各个插件互不影响,每一个插件就是一个独立的项目,可以相互引用,非常方便。下面是我第二个系统的几张截图,
登陆

默认页面

我的接触很皮毛,只是向大家介绍一下这种编程思想和方式,如果感兴趣可以访问OSGI.net的官网:http://www.iopenworks.com同时也可以关注创始人的博客:http://www.cnblogs.com/baihmpgy。
本人对.Net属于赶鸭子上架式的用多少学多少,并没有系统的学习语法及其编程方式,对异步处理理解不深,只有明确的概念,但没有实际的操作机会。但是在两个图形界面的程序中了解了很多新的知识和思想,本人认为值得借鉴和分享。
基于OSGI.Net的图形界面系统的更多相关文章
- Swing AWT一套新的图形界面系统
Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充. 例如说并不是所有的操作系统都提供了对树形控 ...
- [自制操作系统] BMP格式文件读取&图形界面系统框架/应用接口设计
本文将介绍在本人JOS中实现的简单图形界面应用程序接口,应用程序启动器,以及一些利用了图形界面的示例应用程序. 本文主要涉及以下部分: 内核/用户RW/RW调色板framebuffer共享区域 8bi ...
- Unity3d 内置图形界面系统(Editor GUI)
一.说在前面的 1.unity内置的ui系统,无论是在性能的表现上.功能的强大性上.制作复杂ui的便捷性上,还是其它的一些方面都不如一些第三方的插件来的好,如:NGUI和DF-GUI(PS: 后者比前 ...
- 【转】CentOS图形界面的开启与关闭
源自:http://blog.sina.com.cn/s/blog_4a1f76860100zpus.html 安装CentOS 5.6系统的时候我没有先装任何组件,现在用X Window,需要再安装 ...
- 第58节:Java中的图形界面编程-GUI
欢迎到我的简书查看我的文集 前言: GUI是图形用户界面,在Java中,图形用户界面我们用GUI表示,而GUI的完整英文为: Graphical User Interface(图形用户接口), 所谓图 ...
- java之 22天 GUI 图形界面编程(一)
转自:http://takeme.iteye.com/blog/1876850 GUI(图形用户界面) import java.awt.Button; import java.awt.FlowLayo ...
- ubuntu 启动图形界面 sudo init 5
Linux系统最早期的时候只有命令行界面,所有的工作都需要用Linux命令来完成. 随着系统的发展,以及图形界面系统的出现,Linux也出现了图形界面,使得Linux系统不再是只有计算机的专业人士才可 ...
- 使用PyQt开发图形界面Python应用专栏目录
☞ ░ 前往老猿Python博文目录 ░ 本专栏为收费专栏的文章目录,对应的免费专栏为<PyQt入门知识目录>,两个专栏都为基于PyQt的Python图形界面开发基础教程,只是收费专栏中的 ...
- 部分LINUX系统由图形界面启动变更为命令行界面启动的方法
背景: 图形界面很绚丽,但是现在并不需要图形界面,只需要命令行即可,所以要将图形界面自启动给关闭. 正文: Centos: 更改文件/etc/inittab的其中一行 id:5 ...
随机推荐
- Linux内网环境DNS修改域名指向,JAVA应用程序能否实时切换的问题总结
公司内网环境中许多调用资源(数据库.web接口等)都是通过内网DNS服务来进行域名-IP的映射. 但经常出现DNS映射修改完毕后,应用中连接的资源迟迟没有变更. 以前一直笼统的认为是linux的dns ...
- C中调用LUA回调(LUA注册表)
实现原理: 通过将LUA中得回调函数存入LUA注册表中来保存LUA函数,然后在需要回调时从LUA注册表中取出LUA函数进行调用 下面是一些预备知识:(学习两个重要的函数) 原汁原味的英文解释的最透彻, ...
- 【分享】IT产业中的三大定理(二) —— 安迪&比尔定理 (Andy and Bill's Law)
摩尔定理给所有的计算机消费者带来一个希望,如果我今天嫌计算机太贵买不起,那么我等十八个月就可以用一半的价钱来买.要真是这样简单的话,计算机的销售量就上不去了.需要买计算机的人会多等几个月,已经有计算机 ...
- H5移动前端完美布局之-margin百分比的使用
一 ,背景 在移动端页面开发我们经常会遇到一件尴尬的事 我们所开发出来的页面跟设计师所给的页面差别很大 再加上移动设备屏幕的大小不一出来的效果更是参差不齐 然后.... 当然 现实情况没有这么糟糕.. ...
- [HDOJ2604]Queuing(递推,矩阵快速幂)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2604 递推式是百度的,主要是练习一下如何使用矩阵快速幂优化. 递推式:f(n)=f(n-1)+f(n- ...
- STL笔记(4)关于erase,remove
STL笔记(4)关于erase,remove 你要erase的元素很容易识别.它们是从区间的“新逻辑终点”开始持续到区间真的终点的原来区间的元素.要除去那些元素,你要做的所有事情就是用那两个迭代器调用 ...
- Jquery Highcharts 参数配置说明
chart: renderTo 图表的页面显示容器 defaultSeriesType 图表的显示类型(line,spline, scatter, splinearea bar,pie,area,co ...
- 深入.NET框架 项目--魔兽登录系统
创建魔兽系统相关窗体: 登录窗体(frmLogin) 注册窗体(frmRegister) 主窗体 (frmMain) 实现魔兽登录系统: 登录的界面如下 实现思路: 1.创建一个对象数组,长度为1 ...
- HDU (线段树 单点更新) 敌兵布阵
哎,又切了一天的水题. 线段树果然必须自己写出来才能叫真正的会了,之前一直在套模板确实不好. 这个题目是单点更新 之 单点增减,= ̄ω ̄= #include <cstdio> <&l ...
- 点滴积累【JS】---JS小功能(createElement和insertBefore添加div下面的节点)
效果: 代码: <head runat="server"> <title></title> <script type="text ...