2015-11-14

[筆記]將Git快顯功能表內的功能移除

最近遇到一個問題,移除了Git安裝新版,又移除再安裝,反覆過程中,原本的快顯功能表壞掉了...



可看圖,原本裝好git for windows之後,資料夾空白處按右鍵會有「Git Bash Here」、「Git GUI Here」這兩個功能,但因為過程中壞掉,導致移除的時候沒順便清掉這兩個,又因為再次安裝的位置不同(這說來話長....總之跟git版本和Visual Studio的git第三方擴充有關),按下去會變成如下:


重新安裝git,選擇不加入快顯功能表也沒用,這兩個東西的指向位置還是錯誤,在試了超久之後,終於發現他的位置了!只要在

HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell

底下,把兩個資料夾刪掉就可以啦!(圖中我因為已經刪掉一個做測試了,所以只剩一個,照理說會有兩個)


2015-10-02

[筆記]讓新版EF6的Skip、Take語法支援SQL Server 2008

最近在寫一個簡單MVC專案,有用到分頁,在本機測試時,分頁一切正常,但是發佈到遠端Server時,竟然出現底下錯誤:「接近 OFFSET 之處的語法不正確。FETCH 陳述式中的選項 NEXT 使用方式無效


覺得奇怪,到底花生省魔術?

2015-07-07

[筆記]如何以自訂XML的方式對其他XML做驗證

最近的專案內有個需求,對方會傳來一組XML,而我們必須針對不同的狀況來對這組XML做驗證,判斷Tag是否都符合所需;而不同的狀況所需要的Tag是不相同的,所以必須在資料庫內紀錄每個狀況所需要的XML Tag。

其實重點就是,我們如何用特定的XML(以A來簡稱),去驗證其他XML(以B來簡稱),看看B是否符合A的規則?

2015-01-14

.Net委派(delegate)的簡易解說與用法


.net程式寫久了,常會看到委派(delegate),但這個名稱實在有點玄,MSDN的解說也讓人百思不解,中文字都看得懂,但兜在一起就變成天書了...網路上搜尋到的解說也都太複雜,範例也用不切實際的例子來當解說,讓人更不了解。直到最近自己寫的一個專案,不得不用到委派,所以自己詳細的研究了一下,總算是了解了一些端倪,就筆記一下,希望能對委派苦手有些幫助。(因為是我自己的了解,所以有不完善或有錯誤請包涵)

委派最常見的用處,就是將我們自己的function當成參數,傳到另一個function來跑。

2014-11-24

ASP.NET MVC - 如何讓Form參數內的XML字串綁定到Model

最近在學習MVC,目前有個需求,需要使用者將Form Post到某個Action內,裡面的參數還會有xml文字,整個參數會像底下一樣:
A=123&B=abc&C=<Root><A>123</A><B>abc</B><C>kkk</C><D>iii</D></Root>

其中A與B是普通字串,而C是XML字串

在Visual Studio 2013裡有個好用的功能,可以將XML或JSON字串轉成Class,只要使用選擇性貼上即可。底下就是寫好的一個使用者參數的Model:
public class SendModel
{
    [Required(AllowEmptyStrings = false, ErrorMessage = "{0}不可為空")]
    [StringLength(3, MinimumLength = 3, ErrorMessage = "{0}長度必須為{2}")]
    public string A { get; set; }
 
    [Required(AllowEmptyStrings = false, ErrorMessage = "{0}不可為空")]
    [StringLength(3, MinimumLength = 3, ErrorMessage = "{0}長度必須為{2}")]
    public string B { get; set; }
 
 
    [Required(AllowEmptyStrings = false, ErrorMessage="xml不可為空,請檢查格式是否正確")]
    public SendXmlModel C { get; set; }
 
    //這個類別就是將XML貼上之後所產生的,格式相同就可序列化成字串或反序列化回該類別的物件
    [Serializable]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute("Root", Namespace = "", IsNullable = false)]
    public partial class SendXmlModel {
        public string A { get; set; }
        public string B { get; set; }
        public string C { get; set; }
        public string D { get; set; }
    }
}


2014-10-06

雲豹200更換前叉油DIY


200豹騎了也四萬多公里了,前叉變得很軟,尤其現在每天需要雙載,稍微一個煞車就點頭,台灣的拉力路面也是對避震非常的有挑戰性!(抱怨一下,每天需要走的汐止明峰街,那路面真他媽的爛...)所以興起了換一下前叉油的念頭。

2014-07-15

偵測檔案使用的編碼是Utf-8或Big5-新版

前一篇文章討論到如何偵測檔案的編碼方式,但由於還是有很小的機會會誤判,心裡總是有疙瘩在,不確定廠商到底會丟怎樣的資料來(廠商的代名詞就是腦X),而且訂單XML內中文字的數量很少,若只有一筆,很可能只有三個中文字而已,於是從utf-8是如何編碼開始研究起。

沒想到規則意外的簡單,因為我不須知道太詳細的細節,只需知道幾個重點:

  1. 只要是0開頭的byte就表示是ascii編碼,也就是0xxxxxxx後面的七碼x相容於傳統ascii編碼
  2. 非ascii編碼,一律以1開頭再接0,並且最少兩個1
  3. 1的數量指出這個字是由幾個byte所組成,如1110xxxxx表示這個字要3個byte
  4. 其後每個子byte都為10開頭
  5. 最多每個字4個byte