对于像我这样没接触过core的人,坑还是比较多的,一些基础配置和以前差别很大,这里做下记录 一.Startup 1.注册服务 // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(); // services.Ad…
之前记在github上的,现在搬运过来 变化还是很大的,感觉和Nodejs有点类似,比如中间件的使用 ,努力学习ing... 优点 不依赖IIS 开源和跨平台 中间件支持 性能优化 无所不在的依赖注入 标准日志记录 Mvc 和 WebApi 合二为一 MVC 标签帮助 CLI工具 1.cookie 和 Session 因为<通用数据保护条例>(General Data Protection Regulation,简称GDPR)为欧洲联盟于2018年5月25日出台的条例, Asp.Net Cor…
参考 : 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-…
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 就是说,一…
更新 : 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…
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…
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…
背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供,不过该内存类我看了一下,并没有支持文件的缓存依赖. 因此,在此前提下,预计.NET Core明年出来2.0版本时,可能也没支持文件的缓存依赖,因此,有必要提前准备实现. 在写此文前,我扫了一下园子里关于自定义缓存类的相关文章. 发现很多自定义的缓存类文章都简单停留在对字典的增删改查. 因此,决定补充…
本书用到的几个表的建表sql语句如下: --销售产品供应商 CREATE TABLE Vendors ( vend_id varchar(20) not null, vend_name varchar(50) not null, vend_address varchar(100), vend_city varchar(100), vend_state varchar(100), vend_zip varchar(20), vend_country varchar(100), PRIMARY KE…
之前就有在 .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…
参考 : 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/…
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 不…
参考 : 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 中 那么一旦提交代码,队员可能就会看见了. 为…
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…
2017-09-22 refer : https://msdn.microsoft.com/en-us/magazine/mt763233.aspx?f=255&MSPPError=-2147217396 https://scottsauber.com/2016/04/25/feature-folder-structure-in-asp-net-core/ https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas 典型的…
ef core 有 unit of work 的概念,当我们 save change 时会自动使用 transaction 确保更新的一致性. 隔离级别是默认的 read committed 不允许脏读. 但是呢, 有时候我们希望拥有更好的隔离级别, 比如 repeatable read, serializable 那么就需要调用 database.beginTransaction 了. 一旦需要自己控制 trans 麻烦就跟着来了. 比如在多个服务嵌套调用时, 如何共享 trans 呢 ? 每…
Ef core 3.0 一些要注意的改变 refer : https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/breaking-changes#dc 1. 要另外安装 nuget Microsoft.EntityFrameworkCore.SqlServer 2. 另外装 tools dotnet tool install --global dotnet-ef nuget : Microsoft.EntityFrame…
更新: 2019-12-23 foreignkey 并不一样要配上 alternate key,其实只要是 unique 就可以了. 和 sql server 是一样的, 经常有一种错觉 primary key = foreignkey 所以只能有 1个 column 但是很多时候用多个 column 来约束对业务的管理是有帮助的. 所以其实只要是 unique, 不管多少 column, 都是拿来作为其它 table 的 foreignkey relation. modelBuilder.En…
我们知道 npm 是很大的库,很多轮子可以用 所以 .net core 替我们封装了一个调用 nodejs 的 service 就叫 node service 我们只要在 server 安装 nodejs 然后就可以写 js, require npm 的 packages 然后通过 .net core 的 service 允许这个 js 然后返回对应的 result. 比如我想解析一个 html, npm 里就有很多轮子可以做这个. 具体实现参考 : https://www.cnblogs.co…