2020年7月-Visual Studio博客 https://devblogs.microsoft.com/visualstudio/2020/07/ Visual Studio工程团队产品洞察力的官方来源 2021年6月23日,星期三18:26:24+0000 英语-美国 每小时 1 https://devblogs.microsoft.com/visualstudio/wp-content/uploads/sites/4/2018/10/microsoft-Favicon.png 2020年7月-Visual Studio博客 https://devblogs.microsoft.com/visualstudio/2020/07/ 32 32 使用Visual Studio进行数据库评测 https://devblogs.microsoft.com/visualstudio/database-profileing-with-visual-studio/ 2020年7月27日星期一15:00:50+0000 https://devblogs.microsoft.com/visualstudio/?p=230091 使用Visual Studio的性能档案器检查数据库查询的执行时间,并测量执行时间。

帖子使用Visual Studio进行数据库评测首次出现于Visual Studio博客

]]>
您是否曾被要求诊断性能缓慢的web应用程序,并怀疑是数据库造成的?查看数据库层需要特定的工具,现在您可以使用VisualStudio的Performance Explorer中的数据库分析工具快速轻松地进行调查!

在诊断web应用程序的性能时,我们在与开发人员的数十次对话中都听说过一件事,那就是应用程序的数据库层通常是导致应用程序中出现迟缓的主要原因。然而,快速的互联网搜索揭示了调查这些问题有多么困难,大多数解决方案都需要安装单独的工具,收集大量SQL跟踪信息,或者更改应用程序的代码以获取所需信息。

为了减少这个过程的繁琐和复杂性,我们开发了数据库工具可以在Visual Studio的性能档案器中找到,以帮助您深入了解应用程序的数据库层。您可以确切地看到有关应用程序执行期间发生的数据库活动的有用信息,例如哪些查询和事务运行时间最长,每个查询使用的是哪个连接字符串,也许最重要的是,这些查询在代码中的什么位置进行。

按照下面的简单示例,了解如何使用此工具来确定代码中与数据库交互的位置,并可能进行改进,从而为用户带来有意义的性能提升。

使用工具

例如,想象一下你有一家在线商店,比如优秀的ASP。NET核心示例网上商店,这是一个很好的示例应用程序,它使用了的许多功能。NET Core,并使用带有实体框架的SQL数据库。按照GitHub项目页面上的指示构建并启动网站后,花点时间单击,筛选目录并用一些项目填充购物车。

图像eshoponweb

即使使用浏览器的开发工具,也无法准确识别数据库查询何时发生,或者是否在过滤目录等操作期间导致延迟,如上图所示。使用数据库工具我们可以捕获任何用户操作期间发生的确切数据库活动,并进行进一步的调查。

为此,我们只需单击调试>性能档案器,或使用键盘快捷键Alt+F2并选择t,即可在Visual Studio中打开性能档案器选中“数据库”旁边的复选框以启用该工具。要获得更准确的配置文件,请在Release配置中而不是Debug中运行应用程序。然后单击开始启动并开始分析应用程序。

图像启动页面

以您感兴趣的方式与应用程序交互,然后在准备检查数据时,在Visual Studio中单击“停止收集”。

停止收集后,Visual Studio将快速处理收集的数据,并显示分析会话期间发生的查询表以及显示查询时间和查询次数的图形。右键单击任何列标题可以显示可用的列,这些列可以帮助您排序和分析记录的活动。这可以快速发现异常,例如只影响少数记录的长时间运行的查询或使用错误连接字符串的查询。

图像列

识别出需要进一步调查的查询后,只需右键单击行并选择“转到源文件”,就可以找到此查询在代码中的位置!

图像数据库

只要有可能,该工具就会立即为您提供执行所述查询的代码行或代码块,从而省去了经常繁琐的挖掘复杂代码库的任务。

试试看!

此功能可在Visual Studio 2019 16.3版或更高版本中找到,并与配合使用。NET核心项目使用ADO公司。净值实体框架核心。此工具也适用于使用点网跟踪这意味着我们可以在任何地方收集数据。NET Core运行(包括Linux!)并在Visual Studio中分析该数据。要了解如何使用dotnet跟踪,请查看找到的文档在这里并使用响应文件可供下载在这里以启用正确的事件提供程序。

