框架之路入门

按耐不住激动的心情,因为继上篇文章后,不断的完善框架,今天终于整个系统基本稳定了,就继续谈框架。

我做C#开发已经近五年了。已经爱上她了,我经常开玩笑说,写代码如同谈恋爱,关键是我想认真的做一名程序员而不是码农。

简单回顾一下,目前系统是WCF三层C/S插件系统。服务器端是WCF程序寄宿在IIS中,其中我的配置设计是长连接,客户端支持多线程,一个volatile的实例对象。客户端用Winform,其中客户端框架及规则及核心代码都是我实现编写的,顾今天只谈客户端。

什么是插件框架?一个插件是业务上可划分的模块,代码布局上是一个程序集,(当然构件系统可以对应多个程序集)。框架的作用是把程序集加载到内存,及负责程序集中的功能的路由通信。

现在的系统是使用osgi把程序集加载到内容中,因为仅是使用此功能,所以完全可以用C#中的反射程序集加载到内存,注意用LoadFile方法。

目前关于框架所设计的表有模块表,插件表,窗体表,元素表。

主界面(框架的控制中心)设计界面只有几个容器,其他全是动态生成的(模块,插件,窗体)。

说说路由通信规则吧,什么叫路由通信呢?程序跑起来之后所有的功能都加载到主界面了。而每个模块中的插件在不同的程序集中,(界面主要是动态生成的),怎么能实现从一个插件中的某个窗体跳转到主界面任意一个插件中的窗体上且带着参数传过去呢?

这就是路由通信规则,首先界面上的窗体都继承一个基类,这样我可以在基类中定义一个事件,如果在窗体中激活这个事件必须通知主界面,然后在主界面中需找要跳转的窗体。想到查找应该立马想到字典,但是字典中的值不能是一个简单的对象,必须包括模块,插件,窗体。怎么把附带的参数传给要跳转的窗体呢?应想到object类,我用的是dynamic定义(实际也是object),实参主要用匿名类对象(方便构造参数)。找到要跳转的窗体后怎么解析参数呢?我主要用反射解析对象中的属性。

再说说我这个系统中的权限吧,权限主要是界面上控件是否显示,是否启用。目前我是把界面上元素分类后存在不同的表中,然后把这些表构建成权限树,然后在用户权限那里给用户分配权限。

框架主要的已经说完了,在winform中如果用原生的控件肯定满足不了某些界面风格或功能,这样就需要做用户控件或扩展控件了。改变控件风格主要是重绘控件,控件的真正激活者是鼠标或键盘的那几个事件,来通知操作系统,操作系统再发消息到我们的应用系统,然后拦截编写处理函数实现我们的功能。

其实asp.net就是一个插件框架,它管理着我们的web应用程序。(后续我会再写一遍Web应用程序的核心功能)。

程序员最重要的就是编程思想和工作中的悟性。我偶尔还在看C语言,虽然用不上,但是我是通过C思考C#深入编程思想。

我是大专软件技术专业,2011年就考了国家软考中级职称。现在培训机构多如毛,你是否喜欢编程,是否可以一坐一天呢?是否可以坚持五年以上?别听说程序员工资高,想清楚再入行。

再次补充一下,新的应用系统一定重视pdm数据库模型,保证一直都是最新最完整的数据结构,如果想在新系统中立足,一定要控制系统的核心功能,框架,及规则(框架设计师玩的就是规则,业务是定要求不要强迫其他程序员)。代码生成规则主要是靠pdm完成的。

程序员不喜欢别人管着,对一个自觉的程序员,被人管着是不能发挥创造性的。我做这个新系统,当时也是破斧成舟,在老系统之中,和直接领导意见不统一(某些40多岁的程序员不学新技术总是夜郎自大,如果大boss再不懂技术,那这家公司会埋没很多人才,建议大boss直接管理核心的程序员像直辖市一样),我当时说如果这个系统做不出来,我直接辞职(也是经历了很多艰辛的日日夜夜,完事开头难嘛)。

写的有些乱,最后一句,你努力的时候一定要告诉自己有个人在看着你,那个人就是未来的自己。想成为技术大神的路还有很远,我们只有沉下心做苦行僧。

