大家好,我正在做一个中型软件系统的架构设计,该系统计划作为一个产品推向市场。最近我也收集了一些信息和资料,对系统架构做了些初步的构思,但是还感觉不太成熟。现在我把具体需求和架构设计构思贴出来,欢迎大家多发表意见一起讨论。谢谢!
产品需求:
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不过感觉很好用,建议楼主考虑
------解决方案--------------------
------解决方案--------------------
我用了一下ado.net entity framework,并在ORACLE做了实验,还行,特别是对于主细表关系(即一对多)处理方便,但唯一不足的是如果系统中有几百个以及上千个时,产生EDM比较困难,要另建一个Edm时,得用两个entites1,entities2,跨EDM时处理比较难受
------解决方案--------------------
性能方面稍逊一筹,若一次提取大些的数据量时,比较慢.若是提取七\八千条,速度还可以
------解决方案--------------------
mark!
------解决方案--------------------
UP
------解决方案--------------------
6、采用Membership对用户和角色进行统一管理
最好是带接口能够自定义角色的
目前我在做客户需求的时候,经常碰到企业级的客户多数是AD+HR,因此需要根据当前的身份认证系统有接口拓展,否则,用户今后在使用不同的系统需要登入不同的用户身份,最终会被SharePoint等产品给淘汰.
说到SharePoint,其实我觉着楼主的需求利用MOSS完全可以实现.
------解决方案--------------------
现在许多企业都比较关心SSO,虽然SSO中对于身份认证数据库似乎并不是太过于关心,可以利用映射表来实现,如果能够将当前的系统与其他系统的身份认证数据库统一在一起,那是再好不过了。举个例子,我在与客户谈需求的时候,对方就说到这样一个情况,当前客户有六套应用系统正在运行,每套应用系统都有自己的身份认证方式,每个用户在每套系统中都有一个用户信息,如果这个用户发生变动,如离职或调职时,同时好几套系统都得同时变更,因此这对于管理员来讲也是一个巨大的工作量。所以,这个身份认证模式可以采用自己的数据库或基于membership或ad的方式来处理,但一定需要留有接口以备与其他系统进行对接。