首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

一个.Net系统的架构设计,欢迎参与讨论,该如何解决

2012-02-27 
一个.Net系统的架构设计,欢迎参与讨论大家好,我正在做一个中型软件系统的架构设计,该系统计划作为一个产品

一个.Net系统的架构设计,欢迎参与讨论
大家好,我正在做一个中型软件系统的架构设计,该系统计划作为一个产品推向市场。最近我也收集了一些信息和资料,对系统架构做了些初步的构思,但是还感觉不太成熟。现在我把具体需求和架构设计构思贴出来,欢迎大家多发表意见一起讨论。谢谢!

产品需求:
1、系统主要在客户局域网内使用,但是也不排除小部分用户需要通过公网使用本系统;
2、用户界面需要丰富和良好的互操作特性;
3、对客户的数据库系统不能做具体限制;
4、需要能够支持20个左右的并发数;
5、不需要安装客户端,或安装部署比较方便。

架构构思:
1、系统基于.Net框架(.Net Framework 3.5)
开发工具vs2008+sp1
2、系统采用三层结构;
参考Petshop4.0,表示层、业务逻辑层、数据访问层
3、系统同时支持SQL Server和Oracle,并可以扩展
参考Petshop4.0,采用工厂模式
4、服务端通过XML Web Services对外提供接口
客户端所有的数据库访问操作均通过Web服务来完成。
(解决了公网访问的问题,但是性能是否能够满足要求?)
5、客户端采用Winform智能客户端
用户界面互操作性好,部署也相对容易
6、采用Membership对用户和角色进行统一管理
参考Petshop4.0,网上也找到了完整的Oracle Membership部件,甚至有MySQL的;
Web服务包装的用户和角色管理这部分的代码可以尽量少写了。
7、采用ADO.Net Entity Framework技术
除了用户和角色,Web服务包装的对其他对象的CRUD操作均使用ADO.NET EF技术实现。
(开发效率高了,性能是否有很大问题?)
其他复杂的数据库操作,采用存储过程或者内置SQL查询的传统方式。


[解决办法]
mark下先
[解决办法]
关注中
[解决办法]
7、采用ADO.Net Entity Framework技术 
除了用户和角色,Web服务包装的对其他对象的CRUD操作均使用ADO.NET EF技术实现。
---------------------------------
性能不是問題,但是目前的ADO.NET EF衹支持MS SQL,而你又不限制數據庫,這點務必考慮到!



4、服务端通过XML Web Services对外提供接口 
客户端所有的数据库访问操作均通过Web服务来完成。 
(解决了公网访问的问题,但是性能是否能够满足要求?) 
--------------------------------
建議使用WCF,性能會稍稍有所提升。但是公網訪問性能,得看程序的具體實現技巧。
[解决办法]
友情up
[解决办法]
up
[解决办法]
下载一下CoreLab第三方软件可以支持Ado.net entity frameWork,同时支持ORACLE9i以上版本
[解决办法]
CoreLab是微软在支持Oracle时用ado.net entity framework的例子时用的第三方工具
[解决办法]
关注下
[解决办法]
最近我们的一个小的项目用到了WCF,被它的魅力所迷惑
呵呵,我也是初学WCF不过感觉很好用,建议楼主考虑
[解决办法]

引用楼主 wly0902 的帖子:
大家好,我正在做一个中型软件系统的架构设计,该系统计划作为一个产品推向市场。最近我也收集了一些信息和资料,对系统架构做了些初步的构思,但是还感觉不太成熟。现在我把具体需求和架构设计构思贴出来,欢迎大家多发表意见一起讨论。谢谢!

产品需求:
1、系统主要在客户局域网内使用,但是也不排除小部分用户需要通过公网使用本系统;
2、用户界面需要丰富和良好的互操作特性;
3、对客户的数据库系统不能做具体限…

