ASP.NET Core is a new framework for cross-platform applications. In this module, we'll see how ASP.NET Core applications work in GCP. In this module, we'll look at Microsoft's next generation.NET platform,.NET Core, and web framework as P.NET Core. We'll see how.NET Core applications run on a wide variety of Google Cloud Platform products including Google Compute Engine instances, Google Container Engine and Google App Engine flexible. First, let's answer the question, what is.NET Core? Here's the answer..NET Core is Microsoft's next generation runtime. While it offers very similar fundamental APIs to the Common Language Runtime, it's designed from the ground up to run in today's multi-platform world. So as well as developing applications that run on the Windows operating system, you'll be able to take your existing C# skills to code and deploy your application on Mac and Linux operating systems as well. Similarly, you'll find that ASP.NET Core offers a familiar environment for ASP.NET on PC developers with the ability to run on Internet Information Services on Windows operating systems. However, ASP.Net Core web applications will also run unchanged on low-cost Linux instances that are available on Google Compute Engine. And with Microsoft's available docu-based image, the DOC.NET Core on Google Container Engine as well. We'll see the details on how to do this, later on in the module. The programming model for ASP.Net Core is exactly the same as ASP.NET MVC. So your code, model and controller classes in C#, a view templates using Razor syntax. Similarly, you'll find that Entity Framework Core is written with the same principles as the CLR version of Entity Framework. Taken together, this means that all of your knowledge of ASP.NET MVC and Entity Framework is directly portable to the new.NET Core platform. We've mentioned that ASP.NET Core and Entity Framework Core will run on many Google Cloud platform compute products including Compute Engine, Container Engine and App Engine. Let's start by looking at Compute Engine. Google's infrastructure is their service product. The key difference between this scenario and our previous Compute Engine example is that ASP.NET Core applications can run on Linux instances as well as Windows instances. First, you'll need to install.NET Core. Here's how you can do this on Debian Linux. First, we download the toggle for the.NET Core from Microsoft. Then unpack it and link it, so that we can run all command line tools including the .NET Tool. Next, you can run the .NET Command line tool. Simply create a new.NET Core application with .NET new. We've used the -t option to specify that we want to create a web application. This will generate a skeleton ASP.NET Core application. It's the equivalent of creating a project in Visual Studio. Next, we run .NET restore which as the name suggests, performs a restore operation. Restore in this context means fetch all the new get packages that are found at the project information file. When this command completes, all the .NET assemblies needed to run this application will be downloaded to our machine. Finally, we execute the application using .NET run. This will start up a simple web server on port 5000. We can connect to our application using curl. When we do this, the .NET core runtime will compile our application, respond to the HTTP request and send back an HTTP response. Now it's time for a demo where I'll create a simple ASP.NET Core application. This demo is part one of a three part series focused on running ASP.NET Core applications on Google Cloud platform. In this demo, we'll create the ASP.NET Core web application and run it on the Linux virtual machine in Google Compute Engine. We've already created the virtual machines that we'll need to build our application. As we've seen previously, we've got a Microsoft sequel server machine that's hosting the application's database. However this time, we provisioned a Linux VM on Compute Engine to run our application. This is called WW Core. We can do this because.NET Core supports Linux, as well as Windows Server. I've already connected to this machine using SSH. Now I'm in, I'm going to download and install.NET Core. I'm downloading a Toggl using curl. Then unpacking it to a suitable directory. Finally, I'll create a link to the install directory and our installation is complete. That's pretty neat. We're going to use the .NET command line to create our ASP.NET Core application in this demo. Just to be super clear, of course we could also create this application using Visual Studio 2017. And we'll do that in part two and part three of our demo. The command to create a new application is .NET new. We supply the type of the application which is MVC. This is because we want to make an ASP.NET Core web application. Then we also supply the name of the application as the value of the O or output command line option. In my case, it's going to be about where I like to eat out. So I'm going to name the application wheretoeatcore. The command line generated a simple starter application from a template and we can see the structure of the files that's being created by listing our directory's contents. There are a couple of steps to run before I can view the application. First, I need to bring in all of the reference supporting .NET assemblies and I do this from the command line with .NET restore. Now, I can run the application with .NET run. You should see that the application has started listening on port 5000. I can switch over to my other SSH connection and attempt to connect to it using curl. You can see that we've downloaded the home page for the application. We'll take a closer look at this in part two of the demo. ASP.NET Core makes use of the same model view controller architecture as ASP.NET MVC. This means that if we want to add custom application functionality, we can do it by coding a modelling controller class in C# and add view files using the Razor Template syntax. We'll see this in the demos in parts two and three where we'll create our custom model, view and controller using the ASP.NET Core support in Visual Studio 2017. So that completes part one of the demo. We've seen how to create an ASP.NET Core application using just the .NET core command line tools on Linux.