原创 .NET 5重大變更之WPF和Windows Forms

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"typ

原创 .NET 5 的重大改變:消失的歷史技術

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"typ

原创 C# 9 Lambda小幅升級

C# 9的Lambdas將會有一個小的升級,包含兩個新特性。這兩個新特性都不會改變代碼的編寫方式,但都體現了開發人員的意圖。Lambda丟棄參數允許開發人員顯式指定某些參數是不需要的,這樣可以防止編譯器對未使用的參數發出錯誤警告。事件處理器

原创 C# 9: 邁向支持腳本編程的第一步

不需要任何樣板代碼是腳本語言的一個顯著特徵,你可以直接在文件的第一行編寫聲明和語句,就像在函數內部一樣。相反,諸如VB,C#或者Java之類的非腳本語言,在類文件中就必須包含類似“main”方法的樣板代碼。 微軟的C#開發經理Mads To

原创 快照隔離而非ACID:MongoDB數據一致性能力遭質疑

在一篇題爲“MongoDB和Jepsen”的文章中,MongoDB官方聲稱他們的數據庫通過了“業界最嚴格的數據安全性、正確性和一致性測試”。作爲迴應,Jepsen官方發表了一篇文章,指出MongoDB 3.6.4實際上沒有通過他們的測試,而

原创 在.NET框架中使用C# 8和可空引用類型

本文要點: 改變C#版本需要直接修改項目文件 全局啓用可空引用類型只能在新的項目格式中實現 可根據需要,在文件或行的基礎上更改可空性 使用可空屬性以避免不必要的空檢查。 針對較舊的平臺時,可使用Nullable包 儘管在.NET 框

原创 對IDisposable和靜態分析的提議:DisposeUnused屬性

當 .NET初創的時候,關於IDisposable該如何使用存在一定的不確定性。結果,IDisposable的應用方式過於激進,許多種類的類都需要空的Dispose方法。這給靜態分析工具帶來了一些問題,它們無法將實際缺少Dispose調用與

原创 微軟推出Microsoft.Data.SqlClient,替代System.Data.SqlClient

背景 在 .NET創建之初,System.Data框架是一個重要的組件。它爲創建 .NET數據庫驅動程序提供了一種方式,類似Visual Basic的ActiveX Data Objects。雖然API不一樣,但重用了它的名稱,所以纔有了A

原创 C# 8.x 先睹爲快

儘管 C# 8.0 還需要幾個月的時間才能發佈,但是 C# 8.x 的特性計劃已經開始了。該計劃中的特性有一些是新提出的,而另外一些則是之前在 C# 8 中考慮過的。和往常一樣,這個特性列表仍可能會發生變化。 如之前的一個報告所討論的那樣,

原创 C# 8 新增小功能

儘管C# 8應該會在今年發佈,並且C# 8.x和9的路線圖也開始形成,但是,微軟正在繼續審查下一個版本的特性。 目標類型表達式 假設我們有A、B和C三種類型,其中類型B和C是類型A的子類型。如果我們使用如下所示的語句,那麼,編譯器無法確定右

原创 EF Core 3 的 40 箇中斷性變更

爲了修復Entify Framework Core中許多已發現的缺陷,微軟在EF Core 3中引入了40箇中斷性變更。我們可以在微軟文檔中查看完整的中斷性變更列表,本文僅列舉幾個主要的點。 客戶端查詢 爲了突破EF Core SQL生成器

原创 服務器端 WCF 開發計劃不明,開發者表示遺憾

微軟在與服務器端WCF相關的問題上仍然沒有什麼進展。在人們看來,服務器端WCF似乎已經是一項過時的技術。微軟的一名員工表示,這需要點耐心,這與之前的聲明並不矛盾。 雖然客戶端WCF從一開始就可用,但多年來微軟一直拒絕將WCF的服務器端移植到

原创 如何將C# 7類庫升級到C# 8?使用可空引用類型

這篇文章將介紹將C# 7類庫升級到C# 8(支持可空引用類型)的一個案例。本案例中使用的項目Tortuga Anchor由一組MVVM風格的基類、反射代碼和各種實用程序函數組成。之所以選擇這個項目,是因爲它很小,並且同時包含了慣用和不常用

原创 .NET Core 3.0中的數據庫驅動框架System.Data

雖然沒有得到很多關注,但System.Data對於.NET中任何關係型數據庫的訪問都至關重要。因爲其前身是ActiveX Data Objects,所以它也被稱爲ADO.NET。System.Data提供了一個通用框架,是構建.NET數據庫

原创 如何對DevOps數據庫進行源代碼控制

提綱: 包括索引在內的數據庫模式需要進行源代碼控制 諸如查詢表這類用於控制業務邏輯的數據需要進行源代碼控制 開發人員需要一種能夠便捷地創建本地數據庫的方法 共享數據庫的更新只能通過構建服務器完成 健壯的DevOps環境需要對系統的每個組