最近在开发一个通用增删改的通用项目,主要是实现Excel信息和后台数据库作交互的功能,类似“勤哲”软件的设计思路。开发过程中,碰到个非常棘手的难题,在此请问各位高手:程序分
表现层( 若干FORM,或者Excel)
|
|
|
逻辑层(负责通用增删改查,独立DLL) 特殊逻辑层(当表单打开时、保存事务开启前、保存事务提交前等时候自动激活,独立DLL)
|
|
|
|
数据处理层(数据库链接,SQL执行等,独立DLL)
表现层、逻辑和数据处理层都已经OK了,现在难题就在特殊逻辑层,
特殊逻辑层的目的,就是当通用系统中,实在无法处理某些特殊操作时,追加一个专门类,该类自行融入框架中,并在合适的时机被调用。
举个简单的例子:
如果我需要在表单保存后,能够update 其中一个标志字段 ,就希望能激活 特殊逻辑层中 EndSave函数,并执行Update tablea set flag=-1 where keyid=1111
所有业务逻辑,都调用一个数据链接,在同一个事务中执行。之所以要将特殊逻辑剥离开,是因为特殊操作事先不可预知,我希望项目在分发给客户运行后,如果需要扩展功能,只需要提供一个单独的DLL文件,放到安装目录下,功能就自然实现了。反射机制我有所了解,但不太喜欢用,效率太低了。特殊DLL类 最好能在进程刚运行时加载,有就加载,没就忽略。希望论坛中高手们能指点一二,在此先谢了,总分不多,才42分,望请见谅。
表现层( 若干FORM,或者Excel)
|
|
|
逻辑层(负责通用增删改查,独立DLL) 特殊逻辑层(当表单打开时、保存事务开启前、保存事务提交前等时候自动激活,独立DLL)
|
|
|
|
数据处理层(数据库链接,SQL执行等,独立DLL)
表现层、逻辑和数据处理层都已经OK了,现在难题就在特殊逻辑层,
特殊逻辑层的目的,就是当通用系统中,实在无法处理某些特殊操作时,追加一个专门类,该类自行融入框架中,并在合适的时机被调用。
举个简单的例子:
如果我需要在表单保存后,能够update 其中一个标志字段 ,就希望能激活 特殊逻辑层中 EndSave函数,并执行Update tablea set flag=-1 where keyid=1111
所有业务逻辑,都调用一个数据链接,在同一个事务中执行。之所以要将特殊逻辑剥离开,是因为特殊操作事先不可预知,我希望项目在分发给客户运行后,如果需要扩展功能,只需要提供一个单独的DLL文件,放到安装目录下,功能就自然实现了。反射机制我有所了解,但不太喜欢用,效率太低了。特殊DLL类 最好能在进程刚运行时加载,有就加载,没就忽略。希望论坛中高手们能指点一二,在此先谢了,总分不多,才42分,望请见谅。
但是安全性难以保证
COM+吧。。安全和扩展性都强········你的软件已经向COM软件靠拢……那个东西很复杂……
其实我的意思说白了很简单,
一个EXE文件,下属三个DLL文件,运行一切正常,我的意思是,如果删除掉一个DLL文件,EXE仅仅是减少部分功能,但运行一切照旧,最理想的状态,EXE甚至都不知道跑丢了个DLL。
三个DLL最好都不要用动态加载等方式。WebService我用过,常用了。但眼下设计的框架是C/S的,需要处理的表单信息,少则数十,多则数百。