 Hi, I'm Jay Schmelzer, the Director of Program Management on the .NET team. In this video, I'm going to provide an overview of .NET 2015 and related updates and Visual Studio 2015 Update 1. First, let's talk about the way we approach our investments in the .NET framework. It really centers around three primary pillars. The first is ensuring that we're providing a .NET application platform that meets the needs of the applications you've been developing and the direction that you need to take those going forward. As well as providing a platform upon which you can build the next application that you're being asked to create. We're also ensuring that we do this in a way that is open, transparent, and collaborative with the application development ecosystem. Finally, I want to ensure that we're creating a platform that not only can be used to build great applications for Windows, but any application deployed to any platform. We talk about .NET 2015, but we're really talking about two framework profiles. The .NET Framework 4.6, or I typically refer to as the full framework. This is the version of the .NET that we've been working with, and you've been building applications on for years. Provides everything you need for building applications from desktop applications through high-scale web services. A little over a year ago, we introduced .NET Core, an optimized framework designed for today's modern application types. Across all of this, we have a set of common investments. Investments in things like the runtime, the compilers, and core library packages that extend the experience and apply to all types of applications. Let's drill into each of those areas, starting with the common layer across all. Let's talk a little bit about the compilers in the runtime. In the runtime, one of the big areas of investments in .NET 4.6 was around the new 64-bit JIT compiler. Provides increased performance of applications, and the opportunity for us to create new and interesting libraries, for example, support for SIMD. In the language space, we invested in a faster compiler, we've invested in creating a set of language features that smooth the overall language usage and programming experience. We don't have big paradigm-shifting features like async or link in this release. Instead, we focused on the things that just make your life easier as a developer. Things like string interpolation or the name of capability. In Visual Studio, we focused a lot on continuing to have the best debugging experience in the world. We used to call it the Cadillac of IDEs. I think now we'd probably refer to that as the Tesla of IDEs, and really expanding that experience so that you can take advantage of modern language capabilities like lambdas and link while working in the debugger. Finally, in the core compiler space, we have the new Roslin compiler, the re-implementation of the C-Sharp and VB.NET compilers, that exposes the intimate details that the compiler has of your application to tool vendors, allowing tool vendors like ourselves with Visual Studio, and the ecosystem to create richer and more immersive experiences for your application developers. A couple of great examples of where this comes into play are around code analysis. We're now able to move beyond just static code analysis and get into semantic understandings of what your application is doing. Providing even richer set of tools for ensuring you're building the best applications you can. For library and framework authors, we have what we refer to as code-aware frameworks. The ability to include a compiler extension with that library that gives an interactive experience for using the library, using the framework in the way it was intended, and flagging uses that may be not as optimal, including the ability to offer fixes to the developer right within the IDE. If we move up a little bit and talk about the application types that sit on top of these runtimes, we see that there's a number of different things we have. First, we have a couple of great desktop UI presentation stacks. Windows Forms is a great UI platform for building Windows desktop applications. It's actually probably one of the most complete platforms we have. It's a great set of experiences across the design time, the runtime, and the third-party ecosystem for supporting great desktop applications. The team is focused on the fundamentals in this stack, really spending our energy on ensuring that we're providing the best performance, work on the most current hardware platforms, and addressing the key bugs that US customers have told us about. WPF is another great desktop presentation technology stack. We continue to invest heavily here in performance as well as modern hardware. So doing investments around high DPI resolutions, improve touch support, and so forth. We also, in Visual Studio 2015, really made a lot of investments around the tooling experience for WPF. In this case, took a lot of the great experiences that we created for Windows Universal projects and the diagnostic tools and made them available for WPF developers as well. We also took technologies and approaches we used in the web design stack and applied them to WPF, doing things like allowing the application and the surface of the application to be used as the designer as the navigation tool for figuring out where these UI elements were coming from. Of course, the Windows Universal platform, or the Universal Windows platform, really allowing us to create a single runtime, a single design API surface that can work across the full family of Windows devices, from small embedded Windows devices to phones, all the way up through large wall-mounted displays, Xboxes, and so forth. As part of this, we've brought to market the .NET native experience. .NET native is a compiler technology that allows us to extend the .NET compiler tool chain. So rather than stopping with the intermediate language, we now hook up the back-end C++ compiler and produce a native binary as a result. This is the same C++ back-end compiler that you would use if you were a C++ developer. So you get the optimizations of a C++ application with the productivity of a C-sharp and .NET developer experience. Of course, it is a heterogeneous world up there, especially in devices, and we want to make sure that .NET developers are able to use those skills to build native iOS and Android applications, taking advantage of their existing C-sharp and .NET skill set. We do this with a great partnership we have with the folks at Xamarin. They enable you to extend those skills to build native iOS and Android applications, while also having the opportunity to do reuse of code across those specific implementations. So it's the best of both worlds. You get 100% access to the platform APIs specific to iOS or Android, but you can share a lot of the common code that exists across all those implementations. And of course, for the web developer, there's ASP.NET 5. This is the new re-envisioning of the ASP.NET web stack to create, designing it for more modular use, designing specifically around new modern cloud workloads, giving you the ability to create a application that consumes only the components of the framework that you actually need, giving you smaller deployment sizes, which result in higher density on the servers you're deploying to. We've dramatically improved the tooling experience to continue to ensure you have the most productive experience when building web applications with Visual Studio and ASP.NET. Now let's talk a little about .NET Core. .NET Core is really there to move .NET beyond Windows. Historically, when you think of .NET, you think about it as a platform for building great Windows applications. With .NET Core, we're breaking that. We're changing the mold there. And we're making .NET be a technology that can be used by any developer building any app on any platform. We're doing it through a few core design principles. Specifically, we've designed a .NET Core to be modular from the beginning. It's all package-based. Rather than thinking about assemblies, you think about packages. You allow Nougat, our package manager, to ensure you have the right packages available and the right dependencies that your application requires. We also designed .NET Core with specific workloads in mind, specifically modern workloads. So things like universal Windows platform, ability to work across devices, as well as the modern ASP.NET web workload. And .NET Core is the implementation of .NET that we've implemented entirely in the open, working in GitHub, and supports cross-platform. So the ability to build an ASP.NET application and deploy it to a Linux environment or build it on a Mac. When we think about .NET open source, it's not just about the source being open. It's about how we go about building the software. It's about how the approach we take to designing the product. We've done a number of things over the last year. We've really started to see increased maturity in the team, in the way they work. So we see everything from the early design ideas around the next version of the C-Sharp language being posted out on GitHub and having conversations with you as the community of developers about the direction we're taking the language. We see every pull request that's made, whether it's from a Microsoft engineer or a non-Microsoft engineer, go through the same open code review process in the public. So everyone is learning from the best practices that we have. The contributions and the reactions we've seen here have been tremendous. We've seen everything from a big portion of the Mac platform abstraction layer for the common language runtime to fixes to error message strings coming from the community and everything in between. We've also seen this way we work have an influence on the way we work with other platforms. Couple weeks back, we saw the first merge request going into Linux kernel that referenced the Microsoft Core CLR project as one of the justifications for making a change to the Linux kernel. That's just a tremendous example of the kinds of new collaborations happening across our industry. To give you more of a feel for it, let's take a look at what the new .NET Core experience looks like for someone trying to develop an application on a Mac. In this demo, we'll take a look at building an ASP.NET 5 application on .NET Core on a Mac. Now I've already gone through the steps to install both ASP.NET 5 and .NET Core. So I have a set of commands that are now available to me as part of this experience. One of them is the .NET version manager. So I can say DNVM list. And what I see are a list of the versions of .NET Core and ASP.NET that I have available on this machine. Here's how you can start seeing that side-by-side support that we now have with the .NET Core implementation. In this case, beta 8 is the active installation on my machine and that's the one that we'll use by default for any commands. To create an application, I can take advantage of the ASP.NET extension to Yeoman and just say yo ASP.NET, which will launch Yeoman and our ASP.NET generators. We'll choose the basic web application, give it a name, call it hello connect. And that will now scaffold out the basic files we need for our ASP.NET application. So let's go change directories to that. We can take a quick look and we see that it's generated the basic set of views, controllers and project files that you would expect for an ASP.NET 5 application. Next thing we need to do is just restore the packages used for this application. In this case, we'll probably grab a lot of them out of the cache. So again, look at the project file and it's done that. The last thing we need to do is we'll just launch this application by typing DNX web. What this is going to do is launch a lightweight cross-platform ASP.NET host we have called Kestrel. Now that is up, we'll switch over to our browser and we'll just go to local host. And here we see our ASP.NET 5 application on .NET Core running locally on my Mac. That was a quick summary of the areas investment in .NET 2015. Hopefully it gave you some insight into the kinds of scenarios we're going after and the things we're thinking about. This is a collaboration. So I encourage you to get connected with us. Work with us on GitHub. Work with us in the code, track the issues, comment on the designs. Follow us on social media via Twitter or just engage reading and commenting on the blog. Whatever mechanism is best for you, get involved, get connected. Thanks a lot for watching.