ASP.NET Core 入门笔记 1,项目概览
(1)新建项目选择ASP.NET Core Web应用程序
(2)程序会自动安装相应的包组件,此时依赖项会有感叹号,等待安装完毕感叹号消失
(3)在项目的文件夹下建立其他文件,都会在项目资源视图中显示出来

(4)打开项目配置文件以及介绍:资源视图下对项目右键-编辑xxx.csproj。其中<TargetFramwork>表示支持的.net版本,这里可以编辑为支持多个版本。<Folder Include="wwwroot\">是个文件夹,在资源视图下可以看到,该目录下的都可以被看到,如果要看到其他的目录,需要设定,采用白名单策略。<PacagetReference Include="Microsoft.AspNetCore.App"/>是被引用的包。
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup>
<TargetFramework>netcoreapp2.</TargetFramework>
</PropertyGroup> <ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
</ItemGroup> </Project>
(5)ASP.Net Core启动和配置:
Program类
在应用启动的时候,会执行CreateWebHostBuilder方法,在这个方法中通过类Startup创建了默认了HostBuilder
Startup类
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
} // 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();
} app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
}
web项目模板默认在项目启动的时候调用IApplicationBuilder.run方法,在当前HTTP上下文(HttpContext)中输出了Hello World!
(6)依赖注入,IoC容器
生命周期
-Transient:每次被请求都会创建新的实例
-Scoped:每次Web请求会创建一次实例
-Singleton:一旦被创建实例,就会一直使用这个实例,直到应用停止
(7)依赖注入 的好处:
-不用去管声明周期
-类型之间没有 依赖
例如在startup类下
public void ConfigureServices(IServiceCollection services)
{
//这句是添加的代码,意思是如果有其他程序请求ICinemaService的时候,都会返回一个CinemaMemoryService实例
services.AddSingleton<ICinemaService, CinemaMemoryService>();
}
(8)Startup下Configure(IApplicationBuilder app,IHostingEnvironment env):用于配置Http请求的管道,专门处理用户的请求,这个类下放置的东西就叫做中间件,比如授权MVC等


IIS是外部服务器也称反向代理服务器,根据平台的不同而不同,比如阿帕奇等,Kestre是应用服务器,跨平台,就是程序中执行Main方法的程序。运行时也可以直接跳过IIS直接访问应用服务器


(9)管道生命周期:这里需要选择程序运行才能看到控制台日志输出,注意这里的logger是新加的注入参数


(10)运行选项配置:这里是VS的使用配置,这里配置IIS运行还是直接应用程序运行。第一种方法,对项目右键-属性-调试-配置文件;第二种,直接在界面上绿色运行按钮选择;第三种方法,propertie->launchSettings.json配置,代码中的env.IsDevelopment()便是用来判断当前的运行环境,根据环境执行过程。
ASP.NET Core 入门笔记 1,项目概览的更多相关文章
- ASP.NET Core 入门笔记2,建立项目
1.建立项目 2.项目结构 1.项目结构说明 根目录/文件 说明 .vscode目录 VS Code项目配置目录,相当于.vs..idea文件夹 bin目录 编译输出目录 obj目录 编译配置与中间目 ...
- ASP.NET Core 入门笔记8,ASP.NET Core MVC 分部视图入门
一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)分部视图简介 ASP.NET Core MVC (Razor)分部视图基础教程 ASP.NET Core MVC (Raz ...
- ASP.NET Core 入门笔记10,ASP.NET Core 中间件(Middleware)入门
一.前言 1.本教程主要内容 ASP.NET Core 中间件介绍 通过自定义 ASP.NET Core 中间件实现请求验签 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10 SD ...
- ASP.NET Core 入门笔记9,ASP.NET Core + Entity Framework Core 数据访问入门
一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...
- ASP.NET Core 入门笔记7,ASP.NET Core MVC 视图布局入门
一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...
- ASP.NET Core 入门笔记6,ASP.NET Core MVC 视图传值入门
摘抄自:https://www.cnblogs.com/ken-io/p/aspnet-core-tutorial-mvc-view-renderdata.html 如有侵权请告知 一.前言 1.本教 ...
- ASP.NET Core 入门笔记5,ASP.NET Core MVC控制器入门
摘抄自https://www.cnblogs.com/ken-io/p/aspnet-core-tutorial-mvc-controller-action.html 一.前言 1.本教程主要内容 A ...
- ASP.NET Core 入门笔记4,ASP.NET Core MVC路由入门
敲了一部分,懒得全部敲完,直接复制大佬的博客了,如有侵权,请通知我尽快删除修改 摘抄自https://www.cnblogs.com/ken-io/p/aspnet-core-tutorial-mvc ...
- ASP.NET Core 入门笔记3,使用ASP.NET Core MVC框架构建Web应用
一.ASP.NET Core MVC 输出Hello World,Friend! 1.引入 ASP.NET Core MVC 修改应用启动类(Startup.cs),引入MVC模块并配置默认路由 pu ...
随机推荐
- loj2424 「NOIP2015」子串[字符串DP]
给定字符串 A,B,要求从 A 中取出互不重叠的 k 个非空子串,按照出现顺序拼起来后等于 B.求方案数.n ≤ 1000,m ≤ 200. 主要是状态的转移.先设计出$f_{i,j,k}$表长度$B ...
- nginx之"/"结尾
一.配置127.0.0.1:8081的tomcat下的文件: 1.ROOT/a.html : this is ROOT page 2.ROOT/testa.html : nihao 3.ROOT/in ...
- 02 Vue介绍与安装,指令系统 v-*、音乐播放器
VUE文档 https://cn.vuejs.org/v2/guide/ 1.vue的介绍 尤雨溪 1.vue的优点 2.vue的介绍 3.vue的安装 4.声明式渲染 <body> &l ...
- webpack5持久化缓存
Opt-in webpack 旨在注重构建安全而非性能.我们没有打算默认启用这一功能,主要原因在于此功能虽然有 95% 几率提升性能,但仍有 5% 的几率中断你的应用程序/工作流/构建. 什么是缓存失 ...
- linux系统下nginx/mysql/php启动、停止、重启命令
/usr/local/nginx/sbin/nginx /etc/init.d/mysql start /usr/local/php/sbin/php-fpm start #nginx命令 ...
- jQuery.post(url, [data], [callback], [type])
jQuery.post(url, [data], [callback], [type]) 概述 通过远程 HTTP POST 请求载入信息. 这是一个简单的 POST 请求功能以取代复杂 $.ajax ...
- BZOJ 2976: [Poi2002]出圈游戏 Excrt+set
人数很少,可以直接用 $set$ 来模拟人的情况. 然后就能得到若干个方程,用 $excrt$ 进行合并即可. #include <set> #include <cmath> ...
- jquery判断元素是否可见隐藏
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta nam ...
- 0.JQuery安装
jQuery 安装 网页中添加 jQuery 可以通过多种方法在网页中添加 jQuery. 您可以使用以下方法: 从 jquery.com 下载 jQuery 库 从 CDN 中载入 jQuery, ...
- (五)C语言之表达式