MVVM Source Generators: Never Write MVVM Boilerplate Code Again!

  Рет қаралды 75,813

James Montemagno

James Montemagno

Күн бұрын

Imagine a world where you never had to raise another property changed event or write another IComand. Well, those days are here with the new .NET Community Toolkit, which introduces brand new source generators and helper classes to enable you to write super minimal code. I break down everything you need to know about the toolkit, how to use it, and why it is awesome!
There have been several updates to the library and name changes for the properties, so check out github.com/CommunityToolkit/d... for changes
Links:
Source Code - github.com/jamesmontemagno/MV...
Toolkit Blog - devblogs.microsoft.com/dotnet...
Documentation - docs.microsoft.com/dotnet/com...
Community Toolkit on GitHub - github.com/CommunityToolkit/d...
Join this channel to get access to perks:
/ @jamesmontemagno
👕 Buy some swag! - jamesmontemagno.myspreadshop....
☕️ Buy me a coffee - www.buymeacoffee.com/jamesmon...
Follow:
👨‍💻 GitHub: github.com/jamesmontemagno
🦜 Twitter: / jamesmontemagno
📄 Website: www.montemagno.com
📰 Newsletter: newsletter.montemagno.com/
Chapters:
00:00 - Introduction to MVVM
06:20 - Installing .NET Community Toolkit and INotifyPropertyChanged
10:20 - ObservableObject and property changes
12:00 - ObservableProperty source generator
14:35 - ICommand source generator
17:00 - Source Generator Wrap-up
Disclaimer: This channel, videos, and streams are created in my spare time and are a product of me... James Montemagno! They are NOT officially affiliated or endorsed by Microsoft (my employer) in any way. Opinions and views are my own.
What is on my hat? It is the CLE clothing logo because I am from Cleveland! Checkout their awesome CLE merch: cleclothingco.myshopify.com/
What is that art on my wall? It is an original piece from the French street artist Gregos of La Butte Montmartre: / bcez1onhiqx
My Setup:
💡 Nanoleaf Elements Lights - amzn.to/3umwJVW
🎙 Blue Spark Microphone - amzn.to/3qgtYkq
🎙 Blue Pop Filter - amzn.to/3jEWM3r
🤳 Rode Microphone Arm - amzn.to/2Z68AlE
🎧 Sony MDR7306 Headphones - amzn.to/372jxta
📲 Stream Deck - amzn.to/373Uk1n
📹 Elgato Cam Link - amzn.to/3a9eGbh
📷 GoPro Hero - amzn.to/374lm90
🖱 MX Master 2S Mouse - amzn.to/3d7J2gj
⌨️ Tecware Phantom Keyboard - amzn.to/3aUP4y9
#dotnet #mvvm #sourcegenerators

