一.序言 我大约在2003年时候开始接触到.NET,最初在.NET framework 1.1版本下写过代码,曾经做过WinForm和ASP.NET开发.大约在2010年的时候转型JAVA环境,这么多年来,虽然工作已面向JAVA方向,但没有放弃过.NET,一直保持关注,内心由衷觉得C#是我接触过的最美的语言. 但是.NET的市场环境一直不理想,对于Windows的依赖限制了它的发展,公司主要客户都纷纷转向Linux环境,“去IOE”的浪潮更推动了形势的发展.期间还经历过几件让人灰心的事情,就是S…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 应用安全除了用户权限认证外,还要考虑到数据安全,传输安全.系统漏洞等方面.本篇文章重点讨论数据存储安全和传输安全,主要技术手段就是加密和解密. 二.基本概念 信息在传输和存储的过程中有泄密的风险,加密的目的就是解决这些风险. 1.信息存储在数据库中,如果数据库泄露会造成敏感数据泄露,如用户密码,手机号码.工资…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍Web系统的应用安全,主要涉及用户的身份认证和访问权限问题. 大部分web应用习惯采用Session来保存用户认证信息,对于WebApi而言,调用者不一定是Web浏览器,可能是Android.iOS客户端,可能是微信小程序,也可能是客户端程序等等,这些客户端模拟构造cookie.存储或传递sessio…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍异常处理的知识.由于异常处理的技术应用并不复杂,本篇更多讨论异常处理的一些理论知识,包括一些原则.约定和建议. 二.异常处理的基本原则 在Win32API编程中是没有异常处理机制的,函数一般都是通过返回一个BOOL型的状态码来表达处理是否成功,比如需要通过ID取得一个实体信息,需要这样定义: BOOL…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍如何使用中间件(Middleware). 二.初步演练 先写几个中间件 public class DemoAMiddleware { private readonly RequestDelegate _next; private readonly ILogger _logger; public Dem…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍如何使用缓存,包括MemeryCache和Redis. 二.MemeryCache 1.注册缓存服务 public void ConfigureServices(IServiceCollection services) { services.AddMemoryCache(); } 貌似较新的版本是默认…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍如何采用依赖注入的方式创建和使用对象,主要从应用层面进行描述,不涉及具体的内部原理. 二.演练 假设要做一个日志服务的类,它实现在控制台打印出带时间信息的日志信息. 首先定义该服务的接口与实现类. public interface ILogService { void LogInfomation(st…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.本篇概述 本篇介绍日志的使用,包括系统默认的控制台日志和第三方NLog日志管理. 二.使用系统控制台日志 1.使用内置日志 [Produces("application/json")] [Route("api/Article")] public class ArticleControl…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇描述一些常用的数据库操作,包括:条件查询.排序.分页.事务等基本数据库操作.试验的数据库为MySQL. 二.条件查询1.查询所有记录 List<Article> articles = _context.Articles.ToList<Article>(); 2.根据主键进行查询 Articl…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇讨论如何连接数据库,包括连接SQL Server 和 连接MySQL,然后做一些基本的数据操作. 二.连接SQL Server 首先通过NuGet添加相关的包: 新建一个实体类: public class Product { [Key] public string Code { get; set; } p…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇讨论如何把项目发布到Linux环境,主要包括以下内容: 1.项目打包 2.配置Nginx转发 3.配置守护服务Supervisor 在介绍实际内容前,有两个疑问需要探讨一下: 1.我们的项目发布后可以自宿主运行,为什么要配置nginx转发? 答:nginx是专业的网络服务器,功能强大,可以帮忙处理静态资源…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.本篇概述 本篇描述appsettings.json的使用,包括: 1.配置的基本读取 2.读取配置信息到自定义的对象 3.自定义配置文件 一.配置的基本读取 要读取的配置文件内容如下: { "ConnString": "MySQL Connect String", "Logg…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍通过.NET core WebApi实现文件上传. 二.Controller端代码 直接上代码: [Route("api/files")] [Produces("application/json")] public class FileController : Contr…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 前一篇文章重点介绍了Controller的一些知识,本篇重点介绍如何通过HTML端来调用这些后台API. 二.准备工作 1.引入js包 前面介绍过前端的js包,需要通过Bower工具进行管理,这里我们添加三个js的包: jQuery jquery-form bootstrap 2.添加静态文件支持 所有静态页…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 目前我们已经编写了一些Controller并通过Swagger进行了查询和调试,本篇将讨论Controller中的一些概念,包括: 1.GET.POST.PUT与DELETE 2.Route(路由) 3.Reques的类型 4.Produces 二.GET.POST.PUT与DELETE 先看一段代码: [P…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 既然前后端开发完全分离,那么接口的测试和文档就显得非常重要,文档维护是一件比较麻烦的事情,特别是变更的文档,这时采用Swagger就会非常方便,同时解决了测试和接口文档两个问题. 二.使用NuGet获取包 使用NuGet搜索包:Swashbuckle.aspnetcore并安装. 三.添加代码 在Startu…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.本篇概述 本篇不打算描述如何通过Visual Studio创建一个项目之类的话题,主要描述以下内容: 1.使用NuGet和Bower引入第三方库 2.Linux下安装运行环境 3.关于安装虚拟机时碰到的网络设置的问题 实验环境:Windows 10 ,Visual Studio 2017 ,VM 14 , Cent…
使用react全家桶制作博客后台管理系统   前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基于react全家桶(React.React-router-dom.redux.styled-components)开发的一套博客后台管理系统,用于前端小站的管理,主要功能包括游客浏览.文章管理.类别管理.评论通知.推荐设置和用户管理 [访问地址] 域名:https://admin.xiaohuoch…
C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替原则.依赖倒置原则.接口隔离原则.合成复用原则和迪米特法则.下面就分别介绍了每种设计原则. 1.1 单一职责原则 就一个类而言,应该只有一个引起它变化的原因.如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会影响到其他的职责.另外,把多个职责耦合在一起,也会影响复用性. 1.…
原文:循序渐进学.Net Core Web Api开发系列[13]:中间件(Middleware) 系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍如何使用中间件(Middleware). 二.初步演练 先写几个中间件 public class DemoAMiddleware { private readonly RequestDelegate _…
当前标签: 循序渐进学.Net Core Web Api开发系列   循序渐进学.Net Core Web Api开发系列[16]:应用安全续-加密与解密 NET未来之路 2019-03-13 15:10 阅读:122 评论:0   循序渐进学.Net Core Web Api开发系列[15]:应用安全 NET未来之路 2019-03-13 15:10 阅读:20 评论:0   循序渐进学.Net Core Web Api开发系列[14]:异常处理 NET未来之路 2019-03-13 15:0…
循序渐进学.Net Core Web Api开发系列[1]:开发环境 循序渐进学.Net Core Web Api开发系列[2]:利用Swagger调试WebApi 循序渐进学.Net Core Web Api开发系列[3]:WebApi开发概览 循序渐进学.Net Core Web Api开发系列[4]:前端访问WebApi 循序渐进学.Net Core Web Api开发系列[5]:文件上传 循序渐进学.Net Core Web Api开发系列[6]:配置文件 循序渐进学.Net Core…
nuget搜索:Hangfire 安装即可,这里我选择的是 1.7.0-beta1 版本 我是用这个集成到了 mvc api里 这里需要在 Startup 文件里进行如下配置 在配置方法 ConfigureServices 里配置数据库,这是用的是sqlserver数据库初始化 var hangfireConnStr = _configuration["AppSettings:HangfireConnectionString"]; services.AddHangfire(config…
ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representational State Transfer,简称REST)是Roy Thomas Fielding博士于2000年在他的博士论文 "Architectural Styles and the Design of Network-based Software Architectures" 中提…
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩,类似winrar,可以选择是否排除基准目录 1 public void ZipDirectoryTest() 2 { 3 string path = System.IO.Path.Combine(System.IO.Path.GetTempPath(), DateTime.Now.Ticks.ToS…
在Mac下创建ASP.NET Core Web API 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: 官方文档涉及的内容相当全面,属于那种大而全的知识仓库,不太适合初学者,很容易让人失去重要,让人掉入到具体的细节之中. 对于大多数人来讲开发语言只是工具,程序员都有一个通病,就是死磕工具,把工具学深.我认为在工具上没有必要投入太多时间,以能高效地完成日常的工作项> 目为准即可.要需求驱动学习,你需要什么学什么.…
[译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 本文首发自:博客园 文章地址: https://www.cnblogs.com/yilezhu/p/9276565.html 园子里关于ASP.NET Core Web API的教程很多,但大多都是使用EF+Mysql或者EF+MSSQL的文章.甚至关于ASP.NET Core Web API中使用Dapper+Mysql组合的文章都很少,更别提Oracel+Dapper组合的文章了,那么今天就带…
最近使用 Asp.Net Core Web Api 开发项目服务端.Swagger 是最受欢迎的 REST APIs 文档生成工具之一,进入我的视野.以下为学习应用情况的整理. 一.Swagger 介绍 使用 Swagger 作为 REST APIs 文档生成工具的优点有哪些? Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API. Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现. Swagger 文件可以在许多不同的平台上从代码注释中自动…
基本配置及说明 版本控制有助于及时推出功能,而不会破坏现有系统. 它还可以帮助为选定的客户提供额外的功能. API版本可以通过不同的方式完成,例如在URL中添加版本或通过自定义标头和通过Accept-Header作为查询字符串参数. 在这篇文章中,我们来看看如何支持多版本的ASP.NET Core Web API 创建一个ASP.NET Core Web API应用程序.通过 NuGet 安装此软件包:Microsoft.AspNetCore.Mvc.Versioning,打开Startup.c…
1.简单介绍 ASP.NET Core Web API 是 ASP.NET Core MVC 的一个功能.ASP.NET Core MVC 包含了对 Web API 的支持.可以构建多种客户端的 HTTP 服务.ASP.NET Core Web API可用于在 .NET Core 上构建 RESTful 应用程序. 框架包含对 HTTP 内容协商的支持,内置支持以 JSON 或 XML 格式化的数据.编写自定义格式化程序已添加对自有格式的支持. 使用链接生成对超媒体的支持.启用对跨资源共享(CO…