ASP.NET Core应用程序1:创建示例项目

ASP.NET Core----基础学习01----HelloWorld---创建Blank空项目 1. 创建新项目--方式一: blank 2. 程序各文件介绍(Project name :ASP.Net_Blank) (1)launchSettings.json 启动方式的配置文件 (2)appsettings.json 基础配置file参数的读取 (3)Program.cs 程序启动的入口文件 3. 简单改造---通过Startup.cs文件获取程序的Name,并返回页面显示 4.简单改造:将appsettings.json 文件中读取到的内容传递到页面显示 5.程序从不同file源读取数据的顺序 阅读详情

1 创建项目

创建一个MyWebApp的空项目。也可以用一下命令行创建。

dotnet new globaljson --sdk-version 3.1 --output MyWebApp
已成功创建模板“global.json file”。
dotnet new web --no-https --output MyWebApp --framework netcoreapp3.1
已成功创建模板“ASP.NET Core Empty”。
dotnet new sln -o MyWebApp
已成功创建模板“解决方案文件”。

dotnet sln MyWebApp add MyWebApp
已将项目“WebApp.csproj”添加到解决方案中。

2 添加数据模型

2.1 添加数据库NuGet包

Microsoft.EntityFrameworkCore.Design3.1.1版本

Microsoft.EntityFrameworkCore.SqlServer3.1.1版本

2.2 创建数据模型

在Models文件夹中创建三个类:Product、Supplier、Category。

/// <summary>
/// 产品
/// </summary>
public class Product
{
    public long ProductId { get; set; }

    public string Name { get; set; }
    [Column(TypeName = "decimal(8, 2)")]
    public decimal Price { get; set; }

    public long CategoryId { get; set; }
    public Category Category { get; set; }

    public long SupplierId { get; set; }
    public Supplier Supplier { get; set; }
}
/// <summary>
/// 供应商
/// </summary>
public class Supplier
{
    public long SupplierId { get; set; }
    public string Name { get; set; }
    public string City { get; set; }

    public IEnumerable<Product> Products { get; set; }
}
/// <summary>
/// 类别
/// </summary>
public class Category
{
    public long CategoryId { get; set; }
    public string Name { get; set; }

    public IEnumerable<Product> Products { get; set; }
}

Models文件夹中创建一个能访问数据库的EFCore上下文类DataContext。

public class DataContext : DbContext
    {
    public DataContext(DbContextOptions<DataContext> options) : base(options)
    {         
    }
    public DbSet<Product> Products { get; set; }    
    public DbSet<Supplier> Suppliers { get; set; }
    public DbSet<Category> Categories { get; set; } 
}

2.3 准备种子数据

Models文件夹中创建SeedData类,用来定义填充的种子数据。

public static class SeedData
    {
        public static void SeedDatabase(DataContext context)
        {
            context.Database.Migrate();
            if (context.Products.Count() == 0 && context.Suppliers.Count() == 0 &&
                context.Categories.Count() == 0)
            {
                Supplier s1 = new Supplier { Name = "Splash Dudes", City = "San Jose" };
                Supplier s2 = new Supplier { Name = "Soccer Town", City = "Chicago" };
                Supplier s3 = new Supplier { Name = "Chess Co", City = "New York" };

                Category c1 = new Category { Name = "Watersports" };
                Category c2 = new Category { Name = "Soccer" };
                Category c3 = new Category { Name = "Chess" };

                context.Products.AddRange(
                    new Product { Name = "Kayak", Price = 275, Category = c1, Supplier = s1 },
                    new Product { Name = "Lifejacket", Price = 48.95m, Category = c1, Supplier = s1 },
                    new Product { Name = "Soccer Ball", Price = 19.50m, Category = c2, Supplier = s2 },
                    new Product { Name = "Corner Flags", Price = 34.95m, Category = c2, Supplier = s2 },
                    new Product { Name = "Stadium", Price = 79500, Category = c2, Supplier = s2 },
                    new Product { Name = "Thinking Cap", Price = 16, Category = c3, Supplier = s3 },
                    new Product { Name = "Unsteady Chair", Price = 29.95m, Category = c3, Supplier = s3 },
                    new Product { Name = "Human Chess Board", Price = 75, Category = c3, Supplier = s3 },
                    new Product { Name = "Bling-Bling King", Price = 1200, Category = c3, Supplier = s3 }
                );
                context.SaveChanges();
            }
        }
    }