Пікірлер: 290
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
There have been several updates to the library and name changes for the properties, so check out github.com/CommunityToolkit/dotnet/releases/tag/v8.0.0 for changes
@mikp1280
@mikp1280 2 жыл бұрын
This comment saved my day :) Thanks James!
@meilleur102
@meilleur102 2 жыл бұрын
Hi! Idk if you can help me on one thing. When I create a [ObservableProperty] of anything (string, ObservableCollection etc) the binding work perfectly. When I create a [ObservableProperty ] of a Model, i can't get the ui to update...I really don't get it. When I debug my Model.Properties get updated, but the ui dont. I try UpdateSourceTrigger=PropertyChanged, OneWay, TwoWay etc on the view. Nothing works. Thanks
@paulegan3783
@paulegan3783 2 жыл бұрын
Cheers!
@comediehero
@comediehero 2 жыл бұрын
Wow, finally something that fixes my biggest gripe with xaml MVVM development. Thx James!
@LeeM0to
@LeeM0to 2 жыл бұрын
Wow... Game changer. Kudos to all involved. Can't wait to start using it. Thanks for the video James 👍
@JesseLiberty
@JesseLiberty 2 жыл бұрын
Great, great, great. And as usual, brilliantly described. Nice work James & team.
@stevehidem816
@stevehidem816 2 жыл бұрын
Shout out to James! You continue to help me up my game. This MVVM source generator is awesome and I look forward to more updates on recent developments.
@georgeleithead
@georgeleithead 2 жыл бұрын
Makes the code so much cleaner, and easier to understand for others.
@jontemplin6990
@jontemplin6990 2 жыл бұрын
This is so awesome! One of the hurdles of understanding and effectively using MVVM was getting your head around all the boilerplate plumbing code and understanding why it's needed. I always thought to myself "why can I just specify properties and commands and let the compiler do all the ceremony?" Yay! It finally happened!
@ByronBennett
@ByronBennett 2 жыл бұрын
This is beyond awesome! Super easy to implement. Makes your code soooo lean and easy to read. I love how you can use the code generation where you want to and still go the long route if you need to do stuff in your Get or Set. Excellent code! And a great video showing how to use it!
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Glad you like it!
@enzodiaz3921
@enzodiaz3921 2 жыл бұрын
You said it: it's ridiculously awesome. I've been working with WINUI 3 and i can see some differences that could be tricky for a newbie like me, but in the road we learn. Thanks James.
@e2a2j
@e2a2j 2 жыл бұрын
MIND BLOWN! I love this with a passion. This helps reduce stupid errors both in initial creation and going back and modifying. This is awesome. I've used code generators in the past and I love them, but this is next level. Thanks again James!
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
🎉🎉🎉
@Agredo10
@Agredo10 2 жыл бұрын
Wow simply wow! The MCT.MVVM was already very helpful but this is incredible!
@Jgathairu
@Jgathairu Жыл бұрын
Thanks James! Amazing and easily broken down. Definitely applying this
@collinsk8754
@collinsk8754 2 жыл бұрын
Really great addition to the community toolkit! Thanks a lot for the tutorial.
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Glad you like it!
@malkywullur8683
@malkywullur8683 2 жыл бұрын
Yes, this would be my 1st personal choice among others mmvm library out there !! Thanks a bunch
@mrrob1454
@mrrob1454 2 жыл бұрын
Amazing. This just made WPF applications 100 times easier. Thanks for the great video.
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
You're welcome!
@twitterer
@twitterer 2 жыл бұрын
Love to see the excitement in your own expressions, tells you how great it is !
@ghanimalmarzouqi3277
@ghanimalmarzouqi3277 2 жыл бұрын
Many thanks to you James. This is really helpful and blowing my mind too 🤯🤯🤩.
@MaximilienNoal
@MaximilienNoal 2 жыл бұрын
I was stuck with mvvm since 2010. Now, I finally love it.
@TonyHenrique
@TonyHenrique 2 жыл бұрын
This is awesome! Very clever implementation.
@kosteash
@kosteash 2 жыл бұрын
wow James, you are amazing. You showed my so many cool nugets, that make my life easier. Thank you very much !
@hrishikeshgarud7177
@hrishikeshgarud7177 2 жыл бұрын
Very useful. I was doing everything code behind. Now i will try this.
@munver19
@munver19 Жыл бұрын
Great tutorial, Thanks James.
@jimsimson7266
@jimsimson7266 2 жыл бұрын
My mind IS blown James! Thank you!
@kwesiboateng2646
@kwesiboateng2646 2 жыл бұрын
My mind was blown james, when you decorated the private fields with ObservableProperty
@astrowalker2629
@astrowalker2629 2 жыл бұрын
Awesome, thank you very much. Now I am on the hunt for some good tutorials how to create such generators by myself 🙂.
@PticostaricaGS
@PticostaricaGS 2 жыл бұрын
Excellent video, and great topic, there is still a lack of video-content on Source Generators
@anandshindey
@anandshindey 2 жыл бұрын
This is awesome. Thanks James.
@RaabStephan
@RaabStephan 2 жыл бұрын
This is honestly pretty amazing!
@paulegan3783
@paulegan3783 2 жыл бұрын
Thanks so much James, very nice
@zandyaverhoff9554
@zandyaverhoff9554 2 жыл бұрын
wow, how many things are change. Thank jame
@zappledd6598
@zappledd6598 Жыл бұрын
Top notch! Nice work.
@danielblakeley2995
@danielblakeley2995 Жыл бұрын
The best MVVM content creator ever thanks james.
@Otonium
@Otonium 2 жыл бұрын
Wow, at last all that tons of lines went away... Keep those in just (a little few) attributes (not towers) thogh Maybe with a comma we'll avoid attributes towers. Great video!😎 James.
@mashrulhaque1168
@mashrulhaque1168 2 жыл бұрын
Thank you so much James
@anderson.damasio
@anderson.damasio 2 жыл бұрын
very good this! James
@ericblankenburg
@ericblankenburg 2 жыл бұрын
This is really great. Thanks for posting.
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Glad you enjoyed it!
@LordErnie
@LordErnie 2 жыл бұрын
Yet again James is here to save the day for devs and students, thanks man.
@matk5087
@matk5087 2 жыл бұрын
Such a great tool :) thx for sharing!!!!
@Albahadly
@Albahadly 2 жыл бұрын
Thanks James, you really treasure
@marcelfischer5139
@marcelfischer5139 2 жыл бұрын
James, thank you for this video. I wrote so much code over the last years, that I can now delete. - Just a joke. I definitely check this out!
@L-E-son
@L-E-son 2 жыл бұрын
VERY cool! Thanks for sharing!
@mubarekabdi
@mubarekabdi 2 жыл бұрын
Super useful ! Thanks 👍
@origamiiekiller
@origamiiekiller 2 жыл бұрын
Hi James, Great content and thank you for bringing this to my attention, seems to work perfectly in your demo. Small question: You had an example with the asynchronous command. Will the binding still work if I postfix the name of the method to 'SubmitAsync'? Or does the generated binding only work, because the name is 'Submit' for the method and 'SubmitCommand' in the Xaml?
@kashifenet1983
@kashifenet1983 2 жыл бұрын
Cool that is too much life will be easy after using this Thank you JM
@MarekLS60
@MarekLS60 Жыл бұрын
Great tutorial !!!
@MarcJennings
@MarcJennings 2 жыл бұрын
Game changer! Can't wait to get stuck in!
@suchtendolp644
@suchtendolp644 2 жыл бұрын
You changed my life, bro.
@joehanna_
@joehanna_ 2 жыл бұрын
Sweet! I use base classes to do some of that but it is not a lovely as using the attributes with the generators. The new code feels right and clean. Chunky boilerplate code has always felt dirty
@cristisandu678
@cristisandu678 2 жыл бұрын
Wow, it is very useful. Thx a lot for the tips 👏 Can you make a video for API generator ?
@emmanueladebiyi2109
@emmanueladebiyi2109 2 жыл бұрын
Truly an awesome library
@ferdinandcastilho
@ferdinandcastilho 2 жыл бұрын
Great!! Thanks for sharing
@chandra_arifin
@chandra_arifin 2 жыл бұрын
Awesome... Like it so much. 😍😍😍👍👍👍
@abba5102
@abba5102 2 жыл бұрын
Waw that's awesome thank you sir.
@shrikantthorve5701
@shrikantthorve5701 2 жыл бұрын
Thank you James for really nice video.. One suggestion, could you please create video on DeepLinking where application can launch from url like Amazon...
@isax55
@isax55 2 жыл бұрын
Hooo, I need to update my projects right now!!
@Proto61
@Proto61 2 жыл бұрын
Thank you for the awesome video, could you make a video how to use Messengers with the toolkit? And a video for navigation would be also very nice. Thank you!
@billashton6511
@billashton6511 2 жыл бұрын
Looks like the future to me James..!
@scara1701
@scara1701 2 жыл бұрын
This is awesome!
@azizjel
@azizjel 2 жыл бұрын
Listening to James makes me think of those old grow hair potion salesmen: " Well James, you wrote the ISync command, now What if you want to sink the Submit button and make it sing the song?" James:"Well you just need to carry the CommunityDev boilerplate which comes with the Generator..". Thanks for the the very interesting presentation James though! I like it 🙃😉
@ali_jb94
@ali_jb94 6 ай бұрын
Fantastic video,!
@JamesMontemagno
@JamesMontemagno 6 ай бұрын
Glad you liked it!
@Gazcan
@Gazcan Жыл бұрын
This is so good, that it makes me wonder why this wasn't there with the release of WPF.
@Sajgoniarz
@Sajgoniarz Жыл бұрын
Amazing stuff, thanks You very much! I'm writing a simple app for my team and i just can't wrap my head around how inefficient to write is WPF.
@rxtx3948
@rxtx3948 2 жыл бұрын
Stunning beautiful
@tarsisf8173
@tarsisf8173 2 жыл бұрын
Fantastic!!!
@belmiris1371
@belmiris1371 2 жыл бұрын
It's a great idea. Since I'm a WinForms guy I keep sliding back to it because it's so simple and I can write stuff fast and clean. I tried MVVM again on my latest Xamarin application (since WinForms was not an option) but still ended up using mostly code behind because I found all the MVVM stuff just too hard to keep track of and getting it to work cleanly with the UI was just too daunting. If these people can make it less complicated that would be great. I DID find the code it generated very scary looking though. If I get some bizarre error about eyepoke() not properly initialized or the my app just hanging or disappearing I would probably give up and go simple again.
@sammynimmy
@sammynimmy Жыл бұрын
Excellent!
@ababacarcisse7969
@ababacarcisse7969 2 жыл бұрын
I like your plugin Media❤️
@nixnemo
@nixnemo 2 жыл бұрын
Looks/sounds amazing. Many thanks for the efforts. If [ObservableProperty] attribute would work without compilation error, telling MyViewModel already exists, I would really appreciate. Many thanks in advance. Again, really appreciate what you done.
@anonub
@anonub Жыл бұрын
Awesome 😊
@marufahmad4385
@marufahmad4385 2 жыл бұрын
Thanks for the great content. Can you please also make a video on MVVM Messaging?
@buddysnackit1758
@buddysnackit1758 2 жыл бұрын
I actually made a post about "Why doesn't a system that generates the MVVM code for you!" in one of your older videos! Yes!
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
🎉🎉🎉🎉
@jhanifkara8552
@jhanifkara8552 2 жыл бұрын
INCREDIBLE 🙈
@albertorodriguez7096
@albertorodriguez7096 2 жыл бұрын
Amazing!
@felipeapj
@felipeapj 2 жыл бұрын
I wish a can give more than just a thumbs up, thats awesome!!!
@worknaturebalance
@worknaturebalance 2 жыл бұрын
Hey James. You can do this for many years using propertychanged.fody nuget package. What is even better it can do this without all those attributes. Especially combined values like Full name from your example. You can use them directly without specifying that it should be updated in other properties attribute. The thing about ICommand is quite neat in your presentation, this is currently not present in propertychanged.fody But also it's quite small price to pay in comparison with all the boilerplate code for properties. On a side note. Keep up the good work. I was using many packages of yours for few years already. Thank you for every single one of them. Cheers
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
I should have talked a bit about fody a bit in there. It is more assembly weaving to manipulate IL from my understanding. Where this is source generators where they are generated instantly without compilation. Correct me if I am wrong.
@EngLuizFranco
@EngLuizFranco 2 жыл бұрын
@@JamesMontemagno You're right. Despite fody adding zero boilerplate, you do not have access to the generated code, because its generated at compile time. With source generators, you can see in real time all the code that is generated which is awesome in my opinion and gives us the opportunity to learn new things by exploring the generated code.
@williamliu8985
@williamliu8985 2 жыл бұрын
@@JamesMontemagno I think the source generator might not be mature enough at this time. It sometimes bring in strange issues and I should reload the project for fixing it. Hope MSFT can make this tool much better.
@worknaturebalance
@worknaturebalance 2 жыл бұрын
@@JamesMontemagno as Luiz said, you are absolutely right. Source generators have other benefits, but also propertychanged.fody gives you the same outcome with cleaner code (no attributes needed). Also I don't remember if I ever needed to inspect the code that got generated. In most cases it's quite simple. Would it be possible to use source generators without those attributes?
@morgenrot2640
@morgenrot2640 2 жыл бұрын
@@williamliu8985 Unfortunately, I had to find that out too.
@mojoojoseph8145
@mojoojoseph8145 2 жыл бұрын
This is so cool 😎
@JoseSilva-gt6zj
@JoseSilva-gt6zj 2 жыл бұрын
Awesome explanation, James! Thank you! Let me ask about obfuscation. Do you know if it works after obfuscating the code? I mean for a WPF app. Thanks!
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Yes it does from my understanding, it is the same as if you wrote the code ;)
@CricketThomas
@CricketThomas 2 жыл бұрын
This is sweet.
@user-gq8of6kd4r
@user-gq8of6kd4r 2 жыл бұрын
OMG this cool!
@zappledd6598
@zappledd6598 Жыл бұрын
Hi James, I love your tutorials. I've been diving a bit deeper into the MMVM Toolkit as I steadily replace my old MVVMLight code. One area not covered in your video that I'd like some more insight into is the ICommand "RaiseCanExecuteChanged". I'm seeing things like [NotifyCanExecuteChangedFor] in the new Toolkit that looks promising. Do you have a video that covers this or can you point me somewhere that might? Thanks so much.
@SanzRealtyGroup
@SanzRealtyGroup 2 жыл бұрын
Awesome!
@billymartin6497
@billymartin6497 2 жыл бұрын
Great video, as usual, James. Couple quick questions: How do we pass command parameters? Does it function inside of VS 2019? Sometimes we have to drop back to use the MultiLingual extension, since it's not in VS 2022.
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
I believe they should, but I only have 2022 on my machines now
@Sergio0694
@Sergio0694 2 жыл бұрын
You can pass command parameter through whatever system the UI framework you're using has, that's separate from the command implementations the MVVM Toolkit has (for instance, on WPF/UWP/WinUI you'd do CommandParameter="{Binding ...}", or {x:Bind ...}, etc.). As for VS2019, no the generators will not work there. For the 8.0.0 release of the MVVM Toolkit I've rewritten all of them to be incremental generators, and that feature needs Roslyn 4.x to work, which isn't available on VS2019. You'll need VS2022 for that (or another modern IDE of your choice, eg. Rider). Hope this helps!
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Checkout github.com/CommunityToolkit/dotnet/issues/158 for a working sample, You will need to put things in a .NET Standard library for it to fully work.
@fifty6737
@fifty6737 2 жыл бұрын
MVVM is now practical with this
@MohitKesarwaniPhoton
@MohitKesarwaniPhoton 2 жыл бұрын
Amazing that is what I wanted
@MohitKesarwaniPhoton
@MohitKesarwaniPhoton 2 жыл бұрын
Coz I am lazy :) 🤣🤣🤣🤣
@mohamadsoltani1982
@mohamadsoltani1982 2 жыл бұрын
it was amazing
@broadshare
@broadshare 2 жыл бұрын
Good stuff, Maui has really delayed. We need to use all these stuff on production
@NehaSingh-fe7nu
@NehaSingh-fe7nu 2 жыл бұрын
Hi James, I am building a poc blazor hybrid application using .NET Maui in VS Preview 2022, and I am using razor pages for the UI. I am using INotifyPropertyChanged, but somehow it doesn't seem to work, anything you might know about this? Any help appreciated, thanks!
@ignispurgatorius5297
@ignispurgatorius5297 Жыл бұрын
While I've gotten used to MVVM in WPF, at the end of the day I'm still not convinced it is actually nearly as good a pattern as the head-in-the-clounds programers make it out to be. The reality of my (and I think many others) is simply not at the scale where we really profit from it. Back when we switched to it, it was sold with the promises of having the option to easily outsource the view design (because of the decoupling), being unit testable and being oh-so-efficient. After working with it for years, I have to say that I still end up writing most if not all of my view code myself. I have barely written any unit tests, because the stuff that actually fails is way to much effort to unit test and the simple stuff I have clicked through quicker than I've set up the test. And lastly I don't think having to do 3 things to handle a button event or drowning in property boilerplate code has made the code any more readable or quicker to produce. The tiny bit of intellisense support you get from it hardly makes it worth it imho. I know there are plenty of nugets and extension to help with this and we've used a couple of them mostly successfully over the years, but it never really felt like at the base the effort was worth it That being said, seeing this auto code generation I feel like we've finally reached a the point where the extra effort has been reduced to a level that no longer negates all the smaller benefits (I will probably still not write alot of unit tests or have some of those mythical html programmers swoop in and design beautiful GUIs for me :P). I just wish I could actually use it in all the older projets we still have to maintain, but sadly they are still mostly on .Net4.7. Well at least going forward it will become alot nicer.
@ramigamal6637
@ramigamal6637 Жыл бұрын
An amazing tool I am using it for about a year -_-
@WilliamCarinci
@WilliamCarinci Жыл бұрын
In using the MVVM pattern, how do you go about handling Navigation.PushModalAsync when it often expects a parameter of type Page? In particular, this seems to be a concern of mine when handling a page NOT defined as a shell page. For instance, a settings modal. It seems peculiar that you get caught in an issue where the .xaml.cs of a page gets set with the BindingContext = viewModel.
@anmolbehl8572
@anmolbehl8572 2 жыл бұрын
Hi James, I want to add some logic within my properties. Example: For a particular entry for Age from the UI we can set a property if the person is eligible to vote or not and display it on the UI. Can you suggest a way how this would be implemented using CommunityToolkit.Mvvm? Best Regards
@lerocher2182
@lerocher2182 Жыл бұрын
Thx James, How can I use CanExecute for the Command function?
@michaldivismusic
@michaldivismusic 2 жыл бұрын
I'll be able to remove about a 1/4 of all the code from my projects, awesome!
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
That’s awesome!!!
@xmichael911
@xmichael911 11 ай бұрын
Thanks
@kamertonaudiophileplayer847
@kamertonaudiophileplayer847 2 жыл бұрын
I am with you. I created a source generator for MVVM 7 years ago, and since then I stopped writing a lot of a code. Everything is done by the source generator. Continue to propagate the idea.
@ostelaymetaule
@ostelaymetaule 2 жыл бұрын
How many juniour developers could understand and extend on your code without wondering about black magic and stuff? D: I am very very cautious every time I see some work being done in background by some sort of extensions or dynamic code generation or self invented conventions nobody else in the world knows about. One thing is to rely on ms own attributes and conventions with tons of documentation and tests and usage and another is thinking that I am able to create, support and fix this on my own and that when I quit the job the next guy will know what the hell is happening in the code
@kamertonaudiophileplayer847
@kamertonaudiophileplayer847 2 жыл бұрын
@@ostelaymetaule It is a very good concern and actually I had a fear that simply developers will run away. But to my surprise, a feedback was completely opposite. They gladly started using it. Why? If system is designed well, it is so natural and intuitive, developers on any level, especially juniors, just use it.
@ostelaymetaule
@ostelaymetaule 2 жыл бұрын
@@kamertonaudiophileplayer847 I am glad to hear you managed to make it work, I have seen couple examples earlier in my career as well, but also encountered some over engineered magic bazoongas nobody knows what it does and the original dev is long gone ;)
@kamertonaudiophileplayer847
@kamertonaudiophileplayer847 2 жыл бұрын
@@ostelaymetaule It is normal, we lost several good developers exactly for the reason. Some system for some reason wasn't designed by us well. The result was really disappointing, we started loosing people because they simply can't use the system. Solution? Do not be afraid of to redesign the system instead of trying to fix it little by little.
@miguelmunozluman4732
@miguelmunozluman4732 2 жыл бұрын
Sorcery! jajaja what amazing change!
@diogopio
@diogopio Жыл бұрын
Hi James, thank you for this awesome video! I was trying to use the MVVM with App Center but it seems that the code is not being generated, does anyone knows how to fix that? Thanks!
@MrMmajeed
@MrMmajeed 2 жыл бұрын
Holy Molly!!!
@RajK09
@RajK09 2 жыл бұрын
It'll be very useful. What if we'd like to call a method when a property has changed?
@ssg3219
@ssg3219 2 жыл бұрын
AlsoNotifyCanExecuteFor() and the AllowConcurrentExecutions flag are currently missing from the Community Toolkit. Will they be coming back? If not, how should that functionality be implemented?
What is the MVVM pattern, What benefits does MVVM have?
22:38
James Montemagno
Рет қаралды 95 М.
Even More MVVM Source Generator Awesomeness for .NET Developers
12:54
James Montemagno
Рет қаралды 26 М.
Jumping off balcony pulls her tooth! 🫣🦷
01:00
Justin Flom
Рет қаралды 28 МЛН
Inside Out Babies (Inside Out Animation)
00:21
FASH
Рет қаралды 23 МЛН
Turns out REST APIs weren't the answer (and that's OK!)
10:38
Dylan Beattie
Рет қаралды 129 М.
UI Libraries Are Dying, Here's Why
13:28
Theo - t3․gg
Рет қаралды 290 М.
Microsoft Is KILLING Windows | ft. Steve @GamersNexus
19:19
Level1Techs
Рет қаралды 305 М.
8 await async mistakes that you SHOULD avoid in .NET
21:13
Nick Chapsas
Рет қаралды 310 М.
How much does the Windows Community MVVM Toolkit REALLY help us?
7:02
.NET Community Toolkit
24:15
Microsoft Visual Studio
Рет қаралды 13 М.
XAML Data Binding and MVVM Basics (.NET MAUI, WPF, UWP, Xamarin.Forms)
19:15
Compilers, How They Work, And Writing Them From Scratch
23:53
Adam McDaniel
Рет қаралды 136 М.
Fix Your Controllers By Refactoring To Minimal APIs
14:56
Milan Jovanović
Рет қаралды 37 М.
Лучший браузер!
0:27
Honey Montana
Рет қаралды 1,1 МЛН
#samsung #retrophone #nostalgia #x100
0:14
mobijunk
Рет қаралды 14 МЛН
Todos os modelos de smartphone
0:20
Spider Slack
Рет қаралды 65 МЛН