译 | 介绍全新 Microsoft.Data.SqlClient


原文:Diego

翻译:Edi Wang

本文由 SqlClient 和 SQL 服务器工具上的项目经理 Vicky Harp 撰写。

那些一直密切关注 .NET 开发的人很可能看到 Scott Hunter 的最新博客文章,即《.NET Core 是 .NET 的未来》。.NET Framework 将重点转向稳定性,新功能开发转移到 .NET Core 意味着 SQL Server 需要更改,以便继续以我们及时为 .NET 开发人员提供最新的 SQL 功能,就像过去那样。

System.Data.SqlClient 是用于访问 SQL 服务器或 Azure SQL 数据库ADO.NET提供程序。从历史上看,SQL 在 .NET Framework 中使用 System.Data.SqlClient 作为客户端开发的起点,来验证我们新的 SQL 功能,然后再将这些设计应用到其他驱动程序。我们仍然希望继续这样做,但与此同时,这些相同的新功能也应该在 .NET Core 中提供。

现在,我们有两个代码库和两种不同的 SqlClient 交付到应用程序的方式。在 .NET Framework 中,不同版本会全局安装在 Windows 中。在 .NET Core 中,应用程序可以选择特定的 SqlClient 版本并随应用程序一起发布。如果 SqlClient 交付的 .NET Core 模型也适用于 .NET Framework,这不失为一件好事。

我们不能只提供一个新的包来取代System.Data.SqlClient。这将与现在 .NET Framework 中的内容冲突。这就把我们带到了我们选择的解决方案...

Microsoft.Data.SqlClient


Microsoft.Data.SqlClient 包现在在 NuGet 上提供预览,将成为 SQL Server 的旗舰数据访问驱动程序。

此新包同时支持 .NET Core 和 .NET Framework。在新的命名空间中创建新的 SqlClient 允许旧 System.Data.SqlClient 和新的 Microsoft.Data.SqlClient 并共存。虽然不是自动的,但应用程序有一个相当简单的迁移路径,可以从旧版迁移到新版。只需添加对 Microsoft.Data.SqlClient 的 NuGet 依赖项,并更新引用位置的代码即可。

为了配合我们在这个新模型中加速功能交付的计划,我们很高兴在 .NET Framework 和 .NET Core 上提供对两个新的 SQL Server 功能的支持,以及错误修复和性能改进:

  • 数据分类 – 自 CTP 2.0 以来,在 Azure SQL 数据库和 Microsoft SQL Server 2019 中可用。

  • UTF-8 支持 – 自 CTP 2.3 以来,在 Microsoft SQL Server SQL Server 2019 中可用。

同样,我们更新了提供程序的 .NET Core 版本,其中支持让人久等的 Always Encrypted (始终加密),也包括对 Enclaves (安全区)的支持:

  • 在 Microsoft SQL Server 2016 及更高版本中,Always Encrypted 可用。

  • 微软 SQL Server 2019 CTP 2.0 中引入了 Enclave 支持。

新包中的二进制文件基于 .NET Core 和 .NET Framework 中 System.Data.SqlClient 的相同代码 。这意味着包中有多个二进制文件。除了支持不同操作系统所需的不同二进制文件外,在定位 .NET Framework 时,与以 .NET Core 为目标时,还有不同的二进制文件。幕后没有神奇的代码合并:我们仍然有来自 .NET Framework 和 .NET Core 的不同代码库(目前)。这也意味着,在 SqlClient 面向 .NET Framework 和面向 .NET Core 的 SqlClient 上,我们仍然有不同的功能支持。如果要从 .NET Framework 迁移到 .NET Core,但由于 .NET Core 还不支持某些功能(除了 Always Encrypted),那么第一个预览版本可能不会更改这个现状。但我们的首要任务是使所有功能跨这些目标框架。

640?wx_fmt=gif

Microsoft.Data.SqlClient 路线图

我们的路线图是,更频繁地针对 .NET Core 实现并发布新功能。长期目标是单个代码库。随着时间的推移,我们将达成这一目标,但当前需要的是 .NET Core 上的 SqlClient 中的功能支持,因此这正是我们关注的。同时仍然能够向 .NET Framework 应用程序提供新的 SQL 功能。

功能路线图

.NET Core 的 Azure Active Directory 认证提供程序

Active Directory 密码

托管服务身份

Active Directory 整合

工程路线图

合并 .NET Framework 及 .NET Core 代码库

将程序集开源

