ASP.NET Core系列(二):创建第一个.Net Core 项目

ASP.NET CORE[练习1]-创建ASP.NET CORE项目以及Migration数据库 练习+博客,量化自己的进步! 此为ASP.NET CORE[练习] 的第一篇,发的晚了。 1.为什么学习.net core? 2.创建项目 3.EF、Migation 学习.net core 很low的我现在工作上都没有用上.net core,但.net core未来也是必然趋势,不光是跨平台,它的优雅让.net又上了一个层次,就如当初webForm看.net mvc一样。 ... 阅读详情

前面讲过 .NET Core简介及开发环境安装,本章会讲一讲ASP.NET Core 2.0的项目结构,查看完整的ASP.NET Core系列文章:https://www.cnblogs.com/zhangweizhong/category/1477144.html

 

新建项目

新建项目, 选择.NET Core 有如下几种类型可选, 分别是Console, ASP.NET Core 的空项目,Web API

我们选择ASP.NET Core Web App(MVC), 没有标注MVC的是采用Razor pages 的项目。

 

项目结构图

新建的项目结构如下图所示, 大体上和ASP.NET 的Framework版本差不多, Controller、Model, View就不介绍了。

大概介绍一下各个文件是干什么用的,后面的文章会做详细的研究。

launchSettings.json

顾名思义, 这是 json格式的启动配置文件,如下图所示:

{
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:9452",
      "sslPort": 44379
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "MyFirstCore": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

 图的上部分对应json中的profiles中定义的两种配置,分别以IIS Express。基本上都是Web服务器比如URL、身份认证以及SSL等配置。

 

wwwroot

wwwroot它包含了所有的"前端"的静态文件,  css、image、JS以及一个名为lib的文件夹。

lib中默认内容是bootstrap和jquery。

在Startup中,会调用UseStaticFiles()方法, 将此目录标记到网站根目录。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    //.....        
    app.UseStaticFiles();
    //.....

}

具体静态文件的路径及相关自定义配置, 授权等后文详细研究。

 

依赖项

整个项目依赖引用的类库,这里主要分两部分, NuGet和SDK, 目前这两部分下面都只有一项.

Nuget:

包含Microsoft.AspNetCore.App, 展开它看一下, 里面MVC、Razor、EF以及SQLLite都要,

它包含了

  • ASP.NET Core 团队支持的所有包。
  • Entity Framework Core 支持的所有包。
  • ASP.NET Core 和 Entity Framework Core 使用的内部和第三方依赖关系。 

这里面是完整的AspNetCore的类库,其实这些程序集不会随着项目发布一起出现在部署包中, 不止没引用的, 包括引用的也不会. 这些已经存在于部署环境中了, 所以发布包不会变大反而会变小, 不必担心.

SDK:

SDk中包含了一项: Microsoft.NETCore.App, 它是.NET Core 的部分库。 也就是 .NETCoreApp 框架。 它依赖于更小的 NETStandard.Library。

相对于上面的Microsoft.AspNetCore.App, 它同样是包含了一些程序集.但它似乎更"基础"一些.

二者异同

Microsoft.AspNetCore.App中大部分都是Microsoft.开头的一些程序集, 而Microsoft.NETCore.App中出现的大多数是我们熟悉的system.XXX的.

二者的关系就像ASP.NET相对于.NET, 此处是Asp.NetCore相对于.Net Core. 

SDK同样是一个大而全的集和, 在部署的时候, SDK中的引用依然不会出现在部署包中。

 

appsettings.json

这就是原来的framework版本的MVC的Web.config文件,里面会配置系统相关的所有的配置项,比如数据库连接等。

默认情况appsettings.json只有对于log日志的相关配置。这里就不一一说明了。

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

 

Program.cs

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
}

这里是简单的Main方法, 也就是应用的启动的入口, 启动后通过UseStartup<Startup>()指定下文的Startup启动文件进行启动。

 

Startup.cs

Startup类配置服务和应用程序的请求管道。这是.Net Core非常重要的地方, 包括加载配置, 通过依赖注入加载组件, 注册路由等都在此处进行。

默认的代码中:

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.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }

如上图所示, 默认情况下设置了两种不同状态下的错误页, 指定静态文件并且设置了路由。

在这里, 我们可以向管道中通过中间件的方式插入我们需要的工作内容。

比如我们还可以用app.UseAuthentication()来做身份验证。

 

Startup类非常重要,涉及的内容也非常多, 比如管道机制、路由注册、身份认证等都需要专题研究。

 

小结

项目的结构大体就是这样,主要功能介绍完了,后面会一个一个详细介绍各自的功能和作用。

 


 

ASP.NET Core 入门教程 1、使用ASP.NET Core 构建第一个Web应用 一、前言 1、本文主要内容 Visual Studio Code 开发环境配置 使用 ASP.NET Core 构建Web应用 ASP.NET Core Web 应用启动类说明 ASP.NET Core Web 项目结构说明 2、本教程环境信息 软件/环境 说明 操作系统 Windows 10 SDK 2.1.401 ASP.NET Core 2.1.3 IDE V... 阅读详情

相关推荐

