[Web API] 如何讓 Web API 統一回傳格式以及例外處理


當我們在開發 Web API 時,一般的情況下每個 API 回傳的資料型態或格式都不盡相同,如果你的專案從頭到尾都是由你一個人獨力完成,那也許還可以說聲「阿密陀佛」,但如果是有其他人需要和你共享你的 Api ,而回傳的資料格式又不一樣,相信是會增加使用者的困擾,也大大增加了程式的複雜度與維護上的難度。所以本篇也紀錄一下自己在實作上的經驗,一方面留個紀錄也希望幫助更多人,廢物不多說我們開始吧!

...繼續閱讀 »

[WebAPI] 如何在 ASP.NET MVC 專案加上 Web API 說明文件


我們使用 Web API 來開發專案的需求越來越平凡,而相對的 API 的說明文件也就顯得格外重要,才能讓開發 Service 的人員以及 APP 的開發人員能有一個溝通的地方,微軟在 Visual Studio 2012 Update 2 之後,當建立 ASP.NET MVC 專案選擇 Web API 時也將說明文件內建在範本中,而這篇將教你如何在非內建的情況下,手動加入 Web API 的說明文件。

...繼續閱讀 »

[.NET][實作篇] 實作自己專屬的 ASP.NET MVC Model Metadata 產生器


[.NET][實作篇] 實作專屬自己的 ASP.NET MVC Model Metadata 產生器
在開發 ASP.NET MVC 的 Models 時,在對 Model 做資料驗證時時常會發生某些惱人的事情:像是哪些欄位該設定 Required 或是欄位長度也要額外去定義,但有時候欄位一多對照起來可是見累人的事情,剛好前陣子在點部落看到 Gelis 前輩所寫的 架構設計好簡單系列(3) - 設計自己簡單的 ORM 平台 ,身為熱血的程式設計師,當下立刻有感而發馬上著手來寫一個可快速產生 ASP.NET MVC Model Metadata 的產生器,本篇分享一下筆者的實作經驗,供大家參考看看。

...繼續閱讀 »

[ASP.NET MVC] 天天 MVC 快樂笑 CC (三) - 從 View 將資料 Post 到 Controller - 大賣場的結帳流程為例


[ASP.NET MVC] 天天 MVC 快樂笑 CC (三) - 從 View 將資料 Post 到 Controller - 大賣場的結帳流程為例
在上一篇當中我們學會了如何使用 ViewData 和 ViewBag 將資料從 Controller 傳進 View 當中,我們也知道了同一個 Action 會因為 return 的方法不同而會有不一樣的結果,接著我們來看看在 ASP.NET MVC 中是如何處理表單資料的,本篇會以大賣場的結帳流程當做的範例,解釋表單 POST 資料所需具備的條件以及原理,以及如何利用 ASP.NET MVC 的內建方法在 View 中產生我們需要的 HTML 標籤,相信 ASP.NET MVC 初學者一定不能錯過!

...繼續閱讀 »

[ASP.NET MVC] 天天 MVC 快樂笑 CC (二) - 從 Controller 傳值到 View - 進房間 Say Hello

[ASP.NET MVC] 天天 MVC 快樂笑 CC (二)–從 Controller 傳值到 View - 進房間 Say Hello
在上一篇我們聊到了 Controller 和 View 之間的關係,將 Controller 比喻成「房子」、View 比喻成「房間」,Controller 可以決定哪個門(Action)可以進去哪間房間(View),接著我們來看看如何從 Controller 把值傳到 View 裡面並顯示,甚至加上一些更進階的功能,這次我們也會請到建築師和室內設計師來為房子(Controller)和房間(View) 新增些功能,讓我們的網頁看起來更佳生動 ~

...繼續閱讀 »

[ASP.NET MVC] 天天 MVC 快樂笑 CC (一) - 認識控制器(Controller)、檢視(View) - 房子與房間的關係

[ASP.NET MVC] 天天 MVC 快樂笑 CC (一) - 認識控制器(Controller)、檢視(View) - 房子與房間的關係
為了考驗自我人品而打算來寫天天 MVC 系列文章,也剛好學校的學弟妹都在學 ASP.NET MVC ,常在想每次有新人要學就得在重頭教一遍,有什麼樣的方式能讓新人可以快速的上手,最後還是覺得如果能把內容的用部落格記錄起來,這樣才能省時又省工,當然網路上還是有許多 MVC 系列文章也可以一起參考學習啦。最後,內容將由淺入身,以初學者的角度來撰寫,希望能幫助更多人在學習 ASP.NET MVC 的路途上能快愉快,OK , Just Let We Go !!!!!

...繼續閱讀 »

[ASP.NET] 談談 Cookie 特性