2.4 配置EFCore服务和中间件

对Startup类进行更改

public class Startup
    {
        public IConfiguration Configuration { get; set; }
        public Startup(IConfiguration config)
        {
            Configuration = config;
        }
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<DataContext>(opts =>
            {
                opts.UseSqlServer(Configuration["ConnectionStrings:ProductConnection"]);
                opts.EnableSensitiveDataLogging(true);
            });
        }
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DataContext context)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    await context.Response.WriteAsync("Hello World!");
                });
            });

            SeedData.SeedDatabase(context);
        }
    }

在appsettings.json中定义配置字符串

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information",
      "Microsoft.EntityFrameworkCore": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "ProductConnection": "Server=.;Database=Products;MultipleActiveResultSets=true;User ID=sa;Pwd=123456;"
  }
}

2.5 创建和应用迁移

在WebApp项目文件夹中运行命令

创建迁移 dotnet ef migrations add Initial

将迁移应用到数据库dotnet ef database update

如果需要重置数据库,可运行dotnet ef database drop -force

3 添加CSS框架

安装LibMan工具包 Microsoft.Web.LibraryManager.Cli2.0.96

命令

dotnet tool uninstall --global Microsoft.Web.LibraryManager.Cli
dotnet tool install --global Microsoft.Web.LibraryManager.Cli --version 2.0.96

安装引导CSS框架

命令

libman init -p cdnjs

libman install twitter-bootstrap@4.3.1 -d wwwroot/lib/twitter-bootstrap

或者在VS中选择添加客户端库

img

4 配置请求管道

定义一个简单中间件TestMiddleware.cs.

public class TestMiddleware
{
    private RequestDelegate _nextDelegate;
    public TestMiddleware(RequestDelegate nextDelegate)
    {
        _nextDelegate = nextDelegate;
    }

    public async Task Invoke(HttpContext context,DataContext dataContext)
    {
        if(context.Request.Path == "/test")
        {
                await context.Response.WriteAsync($"There are {dataContext.Products.Count()} products\n");
                await context.Response.WriteAsync($"There are {dataContext.Categories.Count()} categories\n");
                await context.Response.WriteAsync($"There are {dataContext.Suppliers.Count()} suppliers\n");
        }
        else
        {
            await _nextDelegate(context);
        }
    }
}

在Startup类中添加这个中间件组件

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DataContext context)
        {
            ......
            app.UseRouting();
            app.UseMiddleware<TestMiddleware>();
            ......  
        }

5 运行项目

img

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一样。 ... 阅读详情

相关推荐

【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万+

.netcore项目

ConfigureServices方法是用来把services(各种服务,例如identity,ef, mvc等等包括第=方的,或者自己写的)加入(registerl到continerlasp.net core的容器中去并配周这些services 这container是用来进dependency iniection的(依赖注入)所有注的services(此外还包括-些框架已经注册好的services)在以后写代码的时候.都可以将它们注入/iniect)进去.例如上面的Confiqure方法的参数。

weixin_51327185的博客 2037

通俗讲解清楚光线追踪中的蒙特卡洛积分

彻底讲解光线追踪中的蒙特卡洛积分

qq_37366618的博客 1243

.netcore入门14:使用vs2019创建asp.net core应用的四种模板的区别和用法

环境: .netcore 3.1.101 vs2019 16.4.5 试验目的: 探索asp.net core应用的四种类型:“空”模板项目、“API”模板项目、“web-razorpages”、“web-mvc”。 一、“空”模板项目 这个是最简单和基础的项目! 1.1 创建的选项如下: 1.2 特点及使用方法 默认创建后,在项目里不能创建controllers、views和razorpa...

