>> On this week's Xamarin show,
I have my good friend Jordan, on to talk
about all the new hotness in Visual Studio for Mac
like Editorconfig and TFEC Support.
So tune in. Welcome back everyone to the Xamarin show.
I'm your host James Montemagno, and today,
I'm really honored to have my good friend Jordan on.
A PM for Visual Studio for Mac.
How's it going Jordan?
>> Hey James, going well. How are you doing?
>> I'm great. I'm glad we figured out
all the Skype issues that we're having,
and screen-sharing, everything's working good.
>> Perfect.
>> So Jordan, maybe tell everyone
a little bit about yourself. Everyone is tuning in.
>> Yes. So I, like you said James,
I work on Visual Studio for Mac.
I've been in the team now
for about a year and a half or so.
So I focus on
the Visual Studio for Mac IDE platform as a whole.
So that comes down to things like
the shared components like the Project Systems Support,
Version Control Tooling, Editor Support,
integration with [inaudible] for our C# editor.
Just all those things
you think about as the core of the IDE,
that's the space that I work on with the team.
>> Got it, yeah. Because now Visual Studio for Mac
does a bunch of stuff right?
So we know that it doesn't want
the Xamarin mobile development partners,
but what else does Visual Studio for Mac can do now?
>> Yeah. So now, it's got-
we also do the ASP Net Core and .Net Core developments.
You could do your console based development
out of there or like I said, ASP.
Net Core Unity is a big one.
Then there's a tooling also and we'll talk
about that in a moment here on Azure functions.
So you can work on like
C# based Azure functions projects.
>> Very cool. So what do you want to talk about
today when it comes to Visual Studio for Mac, Jordan?
>> Yeah.
So we could talk about a bit of what we've got in 7.6
which is the current release that's out,
and then a little preview of things
to come in the 7.7 release which will be next up.
There're previews out now,
a preview of some of the stuff we're talking about today
may actually be out by the time everybody sees this video.
>> Very cool. I'm really excited because you
sneak-peeked the little bit of what you're going to show,
and I didn't even know that
some of the stuff was out yet,
so I'm really excited to take a look.
So yeah, let's hop over to your PC or your Mac
and now let's take a look.
>> Cool. I will give the caveat
that I'm also running
on an early Dev build for a few things here,
so I think we got it worked out,
we won't have any surprises.
>> Sure.
>> But it's that early sneak peek fans though,
we're always a good pointing I think.
Cool. So let me show you first we were
mentioned Visual Studio for Mac 7.6.
I'll just call up the big themes for the release.
A lot of what we've done
and this carries forward into 7.7 as well as
around the performance and reliability of the IDEs,
really around the text editor.
We hear folks loud and clear,
that's been a common point of feedback
and we're doing a lot of work on that.
So that's been a lot of the work in 7.6 was on that.
Then a key feature that we had
was Azure Functions support,
taking what I've had
in the preview in the product for a while
and moving to having full project templates port
for Azure Functions.
So I can give you a quick peek at
that there and then talk about the
one of the other thing in preview right now
as team foundation version controls.
It's like if you're using TFs or Azure
DevOps with the TFVC Repo format.
>> Very cool, yeah. Let's make sure you
get your screen-sharing up there.
>> Okay.
>> Perfect. That looks great.
>> So I mentioned real quick on Azure Functions.
So I've got my sample project here
as a Mobile CRM project.
What we're going to do is,
I want to add an Azure function that you could use
for say when somebody new
is being added into the CRM system,
a new contact record,
I may want to have something fire off so we're going
to create an Azure function.
>> These are all the different project templates,
you were scrolling through those up there.
We were just talking about some ASP.Net
core and then you selected.
Where did you select that one at?
It's under cloud.
>> Yeah. Here it was under the cloud option you can
pick our Azure Functions option.
>> Perfect.
>> That's another end product by default.
There's nothing extra you install.
If you've got Visual Studio for Mac,
you've got this option in here for Azure Functions.
>> Oh cool.
>> Azure Functions doesn't let
you use serverless computing.
I can define how my functions are going to run up,
hosted in Azure, using Azure resources,
I don't need to even do any special deployment or
setup of a VM or anything in the cloud.
The tooling here will show going through it.
I can just create this function in here and deploy it
from the project of VM for Macs straight on up to Azure.
>> Nice. What are
all these different templates that you have in here?
>> Yeah. So, what
we've got there's a few different templates.
These are the same ones you'd also have over
in Visual Studio on Windows.
These are options for Azure Functions
like an HTTP trigger.
As you'd expect, you'd could kick that off from
any HTTP requests like in a browser window even.
Timer trigger for scheduled events,
Queue trigger that, you can queue up events to run.
Blob triggers and I don't know that much like the durable
functions orchestration for example,
but these are some standard sets of templates you
have for working with Azure Functions.
>> Cool. So, any of those events are commands.
So you're going to create an HTTP one?
>> Yeah. The walk-through we've got here too.
If you were to do something like say a timer trigger,
you'll see the Visual Studio for Mac,
the template provides you some fields for doing
custom configurations of these functions
if they have inputs they need.
>> Cool.
>> If it's a HDP trigger, it's pretty straightforward.
There's some access permissions you could change,
and otherwise it's going to create and add
this to our solution.
>> Yeah. It's nice that when you're
selecting different templates it knows exactly and
helps you on the next step as far as
what's required for the setup which is really nice.
>> Yeah, and if you'd ever,
if you've worked with the Azure Functions,
the product before the 7.6 release,
we still have the templates but they
were through another command.
We didn't have them right at the start,
so that was a nice new change to just bringing
that as soon as you create a function,
you get a common set of templates you can work with.
>> Yeah, very cool.
>> So I'm going to it. What I've done
is it's created our function,
I'm going to start it running here,
and this will let me run this locally
with the Azure Functions runtime,
so I can do some local debugging and working on this
before I deploy it up to Azure.
You can see here if you look there
some definitions of what our function name would be.
This is an HTTP trigger function so it can define,
that allows "Get" and "Post" commands,
you can define some security settings here.
>> Very cool.
Did you set that one as the startup project?
>> Nope. You're keeping me honest, good catching.
So I'm going to go ahead and set this as
our startup project and
we'll get the function to start running.
>> So you're actually building and then
debugging a function locally with Visual Studio for Mac?
>> Yeah. So this will let me before I go on
and commit all the way and I push it up to Azure,
I can debug the function locally,
make sure it's working the way I want,
and it has full debugging support like you see here.
It's coming up with
our usual locals like Call Stack Windows.
>> Of course you're actually running
the Azure Functions CIL. That's cool.
>> So it'll pop up. This is like you said,
the Azure Function CLI is running here.
It's going to give me a URL in a moment which
is what I can put into my web browser
to actually execute the function.
>> Cool.
>> So we'll grab that.
On this one, this function
takes a query string parameter.
So I can put your name on in there,
and it's going to execute the function if we switch back
here to Visual Studio.
We'll see the breakpoints,
should be hid here in just a moment. There we go.
>> Nice.
>> So now I'm here and I could go further along,
I can do our step-overs.
You'll see that from the query string,
it's going to get the name parameter and so,
all the debugging tool and you expect from
the idea experience is there for you
working on your Azure function.
>> Very cool. That's awesome.
>> I just want to hit and hit "Run",
and I'm going to switch
back again to the browser and there we go,
our function ran and now it's here.
>> Best Azure function ever. I love it.
>> So as a final step, let's say that's perfect,
that's exactly what I wanted.
I can come in and through
the publish action here by right-clicking on the project,
choosing publish as a publish to Azure option.
This is going to take for my accounts that
are signed into the IDE.
I can see my existing subscriptions,
if I don't have any I could add
a new one from this dialog.
We'll give you a quick example
of how the setup process looks like.
So for example, I was playing with one function
for the CRM system the other day.
So now, I can see it here in the list.
I could come in and create a new service.
This walk me through the different steps I need if I want
to use a different subscription for this,
the standard things you'd expect for working with
setting up your environment to publish to Azure.
>> Very cool.
>> Then when I'm all done here, I'm not going to go,
I'll still take a little while but I click "Create",
it will create the App service plan for me and then
I can push this function up there,
and be able to start working with it,
now right out Azure right away.
>> Very cool. Nice.
>> So that's one thing that's in 7.6 today.
Another one we should hit on real quick,
one of my favorites is around EditorConfig.
So if you aren't familiar with it,
EditorConfig is a way that you can actually
specify at a solution level or a project level,
code formatting preferences or different rules,
things like the indentations,
how many spaces you want on an indentation.
What we're going to do is use
one here that is from I believe
it's a Xamarin essentials project
that has some handy rules in it.
So what I'm doing to add an EditorConfig
in this case, I could right-click,
add a new text file name it. EditorConfig,
and there's lots of great resources online
on what those settings are named
or what your options you have.
In this case, I'm going to use
an existing file that I downloaded.
On the Mac, by default,
anything with a dot
at the beginning of its name is hidden.
So if you want to see these files,
I've gone in this case.
I went to "Add files",
I've navigated to where this file is on disk.
On my keyboard, I'm hitting the,
it's called the "Command shift" period there,
and that opens up, and shows that hidden files.
So now, I can select.EditorConfig.
>> Cool.
>> Let's add that in here. Few options,
I'm just going to copy it into the current directory.
>> So this is like-
>> We were looking at the Azure function project.
Let me switch over here,
I can open up this file,
which is one of the files in
my project service for working with accounts.
>> Got it. So the EditorConfig is like for my team or
project and I can carry my settings
across the IDEs basically.
So, if this work in Visual Studio over here,
I can create my code formatting rules
that I want. Does that sound right?
>> Right, exactly.
>> Cool.
>> So, if I open up that one real quick for example here,
EditorConfig, you can see some defaults in
this project for how to work with indentation sizes.
We look at XML files for example,
and they get a couple of spaces C sharp, four spaces.
Then there are even some rules specific
to.Net like this var keyword here.
You can actually say, where you like
the var keyword to be used,
versus explicitly calling out
the type of say, a variable in your code.
This file here has a rule that basically says that,
"Eric you're not using
var." I think I'm reading it right?
>> Yeah. So yeah. Always use it everywhere.
>> Prefer to use key var. Yeah.
So if we take our account repository here,
you'll see that I've got an explicit type called
out for the accounts and-.
>> There we go, I see a little light bulb there.
>> Yeah, this actually
is showing a new feature that's coming up in 7.7,
but this will call out that rule.
Its saying that again, it's actually
this little error of the light bulb that shows up here,
and shows you that you should be using
var instead of the explicit type.
So, based on that EditorConfig file,
it preferred to use var everywhere.
So, when you get this light bulb,
normally you get a little squiggle here too as a warning.
Looks like I found a bug in there,
local like early preview that I mentioned.
But you get a little squiggle there,
and then you could come in,
and you see previews for ways you could
address this code change.
I'm going to just click the option here to use var,
and now we'll change it up for me.
>> Very cool, and then it changes back
the little wrench there,
so then, those gives you some additional.
>> Yes and I get these as
just general changes of recommendations,
suggestions you could make to your code.
This is something that, it was in
Visual Studio and Windows
came out a while ago with there's.
There's been a light bulb icon for bed,
now there's three states of an error light bulb or
the screwdriver with things you could do.
The error light bulb is as an error situation,
here are some ways to fix it.
Then, a light bulb is a suggestion,
like these are things you should do to your code.
>> Cool.
>> A little screwdriver icon here,
shows up for a lot of things.
There's always something you can do to
tweaking your code really, right?
>> Yeah.
>> Options and you can preview what
choosing that refactoring for
example would do to your code.
>> Very cool. I like that. I like
that it just picked it up,
showed me there's an error immediately,
and then are able to refactor to me,
and still able to fix up that error.
I'm a huge EditorConfig,
and especially when I open work in
the open-source because everyone has
different ways of compiling a code, different IDEs.
So it's nice to have this working everywhere.
>> Yeah. Okay, so that was a little,
sensor didn't give us the squiggle here,
it jumped us ahead a little bit to
a sneak peak on one of those features.
But, if you did this in
the 7.6 release that's out right now,
you would have seen a squiggle there from
the EditorConfig would be the difference.
If anybody's trying this out before 7.7,
and a light bulb support is in.
So, let me come back in a moment on the editor stuff.
I want to finish up
on some of the things you can do in 7.6 today.
>> Okay.
>> So, the last thing I can show real quick here is
our support for TFVC.
Now What TFVC, is it's another repo format.
Like you have Git repos,
you can use a TFVC,
it's the Team Foundation Version Control.
It's a format that's been in Team Foundation Server,
TFS for a long time.
That was like the original source control format
you're working with a TFS.
>> Got it, yeah.
>> So, this was a very common request for customers.
Like one of our top requests to have
some support for Team Foundation Server,
and working with those repos.
So, you have right now in the 7.6 and 7.7,
there's this preview extension you can get by going
into the extensions of the IDE.
If you go in here to the gallery tab,
you can actually find under version control
this option for the TFVC extension.
So, you can install this today, it's a preview,
and we're working to buy our 7.7 release.
We're working to get this, pretty
much to the release quality,
like get out of preview states.
We're in the final rounds of addressing bugs primarily.
The user interface is pretty much set on this extension.
Now, it's like fixing
different connectivity issues and such.
>> Very cool. What all can I do inside that extensions?
Because I know that Visual Studio
from Mac alredy has Git support
and support for other types of repositories.
So, what else can I do in this thing?
>> Yeah, so right now, this specifically
works for TFVC support.
So in this example here,
I've gone and I connected up to my Azure DevOps instance,
formally Visual Studio Team Services
for anybody that hadn't copped the rebrand yet.
So, Azure DevOps, I've got this project setup there,
and inside of that project, it has a few Git repos
as well as some TFVC repos.
Now, this extension is just adding
support for TFVC right now.
When you look ahead down
our roadmap toward the A point of the product,
we actually bring these all in-product where
TFVC and Git from Azure DevOps are
in this same interface that will flow more naturally.
For now, it's just TFVC is
what we're unblocking if you will with this extension.
>> Got it.
>> So, I can come in, and I can browse and
connect to my TFVC repos.
In this click case, I could set up a workspace,
which is something you need with TFVC or use an
existing one and connect to that.
For the sake of speed here,
I've already got a connection locally to that repo.
So, let me just show you one last thing.
I can go into the source control explorer,
and this lets me view
the folder structure and the files that are up in TFVC.
>> All right.
>> So, I can navigate my training repo,
and if I don't have it locally, I could map it,
which is the thing you do in a workspace,
to map the stuff up in TFVC to a folder locally.
Or if you do already have it
local like this project I've already
got mapped locally for my source files,
I could come and get latest version.
So, I've got the ability to do
all the essential stuff as far
as I connect to a TFVC repo,
bring it down locally, check it out.
I can lock files,
I can add more files into the repo,
I can get the latest versions of those.
If I make a change,
I can commit, and when I commit,
I've got the ability to associate
it with a work item like a bug.
So, if you're trying to fix a bug, very
common that you've got it reported up in Azure DevOps,
and when you go to do the commit, you
want to associate those two,
so you have the history track there.
So, it supports that workflow,
and that's what we really focus on
make it possible to get your code,
change your code, commit it, and track it with a bug.
>> Yeah, super cool. So, it's a little bit more than
just with that little initial box that connects,
you can actually do a lot of nice stuff.
That's really cool. Very cool.
>> So with that,
let's round it out real quick here
with some of the stuff that's coming if that sounds good.
All that you saw just there beyond
the little sneak peek at the light bulbs,
all of that is in 7.6 today.
>> Oh cool.
>> The TFVC support,
again go on into the extensions,
gallery, and you can get it
under the version control category and try it out.
Now, looking ahead toward our 7.7 release,
and even a little bit further toward 8.0 which
will be the next big major version of the IDE.
The big things for our work again are
around performance and reliability,
really I'm addressing reports
we've had of a typing performance issues,
there are various issues
across the IDE around just perf is a common theme.
We've done a lot of work to better
proactively identify where are the perf button X,
do targeted improvements on
those over the past few releases.
In the 7.7 release,
the editor has a very big space focus there.
We've had probably about over
190 bug fixes at this point,
just around all these different optimizations and
focused efforts of performance and reliability issues.
The reports we've had
through our developer community site,
so there's a lot of goodness in
there from the editor perspective.
Some big changes you can see
feature wise beyond the light bulb,
which we talked about the light bulb
states and the screwdriver.
We have taken and we've replaced the way we
do brace completion or like automatic quote insertion.
We're actually using Rosalind
to do that and integrate in the IDE,
versus before that wasn't something we had
adopted yet in our editor from Rosalind.
We had our own way of doing that,
so now we swap that in with the Rosalind experience,
as well as automatic indentation and formatting.
So, that will vastly improve some of
your editing experiences working with brace completion,
and quotes, and new lines.
So, for example, I've got this array
of accounts and their addresses.
If I go in and I add a new one here,
I'll talk as I'm typing because it's really hard to see
these things on the screen.
But in this case, I'm putting down open curly and
it automatically inserts a new curly if I hit "Enter".
It nicely formats and some formatting on those for you,
respecting the spacing and
the indentation stays relative.
Put on a company name here.
You'll see the quotes are
automatically inserted from here and I can get type
over too if I hit a-
And quote will just type right over it,
stay out of the way of my flow of typing
rather than doing some weird things
were double quotes show up
and there's some confusion that can happen around that.
So, those little tweaks there
become pretty significant as you work with
source and then things like
this example of code here where you're flowing
through the curly braces and an indentation and
just gets out of your way and now a lot more.
>> Yeah. It's really nice because often,
I'm switching between Visual Studio and Visual Studio for
Mac and I still type the same way,
even though it's a different keyboard.
But it's really nice to see these improvements
that since I'm so used to just the flow,
and some of the common things that are standard now,
especially with those curly braces,
its one of my favorite things to go and delete it,
now, it just seems like it formats everything for me.
>> Yeah.
>> Very cool. You mentioned
that there's a Dev communities.
They're a way for people to submit
problems and submit new features that they want?
>> Yes. Good question.
Actually, to go in the IDE,
all that you can get to right from our help menu.
>> Okay.
>> So, if you come in, this was also
another thing that changed up in 7.6,
which is our Report a Problem Tool.
So now, before we will
take you out to the developer community site,
now we've brought that into
the IDE and this helps streamline,
reporting a problem to us.
>> Oh wow.
>> You can see problems you're following
along with that you may have reported.
I could come in and say report a problem,
I get some tips for how to set this up
guide and walk through how to create a new report.
Show one thing here.
What really helps us out
is I can do things like include a screenshot,
and for attachments, here we've got a quick button that
would let you grab all of your log files.
>> Wow, cool.
>> That's a common thing we need do when
we're troubleshooting issues
down into Xamarin Tools or the idea as a whole is,
you report an issue,
one of the first things we come back with is,
could you please attach
your log files so we can take a look?
Now with this report, a problem tools,
a lot quicker to grab a screenshot throughout in
there at your log files
and streamline that process for us.
>> Very cool. Yeah, I love that.
It's actually something
that I have to do from time to time
and even going through this when I'm
using new previews or something I'm like,
Oh, there's this little thing,
and maybe it's not working
exactly how I want and it's good to give
a feedback and let us know
what's going on. Very cool, Jordan.
>> Then you also mentioned
as far as providing suggestions,
final thing there. Again, help menu.
If you choose the provider's suggestion option,
this now takes you to the new feature suggestion
functionality up on the developer community website.
So immediately, I can come in here
and make a suggestion
for something that we could change in the product.
This goes straight to us,
where you can also
go out to the developer community site,
and there's this feature section,
under which you can go and add
your own votes for something you may want.
We talked about TFS Version Control,
so there's an item representing it.
This was a recent change to by the way
using developer community for suggestions.
We used to be on user voice,
so we've moved a lot
of different items and we're overtime
moving some more items from user voice over to
here and then we pick up the voting on this website.
>> Oh, nice.
>> So now you can come in and
upload this option on the page,
add some comments, keep up to date
with what's going on here.
You'll see too that where
the status on these items gets updated too.
So, when something's brand-new, we got a little bit
of a turn around and then we'll come around and
we'll flag it as under review and you can go and read
all about the there's "Help link" here on the Dev,
com site about how suggestions work
and a task about the way the statuses work and
what are time frames are for responding on these.
So, this is a good spot to
go and see what do we already have
on our road-map, what's under review,
what are some new ideas and help us
understand what you need from
the IDE, what we could do to improve it.
>> Awesome, that's super helpful.
Yeah, it's always I guess a great to
give feedback and know exactly where to go now. Cool.
>> Cool.
>> Anything else that you wanted to show off at
all or is that rounding about it?
>> That's rounding about it for now.
My last call outs for anybody to is if you're interested,
we talked about road-map.
You can take a look, we have a published road-map for
Visual Studio for Mac right now that talks about
work coming up in our 7.7 release, 8.0.
We'll move this further to other releases
as time goes by but this is
a real good summary page here
for what's the top of our minds right now.
This includes the Xamarin tooling
which I didn't talk about a whole lot today,
but these includes the initial ideas
for Xamarin tooling and VS for Mac,
what's coming up and see in 8.0.
Yeah, there's also a blog post that tees up where we're
starting to go with Visual Studio for Mac 8.0.
So, depending on when
this video gets published and everybody sees it,
this post may be old news,
could be new news, but it's still
relevant talking about where we're going with 8.0,
and so it's a nice summary of
what we're planning to do there,
and it adds a little bit around of the discussion around
the road-map that we've now rolled out to
start talking more openly about the plans there.
>> Well, awesome.
Yeah, thank you again Jordan for coming on,
trying of all this brand new feature, that is great.
I'll put links to everything in the show notes below.
Until next time, this has been another Xamarin Show.
Go check out all the brand new
features in Visual Studio for Mac,
and tell Jordan what
you want for everything. I guess he's over there.
I was pointing on my computer but he's there.
So until next time,
this has been the Xamarin Show,
I'm James. Thanks for watching.
Không có nhận xét nào:
Đăng nhận xét