2010-04-28 56 views
3

我們即將踏上一個相當大的集成工作以殺死一堆Access和SQL Server數據庫,並讓一切成一個連貫的企業制度。還有一些其他系統(會計,客戶關係管理,薪酬管理,MS Exchange)存儲我們需要整合的關鍵數據(用於其他系統中的數據驗證),報告和以其他方式公開。這些系統中的一些系統很可能會在未來幾年內發生變化,所以我們需要隔離我們的系統以準備好進行更改。企業集成不同系統

理想的情況下,我們將能夠暴露我們的形式在多達我們我們儘可能系統以一致的方式,而無需重新開發他們爲每個系統。目前,我們的目標的SharePoint(2007和2010不久),辦公室(2007年和2010快 - 的Word,Excel,PowerPoint和Outlook),報表服務,.NET控制檯應用程序的.Net Windows應用程序,外殼擴展,並與暴露的可能性移動設備上的一些功能(目前的黑莓手機,稍後可能是iPhone)以及通過我們的網站。

在遷移到SharePoint 2010和Office 2010之前,我們正在將開發工作轉移到Visual Studio 2010(從2005年開始)。鑑於我們的大部分開發目前都針對.Net框架(主要是C#),似乎符合邏輯堅持這一點,除非有某些令人信服的理由來切換框架/平臺的某些方面。我們正在考慮您的標準數據庫 - >數據集成層 - >業務對象層 - > Web服務(或REST)層 - >客戶端應用程序,並使用WPF(或其他?)窗體執行我們自己的客戶端應用程序也可以在MS系統(SharePoint,Office,Windows)中公開。基本上我們需要將自己從數據庫和系統變化中分離出來,創建一個可以在整個系統中使用的API,然後在我們的客戶端應用程序中使用這個功能。

我非常渴望得到來自任何人誰對如何退出這個功能的提示指針。我們應該將企業圖書館視爲一個開始或推出自己的地方嗎?對於像這樣的系統,REST與ASP.Net MVC2是比Web Services更好的解決方案嗎? WPF會提供表單重用還是有更好的方法?

回答

1

我推薦的業務線,您的應用程序一個單一的複合應用程序。那麼就不需要「表單重用」了,這些觀點都在那裏並且集成在一起。您的所有數據訪問都可以通過單一的可重用層,所有第三方應用程序都可以通過SOA技術與您的系統進行通信。

微軟的模式和實踐小組提供了一些框架,用於開發可通過單一部署機制部署的單一可擴展,可插入的模塊化應用程序。如果你有在你的最終用戶的平臺完全控制(Windows)中,我建議使用WPF和Prism如果你不這樣做,我建議使用棱鏡的Silverlight。如果您還沒有轉移到WPF/Silverlight技術,您可以使用Prism或SCSF的Unity組件開發一個良好的Windows Forms複合應用程序,該組件更適合WinForms開發。 (注意:WPF可以託管WinForms控件,WinForms可以託管WPF控件,因此您可以創建一個包含現有組件的混合解決方案,以實現一個完整且緊密的企業系統。)請注意,SCSF/CAB和Prism都利用了一些知名的設計模式,所以你必須讓團隊熟悉面向對象和設計模式的基本原理。

至於移動解決方案,我認爲您可以爲Windows Mobile開發WPF視圖,從而允許您在移動設備上重複使用具有不同視圖的應用程序。

WCF是在.NET中執行應用程序間通信的最佳SOA框架。

如果您有工作流,批准鏈或文檔路由需求,請使用WF。您甚至可以將工作流編輯器集成到組合應用程序中,以便最終用戶可以根據業務需求的變化修改和更新工作流程 - 所有這些都不需要致電給您

如果您還沒有使用ORM,那麼我建議使用nHibernate。不要開發自己的數據訪問層來與RDBMS集成,這是愚蠢的;見here

查看使用ClickOnce部署此應用程序;它具有內置支持,可讓您的應用程序檢測並自動安裝更新。