Swagger也算是行之有年的API文件生成器,只要在API上使用C#的<summary />文件注解标签,就可以产生精美的线上文件,并且对RESTful API有良好的支持.不仅支持生成文件,还支持模拟调用的交互功能,连Postman都不用打开就能测API.本篇将介绍如何通过Swagger产生ASP.NET Core的RESTful API文件. 安装套件 要在ASP.NET Core使用Swagger需要安装Swashbuckle.AspNetCore套件.通过过.NET Core CLI…
Asp.Net Core WebApi学习笔记(四)-- Middleware 本文记录了Asp.Net管道模型和Asp.Net Core的Middleware模型的对比,并在上一篇的基础上增加Middleware功能支持. 在演示Middleware功能之前,先要了解一下Asp.Net管道模型发生了什么样的变化. 第一部分:管道模型 1. Asp.Net管道 在之前的Asp.Net里,主要的管道模型流程如下图所示: 请求进入Asp.Net工作进程后,由进程创建HttpWorkRequest对象…
ASP.NET Core通过路由(Routing)设定,将定义的URL规则找到相对应行为:当使用者Request的URL满足特定规则条件时,则自动对应到相符合的行为处理.从ASP.NET就已经存在的架构,而且用法也很相似,只有些许的不同.本篇将介绍ASP.NET Core的Router Middleware用法. 简单路由 之前 ASP.NET Core 2 学习笔记(三)有介绍到,可以透过Map处理一些简单路由,例如: Startup.cs // ... public class Startu…
Restful几乎已算是API设计的标准,通过HTTP Method区分新增(Create).查询(Read).修改(Update)和删除(Delete),简称CRUD四种数据存取方式,简约又直接的风格,让人用的爱不释手.本篇将介绍如何通过ASP.NET Core实践REST-Like API. 为什么是REST-Like 而不是 REST? 本文API设计未符合HATEOAS(Hypermedia As The Engine Of Application State)原则,所以不得称为REST…
ASP.NET Core MVC中的Views是负责网页显示,将数据一并渲染至UI包含HTML.CSS等.并能痛过Razor语法在*.cshtml中写渲染画面的程序逻辑.本篇将介绍ASP.NET Core MVC的Views. 之前 ASP.NET Core 2 学习笔记(六)MVC 有稍微介绍到Views及Controller的对应关系,这边就不重复说明. Razor 语法 ASP.NET Core MVC的Views默认是使用Razor引擎,Views的扩展名是用*.cshtml.文件内容以…
sql server 关于表中只增标识问题   由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错误,不能修改 set identity_insert test on  关闭标识 在添加时候 提示成功 set identity_insert 表名  on  关闭 set identity_insert 表名 off   开启 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文…
原文:ASP.NET Core 2 学习笔记(一)开始 来势汹汹的.NET Core似乎要取代.NET Framework,ASP.NET也随之发布.NET Core版本.虽然名称沿用ASP.NET,但相对于ASP.NET确实有许多架构上的差异,可以说除了名称外,已是两个不同的框架. 前言 要开发.NET Core必须要安装.NET Core SDK,所以先到官网下载.NET Core SDK的安装文件,官网下载位置点我. .NET Core作为跨平台的框架,不再像 .NET Framework…
本篇将在这个系列演示的例子上继续记录Asp.Net Core在Windows上发布的过程. Asp.Net Core在Windows上可以采用两种运行方式.一种是自托管运行,另一种是发布到IIS托管运行. 第一部分.自托管 一.依赖.Net Core环境 修改 project.json 文件内容,增加发布时需要包含文件的配置内容 { "version": "1.0.0-*", "testRunner": "xunit", //…
最近由于疫情紧张,遂在家办公,在领导的带领下,学习了一下.Net Core MVC. 一,构建web应用 1.选择c#-所有平台-web  找到ASP.NET Core web应用程序 2.项目命名之后转至如下界面:选择Web应用程序(模型视图控制器). Ok点击创建,这个项目的基本框架就生成了. 二,EF-Code First 数据迁移 1,在Models里面新建实体类和数据库上下文类,并添加相对应的引用和框架 具体代码如下: 实体类: public class InfoUser { [Key…
本篇将结合这个系列的例子的基础上演示在Asp.Net Core里如何使用XUnit结合Moq进行单元测试,同时对整个项目进行集成测试. 第一部分.XUnit 修改 Project.json 文件内容,增加XUnit相关的nuget包引用,并修改部分配置. { "version": "1.0.0-*", "testRunner": "xunit", // 设置测试工具为xunit "buildOptions"…
本篇将演示Asp.Net Core如何在多环境下进行开发适配. 在一个正规的开发流程里,软件开发部署将要经过三个阶段:开发.测试.上线,对应了三个环境:开发.测试.生产.在不同的环境里,需要编写不同的代码,比如,在开发环境里,为了方便开发和调试,前段js文件和css文件不会被压缩,异常信息将会暴露得更加明显,缓存一般也不会使用等等.而在测试环境里,为了更加接近生产环境,在开发采取的调试手段将会被屏蔽,同时为了能更好的测试发现问题,通常也会添加一些测试专用的服务和代码.最终在生产环境上,因为高效性…
本篇将记录.Net Core里颇有特色的结构化配置的使用方法. 相比较之前通过Web.Config或者App.Config配置文件里使用xml节点定义配置内容的方式,.Net Core在配置系统上发生了很大的变化,具有了配置源多样化.更加轻量.扩展性更好的特点. 第一部分.基于键值对的配置 如果要使用结构化配置,需要先引用 "Microsoft.Extensions.Configuration": "1.0.0" nuget包.下面通过一个.Net Core控制台程…
本篇将介绍Asp.Net Core中一个非常重要的特性:依赖注入,并展示其简单用法. 第一部分.概念介绍 Dependency Injection:又称依赖注入,简称DI.在以前的开发方式中,层与层之间.类与类之间都是通过new一个对方的实例进行相互调用,这样在开发过程中有一个好处,可以清晰的知道在使用哪个具体的实现.随着软件体积越来越庞大,逻辑越来越复杂,当需要更换实现方式,或者依赖第三方系统的某些接口时,这种相互之间持有具体实现的方式不再合适.为了应对这种情况,就要采用契约式编程:相互之间依…
在上一篇里,介绍了中间件的相关内容和使用方法.本篇将介绍Asp.Net Core MVC框架的过滤器的相关内容和使用方法,并简单说明一下与中间件的区别. 第一部分.MVC框架内置过滤器 下图展示了Asp.Net Core MVC框架默认实现的过滤器的执行顺序: Authorization Filters:身份验证过滤器,处在整个过滤器通道的最顶层.对应的类型为: AuthorizeAttribute.cs Resource Filters:资源过滤器.因为所有的请求和响应都将经过这个过滤器,所以…
本文记录了Asp.Net管道模型和Asp.Net Core的Middleware模型的对比,并在上一篇的基础上增加Middleware功能支持. 在演示Middleware功能之前,先要了解一下Asp.Net管道模型发生了什么样的变化. 第一部分:管道模型 1. Asp.Net管道 在之前的Asp.Net里,主要的管道模型流程如下图所示: 请求进入Asp.Net工作进程后,由进程创建HttpWorkRequest对象,封装此次请求有关的所有信息,然后进入HttpRuntime类进行进一步处理.H…
来势汹汹的.NET Core似乎要取代.NET Framework,ASP.NET也随之发布.NET Core版本.虽然名称沿用ASP.NET,但相对于ASP.NET确实有许多架构上的差异,可以说除了名称外,已是两个不同的框架. 前言 要开发.NET Core必须要安装.NET Core SDK,所以先到官网下载.NET Core SDK的安装文件,官网下载位置点我. .NET Core作为跨平台的框架,不再像 .NET Framework 要依附在 Windows系统才能运行,所以你可以按照你…
ASP.NET Core MVC的Model Binding会将HTTP Request数据,以映射的方式对应到参数中.基本上跟ASP.NET MVC差不多,但能Binding的来源更多了一些.本篇将介绍ASP.NET Core的Model Binding. Model Binding 要接收Client 传送来的数据,可以通过Action 的参数接收,如下: using Microsoft.AspNetCore.Mvc; namespace MyWebsite.Controllers { pu…
这个系列的初衷是便于自己总结与回顾,把笔记本上面的东西转移到这里,态度不由得谨慎许多,下面是我参考的资源: ASP.NET Core 中文文档目录 官方文档 记在这里的东西我会不断的完善丰满,对于文章里面一些局限于我自己知识积累的观点,希望没有跳走坚持看完的朋友,能够予以指正和鼓励. 系列目录 (1)Starup (2)中间件 (3)静态文件 静态文件 在上节中间件一节我们提到:静态文件中间件可以处理对静态文件的请求,并让管道的其余部分短路,从而起到终端中间件的作用 这一节我们对静态文件做一个更…
这个系列的初衷是便于自己总结与回顾,把笔记本上面的东西转移到这里,态度不由得谨慎许多,下面是我参考的资源: ASP.NET Core 中文文档目录 官方文档 记在这里的东西我会不断的完善丰满,对于文章里面一些局限于我自己知识积累的观点,希望没有跳走坚持看完的朋友,能够予以指正和鼓励. 系列目录 (1)Starup (2)中间件 (3)静态文件 中间件 中间件是一种装配到应用管道以处理请求和响应的软件. 每个组件: 选择是否将请求传递到管道中的下一个组件 可在管道中的下一个组件前后执行工作 请求委…
这个系列的初衷是便于自己总结与回顾,把笔记本上面的东西转移到这里,态度不由得谨慎许多,下面是我参考的资源: ASP.NET Core 中文文档目录 官方文档 记在这里的东西我会不断的完善丰满,对于文章里面一些局限于我自己知识积累的观点,希望没有跳走坚持看完的朋友,能够予以指正和鼓励. 系列目录 (1)Starup (2)中间件 (3)静态文件 基础知识 在 ASP.NET Core 中,Startup 类提供了应用程序的入口,所有应用程序中都有 Startup 类. 基本格式如下: public…
本篇是在上一篇的基础上添加日志功能,并记录NLog在Asp.Net Core里的使用方法. 第一部分:默认Logger支持 一.project.json添加日志包引用,并在cmd窗口使用 dotnet restore 命令还原包文件. { "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "emitEntryPoint…
在上一篇里,我已经建立了一个简单的Web-Demo应用程序.这一篇将记录将此Demo程序改造成一个Web Api应用程序. 一.添加ASP.NET Core MVC包 1. 在project.json文件添加Microsoft.AspNetCore.Mvc包 { "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "em…
路由跟URL 重写的功能性略有不同.路由是将Request 找到对应的服务,而URL 重写是为了推卸责任转送Request.本篇将简单介绍下ASP.NET Core的URL重写(URL Rewrite). URL Rewrite 注册 URL Rewriting Middleware需要Microsoft.AspNetCore.Rewrite套件.ASP.NET Core 2.0以上版本,预设是参考Microsoft.AspNetCore.All,已经包含Microsoft.AspNetCore…
ASP.NET Core MVC跟ASP.NET MVC观念是一致的,使用上也没有什么太大的变化.之前的ASP.NET MVC把MVC及Web API的套件分开,但在ASP.NET Core中MVC及Web API用的套件是相同的. 本篇将介绍ASP.NET Core MVC设置方式. MVC 简介 ASP.NET Core的MVC(Model-View-Controller)架构模式延续ASP.NET MVC,把网站分成三大元件Model.View及Controller,依赖关系如下图: Mo…
之前的ASP.NET网站,只要把*.html.*.css.*.jpg.*.png.*.js等静态文件放在项目根目录,默认都可以直接被浏览:但ASP.NET Core 小改了浏览静态文件的方式,默认根目录不再能浏览静态文件,需要指定静态文件的目录,才可以被浏览.本篇将介绍ASP.NET Core浏览静态文件的方法. 试着在项目根目录及wwwroot目录中加入静态文件,例如: 项目根目录\index.html <!DOCTYPE html> <html> <head> &l…
ASP.NET Core使用了大量的依赖注入(Dependency Injection, DI),把控制反转(Inversion Of Control, IoC)运用的相当巧妙.DI可算是ASP.NET Core最精华的一部分,有用过Autofac或类似的DI Framework对此应该不陌生.本篇将介绍ASP.NET Core的依赖注入(Dependency Injection). DI 容器介绍 在没有使用DI Framework 的情况下,假设在UserController 要调用User…
之前ASP.NET中使用的HTTP Modules及HTTP Handlers,在ASP.NET Core中已不复存在,取而代之的是Middleware.Middleware除了简化了HTTP Modules/Handlers的使用方式,还带入了Pipeline的概念.本篇将介绍ASP.NET Core的Middleware概念及用法. Middleware 概念 ASP.NET Core在Middleware的官方说明中,使用了Pipeline这个名词,意指Middleware像水管一样可以串…
要了解程序的运行原理,就要先知道程序的进入点及生命周期.以往ASP.NET MVC的启动方式,是继承 HttpApplication 作为网站开始的进入点,而ASP.NET Core 改变了网站的启动方式,变得比较像是 Console Application. 本篇将介绍ASP.NET Core 的程序生命周期 (Application Lifetime) 及捕捉 Application 停止启动事件. 程序进入点 .NET Core 把 Web 及 Console 项目都处理成一样的启动方式,…
本文转自:https://www.cnblogs.com/niklai/p/5662094.html 本篇是在上一篇的基础上添加日志功能,并记录NLog在Asp.Net Core里的使用方法. 第一部分:默认Logger支持 一.project.json添加日志包引用,并在cmd窗口使用 dotnet restore 命令还原包文件. 1 { 2 "version": "1.0.0-*", 3 "buildOptions": { 4 "…
Filter是延续ASP.NET MVC的产物,同样保留了五种的Filter,分别是Authorization Filter.Resource Filter.Action Filter.Exception Filter及Result Filter.通过不同的Filter可以有效处理封包进出的加工,本篇将介绍ASP.NET Core的五种Filter运作方式. Filter 介绍 Filter的作用是在Action 执行前或执行后做一些加工处理.某种程度来看,会跟Middleware很像,但执行的…