不同系统的企业集成

时间:2010-04-28 09:41:38

标签: .net enterprise

我们即将开展一项相当大的集成工作,以扼杀一堆Access和Sql Server数据库,并将所有内容整合到一个连贯的企业系统中。还有许多其他系统(会计,CRM,工资单,MS Exchange),它们包含我们需要集成的关键数据(用于其他系统中的数据验证),报告和其他方式。其中一些系统可能会在未来几年内发生变化,因此我们需要将我们的系统隔离开来,以便为变革做好准备。

理想情况下,我们可以在尽可能多的系统中以一致的方式公开我们的表单,而无需为每个系统重新开发它们。我们目前的目标是SharePoint(2007年和2010年),Office(2007年和2010年 - Word,Excel,PowerPoint和Outlook),Reporting Services,.Net控制台应用程序,.Net Windows应用程序,外壳扩展以及可能会暴露移动设备上的一些功能(目前黑莓手机,可能是iPhone手机)以及我们的网站。

在迁移到SharePoint 2010和Office 2010之前,我们正在将开发转移到Visual Studio 2010(从2005年开始)。鉴于我们的大多数开发目前都是针对.Net框架(主要是在C#中),因此坚持下去似乎合乎逻辑除非有一些令人信服的理由在某些方面切换框架/平台。

我们正在考虑您的标准数据库 - >数据集成层 - >业务对象层 - > Web服务(或REST)层 - >客户端应用程序以及使用WPF(或其他方式)执行我们自己的客户端应用程序?)也可以在MS系统(SharePoint,Office,Windows)中公开的表单。

所以,我们不需要太多,只需要一切:)基本上我们需要将自己与数据库和系统变化隔离开来,创建一个可以在整个系统中使用的API,然后在我们的客户端应用程序中使用这个功能。

我非常希望得到任何有关如何解决此问题的提示的人的指示。我们应该将企业库看作是一个开始或推动我们自己的地方吗?与ASP服务相比,ASP.Net MVC2是一个比Web服务更好的解决方案吗? WPF会重复使用表单还是有更好的表现?

1 个答案:

答案 0 :(得分:1)

我为您的业务线应用推荐单个复合应用程序。然后就不需要“表单重用”,视图都在那里并集成在一起。您的所有数据访问都可以通过单个可重用层进行,所有第三方应用程序都可以通过SOA技术与您的系统进行通信。

Microsoft的模式和实践组提供了一些框架,用于开发可通过单个部署机制部署的单个可扩展,可插入的模块化应用程序。如果您完全控制最终用户的平台(Windows),我推荐使用Prism的WPF,如果不能,我推荐使用Prism的Silverlight。如果您尚未转向WPF / Silverlight技术,则可以使用Prism或SCSF的Unity组件开发一个优秀的Windows窗体复合应用程序,它是为WinForms开发的。 (注意:WPF可以托管WinForms控件,WinForms可以托管WPF控件,因此当您向一个完整且有凝聚力的企业系统迈进时,您可以使用现有组件创建混合解决方案。)注意SCSF / CAB和Prism都利用一些知名度设计模式,因此您必须让您的团队熟悉OO和设计模式的基础知识。

至于移动解决方案,我认为您可以为Windows Mobile开发WPF视图,允许您在移动设备上重复使用具有不同视图的应用程序。

WCF是用于在.NET中进行应用程序间通信的最佳SOA框架。

如果您有工作流程,批准链或文档路由需求,请使用WF。您甚至可以将工作流编辑器集成到组合应用程序中,以便最终用户可以根据业务需求的变化修改和更新工作流 - 所有这些都无需给您打电话。

如果您还没有使用ORM,那么我建议nHibernate。不要开发自己的数据访问层以与RDBMS集成,这是愚蠢的;见here

考虑使用ClickOnce部署此应用程序;它内置支持,允许您的应用程序检测并自动安装更新。