dapper

.Net 微服务架构技术栈的那些事

不想你离开。 提交于 2020-04-09 17:48:02
一、前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时让新手对微服务相关技术有一个更深入的了解。 二、技术栈 2.1 工欲善其事,必先利其器 现在互联网盛行的年代,互联网产品也层出不穷,受欢迎的互联网产品都有一个比较牛的技术团队,我这里分享下.net 微服务架构技术栈图如下: 俗话说得好:工欲善其事,必先利其器。一个优秀的工程师应该善于使用框架和工具,在微服务这一块的技术选型并非一蹴而就,需要经过日积月累和落地的项目才能完善。 下文我会一一分享技术栈中的主要框架和工具的使用场景,这篇文章就不一一分享实战例子。 2.2 微服务 微服务如何“微”? 微服务,当然核心是主题是“微”,怎么微呢?应该如何微呢?在我刚来杭州的时候接触过一个电商系统的 单体架构 ,系统比较庞大,结合了各种电商该拥有的业务逻辑和场景, 代码也比较难于维护,前前后后接手的人也比较多,代码耦合度太高,改个业务逻辑基本上是牵一发而动全身,跟我上个月分享的关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章中的电商系统最初的架构图类似,如下: 那针对这个架构就有可“微”之谈了。 这里针对该 单体架构 可以做如下几个原则上进行“微”服务:

.Net 微服务架构技术栈的那些事

时光毁灭记忆、已成空白 提交于 2020-04-09 16:46:50
一、前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时让新手对微服务相关技术有一个更深入的了解。 二、技术栈 2.1 工欲善其事,必先利其器 现在互联网盛行的年代,互联网产品也层出不穷,受欢迎的互联网产品都有一个比较牛的技术团队,我这里分享下.net 微服务架构技术栈图如下: 俗话说得好:工欲善其事,必先利其器。一个优秀的工程师应该善于使用框架和工具,在微服务这一块的技术选型并非一蹴而就,需要经过日积月累和落地的项目才能完善。 下文我会一一分享技术栈中的主要框架和工具的使用场景,这篇文章就不一一分享实战例子。 2.2 微服务 微服务如何“微”? 微服务,当然核心是主题是“微”,怎么微呢?应该如何微呢?在我刚来杭州的时候接触过一个电商系统的 单体架构 ,系统比较庞大,结合了各种电商该拥有的业务逻辑和场景, 代码也比较难于维护,前前后后接手的人也比较多,代码耦合度太高,改个业务逻辑基本上是牵一发而动全身,跟我上个月分享的关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章中的电商系统最初的架构图类似,如下: 那针对这个架构就有可“微”之谈了。 这里针对该 单体架构 可以做如下几个原则上进行“微”服务:

Dapper操作MySQL数据库获取JSON数据中文乱码

