类别档案:工具

获取用于Linux CTP2.0 Docker映像的SQL Server 2019

如果用于从Microsoft存储库中提取MSSQL服务器映像,例如。,

Docker Pull Microsoft/MSSQL服务器

这对2019年的CTP来说是行不通的。

我可以使用以前的存储库拒绝(又称更新),但这对标记为CTP的CTP不起作用vnext-ctp2.0-ubuntu.

我终于注意到在Docker Hub页面上新的docker pull命令

它说:docker pull mcr.microsoft.com/mssql/server

因此,使用CTP标签拉CTP的命令如下:

码头工人拉mcr.microsoft.com/mssql/server:vNext-CTP2.0-ubuntu

使用门户复制Azure函数应用程序,GitHub和Cloud Shell

我有一个带有一些函数的Azure函数应用程序,这些函数是我为一个会议会话的演示而构建的。我第一次在AngularMix上使用这个功能,并将其命名为AngularMix2017。上个星期我在Devintersection做的时候,我将其重新创建为devintersection2017,因为您不能重命名函数应用程序。下周我将在另一个会议(NetConf.co)上再次进行此操作,并决定是时候将其创建为一个可重用的名称:DataApiDemo。

虽然如果你严格按照门户网站的方式工作(这是我在构建功能应用程序的最初学习阶段所做的工作),你就不能完全复制一个功能应用程序,你可以很容易地复制它下载和上传它再次。

请记住,如果您正在开发Vs2017或Vs代码中的函数(与AzureCLI结合使用),则可以使用工具发布函数应用程序以及设置。但是我不喜欢走捷径。走这条路,我学到了很多新的技巧和工具。即使我在下一轮测试中利用了工具,我学到了很多东西,这让我对整体情况有了更好的了解,更多的控制和故障排除技能。

我的第一步是创建新的函数应用程序(dataapidemo)。

Azure函数应用程序的概述刀片具有“下载应用程序内容”选择权。这将把所有相关文件拖到您的机器上。所以接下来,我进入devintersection2017功能应用程序概述,点击下载应用程序内容链接。

下载应用程序内容时,您还可以选择获取应用程序设置。我的设置中存储了许多秘密…比如数据库的密钥,帐户id等。如果你检查一下,设置将下载到本地设置文件。如果您使用此功能在本地继续开发,例如在VS2017中,然后你就会想要它们。但在我看来,它们没有用处,甚至可能存在安全问题(您很快就会看到),所以我将不检查它。

我可以看到我电脑上指定文件夹中的文件。

我已经创建了一个Github存储库,将这些文件存储在:https://github.com/julielerman/dataapiazzurefunctions中。

在新文件夹的命令行,我将初始化,将所有文件添加到本地repo并提交它们。然后我可以运行git命令将该文件夹连接到我的github repo,然后将本地存储库推送到联机存储库中。

完成后,这些文件都在我的GitHub repo中。

因为我使用的是公共存储库,这就是为什么我不想下载包含我的秘密的local.settings.json文件的原因。当然,我可以在本地删除它,或者告诉Git忽略该文件。关于这点还有几点。如果我是在本地开发的,然后,我可以在本地拥有该文件,并使用VS2017或Azure CLI工具将我的应用程序连同设置发布到门户。但这不是我的目标。

现在,我可以利用Azure门户的一个长期特性:将它连接到一个存储库,以便从存储库自动部署到我的应用程序(在我的函数应用程序中)。

回到入口,我再次选择新的功能应用程序,然后从它的平台功能页面,打开部署选项。选择Setup new deployment,按照以下步骤将函数应用程序连接到存储库。完成设置后,可以使用“同步”按钮强制进行部署。所有文件现在都在我的新dataapidemo函数中,包括包含函数设置的function.json文件(例如集成等)以及我可能添加到函数中的任何其他文件。

因为我用的是斜纹布,我的一个函数在project.json文件中引用了twilio,我需要将这个包恢复到这个函数应用程序中。I did that by opening up the project.json and making a small mod to it..adding or removing a blank line,然后保存它。这会触发包还原。

但是,功能应用程序设置不存在。这些是为应用程序定义并由一个或多个函数使用的设置。Azure创建了一些默认设置,但我也有一些其他的……例如,我的twilio集成的帐号和电话号码以及功能键。

其中一些设置是我在新函数中需要的自定义设置。我可以通过portal app settings界面添加它们,但我不喜欢我有一系列设置的路径。

这意味着我们将继续使用另一个在Azure门户网站上令人惊叹的工具——云外壳。您可以在订阅中的服务上直接从Azure CLI运行bash或powershell命令。您也可以在您的机器上本地执行此操作,但需要注意的是,您必须在那里提供凭证和其他元数据。

