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 ...
随机推荐
- 观察数组 -vue
1.vue中的被包装的观察数组能够触发视图更新 2.有push(),pop(),shift(),unshift(),splice(),sort(),reverse() 3.不能检测到下面数组变化: 1 ...
- k8sSecret资源
Secret资源的功能类似于ConfigMap,但它专用于存放敏感数据,如密码.数字证书.私钥.令牌和ssh key等. 一.概述 Secret对象存储数据以键值方式存储数据,再pod资源中通过环境变 ...
- Newnode's NOI(P?)模拟赛 第二题 dp决策单调优化
其实直接暴力O(n3)DP+O2O(n^3)DP+O_2O(n3)DP+O2优化能过- CODE O(n3)O(n^3)O(n3) 先来个O(n3)O(n^3)O(n3)暴力DP(开了O2O_2O2 ...
- BSGS 扩展大步小步法解决离散对数问题 (BZOJ 3239: Discrete Logging// 2480: Spoj3105 Mod)
我先转为敬? orz% miskcoo 贴板子 BZOJ 3239: Discrete Logging//2480: Spoj3105 Mod(两道题输入不同,我这里只贴了3239的代码) CODE ...
- 处理springboot OTS parsing error: Failed to convert WOFF 2.0 font to SFNT
springboot项目中添加了字体等文件后,页面无法识别,浏览器调试窗口报错如下: Failed to decode downloaded font: http://localhost:8080/f ...
- vueCli和脚手架
vue CLI相当于一个基于vue开发的框架:可以用来快速开发vue项目: 1.安装 由于需要用到npm命令,所以要先安装node.js: node.js下载地址:https://node ...
- ubuntu安装扩展在phpinfo显示不出来的解决办法
在Ubuntu中使用apt-get安装了php扩展(比如redis.memcache.memcached等),在终端输入php -m是显示已加载,但是在phpinfo中无法显示,这个时候需要重启一下p ...
- getFieldDecorator用法(三)——Table增删改
后台管理系统常用到表单的增删改,这里也做了个封装 例如:user/index.js import React from 'react' import { Card, Button, Table, Fo ...
- Android_activity实现一个简单的新建联系表
项目展示: 第一个Activity用于显示联系人信息 第二个Activity输入联系人信息 要求: 运行“新建联系人”程序,结果如下图所示: 点击“新建联系人”按钮,打开输入信息界面并输入姓名.公司. ...
- django 网站上传资源的显示与配置
1. 上传资源的配置 1. 首先在项目里创建一个名称叫media的文件夹专门保存用户上传 2. settings.py文件配置上传资源的路径 # 上传资源路径,如果图片,上传文件等 MEDIA_UR ...