目前分類:.Net 技術 (135)

瀏覽方式: 標題列表 簡短摘要

在寫.Net的程式時,會使用到所謂的Attribute,例如前篇文章所提到的WCF,利用Attribute來設定Rest的路徑格式。

2011-06-12_131649

 

這樣方便的功能,只要利用System.Attribute,自己實作的類別也能達到相同的目的。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

首先來看一下維基的定義

REST是設計風格而不是標準。REST通常基於使用HTTPURI,和XML以及HTML這些現有的廣泛流行的協議和標準。

  • 資源是由URI來指定。
  • 對資源的操作包括獲取、創建、修改和刪除資源,這些操作正好對應HTTP協議提供的GET、POST、PUT和DELETE方法。
  • 通過操作資源的表形來操作資源。
  • 資源的表現形式則是XML或者HTML,取決於讀者是機器還是人,是消費web服務的客戶軟體還是web瀏覽器。當然也可以是任何其他的格式。

總而言之,就是透過URL直接取資料就對了,這樣做的好處在於不用因為SOAP標準,而去額外處理一堆該死的XML。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

今天同事問我有關LINQ上OrderBy的問題,所以就寫了這篇筆記。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

在一些網站的客服系統,都會有制式的樣板用來回答網站會員的問題。而這類的需求,在.NET上有提供所謂的T4 Template來讓程式設計師來使用,使用上是相當的容易。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

一般而言,函式的回傳值只能有一個,如果需要一次回傳多個,在C#中可以使用out關鍵字。但這樣的方式總是不夠直覺,而Tuple這個類別可以滿足這類的需求。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

在上一篇文章中提到如何實作LINQ的Where與OrderBy,但最重要的Select只能回傳指定的型別,無法從外部自訂,更不用說匿名型別。但只要照著下列方法做就可以了。

2011-05-09_222423

注意到selector的型別是Expression,實際上用Func也可以,但為了彈性,也就是方便去判別傳進來的函式是什麼內容,用Expression會比較好。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

在一篇文章LINQ中Where函式的實作中提到LINQ的基本實作,本篇文章將講解如何同時讓類別同時支援Where與Orderby。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

在使用LINQ的查詢運算式時,程式為了能在執行時動態確認運算式的內容,都會使用到Expression Tree,如果想讓自己實作的類別支援較複雜的查詢,就會用到Expression Tree。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

這兩天因為工作的關係接觸到HttpMoudle,發現這東西沒想像中的難搞,然後在突發奇想下就來試試弄自製的Rounting功能。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

一般來說,只要物件是繼承自IEnumerable,都能支援LINQ查詢。除了LINQ to SQL這類非.NET資料來源,一般來說LINQ的查詢都是採線性搜尋,如果想套上自己的搜尋方法,就得先了解如何擴充LINQ功能。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

早期.NET上要產生XML結構的資料可以說相當麻煩,要用到蠻多相關的類別。而在LINQ問世後,這過程就被簡化了許多。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

在ASP.NET上使用快取資料時,通常只考慮到如何將資料加進去,但有時候可能需要對這些資料做管理,這時候就需要將每個Key都列出來及針對Key做刪除的功能。當程式需要將所有的快取資料列出來時,可以用下列的寫法:

2011-02-28_201237

 

從Value屬性取得物件後,可以透過GetType去得到該物件的型別。如果有足夠的熱血想去寫管理物件的程式,用Reflection的相關類別去做就可以了。另外想移除快取中某個Key值的資料,可以透過Remove來做:

2011-02-28_201459

 

參考資料

Cache.GetEnumerator Method

卑微研究生 發表在 痞客邦 留言(0) 人氣()

資工系的作業系統課程中,有一章會講到Critical Section,主要是介紹當系統的某一項資源被多個程式存取時,所會造成的問題。在多執行緒的程式中,這樣的問題是要特別去考慮到的。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

在一個大型流量的網站中,通常必須考慮到流量以及伺服器CPU使用量這兩個點。當伺服器CPU一直處於滿載的情況下,使用者就會感覺到網站的速度變慢。解決的方法之一,就是使用快取,像是將首頁整個存放在記憶體中,當使用者瀏覽時IIS就不用再重新產生網頁,或是將資料庫裡的資料或是程式用到的變數做快取,就不用一直對資料庫做存取及重新計算程式所用到的變數。

而本篇文章將針對Application Data Caching做說明。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

之前曾經介紹過JSON.NET這套Library,但最近發現原來.NET已經有內建相關的類別來讓程式設計師使用,以下將做簡單的介紹。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

雖然LINQ出來很長一段時間了,不過有些基本的東西要用時還是會想不起來,尤其XML比較少用到(應該說頻率很低),所以要用時常常會忘記,這篇文章算是做個筆記。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

在上一篇文章在ASP.NET 4.0的WebForm專案使用Routing中,如果是像下列程式碼設定Routing規則:

2010-11-07_143634

 

這其實會有一些問題,假設使用者在輸入網址時漏掉了TestPath1後面的參數,執行結果就會像下列這樣。

2010-11-07_143859

 

解決的方法很簡單,只要設定預設值就好了。

2010-11-07_144312

 

執行結果。

2010-11-07_144358

卑微研究生 發表在 痞客邦 留言(0) 人氣()

ASP.NET MVC推出後,相信很多人對於其中的Routing功能印象深刻,因為它讓網址變得更簡潔,不像早期都得靠QueryString來傳遞參數。但是,傳統的ASP.NET WebForm專案卻沒辦法直接享受它的好處,話雖如此,也不代表WebForm專案就沒辦法使用Routing功能。

卑微研究生 發表在 痞客邦 留言(0) 人氣()

話說在測試Plurk API的時候,得到了一個錯誤訊息,但是為下列奇怪的字串:
"\u7cdf\u7cd5\uff0c\u770b\u8d77\u4f86\u767c\u751f\u4e86\u9810\u6599\u4e4b\u5916\u7684\u932f\u8aa4\uff0c\u8acb\u7b49\u4e00\u4e0b\u518d\u8a66\u770b\u770b\uff01"

在Google上查了一下,猜測應該是UTF8編碼的字串,原本是不打算理它,但想想還是嘗試還原這詭異的東西,最後以下列程式碼還原成功。

2010-10-22_030438

上列程式碼中的PrintlnYourself函式,是下列的Extension Method。

2010-10-22_030500

 

執行結果。

2010-10-22_030514

卑微研究生 發表在 痞客邦 留言(0) 人氣()

在學Ruby這個語言的時候,有接觸到下列的用法。

2010-10-16_144928

在陣列型態的變數,可以直接呼叫each方法,不用再照以往for loop的那種方式去做。於是我就很好奇C#有沒有類似的方法可以用…

卑微研究生 發表在 痞客邦 留言(0) 人氣()