在门户中,打开云壳。这是一个交互式终端窗口。

如果您有多个订阅,你需要确保它被设置为app函数存储的地方。

可以通过使用阿兹帐户列表命令。

如果你想要的不是默认值,然后设置为:

az帐户集-s[id]

这个shell可以自动完成,所以如果id以a123开头,你可以打字

AZ账户集-S A123

然后点击标签,ID就完成了。按回车键,它将成为默认的订阅。

我将使用azure functionapp命令将设置放到我的函数应用程序中。

首先,我将列出现有的设置。你用命令来做这个

az functionapp config appsettings list--名称[功能名称]--资源组[资源名称]

名称和资源组的参数快捷方式是-n和-g。我的是相同的名字:dataapidemo。下面是命令的样子(除了我的博客强制的换行):

az函数app config appsettings list-n dataapidemo-g dataapidemo

默认情况下,appsettings列为json,尽管您可以使用输出参数影响输出格式.

我需要看到的设置,我想复制从其他功能的应用程序,所以我运行:

az函数app config appsettings list-n devintersection2017-g devintersection2017-o tsv

这给了我要选择的设置列表。

除了列出设置外,可以用。添加新的设置动词和删除删除动词。两者都可以代替动词列表.

您可以通过组合SET命令和-settings参数来使用SET。在–settings参数之后,你可以用这种格式列出一个或多个设置:

az函数app config appsettings set-n dataapidemo-g dataapidemo--settings“property1name=value”,“property2name=值”

请注意,这是在博客文章中包装的,而不是在shell窗口中。

所以我添加了一些我想添加的设置,看起来更像:

az functionapp config appsettings set -n dataapidemo -g dataapidemo——设置“osid =myvalue”,“twilioaccount=myvalue”

还有其他一些我必须补充的。例如,我的函数需要知道如何访问我的cosmos-db文档数据库,所以它有一个设置,使用db name作为属性名,dbs account endpoint作为值。

一旦我做到了,我能够摆脱为每个会议命名的功能应用程序,使用一个通用的应用程序,不管我在哪里共享它。

我学到了很多新东西吗?

新的多元化课程:Win与Visual Studio代码中的SQL Server数据交互,雨衣,Linux

形象我最近上的多元视觉课,为使用vs代码的开发人员提供跨平台的SQL Server管理,本月早些时候上线了(就在我准备坐飞机去参加为期两周的会议旅行的时候!)

这是一门关于Visual Studio代码扩展的课程,我非常喜欢使用它,所以想与您分享。它是MSSQL扩展,允许您以相当丰富的方式与SQL Server进行交互,这掩盖了它所扩展的IDE的轻量级。因为VS代码是跨平台的,它的所有扩展也是如此。所以你可以在Windows上编程的时候使用这个,Mac或Linux,希望与SQL Server数据库进行一些基本交互。

作为SQL Server示例,我在Windows上使用SQL Server LocalDb,Mac上Docker容器中的SQL Server for Linux和云中的Azure SQL。本课程不仅向您展示了如何安装vs代码(以及一些vs代码基础知识)和扩展,还向您介绍了如何设置每个数据库服务器。这意味着它也有关于Docker的一课,安装和运行映像,并快速开始在Azure门户中创建新的SQL数据库。

一旦一切就绪,我深入了解了MSSQL扩展的特性和功能。我翻开了所有可能的石头,确保你不会错过有用的功能,如果你只是在没有任何准备的情况下开始使用这样的工具,这是很正常的。

本课程主要是演示,非常简单地介绍PowerPoint幻灯片,我在Windows中工作,在我的MacBook上,甚至在Linux虚拟机上。

形象我也为这门课程感到骄傲的是,如果你以前从未使用过vs代码,你将学会如何绕过这个令人惊叹的编辑。如果你以前从未使用过Docker,我提供了一个非常有帮助和温和的介绍,你将能够与它一起工作。我得到了负责这个扩展的团队的大力支持,因为他们很高兴能得到这种关注。

所以无论你用什么语言编码,无论你做什么手术,如果您正在使用SQL Server(或有兴趣使用它),这门课程应该对掌握这个非常方便的扩展大有帮助!

下面是课程的目录。

如果你需要30天的免费试用Pluralsight图书馆,这样你就可以看这个,寄给我一张便条!


模块1:介绍和安装vs代码和mssql扩展

