开发Core项目的条件

看到VS包的体积,以及不想往下走了.

幸亏,ms出了VS Code,可开发.NET Core项目.实际上记事本也能写Core代码,但是开发是需要调试的.

所以本系列将持续用VS Code开发.以代码为主,关键点会加以注释

由于公司事比较多,一直没来得及更新

目录

Web API

  • dotnet new 添加Core项目
  • project.json添加依赖
    • "Microsoft.AspNetCore.Server.Kestrel"

    • "Microsoft.AspNetCore.Mvc"

  • 添加Startup.cs
  • 添加ValuesController.cs
  • 修改Program.cs

project.json 添加的依赖

    "dependencies": {
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0", //webhost
"Microsoft.AspNetCore.Mvc": "1.0.0" //webapi mvc
}

  

添加的Startup.cs

using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection; public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseMvc();//使用MVC管道
} public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();//MVC加入到DI容器中
}
}

添加的ValuesController.cs

using Microsoft.AspNetCore.Mvc;

public class ValuesController
{
[HttpGet("/values/{name}")]//name参数注入
public string Index(string name)
{
return "Hello World:" + name; }
}

修改的Program.cs

        public static void Main(string[] args)
{
new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.UseUrls("http://localhost:8899", "http://localhost:9988/")//同时监听2个端口
.Build()
.Run();
}

MVC

在.NET Core中,MVC和Web API实际上走的同一个管道

本例子会在上面的Web API基础上修改

  • 添加和修改project.json

    • Microsoft.AspNetCore.Razor.Tools
  • 添加HomeController
  • 添加Index.cshtml
  • 修改Program.cs

MVC中因为有razor动态编译,所以不仅仅添加1个依赖即可

project.json修改的内容

    "buildOptions": {
"debugType": "portable",
"emitEntryPoint": true,
"preserveCompilationContext": true //动态编译
},
"dependencies": {
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0", //webhost
"Microsoft.AspNetCore.Mvc": "1.0.0", //webapi mvc
"Microsoft.AspNetCore.Razor.Tools": { //mvc razor
"version": "1.0.0-preview2-final",
"type": "build"
}
},

添加的HomeController.cs

注意:需要继承Controller类

using Microsoft.AspNetCore.Mvc;

public class HomeController : Controller
{
[HttpGet("/{name}")]
public IActionResult Index(string name)
{
ViewBag.Name = "Hello " + name;
return View();
}
}

  

添加Index.cshtml

目录结构和之前方式(ASP.NET MVC)一样

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>@ViewBag.Name</h1>
</body>
</html>

修改Program.cs

        public static void Main(string[] args)
{
new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.UseContentRoot(Directory.GetCurrentDirectory()) //mvc views需要
.UseUrls("http://localhost:8899", "http://localhost:9988/")//同时监听2个端口
.Build()
.Run();
}

静态文件

  • 添加依赖:project.json

    • Microsoft.AspNetCore.StaticFiles
  • 注册管道:Startup.cs
  • 添加静态文件:wwwroot

project.json

    "dependencies": { //nuget包
"Microsoft.AspNetCore.Mvc": "1.0.0", //webapi mvc
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0", //webhost
"Microsoft.AspNetCore.Razor.Tools": { //mvc razor
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.AspNetCore.StaticFiles": "1.0.0"//静态文件
},

注册管道

        public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();//需要在mvc前 否则将优先被mvc路由匹配执行
app.UseMvc();
}

添加静态文件

静态文件默认是以wwwroot文件夹为根目录

注意:

  • 添加依赖后,需要Restore后才能使用该库
  • 本节由于篇幅问题,去除了配置文件的大量说明
  • 本文地址:http://www.cnblogs.com/neverc/p/5801210.html

