[桌邊服務] DateTime 本身有沒有包含時區的資訊?

  • 507
  • 0
  • C#
  • 2019-04-15

雖然我們大部分的服務對象是在台灣,不過我們會揭露一些國際上的資訊給使用者知曉,關於時區的問題,沒有被砸過腳還真的不會去仔細研究,尤其某些時區還會實施日光節約時間,所以千萬不要再用加減小時法來處理時區轉換的問題,有興趣的朋友可以參考我過去的文章,今天要來討論的是 DateTime 本身有沒有包含時區的資訊?

...繼續閱讀 »

[料理佳餚] C# 使用 Google APIs 來控制 GCE(Google Compute Engine)VM 的開啟跟關閉

  • 273
  • 0
  • GCP
  • 2019-03-31

如果我們明確地知道我們的服務尖峰及離峰時間,那麼我們可以在離峰時間關閉一些機器來節省一點成本,GCE 沒有提供排程開關機的設定,所以我們只好自己寫,Google APIs 的文件告訴我們可以選擇純 HTTP 方式,或是使用 Google APIs Client Library 來控制 VM 的開關機,底下我就用 Google APIs Client Library for .NET 來撰寫控制 VM 開關機的程式。

...繼續閱讀 »

[桌邊服務] 將 ASP.NET MVC 的 View 依使用者角色來拆分可以減少邏輯分支

各位朋友應該都有碰過一種需求,就是有一個頁面,這個頁面服務的是廣大的 User,在這群廣大的 User 中有分好幾群,有的群要顯示這個不能顯示那個、有的群要顯示那個不能顯示這個、...,這是很典型的需求,你我的公司裡面應該都存在著這樣的頁面,而且裡面的 if...else... 錯綜複雜,我們冷靜想想,其實這種需求的設計是可以更簡單的。

...繼續閱讀 »

[小菜一碟] 將 2 的 n 次方加總結果再拆解回來

  • 275
  • 0
  • C#
  • 2019-03-18

在狀態表達的設計手法中,有一種是以 2 的 n 次方來設計,例如:Status1 = 1、Status2 = 2、Status3 = 4、...依此類推,當我們得知某物件的 Status = 5,我們就知道它包含了 Status1 以及 Status3(因為 5 = 1 + 4),.NET Framework 中有一個列舉型別 System.Reflection.BindingFlags 就是這樣設計的,那重點來了,我們要怎麼知道任意一個正整數可以由哪些 2 的次方加總結果呢?

...繼續閱讀 »

[料理佳餚] C# 實作二階段提交(Two-phase Commit),即使 SQL Server 沒有啟用 MSDTC 也能做分散式交易。

  • 649
  • 0
  • C#
  • 2019-02-24

無論是業務需求或是 IT 需求的關係,依據不同需要將資料庫分放在不同伺服器的情形很多見,要進行跨資料庫伺服器交易我們可以啟用 MSDTC 服務來達成,我就在想能不能不去動伺服器的設定,在應用程式端來實現分散式交易?

...繼續閱讀 »

[料理佳餚] C# 三種實作分散鎖定的方式

分散鎖定的使用場景通常是我們希望某個資源,同一個時間存取它的程序不要超過一個,在同一個應用程式中我們有 lock 陳述式Monitor.EnterMonitor.TryEnter 可以用來做鎖定,當有一個以上的應用程式,甚至是跨不同機器的應用程式要做鎖定,這個會需要用到額外的資源,我們儘量利用我們手邊有的資源來做這件事。

...繼續閱讀 »