摘要:
你喜爱的 IDE,现在可用于 Mac 来自:https://www.visualstudio.com/zh hans/vs/visual studio mac/ 惊不惊喜?意不意外?惊喜但不意外,因为在 Visual Studio for Mac 之前,已经有了 Visual Studio Code 阅读全文
摘要:
ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64) 七牛图片上传 SDK(.NET 版本):https://developer.qiniu.com/kodo/sdk/1237/csharp 示例代码: 示例代码: JS 上传图片示例代码: 阅读全文
摘要:
ASP.NET Core 项目中有个 配置文件,用于存放一些配置信息,比如数据库连接字符串等,但访问的话,只能在 ASP.NET Core 项目中获取,如果我们在其他项目类库中,该怎样获取呢? 实现方式就是利用 ASP.NET Core DI,将配置信息注入到 IoC 中,通过构造函数获取注入的对象 阅读全文
摘要:
定时任务组件,除了 Hangfire 外,还有一个 Quarz.NET,不过 Hangfire .NET Core 支持的会更好些。 ASP.NET Core 使用 Hangfire 很简单,首先,Nuget 安装程序包: 然后 添加配置代码: 上面配置的是 Hangfire 任务配置数据库信息,默 阅读全文
摘要:
Repository 在做查询的时候,如果查询条件多的话, 查询表达式会写的很复杂,比如: 可以看到,查询条件多的话,我们会写很多的 判断,代码看起来很不美观,解决方式使用 ,示例代码: cs using System.Linq.Expressions; public IQueryable Get( 阅读全文
摘要:
ASP.NET WebApi 中使用非 请求,传递参数需要用对象包裹起来,比如: 但如果操作比较多的话,我们需要对每个 创建一个 对象,如果传递的参数很少,这样创建对象就有点太浪费,并且 接口参数都是拍扁的,很少会传递 对象作为参数。 怎么解决这个问题呢?很简单,使用 就可以了,示例: 阅读全文
摘要:
ASP.NET Core DI 一般使用构造函数注入获取对象,比如在 配置注入后,通过下面方式获取: 那如果手动获取注入对象呢? 第一种获取方式(有时会获取不到,不推荐使用): 第二种获取方式(推荐使用): 补充:需要注意的是,使用 ,只能获取 和`AddSingleton AddScoped IU 阅读全文
摘要:
业务场景: IdentityServer4 默认使用 和`UserStore`,需要模拟和加载所有的用户数据,正式环境肯定不能这样实现,我们想从自己的数据库中读取用户信息,另外,因为 IdentityServer4 实现了 OpenId 协议,我们想在用户登录的时候,在请求中添加用户的一些额外信息, 阅读全文
摘要:
业务场景: 业务需求要求,需要对 ASP.NET Core 异常进行统一处理和返回,比如出现 500 错误和业务服务错误进行不同的处理和返回。 具体实现: 添加对应配置: 阅读全文
摘要:
业务场景: 业务需求要求,需要对 WebApi 接口服务统一返回参数,也就是把实际的结果用一定的格式包裹起来,比如下面格式: 具体实现: 添加对应配置: 阅读全文
摘要:
业务场景: 在 ASP.NET Core 项目中,所有的代码都是骆驼命名,比如 ,但对于 WebApi 项目来说,因为业务需要,一些请求、查询和响应参数的格式需要转换,比如转换成下划线命名(又称为 ),比如 。 具体实现: 请求和响应参数格式转换(请求具体是非 请求,响应参数一般为 ),ASP.NE 阅读全文
摘要:
在那时,当苏格兰风笛的声音在远方青色山峦响起,那幽远轻轻掠过故事里的战歌嘹亮、掠过树荫里的静谧飘然、掠过海面上的水妖低语,到达心中期许之地。 时至今日,吟游诗人已然老去。他蹲坐在火塘边,向围炉而坐的少年们讲述着那一场场沉沉浮浮的梦境传说。传说里,声嘶力竭与温柔相待来回交替,让少年的眼神时而苍凉而远、 阅读全文
摘要:
今天手贱把 VMware Fusion 虚拟机中的 Windows 10 搞挂了,原因是磁盘清理了下,然后重启就蓝屏了,Windows 10 自动修复、手动还原、手动重置系统,试过都不行,恢复系统是没办法了。 然后开始想恢复 Windows 10 系统中的文件,因为没有备份,所有的开发文件都在虚拟机 阅读全文
摘要:
关于 OAuth 2.0 的相关内容,点击查看: "ASP.NET WebApi OWIN 实现 OAuth 2.0" OpenID 是一个去中心化的网上身份认证系统。对于支持 OpenID 的网站,用户不需要记住像用户名和密码这样的传统验证标记。取而代之的是,他们只需要预先在一个作为 OpenID 阅读全文
摘要:
Fabio(Go 语言): "https://github.com/eBay/fabio" Fabio 是一个快速、现代、zero conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的微服务。 Fabio 由 eBay Classifieds Group 开发,用于处理 mar 阅读全文
摘要:
上一篇: "Mac OS、Ubuntu 安装及使用 Consul" 1. 服务注册 对 Consul 进行服务注册之前,需要先部署一个服务站点,我们可以使用 ASP.NET Core 创建 Web 应用程序,并且部署到 Ubuntu 服务器上。 ASP.NET Core Hell World 应用程 阅读全文
摘要:
常用命令: | 命令 | 说明 | | | | | command & | 将进程放在后台执行 | | ctrl + z | 暂停当前进程 并放入后台 | | jobs | 查看当前后台任务 | | bg %id | 将任务转为后台执行 | | fg %id | 将任务调回前台 | | kill % 阅读全文
摘要:
Vagrant( "官网" 、 "github" )是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看作是一个箱子,里面装了一些东西,Vagrant 创建虚拟机的时候,需要用到 Box 阅读全文
摘要:
Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStack 等相比,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检 阅读全文
摘要:
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 OAuth 允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑 阅读全文
摘要:
最近在做电商业务中,有关商品业务改版的一些东西,后端的架构设计采用现在很流行的微服务,有关微服务的简单概念: 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每 阅读全文
摘要:
操作 MySql 数据库使用 程序包(MySql 开发,其他第三方可能会有些问题)。 project.json 代码: 测试数据库脚本: sql CREATE TABLE ( int(11) NOT NULL AUTO_INCREMENT, varchar(255) DEFAULT NULL, in 阅读全文
摘要:
示例代码: is a way to use packages that were not designed for that framework. Basically you tell it "Use those targets even though they don't seem to be s 阅读全文
摘要:
官方资料: "https://github.com/dotnet/core" "https://docs.microsoft.com/en us/aspnet/core" "https://docs.microsoft.com/en us/ef/core" 相关文章: "ASP.NET 5 RC1 阅读全文
摘要:
EntityFramework 一对一关系映射有很多种,比如主键作为关联,配置比较简单,示例代码: 上面代码表示 Teacher 和 Student 一对一关系,Fluent API 配置如下: 测试代码: 生成 SQL 代码: 另一种 Fluent API 配置如下: 执行同样测试代码,生成 SQ 阅读全文
摘要:
上一篇:《 "DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践(2)" 》 这篇文章主要是对 "DDD.Sample" 框架增加 Transaction 事务操作,以及增加了一些必要项目。 虽然现在的 IUnitOfWork 实现中有 Com 阅读全文
摘要:
集群是个物理形态,分布式是个工作方式。 分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 1: 分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。 举例 阅读全文
摘要:
TortoiseGit 内置的文件比对工具是 TortoiseMerge,用于文件比对和解决冲突合并,TortoiseGit 还支持外部的比对工具使用,比如 Beyond Compare 和 DiffMerge,配置很简单。 Beyond Compare : Diff Viewer: Merge T 阅读全文
摘要:
本地预览的意思是,在选择图片之后先不上传到服务器,而是由一个 中获取到图片流,然后设置到``进行显示,但 IE8/9 浏览器只能获取到本地图片的绝对路径,并且设置 src 是无效的。 解决上面问题的方式是采用 css 图片滤镜,示例代码: 获取 是为了解决发布 IIS 之后,出现本地图片路径变成 的 阅读全文
摘要:
IE8/9 JQuery.Ajax 上传文件有两个限制: 1. 使用 JQuery.Ajax 无法上传文件(因为无法使用 FormData,FormData 是 HTML5 的一个特性,IE8/9 不支持) 2. 使用 JQuery Form 上传,contentType 只能为 text/html 阅读全文