本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力.

本教程知识点大体分为以下几个阶段

  • ASP.Net Core MVC基础知识
  1. Startup基本配置和理解
  2. Controller使用
  3. Razor视图
  4. 传统视图
  5. Model Validation (基本用法)
  6. 一点点的Vue (教程使用Vue配合)
  • SqlSugar ORM (进行数据库交互)
  • Entity Framework  Core(基本介绍使用)
  • 授权和身份验证(MVC的, WebApi的不进行介绍)
  • 安全性
  • 测试 / 单元测试
  • 性能基本优化
  • 日志功能
  • CI/CD
  • Windows部署
  • Linux部署

一 : 系列教程环境介绍

  1: 操作系统, Windows 10 专业版 64位  (版本号: 1809)

  2: IDE使用Visual Studio 2017专业版 (版本号: 15.9.5)

  3: SDK环境 .Net Core 2.2.101

  4: 前端 Vue 2.X

  5: 数据库 MSSQL 2017

  6: 语言使用 C# 7.3

二 : .Net Core 2.2环境安装

  进行.Net Core开发, 需要安装.Net Core SDK, 下载地址

  下载安装完成之后在CMD里面运行dotnet --version 查看版本号, 如图

  

三: 新建一个ASP.Net Core MVC项目

  打开VS2017, 新建项目, 选择.Net Core --> ASP.NET Core Web应用程序, 如图

  

  取好项目名字和选择完路径, 点击确定,进入下一步

  

  选择Core 2.2, 选择空的模版, 这样才能一步步理解ASP.Net Core MVC

  点击确定之后, 项目结构应该是这样的

  

  比较简洁, 下面开始介绍每个文件的作用

四: 项目文件及默认配置解析

  1. Connected Services. 这是存放服务引用的, 比如Web Services等等, 这个项目文件夹在硬盘上实际上是不存在的, 本系列教程也不会使用
  2. Properties. 这个项目文件夹在硬盘上是实际存在的, 里面有个launchSettings.json文件. 对项目开发进行一些基本配置, 比如启动方式, 当前环境等等, 后面的教程会有基本的讲解
  3. 依赖项. 这也是个在硬盘上不存在的文件夹. 存放当前项目的引用. 和.Net Framework的引用是一个意思. 只不过.Net Core的引用都是基于Nuget管理, 不能直接添加DLL引用
  4. appsettings.json. 该文件是当前项目的配置信息. 等价于.Net Framework的Web.config文件, 可以把项目一些配置信息放在这里, 比如数据库连接字符串等等
  5. Program.cs不必多说
  6. Startup.cs. 主要是用来控制配置服务信息, 注册一些中间件什么的
  7. Welcome.csproj. 这个文件在VS里面是看不到的, 但是在硬盘上能看到, 如果需要在VS里面查看, 右键项目, 编辑Welcome.csproj即可, 如图
  8. TargetFramework  表示当前使用的是.Net Core2.2版本
  9. AspNetCoreHostingModel, 这是.Net Core 2.2新加的, 优化了IIS的性能. 取值为InProcess表示让当前的这个MVC Web运行于IIS进程中, 就是那个w3wp.exe这个进程. 还有一个别的选项, 叫OutOfProcess. 取值这个表示使用反向代理模式, 比如使用nginx反向代理. 使用OutOfProcess没有InProcess性能好, 毕竟微软自家的东西, 有针对性优化
  10. PackageReference表示当前引用的Nuget包, 不做过多解释. 也可以在依赖项中展开查看,和这里面的名字一样
  11. Program类代码分析. 一个Main方法, 程序入口, 所有的程序都有的. 一个CreateWebHostBuilder方法, 这方法使用了WebHost类的CreateDefaultBuilder方法, 可以理解为创建了一个宿主, 然后再调用了IWebHostBuilder接口的扩展UseStartup方法, 传入Startup, 进行一些配置和服务注册
  12. CreateDefaultBuilder方法里面包含了一些默认配置, 比如使用了Kestrel服务器, 集成IIS, 日志输出功能等等, 这是个ASP.Net Core内置的一个跨平台托管服务器. 当然, 很多默认的配置都可以在Startup类中进行自定义配置. 可以在源码中查看. 怎么查看源码, VS2017自带了, 打开即可, 如图设置
  13. 然后我们在CreateDefaultBuilder方法上按F12, 即可看到源码, 源码如下: 
  14. 能够很详细的看到, 使用了UseKestrel & UseIIS & UseIISIntegration等方法, 证明我上面的不是瞎说