迁移到GitHub

虽然我们没有上述功能的日期,但我们的目标是在整个 2019 年发布多个版本。我们预计 Microsoft.Data.SqlClient 在 SQL Server 2019 和 .NET Core 3.0 的 RTM 版本发布之前的某个时候从预览版迁移到正式版本。

640?wx_fmt=gif

System.Data.SqlClient 将何去何从

这意味着发展重点已经改变。我们无意很快放弃对 System.Data.SqlClient 的支持。它将保持原样,我们将在出现重要的 Bug 和安全问题时修复它们。如果你有一个不使用任何最新SQL功能的典型应用程序,那么你仍然可以有一个稳定和可靠的 System.Data.SqlClient 用很多年。

然而,Microsoft.Data.SqlClient 将是我们今后实现新功能的唯一地方。我们鼓励您评估您的需求,并选择合适的时间将应用程序或库从 System.Data.SqlClient 迁移到 Microsoft.Data.SqlClient。

结尾

请安装 Microsoft.Data.SqlClient 包来尝试预览版。我们想听听你的声音!尽管尚未完成发布源代码的准备,但您已经可以使用 https://github.com/dotnet/SqlClient  的问题跟踪器来报告任何问题。

请记住,ORM框架 (如 EF Core、EF 6 或 Dapper) 和其他非 微软官方库尚未过渡到新提供程序,因此无法通过这些库中的任何一个使用新功能。支持 Microsoft.Data.SqlClient 的 EF Core 的更新版本预计将在即将发布的预览版中推出。

我们还鼓励您访问 GitHub 仓库中的常见问题和发行说明页面。它们包含有关可用功能、如何入门以及我们发布的计划的其他信息。

640?wx_fmt=gif

本文由 SqlClient 和 SQL 服务器工具上的项目经理 Vicky Harp 撰写。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codeforces Round #712 (Div. 2) F. Flip the Cards 思维 + 贪心

传送门 文章目录题意:思路:题意: 给你nnn张卡片,每张卡片正面写有数字aaa,反面写有数字bbb,[1,2∗n][1,2*n][1,2∗n]之间的整数在这些数字中都恰好出现一次,我们认为这nnn张牌是排好序的当且仅…

Linux下Jenkins与GitHub自动构建NetCore与部署

今天我们来谈谈NetCore在Linux底下的持续集成与部署。NetCore我就不多介绍了,持续集成用的是Jenkins,源代码管理器用的是GitHub。我们就跟着博文往下走吧。1.Linux环境在进行自动构建之前,我们需要一个可以运行的Linux环境,并保证…

[牛客] Tree-换根dp(预防加法取模导致等0)

链接:https://ac.nowcoder.com/acm/problem/19782 题目:修修去年种下了一棵树,现在它已经有n个结点了。 修修非常擅长数数,他很快就数出了包含每个点的连通点集的数量。 澜澜也想知道答案,但他不会数数…

Educational Codeforces Round 81 (Rated for Div. 2) F.Good Contest \ 洛谷 划艇 组合 计数dp

cf传送门 P3643 [APIO2016]划艇 文章目录题意:思路:题意: aia_iai​在[li,ri][l_i,r_i][li​,ri​]等概率随机选一个数,求aaa数组不增的概率。 思路: 这里贴了两个链接,因为这俩题是极其相似的&#xff0…

容器化之后如何节省云端成本?(二十七)

如何节约云端成本?上云在大部分情况下就是为了降低成本,在这方面,主流的容器服务基本上都能够有效地降低成本——不仅能够高效自动化的管理和控制容器,极大地降低了DevOps的维护成本,而且不需支付Kubernetes Master节点…

2020牛客多校第1场H-Minimum-cost Flow-最小费用流

https://ac.nowcoder.com/acm/contest/5666/H 题目大意:给出了每一条边的费用,有q个询问,问当每一条边的容量为u/v时,通过1流量的最小费用是多少。 思路:很明显这道题只能跑一次费用流,那我们跑一次全部边…

Codeforces Round #717 (Div. 2) D. Cut 倍增

传送门 文章目录题意:思路:题意: 给定长度为nnn的序列,有qqq个询问,每次询问一个区间,输出至少将这个区间分成多少个连续区间才能使每个区间内的数互质。 思路: 首先要判断互质,这…

kubernetes高级之创建只读文件系统以及只读asp.net core容器