----纪念孤独的日子。

----苦行僧

时间: 2024-10-26 13:09:56

框架之路入门的相关文章

2015前端组件化框架之路

特别声明:本文转自@民工精髓的<2015前端组件化框架之路>.谢谢@民工精髓的分享!著作权归作者所有. 编辑推荐: 掘金是一个高质量的技术社区,从 CSS 到 Vue.js,性能优化到开源类库,让你不错过前端开发的每一个技术干货. 点击链接查看最新前端内容,或到各大应用市场搜索「 掘金」下载APP,技术干货尽在掌握中著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.原文: http://www.w3cplus.com/components-in-webapp.html ? w

Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射 前言 上文讲述了数据库配置使用,搭建好数据库的链接方式了我们知道怎么做了. 事实上,至今我们仍然还没有讲到代码方面,花了前面这么多篇幅讲解,主要是想由浅入深,不然一上来给大家讲解这讲解那的,听的也一头雾水,反而得不到效果. 这篇比较重要,因为它是我们在使用Far

3.Magicodes.NET框架之路——预览(一)

3.Magicodes.NET框架之路——预览(一) 前言 一眨眼,已经过去两个多月了 ,哥已经火力全开了(业余时间和精力,甚至为此放弃了各种私活),所以大家不要抱怨慢哈.编程犹如逆水行舟,不进则退.这段时间,一方面是不断地重构和设计框架,另一方面也系统的学习了很多新技术,同时也感受到了其强大的生命力. 所以这两个多月,也感慨良多.两个多月的业余时间和精力,两个多月没玩LOL和CF,两个多月的全身心投入…… 现在本篇就重点说说架构这些事: 架构多次重构,甚至核心模块多次推倒重来. 架构已支持MV

Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表/视图缓存操作 TableCahceSet.ViewCahceSet 前言 在上篇中,我们学会了存储过程的关系映射,其中知道了存储过程需要使用:ProcSet作为操作的上下文,以及在Field特性上,我们知道了新的两个属性用来存储过程的参数输入输出. 在上篇末尾,提到了

Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置及其它配置文件

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:新版本说明 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射 前言 Farseer.Net是支持多数据库的ORM,使用者通过配置文件即可切换指定的数据库而不需要修改项目中的任何代码.本篇讲述如何进行数据库环境的配置.同时也讲述其它配置文件的使用. 配置文件 1.配置文件的路径: 不管是WebForm.Mvc.WinForm,配置文件统一放在:~

Farseer.net轻量级开源框架 V1.x 入门篇:表的数据操作

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:视图实体类映射 前言 先跟大家抱歉下,教程迟迟没有更新,因为一个人的精力实在有限(借口?好吧,我认了). 想要Farseer.Net发展的更好,需要认真.客观解读群里朋友们的建议,实际上也确实是这样,有些思想.功能自己确实没想到(必境我自己所能接触的业务场景是非常有限的). 当然在考虑Farse

Farseer.net轻量级开源框架 V1.x 入门篇:新版本说明

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次版本的开发从3月份开始,花了一个月的时间完成了概念版本设计.开发.到了4月份进行多次的内核的重构设计.到了5月份进行大规模的BUG修复.代码优化. 截止到今天(6月初),已知的BUG都已修复,并已在2个项目中应用了,并且运行良好. 本篇主题 1.新增队列管理: 新版本改变了V0.x时的使用方式,以Entityf

Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 前言 我们知道对于关系数据库,视图的出现可以在一定的情况下减少因要进行数据关联而带来的大量SQL语句,它可以让我们就像访问一张表一样的简单操作. 作为ORM来说,支持视图也是一项最基础的工作.然而大部份的ORM中,对视图没有特意去提供这个类,因为视图的SQ

Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置及其它配置文件 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表的数据操作 前言 上文讲述了数据库配置及其它配置文件的使用,搭建好数据库的链接方式了,接下来就是数据库中的表与实体类的关联了(映射). 在V1.x中,新增了视图.存储过程的映射.在以往的解决方案中,视图是当成”表“来操作的. 但是我们的视图通常只是为了方便查询而建的.而表支持写操作