我只是一个虾纸丫 提交于 2020-03-27 08:25:03
前言 在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码,特此记录,希望对存储JSON的童鞋能有所帮助,文中若有错误之处,还望批评指正。 Dapper获取JSON数据乱码(MySQL) 为了引出最终问题出在什么地方,我们重头开始进行讲解,首先我们给出如下测试实体以及在数据库中的表,如下: public class Test { public int Id { get; set; } public string Data { get; set; } } 为了数据操作方便,我们通过包【Dapper.SimpleCRUD】来操作,插入数据和查询数据如下: static void Main(string[] args) { SimpleCRUD.SetDialect(SimpleCRUD.Dialect.MySQL); DefaultTypeMap.MatchNamesWithUnderscores = true; using (var conn = new MySqlConnection(@".....;charset=utf8mb4;SslMode=none;")) { var id = conn.Insert(new Test() { Data = JsonConvert.SerializeObject(new { name = "汪鹏"

[转][C#]常用开源项目

两盒软妹~` 提交于 2020-03-24 23:52:07
[转][C#]常用开源项目 本文来自: http://www.cnblogs.com/sunxuchu/p/6047589.html Json.NET http://www.newtonsoft.com/json https://github.com/JamesNK/Newtonsoft.Json Json .NET 是一个读写Json效率比较高的.Net框架.Json .Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换。 Math.NET http://www.mathdotnet.com/ https://github.com/mathnet Math.NET的目标是为提供一款自身包含清晰框架的符号运算和数学运算/科学运算,它是C#开发的开源类库。Math.NET含了一个支持线性代数的解析器,分析复杂微分,解方程等等功能。 Faker.Net https://github.com/jonwingfield/Faker.Net 开发的时候是不是为测试数据烦恼?Faker.Net可以非常方便帮你生成大批量测试数据。例如人员表里面的姓名、性别什么的。 Html Agility Pack http:/

轻量级ORM框架——第一篇:Dapper快速学习

被刻印的时光 ゝ 提交于 2020-03-23 21:48:47
     我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db,而且市面上的orm框架有很多,其中有一个框架 叫做dapper,而且被称为the king of ORM。 一:为什么选择Dapper 1. 性能优越: 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco serialization的过程中所表现的性能,我们发现dapper是第二名, 当然第一名谁也无法超越,越底层的当然久越快,同时也就越麻烦。就好像谁能超过“01代码”呢??? 2. 支持多数据库 支持多数据库的本质是因为Dapper是对IDBConnection接口进行了方法扩展,比如你看到的SqlMapper.cs,一旦你这样做了,我们也知道, SqlConnection,MysqlConnection,OracleConnection都是继承于DBConnection,而DBConnection又是实现了IDBConnection的接口,对吧。。。 二:安装Dapper install dapper的方式通常有两种: 1. 通过nuget进行安装   如果你不知道怎么用nuget进行安装,或者不知道install-package是什么,可以在browser上找一下,比如下面这样: 然后我们copy到package

What happens with returning IEnumerable if used with async/await (streaming data from SQL Server with Dapper)?

五迷三道 提交于 2020-03-21 11:47:13
问题 I am using Dapper to stream data from a very large set in SQL Server. It works fine with returning IEnumerable and calling Query() , but when I switch to QueryAsync() , it seems that the program tries to read all of the data from SQL Server instead of streaming. According to this question, it should work fine with buffered: false , which I am doing, but the question says nothing about async/await . Now according to this question, it's not straightforward to do what I want with QueryAsync() .

轻量级ORM框架——第二篇:Dapper中的一些复杂操作和inner join应该注意的坑

眉间皱痕 提交于 2020-03-21 05:29:45
  上一篇博文中我们快速的介绍了dapper的一些基本CURD操作,也是我们manipulate db不可或缺的最小单元,这一篇我们介绍下相对复杂 一点的操作,源码分析暂时就不在这里介绍了。 一:table sql 为了方便,这里我们生成两个表,一个Users,一个Product,sql如下: <1> Users table CREATE TABLE [dbo].[Users]( [UserID] [int] IDENTITY(1,1) NOT NULL, [UserName] [varchar](50) NULL, [Email] [varchar](100) NULL, [Address] [varchar](100) NULL, CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED ( [UserID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] <2> Product table CREATE TABLE [dbo].[Product]( [ProductID] [int]

SqlNullValueException when executing a stored procedure with MySqlCommand

妖精的绣舞 提交于 2020-03-16 06:53:28
问题 I'm writing a C# application to retrieve recipes from a MySQL database, using Dapper for ORM. So far, I've written my DAL in C# with direct queries (Which I know is unsafe), and this works great. I've now started to transition over to stored procedures with parameters to better protect the database from SQL injection, as well as just using as close to best practice as I can. However, when I'm using Dapper's QueryAsync<T> (This also applies to Query<T> ) along with DynamicParameters , I get an

ORM

蹲街弑〆低调 提交于 2020-03-12 23:43:35
对象关系映射(Object Relational Mapping,简称ORM) 它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道。 net环境下的ORM: 1、SqlSugar:是一款轻量级的MSSQL ORM ,除了具有媲美ADO的性能外还具有和EF相似简单易用的语法,地址: http://www.cnblogs.com/sunkaixuan/p/5654695.html 2、Dapper ORM : 是一个轻型的ORM类。代码就一个SqlMapper.cs文件,主要是IDbConnection的扩展方法,官方站点http://code.google.com/p/dapper-dot-net/ ,也可以通过Nuget进行安装 3、EF6.0: .NET官方ORM 来源: https://www.cnblogs.com/MatureMan/archive/2020/03/12/12483667.html

Dapper操作SqlServer

蓝咒 提交于 2020-03-12 11:57:46
Dapper中文官网: https://dapper-tutorial.net/zh-CN/home 参考自: https://www.cnblogs.com/yixuanhan/p/9238781.html Dapper主要的一些功能: 速度快,性能好; 更少的代码行 对象映射 静态对象绑定 动态对象绑定 易于处理Sql语句 易于处理存储过程 直接操作IDBConnection类,该类直接向数据库提供平滑性和运行查询,而不是像在EF和ADO.NET中那样使用各种对象传递数据。 多个查询支持 支持存储过程 批量处理数据插入 允许基于多个输入获取多个数据 为什么选择Dapper Dapper是第二快的ORM 自己写的demo,下载地址: https://github.com/bill1411/DapperForSQLServer 来源: https://www.cnblogs.com/yhnet/p/12467988.html