在本模块中,您将简要介绍跨平台和免费的开发人员IDE,Visual Studio代码及其MSSQL扩展,扩展允许您在不离开IDE的情况下与SQL Server数据库执行一些键交互。您还将了解如何在Windows和macOS上安装IDE和扩展

  • 模块和课程概述
  • 介绍Visual Studio代码和mssql扩展
  • 在Windows上安装Visual Studio代码
  • 在MacOS上安装Visual Studio代码
  • 介绍Visual Studio Code的超级编程能力
  • 在VS代码中安装mssql扩展

模块2:为任何平台准备SQL Server,本地和云中

在这个模块中,您将学习如何设置各种SQL服务器。它们都可以快速安装。您将学习如何在Windows上安装SQL Server LocalDb,在云中创建一个Azure SQL数据库,并使用SQL Server for Linux的Docker映像在MacOS的容器中快速启动SQL Server。这将确保您有一个SQL Server数据库在课程的其余部分与之交互。

  • SQL Server LocalDB:最简单的SQL Server
  • 在云中设置Azure SQL数据库
  • 正在验证新的Azure SQL数据库
  • 设置Azure SQL数据库的最后详细信息
  • 使用Docker容器在任何O/S上承载SQL Server for Linux
  • 安装Docker并使SQL Server容器运行
  • 验证容器化数据库
  • 理解容器中的持久性和缺乏持久性
  • 在示例数据库就位的情况下提取自定义图像

模块3:从各种平台连接到各种SQL服务器

在这个模块中,你将了解到与各种当地人联系的细节,带有mssql扩展的云和容器化SQL服务器。您将学习如何使用命令和快捷方式,如何存储连接概要文件和密码,甚至如何创建一个方便的快捷方式来启动mssql。

  • mssql的命令和执行引擎
  • 连接到LocalDB,同时学习更多关于mssql连接的知识
  • 从Windows和MacOS连接到Azure SQL
  • 演示MSSQL如何安全存储密码
  • 使用ADO.NET连接字符串进行连接
  • 连接到Docker容器中的数据库
  • 连接键盘和状态栏快捷方式
  • 创建用于启动MSSQL和连接的键盘快捷方式

模块4:学习MSSQL基础知识进行连接,查询和创建

在这个模块中,您将开始与数据库交互,执行查询和命令,探索结果集。您将了解这些代码片段,还将了解如何附加到现有数据库文件并从头创建新的数据库。最重要的是您将了解到MSSQL扩展为您带来的强大的SQL编辑器和结果视图支持。

  • 附加现有数据库文件
  • 与第一个查询的结果交互
  • 智能编辑器窗口
  • 使用代码段加速命令生成
  • 进一步探索多个结果集
  • 使用代码片段查看数据库元数据
  • 创建数据库,表格和数据

模块5:利用高级技巧和技巧

本模块将深入研究MSSQL,并提供不仅仅利用MSSQL特性的技巧,而且,Visual Studio代码的功能使使用MSSQL更加容易。

  • 将结果导出到csv,JSON或Excel
  • MSSQL消息的本地化
  • 通过VS代码的设置控制行为
  • 在编辑器窗口中设置代码格式
  • 结果窗口技巧,快捷方式和设置
  • 检查最后几个设置
  • 在VS代码中创建自己的SQL代码片段
  • 展望Mac和Linux上的集成认证

在Visual Studio 2017中克隆Github repo…和测验

在我们的VTdotNETmeetup,我在最后一分钟决定演示从Github克隆存储库的能力。然后我想我会把它和我计划演示的其他东西结合起来。

我的GitHub账户里已经有了正确的回购。A small ASP.NET Core project that was built with Visual Studio 2015 using project.json for its metadata.这是https://github.com/julielerman/NetCoreSolutionToMigrateToVS2017。

我的笔记本电脑上已经有了同样的解决方案,可用于另一个演示:展示vs2017自动迁移基于project.json的解决方案到新的基于csproj的.NET核心项目格式的能力。

聪明的我,我决定一石二鸟。克隆repo并在它打开该解决方案时运行迁移。

因此,我启动了Visual Studio 2017(因为我想展示它的速度有多快),并开始从我的GitHub repo克隆解决方案。我已经设置好了我的证书,可以去存档了,从源代码管理打开。

2017年3月21日

这打开了团队资源管理器窗口,我点击了克隆选项,然后打开一个窗口,显示我连接的所有帐户。

2017年3月21日

我扩展了自己的账户,向下滚动到我想要的回购账户,选中它并单击“克隆”按钮。

2017年3月21日

解决方案得到克隆,然后在Visual Studio中打开。

2017 - 03 - 21 - _22 - 13 - 53

