最近啟動的項目是關於微軟Reporting Service的。公司決定用這個技術取代之前的Crystal report,畢竟這個是免費的。考慮到公司內部沒有人精通此道,所以本著一貫認真謹慎的處理原則,從美國當地找了個顧問,做一些前期的研究和培訓。很長一頓時間內,我們都沒有拿到這個顧問的作品,所以只有憑藉自己的感覺自行研究。微軟的咚咚果然好用,一下子就做出了很多很炫的報表。而且基於自己的理解,對整體架構做了分析和設計。架構也基本成型。可就在這個時候,一次review讓我們頓感哇涼哇涼的。第一,顧問採取的是服務端模式,而我們的所有考慮都是基於用戶端的。第二,資料訪問層採取的CLSA,而我們用的是微軟的企業庫。這兩點實在太突然,讓我們本來準備拿出去秀一把的咚咚偃旗息鼓。
冷靜下來,思考顧問的思路。我們覺得服務端和用戶端都有他的好處和壞處。服務端模式有一個硬傷就是必須要求所有的客戶都購買MS SQL Server,而對於基於Oracle的客戶來說增加了費用成本和管理成本。我想我們公司也不可能拋棄這些客戶的。第二就是部署起來很麻煩,增加了我們的實施成本。我們不僅需要處理自己代碼的升級,還得瞭解如何自動化的去升級伺服器上的報表範本。而且這些報表範本的版本如何控制,未嘗可知。不過,服務端的優勢也很明顯,Reporting Service從2005升級到2008,用戶端沒有改動,只有服務端做了升級,整個檔案的Schema完全不同,原有的報表組織方式已經消失了,也就說整個設計理念已經不同。當然,其實這也是一個問題,那就是升級的相容性問題,不曉得2010會不會相容2008設計出來的報表,整個升級是不是平滑。未知數。另外一點,採取服務端模式的話,對整個用戶端的要求就很少,這樣當我們有多種用戶端的時候就會顯得很簡單。 我覺得項目到了現在雙方出現這麼大的分歧,應該說是溝通引起的。當然,前期的研究也沒有白費,正是因為有了之前的基礎,我們在面對新的Schema的時候才一點不驚慌。應該來說,主要是覺得採取服務端模式後,系統架構的很多亮點就沒有了,只能當作個人收穫,而不能拿出來炫了。比較遺憾。所以,我還是力主不遺餘力的去主動溝通還是很重要的。