身為 Web 開發人員,不管你今天是寫 PHP、ASP.NET … 等,一定都有聽過 Cookie,正所謂「工欲善其事,必先利其器」,而常見的 Cookie 會用來記錄使用者的登入資訊,但又有多少人是真正了解 Cookie 的特性呢,我想每個網頁開發人員應該都要確切了解 Cookie 的特性,以免哪天寫的程式碼有了漏洞讓駭客成功竊取到相關資訊,或是存了太多 Cookie 在同一個頁面而拖慢了網站的速度,今天舊讓我們來談談 Cookie 吧!

...繼續閱讀 »

[TechDays 2013] ASP.NET MVC5 新功能探討 - 個人重點筆記(圖文)


在過不久 ASP.NET MVC 5 就要正式上線了,從 ASP.NET MVC 2.0 .... ASP.NET MVC 3 ... ASP.NET MVC 4 ... 一直到 ASP.NET MVC 5 短短幾年的時間,也看出微軟在這方面做了不少努力,快來看看這次的 Techday 分享的 ASP.NET MVC 5 新功能探討又會有哪些內容,相信身為 ASP.NET MVC 開發人員你一定不能錯過!

...繼續閱讀 »

[TechDays 2013] Visual Studio 2013 台灣發表會 Keynote - 重點筆記實況轉播(圖文)


開發人員最關注的 Visual Studio 2013 也在前陣子進入 RC 階段了,而這次的 Visual Studio 2013 似乎對 HTML5 有了更全面性的支援,也代表著未來要開發跨行動裝置或跨瀏覽器網站也不在是難事,此次 Techday 2013 的台灣發表會主題為「Modern App + Modern Lifecycle」,究竟此次的發表會能聽到多新穎、跟便捷的功能呢?就讓我們繼續看下去吧 ~

...繼續閱讀 »

[ASP.NET] 利用 ConvertEmptyStringToNull 解決 空字串 自動轉成 NULL 問題


相信大家一定多多少少有碰過當某個資料欄位為 NULL 時,導致過濾出來的資料不正確,而早期的開發人員可能會選擇在資料庫欄位上加上預設值,但因為筆者是使用 Entity Framework 來跟資料庫做溝通,而 EF 在處理預設值時,又會因為每次重匯資料表就要重新設定顯得會有些麻煩,所以下面提供幾種解決方法來跟大家分享。

...繼續閱讀 »

[ASP.NET][筆記] 搶先看 ASP.NET & Visual Studio 2013 個人重點整理(圖文並茂篇)


2013 TechEd 目前正舉辦中,在 Channel 9 也已經釋出許多相關的影音和簡報檔給無法到場的開發人員享用,而這次對於 ASP.NET & Visual Studio 2013 也公布了不少的更新,看完相關簡報檔之後根本覺得肝已經持續在燃燒了,如果你也是個有熱忱的 ASP.NET 開發人員跟著我一起,本篇小小記錄一下 ~

...繼續閱讀 »

[AngularJS] 我的前端 AngularJS 初體驗

近幾年 Javascript 火速的串紅起來,每個網站使用 Javascript 的比例也越來越高,而也發展出許多套件或是框架,例如:jQuery、coffeeScript、ExtJS、KnockoutJS … 等,各有各的特色和擁護者,而筆者每天都在接觸網頁開發,但卻還沒真正的了解過前端 Framework 的好處與特色,而最近一款非常火紅的 AngularJS ,屬於一種 MVC 框架,對於筆者寫 ASP.NET MVC 來說根本是一大福音,當初會一開始就接觸 ASP.NET MVC 就是因為他的關注點分離深深打動著我,而 AngularJS 的優點為 宣告式語法 (Directives)、雙向資料繫結 (Two Way Data-Binding)、相依性注入 (Dependency Injection) 以及關注點分離等特性,本篇為 AngularJS 的入門,從框架介紹到簡單的範例讓讀者了解這套前端框架的好處。

...繼續閱讀 »

[jQuery][筆記] 小心使用 Ajax 防止 Bug 產生


一般在開發動態網頁時,時常會用到 Ajax 的技術來跟 Server 端取得資料,Ajax 的好處相信有用過的人一定都知道,但當然有好處還是有需要注意的地方,在操作 Ajax 時其實還是有許多地方需要注意,這邊整理幾個新手在操作 Ajax 時容易遇到的問題,也希望新手在開發時能有所幫助。

...繼續閱讀 »

[jQuery] jQuery 實作離開網頁或表單前向使用者確認,以防止使用者誤觸離開按鈕