[解决办法]
我用了一下ado.net entity framework,并在ORACLE做了实验,还行,特别是对于主细表关系(即一对多)处理方便,但唯一不足的是如果系统中有几百个以及上千个时,产生EDM比较困难,要另建一个Edm时,得用两个entites1,entities2,跨EDM时处理比较难受
[解决办法]
性能方面稍逊一筹,若一次提取大些的数据量时,比较慢.若是提取七\八千条,速度还可以
[解决办法]
mark!
[解决办法]
UP
[解决办法]
6、采用Membership对用户和角色进行统一管理 

最好是带接口能够自定义角色的
目前我在做客户需求的时候,经常碰到企业级的客户多数是AD+HR,因此需要根据当前的身份认证系统有接口拓展,否则,用户今后在使用不同的系统需要登入不同的用户身份,最终会被SharePoint等产品给淘汰.

说到SharePoint,其实我觉着楼主的需求利用MOSS完全可以实现.
[解决办法]
现在许多企业都比较关心SSO,虽然SSO中对于身份认证数据库似乎并不是太过于关心,可以利用映射表来实现,如果能够将当前的系统与其他系统的身份认证数据库统一在一起,那是再好不过了。举个例子,我在与客户谈需求的时候,对方就说到这样一个情况,当前客户有六套应用系统正在运行,每套应用系统都有自己的身份认证方式,每个用户在每套系统中都有一个用户信息,如果这个用户发生变动,如离职或调职时,同时好几套系统都得同时变更,因此这对于管理员来讲也是一个巨大的工作量。所以,这个身份认证模式可以采用自己的数据库或基于membership或ad的方式来处理,但一定需要留有接口以备与其他系统进行对接。


[解决办法]
mark
[解决办法]
欣赏一下
[解决办法]
up
[解决办法]
支持一下
[解决办法]

探讨
boblaw:确实,目前ADO.NET EF只支持SQL Server,差点忽略了,多谢提醒。
期待微软下个版本的ADO.NET EF能对其他数据库进行支持。
至于WCF了解不多,现在开始研究。
多谢!


[解决办法]
探讨
boblaw:确实,目前ADO.NET EF只支持SQL Server,差点忽略了,多谢提醒。
期待微软下个版本的ADO.NET EF能对其他数据库进行支持。
至于WCF了解不多,现在开始研究。
多谢!

[解决办法]
对事态,表示关注!
[解决办法]

[解决办法]
局域网用,smartclient,WCF,那就把petshop忘掉吧.
vs2008,采用linq
[解决办法]
客户端如果可以的话使用asp.net更容易部署
[解决办法]
我给楼主一个建议,可用企业库做架构,主要用于安全与异常错误处理,效果还很不错
[解决办法]
楼主很强,只能说顶你
[解决办法]
ding
[解决办法]
楼主很强,学习了
[解决办法]
支持
[解决办法]
问题关注中,目前我也在准备试着做一套架构,不知道用C#.net+Ajax.Net+SQLSERVER做BS开发应该用怎样的架构会好一些呢?(主要在架构中封装一些项目常用的一些实现:如Login,Log,Master维护,导入导出,上传下载,角色权限等吧)

还有就是上面说的WCF不知道和WCSF是不是一回事呢,不是很了解,只接触过WCSF,它和WebService比实现上有什么好处呢?也请大家帮忙讨论一下。给点意见。
[解决办法]
ding
[解决办法]
既然准备是用3.5了,还参考什么petshop4.0。

前端表现层用WPF(内网clickonce发布,外网用silverlight套一层)
网络通讯用WCF(通讯无关,并能AOP)
数据源访问用Entity(做到数据源无关)
什么权限检测,事件日志,数据缓存之类的全局通用操作全部靠AOP

[解决办法]
探讨
既然准备是用3.5了,还参考什么petshop4.0。

前端表现层用WPF(内网clickonce发布,外网用silverlight套一层)
网络通讯用WCF(通讯无关,并能AOP)
数据源访问用Entity(做到数据源无关)
什么权限检测,事件日志,数据缓存之类的全局通用操作全部靠AOP

