也学框架 1

框架是,什么。。。

我也不知道哎,之前难道真的是在框架组?

。框架,框架---   一个个的框框,搭建一个架子。

从不同角度看问题,看到的不一样。废话。。常说三层架构??

1.从分层的角度(物理分层,逻辑分层?)

--------软件 指用户操作的可视化,交互界面

  • 单机的(【软件】完全在用户电脑上,拔了网线也毫无影响)
  • --双机的(前面基础上,数据量太大 放入【数据库】,数据库单独放置一个机器上{数据库服务器},软件运行在用户电脑上,通过网络连接数据库,需要时与数据库交互,操作数据)
  • ---三机的(前面基础上,处理逻辑太复杂,用户电脑性能不行,分离出业务逻辑处理程序 单独放置在一个【好机器】上{应用程序服务器},与{数据库服务器}进行交互,操作数据。软件运行在用户电脑上,收集用户操作行为,做出相应处理,需要时,与应用程序服务器交互。并完成数据展现。
  • 。变种1(前面基础上,定个协议大家一起遵守(http协议??),同时做个通用客户端(ie【浏览器】?)。ok bs网站模式出来了。除了前台展现方式不一样了,传输数据不一样了。其他 逻辑处理,数据存储都一样。如果深挖,内容太多,此处略
  • 。变种2 (数据库放一个机器上不够,多几个数据库,同时做【备份】或其他用处等,多几台{数据库服务器}。数据同步,坏一台也没事。。
  • 。变种3( 数据库能多弄几个放在多台电脑上,同样逻辑处理程序,也可以分几份,放置在多台{应用程序服务器}上,多个请求同时到达时,一个机器忙,调用另一个的机器来处理。。难道是【集群】??
  • . 变种4 (当有多台{应用程序服务器}或者多台{数据库服务器},尤其前者时,对于 类似多个请求同时到达,选择那台机器 这样的问题,蛮复杂,那在添加一台机器,只负责接受 用户软件请求,并管理全部{应用程序服务器},按需指定服务器。【中间件】,类似tuxdo
  • 。变种n....两者交互太复杂,那就抽取复杂的单独做一个层。。正在。需要的时候差一层撒~~~~就想机器语言二进制代码,--插一层到汇编,差一层到c,差一层C++,差一层C++再++ C#----你懂的

3.从应用角度

一个软件架构,除了方便使用,保证基础功能,保证一定性能,安全性,可扩展性,健壮不易坏,可移植,支持多种环境外。。。

搭建过程:

--如果你的应用很简单,类似一个计算器,无需网络,单机版-可能不用考虑太多。但基础构建过程同样适用

。。简单计划下,搭建一个框架,要做什么。

第一步,选技术,适用C#,java,C,php,perl还是其他,还是混合适用。。。数据库 都支持还是只用一种。。

第二步,分层。。

  • 用户软件【可以是ie,那对应前台就是jsp,aspx,html,php等,也可以不是ie,那就是控件库做的UI界面,可以用C#,wpf,第三方控件库,java 的swing,C++的mfc,或底层gui自己绘制】;---需要UI工程师
  • 数据库服务器【存放数据,可以适用文件型sqllite,access,hb等,也可以使用mysql,sqlserver,db2,oracle等。或者就写文本文件,或者就根本不要存数据】。。。需要数据库管理员。
  • 数据库对象【真对业务需求,建立对应模型表,并生成或创建相应 程序使用对象】。。。系统分析师,不对是需求分析师??
  • 应用逻辑【处理专业的用户需求,也可能没有复杂逻辑简单在ui层处理即可】。。。软件工程师,最好懂业务

----意思更多是物理的分层,真对实际层内部,可以继续分层。。逻辑的分层

  • 比如前台,extjs有自己的mvc..aspx有页面以及页面的cs文件。。jsp可以在页面中提取bean,,winform有自己的design.cs和cs。。等
  • 比如数据库对象时表,视图等,而程序中更多的是面向对象,orm 呀,构建表对象
  • 逻辑处理,需要与数据库交互,可以单独抽取一层做数据库的操作。。。
  • -----有人说dao层只需要一个执行sql的方法,service传递sql语句执行即可。所以只要一个dao类..供各个逻辑层调用。可以把这个dao作为所有service基类的一个成员变量,也可以直接作为service的基类。。
  • ------也有人说sql调用都放置servcie,service与servcie互相嵌套可能会很频繁,有些乱,那 插入一层,插插插。查查插。dao下新建子类userdao..servcie只调用userdao或者尽量只调用userdao..一些可供多个service使用的 对数据库的操作,可放入dao...有点类似,每个表建一个表对应的类,这个类继承dao,能对自身增删改。。。有人说靠,基础增删改啊。。泛型。搞定。。。
  • --那就两者结合拜。。有人说不要迷恋分层,但做框架的话,怎么分都不过分。。。不知道真的假的,但我想,分层只是参考,你可以不分,夸过去,也支持。比如service调用userdao..但并不是说不能调用dao.仍可继续调用

第三步,搭建个模型,做个demo

    核心基础很简单,分了层,选择了技术方案,每个层定义一个基础文件,从ui到逻辑 到数据库 ,整个走通,即可。。。可分多个模块分别处理

之前的分都是 纵向的,横向的可以分模块,比如 财务模块,生成模块,产供销模块等。而对于框架一些基础的模块也要一一构建

第三步。模块一:自定义数据传输对象,方便各纵向层之间,数据传输。。。R-InfoData

           模块二:定义接口,层之间交互,互相调用,比如wcf,webservcie,bs 的servlet等,。。。R-Call

------最底层,也可以啥都没有,啥都不是

           模块三:定义控件库,统一用户ui,比如dev控件,winform控件,extjs,jsp公用部分等。。。。R-Face

           模块四:定义主界面,有了控件库自然是为了做界面,最终用户关心的主要是操作界面。比如winfrom的类似资源管理器,分菜单栏,工具栏,内容显示区,状态栏等,bs的如主界面,导航条等。。。。。。R-Platform

           模块五:数据库基础表,可以直接在数据库中建表,各表的信息,可以通过数据库的数据字典查询,也可单独模块来存储,方便查询管理,比如建立一个模块类似数据库客户端的功能,维护系统表,可以方便查看表,以及增删改表信息,可同时生成对应sql或者背后直接执行更新到数据库。。。。R-Data

--------框架雏形1.有了大的框框,可以加个画面,添加显示菜单。。但很简单,还是拿不出手的,因为已经不能n年前,搭建个这样的框框需要些技术含量,限制vs新建项目,添加mdiform,搞定。 当然内部数据交互也可能做的很强大了。比如跨语言,跨数据库,简单的统一接口,很方便的使用,且很简单。但很不容易实现

          模块六:权限,当用户使用软件时,大多数情况,对不同用户拥有不同权限。比如限制可看到的画面,画面内可操作的按钮,可操作的数据等限制。。。。R--perSSion

--------框架雏形2   。添加了权限就是一个能,拿出手的雏形了。

          模块七,再此基础上就可以做应用开发了,但对于一些通用的功能,最好也在框架层做了。

  • 比如需要日志吧,方便记录和查看。分级日志,自定义保存方式,自定义格式等等。。。R-Log
  • 比如需要数据字典吧,肯定有小代码管理,比如男女,一些基础的下拉显示的数据等。。。R--Dictionary
  • 比如需要很多配置项,可方便保存配置,读取配置,统一查看配置等。。。。。R..config
  • 比如需要批处理,定时作业,。。。。。。。。。。。。R..batch
  • 比如需要不同系统之间交互,传输电文等。。。。。。。R..text of of a telegram
  • 比如。。。。
  • 好累哦,睡觉了。。。            
posted @ 2013-07-25 23:19  9421  阅读(207)  评论(0编辑  收藏  举报