Posts

Showing posts from June, 2012

[Web API] ASP.NET Web API概覽

Image
什麼是ASP.NET Web API [1]
ASP.NET Web API是一個可以簡化建立HTTP服務的框架.前身為WCF WebAPI, 協助WCF服務支援RESTful介面.RESTful: 簡單來說就是以 URL 定位資源,根據 HTTP 內容指示操作動作與回應訊息。一個符合上述實作方式的網路服務,就稱之為 RESTful web service 。 [2]支援利用HTTP協定. HTTP服務類似Web Service, 可以提供應用程式執行時需要的功能取回XML格式或JSON格式的結果.JSONJavascript Object Notation)是一種輕量級的資料交換語言,以文字為基礎,且易於讓人閱讀。[3]輕巧的資料交換結構, 佔頻寬比較少.許多知名的大網站皆支援Web API Model, 如Facebook, Twitter, LinkedIn, Google, etc.


優點:
使同一系統元件能被不同形式的用戶端重覆使用, 如瀏覽器, Windows form, 手機程式/平板(android, IOS, windows phone), 減少重覆開發所浪費的時間.元件在不同系統之間可共同使用(ex:讀取人事資料)利用HTTP協定, 使得簡單靈活且無處不在. 基本上現在所有設備已經支援HTTP, 不需要另外安裝套件.

缺點:
資料結構較不嚴謹, 不適合用來實作系統與系統之間的資料交換.
名詞解釋:
Model: 

官方解釋: A model is an object that represents the data in your application. ASP.NET Web API can automatically serialize your model to JSON, XML, or some other format, and then write the serialized data into the body of the HTTP response message. As long as a client can read the serialization format, it can deserialize the object. Most clients can parse either XML or JSON. M…

[MVC] 為什麼開發系統需要MVC Model?

Image
看到這篇關於MVC的文章有感。
MVC設計模式的發展及變遷: http://www.ithome.com.tw/itadm/article.php?c=74317

MVC的優點除了按功能分工,還直接把系統開發變成是組裝模組的形式。
怎麼說呢,模組之間只要預先談好接口的規則就可以各自獨立開發,開發完之後大家把自己完成的部件拿出來組合起來變成系統,我經常會跟人家說情況就像現在的汽車工業一樣。

這樣的好處有太多,最大的好處是

萬一發現bug,波及到整個系統發生的機率會比較少。分工容易,可同時開發。開發期間使用者不斷要求更改介面,這樣的話邏輯部分可以完全獨立出來不被波及。部件重用些很強,不用又再一次再一次發明輪子。What Next? 遇到像我這種老鳥多開發技術又比較低的公司,可以將MVC再升華一點點,就是把一些很常用的元件變成公司內部的Web-API(什麼是Web-API可以點這裡),系統開發人員只要用到達HTTP的連結,傳入適當的參數就可以收到想要的結果,而不需要理解中間運算的過程,這可以令技術不高的開發人員很快很安全的拿到想要的東西。
How? 小弟還在測試當中,希望很快可以寫篇新手架Web API實務......XD

參考資料:
MVC設計模式的發展及變遷: http://www.ithome.com.tw/itadm/article.php?c=74317
web api wiki: http://www.youtube.com/watch?v=GfQrAQp5RW8

每天會遇到的事...

.net教學筆記整理[如何傳入外來參數(parameters)到執行檔exe中]

Image
前言:
我想很多大大也試過於Windows跑執行檔的時候可以傳參數, 例如 example.exe resolution=1280*1024,今天有同事問我順便跟各位大大分享一下小弟的寫法:
先開一個專案(exeparameters),類型為Winform,建立後直接在設計畫面點兩下,進到Coding畫面。

打開後打概會看到以下的Code
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace exeparameters { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } } }
在public Form1()這一句我們可以看到這個執行檔並不能接受任何參數。先把Form1改裝變成可接受string[]陣列:
public Form1(string[] args) { InitializeComponent(); }
接下來把外面傳來的變數轉成內部使用變數 string[] myParameters; public Form1(string[] args) { InitializeComponent(); myParameters = args; }
最後打開Program.cs檔案, 把 static void Main() { Application…