[Core] .NET Core & VS Code 之路(2) Web API的更多相关文章

  1. NET Core & VS Code 之路(2) Web API

    NET Core & VS Code 之路(2) Web API 开发Core项目的条件 Visual Studio 2015 Update 3 .NET Core 1.0.0 - VS 20 ...

  2. 《ASP.NET Core跨平台开发从入门到实战》Web API自定义格式化protobuf

    <ASP.NET Core跨平台开发从入门到实战>样章节 Web API自定义格式化protobuf. 样章 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于 ...

  3. .NET Core HttpClient调用腾讯云对象存储Web API的"ERROR_CGI_PARAM_NO_SUCH_OP"问题

    开门见山地说一下问题的原因:调用 web api 时请求头中多了双引号,请求体中少了双引号. 腾讯云提供的对象存储(COS)C# SDK 是基于 .NET Framework 用 WebRequest ...

  4. [ASP.NET MVC 小牛之路]18 - Web API

    Web API 是ASP.NET平台新加的一个特性,它可以简单快速地创建Web服务为HTTP客户端提供API.Web API 使用的基础库是和一般的MVC框架一样的,但Web API并不是MVC框架的 ...

  5. asp.net core 2.0 web api基于JWT自定义策略授权

    JWT(json web token)是一种基于json的身份验证机制,流程如下: 通过登录,来获取Token,再在之后每次请求的Header中追加Authorization为Token的凭据,服务端 ...

  6. 国产化之路-安装WEB服务器

    专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...

  7. 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(二)-- Web Api Demo

    在上一篇里,我已经建立了一个简单的Web-Demo应用程序.这一篇将记录将此Demo程序改造成一个Web Api应用程序. 一.添加ASP.NET Core MVC包 1. 在project.json ...

  8. 【翻译】在Visual Studio中使用Asp.Net Core MVC创建你的第一个Web API应用(一)

    HTTP is not just for serving up web pages. It's also a powerful platform for building APIs that expo ...

  9. ASP.NET Core Web API下事件驱动型架构的实现(二):事件处理器中对象生命周期的管理

    在上文中,我介绍了事件驱动型架构的一种简单的实现,并演示了一个完整的事件派发.订阅和处理的流程.这种实现太简单了,百十行代码就展示了一个基本工作原理.然而,要将这样的解决方案运用到实际生产环境,还有很 ...

随机推荐

  1. handler内存泄露

    原因: 在Activity中新建一个Handler后,Handler执行计时操作,如果Activity销毁,Handler是不会主动销毁的,而且会占用Activity的空间,不使其回收,积累久了就会内 ...

  2. list点击项高亮其他默认

    // 点击项颜色高亮,其他默认 if (position != lastPosition && onClickItemView != null) { TabMenu lastTabMe ...

  3. 2015ACM/ICPC亚洲区上海站

    5573 Binary Tree(构造) 题意:给你一个二叉树,根节点为1,子节点为父节点的2倍和2倍+1,从根节点开始依次向下走k层,问如何走使得将路径上的数进行加减最终结果得到n. 联想到二进制. ...

  4. 我的c++学习(11)数组和指针

    使用数组显示斐波那契数列 #include "stdafx.h" using namespace std; #include<iostream> int _tmain( ...

  5. Docking Windows Phone controls to the bottom of a StackPanel

    <Grid> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinit ...

  6. python 进程和线程

    python中的进程.线程(threading.multiprocessing.Queue.subprocess) Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就 ...

  7. 第 1 章 jQuery 入门

    学习要点: 1.什么是 jQuery 2.学习 jQuery 的条件 3.jQuery 的版本 4.jQuery 的功能和优势 5.其他 JavaScript 库 6.是否兼容低版本 IE 7.下载及 ...

  8. linq To DataTable

    //将IEnumerable<T>类型的集合转换为DataTable类型 1111 public static DataTable LINQToDataTable<T>(IEn ...

  9. 温故而知新 兼容性较强的轮播器superslide.js

    官网: http://www.superslide2.com/index.html demo: http://www.superslide2.com/demo.html API: http://www ...

  10. 关于linux开机进入grub问题的解决方法

    用还是用ls (hd0,X)/grub命令查看每个盘里面的内容, 情况一 :如果你是在/boot/grub这个目录下找到的 grub rescue>root=(hd0,9)         gr ...