新的刚来到,旧的就忘掉。学习 AspNet Core 2.0,没有好的例子,是很痛苦的。《Pro ASP.NET Core MVC 2》中的 SportsStore值得一看,不妨下载研究一下:

 准备

1. 使用 Ubuntu 系统

2. 安装 NetCore2.0

3. 安装  VSCode

4. 安装  Sqlite

 开始工作

1. 新建文件夹 MvcLab,用 VSCode 打开,ALT + `,打开终端,输入命令 dotnet new sln 生成解决方案;然后输入如下命令,生成 x01.SportWeb 及其测试项目:

    mkdir x01.SportWeb
  cd x01.SportWeb/
  dotnet new mvc --auth Individual   cd ..
  mkdir x01.SportTest
  cd x01.SprotTest/
  dotnet new xunit   cd ..
  dotnet sln add x01.SportWeb/x01.SportWeb.csproj
  dotnet sln add x01.SportTest/x01.SportTest.csproj

2. 对照 SportsStore 的例子,亦步亦趋即可。

补充说明

1. 采用 Ubuntu,取其跨平台;--auth Individual 选项,是为用户管理作准备。

2.  x01.SportTest.csproj 中,需添加对 x01.SportWeb.csproj 的引用: 

  <ItemGroup>
<ProjectReference Include="../x01.SportWeb/x01.SportWeb.csproj" />
</ItemGroup>

3. 在 ApplicationDbContext 添加 public DbSet<Product> Products {get; set:} 属性后,需运行如下命令:

dotnet ef migrations add AddProduct

更新 database 前需添加类 TempDbContextFactory 如下:

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design; namespace x01.SportWeb.Data
{
public class TempDbContextFactory : IDesignTimeDbContextFactory<ApplicationDbContext>
{
public ApplicationDbContext CreateDbContext(string[] args)
{
var builder = new DbContextOptionsBuilder<ApplicationDbContext>();
builder.UseSqlite("Data Source=app.db");
return new ApplicationDbContext(builder.Options);
}
}
}

手工注释 Migrations/*_AddProduct.cs 中的 AddForeignKey 部分:

       // migrationBuilder.AddForeignKey(
// name: "FK_AspNetUserTokens_AspNetUsers_UserId",
// table: "AspNetUserTokens",
// column: "UserId",
// principalTable: "AspNetUsers",
// principalColumn: "Id",
// onDelete: ReferentialAction.Cascade);

运行如下命令更新 database:

  dotnet ef database update

其他《Pro ASP.NET Core MVC 2》书中语之甚详,不一一复叙也。

关于 Angular

1.《Angular 5 和 AspNet  Core 2》 也是不错的,学习到第六章的代码下载链接:x01.TestMakerFreeWeb

2. 在 ubuntu => vscode 中运行效果图如下:

需要安装 sqlite,npm, less 等,使用 sudo aptnpm install 即可。

x01.SportWeb: An Example for AspNetCore 2.0的更多相关文章

  1. windows 上用 docker 部署aspnetcore 2.0

       首先下载docker for windows 并且 安装. 这其中需要显卡支持虚拟化  windows系统升级到专业版  bois 启用虚拟   通过vs2017 创建一个net core ap ...

  2. CanalSharp.AspNetCore v0.0.4-支持输出到MongoDB

    一.多样输出支持 CanalSharp.AspNetCore是一个基于CanalSharp的适用于ASP.NET Core的一个后台任务组件,它可以随着ASP.NET Core实例的启动而启动,目前采 ...

  3. AspnetCore 2.0

    AspnetCore 2.0 本文地址 http://www.cnblogs.com/likeli/p/8204054.html 关于 API文档自动生成,用于对APP端的开发帮助文档生成,默认Pro ...

  4. [AspNetCore 3.0] 在RazorPages/MVC 中使用 Blazor (Razor组件)

    开发环境 Vs2019 16.3.1 dotnetcore 3.0 一.开始 新建webapp项目 dotnet new webapp -o projectname 或Vs 中新建项目选择 Web应用 ...

  5. [AspNetCore 3.0 ] Blazor 服务端组件 Render, RenderFragment ,RenderTreeBuilder, CascadingValue/CascadingParameter 等等

    一.组件 支撑Blazor的是微软的两大成熟技术,Razor模板和SignalR,两者的交汇点就是组件.通常,我们从ComponentBase派生的类型,或者创建的.razor 文件,就可以称作组件. ...

  6. 【开源】AspnetCore 2.0 自动API文档生成组件,支持protobuffer

    本文地址 http://www.cnblogs.com/likeli/p/8204054.html 关于 API文档自动生成,用于对APP端的开发帮助文档生成,默认ProtoBuffer传输格式. 本 ...

  7. nginx 1.3.9/1.4.0 x86 Brute Force Remote Exploit

    测试方法: 本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! #nginx 1.3.9/1.4.0 x86 brute force remote exploit # copyri ...

  8. ASP.NET Core 2.0 in Docker on Windows Container

    安装Docker for Windows https://store.docker.com/editions/community/docker-ce-desktop-windows 要想将一个ASP. ...

  9. docker~aspnetcore2.0镜像缺少libgdiplus问题

    回到目录 对于微软官方提供的镜像microsoft/aspnetcore2.0来说,它没有安装libgdiplus包,所以当你使用了draw去画图时,就会出现一些问题,我们一般会安装第三方的包包,ZK ...

随机推荐

  1. 沉淀再出发:IoC和AOP的本质

    沉淀再出发:IoC和AOP的本质 一.前言 关于IoC和AOP这两个概念,如果我们没有深入的理解可以说是根本就不理解Spring这个架构的,同样的由Spring演变出来的Spring Boot和Spr ...

  2. awk 截取某段时间的日志

    好久没有截取nginx/haproxy 中 的日志了,竟有点不熟悉了. 记录一下,以免以后忘记. NGINX 日志格式: 192.168.1.26 - - [14/Sep/2017:16:48:42 ...

  3. centos7 docker 使用pipework 做虚拟机

    网卡配置文件 及 bridge的静态配置 centos7 Bridge配置 [root@mon-1 ~]# cd  /etc/sysconfig/network-scripts/ [root@mon- ...

  4. linux下常用命令:

    常用指令 ls        显示文件或目录 -l           列出文件详细信息l(list) -a          列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir     ...

  5. codeforces 549F Yura and Developers(分治、启发式合并)

    codeforces 549F Yura and Developers 题意 给定一个数组,问有多少区间满足:去掉最大值之后,和是k的倍数. 题解 分治,对于一个区间,找出最大值之后,分成两个区间. ...

  6. 内网渗透中的mimikatz

    0x00 前言 上篇测试了中间人攻击利用框架bettercap,这次挑选一款更具代表性的工具--mimikatz 0x01 简介 mimikatz,很多人称之为密码抓取神器,但在内网渗透中,远不止这么 ...

  7. Innodb_io_capacity 对于IO稳定性的一些研究

    背景:最近在做一台线上服务器IO负载情况的时候发现了以下现象: 24小时的IO_UTIL 的曲线看似风平浪静,毛刺较少 但当图片放大到半小时级别的时候发现IO_UTIL即磁盘使用率出现了规律性的波动, ...

  8. mac使用指南--软件安装部分

    最近因为开发需要,换了个mac,发现和Windows下面的操作和习惯真是千差万别啊,在这里记录一下,有需要的也可以参考一下. 安装前强烈建议根据个人习惯设置好触控板!!!什么单击双击选中拖拽的统统设好 ...

  9. 【RabbitMQ】4、三种Exchange模式——订阅、路由、通配符模式

    前两篇博客介绍了两种队列模式,这篇博客介绍订阅.路由和通配符模式,之所以放在一起介绍,是因为这三种模式都是用了Exchange交换机,消息没有直接发送到队列,而是发送到了交换机,经过队列绑定交换机到达 ...

  10. python:定时任务模块schedule

    1.安装 pip install schedule 2.文档 https://schedule.readthedocs.io/en/stable/faq.html#how-to-execute-job ...