Charles

@CharlesHong

Joined on Dec 23, 2019

  • Docker 指令 Docker 版本 docker version Docker Image 下載 imagedocker image pull nginx → 下載 nginx 的 image docker image pull nginx:alpine → 下載 nginx alpine 的版本 建立 image
     Like  Bookmark
  • 建立 ASP.NET Core MVC 專案步驟 Step1. 新增專案 001 Step2. 選擇 ASP.NET Core Web應用程式(Model-View-Controller) 002 Step3.安裝套件 方案總管的相依性 → 套件 → 管理NuGet套件 Microsoft.EntityFrameworkCore.SqlServer
     Like 1 Bookmark
  • 介紹 從.NET 3.5開始,.NET提供了概念模型(conceptual model)的 Entity Framework,概念模型可以根據資料庫(Database First)建立 Model 與資料庫的對應關係,並且存成 XML 檔案,副檔名為 EDMX,讓你可以有 GUI 來管理 Model,如下圖。 .NET4.0(EF4),推出了 Model First,可以先不用先有資料庫,而從概念模型定義 Model 是什麼,進而產生實體資料庫。EF4 提供了 Model First 跟 Database First 的方式來管理 Model,而用 Model First 與 Database First 都是需要用到 EDMX 來產生對應的 Model Class。 EF4同時也推出了新的管理 Model 的方式,稱為 Code First。使用 Code First 不需要有 EDMX來做 Model 的管理。沒有了EDMX,Code First 使用 POCO classes來定義 domain model。 Code First, Database First 和 Model First 都是為了使用 Entity Framework 建立 Entity Data Model 的方式。其實 Entity Framework 不管如何建立 Model,因為在有 Model 後,Entity Framework 在 runtime 所做的行為都是是一樣的。 無論是選擇 EDMX 來管理 Model 或者是 Code-based Modeling 來管理 Model 其實都是可以達成目的。根據下圖,可以了解之間的差別。
     Like  Bookmark
  • this 透過 this 關鍵字可以直接存取所屬物件的屬性與方法,常用於 method 的參數名稱與屬性名稱重複的時候。base 關鍵字也是類似原理,只是 base 存取的對象是基底類別 (base class) class Fruits { private string type = "香蕉"; //私有變數與方法參數名稱相同 public void GetFruit(string type) {
     Like  Bookmark
  • 介紹 MVC 一種軟體架構模式,把系統分成三個種核心,分別為:Model, View, Controller。 主要將網頁分成邏輯處理(物件操作)、視覺呈現與路由控制(發送、接收請求),各種元件 處理不同的工作,強調職責分離,開發與維護人員可以更快速對於目的與問題,找到該 處理的程式,讓程式的修改與功能擴充簡化,提高程式可用性。 Model 代表資料 用類別(Class)描述
     Like  Bookmark
  • 架構與說明 Model Controller Routing
     Like  Bookmark
  • 說明 介面可以視為只包含抽象成員的一種特殊類別,它只定義成員的介面規格,成員內容則由實作介面的衍生類別根據自身需求提供專屬的實作。介面最大的好處在於將方法成員的規格與實作分開,解決了類別繼承所造成的問題。 繼承機制儘管威力強大,卻相對的衍生出其他的問題,整個繼承關係裏,衍生類別同時被允許存取基礎類別public以及protected層級的相關成員,當繼承架構日益複雜,基礎類別的修改,往往對大量的衍生類別形成不同程度的影響,造成大型系統日後演進的因難,同時降低系統擴充的彈性。 介面將成員規格與實作分開,將類別公用介面從實作中抽離出來,成為獨立不含方法實作的純抽象類別,因此當你定義一個繼承介面的衍生類別,只需遵守方法的宣告語法,再自行定義專屬的方法實作,如此一來即可避免基礎類別與衍生類別之間因為繼承所帶來的問題,另外一方面,由於繼承介面類別可以完全自由實作介面定義的方法內容,在某種程度上亦達到了多型的目的。 介面為只有宣告成員,而沒有實作的類別 介面只能定義屬性、方法、事件、索引,且不包含實作(Implementation)這些成員的程式碼 介面可以有 0 個或多個成員
     Like  Bookmark
  • 說明 抽象(abstract)通常表示一種想法、意念,而非真正的實體,當一個類別使用關鍵字 abstract 宣告,表示其為抽象類別,提供其他衍生類別共同的製作樣版。例如建築公司根據房屋樣版模型建造房屋,而各種房屋均擁有出入大門、各式起居房間、衛浴等共同的設施,但是門如何開、房間如何裝潢,則於建造完成進行裝潢時依據屋主需求而定。 抽象類別正是這樣的概念,就如同你無法住在只建好外觀的房屋裏是一樣的,抽象類別本身無法產生實體物件,而且抽象類別包含了一個以上的抽象方法,這些方法只提供函式名稱與參數設定,並且由繼承的衍生類別實作,衍生類別同時必須實作所有抽象類別的方法,否則其本身將成為另一個抽象類別。 左邊的抽象類別 A 以虛線作表示,由於抽象類別並沒有完整的實作內容,因此無法建立成為物件實體,右邊則是繼承抽象類別的實體類別 B ,其中實作了抽象類別所定義的抽象成員aMethod 。 類別 B 由於完成了抽象成員aMethod的實作,因此本身是一個完整的類別,除了可以建立物件,同時可根據需求,進一步擴充其內容,就如同一般的類別。 定義抽象類別
     Like  Bookmark
  • 說明 如果一個繼承抽象類別的衍生類別,本身又包含了抽象成員,則這個類別還是必須以 abstract 關鍵字進行修飾,它本身依然是一個不折不扣的抽象類別,也因此無法被用來建立實體物件。 類別 A 為一抽象類別,而類別 B 雖然繼承了類別 A ,但是由於其中另外定義了一個抽象成員bMethod,因此這個類別依然是一個抽象類別,類別 C 繼承了類別 B ,覆寫其中的抽象成員bMethod,成為一個實體類別,這三個類別當中,只有類別 C 可以用來建立實體物件。 範例 建立抽象類別 TemplateClass只定義了兩個抽象的方法成員,Length與Area abstract class TemplateClass
     Like  Bookmark
  • Route 路由定義 URL 模式和處理應用程序資訊。應用程序的所有已配置路由都存在 RouteTable 中,當請求傳入時,路由引擎將使用它來判斷合適的處理程序類別或檔案。 Configure a Route App_Start\RouteConfig.cs routes.IgnoreRoute 用來定義不要透過 Routing 處理的網址,例如: 不會處理網址 localhost/test.axd/abc/123。 (* 表示後面無論接幾個路徑,如:/xxx/xxx 或/xxx/xxx/xxx 皆不處理)
     Like  Bookmark
  • 介紹 Asp.net MVC 控制器負責控制應用程序執行的流程。 當您向 MVC 應用程序發出請求時,控制器負責將響應返回給該請求。 控制器可以執行一個或多個動作。 控制器動作可以將不同類型的動作結果返回給特定請求。 控制器負責控制應用程序邏輯,並充當視圖和模型之間的協調器。 Controller 通過 View 接收用戶的輸入,然後在 Model 的幫助下處理用戶的數據,並將結果傳遞回 View。 Create Controller Step1. 在 Controllers 資料夾點擊滑鼠右鍵→加入→控制器 Step2. 選擇 MVC 5 控制器-空白→加入 Step3. 輸入控制器的名稱。請記住,控制器名稱必須以控制器結尾 ActionResult
     Like  Bookmark