我们很想知道您是如何使用此工具的,以及任何可以帮助我们更好地诊断问题和编写性能代码的反馈!如果你有,请花点时间分享您的反馈

帖子使用Visual Studio进行数据库评测首次出现于Visual Studio博客

]]>
通过本机指针查看托管COM对象 https://devblogs.microsoft.com/visualstudio/viewing-managed-com-objects-through-nameactive-pointers(https://devblogs.microsoft.com/visualstudio/viewing-managed-com-objects-through-nameactive-pointers)/ https://devblogs.microsoft.com/visualstudio/viewing-managed-com-objects-through-native-pointers/#comments 2020年7月15日,星期三17:07:07+0000 https://devblogs.microsoft.com/visualstudio/?p=230047 如果你是一个成功策划的开发人员。NET项目使用COM互操作,那么我们最新的Visual Studio预览版就适合您了(下载16.7预览版3)。此功能自动解码本机指针引用的托管COM对象,从而允许您在“Locals”窗口中完全检查值。

帖子通过本机指针查看托管COM对象首次出现于Visual Studio博客

]]>
如果你是一个成功策划的开发人员。NET项目使用COM互操作,那么我们最新的Visual Studio预览就是为您准备的(下载16.7预览版3). 此功能自动解码本机指针引用的托管COM对象,允许您在“Locals Window”中完全检查值。

我非常幸运,自90年代以来一直在使用Microsoft堆栈#在那段时间里,技术上出现了一些真正的变革性飞跃,帮助像我这样的开发人员为多个行业的客户提供解决方案。

几年前,我帮助设计和支持了一个非常成功的网上银行平台,然而,核心设计是在90年代末和21世纪初开发的,这意味着对COM的依赖性很大。

COM是什么?

组件对象模型是一个分布式、面向对象的标准,用于创建可以交互的二进制软件组件,它成功了DDE公司(现在又回来了😊)并成为微软的基础技术对象链接和嵌入ActiveX(ActiveX)技术。

COM允许对象位于单个进程或其他进程中,也可以在远程服务器上实例化(使用DCOM–分布式COM)。我们将COM称为二进制标准,因为对象可以用不同的语言编写。COM还定义了对象如何在分布式环境中协同工作,并具有管理系统和组件完整性的安全功能。

在Visual Studio中调试异构系统

什么时候。NET是在21世纪初引入的,它旨在取代COM,然而,我的老开发团队已经为一长串满意的客户创建了一组引人注目的服务。

感谢我们COM和。NET是互补的开发技术。这个。NET公共语言运行库提供了与COM的双向集成。这意味着COM和。NET应用程序和组件可以利用彼此的功能。这保护了我们在COM中的现有投资,同时允许我们利用。NET以一种深思熟虑且具有成本效益的节奏。

即使在技术堆栈之间进行了这种合作,VisualStudio中的一些调试经验仍然不足,尤其是在全变量检查方面。如果您有一个使用托管代码中实现的COM对象的本机代码基,则尤其如此。

当COM客户端调用时。NET对象,公共语言运行库创建托管对象和COM可调用包装(CCW)对象的。无法引用。NET对象,COM客户端将CCW用作托管对象的代理。

Visual Studio中最初的调试经验显示托管实现对象的COM接口指针作为函数表没有可识别的值(vtable,虚拟方法表,是COM在运行时将方法调用绑定到其实现的方式)。下图显示了我在当地人窗口。

带有显示vtable的“局部变量”窗口的Visual Studio

现在,在最新的预览中,VisualStudio会自动转换本机指针引用的托管COM对象,从而允许您查看变量名称、值和类型。

Visual Studio with Locals窗口显示自动转换的托管COM对象

在以下情况下,也可以解码本机指针引用的托管COM对象调试内存转储在Visual Studio中。这种体验类似于WinDbg公司使用时!DumpCCW命令(如下所示频道9上的碎片整理工具视频).