ASP.NET Core Web Razor Pages系列教程:使用ASP.NET Core创建Razor Pages Web应用程序

本系列教程翻译自微软官方教程 本系列教程介绍了构建Razor Pages Web应用程序的基础知识。 本系列包括以下教程: 创建一个Razor Pages网络应用程序 将模型添加到Razor Pages应用程序 脚手架(生成)剃刀页面 使用数据库 更新Razor页面 添加搜索 添加一个新字段 添加验证 最后,您将拥有一个可以显示和管理电影数据库的应用程序: ...

个人博客 2085

Asp.net core实战4: 创建你的第一个Asp.net core项目

我们划分为四个步骤创建你的第一个项目: 1.根据官方提供的模板生成一个项目 2.使用NuGet修复所缺少的第三方库 3.Build你的项目 4.Run你的项目   第一步:创建项目(请自行下载安装Asp.net core SDK 2.0及Visual Studio2015以上版本)   打开Visual studio,选择File--New--Project,创建Asp.net c...

『程序员·小李』的博客 657

ASP.NET Core Web Razor Pages系列教程一:使用ASP.NET Core 创建一个Razor Pages网络应用程序

ASP.NET Core 系列教程一:使用ASP.NET Core 创建一个Razor Pages网络应用程序 未完待续

个人博客 1832

.net core 创建web项目

环境:ubuntu 16.04 .net core 2.2 直接使用命令 :dotnet new 可以查看到能创建的项目类型 hcy@hcy-System-Product-Name:~/dotnet/project$ dotnet new Usage: new [options] Options: -h, --help Displays help for t...

个人的工作随笔和日记,主要作为一个记录风向平台 1542

【ASP.NET CORE 2.0】在CentOS上部署ASP.NET CORE 2.0程序【超详细】

突然来的需求,让以前ASP.NET写的系统要部署到Linux上,所以研究了一下。1. 安装CentOS网上一搜一大把,我是在虚拟机上安装的。可以参考2. 安装.NET CORE SDK for CentOS 72.1 添加.NET相关为了安装.NET,需要注册微软签名密钥和添加微软相关的支持。这个操作每台机器只能做一次。 打开命令行,输出以下命令:sudo rpm --import https:/

花海的专栏 1万+

【高级-RAG-优化方法】

本文介绍了两种优化RAG(检索增强生成)系统的高级方法。第一部分介绍KnowFlow项目,它采用父子分块技术,将文档分为父分块(800-1500字符)和子分块(200-400字符),通过精确匹配子分块再返回父分块内容来保证搜索精确性和上下文完整性。第二部分探讨Milvus的多种增强技术,包括查询增强(如假设问题生成、回溯提示)、索引增强(自动合并块、分层索引)、检索器增强(句子窗口检索、元数据过滤)、生成器增强(提示压缩、块排序)以及管道增强(自我反省、代理查询路由)。这些方法共同提升了RAG系统的检索效率

weixin_48585108的博客 960

第一个.netcore的前后端交互项目——申请试用表单的提交之【前端】使用Vue+elementui设计表单

.netcore前后端交互小demo

qq_46126258的博客 2499

Python脚本自动化芯片设计?PyAether实战教程带你玩转EDA

本文通过PyAether实战教程,详细介绍了如何利用Python脚本实现芯片设计自动化。内容涵盖环境搭建、核心对象模型解析,并重点演示了原理图自动生成、参数化单元创建及设计验证流程集成,帮助EDA工程师从重复性手动操作中解放,显著提升设计效率与一致性。

e4f5g6h的博客 1315

如何创建asp .net core项目