火焰 3621

【verilog语法详解:从入门到精通】

Verilog语法详解:从入门到精通 摘要:本文系统讲解Verilog硬件描述语言的核心语法与应用。Verilog作为数字电路设计标准,具有并行执行、硬件映射和层次化三大特点。文章从基础语法框架入手,详细介绍了模块定义、端口类型(input/output/inout)声明规范,以及线网型(wire)和寄存器型(reg)两种核心数据类型的区别与应用场景。重点讲解了组合逻辑(assign连续赋值)和时序逻辑(always块)的实现方式,包括阻塞赋值(=)与非阻塞赋值(<=)的关键差异。此外,还涵盖了参数(

m0_58476824的博客 4680

从实验室到生活:构建一份全面的手机相机主观画质评测指南

本文详细介绍了如何从实验室数据转向实际体验,构建全面的手机相机主观画质评测指南。通过基础装备清单、室内外场景实战评测及数据之外的感知艺术,帮助用户发现手机相机在色彩还原、动态范围和夜景模式等方面的真实表现。特别关注主观体验与客观参数的差异,提供实用的评测技巧和报告撰写心法。

weixin_30940783的博客 308

ASP.NET Core Web API入门之一:创建新项目

ASP.NET Core Web API入门之一:创建新项目

qq_40615333的博客 3004

Simulink模块库介绍(一)——信号源模块

Simulink模块库介绍(一)——信号源模块库目录Clock模块Digital Clock模块Band-Limited White Noise模块 目录 simulink模块库中提供了丰富的信号源模块组。逐一介绍,算是对之前做个总结吧 Clock模块 通过时钟模块,输出的时间作为判断呢,如下图,前2s之前为高斯白噪声,后2s为正弦曲线,共计10s。 Digital Clock模块 数字时钟模块主要用于离散系统的计时,sample time表示采用时间,如下图:分别是1s和0.5s的采样时间 Band-

5万+

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

asp.net core mvc项目的创建

qq_74405602的博客 3912

筑牢上线前安全防线:安全运维服务中的检测实践与深化

在日益严峻的网络安全形势下,将漏洞扫描、渗透测试和基线核查有机结合的上线前安全检测,是保障信息系统安全、稳定、合规上线的基石。通过专业、严谨、协作的检测实践,乙方安全团队能够有效协助甲方在系统生命周期的起点就构筑起坚固的安全防线,为业务的顺利开展和用户的信任保驾护航,真正实现“安全赋能业务”的价值。这道“守门人”的职责,是数字时代企业稳健前行的不可或缺的保障。专业的安全服务提供商(乙方)需要与甲方(系统所有者/运营方)建立紧密、透明、协作的伙伴关系,实现风险的闭环管理,甚至推动甲方安全能力的长期提升。

huluang的专栏 183

YOLOv8车辆碰撞识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置+目标检测)

随着我国汽车保有量的持续攀升,道路交通事故数量居高不下,车辆碰撞损伤的快速、精准评估已成为交通安全管理、保险理赔定损以及汽车后市场服务中的关键环节。传统的人工目视查验方法高度依赖评估人员的专业经验,不仅主观性强、效率低下,而且在复杂光照、多角度遮挡等真实场景下难以保证评估的一致性和可复现性。计算机视觉与深度学习技术的迅猛发展,为目标检测任务提供了强有力的技术支撑,使得基于视觉的车辆损伤自动化识别成为可能。

斌擎科技 128

java和asp.net core,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。点击Create。...

weixin_29216353的博客 415

SolidWorks速成教程P1——简介及基础操作

SolidWorks教程P1——简介及基础操作

嵌入式阿齐Archie 2万+

ASP.NET Core 新建项目(Windows) - ASP.NET Core 基础教程 - 简单教程,简单编程

