Working with the new Microsoft.Data.SqlClient

Join Scott Hunter and members of the .NET Team as they introduce you to all the new features in .NET Core 2.0, our cross-platform, open source .NET. .NET Core 2.0 implements .NET Standard 2.0 which delivers on the promise of .NET everywhere and expands the API surface area to over 35,000 members so that sharing libraries across all .NET workloads is much easier. We've also worked really hard on performance this release making .NET Core the fastest version of .NET ever. We're also releasing updates to Visual Studio 2017 (version 15.3) and Visual Studio for Mac (version 7.1) that fully support .NET Core 2.0 and have many new tooling features. Learn about the .NET Core 2.0 release and download today www.dot.net/core!
[0:00:00] Scott Hunter introduces .NET Core 2.0 & .NET Standard 2.0
[0:07:49] .NET Standard 2.0 demo
[0:10:08] Performance improvements
[0:11:37] Visual Studio 2017 version 15.3 new features
[0:14:36] Kasey Uhlenhuth demos Visual Studio
[0:27:58] Serverless computing with Azure Functions & Visual Studio
[0:29:20] Andrew Hall demos Azure Functions
[0:39:29] Visual Studio for Mac version 7.1 new features
[0:39:56] James Montemagno demos Visual Studio for Mac
[0:48:26] ASP.NET Core 2.0 new features
[0:50:14] Scott Hunter demos ASP.NET Core Azure diagnostics & live analytics
[0:56:00] Dan Roth demos ASP.NET Core Razor Pages
[1:08:23] Entity Framework Core 2.0 new features
[1:10:18] Diego Vega demos Entity Framework Core
[1:19:39] .NET application architecture guides & samples
[1:21:05] Key takeaways & wrap up
Great overview of the cool new stuff, thank you!
.Net core 2.0 seems Amazing, I will definitely use it on my next project.
I just wanted to say, Thank you all for your hard work and this early present, I am so excited.
Amazing the cool new stuff,thank
thx all of u, i'd like use it immediately.
Cool stuff. However, wanted to check with you. Do you have this PPT shared at any location?
Hey! Thanks for new release! Looks like it is gonna be a new adveture to the wanderland for our projects!
Cool stuff and impressive presentation! Thanks for your happiness Kasey!
Is there any tooling to help migration from .NET Core 1.1?
I installed 15.3 and created a web app. When I tried to target asp net core 2, it wasn't available... only 1.1. :( What gives?
Great !! we started using it.
@EricCoffman -- you need to install the .NET Core 2.0 SDK in addition to Visual Studio 15.3. Get it at www.dot.net/core
@Martin - check out the "Using .NET Core 2.0" section of our announcement post: https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-core-2-0/
1. Are the Service Fabric clusters able to support CORE 2.0 yet ?
2. Seems only 4.6 Framework
3. We have a significant usage of EF 6.x for our data access.
4. Can we use EF 6 with ASP.NET CORE 2.0 ?
5. Or do we have to migrate (headache) to EF CORE 2.0 ?
@phil EF6 runs on .NET Framework but not on .NET Core. If you can run ASP.NET Core on .NET Framework, then you should be able to use EF6 with it. If you are running on .NET Core, then you will not be able to use EF6.
The MyCompany.Visitors demo is that available on github anywhere for .net core 2.0?
Well, I installed the Visual Studio 15.3 update. And now I'm unable to do any work because it crashes shortly after I open any project. And due to the idiotic new installer which won't let you go back to the old version, I am stuck. The following is the exception that is being logged to the event log. Microsoft, you need to stop with forcing upgrades on people. I know it wasn't exactly forced in this case, but, it is the same mindset that Windows has where users don't have control. I can either run 15.0, and not be able to use .NET Framework 4.7, or, not have it work at all on 15.3. Reverting to a previous System Restore image didn't help either.
Application: devenv.exe
Framework Version: v4.0.30319
Description: The application requested process termination through System.Environment.FailFast(string message).
Message: System.InvalidOperationException: This operation cannot be performed on a default instance of ImmutableArray<T>. Consider initializing the array, or checking the ImmutableArray<T>.IsDefault property.
at System.Collections.Immutable.ImmutableArray`1.ThrowInvalidOperationIfNotInitialized()
at System.Collections.Immutable.ImmutableArray`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Collections.Immutable.ImmutableDictionary`2.AddRange(IEnumerable`1 items, MutationInput origin, KeyCollisionBehavior collisionBehavior)
at System.Collections.Immutable.ImmutableDictionary`2.AddRange(IEnumerable`1 pairs, Boolean avoidToHashMap)
at System.Collections.Immutable.ImmutableDictionary`2.AddRange(IEnumerable`1 pairs)
at System.Collections.Immutable.ImmutableDictionary.ToImmutableDictionary[TSource,TKey,TValue](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 keyComparer, IEqualityComparer`1 valueComparer)
at System.Collections.Immutable.ImmutableDictionary.ToImmutableDictionary[TSource,TKey](IEnumerable`1 source, Func`2 keySelector)
at Microsoft.VisualStudio.LanguageServices.Implementation.DesignerAttribute.DesignerAttributeIncrementalAnalyzer.<TryAnalyzeProjectInRemoteProcessAsync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.LanguageServices.Implementation.DesignerAttribute.DesignerAttributeIncrementalAnalyzer.<AnalyzeProjectAsync>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.SolutionCrawler.SolutionCrawlerRegistrationService.WorkCoordinator.IncrementalAnalyzerProcessor.<>c__DisplayClass31_1`1.<<RunAnalyzersAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.SolutionCrawler.SolutionCrawlerRegistrationService.WorkCoordinator.IncrementalAnalyzerProcessor.<GetOrDefaultAsync>d__33`2.MoveNext()
Stack:
at System.Environment.FailFast(System.String, System.Exception)
at Microsoft.CodeAnalysis.FailFast.OnFatalException(System.Exception)
at Microsoft.CodeAnalysis.ErrorReporting.FatalError.Report(System.Exception, System.Action`1<System.Exception>)
at Microsoft.CodeAnalysis.SolutionCrawler.SolutionCrawlerRegistrationService+WorkCoordinator+IncrementalAnalyzerProcessor+<GetOrDefaultAsync>d__33`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
at Microsoft.CodeAnalysis.SolutionCrawler.SolutionCrawlerRegistrationService+WorkCoordinator+IncrementalAnalyzerProcessor+<GetOrDefaultAsync>d__33`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task.FinishStageTwo()
at System.Threading.Tasks.Task.Finish(Boolean)
at System.Threading.Tasks.Task`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetException(System.Object)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetException(System.Exception)
at Microsoft.CodeAnalysis.SolutionCrawler.SolutionCrawlerRegistrationService+WorkCoordinator+IncrementalAnalyzerProcessor+<>c__DisplayClass31_1`1+<<RunAnalyzersAsync>b__0>d[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task.FinishStageTwo()
at System.Threading.Tasks.Task.Finish(Boolean)
at System.Threading.Tasks.Task`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetException(System.Object)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetException(System.Exception)
at Microsoft.VisualStudio.LanguageServices.Implementation.DesignerAttribute.DesignerAttributeIncrementalAnalyzer+<AnalyzeProjectAsync>d__7.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task.FinishStageTwo()
at System.Threading.Tasks.Task.Finish(Boolean)
at System.Threading.Tasks.Task`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetException(System.Object)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetException(System.Exception)
at Microsoft.VisualStudio.LanguageServices.Implementation.DesignerAttribute.DesignerAttributeIncrementalAnalyzer+<TryAnalyzeProjectInRemoteProcessAsync>d__8.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task`1[[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData, Microsoft.CodeAnalysis.Features, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].TrySetResult(System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData>)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData, Microsoft.CodeAnalysis.Features, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].SetResult(System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData>)
at Microsoft.VisualStudio.LanguageServices.Remote.JsonRpcClient+<InvokeAsync>d__4`1[[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData, Microsoft.CodeAnalysis.Features, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task`1[[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData, Microsoft.CodeAnalysis.Features, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].TrySetResult(System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData>)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData, Microsoft.CodeAnalysis.Features, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].SetResult(System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData>)
at StreamJsonRpc.JsonRpc+<InvokeCoreAsync>d__63`1[[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData, Microsoft.CodeAnalysis.Features, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task`1[[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData, Microsoft.CodeAnalysis.Features, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].TrySetResult(System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData>)
at System.Threading.Tasks.TaskCompletionSource`1[[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData, Microsoft.CodeAnalysis.Features, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].TrySetResult(System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData>)
at StreamJsonRpc.JsonRpc+<>c__DisplayClass63_1`1[[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.DesignerAttributes.DesignerAttributeDocumentData, Microsoft.CodeAnalysis.Features, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].<InvokeCoreAsync>b__0(StreamJsonRpc.JsonRpcMessage)
at StreamJsonRpc.JsonRpc+<HandleRpcAsync>d__71.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[[StreamJsonRpc.JsonRpc+<HandleRpcAsync>d__71, StreamJsonRpc, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]](<HandleRpcAsync>d__71 ByRef)
at StreamJsonRpc.JsonRpc.HandleRpcAsync(System.String)
at StreamJsonRpc.JsonRpc+<>c__DisplayClass70_0+<<ReadAndHandleRequestsAsync>b__0>d.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[[StreamJsonRpc.JsonRpc+<>c__DisplayClass70_0+<<ReadAndHandleRequestsAsync>b__0>d, StreamJsonRpc, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]](<<ReadAndHandleRequestsAsync>b__0>d ByRef)
at StreamJsonRpc.JsonRpc+<>c__DisplayClass70_0.<ReadAndHandleRequestsAsync>b__0()
at System.Threading.Tasks.Task`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].InnerInvoke()
at System.Threading.Tasks.Task.Execute()
at System.Threading.Tasks.Task.ExecutionContextCallback(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean)
at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Great work we were waiting for the release hence we are struggling with the core instability, Thank you team
What plugin(s) was that first girl using?
Pretty amazing, all the new features that .Net Core 2.0 brings in.
About the multiple deloy (web app and mobile app, minute 46:50), is that only a Visual Studio for Mac feature? in case it is, will see it soon on Windows?
@Jon looks like you figured this out via the Visual Studio Team blog
@drcjones No plugins at all! That is all Visual Studio 2017 version 15.3
@Mario No it's been in VS for a while. Just right-click on the Solution and select "Set Startup Projects" then set "Multiple Startup Projects"
I believe this is my chance to learn C#. Come on, let's go!
I would like to use Microsoft.AspNetCore.HealthChecks Package. Is it part of ASP.net 2.0 core release ?
I've noticed when selecting an Angular project, you cannot select authentication type. I would like to use Angular in conjunction with ASP.NET Identity. Is this not possible?
Thank you for your hard work on .Net Core 2 btw!
@Rob: https://code.msdn.microsoft.com/windowsapps/MyCompany-VISITORS-demo-776d9447 but it's pretty old
Nice work, just one question.
I am wondering what's the performance impact of the fxcop running always in behind for analysing the code?
Where can I find examples of the video? Particularly EF Core DbContextPool.
Thanks
Core 2 looks lots better than Core 1.
Hope tools features shared are supported in Community edition also.
Waiting for more videos on .net Core 2
Always excited to see new features like Live Unit Testing, then I get depressed when I find out that they are only a part of the Enterprise edition. I guess it'll be a while before they filter down to Pro, then maybe to Community. I know MS is a business and needs to make $$$, but still a bit of a bummer.
I did exactly the same thing as the video for Azure Functions, but I don't see them In Visual Studio. See screenshots:
@kasajian: There is an issue in 15.3 that the Functions Tools aren't being correctly installed as part of the Visual Studio installation (this is fixed in the 15.4 update). To fix it in 15.3, go to Tools -> Extensions and Updates, and then install the available update for "Azure Functions and Web Jobs Tools"
This conversation has been locked by the site admins. No new comments can be made.