我想很多人都有想写一个自己框架的愿望,然后各种应用都可以使用。可是由于各种原因,很多时候也是在想象中,并没有自己一步一步去实现,而我也是这其中的一员。不管你是新手跟着我一起做还是大牛批评指点,欢迎访问,不管是板砖还是表演既然来了何不留下痕迹做纪念呢?
人生需要规划,架构也一样,没有计划的最终会偏离原先的设想。
就像阿甘正传中给船起名字一样,没有名字的船是不吉祥的,所以他给船起了珍妮号,他最喜欢女孩的名字。我也给自己框架起个名字吧,本人光棍一个,就起我外号广林的缩写吧GL。
首先,指定我们的初步目标,我希望我的框架涉及以下功能点
1.首先语言使用C#语言
2.我们要做的是CS架构
3.另外我希望我的框架的是灵活可扩展的,所以这是一个插件平台
4.通信方面使用的WCF
5.Client端使用WPF界面展示,这样就可以做出很吸引人的程序。我记得有一句话是这么说的,一个拥有好的展现手法,烂的框架的项目,可能不会通过,但是一个好的框架,没有一个很好的表现手法这个项目肯定不会通过。这就像我们都喜欢美女一样。
6.异常机制不可缺失,没有异常机制的平台,我想它应该不好
好了,有了我们的初步目标了,下一步就是基本框架设计了
一个服务端对应多个客户端,每个客户端在服务端建立相应的Session,客户端每打开一个页面,服务端在对应的Session里建立相应的页面服务,客户端与服务端数据交换采用WCF,一个简易的框架涉及这样就有了,大家觉得有什么不妥的地方或者改进的地方可以留言给我,这只是我的初步设想,没有接触到太多架构方面的东西,欢迎大家推荐一些优秀设计交流。
没有清晰的思路做起事情来就显得笨手笨脚的,下面就来设计我的页面接口吧
我觉得页面的生命周期的初始化与关闭不可少,另外客户端与服务端通信是必须的,这样页面接口清晰明了,我们后面的设计也会得心应手了。
既然有页面,那么客户端服务端的页面就会有很多,如果没有合理的设计就会混乱,那么页面管理需求就有了
好吧,我承认我不怎么会用Visio,设计个属性都不会,返回值参数都没有,图示大家能看懂就行了,有洁癖的同学轻拍就好,上图示例就是简单的页面管理器的设计接口,我们的目标又明确一步了。
一个服务端是有很多客户端连接的,那就离不开Session了
Session的作用就是针对每一个客户端建立的服务作用域,方便服务端生命周期管理,
有细粒度对象就需要管理,Session管理器就有了
基本设计都有了,设计目标清晰明了,下面就是动手的时刻,这一篇就到这里吧,我们就具体动手实战了,有兴趣的同学欢迎收听。