[小菜一碟] 使用 C# 將民國日期的字串轉換成西元日期

四年一次會出現的不是只有總統大選,還有 2 月 29 日的問題,程式如果寫得不夠久大概也不會遇到,像今年就有可能會收到像是「113/02/29」、「113年2月29日」這樣的日期字串,在 C# 中如果直接先轉成西元日期的 113/02/29,再加上 1911 年,像這樣:

DateTime.ParseExact("113/02/29", "yyy/MM/dd", null).AddYears(1911);

那我們的程式應該已經爆了,因為西元 113 年沒有 2 月 29 日,關於閏年的問題,在 C# 我們有更優雅的做法。

...繼續閱讀 »

[桌邊服務] 我翻譯了一本書「Pragmatic TDD:以 DDD 寫出鬆散耦合、文件化和高品質的程式碼」

去年(2022)年底自告奮勇向博碩文化報名了翻譯勇者,在此之前我已經知道翻譯是件吃力不討好的工作,但我還是跳坑了,僅僅是覺得我應該能為台灣正體中文的翻譯書籍做出那麼一點點貢獻,於是選了一本在技術領域上我還不算陌生的 Pragmatic Test-Driven Development in C# and .NET

...繼續閱讀 »

[小菜一碟] 手動為 Windows Form 應用程式加入組態設定轉換(Configuration Transform)

有開發過 ASP.NET 網頁應用程式的朋友,應該對 Web.ConfigWeb.Debug.ConfigWeb.Release.Config 這三個設定檔不陌生,在建置專案的時候,建置程序會依據組態(Debug|Release)進行設定轉換,產出專屬於該組態的 Web.Config,如果換作是 Windows Form 應用程式的 App.Config 的話,該怎麼做?

...繼續閱讀 »

[料理佳餚] 在 ASP.NET Core 整合 Twitter 做為網站的第三方登入

第三方登入系列文章的第六篇,「在 ASP.NET Core 整合 Twitter 做第三方登入」,應該也是最後一篇了,最近這一段時間討論度最高的社群平台應該就是 Twitter 了,不知道一龍這樣搞下去,Twitter 的未來會怎麼樣?不過在台灣來講,使用 Twitter 的人比例是比較小的,若是我們的應用程式的主要服務對象是在美國或是日本,Twitter 的第三方登入可能就有其必要性,整個整合的過程,就記錄在這篇文章當中。

...繼續閱讀 »

[料理佳餚] 在 ASP.NET Core 整合 GitHub 做為網站的第三方登入

第三方登入系列文章的第五篇「在 ASP.NET Core 整合 GitHub 做第三方登入」,GitHub 是全世界最大的程式原始碼管理平台,每個開發者應該都要有一個 GitHub 帳號,如果我們的網站的服務對象是開發者,應該要有一個 GitHub 第三方登入給使用者使用,整個整合的過程,就記錄在這篇文章當中。

...繼續閱讀 »

[料理佳餚] 在 ASP.NET Core 整合 Microsoft 做為網站的第三方登入

第三方登入系列文章的第四篇「在 ASP.NET Core 整合 Microsoft 做第三方登入」,Microsoft 是老牌的大廠,旗下的 Windows、Office、Azure、...等產品,都已經融入了我們的生活當中,Microsoft 也有提供 OAuth 2.0 授權平台,整個整合的過程,就記錄在這篇文章當中。

...繼續閱讀 »

[料理佳餚] 在 ASP.NET Core 整合 LINE Login 做為網站的第三方登入

第三方登入不是什麼新鮮事,Google、Facebook、Microsoft、...等各大平台也都有提供第三方登入,雖然整合方式看起來都一樣,但是其中有一些眉眉角角還真的要實際整合過才會知道,下面是我用 ASP.NET Core 整合台灣人最多人使用的通訊軟體 - LINE 做為第三方登入的過程記錄。

...繼續閱讀 »

[食譜好菜] 用 C# 來實作 B+Tree(B Plus Tree)資料結構

上一篇文章我們介紹了 B-Tree,接下來要介紹它的兄弟 - B+Tree,承襲 B-Tree 的特性,B+Tree 一樣是自平衡樹,搜尋的複雜度一樣也是可以穩定在 O(log n),原則也都一樣,唯一不同的是 B+Tree 的葉節點會有全部的索引鍵,可想而知,這會多使用一些空間,但是換來的是,在做範圍搜尋的時候可以掃瞄葉子節點就好。

...繼續閱讀 »