我們開發了一套使用SQL Server的工業應用程序。使應用程序能夠與多個ado.net提供程序一起工作的最佳方法是什麼?
隨着需求的擴大,客戶希望將我們的應用程序與他們自己的RDBMS(如Oracle,MySQL等)一起使用。
目前,有些應用程序使用OLEDB提供程序,而其他使用本機SQLServer的原因各種各樣,包括編程經驗和宗教信仰。
我們尋求統一的方法。項目經理喜歡OLEDB,因爲「它適用於所有事情。」就個人而言,我恨它,因爲如何查詢參數進行處理......
我心裏有兩個解決方案:
首先是使用SQLOLEDB保持現有的代碼,並在不兼容的情況下,適應每個SQL語句通過使用分支指令。它會很快,SQL不會有太大的差別,並且會讓項目經理感到高興。但是,它可能會將代碼轉換爲意大利麪條。
第二種方法是爲每個RDBMS使用本機ADO.NET提供程序,併爲每個RDBMS開發一個數據訪問庫。每個庫可能包含一個通用部分以避免代碼重複。當然,這需要一段時間,但它會導致一個乾淨的架構和最佳性能。
它主要是客戶端服務器應用程序。我們數據庫的某些部分是動態生成的,並且有很多動態查詢。這就是爲什麼使用ORM是不可能的。
你會如何達到相同的目標?