2012年4月30日 星期一

ASP.NET MVC 學習資源整理 Part.1

在上個星期四 (2012-04-26) 完成了 twMVC 第一次的研討會「與 ASP.NET MVC 的第一次親密接觸」之後,在研討會簡報檔案裡面以及說明的時候都有說明到有哪些的 ASP.NET MVC 學習資源,而網路上也有相當多的部落格或是網站都有專門介紹 ASP.NET MVC,但還是有很多人覺得資訊還是很少,甚至於有些人覺得目前網路上的 ASP.NET MVC 資源都比較偏向於進階的內容,對於剛入門或是正在評估或是觀望學習的人來說,太多的資源對他們來說反而是一種困擾,所以我就藉這一篇文章稍微整理一下有關 ASP.NET MVC 的學習資源,將我以往學習 ASP.NET MVC 所接觸並且覺得不錯的網站提供給大家參考。

2012年4月29日 星期日

看看 LINQPad ( v2.41.2 / v4.41.2 ) 更新了什麼


在上週的時候經 twMVC 成員的提醒說,LINQPad 更新了版本,而且這一次的更新在結果輸出上有了一些的不一樣,

但除了結果輸出的顯示有不同之外,還有哪些的修改呢?

以下就簡單的說明這次修改的地方,也另外說明有新增了那些的功能。

 

2012年4月28日 星期六

Sublime Text 2 - Packages 介紹 - KeymapManager


Sublime2 有個不錯的優點就是有蠻多好用的 Packages,當我們在 Sublime2 安裝越來越多的 Packages 之後,雖然可以讓我們在 Sublime2 的使用更加地便利,但越來越多的快速鍵就是個問題,有些快速鍵的組合方式又相當地相似,甚至於有的快速鍵會跟其他編輯器的快速鍵是一樣的,不過操作的功能卻是完全不同,像我已經算是很努力地去記住很多的快速鍵了,但還是常常會忘記,或者是要多試好幾次才能把正確的快速鍵給敲出來,所以為了要避免因為輸入錯誤快速鍵或是想不起快速鍵的窘況一再發生,所以就去找了找有無相關的 Packages 可以有效解決,而還真的有一套不錯的 Packages 可以改善記不住 Packages 快速鍵的情況,接下來就會位各位介紹「KeymapManager」這個好用的小工具。

 

2012年4月24日 星期二

ASP.NET MVC 3 資料分頁 - MvcPaging 2.0.0 Release

在去年的時候就已經有寫過一篇關於使用 MvcPaging 製作資料分頁功能的文章,「ASP.NET MVC - 資料分頁(1) 使用MvcPaging」,不過那一篇裡面只有講到比較基本的使用方法,並未做較為進階的操作方式。而在 2012-04-20 時,MvcPaging 也將版本推進到「2.0.0」,

image

在下載原始碼並大略瀏覽看過一遍之後,MvcPaging 2.0.0 有做了一些的改變,新版本的設定方式與之前版本相比是顯得有彈性許多,這個部落格「資料分頁」裡的文章都會比較偏重於後台功能的應用以及 AJAX 的應用,不過因為「資料分頁」這些文章都還是使用 MvcPaging 的 MVC 2 版本,並沒有跟進到之後的 MVC 3 版本,以致於現在看「資料分頁」裡面的部份文章內容是落後許多,所以我們就借此機會先來看看之前的版本,也另外比對新版本有做了哪些的改變。

 

2012年4月21日 星期六

ASP.NET MVC 3 - ViewBag 裡使用方法(Method)

看到標題一定會有人聯想到這篇文章應該是要介紹 VidewBag 的「使用方法」,

但這一篇並不是要說明怎麼用 ViewBag,而是我們去放 Method 在一個 ViewBag 中來使用,

ASP.NET MVC 在 MVC3 以前,Controller 存放資料到 View 會常常使用到 ViewData,而到了 ASP.NET MVC 3 多了一個 ViewBag 的類別可以拿來放資料,也可以用來當做 Controller 傳遞資料給 View 的媒介,ViewData 與 ViewBag 其實本質上都是同一種的,可以從 ASP.NET MVC 的原始碼中看出,

public dynamic ViewBag
{
    get
    {
        if (_dynamicViewDataDictionary == null)
        {
            _dynamicViewDataDictionary = new DynamicViewDataDictionary(() => ViewData);
        }
        return _dynamicViewDataDictionary;
    }
}

