微軟在NuGet發布Microsoft.Data.SqlClient套件預覽版,用來代替SQL Server或Azure SQL資料庫ADO.NET供應程式(Provider)System.Data.SqlClient,Microsoft.Data.SqlClient同時支援.NET Core和.NET Framework,且因為與System.Data.SqlClient使用不同的命名空間,因此可以在程式中並存。

微軟指出,用來存取SQL Server和Azure SQL資料庫的System.Data.SqlClient,過去會先在.NET Framework加入新的SQL功能,然後將這些設計擴充到其他驅動程式(Driver)中,而由於微軟現在十分看重.NET Core,因此想積極在.NET Core中加入資料庫新功能,不過由於.NET Core和.NET Framework各自擁有獨立的程式碼庫,而且也以不同的方式供SqlClient給應用程式使用,.NET Framework是直接安裝在Windows中給全域使用,而.NET Core則是能選擇任意SqlClient版本隨附在應用程式中。

微軟想讓.NET Framework也使用.NET Core模式,但又不能隨意發布System.Data.SqlClient新套件,因為會造成原本.NET Framework的衝突,所以微軟的解決辦法就是提供一個新的Microsoft.Data.SqlClient。Microsoft.Data.SqlClient在.NET Framework和.NET Core中,支援兩個SQL Server的新功能,分別是資料分類以及支援UTF-8。

微軟提到,新套件中的程式碼許多還是來自於.NET Core與.NET Framework中的System.Data.SqlClient,因此支援兩者的功能還是有所差異,要把應用程式從.NET Framework搬移至.NET Core,開發者需要考量部分功能在.NET Core不支援。

將原本使用System.Data.SqlClient的應用程式,轉而使用Microsoft.Data.SqlClient並不困難,只要增加相依項目並更新任何使用的參照就可以了。微軟表示,接下來他們會專注發展Microsoft.Data.SqlClient,補齊.NET Core還缺少的功能,但不會馬上放棄支援System.Data.SqlClient,只會修補錯誤與安全性問題,不會增加任何新功能,舊有的程式仍可以繼續使用。


Advertisement

更多 iThome相關內容