整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          「asp.net core 系列」 1 asp.ne

          「asp.net core 系列」 1 asp.net core 入門

          . 前言

          這是一個新的系列,名字是《ASP.NET Core 入門到實戰》。這個系列主講ASP.NET Core MVC,輔助一些前端的基礎知識(能用來實現我們需要的即可,并非主講)。同時這個系列也會在后續介紹ASP.NET Core 平臺的其它類型的項目,并帶領大家以各個類型的項目為主要架構開發一個網站或者網絡服務中心。

          下圖是官網關于Asp.net Core支持的項目的介紹

          1. ASP.NET Core 介紹

          這一節我將為大家介紹一下 asp.net core的發展歷程。

          最早,微軟為了替代CGI腳本開發了asp應用。ASP 全程 Active Server Page,意思是活動的服務器網頁。ASP是一種HTML+服務器代碼的組合,其后綴是.asp 。

          在2001年,微軟宣布將asp遷移到.NET Framework上,形成了一種新的腳本語言——名為asp.net。在2002年發布第一版,名為ASP.NET 1.0,附屬在.NET Framework 1.0 上。ASP.NET 不僅僅是asp + ,更是 asp + .net 。結合了.net之后的asp.net 更加強大。

          在2008年之前的某一年,asp.net mvc 上線了。從此之后,asp.net 分為了兩種技術:asp.net webform(也就是原有的asp.net);asp.net mvc。MVC極大的減少了在前臺頁面中設置大量的服務器腳本,同時MVC更貼近與HTML語言,使得程序開發工程師和前端能更好的配合 。

          在2016年,微軟為了實現自己的跨平臺戰略,將.NET Framework提取出了.NET Core版本,同年發布1.0版本。與此同時發布了asp.net core RTM版,正式版發布于2017年。

          從此.net core帶著它的小伙伴 EF Core和ASP.NET Core一路高歌猛進,然后發展成了如今的現狀。

          當然,以上內容省略了大量的情節,有興趣的小伙伴可以自行查閱相關資料。這里就不做過多的介紹了,因為篇幅太長了,而且也會偏離主線。

          1.1 為什么是 ASP.NET Core

          那么,為什么我們選擇了ASP.NET Core呢?目前市面上還有很多行業系統和領域相關系統都使用著 ASP.NET Webform,市場占比依舊不小。但是我們要考慮一件事情,那就是先行者優勢和彎道超車。

          現在的情況是,老的技術市場已經站滿了人,新的技術市場還空空如也(當然,在我發這篇文章的時候---2020-5-29---asp.net core已經不算新了)。如果想入場一個技術,那么最適合的就是學最新的。

          再者,ASP.NET Core支持跨平臺。最早.net是不支持跨平臺的,后來是Mono 經過努力讓.net 開始支持跨平臺。后來微軟提出了跨平臺戰略和物聯網戰略,才提出正式的跨平臺實現。

          那么,我想到這里理由還是比較充分了。

          1.2 為什么是MVC

          MVC也就是Model-View-Controller的簡稱,意思是模型-視圖-控制器。它的通信流程是這樣的:

          • 用戶訪問界面(View),提交請求(包括訪問請求)
          • 界面向控制器(Controller)轉送用戶的請求,并進行一定程度封裝
          • 控制器(Controller)處理并完成后,以Model的形式返回給View
          • View解析返回的Model,然后繪制界面展示給用戶

          MVC降低了頁面和控制器的耦合,簡單的講就是極大的減少了頁面上的服務器腳本。另外,增強了頁面復用。ASP.NET Core MVC 在這一方便進一步優化了,又減少了不符合HTML格式的標簽。

          當然,MVC還有更多的好處。不過,最主要的一點就是,MVC可以讓你離那些大佬更近一步(意思就是能讓你獲得一個工作)。



          2. ASP.NET Core 入門

          在上一節,我胡扯了一堆,說不定打消了很多人的興趣,哈哈,開個玩笑。讓我們正式開始來試試ASP.NET Core。

          1. 先創建一個解決方案: dotnet new sln --name AspDemo
          2. 創建一個MVC項目然后加入到解決方案 dotnet new mvc --name MvcWeb dotnet sln add MvcWeb

          這時候,如果不出意外的話,你能在AspDemo目錄下看到如下目錄結構:

          ├── AspCoreDemo.sln
          └── MvcWeb
              ├── appsettings.Development.json
              ├── appsettings.json
              ├── Controllers
              │   └── HomeController.cs
              ├── Models
              │   └── ErrorViewModel.cs
              ├── MvcWeb.csproj
              ├── obj
              │   ├── MvcWeb.csproj.nuget.dgspec.json
              │   ├── MvcWeb.csproj.nuget.g.props
              │   ├── MvcWeb.csproj.nuget.g.targets
              │   ├── project.assets.json
              │   └── project.nuget.cache
              ├── Program.cs
              ├── Properties
              │   └── launchSettings.json
              ├── Startup.cs
              ├── Views
              │   ├── Home
              │   │   ├── Index.cshtml
              │   │   └── Privacy.cshtml
              │   ├── Shared
              │   │   ├── Error.cshtml
              │   │   ├── _Layout.cshtml
              │   │   └── _ValidationScriptsPartial.cshtml
              │   ├── _ViewImports.cshtml
              │   └── _ViewStart.cshtml
              └── wwwroot
                  ├── css
                  │   └── site.css
                  ├── favicon.ico
                  ├── js
                  │   └── site.js
                  └── lib
                      ├── bootstrap
                      │   ├── dist
                      │   │   ├── css
                      │   │   │   ├── bootstrap.css
                      │   │   │   ├── bootstrap.css.map
                      │   │   │   ├── bootstrap-grid.css
                      │   │   │   ├── bootstrap-grid.css.map
                      │   │   │   ├── bootstrap-grid.min.css
                      │   │   │   ├── bootstrap-grid.min.css.map
                      │   │   │   ├── bootstrap.min.css
                      │   │   │   ├── bootstrap.min.css.map
                      │   │   │   ├── bootstrap-reboot.css
                      │   │   │   ├── bootstrap-reboot.css.map
                      │   │   │   ├── bootstrap-reboot.min.css
                      │   │   │   └── bootstrap-reboot.min.css.map
                      │   │   └── js
                      │   │       ├── bootstrap.bundle.js
                      │   │       ├── bootstrap.bundle.js.map
                      │   │       ├── bootstrap.bundle.min.js
                      │   │       ├── bootstrap.bundle.min.js.map
                      │   │       ├── bootstrap.js
                      │   │       ├── bootstrap.js.map
                      │   │       ├── bootstrap.min.js
                      │   │       └── bootstrap.min.js.map
                      │   └── LICENSE
                      ├── jquery
                      │   ├── dist
                      │   │   ├── jquery.js
                      │   │   ├── jquery.min.js
                      │   │   └── jquery.min.map
                      │   └── LICENSE.txt
                      ├── jquery-validation
                      │   ├── dist
                      │   │   ├── additional-methods.js
                      │   │   ├── additional-methods.min.js
                      │   │   ├── jquery.validate.js
                      │   │   └── jquery.validate.min.js
                      │   └── LICENSE.md
                      └── jquery-validation-unobtrusive
                          ├── jquery.validate.unobtrusive.js
                          ├── jquery.validate.unobtrusive.min.js
                          └── LICENSE.txt

          簡單介紹一下MvcWeb項目中的幾個目錄:

          • Controllers 里存放著控制器,負責處理視圖回傳的數據
          • Models 里存放著Model層代碼,目錄名稱不強求,也不一定非要在這里
          • Views 存放著視圖路徑,這個是固定名稱
          • wwwroot 用來存放一些js腳本和css樣式表
          • obj 目錄是編譯生成的目錄,暫時不用過多的關心。

          那么,接下來運行一下這個項目看看效果:

          cd MvcWeb
          dotnet run
          # 或者
          dotnet run --porject MvcWeb

          如果出現如下內容表示項目已經啟動完成了:

          然后在瀏覽器中輸入:

          http://localhost:5000

          然后就能看到如下內容:

          目前是一個空蕩蕩的項目,不要急,在這個系列之后的文章中我們會繼續豐富這個項目,讓它的內容更加豐富更加符合我們的需要。



          3. Program.cs

          有沒有覺得這個名字很熟悉?沒錯,我們之前每次演示使用的都是控制臺程序,就有一個Program.cs文件,里面有一個Main方法。我們知道,Main方法是一個程序的入口。之前的Asp.net項目并沒有這個方法,是因為之前的項目都是依托在IIS上。而asp.net core脫離了IIS,使其可以直接運行,所以就有一個入口方法。

          代碼應當如下:

          public class Program
          {
              public static void Main(string[] args)
              {
                  CreateHostBuilder(args).Build().Run();
              }
          
              public static IHostBuilder CreateHostBuilder(string[] args)=>
                  Host.CreateDefaultBuilder(args)
                  .ConfigureWebHostDefaults(webBuilder=>
                  {
                      webBuilder.UseStartup<Startup>();
                  });
          }

          3.1 修改端口

          在我們使用的時候,經常會出現端口被占用的情況,這時候就需要我們設置一下端口了。設置方法如下:

          webBuilder.UseUrls("http://*:5006");

          然后重啟項目,就可以發現端口已經發生改變。



          4. Setup.cs

          這個類用來配置服務和應用的請求管道。這是一個約定的名稱。初始版本的類文件應該是這樣的:

          public class Startup
          {
              public Startup(IConfiguration configuration)
              {
                  Configuration=configuration;
              }
          
              public IConfiguration Configuration { get; }
          
              // This method gets called by the runtime. Use this method to add services to the container.
              public void ConfigureServices(IServiceCollection services)
              {
                  services.AddControllersWithViews();
              }
          
              // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
              public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
              {
                  if (env.IsDevelopment())
                  {
                      app.UseDeveloperExceptionPage();
                  }
                  else
                  {
                      app.UseExceptionHandler("/Home/Error");
                      // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                      app.UseHsts();
                  }
                  app.UseHttpsRedirection();
                  app.UseStaticFiles();
          
                  app.UseRouting();
          
                  app.UseAuthorization();
          
                  app.UseEndpoints(endpoints=>
                  {
                      endpoints.MapControllerRoute(
                          name: "default",
                          pattern: "{controller=Home}/{action=Index}/{id?}");
                  });
              }
          }

          5. 總結

          這一篇簡單的帶領大家一起看了下asp.net core MVC項目??梢哉f這是最能體現微軟的約定優于配置這句話的項目。MVC項目配置、繼承都很少。所有的方法和類都是通過約定好的名稱和參數列表來區分。所以在開發MVC項目適合,發現效果和預期不太一致的時候,看一下是不是有拼寫錯誤。

          嗯,這一篇就到這了。《asp.net core 系列》期待你的關注,下一篇將介紹如何編寫一個控制器并訪問它。

          求關注,求點贊,求轉發~~有啥可以評論喲

          avaweb

          在我們平常的javaweb開發中,前臺頁面經常會用到獲取url中的參數,大多數程序員可能直接

          用window.location.href 獲取到當前頁面的url,然后再用substring去截取字符串,這樣的話很麻煩。

          當然我上面所說的是在html的文件中,如果你是用的jsp的話,那就很簡單了。用el表達式我們可以很輕松的獲取url中的參數:${param.paramName}

          好了,言歸正傳,那如何在html中獲取url中的參數了?

          我們可以單獨封裝一個函數來達到這個目的。以后只要是要獲取url的參數,直接調用這個函數就可以了。

          function get_param(name, url){

          if(!url) url=window.location.href;

          name=name.replace(/[\[\]]/g,"\$&");

          var regex=newRegExp("[?&]"+ name +"(=([^&#]*)|&|#|$)"),

          results=regex.exec(url);

          if(!results) return null;

          if(!results[2]) return '';

          return decodeURIComponent(results[2].replace(/\+/g," "));

          }

          我在后續的文章中,會分享更多更實用的開發小技巧給大家,希望大家多多關注!

          、啟動我們上節配置Docker MYSQL的數據庫,如果沒有啟動可以使用如下命令進行啟動。

          docker start mysql5.7

          如果沒有創建好,請參考上節進行安裝和相應的配置。

          二、創建開發目錄

          三、克隆代碼到開發目標

          git clone https://gitee.com/zuohuaijun/Admin.NET.git

          下圖的目錄結構圖,ADMIN.NET子目錄為.NET后臺接口服務代碼,WEB子目錄為前端開發目錄,我們大部的時間都在這兩個子目錄中進行開發。

          代碼庫樹結構

          四、后臺管理平臺開發部署測試

          Visual studio 2022打開Admin.Net目錄下的Admin.NET.sln文件。項目結構如下:

          四個子項目,Application項目存放的是新開發的服務接口,Core存放的是ADMIN.NET的服務結構體和接口庫,Web.Core項目通常是Web項目所需要的中間件或者處理函數。Web.Entry項目是程序啟動項目,系統打開默認啟動項目不是這個,我們需要將其設置為啟動項目。

          后端項目構成

          在后臺項目啟動前,我們需要配置相應的數據庫配置信息。

          在Application項目下Configuration目錄下的Database.json文件,如下圖參考每個字段的配置項目說明。特別注意EnableInitDb的配置項目,此字段表示會初始化數據庫,如果數據庫不存在,則會創建數據庫。EnableInitSeed表示會自動生成演示數據信息行。(如果正式部署時,務必將這兩項更改為false。

          數據庫配置文件

          此配置文件可以配置多個數據庫,默認第一個數據庫不需要配置ConfigId字段,會自動生成。并且系統許多基礎的數據均在這個數據庫中。

          首先讓我們使用工具連接數據庫系統并創建我們使用的數據庫ADMINNETDEMO數據庫。

          我使用的是DBEAVER,免費版使用的數據庫操作客戶端工具。

          下載網站:https://dbeaver.io/

          DBEAVER官網

          打開已經安裝的Dbeaver,創建MYSQL連接,Dbeaver會根據你選擇的類型自動下載所需要的驅動程序。

          并按如下進行配置即可。

          DBEAVER創建MYSQL數據庫連接

          我們可以點擊上圖中連接詳細,標注數據庫連接的名稱,以便識別。

          DBEAVER連接成功

          點擊上圖數據庫,右鍵創建數據庫,名稱為ADMINNETDEMO。

          創建數據庫

          創建數據庫成功后,我們把之前創建的MYSQL配置在配置第一個數據庫鏈接配置項目中。

          ConnectionString類似如下進行配置,需要創建自己所需要的數據庫

          Database=ADMINNETDEMO;Data Source=127.0.0.1;Port=3306;User Id=root;Password=123456;Charset=utf8;TreatTinyAsBoolean=false;

          數據庫連接更改

          啟動項目后,會瀏覽器中出現如下圖。

          后臺SWAGGER接口幫助

          查看數據庫也會發現,自動創建相關的系統表。

          啟動后自動創建的系統表

          五、前端開發部署測試

          使用VSCODE打開前臺項目,Web文件夾。

          打開命令窗口,使用如下命令進行啟動前臺項目

          cnpm install 加載模塊

          cnpm run dev 運行開發環境

          VSCODE執行命令

          點擊鏈接即可打開網站,即可登陸進行試用

          ADMIN.NET前臺管理登陸頁面


          主站蜘蛛池模板: 国产高清视频一区二区| 精品亚洲一区二区三区在线播放| 久久中文字幕一区二区| 亚洲国产一区在线观看| 一区二区三区免费高清视频| 2014AV天堂无码一区| 日韩一区二区三区不卡视频| 在线观看视频一区二区| 亚洲国产系列一区二区三区| 亚洲欧洲一区二区三区| 狠狠色婷婷久久一区二区三区 | 无码精品不卡一区二区三区| 国产乱码一区二区三区四| 日本香蕉一区二区三区| 精品视频在线观看一区二区三区| 伊人久久一区二区三区无码| 在线观看视频一区二区| 波多野结衣免费一区视频| 色欲精品国产一区二区三区AV| 精品少妇一区二区三区视频| 亚洲高清日韩精品第一区| 波多野结衣久久一区二区| 亚洲日本中文字幕一区二区三区| 国产传媒一区二区三区呀| 精品一区二区三区无码免费直播| 一区二区三区日本视频| 色欲AV蜜臀一区二区三区| 麻豆国产在线不卡一区二区| 亚洲狠狠狠一区二区三区| 精品中文字幕一区二区三区四区| 午夜福利国产一区二区| 无码人妻精品一区二区三区蜜桃| 国产精品免费视频一区| 麻豆天美国产一区在线播放| 国模精品视频一区二区三区| 亚洲熟女一区二区三区| 一区二区三区视频免费观看 | 中文字幕一区二区免费| 波多野结衣一区二区| 亚洲色偷精品一区二区三区| 精品一区二区三区无码免费视频|