Posts
FX.Configuration - Read JSON configuration
要用 FX.Configuration 讀取 JSON Configuration,需先引用 FX.Configuration 套件。
接著在 JSON Configuration 中設定資料。
{ "Setting1": "Larry Nung", "Setting2": "Level Up (http://larrynung.github.io/index.html)" } 再來要設定 JSON Configuration 對應的存取類別,這邊跟一般的 Model 實作類似,只是要類別需繼承自 JsonConfiguration,另外要注意設定檔的位置在哪,如果是跟組件檔案同目錄下的 Config.json 檔,那我們不需多做處理,如果檔案在其他目錄下,或是檔案名稱不是 Config.json,我們可以透過建構子設定。
using FX.Configuration; namespace ConsoleApplication12 { public class MyJSONConfig: JsonConfiguration { //public MyJSONConfig() // : base("Config.json") //{ //} public string Setting1 { get; private set; } public string Setting2 { get; private set; } } } 準備好後就只要將類別實體化即可透過成員屬性取得 JSON Configuration 的設定值。
using System; namespace ConsoleApplication12 { class Program { static void Main(string[] args) { var config = new MyJSONConfig(); Console.
read morePosts
C# 7.0 - Digit separators
以前在開發 C# 時,如果數值過大,在閱讀上會十分不易。
C# 7.0 以後提供了 Digit separators 功能,允許開發人員使用 _ 將數值做些分隔,有效解決了上述問題。最普遍的用法就是將數值做千分位分隔,像是下面這樣:
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var values = new int[] { 1_000, 1_000_000, 0b1_000 }; foreach (var value in values) { Console.WriteLine(value.ToString()); } } } } {% img /images/posts/CSharp7DigitSeparators/1.png %}
Link C# 7 features preview · Anton Sizikov Exploring Visual Studio “15” Preview and Playing with C# 7 Test driving C# 7 features in Visual Studio “15” Preview » Thomas Levesque’s .
read morePosts
FX.Configuration - Read application configuration
要用 FX.Configuration 讀取 Application Configuration,需先引用 FX.Configuration 套件。
接著在 Application Configuration 中設定資料。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="Setting1" value="Larry Nung"/> <add key="Setting2" value="Level Up (http://larrynung.github.io/index.html)"/> </appSettings> </configuration> 再來要設定 Application Configuration 對應的存取類別,這邊跟一般的 Model 實作類似,只是要類別需繼承自 AppConfiguration。
using FX.Configuration; namespace ConsoleApplication12 { public class MyAppConfig: AppConfiguration{ public string Setting1 { get; private set; } public string Setting2 { get; private set; } } } 準備好後就只要將類別實體化即可透過成員屬性取得 Application Configuration 的設定值。
using System; namespace ConsoleApplication12 { class Program { static void Main(string[] args) { var config = new MyAppConfig(); Console.
read morePosts
C# 7.0 - Binary literals
在程式開發時,有時我們會需要使用二進制的數值,像是在使用標有 FlagsAttribute 的列舉值做權限時就會用到。在 C 7.0# 前我們必需要使用十進制數值表示法,確保他是二進制的數值。
在 C# 7.0 後開始支援二進制數值表示法,使用上只需用 0b 當做前綴即可,像是 0 可以寫成 0b00、1 可以寫成 0b01、2 可以寫成 0b10、4 可以寫成 0b100,以此類推。
using System; namespace ConsoleApplication1 class Program { static void Main(string[] args) { var values = new int[] { 0b00, 0b01, 0b10, 0b100, 0b1000 }; foreach (var value in values) { Console.WriteLine(value.ToString()); } } } } {% img /images/posts/CSharp7Binaryliterals/1.png %}
Link A glance at C# vNext - CodeProject
read morePosts
Oracle SQL Developer - Custom date time format
Oracle SQL Developer 預設 Date Format 設定為 DD-MON-RR,顯示上是不含時間的部分。
{% img /images/posts/OracleSQLDeveloperCustomDateFormat/1.png %}
若要顯示時間的部分,我們需點選 [Tools | Preference] 主選單選項,將開啟的 Preferences 對話框切至 [Database | NLS] 頁面,在 Date Format 這邊將時間的部分設定上去。
{% img /images/posts/OracleSQLDeveloperCustomDateFormat/2.png %}
像是這邊筆者是將之設定成 YYYY-MM-DD HH24:MI:SS 這樣。
Link How can I set a custom date time format in Oracle SQL Developer? - Stack Overflow
read morePosts
Octopress - Failed to push some refs to GitHub
今天在使用 rake deploy 試圖發佈文章時,在發佈到 Github 這步驟時發生了錯誤,發佈的動作被 rejected 了。
{% img /images/posts/OctopressDeployFail/1.png %}
要解決這樣的問題我們可以依下面步驟操作。
cd _deploy git reset --hard origin/master cd .. 就像下面這樣:
{% img /images/posts/OctopressDeployFail/2.png %}
操作完就重新建立靜態檔案並 Deploy。
rake generate rake deploy 沒意外的話就能正確的發佈。
{% img /images/posts/OctopressDeployFail/3.png %}
Link ruby - Octopress pushing error to GitHub - Stack Overflow
read morePosts
C# 7.0 - Local functions
有時候我們在開發程式時,會碰到一些情境是需要建立個方法,但這個方法只有某個地方會用到,這時我們多半是用委派去做掉,但帶來的問題就是會有額外的記憶體耗費,而且無法被 inline 處理。
C# 7.0 後,我們可以改用 Local functions 功能去處理。使用方式很簡單,就是一般的方法宣告,只是是寫在方法裡面。像是:
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { void SayHello(string name) { Console.WriteLine(string.Format("Hello~{0}", name)); } SayHello("Larry"); } } } 這邊也可以搭配使用 C# 6.0 的 Expression Bodied Members,程式碼會更為精簡。
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { void SayHello(string name) => Console.WriteLine(string.Format("Hello~{0}", name)); SayHello("Larry"); } } } 運行結果如下:
{% img /images/posts/CSharp7LocalFunctions/1.png %}
反組譯看一下:
{% img /images/posts/CSharp7LocalFunctions/2.
read morePosts
Visual Studio 15 Preview - Enabling C# 7 Features
Visual Studio 15 Preview 開始支援部分 C# 7.0 的功能,由於尚未完全定案,故並未直接開放,需要做些特別的設定才可將之開啟。
若要啟用需切打開專案的屬性頁,切至建置頁面,在條件式編譯的符號那邊設定 __DEMO__,__DEMO_EXPERIMENTAL__ 即可。
{% img /images/posts/VS15PreviewEnableCSharp7/1.png %}
Link Enabling C# 7 Features in Visual Studio “15” Preview | StrathWeb. A free flowing web tech monologue.
read morePosts
Visual Studio 15 Preview - Exception Helper
Visual Studio 15 Preview 以前,託管的程式會透過 Exception Assistant 提供錯誤資訊。
{% img /images/posts/VS15PreviewExceptionHelper/1.png %}
非託管的程式或是將 Exception Assistant 關閉的話,則是透過 Exception Dialog 提供錯誤資訊。
{% img /images/posts/VS15PreviewExceptionHelper/2.png %}
在 Visual Studio 15 Preview 以後,開發人員可以選擇使用 Exception Helper 來提供除錯資訊,只要開啟選項對話框,切換到偵錯頁面,啟用 Exception Helper。
{% img /images/posts/VS15PreviewExceptionHelper/3.png %}
當例外發生時,錯誤資訊就會改用 Exception Helper,可以看到新的 Exception Helper 訊息精簡許多。
{% img /images/posts/VS15PreviewExceptionHelper/4.png %}
新的 Exception Helper 不會像以往一樣直接蓋在程式碼上面,而且可釘選,查閱程式錯誤時不再那麼綁手綁腳。
{% img /images/posts/VS15PreviewExceptionHelper/5.png %}
如果有 Inner exception,也可以很直接就看到 Inner exception 的訊息,不用特別追進 Detail 查閱。
{% img /images/posts/VS15PreviewExceptionHelper/6.png %}
當然若有需要也是可以查閱到 Detail 的部分。
read morePosts
Visual Studio 15 Preview - Code style enhancement
Visual Studio 15 Preview 針對 Code Style 做了些強化。
在 Visual Studio 2015 Update 2 中,Code Style 只有少少的幾個項目可供設定:
{% img /images/posts/VS15PreviewCodeStyleEnhancement/1.png %}
在 Visual Studio 15 Preview 中這功能完整了許多,添加許多的設定項目,相似的設定會被群組在一起,而且改用下拉清單取代本來的勾選框,設定上也更為清楚直覺。
{% img /images/posts/VS15PreviewCodeStyleEnhancement/2.png %}
{% img /images/posts/VS15PreviewCodeStyleEnhancement/3.png %}
有些設定還可套上嚴重程度,這邊視個人需要下去調整即可,看覺得是 None,Info,Warning,Error 哪個層級都可。
{% img /images/posts/VS15PreviewCodeStyleEnhancement/4.png %}
read more