ASP .NET Core是一个跨平台的高性能开源框架,用于生成基于云且连接Internet的新式应用。ASP .NET Core不仅能在Windows上部署,也能在MacOS和Linux上部署。ASP .NET Core能够满足于在.Net Core 和 .Net Framework上运行。整合MVC和WebAPI到一个框架中。.Net Core还有一个好的功能是,通过Ctrl + F5(非调试...

kungc1的博客 546

在Mac下配置用VSCode编写C/C++程序的环境

前言    最近需要编写一些C/C++程序,由于体量都不是很大所以想要追求一个轻量化的编辑和编译环境,于是想起了在Dock栏吃灰的VSCode。通过查找资料,包括VSCode的官方文档,最终配置实现了Mac下基于VSCode的C/C++编辑环境搭建。 正文    在配置环境之前先检查一下机器上都安装了什么C++编译器,通过以下两条命令可以查看是否安装了g++/clang编译器,本人两种编...

Kalikali的专栏 5万+

PCIe设备内存访问实战:从ioremap到DMA映射的完整流程解析

本文深入解析了PCIe设备内存访问的完整流程,涵盖从CPU通过ioremap访问设备寄存器,到设备通过DMA映射高效读写主机内存的核心机制。详细探讨了虚拟地址、物理地址与总线地址的转换关系,对比了一致性与流式DMA映射的适用场景及同步要点,并阐述了IOMMU在安全与效率中的作用,为驱动开发者提供了实战代码与关键陷阱分析。

weixin_29201933的博客 505

什么是Asp.net Core?和 .net core有什么区别?

什么是Asp.Net core 我相信很多C# Developer已经对于.net core不算陌生了,就算没有正式使用相信也应该有所了解。微软在推出来.net core的同时为了方便一些原有的项目可以方便迁移,同时推出了Asp.net core。那么.net core和Asp.net core是不是同一个东西呢?如果不是又有什么区别呢? 下面我们分别说明一下,首先Asp.net core和.net core肯定不是同一个东西(废话,如果是同一个东西还写这么多干啥!)。 Asp.net core其实就是仍然

极客神殿 3万+

11、系统稳定性分析与李雅普诺夫函数的应用

本文深入探讨了李雅普诺夫函数在系统稳定性分析中的核心作用,重点介绍了时变与时不变系统的稳定性判据差异,以及巴尔巴拉特引理在处理非自治系统中的应用。文章还阐述了正线性系统与严格正实传递函数的性质及其在非线性控制系统中的重要性,并展示了李雅普诺夫函数在评估主导时间常数和设计快速干扰抑制控制策略方面的实际应用。通过具体示例和流程图,系统地总结了李雅普诺夫方法在稳定性分析、性能评估与控制器设计中的多维度价值,同时指出了当前挑战与未来发展方向。

Jerry的专栏 93

VS 2019教程:创建ASP.NET Core Web App

启动Visual Studio 2019并创建一个新项目 启动Visual Studio 2019,然后单击Create new project。选择“ASP.NET Core Web Application.”。选择Web应用程序模板,并保留默认项目名称和位置。在带有ASP.NET Core版本的下拉列表中,选择ASP.NET Core 2.1或ASP.NET Core 2.2。点击Creat...

momo7777777的博客 2862

零基础DSP实战TMS320F28035:第九节,ADC比较器&EPWM

ADC比较器框图如下所示:-电压-----------------------------输出-电压A>电压B------------------ 1-电压A

sinat_30943509的博客 2535

SAP Fiori 会话超时全解析:从 Launchpad 到 Identity Authentication 的统一策略

SAP Fiori会话超时机制解析与配置策略 本文深入探讨SAP Fiori项目中的会话超时机制,分析其对系统安全和用户体验的双重影响。文章系统拆解了SAP Fiori Launchpad与SAP Cloud Identity Services之间的会话超时工作原理,重点介绍了两种超时机制:服务器驱动的超时(通过SESSION_TIMEOUT_STOP_DATA_REFRESH参数控制)和UI驱动的超时(通过SESSION_TIMEOUT_INTERVAL_IN_MINUTES参数控制)。文中结合制造业产线

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 213

【asp.net core 系列】 1 带你了解一下asp.net core

0. 前言 这是一个新的系列,名字是《ASP.NET Core 入门到实战》。这个系列主讲ASP.NET Core MVC,辅助一些前端的基础知识(能用来实现我们需要的即可,并非主讲)。同时这个系列也会在后续介绍ASP.NET Core 平台的其它类型的项目,并带领大家以各个类型的项目为主要架构开发一个网站或者网络服务中心。 下图是官网关于Asp.net Core支持的项目的介绍 1. ASP.NET Core 介绍 这一节我将为大家介绍一下 asp.net core的发展历程。 最早,微软为了替代CGI

菜鸡成长日记 1533

Siemens SIMATIC软件二次开发:使用C#进行SIMATIC软件二次开发

通过使用OPC-UA通信协议和S7通信库,可以有效地在C#应用程序中与Siemens SIMATIC软件进行数据交换。OPC-UA提供了一个标准化的平台,而S7通信库则提供了直接访问PLC数据的能力。掌握这两种通信方式,将极大地增强在工业自动化领域的二次开发能力。在Siemens SIMATIC软件中,自定义功能块开发是实现二次开发的关键步骤之一。通过C#,可以创建高度定制化的功能块,以满足特定的控制需求。下面,我们将通过一个示例来展示如何使用C#开发一个自定义功能块。OPC-UA通信。

kkchenjj的博客 1414

开始使用ASP.NET Core - 创建第一个Web应用

.NET Core 是.NET Framework的新一代跨平台应用程序开发框架,是微软在一开始发展时就开源的软件平台,ASP.NET Core 以控制台应用程序驱动其托管环境 Kestrel Server 以支持 ASP.NET Core 程序的运行。

kMacro的博客 6760

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ASP.NET Core MVC 项目的创建(超详细教程)

asp.net core mvc项目的创建

qq_74405602的博客 3912

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ASP.NET Core HTTP Abstractions 项目教程

ASP.NET Core HTTP Abstractions 项目教程 1. 项目介绍 项目概述 ASP.NET Core HTTP Abstractions 是一个已被归档的项目,提供了 HTTP 抽象层,包括 HttpRequest、HttpResponse 和 HttpContext 等核心类,以及一些常用的 Web 工具。该项目的主要目的是为 ASP.NET Core 应用程序提供统一的 ...

gitblog_00916的博客 1320

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: ASP.NET Core系列(一): .NET Core简介及安装开发环境
下一篇: ASP.NET Core系列(三):启动类Startup
afront
博客等级 码龄20年 29粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值