剛好最近專案上需要用到這樣的功能,現在用 jQuery 來操作網頁上的效果都已經可以解決十之八九的問題了,而應該滿多專案上都會遇到讓使用者編輯的表單,如果使用者按完修改後要離開一般都會先跳出確認視窗,以防止使用者誤觸而導致 OOXX 的問題。在這邊做個實作的方法並記錄,希望對大家會有幫助,當然範例的方法只是一個方向,你當然可以依照你的需求去改寫。

...繼續閱讀 »

[ASP.NET][SignalR] 悠閒 Coding 系列(二) - 認識 SignalR 實作上線清單、對特定對象傳訊(以聊天室為例)


我們的第一彈「悠閒系列」了解到如何利用 SignalR 為我們建立 real-time 的應用程式,而那篇的範例是以聊天室來帶大家入門認識 SignalR ,但我們一般的聊天室當中還會有的功能像是聊天列表、密語、或是建立群組聊天,就像我們都熟悉的 Facebook 那樣,可以對個別使用者發送訊息,或是建立多人聊天,而在右邊也有上線列表....等等,所以第二彈我們就來看看如何利用 SignalR 的特性做到上述的功能。

...繼續閱讀 »

[ASP.NET][SignalR] 悠閒 Coding 系列(一) - 認識 SignalR 建立 realtime 網頁(含完整程式碼下載)


最近打算利用假日或是空弦時間讓自己學些平常工作上用不到的東西,也算是讓自己增廣見聞吧,至於為什麼會叫做「悠閒 Coding 系列」呢?因為個人覺得學習就是應該是輕輕鬆鬆的,反而在緊繃的情況下學會的東西真的沒辦法扎根。看最近點部落上 SignalR 文章還滿火紅的,尤其是 饅頭的一系列 SignalR文章 ,所以首戰篇我們就來個 SignalR 實戰練習吧,剛好過些日子台中 Study4 的月份主題也會介紹到 SingnalR 這方面的應用,趁這個機會寫個文章記錄自己的學習歷程。

...繼續閱讀 »

[ASP.NET MVC] 建置高效能網站-壓縮你的 CSS 與 JS (Minify & Bundle)


前幾天學校學妹們問了個問題:「在 ASP.NET MVC 裡面怎麼使用 Javascript 和 css 阿 ?」基於他們本身對網頁基礎不是很深,加上沒實戰過真的都不知道自己能力到哪 ~ 所以就丟了個小題目給他們實際練習,剛好需要寫到 CSS 與 Javascript ,所以就趁這個機會寫一下在 ASP.NET MVC 4 裡面內建的 Bundle 功能,如何來幫我們打包 Javascript 和 css 檔案且產出高效能的網站 ~

...繼續閱讀 »

[ASP.NET][jQuery] ASP.NET & jQuery 注意小細節來防止XSS攻擊


在開發網站時最害怕的莫過於開發人員寫出了一個具有被攻擊性的網站,而其實很多開發人員如果一不注意就會踏進了 Cross-Site Scripting(XSS)的地獄,解決方法很簡單但卻也很容易踏進去,以小弟來說就也曾經跳進去很多次,尤其式透過 jQuery 在操作動態網頁時很容易沒想清楚就用錯方法導致 XSS 錯誤發生,所以這邊筆者整理了幾種在撰寫上的技巧來跟大家分享如何防止XSS攻擊。

...繼續閱讀 »

[ASP.NET][Web API] 解決 ASP.NET Web API Json 物件循環參考錯誤


一般我們在開法 ASP.NET Web API 時,如果是使用 Entity Framework 技術來操作資料庫的話,當兩個 Entity 之間包含導覽屬性(Navigation Property)時,而當我們輸出的格式為 JSON 物件時,會出現一個例外,錯誤訊息為:「'ObjectContent`1' 類型無法序列化內容類型 'application/json; charset=utf-8' 的回應主體。」,而小弟參考了 Will 保哥以及 Bruce 兩位前輩的文章後,整理出兩種小弟覺得比較可行的替代與解決方案。

...繼續閱讀 »

[ASP.NET MVC][jQuery] 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)


相信寫過 ASP.NET MVC 的人都知道,在 ASP.NET MVC 中已經沒有像 ASP.NET Web Form 那樣有許多內建控制項了,而一般在開發專案上可能會滿常碰到一個需求:當我點了 TD 之後那格會變成 TextBox 離開後就會儲存或者是 Table 的 TH 可以改變大小、可以改變順序...等等的功能,當然從 jQuery 出來之後網路已經有許多好用的套件了,像是 jqGrid、DataTables...等,但往往這些套件提供的功能又不是全部都是我們需要的,所以這篇就要教大家如何實作一個簡單的 GridView 可以讓使用者編輯,並且提供了的分頁功能 ~

...繼續閱讀 »