但它从未触发迁移!如果你看一下解,您可以看到我展开的项目仍然有它的xproj文件和project.json文件。当时我很困惑,但现在我知道发生了什么,解决方案资源管理器的屏幕截图中非常清楚地显示了为什么不迁移的答案。然而,其中一个开发人员正在观看这部影片,刚刚用Visual Studio 2017完成了另一个演示,快速识别问题。

让我们继续寻找更多的线索。

我关闭了解决方案。然后从文件/打开,我浏览到它保存在我电脑上的地方,并选择要打开的SLN文件。这一次,同样的解决方案在VS2017中开放,确实触发了移民,很明显,多亏了这个屏幕。

2017 - 03 - 21 - _22 18 - 17所示

然后我让迁移特性完成它的工作。完成后,您可以看到项目不再有xproj和project.json文件。

2017年3月21日

现在,看看这个新的解决方案资源管理器屏幕截图与前一个相比。

然后看看新的VS2017特性的列表下的发行说明(https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes)节中IDE,看看你可以告诉什么克隆不同当打开解决方案不仅仅是打开直接从驱动解决方案。

也,我将通过设计或者可能的行为来发现这是否可以被修改为我所期望的行为方式。.

Visual Studio代码片段,使编码ef核心变得更简单

我一直在使用Visual Studio代码的用户代码片段特性为了更容易地将一些我通常用于ef核心的代码放入我的文件中。例如,我有c片段,用于dbContext创建接受dbContextOptions参数的构造函数重载,配置或建模。我在ef core命令依赖项和ef核心工具的工具部分中添加了JSON片段。

github.com/julielerman/EFCoreSnippetsForVSCode

我最终创建了一个Github存储库来共享它们。因为您需要将CSharp片段添加到现有的CSharp片段中,并且与JSON相同,我把它们放在单独的csharp.json和json.json文件中,您可以从中复制并将我的代码片段传递到自己的文件中。

虽然说明在我刚刚链接到的用户定义代码片段页面上,TL;DR是:

从菜单中,选择代码,首选项,然后是用户片段

2016年10月30日

这将打开代码段文件的列表。选择c作为c_片段,选择json作为json片段。粘贴到我的代码片段中!

2016年10月30日

我的.NET在网络边缘的Mac演示上的视频

上周在AwesomeDotNetFringe会议在波特兰,俄勒冈州,I did a 30 minute demo of building an ASP.NET Web API with Entity Framework using Visual Studio Code on my lovely MacBookPro.yabo官网所以它是Mac上的.NET(编码,调试和运行)。是*那个*跨平台。

我还谈到了ASPNETCOREEFCORE.我用了其他跨平台的东西,比如JetBrains数据报IDE用于在多个平台上与多个数据库交互,PostgreSQL数据库,xunit的测试和更多!

这是一船的乐趣,它在YouTube上:

我在演示中展示的解决方案位于我的Github存储库中:Julielerman/efcore aspnetcore webapi rtm公司

在OSX中的Visual Studio代码中指定全局TypeScript服务器路径

