参考 : https://docs.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?view=aspnetcore-2.1&tabs=aspnetcore2x https://youtube.com/watch?v=cdoY_pnqPiA https://www.rahulpnath.com/blog/authenticating-a-client-application-with-azure-key-vault/…
前言 说道配置文件,基本大多数软件为了扩展性.灵活性都会涉及到配置文件,比如之前常见的app.config和web.config.然后再说.NET Core,很多都发生了变化.总体的来说技术在进步,新的方式更加轻量级,具有更好的扩展性,数据源更加多样性. ASP.NET Core 应用可用的配置提供程序 提供程序 一下对象提供配置 Azure Key Vault 配置提供程序 Azure Key Vault Azure 应用配置提供程序 Azure 应用程序配置 命令行配置提供程序 命令行参数…
Asp.Net Core 学习 基于.Net Core 2.2版本的学习笔记. 常识 像Django那样自动检查代码更新,自动重载服务器(太方便了) dotnet watch run 托管设置 设置项目文件的AspNetCoreHostingModel属性. <PropertyGroup> <TargetFramework>netcoreapp2.2</TargetFramework> <AspNetCoreHostingModel>InProcess<…
参考 : http://www.cnblogs.com/xishuai/p/aspnet-5-identity-part-one.html http://cnblogs.com/xishuai/p/aspnet-5-or-core1--identity-part-two.html https://cnblogs.com/savorboard/p/dotnetcore-data-protection.html http://cnblogs.com/savorboard/p/dotnet-core-…
前言 因为工作原因博客断断续续更新,其实在很早以前就有想法做一套关于ASP.NET CORE整体学习度路线,整体来说国内的环境的.NET生态环境还是相对比较严峻的,但是干一行爱一行,还是希望更多人加入.NET的大环境当中.所以萌生了做一篇关于.NET CORE 学习的学习笔记,借着今天小酌几杯的机会,把这个想法践行一下. 为什么学习 ASP.NET Core程序 数百万开发人员在使用ASP.NET创建Web应用.而ASP.NET Core 是对ASP.NET 的重新设计,在结构上做了更改,产生了…
更新 : id4 使用这个 DbContext 哦 dotnet ef migrations add identity-server-init --context PersistedGrantDbContext 参考 https://docs.microsoft.com/en-us/azure/key-vault/key-vault-use-from-web-application#authenticate-with-a-certificate-instead-of-a-client-secre…
之前记在github上的,现在搬运过来 变化还是很大的,感觉和Nodejs有点类似,比如中间件的使用 ,努力学习ing... 优点 不依赖IIS 开源和跨平台 中间件支持 性能优化 无所不在的依赖注入 标准日志记录 Mvc 和 WebApi 合二为一 MVC 标签帮助 CLI工具 1.cookie 和 Session 因为<通用数据保护条例>(General Data Protection Regulation,简称GDPR)为欧洲联盟于2018年5月25日出台的条例, Asp.Net Cor…
前言 首先感谢小可爱门的支持,写了这个系列的第二篇后,得到了好多人的鼓励,也更加坚定我把这个系列写完的决心,也能更好的督促自己的学习,分享自己的学习成果.还记得上篇文章中最后提及到,假如服务越来越多怎么处理呢,本篇文章将会带来解决办法.这篇是接上一篇文章的,概念方面的可以参考上一篇文章. IoC框架 先说说常见的Ioc框架吧. Autofac: 目前net用的比较多,好多大佬的项目比较优先选择的框架. Ninject: 已经很少用了,还时在很早的文章中见过. Unity: 比较常见的了,好多地方…
前言 还记得上一篇文章中所说的配置吗?本篇文章算是上一篇的延续吧.在 .NET Core 中读取配置文件大多数会为配置选项绑定一个POCO(Plain Old CLR Object)对象,并通过依赖注入使用它.而这种使用方式称之为选项模式.而选项模式使是用类来提供对相关设置组的强类型访问,同时选项还提供验证配置数据的机制,是不是很强大,让我们一点点揭开它的神秘面纱. ASP.NET Core 6.0 Web API简要说明 首先开发工具上需要VS2022了,这里非常推荐大家下载使用,在编码上真的…
refer : https://kimsereyblog.blogspot.com/2018/07/signalr-with-asp-net-core.html https://github.com/aspnet/AspNetCore/issues/5155 跟着官网 step by step 就可以了. 注意 1 跨域请求的问题, server side 要开启跨域,而且记得 allow origin all * 不能配上使用 cookie asp.net core 2.2 后不允许 ! !…
https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.1 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-2.1 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view…
更新 : 2018-11-24 记入一些思考 asp.net core + identity 的权限是这样的 user = 1 个登入账号 role = 1 个角色 (类似于公司里的一个职位) claim = 令牌 (类似于古代,见令令牌如见皇帝或者将军) 一般上我们会把权限建立在 Page, 操作, 资源上. 这里我只说操作, 操作指的是一个 api 接口, 一个 controller 或是一个 action identity 给了我们一个 policy 的概念 一个 policy 就是说,一…
asp.net core 把之前的 webapi 和 mvc 做了结合. mvc 既是 api. 但是后呢,又发现, api 确实有独到之处,所以又开了一些补助的方法. namespace Project.Controllers { public class PostForm { [Required] public IFormFile file { get; set; } } [ApiController] [Route("api/[controller]")] public clas…
更新 : 2019-02-06 最后还是把 rewrite 给替换掉了. 所以 rewrite url 也不依赖 iis 了咯. refer : https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.2&tabs=visual-studio 上面这篇说明了如何使用 http redirect to https 现在 https 都免费了嘛, 网站当然是肯定要 https 丫. h…
QR code 和 Barcode 经常会使用到. Java 阵营有著名的 zxing https://github.com/zxing/zxing .Net 有对接它的 port https://github.com/micjahn/ZXing.Net 调用很简单 var qrWriter = new BarcodeWriterPixelData { Format = BarcodeFormat.QR_CODE, Options = , Width = , Margin = } }; var…
前言 ASP.NET Core 应用在启动过程中会依赖各种组件提供服务,而这些组件会以接口的形式标准化,这些组件这就是我们所说的服务,ASP.NET Core框架建立在一个底层的依赖注入框架之上,它使用容器提供所需的服务.要了解依赖注入容器以及它的机制,我们需要了解什么是依赖注入. 控制反转 说道依赖注入就不得不提控制反转(IoC). 定义: 高层模块不应该依赖低层模块,二者都应该依赖其抽象:抽象不应该依赖细节:细节应该依赖抽象. 相对于细节的多变性,抽象的东西要稳定的多.以抽象为基础搭建起来的…
更新: 2019-12-23 foreignkey 并不一样要配上 alternate key,其实只要是 unique 就可以了. 和 sql server 是一样的, 经常有一种错觉 primary key = foreignkey 所以只能有 1个 column 但是很多时候用多个 column 来约束对业务的管理是有帮助的. 所以其实只要是 unique, 不管多少 column, 都是拿来作为其它 table 的 foreignkey relation. modelBuilder.En…
2018-12-10 更新 : 从前我都是把 entity 直接用于 odata 曝露 api 给程序用. 如果这个程序是我们自己写的前端,这样的方式非常好,因为就好比前端可以直接对数据库每一个表做操作. 但是呢,如果这个程序是外部的,那么就可能不应该直接把 entity 曝露出去了. 这时就会有个 dto 的概念来了. 上层点看,就是对于这些外人,他们依然可以使用 odata 访问数据,也可以 restful ,但是呢,他们看到的 entity 和我们数据来真正的 entity 是不同的. 这…
更新 : 2018-11-26 这里记入一下关于 foreignKey cascade action 默认情况下如果我们使用 data annotation required + foreginkey . ef 会帮我们设计成 cascade delete 如果 foreignkey + nullable 就会是 cascade restrict. 如果使用 fluent api 的话就由我们设计了. ef 6.x 有一个功能可以把所有的 cascade delete 停掉, ef core 不…
2018-09-18 core 2.1 之后有新的方案咯 http://www.talkingdotnet.com/3-ways-to-use-httpclientfactory-in-asp-net-core-2-1/ 就是解决之前单列等等的问题. 给个例子 定义一个 service public class ServerTaskHttpClient { public HttpClient Client { get; private set; } public ServerTaskHttpCl…
之前就有在 .net 时代介绍过了. 这个 dll 也支持 .net core 而且一直有人维护. 对比 data annotation 的 validation, 我越来越觉得这个 fluent 好用多了. 一堆 Attribute 在 property 上面真的很乱. 安装很容易 nuget : https://www.nuget.org/packages/FluentValidation.AspNetCore/ 然后 startup.cs services.AddMvc().AddFlue…
首先跟着官网 step by step https://docs.microsoft.com/en-us/aspnet/core/migration/21-to-22?view=aspnetcore-2.2&tabs=visual-studio Bug 1 发现一个 odata routing issue https://github.com/Microsoft/aspnet-api-versioning/issues/361 因为 2.2 router 有升级, 貌似 odata 没有跟上.…
参考 : http://www.cnblogs.com/xishuai/p/3700052.html http://www.cnblogs.com/xishuai/p/3704435.html http://www.cnblogs.com/xishuai/p/3708483.html automapper 并不是 dotnet core 的东西啦,只是记入在这里而已. automapper 是一个简单的库,帮我们处理对象和对象的映射. 我们做开发通常会用到 ef core, entity 基本上…
refer : https://docs.microsoft.com/en-us/dotnet/core/tutorials/library-with-visual-studio https://docs.microsoft.com/en-us/dotnet/core/tutorials/consuming-library-with-visual-studio?tabs=csharp https://docs.microsoft.com/en-us/dotnet/core/tools/dotne…
EPPlus 已经支持 .net core 了 https://www.nuget.org/packages/EPPlus https://github.com/JanKallman/EPPlus 写入 excel public async Task<IActionResult> About() { ViewData["Message"] = "Your application description page."; var products = new…
参考 : http://cnblogs.com/nianming/p/7068253.html https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-2.1&tabs=windows 常常有这样一种情况,比如团队开发的时候, 后端人员想测试一下数据库或则电子邮件功能,那么需要配置账号密码, 如果直接把密码写在源码或则 appSettings 中 那么一旦提交代码,队员可能就会看见了. 为…
更新 :2018-7-25 直接添加 query string. var resetPasswordLink = QueryHelpers.AddQueryString($"{Request.Scheme}://{Request.Host.Value}{forgotPasswordData.resetPasswordUrl}", "token", token); refer : https://benjii.me/2017/04/parse-modify-query…
refer : https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-components core 和 Angular 的 component 是不同的. core 的 component 只是对 partial view 的升级而已. 从前 partial view 只是一个 view 的封装, component 则是 controller + view 的封装 所以方便一些. 首先定义一个 class 继承 ViewCom…
比起 Angular 的依赖注入, core 的相对简单许多, 容易明白 所有 provider 都在 startup 里配置. public void ConfigureServices(IServiceCollection services) { services.Configure<Business>(Configuration.GetSection("business")); services.Configure<Configuration.Email>…
更新 :  2018-01-22  之前漏掉了一个 image 优化, 就是 progressive jpg refer : http://techslides.com/demos/progressive-test.html (online test) http://magick.codeplex.com/discussions/450804 (Magick) https://www.imgonline.com.ua/eng/make-jpeg-progressive-without-compr…