使用docker创建只读文件系统容器化部署对应用的运维带来了极大的方便,同时也带来一些新的安全问题需要考虑.比如黑客入侵到容器内,对容器内的系统级别或者应用级别文件进行修改,会造成难以估量的损失.(比如修改hosts文件导致dns解析异常,修改web资源导致网站被嵌入广告,后端逻辑…

2020牛客多校第1场I-1 or 2一般图最大匹配带花树

链接:https://ac.nowcoder.com/acm/contest/5666/I Bobo has a graph with n vertices and m edges where the i-th edge is between the vertices ai​ and bi​. Find out whether is possible for him to choose some of the edges such that the i-th vertex is…

Codeforces Round #609 (Div. 2) D. Domino for Young 黑白染色

传送门 文章目录题意:思路:题意: 给你个不规则的网络格子,有nnn列,每列有aia_iai​个格子,让你将121212的多米诺骨牌无重叠的放进去,问最多能放多少个。 思路: 首先如果点数小的话…

点分治入门

点分治就是树上的分治,也就是处理把分治强行搬到树上的毒瘤问题。 算法流程 引入:[国家集训队]聪聪可可 (各大OJ搜索即可) 题意:给一棵树,随机选两个点(可以相同),求距…

P2495 [SDOI2011]消耗战-虚树+树形dp

https://www.luogu.com.cn/problem/P2495 虚树:当我们在解决树形dp的问题的时候,题目中会给出一些询问,询问涉及的关键节点不多,并保证总的点数规模的时候,我们就可以使用虚数,如果每次询问都对整个树进行…

DDD中的聚合和UML中的聚合以及组合的关系

UML:聚合关系:成员对象是整体的一部分,但是成员对象可以脱离整体对象独立存在。如汽车(Car)与引擎(Engine)、轮胎(Wheel)、车灯(Light)之间的关系…

Network 黑暗爆炸 - 3732 倍增lca || Kruskal重构树

传送门 文章目录题意:思路:题意: 思路: 两点间最长边最小值一定是最小生成树上两点间的最大值,这个比较容易证,就不多说了。 知道这个结论后, 我们直接跑一个KruskalKruskalKruskal建树&#x…

Manacher入门

写在前面 manachermanachermanacher比想象中好理解得多 至少它给了我学习字符串的信心 能干啥 manachermanachermanacher,中文马拉车(您别说,这名字还挺形象),主要用于计算字符串每一个位置为对称中心的回文串长度&a…

HDU.6761.Minimum Index(Lyndon分解)

题目大意&#xff1a;给一个字符串&#xff0c;求字符串的所有前缀的最小后缀&#xff1b; 思路&#xff1a;主要还是要理解Lyndon串的算法的整一个过程 参考&#xff1a;搬运来自 #include <iostream> #include <cstdio> #include <fstream> #include <…

C#规范整理·异常与自定义异常

这里会列举在C#中处理CLR异常方面的规范&#xff0c;帮助大家构建和开发一个运行良好和可靠的应用系统。前言迄今为止&#xff0c;CLR异常机制让人关注最多的一点就是“效率”问题。其实&#xff0c;这里存在认识上的误区&#xff0c;因为正常控制流程下的代码运行并不会出现问…

Codeforces Round #619 (Div. 2) D. Time to Run 矩阵回路构造

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个n∗mn*mn∗m的矩阵&#xff0c;每两个相邻点之间有个双向边&#xff0c;问你能不能走满kkk步&#xff0c;每一步走的边不同&#xff0c;但是点可以相同&#xff0c;换句话说就是走的边不能再走了。输…

HDU - 6756 Finding a MEX-分块思想

https://vjudge.net/problem/HDU-6756 题目大意&#xff1a;给你一个无向图&#xff0c;每个点有权值a&#xff0c;将f&#xff08;u&#xff09;定义为对u的邻居的集合求mex&#xff1b; 有两个操作&#xff1a; 1&#xff1a;将u的权值修改为x 2&#xff1a;查询f&#x…

中高级数论 [欧拉函数线性筛,二次剩余]

欧拉函数线性筛 对于素数ppp, φ(p∗i){p−1i1p∗φ(i)p∣i(p−1)∗φ(i)p∤i\varphi (p*i) \begin{cases} p-1& i1\\ p*\varphi(i)& p \mid i\\ (p-1)*\varphi(i) & p \nmid i \end{cases}φ(p∗i)⎩⎪⎨⎪⎧​p−1p∗φ(i)(p−1)∗φ(i)​i1p∣ip∤i​ 证明&am…