ASP.NET Core 新建项目(Windows) - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core 新建项目(Windows) - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 新建项目(Windows) 对于任何语言和框架,都是从...

weixin_30455067的博客 107

芒果YOLOv1改进35:主干Backbone篇之MobileViTv3:全网首发最新 MobileViTv3 系列最强改进版本(三)|轻量化Transformer视觉转换器,简单有效地融合了本地全局

芒果YOLOv1改进35:主干Backbone篇之MobileViTv3:全网首发最新 MobileViTv3 系列最强改进版本(三)|轻量化Transformer视觉转换器,简单有效地融合了本地全局

包括YOLOv5、YOLOv7、YOLOv8等模型改进 408

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)

创建ASP.NET Core Web应用程序如果您使用的是VS2017请看VS2017创建ASP.NET Core Web程序(三)在这个视频中我们将讨论可用的不同项目...

dotNET跨平台 6595

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VS2017创建ASP.NET Core Web程序

创建ASP.NET Core Web应用程序如果您使用的是VS2019 请看VS2019创建ASP.NET Core Web程序在这个视频中我们将讨论可用的不同项目模板...

dotNET跨平台 4093

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

ASP.NET Core Web应用程序项目部署流程

基于Windows服务器环境下进行ASP.NET core Web应用程序部署处理。

LZD_jay的专栏 3564

在IIS中调试ASP.NET Core应用程序

IIS中的调试提供了更平滑的开发过程,无需考虑您的Web服务器是否正在运行。 我已经使用ASP.NET核心了一段时间,并且总是错过了Visual Studio中的直接IIS支持。必须记住启动项目才能启动IIS Express,这有点令人讨厌。在开发软件时,我们希望实际的调试和运行过程尽可能自动化,而使用IIS Express,它们根本不是。 简单地启动浏览器并立即调试JavaScript要快得...

寒冰屋的专栏 4218

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

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的博客 1319

使用VS 2019,.NET Core 3和Web API创建ASP.NET Core Blazor CRUD应用程序

目录 介绍 Blazor Blazor客户端应用程序 Blazor服务器应用程序 背景 先决条件 使用代码 第1步-创建数据库和表 第2步-创建ASP.NET Core Blazor服务器应用程序 运行以测试应用程序 调试组件 步骤3-使用实体框架 安装软件包 添加数据库连接字符串 创建模型类 创建dbConext类 在Startup中添加DbContext 创...

寒冰屋的专栏 5257

如何 ASP.NET Core 中使用 WebSocket

摘要:本文详细介绍了在ASP.NET Core中实现WebSocket通讯的完整流程。文章首先阐述了WebSocket在实时应用中的优势,如聊天室、金融交易等场景。然后分三个阶段演示实现过程:1)服务器端配置WebSocket中间件和路由;2)客户端创建WebSocket连接;3)测试多个客户端连接。最后通过构建聊天室应用演示了多用户消息广播功能,包括用户加入/离开通知等特性。教程提供了完整的代码示例,帮助开发者快速掌握ASP.NET Core中WebSocket的实现方法。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 1665

【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

ASP.Net Core WebAPI示例创建和配置Swagger

一、创建ASP.NET Core Web 项目

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2752

创建 ASP.NET Core API 应用程序

创建ASP.NET CoreAPI 应用程序 在这里,我们将学习如何在Visual Studio 2019中创建我们的第一个ASP.NET Core 3.0应用程序。 打开Visual Studio 2019,然后单击创建新项目,如下所示。 “创建新项目”对话框包含不同的.NET Core 3.x应用程序模板。每个应用程序都会创建预定义的项目文件和文件夹,具体取决于应用程序类型。在这里,我们将创建一个简单的Web应用程序,因此选择ASP.NET Core Web 应用程序模板,然后单击...

ananlele_的专栏 519
上一篇: MySQL学习之触发器
下一篇: ASP.NET Core应用程序2:创建RESTful Web服务
似水明俊德
博客等级 码龄8年 247粉丝 276原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值