That's right.
.NET Maui preview 14 this year, getting ever so closer to release
candidate and ever so close to that GA release in Q2 of this year, 2022.
I'm real excited because this release is packed full of awesome.
Optimizations, including the brand new menu bar and Ooh, can ever so closer to
integrating shell as the default option.
Cause my poll requests got accepted.
So just wait for the next release to come out, but I'm going to break down
everything you need to know about preview 14, so you can get started today
because it's looking ever so sweet.
So tune in.
Hi everyone.
I'm James and I'm back with another.net Maui preview 14 video
this time, bringing down all those goodies inside the ser lease.
If you've been enjoying these videos along the way, jam that like button below.
And of course, if it's your first time here, I'm James.
I make videos all about dotnet net.
I specialize in mobile and desktop development with Xamarin
Xamarin forms, and now .NET Maui.
And I've been breaking down all of the releases and doing tutorials along the
way, whole bunch of good stuff here.
If you want even more goodies, check out my buddy Gerald's channel.
I'll put it up over there, down there.
Whatever is Gerald on the Dunham Maui team has all sorts of crazy goodies guy.
I was doing all sorts of crazy stuff.
So go check that out because I don't have a video here.
He's probably got one over there to supervise.
All right, .NET Maui.
Pre-vis 14.
Let's get into it.
I'm actually going to go straight into coding.
That's right.
I'm here.
I have a brand new file, new application up and running.
The only thing I did is I wrapped the app and a navigation page over here.
And soon you won't have to do this because they're going to
do it for you, which is great.
So here's what I'm going to do.
I'm going to come in.
I have a windows application here and you know how like you have these files
and edits and views and get is all this.
Wouldn't it be great if you could have that too.
Well, now you can check this out.
I'm going to come in.
I'm going to say content page, menu, bar items.
Okay.
Now menu bar items.
Have you guessed it?
Menu bar items in it.
So let's do file over here.
And now we get file right over here, but now we got to give it a menu item.
Okay.
So we're going to say menu, fly out item and I'll say text and
let's say file one or something.
I don't know.
And now we have file one right there.
Check that out.
And now I can just add a bunch of them in.
And now I got filed.
One-on-one one on one.
Check that out.
Amazing.
Now, check this out.
If I come in and I add another menu bar item, and I say, edit, for example,
I get an edit with all of them over there, which is really, really cool.
Now you're probably saying, well, James, what if I want to bind those
things to a command or something like.
Well, for any of these menu items, you have a command and command
parameters and click handlers and all those things in there too.
So you have all that stuff in there, which is really nice.
Now I want to also say what if you wanted to create things
with little arrows, right.
Sub menu items.
Well, you can actually do that too, which is really, really cool.
So let's go ahead and modify this edit.
And let's, um, let's do something here which is taking that first file here.
And I'm going to say menu, fly out sob item.
Okay.
And what this does is it will come in and it will go ahead
and say, here's a sub item.
I'm going to give it text of sub item.
And I'm going to go ahead and put in a bunch of menu items inside of it.
So now.
We have sub item with file one file one file one, right?
So you can create this real rich, deep navigation inside of your application,
which is pretty kind of awesome.
So that is the very first thing I want to say.
Now, this only shows up on desktops, a Mac and our windows, obviously.
This really wouldn't make any sense at all, things like that.
But of course, if you want some stuff like that and give feedback to the
team, but this is, I don't know, it's just a great little API in here too.
And I could imagine creating these all with the code behind as well.
So I just love this thing.
It's so nice.
It looks really nice over here too.
I just love the, when you, I look here and what's going on in the
file menu with sub items and you can just go and go and go and go and go.
And it's right there.
All right now, there is a lot more packed in to .NET Maui, preview
14 beyond the menu bar, which I think is absolutely ridiculously
awesome because there's been tons of enhancements to net Maui essentials.
Now, Donnette Maui essentially is the evolution of Xamarin essentials, which
has over 70 or 80 different needs.
Cross-platform API APIs all bundled into the core platform.
Now Xamarin essentials was a separate new get package, uh, that you'd have
to install and make sure your apps were configured with, but .NET Maui
essentials is literally in the box.
So really it's just sort of like .NET Maui has these API APIs.
You can use it in Nandani Maui apps.
If you still have like an iOS or android.net six app, and you're
grading the UI with UI kit, for example, you can use that in there,
which has shown in previous videos.
Um, but if you're just using, using Maui, it's all included all configured and
there's new optimizations in this release.
In fact, this release has rearchitected with the product team and the
community to have interfaces for every single API in the essential stuff.
So things like connectivity, file picker, geolocation, opening the map, for
example, it all has interfaces and big shout outs to Ryan Davis who originally.
Did Xamarin essentials interfaces, a third-party nougat package for
lots of inspiration here, but this is great because it ties in blue
beautifully to all of that dependency, injection and inversion of control
and constructor injection stuff that I've been talking about with
shell and a bunch of other stuff.
And I've been working on a dotnet Maui workshop, which I'll talk
about when is all ready to go?
It's almost ready.
I'll show you the final product and walk you through some of the code that
I actually use some of this stuff.
So let's check it out.
All right.
So this is the monkey finder application is an application.
I have built many, many a times, uh, but this is what's
going to be in the workshop.
So it lists all the different monkeys you can search for them.
You can click on one, you can actually launch to show on a map, for example, Uh,
it has light theme and dark theme built in to it, which is really nice as well.
You can find the closest one, which uses geolocation to find
the closest monkey to you.
Um, and like I said, over here, if I swap these around, um, it can
obviously find the closest one.
I need to get access, of course, and there, uh, but I can also say show
on map, which launches the map, uh, wherever it's at, which is really cool.
And there we go.
Bingo.
So, how do we get access to those new API APIs?
We'll check this out.
If I come into my source code over here, I have my monkeys view
model, which is using geolocation.
And what I'm able to do is pass in I geo location, which is coming from the
Microsoft Maui's essentials namespace.
I can then use that locally here.
And I get all of my different, uh, properties and, and methods
like here, like get last known location, uh, get location.
Async have that all available right there for me.
Same thing is true over here in my, uh, monkey details, view model.
I am app, uh, which enables me to open the maps, asynchronously in
patch path and different information.
Now that being said, I can still come in and say, maps dot if I want, um,
which will give you, I'm sorry, map dot.
There we go.
Mt.
Dot, which will give me access to like open a saying, or if I did
connectivity dot for example, I have access to all those things still, but
this is nice because it makes them.
Um, view model, very testable, if you're worried about that.
So that's where Ryan Davis, his library came in really nifty
for the Xamarin essential stuff.
Now, I also say, if you haven't seen my video on all of the awesome DyNet
community toolkit stuff, coming from the dinette community toolkit team, check
that out because these are all sorted.
Generators generating all my properties here, which is a bananas.
Okay, cool.
Anyways, so we're injecting stuff.
How do I set it up?
Well, if I go over into my Mo Molly program over here,
we can see a few things.
The first thing is I add the eye geolocation and I map as a Singleton so
I can reuse them across my application and I get the specific implementation.
And that is in the brand new Microsoft Maui essentials implementations namespace.
So I just bring that in.
I can add the.
If you look over here, I'm also, for example, having my monkey service,
my monkeys view model and main page as singletons, and then each
of the monkey pages and the monkey view model stuff as transient.
So a new ones created also check out that I'm using the built-in HTTP
client inside of dependency injection again, which is very, very cool.
If you take a look at that stuff inside my service.
I have my HTB client automatically being injected in.
If I go into my view models over here, like I showed her.
I have my monkey service and my IGO location being put in.
And if I go into my pages over here on the code behind, we can also
see that I'm injecting in the view model, which is very, very cool.
And, and this release, they did update it where you do need to inject your page.
If we're using shell over here, like I am.
So I just have a single piece of shell content.
So that way it knows how to register all those things together.
All right.
There's a lot more in .NET Maui pre 14.
And I can, I can try to break down every single bug fix and optimization,
but honestly, David, over on the dev blog wrote an amazing dev
blog, highlighting all this stuff.
So let's check it out as always David rocking it with all of the.
Don Moe announcement, posts and great comments as well, going on, he outlines
all the new additions over here.
So here is actually the menu stuff inside of his weather application, which is rad.
I mean, he shows how to do all that right here.
He also outlines some of the big things such as the essentials,
um, uh, and device reconciliation, which is really, really cool.
And all the interfaces.
This is a neat one from Shane, which is the win UI handler for shell.
This is really cool actually, because it has tabs and drop downs and all
these things have been completely updated, um, to be unique and different.
So.
It actually is using proper fly out and things in there too.
This is really, really, really neat.
Um, some optimizations there, some other things, uh, such as some
web view optimizations or right to left support and a bunch more also
know that there's release notes.
If you really want to know every single little detail over and over
and over again, look at all those.
There's so many amazing contributions from the community and from the team.
It's amazing to see it.
In fact that this guy.
James Monson mag.
Now look at that.
I updated a license file and, uh, updated some file picker and stuff on there too.
So there's some nice little things, but I'm excited because there's a
whole lot more that he outlines, like all the essential APIs and
brand new file picker stuff.
Look at this pick and files one line of code, amazing, um, things like
that, which are really, really cool.
And also the product roadmap.
If you take a look at that, I mean, It's coming up, April it's happening.
All right.
So there's lots of stuff happening.
I'm real excited about it because April release Canada is looking like
it's on the board, which is great.
I also want to say one huge shout out to everyone then, uh, made
contributions toward this feature.
It left comments, supported this.
I made a pull request months ago to add shell as the default template,
the default way of learning .NET Maui.
And I got to.
Shane has pulled it in the team has been optimizing tweaking it and making
sure that it's super duper performance.
So you can use all of that dependency and injection soft across the board.
It's all in here.
If you want to read more about it, I'll put a link to this specific,
um, pull requests that I did, but just know next release file.
New boom shell.
It's going to be in there.
All right, that is going to do it for this quick overview of all the brand
new Danette Maui preview 14 features as it heads up into release candidate.
Now, as it proceeds forward, I'm going to make, of course
more videos I'm going to do.
Getting started a whole bunch of other things along form
short form, all the things.
Let me know what you want to see when it comes to .NET Maui.
And of course, I'll put out a video when I released that workshop
was going to be super awesome.
I can't wait to put it out as a whole bunch of sections, full day
workshop from start to finish.
If you have any questions at all, leave them in the comments below.
And of course, head over to the.net, YouTube, or I put out videos every
single week over there with all my friends across all sorts of
things in the world of Don net.
Thank you all so much for tuning in.
I really appreciate it.
If you have.
Jan that like button that really helps other people find it.
It goes into that YouTube algorithm of goodness and heck, while you down there,
share it with someone that also goes into the YouTube algorithm of goodness and
that subscribe and notification bells while heck do all the things that are
down over there at super appreciate it.
That's going to do it for this one.
So until next time, thanks for watching.