以前年少时,很神圣的词语 "framework"
对我来说,在那些年代,能自己开发一个框架是多么刁的事情啊,如 金老大,mac等人
但是真的到了想自己做的时候,总是下不了手,眼高手低吗?终究还是没有耐性啊!
不过现在还是决定要做下去,如果以后不做.net了,至少在seal的这段时间,给自己的编程生涯做一个交代吧!
写了一点东西做记录,先贴上来,从技术上来说,我做的东西是不够很多高手看的,聊以自娱吧
A 系统概述(System Overview)
A.1 背景 (Background)
一套框架,决定了一个企业应用的开发风格以及性能;不同规模的工厂,也对系统有不同的要求;大企业可能要求功能完备,有详细的数据报表,并且对操作有完整的记录,配合工作流,达到很多自动化生产的目的;但是小企业可能要求能最快速的响应关键业务,对其他方面没有太多的在意;那设计一个框架的目的应该如何呢? 我想,解决现在的问题,着眼以后的发展,是指导一个框架开发的需求基础.
SEAL作为一个跨国企业的一个site,有其特点;遵从公司总体架构,独立开发完善;也就是说,大的公司系统架构 – SAP ,是必须首位考虑的,如果SAP的功能已经做的很完善,则我们没有开发的必要,我们着眼的重点在于那些,SAP没有提供,SAP做的不够方便使用,部门的一些特殊需求,公司管理性质业务 等方面
用于参考的框架
1 SEAL现有管理系统
最重要框架,因为大多数业务都在上面,必需兼容该框架的设计;
该框架通过反射加载业务逻辑模块,进行数据库访问,但因为年代久远,不能很好的使用新的技术,这是起固定的缺陷
2 Qisda框架
在界面方面做的比较好,也提供了很多方便开发使用的组件,特别是权限控制部分非常强大
缺点是不能很好的分开UI和业务逻辑,没有建立这方面的开发规范
在界面方面,用了很多JavaScript,以及很多写死的代码,不利于配置和调试.
3 ASUS 框架
非常复杂,且没有源代码,在动态加载方面做的比较好,可以做为参考用
4 反射研究
反射加载做了大量研究,但是是用于winform的,要使用到webform有很多限制,可做参考
5 Enterprise Library
微软发布的企业功能库,提供了很多强大的功能,新开发的框架将使用大量的该组件
将以Qisda框架作为UI以及权限参考,基本功能使用enterprise library,在动态加载方面使用seal框架和asus框架的方式,以期结合各架构所长,开发 低耦合,高内聚,可配置性强,扩展性强的框架.
A.2 功能特点(Features)
1 动态加载页面,即页面导航
页面的加载方式,传统的做法是redirect,或者是加载user control到主页面;更高级的方式是MVC
MVC方式是广泛评价很好的,但是对现有系统改动太大,所有页面都需要重新做,可以考虑适当兼容支持
Redirect是现在seal 管理系统所使用的方法,优点是编程简单,因为每个页面都可以视为单独的页面.还有一种方式是使用frameset进行转向,比直接在页面所有重新加载要好,不用每个页面添加头部尾部和menu,如果要redirect,则使用frameset这种方式
Load user control,编程比使用redirect加载更复杂一点,因为所有的页面将使用user control的方式,加载后实现,好处是只需要在IIS中建立一个站点,其中的主页面负责加载所有user control,这样就做到了动态加载的比较好的一个境界,即只需要维护user control所在的dll,然后主页面加载就好,可以在运行时更改,不用重新编译框架,提供了现在管理系统的一个没有的重大的优点. 所以,也要兼容这种加载方式.
2 权限控制
Qisda的管理方式很好, 直接借鉴使用
3 用户体验
使用Ajax,减少刷新次数;
使用theme统一界面;
JQuery的尝试使用
4 系统日志
使用Enterprise Library 的日志模块,记录系统的信息.
可能需要自己封装,以便更加好用.