簡體   English   中英

使用企業庫的優缺點

[英]Advantages and disadvantages of using Enterprise Library

我剛剛開始一個項目,因為這個項目是個人的,我想知道使用企業庫有什么好處? 我們在辦公室的幾個項目中使用版本2,但我不太確定(除了好的做法)它的優點,特別是在數據庫組件中。 有什么建議? 謝謝

對於數據庫應用程序塊,主要優點是可以更容易地生成與數據庫無關的代碼。 開發人員主要與通用數據庫和DbCommand對象進行交互,而不是例如SqlConnection,SqlCommand等。因此,切換到不同的數據庫(即Oracle)變得更加可行。 根據您的業務需求,這可能是一個明確的優勢。 EntLib還會輕率地向開發人員提出使用DbParameter查詢參數的方法,這樣可以降低SQL注入攻擊的風險。

正如另一張海報所提到的,數據應用程序塊比直接的ADO.NET類更高級,因此它往往需要更少的代碼行來完成同樣的事情。

從我的角度來看,數據,異常和日志塊是最有用的。 異常和日志記錄使得很容易將異常(duh)記錄到多個地方和多種格式。 例如,他們可以將整個異常日志條目(包括堆棧跟蹤)放在Windows事件日志中,從而使診斷問題變得相對容易。

EntLib的一個缺點是某些應用程序塊會在配置文件中放置相當多的邏輯。 所以你的邏輯更加分散; 其中一些是代碼,一些是配置文件。 好處是可以在構建后甚至部署后修改配置。

作為對我們產品線進行重新設計的一部分,我的團隊在大約2年前對Microsoft模式和實踐企業庫進行了評估。 我們最終使用的唯一部分是數據庫塊。 我們甚至在一些我們可以實例化的類中包裝它,所以我們可以模擬DAL進行單元測試; Microsoft代碼塊使用靜態調用進行數據庫工作。 我不確定Microsoft是否已將任何LINQtoSQL或Entity Framework內容集成到db塊中。 如果它沒有利用其中一個,我現在會猶豫是否使用db塊。

對於日志記錄,我們發現Log4Net是一個更加強大和靈活的Microsoft日志記錄解決方案。 為了滿足我們的日志需求,我們選擇了它

對於異常處理,我們推出了自己的。 Microsoft代碼沒有處理我們想要處理的遠程處理案例,而且由於我們使用的是第三方日志記錄框架,因此編寫我們自己的異常庫並與之集成更有意義。 我發現將日志框架集成到異常框架中的某種程度非常有用。 我們圍繞Log4Net編寫了一些輕量級的包裝類,並從異常日志記錄中調用了這些類,因此我們沒有在Log4Net上引入依賴項。

除了Paul提到的關於數據應用程序塊的項目之外,我還想指出,根據我的經驗,數據應用程序塊aslo提供了一種更快速的方法來編寫所需的數據庫代碼,並且存在幫助程序。 我用它來保持一致的外觀/感覺和開發速度。

不能為我使用EF的選擇受到我在我的環境中的約束的約束,這些約束要求應用程序每小時處理數百萬個事務。 這是Telco環境中的處理量。

是否使用EF完全取決於您的環境和選擇(只要您了解所選技術的局限性)。 如果您的系統不需要如此高的負載,我預計您在使用EF時不會遇到任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM