.NetCoreMvc基礎

特點

  1. 輕量級
  2. 適合微服務架構
  3. 容器化
  4. 不向後兼容
  5. 所使用語言爲c#集成了linq、await、async等異步構造
  6. 依賴管理方案 Nuget(類似java的maven js的npm等)

配置文件

  1. launchSettings.json:配置啓動端口號 環境變量等
    在這裏插入圖片描述2.startup.cs:註冊相應依賴 開啓相應功能以及配置http管道等,如下圖所示:
  • 該函數爲註冊服務
    在這裏插入圖片描述

  • 該函數爲配置http管道 檢查 &處理http請求
    在這裏插入圖片描述具體工作過程如下圖

在這裏插入圖片描述


//如下代碼 即可在默認鏈接上+/test即可得到hello from test的字符串響應
 app.Map("/test", build =>
            {
                build.Run(async contenxt =>
                {
                    await contenxt.Response.WriteAsync("hello from test");
                });
            });
            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    await context.Response.WriteAsync("Hello World!");
                });
            });

相應方式

  1. 傳統相應方式
  • 映射資源必須在服務器中
  • url相對路徑必須與請求資源的路徑一致
    缺點:
  • 無法服務動態文件
  • 文件必須帶有後綴
  • 暴露服務器文件結構
    在這裏插入圖片描述
  1. Asp.Net MVC 路由系統
  • 無需文件在真正保存的硬盤上
  • 訪問文件無需後綴
  • url結構與服務器文件夾結構無關
  • url將會映射給controller控制器請求 不會直接映射給靜態文件

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

路由

兩種路由映射模式

  1. 傳統路由
 app.UseMvc(router =>
            {
                router.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
            });
  1. 特性註釋路由
[Route("[controller]/[action]")]

MVC

概念:軟件工程的結構方式
M (Model)模型:架構核心,表示業務模型或數據模型,實現業務邏輯(算法 實現,數據的管理 輸出的對象的封裝等)
V (View)視圖:交互界面,接收輸入,展示數據但不處理
C (Controller)控制器:接收輸入 並調用模型和視圖完成用戶請求,不處理數據,但返回視圖和顯示數據
優點:分離業務操作 數據顯示 邏輯控制,且耦合性低,複用性高,可維護性高
缺點

  • 定義不明確:開發人員沒有正確理解mvc的真諦
  • 結構複雜:簡單頁面遵循mvc會導致數據操作多 效率低下
  • 數據流動率低:頻繁訪問數據造成性能下降
    在這裏插入圖片描述與傳統三層區別
  1. 傳統三層面向接口編程 層級完全解耦 完全可替換
  2. mvc每個部分都是緊密結合,他的核心不說解耦,而是重用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章