開始日期:大約是2008年六月
結束日期:約2008年八月初
主要是紀錄以前不知道或是看過沒深入了解的一些東西:
- Managed C++ 編譯出來的執行檔無法用mono執行,可能是因為 Native code 跟 IL code 放到一起的關係。
- 從 stack-based 的 value type 轉成 heap-based 的 reference type 的過程稱作 boxing,反之稱作 unboxing。
int i=1;
object obj = i; // boxing
int j = (int)obj; // unboxing
- 為了要讓各種語言能在 CLR 上執行,有 Common Language Specification 的 ECMA 標準 - Standard ECMA-335。
- NGen 可以預先將 IL code 轉為 Native executable code,省掉 JIT compiler 的工作(pre-JITting),因此可以加速。mono裡似乎是用
mono -O=all --aot your-assembly
來替代的樣子。
Chapter 3 主要是講各種語言的介紹與互相操作,大致都已經知道,沒什麼要紀錄的。
接著記 Chapter 4 的一些東西。
- 只要在 .config 裡面使用 bindingRedirect,就可以重新導向相依的assembly到新版本的assembly。.config 裡的 attribute:runtime / assemblyBinding / dependentAssembly
- Remoting object 的程式真的出乎意料地簡單,以前從沒研究過,有機會來試試效能,看看傳一堆物件或是 Dataset 的效能如何。
- 有一個 Attribute 的簡單範例...
- 支援 Transaction 的要件:
- 繼承 ServicedComponent
- 使用正確的 Transaction attribute
最前面是一堆有點誇張的介紹,不過在當時大家真的都以為 Web Services 很棒...
這一章介紹 Web Services 的觀念與實作,由於微軟是規格制定者,所以 .NET 對 Web Services 的支援不能少,下了很多功夫。
主角是 WebService 類別與 WebMethodAttribute,方法是繼承 WebService 類別,然後在要被呼叫的方法上,標上 WebMethod attribute。
以前以為 Web Services 的底層是 SOAP,所以只能用 SOAP,沒想到也可以用 GET/POST 的方式來呼叫,所以 javascript 也能輕易地呼叫 Web Services,然後解析回傳的 XML 即可。
Security 方面,以前也以為沒有 session,現在也知道可以用了。另外還介紹了兩種層級的保護,系統層級是利用 IIS 管理介面設定權限與 SSL 來達成,Application Level,則是利用 .NET 的 web.config 來達成。
SSL 對於 Web Service 來說,是個稍嫌沈重的負擔,所以他也建議使用 authentication token 的方式,也就是提供一個架構在 SSL 上,可以取得 authentication token 的方法,取得 token 之後,後續的呼叫都要帶入這個 token,以作為識別。
這樣的方式,在目前有提供 Open API 的網站上很常見。
各自只有一個章節,不過作者很簡明扼要地把該介紹的東西都介紹了。
ASP.Net 除了講 HtmlControl、WebControl 以外,還介紹了 Directive、Session 設定等等。
Windows form 則是簡單的介紹如何開始、Layout 的配置,以及比較容易讓人混淆的 MDI Form。
這本書真的很不錯,講的都很基本,看完對 .NET 會有一定程度的了解,不至於在茫茫大海似的類別庫裡淹死。