ViewBag 是用 dynamic 這個型別的包裝,dynamic 型別的一項特點就是當要使用 ViewBag 中的某個資料時,可以不必做類別轉換,而要使用 ViewData 中的某個資料時,就必須要做類別轉換,不過 ViewBag 雖然說因為 dynamic 的特點,在使用時可以不用類別轉換,但也因為這樣,在速度上是會比 ViewData 慢一些。

就剛剛所說的,ViewData 與 ViewBag 兩者所做的工作目的是一樣的,都是為了要讓 Controller 傳遞資料給 View 使用,而 ViewBag 是 ViewData 使用 dynamic 的再包裝,讓我們可以在 View 中使用資料時不必再多做一次類別轉換的動作,資料拿來就可以直接使用。


2012年4月19日 星期四

取得 Entity Framework 中 Entity 對應 Table 的原生 Column Name

上一篇「取得 Entity Framework 中 Entity 的主鍵成員名稱(KeyMember)」裡面我們用了兩種方式來取得 Entity 主鍵成員,那既然都可以取得 KeyMember 的名稱與資訊了,哪麼同樣在 Entity 裡的其他欄位也應該可以拿得到吧!

當然可以。

取得的方式在以下的文章之中也提供兩種方式,不過就如同文章標題所說的,我只要取得原本 Table 中的 Column Name,至於其他因為關連而產生的 Entity Property 就不用取出。


2012年4月18日 星期三

取得 Entity Framework 中 Entity 的主鍵成員名稱(KeyMember)

因為之前有一陣子在 Study 有關 Dynamic LINQ 的資訊,所以有時候會在測試時遇到一些問題,例如說這一篇的主題,我要怎麼去抓出每個 Entity 的主鍵成員有哪些?在點部落中「亂馬客」有一篇文章就有說明:

[EF]如何取得ADO.NET Entity Framework中某Table的主鍵值設定

不過亂馬客所提供的方法只能取得一個主鍵成員的資料,如果說一個 Entity 不只一個主鍵成員的話,就要做一點小改變。

 

2012年4月14日 星期六

Sublime Text 2 - 使用 Dropbox 同步多台電腦的設定


前一篇「Sublime Text 2 - 使用 SugarSync 同步化多台電腦的設定」說明透過 SugarSync 的資料夾同步功能來同步多台電腦的 Sublime2 設定,

我所使用的 Cloud Storage 服務並不多,但是大部分都不支援指定資料夾的同步功能,

而 SugarSync 剛好有我所需要的,而且還有不錯的 GUI 程式操作介面,所以就一開始就介紹給大家。

 

但是現在比較多人在使用的 Cloud Storage 服務還是「Dropbox」,

我與 tw.MVC 的夥伴之間的文件共享與同步都是使用 Dropbox,

然而 Dropbox 卻沒有提供指定資料夾同步的功能,真的是相當可惜,如果有這個功能的話,我就會花錢買服務,

目前 Dropbox 沒有提供資料夾同步的功能,網路上還是有很多文章有分享如何使用 Symbolic link 的方式來達到資料夾同步的功能,

但是這些指令操作卻會讓很多想要這個功能的使用者有些卻步,而且這種 Symbolic link 的方式也是有些風險存在,

所以這一篇文章中將會說明如何使用 Dropbox 來同步多台電腦的 Sublime2 設定,並且說明千萬要注意的細節。

 

2012年4月6日 星期五

Sublime Text 2 - 使用 SugarSync 同步化多台電腦的設定

 

是的,這一篇是說如何使用「SugarSync」來同步多台電腦的 Sublime2 設定,

為何不使用「Dropbox」來做為同步化的媒介呢?

其實主要的原因之一是已經有很多文章都在說明如何使用 Dropbox 來同步 Sublime2 的設定,

還有另外一個因素是,想要試試看 SugarSync 的目錄同步化的功能應用,

看看 SugarSync 是否適合用於 Sublime2 的同步化,

至於使用 Dropbox 來做同步化,下一篇文章也來實作一次好了。

 

2012年4月2日 星期一

動態取得 Entity Framework 中 Entity 對應的 TableName


雖然說專案使用 Entity Framework 之後會比較少在程式中去下 SQL Command 做資料存取的執行,

但有時候還是免不了會有這樣需要的時候,如果說是少數幾個 Entity 才會去執行 SQL Command 的需求時,

其實會偷懶一下,直接就把整條 SQL Command 給寫死在程式當中,

但如果有些功能是屬於通用的時候,這種時候就不太可能把 SQL Command 給寫死,

如果是用字串的方式將每個 Entity 所對應的 TableName 給寫死,這樣的方式又顯得不夠聰明,

所以比較好一點的方式就是經由 Entity Framework 去動態取得 TableName。

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。