要利用此功能,您的应用程序必须作为单个应用程序运行应用程序域和使用混合模式调试(本机与.NET Framework 4.X和/或.NET Core 3.X一起提供)。

告诉我们你的想法!

下载Visual Studio 16.7预览版3开始测试这个!请在Visual Studio中通过“报告问题”或直接在开发者社区网站。我们有兴趣听取您的反馈!

帖子通过本机指针查看托管COM对象首次出现于Visual Studio博客

]]>
https://devblogs.microsoft.com/visualstudio/viewing-managed-com-objects-through-native-pointers/feed/
利用条件访问策略改善企业的身份验证体验 https://devblogs.microsoft.com/visualstudio/impiving-the-authentication-experience-for-enterprises-leveraging-conditional-access-policies网站/ 2020年7月10日星期五15:00:41+0000 https://devblogs.microsoft.com/visualstudio/?p=229998 作为Visual Studio 2019 16.6更新的一部分,我们引入了一组新功能来改善您的整体身份验证体验。虽然这些更改对所有Visual Studio用户都有好处,但如果您需要跨启用了多因素身份验证(MFA)策略的Azure AD租户工作,则这些更改尤其有用。

帖子利用条件访问策略改善企业的身份验证体验首次出现于Visual Studio博客

]]>
作为Visual Studio 2019 16.6更新的一部分,我们引入了一组新功能,以改善您的整体身份验证体验。虽然这些更改对所有Visual Studio用户都有好处,但如果您需要跨启用了多因素身份验证(MFA)策略的Azure AD租户工作,则这些更改尤其有用。这是因为这些改进有助于保留您的身份验证状态,从而无需在组织的策略要求之外重新输入凭据。

随着当今对更安全环境的需求,诸如MFA之类的条件访问(CA)策略变得越来越普遍。Azure AD提供了广泛的CA策略来保护对您资源的访问,虽然Visual Studio 2017提供了对这些策略的支持,但如果您跨多个启用MFA的租户工作,您可能需要在Visual Studio中不断重新输入凭据。今天,我将向您展示我们如何在最新版本的Visual Studio 2019中解决此问题。

系统web浏览器身份验证流程

也许我们所做的最有影响力的更改是允许您使用系统的默认web浏览器来验证您的帐户。如果您跨启用MFA策略的多个租户访问资源,则使用此新流将有助于最大程度地减少重新输入凭据的需要。

若要启用此工作流,请转到Visual Studio的“选项”对话框(工具>选项…),选择账户选项卡和拾取系统web浏览器使用以下命令添加和重新验证帐户:下拉列表:

启用该选项后,您可以像往常一样通过“帐户设置”对话框登录或向Visual Studio添加帐户(文件>帐户设置…)

将新的个性化帐户添加到Visual Studio。

此操作将打开系统的默认web浏览器,要求您登录帐户,并验证任何挂起的MFA请求。

虽然这将有助于最大限度地减少重新输入凭据的需要,但请注意,Visual Studio仍可能根据您公司的CA提示输入凭据会话管理策略

单个租户筛选

Visual Studio的早期版本提供了通过应用筛选器将范围缩小到单个Azure AD租户的选项。虽然很有帮助,但由于你无法进行多项选择,因此你必须不断切换过滤器以满足自己的需要。此外,您的选择不会影响您的身份验证体验,因为您仍然需要始终针对所有租户进行身份验证。

您可能很高兴知道我们已经重新设计了过滤体验。新版本允许您多选租户,这会影响您的身份验证体验。例如,应用筛选器还消除了对未由筛选器选择的租户进行身份验证的需要,并对VisualStudio隐藏了其各自的资源。

要筛选租户,请打开“帐户设置”对话框(文件>帐户设置…)然后单击应用筛选器:

应用过滤器。

The 筛选帐户对话框将出现,允许您选择要将哪些租户用于您的帐户:

选择要筛选的帐户。

登录时对所有租户进行身份验证

根据您公司的CA策略,您帐户上的租户可以与一组非常严格的策略相关联,例如特定的IP范围或域加入要求。如果您已经知道无法满足这些要求,那么尝试对这些租户进行身份验证将对您的生产力产生负面影响。

