一步步实现自己的框架系列(一):初步架构功能设计
2013-05-18 11:04
253 查看
我想很多人都有想写一个自己框架的愿望,然后各种应用都可以使用。可是由于各种原因,很多时候也是在想象中,并没有自己一步一步去实现,而我也是这其中的一员。不管你是新手跟着我一起做还是大牛批评指点,欢迎访问,不管是板砖还是表演既然来了何不留下痕迹做纪念呢?
人生需要规划,架构也一样,没有计划的最终会偏离原先的设想。
就像阿甘正传中给船起名字一样,没有名字的船是不吉祥的,所以他给船起了珍妮号,他最喜欢女孩的名字。我也给自己框架起个名字吧,本人光棍一个,就起我外号广林的缩写吧GL。
首先,指定我们的初步目标,我希望我的框架涉及以下功能点
![](http://images.cnitblog.com/blog/293636/201305/15075818-ec20aedd463a44a58c7a911576069d8e.jpg)
1.首先语言使用C#语言
2.我们要做的是CS架构
3.另外我希望我的框架的是灵活可扩展的,所以这是一个插件平台
4.通信方面使用的WCF
5.Client端使用WPF界面展示,这样就可以做出很吸引人的程序。我记得有一句话是这么说的,一个拥有好的展现手法,烂的框架的项目,可能不会通过,但是一个好的框架,没有一个很好的表现手法这个项目肯定不会通过。这就像我们都喜欢美女一样。
6.异常机制不可缺失,没有异常机制的平台,我想它应该不好
好了,有了我们的初步目标了,下一步就是基本框架设计了
![](http://images.cnitblog.com/blog/293636/201305/16132858-b7208dbebf1a41aa941e24a7e50f2dad.jpg)
一个服务端对应多个客户端,每个客户端在服务端建立相应的Session,客户端每打开一个页面,服务端在对应的Session里建立相应的页面服务,客户端与服务端数据交换采用WCF,一个简易的框架涉及这样就有了,大家觉得有什么不妥的地方或者改进的地方可以留言给我,这只是我的初步设想,没有接触到太多架构方面的东西,欢迎大家推荐一些优秀设计交流。
没有清晰的思路做起事情来就显得笨手笨脚的,下面就来设计我的页面接口吧
![](http://images.cnitblog.com/blog/293636/201305/17175036-e3c5fd51fc064fee9820eb046b39c297.jpg)
我觉得页面的生命周期的初始化与关闭不可少,另外客户端与服务端通信是必须的,这样页面接口清晰明了,我们后面的设计也会得心应手了。
既然有页面,那么客户端服务端的页面就会有很多,如果没有合理的设计就会混乱,那么页面管理需求就有了
![](http://images.cnitblog.com/blog/293636/201305/17175441-81ea85c569bd45a0bbfaf3039221cd55.jpg)
好吧,我承认我不怎么会用Visio,设计个属性都不会,返回值参数都没有,图示大家能看懂就行了,有洁癖的同学轻拍就好,上图示例就是简单的页面管理器的设计接口,我们的目标又明确一步了。
一个服务端是有很多客户端连接的,那就离不开Session了
![](http://images.cnitblog.com/blog/293636/201305/17180704-b9bd8cde559146a0bfa03408c045ef22.jpg)
Session的作用就是针对每一个客户端建立的服务作用域,方便服务端生命周期管理,
有细粒度对象就需要管理,Session管理器就有了
![](http://images.cnitblog.com/blog/293636/201305/17180744-39b8f153f64748da910833c4775ead16.jpg)
基本设计都有了,设计目标清晰明了,下面就是动手的时刻,这一篇就到这里吧,我们就具体动手实战了,有兴趣的同学欢迎收听。
人生需要规划,架构也一样,没有计划的最终会偏离原先的设想。
就像阿甘正传中给船起名字一样,没有名字的船是不吉祥的,所以他给船起了珍妮号,他最喜欢女孩的名字。我也给自己框架起个名字吧,本人光棍一个,就起我外号广林的缩写吧GL。
首先,指定我们的初步目标,我希望我的框架涉及以下功能点
![](http://images.cnitblog.com/blog/293636/201305/15075818-ec20aedd463a44a58c7a911576069d8e.jpg)
1.首先语言使用C#语言
2.我们要做的是CS架构
3.另外我希望我的框架的是灵活可扩展的,所以这是一个插件平台
4.通信方面使用的WCF
5.Client端使用WPF界面展示,这样就可以做出很吸引人的程序。我记得有一句话是这么说的,一个拥有好的展现手法,烂的框架的项目,可能不会通过,但是一个好的框架,没有一个很好的表现手法这个项目肯定不会通过。这就像我们都喜欢美女一样。
6.异常机制不可缺失,没有异常机制的平台,我想它应该不好
好了,有了我们的初步目标了,下一步就是基本框架设计了
![](http://images.cnitblog.com/blog/293636/201305/16132858-b7208dbebf1a41aa941e24a7e50f2dad.jpg)
一个服务端对应多个客户端,每个客户端在服务端建立相应的Session,客户端每打开一个页面,服务端在对应的Session里建立相应的页面服务,客户端与服务端数据交换采用WCF,一个简易的框架涉及这样就有了,大家觉得有什么不妥的地方或者改进的地方可以留言给我,这只是我的初步设想,没有接触到太多架构方面的东西,欢迎大家推荐一些优秀设计交流。
没有清晰的思路做起事情来就显得笨手笨脚的,下面就来设计我的页面接口吧
![](http://images.cnitblog.com/blog/293636/201305/17175036-e3c5fd51fc064fee9820eb046b39c297.jpg)
我觉得页面的生命周期的初始化与关闭不可少,另外客户端与服务端通信是必须的,这样页面接口清晰明了,我们后面的设计也会得心应手了。
既然有页面,那么客户端服务端的页面就会有很多,如果没有合理的设计就会混乱,那么页面管理需求就有了
![](http://images.cnitblog.com/blog/293636/201305/17175441-81ea85c569bd45a0bbfaf3039221cd55.jpg)
好吧,我承认我不怎么会用Visio,设计个属性都不会,返回值参数都没有,图示大家能看懂就行了,有洁癖的同学轻拍就好,上图示例就是简单的页面管理器的设计接口,我们的目标又明确一步了。
一个服务端是有很多客户端连接的,那就离不开Session了
![](http://images.cnitblog.com/blog/293636/201305/17180704-b9bd8cde559146a0bfa03408c045ef22.jpg)
Session的作用就是针对每一个客户端建立的服务作用域,方便服务端生命周期管理,
有细粒度对象就需要管理,Session管理器就有了
![](http://images.cnitblog.com/blog/293636/201305/17180744-39b8f153f64748da910833c4775ead16.jpg)
基本设计都有了,设计目标清晰明了,下面就是动手的时刻,这一篇就到这里吧,我们就具体动手实战了,有兴趣的同学欢迎收听。
相关文章推荐
- 一步步实现自己的框架系列(四):页面与页面服务的创建
- 一步步实现自己的框架系列(二):插件框架实现
- 一步步实现自己的框架系列(三):客户端服务端通信的实现
- 从零开始编写自己的C#框架(8)——后台管理系统功能设计
- html制作简单框架网页 实现自己的音乐驿站 操作步骤及源文件下载 (播放功能限mp3文件)
- 模块管理常规功能自定义系统的设计与实现(12--Grid导航设计初步[2])
- 怎样更好的设计你的REST API之基于REST架构的Web Service设计及REST框架实现
- 自己动手设计并实现一个linux嵌入式UI框架
- 模块管理常规功能自定义系统的设计与实现(11--Grid导航设计初步[1])
- 初步架构功能设计
- ajax实时任务提示功能的实现 -- vb2005xu自己动手系列(1)
- 设计模式2思考——web框架中—页面功能设计的实现
- kingshard架构设计和功能实现
- [.NET领域驱动设计实战系列]专题七:DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能
- 《自己动手写框架2》:用200行的DBF解析器来展示良好架构设计
- Android 框架设计Demo,一个简单的MVP示例搜索功能,网络请求用Retrofit+RxJava实现
- 基于.Net(C#开发)平台的三层框架架构软件的设计与实现
- 架构,改善程序复用性的设计~第三讲 实现一种功能的代码只能出现在一处(续)
- .NET架构设计、框架设计系列文章总结
- 模块管理常规功能自己定义系统的设计与实现(36--终级阶段 综合查询[3])