《ASP.NET MVC 企業級實戰》 - 學習筆記

《ASP.NET MVC 企業級實戰》

========== ========== ==========
[作者] (中) 鄒瓊俊
[出版] 清華大學出版社
[版次] 2017年04月 第1版
[印次] 2019年08月 第6次 印刷
[定價] 89.00元
========== ========== ==========

【第01章】 

(P021) 

只有在 Lambda 有一個輸入參數時,括號纔是可選的,否則括號是必需的。

使用空括號指定零個輸入參數。

【第02章】 

(P037) 

EDM 中利用特性來標識實體映射到具體數據數據庫中的 TableName ,屬性對應的具體表的 ColumnName ,還有主鍵、外鍵、默認值等,都用特性來標識。然後通過反射技術, 從 EF 中 edmx 元數據獲取數據庫表的結構的描述,再根據增刪改查操作方法,就可以產生對應的 SQL 語句,然後發送給 ADO.NET 負責從數據庫中讀取數據,返回給我們的 EF 。

(P042) 

禁用延遲的方法有 ToList() 、 FirstOrDefault() 、 Include() 等。

(P048) 

IQueryable 其實繼承了 IEnumerable 。

EF 不支持複雜類型 (如實體) 的直接檢索,只能用簡單類型,比如常用的標量類型 string 、 int 和 guid 。

【第03章】 

(P083) 

控制器的約定大於配置 : 

1. Controller 放到 Controllers 文件夾中,並且命名方式以 Controller 結尾;

2. 每個 Controller 都對應 View 中的一個文件夾,文件夾的名稱跟 Controller 名相同。 Controller 中的方法名都對應一個 View 視圖 (非必須,但是建議這麼做) 而且 View 的名字跟 Action 的名字相同;

3. 控制器必須是非靜態類,並且要實現 IController 接口;

4. Controller 類型可以放到其他項目中;

視圖的相關約定 : 

1. 所有的視圖必須放到 Views 目錄下;

2. 不同控制器的視圖用文件夾進行分割,每個控制器都對應一個視圖目錄;

3. 一般視圖名字跟控制器的 Action 相對應 (非必須) ;

4. 多個控制器公共的視圖放到 Shared 目錄中;

【第04章】 

(P085) 

dynamic 型與 object 型的區別是在使用時它會自動根據數據類型轉換,而 object 型則需要自己去強制轉換。

(P087) 

ViewBag 其實就是 ViewData ,只是多了一層 Dynamic 控制,可以說它是另一種訪問 ViewData 的方式。理論上 ViewBag 要比 ViewData 慢一點點,但是幾乎可以忽略,所以使用任何方式完全取決於個人的愛好。

(P090) 

當前臺的 C# 代碼有多行時,如果這些代碼是連續的,中間沒有 HTML 代碼隔斷,那麼只需要開頭的一個 @ 符號即可;否則 HTML 代碼之後被隔斷的 C# 代碼開頭需要加上 @ 符號。

(P115) 

@Html.Editor / @Html.Display 可以通過讀取特性值生成 HTML 。

【第05章】 

(P134) 

Routing 的作用是 : 

1. 匹配傳入的請求 (不匹配服務器物理文件),並將請求映射到 “控制器” 的具體操作 “Action 方法” 和 “參數” 中;

2. 調用並執行對應控制器類的 Action 方法;

{controller} 和 {action} 是特定參數名,不能改。

(P135) 

不能有兩個連續的 URL 參數,參數之間必須有字符隔開。

(P141) 

推薦使用 @Scripts.Render 的形式,因爲它支持壓縮合並和服務器緩存。

(P147) 

區域路由註冊優先於普通路由註冊。

【第06章】 

(P181) 

@Html.AntiForgeryToken() 只能添加在 Html.BeginForm() 形式聲明的表單中,純 HTML 的 <form> 標籤表單是不行的。

【第07章】 

(P204) 

一個 Session 代表一個單線程的單元操作。 ISessionFactory 是線程安全的,很多線程可以同時訪問它。 ISession 不是線程安全的,代表與數據庫之間的一次操作。 ISession 通過 ISessionFactory 打開,在所有的工作完成後需要將其關閉。 ISessionFactory 通常是一個線程安全的全局對象,只需要被實例化一次。

SessionFactory 的創建很佔用系統資源,一般在整個應用程序中只創建一次。

(P207) 

NHibernate 映射文件以 .hbm.xml 結尾。

【第09章】 

(P256) 

沒必要花太多的時間去鑽研工作中用不到的東西,因爲一個人的時間和精力都是有限的,說句現實的,你學的任何東西、只有真正用到了、有了產出才能體現出價值,對企業而言尤其如此。

(P262) 

WCF 是 Windows 平臺上開發分佈式應用最佳的實踐方式。

(P270) 

每個 WCF 服務必須實現至少一個服務契約。使用服務契約必須要引用命名空間 System.ServiceModel 。

(P271) 

ServiceHost 類型 : 當 IIS 和 WAS 作爲宿主程序時, IIS 和 WAS 會自動創建 ServiceHost 類型。

(P279) 

使用 js 的異步操作不支持跨域訪問,也就是說 js 異步調用操作必須和 WebAPI 在同一個站點上。

(P307) 

在進行技術選型的時候,不要追求最新的,而應當選擇既能滿足需求又運行非常穩定的。因爲最新的技術不但相關資料少,而且也沒有經過項目的實際驗證,學習成本很高,風險較大。

【第10章】 

(P325) 

搜索引擎一般不會執行 JS 、不會發 Post 請求、不會提交表單。

(P327) 

SQL Server 的專業版才支持全文檢索功能。

(P333) 

永遠不要對 bin / debug 下的東西做直接修改,而是要改 “源文件” 。

(P356) 

儘量不要用 JavaScriptSerializer ,因爲性能差,完全可以用 Newtonsoft.Json 來代替。

【第11章】 

(P366) 

框架則是各種設計模式的集合。設計模式是解決某一類問題的方法。

【第12章】 

(P434) 

在清楚需求之後,我們首先要做的就是技術選型。

(P435) 

使用 EF Database First 方式需要注意的是 : 所有表必須設置主鍵,表和表之間的關係必須通過主外鍵進行關聯。

(P439) 

新建解決方案文件夾可以打包一些項目,讓整個項目變得更清晰。

(P459) 

DbContext 默認支持事務,當實例化一個新的 DbContext 對象時會創建一個新的事務,當調用 SaveChanges 方法時事務會提交。

(P465) 

jQuery EasyUI 是一組基於 jQuery 的 UI 插件集合,而 jQuery EasyUI 的目標就是幫助 Web 開發者更輕鬆地打造出功能豐富並且美觀的 UI 界面。開發者不需要編寫複雜的 JavaScript ,也不需要對 CSS 樣式有深入的瞭解,需要了解的只有一些簡單的 HTML 標籤。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章