架构性问题,请大家给点意见

广州接入
博客专家认证
2010-12-14 06:55:31
我们现在的系统是BS,系统架构时分为业务层,界面层和控制层。我们的架构主要用在ERP等业务性比较强的系统上,
请问界面层能不能通过数据库的配置完全动态产生,比如一个业务编辑页面,只需要给一个参数(这个页面的配置代码参数),则所有页面元素根据配置参数动态产生,页面所涉及的控制逻辑和业务逻辑也全部动态关联上去,请问可以实现么?

页面元素动态产生其实还是可以的,但问题是控制逻辑以及调用业务逻辑也需要动态关联,而且控制逻辑和业务逻辑都不会很简单(ERP系统嘛),大家有何高见?

如果每个事件,调用逻辑都用一个代码表示,这样工作量又很大,无法工程法.
...全文
273 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
windhuan 2010-12-16
  • 打赏
  • 举报
回复
asp.net mvc 2 的话我想这个问题很好解决
vrhero 2010-12-16
  • 打赏
  • 举报
回复
放歌说的好...

不要迷信技术,更不要迷信完美...
广州接入 2010-12-16
  • 打赏
  • 举报
回复
MVC几都没法解决问题,说白了,如果能做到,百分之90以上的软件企业根本没必要存在了。

MVC模式只是降低了M和V之间的耦合度,但没法完全解耦的。
stop__ 2010-12-15
  • 打赏
  • 举报
回复
业务逻辑全部配置?
期待楼主的研究成果。
stop__ 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hawksoft 的回复:]
谢谢大家的回答,其实我的看法是实现成本太高,我开始的做法就是基本架构用模板实现基本的控制逻辑和页面样式,再辅以工具生成部分页面和部分业务逻辑代码,剩下的事情交给程序员去做,这种方法开发起来不算忙。但我们老板严重不满,他想实现所谓的编码全工程化,不过还好,经过几天的讨论,他终于接受了这种所谓万能开发的不可行。

对楼上有用inforpath+word+sharepoint实现的,其实跟我们用vs……
[/Quote]

可惜了
为什么不先做做看?比如半个月
反正有老板支持。
即使实现不了,对团队也是有益的
当然老板有点损失。
广州接入 2010-12-15
  • 打赏
  • 举报
回复
欢迎大家接分!
  • 打赏
  • 举报
回复
没办法,要想灵活,先要将一些东西做死,在死的基础上求生.
比如一个TextEdit要自己子类化,在里面实现自己的逻辑,用户输入一个参数,在界面上就产生这样一个TextEdit,而这个TextEdit里面包含了实现业务逻辑的类来处理用户相关输入
如果用户输入不同的参数,就产生另一个控件(界面),如此这般

你的业务用到多少控件,就要实现多少个自定义控件,当然这些控件里包含了业务处理的逻辑

业务逻辑再复杂,终究是有限的,这就是做出所有自定义控件的理论基础,你不可能做出一个东西能应对将来可能有的任务复杂业务,只要保证将来容易扩展就行了(再自定义一些控件或者组件)
a8511007 2010-12-15
  • 打赏
  • 举报
回复
当涉及到性能方面,我这种菜鸟只能膜拜,观望。。。求师傅。。。
广州接入 2010-12-15
  • 打赏
  • 举报
回复
MVC其实很老了,VC++其实就是这种模式,这个只能解决数据多视图展示之类的,还是解决不了动态V动态控制的问题。
广州接入 2010-12-15
  • 打赏
  • 举报
回复
业务逻辑可以写死,但控制逻辑(包括交互逻辑)需要可配置,因为界面需通过数据库配置运行时动态生成。

哈哈,我认真的推理了一下,觉得不可行,除非自己搞个解释器或者编译器什么的出来。想看看大家有不有什么解决之道。
yongyinmg 2010-12-15
  • 打赏
  • 举报
回复
asp.net mvc
广州接入 2010-12-15
  • 打赏
  • 举报
