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 ...
随机推荐
- Winforms界面开发DevExpress v19.2:Map、Pivot Grid等功能增强
DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.无论是Office风格的界面,还是分析处理大批量的业务数据,DevExpr ...
- 二维数组转化为json数组
二维数组转化为json数组 -1 var colName = [ ["08020092", "AVX", "1200m", "12 ...
- 放大镜如何用js
例如: let imgs = { small: ["imgA_1.jpg", "imgB_1.jpg", "imgC_1.jpg"], mi ...
- 服务消费(LoadBalancerClient、Ribbon、Feign)
转自:https://www.jianshu.com/p/562045489d9d 4.1使用LoadBalancerClient 在Spring Cloud Commons中提供了大量的与服务治理相 ...
- css基础(浮动 清除f浮动)
文档流(标准流) 1.元素自上而下,自左而右 2.块元素,独占一行,行内元素在一行上显示,碰到父级元素的边框换行 浮动left 浮动的框可以向左或是向右移动,直到它的边缘碰到包含框或是另个浮动框 ...
- 识别C++编译器编译标准
cout << __cplusplus<<endl; C++03:__cplusplus = 199711L C++11:__cplusplus = 201103L
- mybatis oracle mysql 批量插入时的坑爹问题--需谨记
mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...
- Leetcode题目22.括号生成(动态规划-中等)
题目描述: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "( ...
- 关于OpenModelica的编译
由于工作需要,最近对OpenModelica进行二次开发,由于国内资料也比较少,所以踩了一些坑,近期计划把OpenModelica的编译,msys,及OpenModelica里面比较关键的部分OMEd ...
- 【实用软件】GIF屏幕录制软件-ScreenToGif (在GitHub开源)
抛个问题,自问自答 ScreenToGif 经常会遇到一些场景,需要你向别人展示一些操作或是效果——例如告诉别人某某软件的配置步骤啊.刚某个动画效果怎么样啊.某某电影里面的一个镜头多么经典啊.打得大快 ...