>> Hi. I'm Sayed Hashimi,
a Program Manager, working on Visual Studio for Mac.
In this video, I'm going to give you
a quick five-minute overview of
the types of applications you can
build with Visual Studio for Mac.
With Visual Studio for Mac,
there's primarily three different types
of applications that you can build.
We've got mobile development with Xamarin,
and there's two flavors there.
We've got Forms, and native iOS and Android projects.
With Forms, you can share the logic and
the UI of the application across each platform.
With the native iOS and Android variants,
you can develop your application and have
access to a 100 percent of the native APIs,
high-performance experience, and in that case,
you would share your view models and services,
but the UI of the application would be developed
separately for each target platform.
We also have support for Web and Cloud development,
and with that we've got.NET Core and ASP.NET Core,
and for the Cloud, we have support for Azure functions.
We'll get more into this later on in our demo for that area.
We also have support for game development with Unity.
In Unity 2018,
Visual Studio for Mac is the default C# editor for Unity.
Let's go ahead and dive into the mobile applications here.
I'm going to open a existing native iOS and Android project
which I've previously created.
You can see here that I've got a storyboard open,
and we can use the storyboard to
graphically design our application,
and this is very similar to
the storyboard editor that's available in Xcode,
and we've got similar functionality for the Android projects.
You're going to start this project without debugging,
so we can see what we're working on here.
We can see we've got our application loaded
up here in a iOS simulator.
So, this was our native application that we've developed here,
and now let's move on to discuss the Web and Cloud development.
Okay. I have an existing application
which I've been developing loaded up here.
It consists of a Azure Functions project,
as well as a Razor Web Pages project.
In addition to these types of projects,
you can also create.NET Core console
projects,.NET Standard class libraries,
as well as unit test with MS tests or xUnit.
Let's go and explore this application which I have here,
and I've already started debugging this.
So, the Razor, the Azure Functions project
consists of a single class here that contains a run function.
This run function is monitoring a particular blob storage.
Whenever a image is uploaded to those Blob Storage,
this run function will automatically be triggered,
and then it's going to call the computer vision client
to analyze that image,
and then the results will be returned to us as
to what the computer vision believes that the image contains.
Let me show you the Web app part of it itself.
So, here I've got my index.cshtml.
We can see we've got a special formatting
for the HTML and Razor components here online.
Then, you can see that we have special formatting for the
input ASP.NET tag helper here.
If I was to look at the code behind for this,
and the on-post async is pretty much
where the image will
be selected by the user inside the Web application.
Then, the purposes or
the functionality that the app provides us is,
that it will take the image provided by the user and upload it
to that blob storage that the function is running.
Let's take a look at the image that we're going to
upload using the website.
So, here's the image.
It's a picture of my two-year-old daughter and a wooden table,
that I've previously created for her.
So now, let me load up the browser here.
I will pick this file,
and then we're going to click "Submit",
and then we'll take a look at the result
coming out of the Azure function.
So, the function is running.
I've just clicked "Submit" on the website.
So, shortly, this function should load up. Okay. Here we go.
So, we can see it's detected a new blob,
and now it's giving us some information about the image here.
So, the name of the image and then
the caption is a small child sitting on a wooden table,
and then we've got some other information
that it thinks the image contains here.
Let me go back to Visual Studio for Mac.
Now, we're done with the Web
and Cloud development portions of this,
so let's move on to discuss the game development.
Okay. Here I have Unity 2018 loaded up with a sample game here.
If I was to go into the "Assets" menu item here,
I can select "Open C# Project".
This will open Visual Studio for Mac,
and then it will open
the solution that's associated with this particular game,
and now my solution has been opened.
You can see that we've got a lot of C# files listed here,
and we've got the Fireworks.CS class loaded.
So, let me set a break point,
and then we're going to go ahead and
debug this and hit that break point.
I'm going to click the "Play" button here to build and
start debugging the solution here.
Now, I'll switch back to Unity,
and then I'll click the play button here.
Now, we can see the break point has been
hit in the Fireworks class,
so I'm just going to go ahead and disable this break point,
then continue running the game.
So, now our game is running.
So, that was a very brief demonstration
of Unity 2018 and Visual Studio for Mac,
and that pretty much wraps up this video.
In this quick video, we've shown
you all the things that you can do with
Visual Studio for Mac including mobile development with Xamarin,
Web and Cloud development with.NET Core, ASP.NET Core,
Azure Functions, and then also game development with Unity 2018.
This is Sayed Hashimi.
Thank you for watching this video,
and keep an eye out for future videos in
this Visual Studio for Mac tips and tricks series.