为了避免与这些租户打交道,您现在可以禁用“登录时在所有Azure Active Directory中进行身份验证”选项。禁用该选项后,您只能使用帐户的默认租户进行身份验证(如果您使用的是工作或学校帐户,则很可能是组织的租户),并忽略或筛选出所有其他租户。因此,登录操作(例如在启动VisualStudio时)将更快。然而,这也意味着您需要手动选择要使用的任何其他租户,从而允许您完全自定义将显示在VisualStudio中的租户和资源。

您可以通过“选项”对话框选择此功能(工具>选项…>帐户):

试试看,让我们知道你的想法!

我们很想知道这些功能如何适合您的工作流和帐户配置。通过向我们发送反馈开发人员社区门户,或通过Visual Studio中的“帮助”>“发送反馈”功能。我们很想知道如何进一步改善您的体验!

帖子利用条件访问策略改善企业的身份验证体验首次出现于Visual Studio博客

]]>
Visual Studio中Git体验的激动人心的新更新 https://devblogs.microsoft.com/visualstudio/exiting-new-updates-to-the-git-experience-in-visual-studio/ https://devblogs.microsoft.com/visualstudio/exiting-new-updates-to-the-git-experience-in-visual-studio/#comments 2020年7月9日星期四14:00:32+0000 https://devblogs.microsoft.com/visualstudio/?p=229814 我们一直在处理您关于改进Visual Studio中Git体验的反馈。这篇文章讨论了合并冲突解决、分支管理、预览提交、分支历史等方面的更新。

帖子Visual Studio中Git体验的激动人心的新更新首次出现于Visual Studio博客

]]>
更新2020年11月17日:发布集成Git体验

在过去的几个月里,我们对Visual Studio 2019的Git集成进行了改进,对此我们表现出了极大的热情。您可以了解更多有关如何在我们的新功能中使用整个功能集的信息文档。我们还收到了大量良好的反馈,帮助我们集中精力。我们首先宣布了博客帖子三月。从那以后,团队一直在努力分析反馈,完善用户界面,并构建更多功能。我们很高兴今天与您分享这些更新。

如果您尚未在Visual Studio中尝试新的Git用户体验,请下载最新预览默认情况下,您将获得体验的最新更新。如果您正在使用公开发布(版本16.6+),然后按Ctrl+Q搜索并键入“新Git用户体验”以从预览功能窗格,共工具–选项

图像工具选项预览功能

新Git用户体验预览功能标志

您可以使用相同的复选框关闭体验。

合并冲突解决改进

当我们与客户谈论他们在使用源代码管理时所面临的困难时,我们不断听到合并冲突带来的挫折。当您遇到合并冲突时,它会中断您的编码流并迫使您切换上下文。我们还意识到需要更好的消息传递来指示您在Git拉操作期间遇到冲突。为了解决这些问题Git更改工具窗口现在清楚地列出了未合并的更改,并显示一条状态消息,指明冲突解决正在进行中。

包含未合并更改的Git Changes窗口的图像

正在进行合并,但存在冲突(未合并的更改)

此外,在我们的用户研究中,当我们遍历不同的工作流时,我们注意到并不是所有的开发人员都有Git更改车窗打开。如果不这样做,您将只看到带有冲突指示符的文件,并可能尝试手动解决内联冲突。我们都知道这是多么痛苦,尤其是对于有许多冲突的大型文件。因此,我们在文档级别添加了一个黄金信息栏,以在文件包含冲突时通知您,提示您打开合并编辑器

合并编辑器黄金信息栏的图像图像

带有打开合并编辑器链接的黄金信息栏

三向合并编辑器根据不断的客户反馈进行了相当大的改进。我们已经更改了旧的TFVC术语来源目标传入电流重点强调分支名称。这曾经是一个经常引起混淆的问题。传入电流此外,每一个都有一个新的复选框,只需单击一次,即可从任一版本中获取所有更改。

图像合并编辑器名称

合并编辑器标题中的传入/当前名称和分支名称