[解决办法]
mark
[解决办法]

[解决办法]
找板凳
[解决办法]
看来我的赶紧学习WCF
[解决办法]
还是remoting好一点,
[解决办法]
客服端可以考虑用WPF,我们就是用WPF做客服端的
[解决办法]
up
[解决办法]
感觉太炫了,智能客户端如果自己做用remoting吧,纯对外的接口再用webservice
------解决方案--------------------


探讨
zzc205:
关于WCF和Remoting的性能比较,刚看了这个帖子:
http://www.cnblogs.com/dabing/archive/2009/02/20/1394823.html


[解决办法]
探讨
简单研究了一下,WFC果然很厉害,准备用WFC取代架构中的Web服务。

[解决办法]
探讨
zzc205:请别误会,我是因为不太了解,所以虚心向大家请教,没别的意思,大家一起讨论呗。
看了这个帖子,说是WCF比Remoting性能好。
http://geekswithblogs.net/marcel/archive/2007/04/12/111542.aspx
但是下面这个帖子观点好像又不一样了:
http://msdn.microsoft.com/en-us/library/bb310550.aspx


[解决办法]
困难没有办法多
[解决办法]
探讨
Plentiful:我也有这样的考虑,正在看WPF。
有几个问题想请教一下:
1)WPF Windows应用程序在功能上和用户界面互操作性上,会不会比Windows Form程序差一些?
2)将WPF Windows应用程序转为WPF浏览器程序,工作量会不会很大?有些需要进行客户端处理的操作功能是不是就丢掉了?
谢谢!

[解决办法]
建议用三层架构,你要同时满足同时支持SQL Server和Oracle,并可以扩展 ,一定要用三层。 

1,表示层, 
2,逻辑层, 
3,实体模型层,
4,数据库SQL层。
看起来是四层实际上实体模型层是一个抽象层
[解决办法]
关注
[解决办法]
mark!
[解决办法]
关注
[解决办法]
WCF 在应用上比remoting 简单一点,毕竟都封装在里面了.
 WCF的功能的确很强大
[解决办法]
局域网内部的数据库访问直接使用ADO.net就行,没必要搞什么WS,如果你操作的是大数据量的,慢死你。
[解决办法]
研究WCF也有段时间了,如果只是把WCF拿来替代web service,这就埋没了WCF的初衷了
WCF的魅力并不在于此,他更多的是事物、安全、异常消息、消息回调处理

[解决办法]
架构考虑好扩展,以后慢慢用新技术更新
刚开始不要引入太多新东西。否则风险太大。
[解决办法]
mark
[解决办法]
好好学习
[解决办法]
mark!关注一下哦!
[解决办法]
有那么麻烦吗?我觉的你的产品要求很简单啊。
[解决办法]
wcf 好好学习下是有好处的。
[解决办法]
关注下~希望楼主能吧最终解决方案发布~
[解决办法]
Ado.net entity frameWork
如果表很多,会不会影响速度?
[解决办法]
探讨
Ado.net entity frameWork
如果表很多,会不会影响速度?

[解决办法]
WCF是.net里最有价值的新功能了,新开发的系统都应该采用,方便以后系统之间的对接
[解决办法]
用Winform智能客户端,楼主研究一下Winform客户端的自动升级
[解决办法]
学习了 

[解决办法]
jf了
------解决方案--------------------


用XML Web Services还要考虑好安全性能,如果仅仅为了提供方法还是直接访问数据库好了
[解决办法]

探讨
7、采用ADO.Net Entity Framework技术
除了用户和角色,Web服务包装的对其他对象的CRUD操作均使用ADO.NET EF技术实现。
---------------------------------
性能不是問題,但是目前的ADO.NET EF衹支持MS SQL,而你又不限制數據庫,這點務必考慮到!


4、服务端通过XML Web Services对外提供接口
客户端所有的数据库访问操作均通过Web服务来完成。
(解决了公网访问的问题,但是性能是否能够满足要求?)
------…

热点排行