好咯, 第一节都写到这里, 下一节讲究项目配置信息和来源

如果在使用.Net Core遇到任何问题, 都加群进行讨论, 群号: 1群: 225982985. 2群: 726648662. 3群: 654015377

下一篇 : ASP.Net Core 2.2 MVC入门到基本使用系列 (二)

ASP.Net Core 2.2 MVC入门到基本使用系列 (一)的更多相关文章

  1. ASP.Net Core 2.2 MVC入门到基本使用系列 (二)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

  2. ASP.Net Core 2.2 MVC入门到基本使用系列 (三)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

  3. ASP.Net Core 2.2 MVC入门到基本使用系列 (四)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

  4. ASP.Net Core 2.2 MVC入门到基本使用系列 (四)(转)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

  5. ASP.Net Core 2.2 MVC入门到基本使用系列 (三)(转)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

  6. ASP.Net Core 2.2 MVC入门到基本使用系列 (二)(转)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

  7. ASP.Net Core 2.2 MVC入门到基本使用系列 (一)(转)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

  8. ASP.NET Core 2.0 MVC项目实战

    一.前言 毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的.之前实习时主要是做.NET的B/S架构的项目,主要还是 ...

  9. 《ASP.NET Core项目开发实战入门》带你走进ASP.NET Core开发

    <ASP.NET Core项目开发实战入门>从基础到实际项目开发部署带你走进ASP.NET Core开发. ASP.NET Core项目开发实战入门是基于ASP.NET Core 3.1 ...

随机推荐

  1. RWIGS and LORBIT (1)

    RWIGS and LORBIT  是两个与局域态密度或投影态密度相关的参数:RWIGS指的是Wigner–Seitz radius,LORBIT前面的LO指的就是Local.         这两个 ...

  2. 如何搭建hibernate框架

    我写这篇博客,主要是想让大家能够快速上手hibernate,本人建议学习框架,应该一个框架一个框架学习,别一上手就三大框架整合,学习之类的.这里只是单独搭建hibernate框架,让大家 能够更好的上 ...

  3. Codeforces Beta Round#2

    Codeforces Beta Round#2 http://codeforces.com/contest/2 A 模拟题 #include<bits/stdc++.h> using na ...

  4. War(最短路+最大流)

    War http://acm.hdu.edu.cn/showproblem.php?pid=3599 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  5. runtime - 2 - 使用私有方法

    1. 创建 一个person类, 有对象方法, 私有化方法 2. 在h 文件里面 - (void)eat; //- (void)run:(NSInteger)metre; 3. 在m文件里面 -(vo ...

  6. Spring_AOP动态代理详解(转)

    在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的 ...

  7. linux 下安装gult

    本文假设你之前没有用过任何任务脚本(task runner)和命令行工具,一步步教你上手Gulp.不要怕,它其实很简单,我会分为五步向你介绍gulp并帮助你完成一些惊人的事情.那就直接开始吧. 第一步 ...

  8. Codeforces 658A. Robbers' watch 模拟

    A. Robbers' watch time limit per test: 2 seconds memory limit per test: 256 megabytes input: standar ...

  9. ldd "symbol lookup error"问题解决

    http://www.linuxquestions.org/questions/slackware-14/symbol-lookup-error-usr-lib-libgtk-x11-2-0-so-0 ...

  10. swift http post json + 登录

    var nsUrl : NSURL = NSURL(string:API_HOST+"/"+LOGIN_API)! var request = NSMutableURLReques ...