回复
谢谢大家的回答,其实我的看法是实现成本太高,我开始的做法就是基本架构用模板实现基本的控制逻辑和页面样式,再辅以工具生成部分页面和部分业务逻辑代码,剩下的事情交给程序员去做,这种方法开发起来不算忙。但我们老板严重不满,他想实现所谓的编码全工程化,不过还好,经过几天的讨论,他终于接受了这种所谓万能开发的不可行。

对楼上有用inforpath+word+sharepoint实现的,其实跟我们用vs开发也没什么本质上的区别。
chuxue1342 2010-12-15
  • 打赏
  • 举报
回复
模块表+配置表
耦合性太高的东西是不能拆开的~也没有可能你的程序写好,就永远不用改的,只是多少的问题~~
showjancn 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hawksoft 的回复:]
谢谢楼上wuyq11的回答,但你这个只能用于简单的数据管理。业务界面上往往很多元素之间都是关联性的,用户填写或选择了某一个项,其它元素都有可能受到影响。这样的逻辑怎么配出来,动态加载?
[/Quote]

如果不是特多,可以全部先加载上来,通过相应的逻辑来控制相关元素是显示还是急藏。
wanghui0380 2010-12-15
  • 打赏
  • 举报
回复
实际上我根本不赞同lz那种完全配置型的设计方案,太美好,太完美了

而这个世界上最不可能实现的就是“美好”和“完美”

呵呵,按小说家语:“大道五十,其用四十九,天道都不完美,有何况你呢?”

so,最实际的方案实际就是office2007那种滴,通过独立组件包的形式去扩展。

一个uI,一个扩展包。-----实际上无论infopath也好,还是使用vsto扩展出的word模板实际就是一个一个的扩展包,元素,显示,逻辑,数据控制都是在包类自我描述,自我实现----千万别去想着啥万能配置模板,那是不靠谱的方案,除了在小说和梦里,现实世界根本就不会存在啥万能解决方案滴。
wanghui0380 2010-12-15
  • 打赏
  • 举报
回复
理论上,可以使用office2007+sharepoint server完成

实际上难度相当大,一个lz心中的理想的ERP,建设周期起码需要5年以上时间,可以想象里面的难度有多大


office2007中infopath word,excel,实际都是可以配置,可以编程和可以允许客户交互和远程数据交互滴
全栈深入 2010-12-15
  • 打赏
  • 举报
回复
理论上可以,但是估计这样写出来会比业务逻辑复杂N倍,但是如果只做一部分的动态生成,可能会简化很多。
广州接入 2010-12-14
  • 打赏
  • 举报
回复
动态做表,加字段其实都可以做,简单的外键关联也可以做。但业务系统,比如ERP的订单,涉及到很多表,订单编辑页面元素动态生成可以解决,但问题是订单后面的一大堆交互逻辑,控制逻辑和业务逻辑我怎么动态关联上去呢?
如果将所有元素ID规范化,逻辑代码都编号,用Action方式去执行,是可以实现,但这样做跟做死没什么区别,因为后台数据库的配置一旦发生变化,业务逻辑可能变,控制逻辑也可能变化,又得全部整一遍体现不出全部动态产生元素的那种自由效果。

广州接入 2010-12-14
  • 打赏
  • 举报
回复
谢谢楼上wuyq11的回答,但你这个只能用于简单的数据管理。业务界面上往往很多元素之间都是关联性的,用户填写或选择了某一个项,其它元素都有可能受到影响。这样的逻辑怎么配出来,动态加载?
wuyq11 2010-12-14
  • 打赏
  • 举报
回复
模块ID
模块归属
模块
模块参数
模块样式
使用activex控件
或通过JS动态添加控件
数据库字段实现自定义
能添加表,自定义字段,字段类型
自己定义表单上控件的类型,比如下拉框,文本框,还有控制控件的样式
表单布局就是Grid

序列化文件,动态添加按钮
反射执行相关操作

http://topic.csdn.net/u/20100816/12/79458670-3de5-41de-88e3-6f6e130dfad8.html

110,534

社区成员

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

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

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