2010-09-27 143 views
1

我正在考慮爲我的公司建立一個代碼庫,以便持有由員工在內部開發並在不同應用程序中及時使用的圖書館,班級等。目的是及時編碼可重用性。我定位的平臺只有.NET - winForms,WPF,WEB,Silverlight等。 我正在考慮構建一個解決方案,該解決方案爲每個技術提供2個項目 - 其中包含代碼,另一個作爲該代碼的測試站點。處理所有這些不同技術和代碼的最佳解決方案是什麼?您如何看待?公司代碼庫

回答

4

這可能比您想象的要困難得多。這在很大程度上取決於你在哪種公司工作,他們從事什麼樣的工作,以及你的雄心壯志。

首先,你可能不想創建一個「框架」。您已經擁有.NET Framework。也許你想同意一套通用的自定義控件。有很多可供選擇的。我強烈建議您不要試圖編寫自己的一套自定義控件,這些控件將在許多項目中重複使用。開發一個連貫一致的自定義控制庫本身就是一項巨大的工作,當您嘗試將其轉移到其他項目時,針對特定項目工作的中途措施失敗了。

我見過一家諮詢公司(主要是爲客戶做自定義的.NET業務應用程序)嘗試重用代碼,而且大多數情況下它並不漂亮。將編寫的代碼寫入並在一個自定義應用程序中運行並將其移動到另一個自定義應用程序比聽起來更困難。很多時候,這個「一般」代碼會對整個應用程序做出假設,或者它依賴於某些特定於應用程序的代碼,並且消除該依賴性非常困難。

現在,如果您處於每個人都在處理處理相同類型數據的程序的環境中,那麼您可以利用一組通用的數據訪問和報告模塊以及一些常用算法。不過,請注意。任何共享代碼都必須具有儘可能少的依賴關係。否則,潛在客戶(即其他程序員)將傾向於自己推出,而不是「包含世界」。

你說你想建立一個代碼庫,它包含「由內部員工開發並在不同應用程序中及時使用的庫,類等」。對我來說,這表示你想在不同的項目之間共享代碼,或者至少需要爲一個項目編寫代碼並在另一個項目中使用它。這是一個值得稱讚的目標,但通常很困難。正如我上面所指出的那樣,編寫適用於單個項目的代碼和編寫可以被多個項目使用並具有最小依賴性的代碼之間存在很大差異。可能,但很難。耗時。

4

如果您在代碼重用之後,無論最終的UI是WinForms,WPF,Silverlight,WebForms還是其他任何東西,您都應該識別共同性。

例如,如果您有一個計算貸款還款的類,則不希望每種技術都有一個版本。你只需要一個你可以在任何地方使用並傳入請求並獲得結果的dll。

您可能還希望確保您的數據訪問更加以數據爲中心而不是以用戶界面爲中心,例如,確保只有一個「服務」與數據庫表交談,以確保沒有超出「服務」受到表格甚至數據庫的任何更改的影響。

本質上,我的觀點是將您的通用代碼基於不同的垂直切片功能,而不是將其基於顯示信息的最終用戶界面。如果你編寫了很好的代碼,你應該可以把任何UI放在頂層(甚至是頂層的多個UI)。

+0

+1很好回答!!! – 2010-09-27 14:37:37