这个合并编辑器现在,通过更好地对齐匹配行、显示单词级别的差异以及使不同的空白可见,可以更容易地解析冲突。我们还减少了缩放边距、健康边距和工具栏周围的混乱。此外,您可以关闭非冲突差异,只关注冲突。如果你不需要合并编辑器(例如在Add/Add冲突中),现在可以通过双向合并在文件级别解决这些冲突。

合并编辑器的图片gif

合并编辑器体验

全新Git Repository窗口

在我们推出第一个版本的Git更改工具窗口中,我们希望确保在迭代体验时纳入社区反馈和建议。我们的研究告诉我们,大多数人在编码时都会执行特定的Git操作,这在Git更改编辑器旁边的窗口。但在其他时候,您需要全屏体验才能专注于Git活动。所以,在16.7版预览版3,我们建造了Git存储库窗口,所有Git相关活动的未来家园。它现在在Visual Studio预览版中可用,并具有一些初始功能。

首先,我们构建了一个交互式分支树,您可以在其中在单个视图中管理存储库中的所有分支。从这里,您可以使用上下文菜单来提取拉动、和推动不必检查的分支。您还可以直接从任何本地或远程分支创建新分支。我们还将命令添加到重置樱桃派、和取消设置上游支管,在中不可用Git更改分支选择器。

除了使用power-packed上下文菜单外,您还可以双击列表中的分支,在右侧窗格中显示其历史记录。在图的顶部,您可以看到执行后传入的提交提取。很快,您也将能够看到传出的提交。双击提交将在提交详细信息窗格。您可以通过管理分支机构中的命令吉特菜单以及未推送的提交按钮中的状态栏

这只是Git存储库窗口,我们将继续在其中构建更多功能。但与此同时,我们希望你们都能尝试一下,并让我们知道你们的想法。

Image Git Repo窗口

从Git Repository窗口管理分支并查看历史记录

其他更新

创建存储库

现在,您可以随时在GitHub、Azure Repos或任何远程URL上创建新的存储库,甚至可以从空文件夹中创建。Visual Studio将帮助您在本地初始化新存储库,并将其推送到远程GitHub帐户。使用现有远程选项将代码推送到已创建的托管Git存储库。

图像创建新回购

创建新存储库并将其推送到GitHub

Git设置

能够在存储库级别和全局级别个性化和自定义Git设置非常重要。我们已将你的所有设置迁移到工具–选项–源代码管理。

图像设置窗格的图像

Git设置

简化推送

为了更好地管理错误,我们增强了Push体验推动在拉入上游更改之前进行更改,您可以选择强制推动(Force Push)拉动和推动.至强制推动(Force Push),您首先需要在Git设置中启用“push–force”。

图像简化推送对话框

帮助推送提交的对话框

Git更改窗口

我们一直在改进新的Git更改我们在版本16.6中首次引入的窗口。我们通过添加特殊图标来增强分支选择器,以便更容易区分远程分支、本地分支跟踪远程分支和本地分支不跟踪远程分支。

图像Git更改参考选取器

Git Changes窗口中的分支选取器

工作项

最后,当启用新的Git体验时,仍然可以从以下位置访问工作项和构建团队资源管理器。

团队资源管理器中的图像工作项

包含工作项和生成的团队资源管理器主页

总结

正如你所希望的那样,我们已经花了一些时间来改善这种体验。我们看到远程工作和协作比以往任何时候都更加重要。这就是我们继续在这些领域投资的原因。请在评论中告诉我们您的想法以及您希望在这里看到的内容。我们跟踪所有客户的要求开发社区建议票门户。尽管有时我们无法立即联系到所有人,但我们非常感谢您的建议。我们确实喜欢在门户网站上参与设计对话。感谢您的持续反馈;你让我们诚实,让我们变得更好。

保持安全。保持健康。

帖子Visual Studio中Git体验的激动人心的新更新首次出现于Visual Studio博客

]]>
https://devblogs.microsoft.com/visualstudio/exiting-new-updates-to-the-git-experience-in-visual-studio/feed/ 103