c/s 架构的框架问题

wslfriend 2008-12-13 04:31:26
最近在开发一个通用增删改的通用项目,主要是实现Excel信息和后台数据库作交互的功能,类似“勤哲”软件的设计思路。

开发过程中,碰到个非常棘手的难题,在此请问各位高手:

程序分
表现层( 若干FORM,或者Excel)
|
|
|
逻辑层(负责通用增删改查,独立DLL) 特殊逻辑层(当表单打开时、保存事务开启前、保存事务提交前等时候自动激活,独立DLL)
|
|
|
|
数据处理层(数据库链接,SQL执行等,独立DLL)


表现层、逻辑和数据处理层都已经OK了,现在难题就在特殊逻辑层,
特殊逻辑层的目的,就是当通用系统中,实在无法处理某些特殊操作时,追加一个专门类,该类自行融入框架中,并在合适的时机被调用。


举个简单的例子:
如果我需要在表单保存后,能够update 其中一个标志字段 ,就希望能激活 特殊逻辑层中 EndSave函数,并执行Update tablea set flag=-1 where keyid=1111
所有业务逻辑,都调用一个数据链接,在同一个事务中执行。

之所以要将特殊逻辑剥离开,是因为特殊操作事先不可预知,我希望项目在分发给客户运行后,如果需要扩展功能,只需要提供一个单独的DLL文件,放到安装目录下,功能就自然实现了。

反射机制我有所了解,但不太喜欢用,效率太低了。

特殊DLL类 最好能在进程刚运行时加载,有就加载,没就忽略。

希望论坛中高手们能指点一二,在此先谢了,总分不多,才42分,望请见谅。




...全文
127 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mochencui 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wslfriend 的回复:]
其实,完全的通用软件是不存在的,能通用个八九成就相当成功了,我的想法就是如何尽量设计成开发式的模式。

通用模块,负责完成绝大部分的常规操作,一些特殊的、不可预测的古怪需求,则归并到独立的DLL中,这样既实现了通用,又解决了扩展问题。
[/Quote]发
wslfriend 2008-12-13
  • 打赏
  • 举报
回复
事件我尝试了,貌似不行,事件所需要的对象(函数等)必须事先存在或申明,

可能唯一可行的就是虚函数了,但折腾了半天也架构不出来,虚函数 好像只有在继承了通用类后才生效。
希望高手们能给点明示,谢谢了。
vrhero 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wslfriend 的回复:]
我知道这是一厢情愿,只是理想状态而已。

那请问如果我在数据层中,定义了个静态对象 static DataDB,

动态加载的DLL内,能否也调用这个静态对象?

毕竟我希望所有的操作,都能在一个事务中运行。
[/Quote]
不要去想什么静态对象...使用接口...
woaixueyu 2008-12-13
  • 打赏
  • 举报
回复
用事件吧,如果没有注册 就不掉用
wslfriend 2008-12-13
  • 打赏
  • 举报
回复
我知道这是一厢情愿,只是理想状态而已。

那请问如果我在数据层中,定义了个静态对象 static DataDB,

动态加载的DLL内,能否也调用这个静态对象?

毕竟我希望所有的操作,都能在一个事务中运行。
vrhero 2008-12-13
  • 打赏
  • 举报
回复
插件系统...但是“三个DLL最好都不要用动态加载等方式”那是不可能的...
wslfriend 2008-12-13
  • 打赏
  • 举报
回复
其实,完全的通用软件是不存在的,能通用个八九成就相当成功了,我的想法就是如何尽量设计成开发式的模式。

通用模块,负责完成绝大部分的常规操作,一些特殊的、不可预测的古怪需求,则归并到独立的DLL中,这样既实现了通用,又解决了扩展问题。
wslfriend 2008-12-13
  • 打赏
  • 举报
回复
您误会我的意思了。
其实我的意思说白了很简单,
一个EXE文件,下属三个DLL文件,运行一切正常,我的意思是,如果删除掉一个DLL文件,EXE仅仅是减少部分功能,但运行一切照旧,最理想的状态,EXE甚至都不知道跑丢了个DLL。


三个DLL最好都不要用动态加载等方式。

WebService我用过,常用了。

但眼下设计的框架是C/S的,需要处理的表单信息,少则数十,多则数百。
Deathsign 2008-12-13
  • 打赏
  • 举报
回复
方便扩展 第1选择是WEBSERVICE。。。。方便好用
但是安全性难以保证
COM+吧。。安全和扩展性都强········

你的软件已经向COM软件靠拢……那个东西很复杂……

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