因为我刚开始在Mac电脑上工作,vscode博客帖子上的说明(http://blogs.msdn.com/b/user_ed/archive/2016/02/09/Visual-Studio-code-new-features-javascript-salsa-preview.aspx)对我来说,仅仅为VSCode中的TypeScript启用Salsa是不够的。说明如下:

然后,您必须使用typescript.tsdk设置。集合typescript.tsdk的路径自由文件夹包含tsserver.js已安装的typescript模块的文件。

我做过全局安装。由于隐藏文件和USR/文件夹对我来说也是个谜,我花了一段时间才明白这是如何在vscode的settings.json文件中指定的。

“typescript.tsdk”:“usr/local/lib/node_modules/typescript/bin/tsserver”

我希望有人能通过找到这篇博客文章来节省时间。

VLSC中的萨尔萨

Visual Studio 2015更新1:EXE Install vs Control Panel Install

tldr;我的建议是只从控制面板进行更新,不是来自vs2015.1.exe

如果你在twitter上关注我(@julielerman),你可能会发现我昨天发了一条关于iisexpress问题的发脾气的twitter,在我将Visual Studio 2015更新为1之后。

我终于解决了我的问题,但经过很多抱怨之后,巧克力和回避措施(包括神秘博士第九季)。

我一直在避免更新,因为很多人抱怨它花费了数小时,但我最终决定咬紧牙关。

我最初是通过vs2015扩展下载vs2015.1.exe并运行它来更新的。这并不需要太长时间(可能20分钟),但最终报告说,尚未安装Microsoft.NET Framework 4.6.1 RC Developer Pack。这是一个已知问题.我重新启动并安装了它,并获得了“成功安装”的奖励。

然后我打开了一个我一直在开发的ASP.NET MVC5(*not*the new ASP.NET)应用程序并尝试运行它,于是我的iisexpress出现了问题。Visual Studio无法启动它。在接下来的几个小时里,我不会去尝试很多和各种各样的事情,在twitter上得到朋友们的提示,还有很多stackoverflow和博客文章。我甚至卸载并重新安装了几次IIS10.0Express,还尝试了各种安全/权限调整。我收到了朋友们的邀请,跳上Skype来帮忙,最后我接受了其中一个——谢谢GregorSuttie(@gsuttie)——尽管我们仍然没有取得进展。

还有一个值得注意的奇怪问题。虽然Visual Studio的Help/About窗口显示我已经安装了Update 1的版本#,扩展对话框继续显示Update 1作为Visual Studio的可用更新。有些东西不同步。

Twitter上的其他人报告了更新1的问题,就连ASP.NET团队的安全专家巴里·多兰(barry dorrans)和杰夫·普洛西(jeff prosise)也不例外。著名的.NET超级duper uber专家。

形象

形象

形象

形象

形象

我决定是时候卸载和重新安装VS2015了——在我看来,这比修复更干净。尽管我还没有决定是否再次应用Update 1。

我打开控制面板/程序,在列表中找到Visual Studio Enterprise并选择它。我立即收到一个通知,说明Visual Studio的安装程序发生了重大更改,是否要在对安装进行任何更改之前进行更新。

形象

即使我的计划是卸载,我决定走这条路。更新花了一些时间…我想超过半小时。

完成后,更新1是我选择修改时列出的选项之一。

形象

就其价值而言,执行更新后,您不能取消选中该选项。

形象

我选择了更新1,没有碰任何其他东西,让'er rip(例如单击Update按钮)。

更新花了一些时间,很高兴看到它也为我带来了最新版本的EF设计师(6.1.3)。“一段时间”……我一点也不跟踪……上楼吃饭。

当一切尘埃落定,我通过exe安装看到的所有问题都消失了。更新1已就位。扩展不再提示我安装更新。我可以在iisexpress中重新调试。我所有的其他扩展都还没有完成。(更新:nuget不见了,所以我不得不重新安装。)

哦,我有一个新的偶像,很多人都为之奋斗:

形象

我的建议是从控制面板进行更新,不是来自vs2015.1.exe!!

yabo

“请配置您的git用户名和电子邮件”

当试图将更改从Visual Studio代码推送到GitHub时,是否看到此消息?

事实证明,所有那些我从命令提示符中推/拉并每次输入我的名字和电子邮件的时间都可以通过相同的配置避免。但是Visual Studio代码不会让我摆脱这种懒惰。

我最后在谷歌上搜索了消息,并了解到配置是您需要在命令提示符下执行的操作。

git config——global user.name yourname git config——global user.email(保护电子邮件?)

Diving Into ASP.NET 5 Beta 8?别忘了网络工具!

Some developers have been working closely with the evolving ASP.NET 5.不是我。我偶尔玩一次。我最后一次参加测试版4是在春天。测试版8刚刚发布我正在创建一个Web API。我的解决方案中有两个项目。一个是使用Visual Studio 2015中的aspnet5 Web API模板。

形象

The other used the ASP.NET 5 Class Library project template.

形象

Web API项目有一个对类库项目的引用。

当我试图建立解决方案,我得到以下两个错误来自于Web API项目:

CS1703  Multiple assemblies with equivalent identity have been imported: 'C:\Users\jlerm\.dnx\packages\System.Collections\4.0.10\ref\dotnet\System.Collections.dll' and 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\System.Collections.dll'.删除其中一个重复引用。
cs1703已导入具有等效标识的多个程序集:“c:\users\jlerm\.dnx\packages\system.threading\4.0.10\ref\dotnet\system.threading.dll”和“c:\program files(x86)\reference assembles\microsoft\framework\.netframework\v4.5.1\facades\system.threading.dll”。删除其中一个重复引用。

我不会让你厌烦我为解决这个烂摊子所做的一切。我最终找到了一个黑客,但在运行时遇到了另一个问题——因为对Web主机的更改——这最终帮助我找到了第一个问题的解决方案。

原来模板是我的问题。Beta 8的一些变化导致需要为Visual Studio 2015提供新的项目模板。They are contained in the ASP.NET and Web Tools 2015 (Beta 8) update for Visual Studio 2015.

您可以在下载它们http://www.microsoft.com/en-us/download/details.aspx?ID=49442.