20 Nuget packages that every .NET developer should be familiar with

  Рет қаралды 90,575

Nick Chapsas

Nick Chapsas

Күн бұрын

Become a Patreon and get source code access: / nickchapsas
Check out my courses: dometrain.com
Hello everybody I'm Nick and in this video I will talk about the 20 Nuget which I think that every .NET developer should be familiar with in 2021. These nuget packages can be seen in a wide collection of popular projects and you will definately encounter them during your career as a .NET software engineer.
The packages:
0:00 Introduction
0:57 xUnit & NUnit
2:14 Moq & NSubstitute
3:19 Polly
4:12 FluentAssertions
5:17 BenchmarkDotNet
5:53 Serilog
6:37 Autofixture & Bogus
7:40 Scrutor
9:22 Automapper
10:09 Dapper & Entity Framework Core
11:32 MediatR & Brighter
12:37 FluentValidation
13:17 Refit & RestSharp
14:08 Json.NET
Don't forget to comment, like and subscribe :)
Social Media:
Follow me on GitHub: bit.ly/ChapsasGitHub
Follow me on Twitter: bit.ly/ChapsasTwitter
Connect on LinkedIn: bit.ly/ChapsasLinkedIn
#nuget #dotnet

Пікірлер: 118
@jarekmag6291
@jarekmag6291 3 жыл бұрын
My dumb ass reading the title, at first glance thought it's about McDonald's Chicken Nuggets 20 pieces
@DanteDeRuwe
@DanteDeRuwe 3 жыл бұрын
Nice compilation of a lot of packages you showcased already! Keep it up!
@0blit
@0blit 3 жыл бұрын
I'd probably add Swagger/Swashbuckle to the list of essentials, but great list otherwise.
@carlosjosejimenezbermudez9255
@carlosjosejimenezbermudez9255 3 жыл бұрын
I'd replace Automapper with that instead, it seems to me it causes more problems than it fixes and few understand it properly when it fails. Turning plain and simple mapping into a difficult to debug mess.
@EbrahimAlkadim
@EbrahimAlkadim 3 жыл бұрын
Since .NET Core 5 (.NET 5) Swagger is now built-in by default .
@randyriegel8553
@randyriegel8553 3 жыл бұрын
@@EbrahimAlkadim and with .NET 5 you actually create a dependency service using the json file created by swagger.... then just add that reference to your project... It can all the API calls for you from the generated code. So in client you already have methods to call the API.
@adamsiarkowski7635
@adamsiarkowski7635 3 жыл бұрын
Hi Nick 👍 Thanks for a great content as always 👍👍👍
@amjster
@amjster 3 жыл бұрын
Many thanks Nick, a superb video providing balanced opinion on a lot of very useful packages. Thank you for introducing me to Polly...
@leandrowitzke6405
@leandrowitzke6405 3 жыл бұрын
Love it !! Nice video dude, thanks.
@augustinomateso5568
@augustinomateso5568 3 жыл бұрын
Nice video, really helpful. For .NET Framework I will add ELMAH, HangFire and Autofac
@DanielTames
@DanielTames 2 жыл бұрын
great video man! thanks a lot!
@chyldstudios
@chyldstudios 2 жыл бұрын
Thanks for the list.
@federicoeslava6696
@federicoeslava6696 2 жыл бұрын
Great video. Thanks
@seanfarrow3538
@seanfarrow3538 2 жыл бұрын
I'm really surprised Noda Time hasn't had a mention. A really good package for allowing dates/times to be tested. It also makes you think about what sort of a date/time you have, UTC, a local date/time or one in another Time zone.
@markobottger5706
@markobottger5706 3 жыл бұрын
Great video!
@sergiooliveira4338
@sergiooliveira4338 3 жыл бұрын
I've used almost one of each kind of nugets you talked about, thats awesome.. I would like to see a video about MSBuild.. But compiling a project programaticly..
@sundeliu3324
@sundeliu3324 3 жыл бұрын
Thx This is useful.
@coderider3022
@coderider3022 Жыл бұрын
Good list. I used most of these in projects. Autofac is a must.
@L0RDeX
@L0RDeX 3 жыл бұрын
I'd like to add Roslyn code analyzer and styleCop.
@kostasgkoutis8534
@kostasgkoutis8534 3 жыл бұрын
Awesome!
@philipmrch8326
@philipmrch8326 Жыл бұрын
I'm happy that I already know most of these
@calvinwilson3617
@calvinwilson3617 3 жыл бұрын
I dislike using full ef, however it can be nice to quickly reverse engineer the sql db model into c# using the dotnet ef cli commands, especially when combined with the validation abstraction decorations. It allows you to quickly get the exact models and validation. I would not use those models directly however you can extend those and add whatever alterations you want.
@adammusson2874
@adammusson2874 3 жыл бұрын
I'd add Respawn by Jimmy Bogard for setting up test data for unit tests but Great list!
@damiansuess
@damiansuess 3 жыл бұрын
Great rundown! it's nice to get a refresher on what is out there. Just curious, which program do you use to edit your videos?
@nickchapsas
@nickchapsas 3 жыл бұрын
I am using DaVinci Resolve
@damiansuess
@damiansuess 3 жыл бұрын
@@nickchapsas nice, thank you!
@LukeAvedon
@LukeAvedon 3 жыл бұрын
Wow. That advice about dapper and entity framework is gold!
@dwilliams8649
@dwilliams8649 Жыл бұрын
Yeah, I've done it the opposite way as well... where I would use EF with track changes turn off and used dapper with stored procs for my writes. I am not a big fan of putting business logic in stored procs, but in some cases it just makes sense from a performance standpoint.
@alexandremaciel4520
@alexandremaciel4520 3 жыл бұрын
Yeah, you are talking about MSTest. I used it quite a lot with dotnet web APIs on V 4.5
@chbasitgill1
@chbasitgill1 3 жыл бұрын
👍👍👍👍👍👍 nice mate.
@AlfredoPinto
@AlfredoPinto 3 жыл бұрын
I use dapper and entity framework, please include a review for RepoDB, is an excellent ORM in the middle
@lekabros
@lekabros 3 жыл бұрын
I see Nick upload, I click like.
@adesokantayyib3445
@adesokantayyib3445 3 жыл бұрын
Hi Nick, please can you do a tutorial on Custom Webhooks.
@husreihn1070
@husreihn1070 2 жыл бұрын
Thank you for your hard work, however, I still wished you added atleast one example on how to use it and showcase the use of it.
@dilipnettyfish1939
@dilipnettyfish1939 3 жыл бұрын
Swagger Nuget should be added in your list!
@samysammour9983
@samysammour9983 3 жыл бұрын
In .NET 5 it is included by default. :)
@pritishranjan
@pritishranjan 3 жыл бұрын
Can you please explain a bit How and When to use Dapper and EFCore as you mentioned reads and writes.
@Kwod120
@Kwod120 3 жыл бұрын
+1
@juankar008
@juankar008 3 жыл бұрын
Dapper is faster for reads than EFCore and for writes they are similar
@pritishranjan
@pritishranjan 3 жыл бұрын
@@juankar008 So for every read should we use Stored procedure always or for Complex reads with joins and stuff...
@coderider3022
@coderider3022 Жыл бұрын
I left efcore behind with the monoliths and db intensive apps. I’m focused on small micro services and use dapper and never looked back.
@Sergio_Loureiro
@Sergio_Loureiro Ай бұрын
Can you do a video about whether at this time RestSharp is still relevant compared to the actual encarnation of the native .Net HttpClient? Tks in advance.
@shreyasjejurkar1233
@shreyasjejurkar1233 3 жыл бұрын
I wonder why MS won't optimize Json.NET internals directly (without breaking public API) to take advantage of Span Family API and reduce allocations. There might be 2 reason which I can think. 1. MS don't want to optimize 3rd party libraries (although the author Newtonsoft works at MS) 2. Or Newtonsoft didn't give the permission to do so!? 😅😅
@nickchapsas
@nickchapsas 3 жыл бұрын
I think that they have said that already. Can't find the blog. Basically that's what they wanted to do originally but as they tried to do so it was so hard to optimize without making any breaking changes that they dropped the idea. It also has to do with how many projects use it. If they were to break something in the process or cause a memory leak or whatever, they would bascically harm every single .net project.
@shreyasjejurkar1233
@shreyasjejurkar1233 3 жыл бұрын
@@nickchapsas Breaking change that is OK for .NET Core. I mean just get a clone of Json.NET into dotnet runtime (if wanted rename it to System.Text.Json) and optimize its internal for performance! So this way, it will have all features + Perf improvements.
@titol6
@titol6 3 жыл бұрын
@@shreyasjejurkar1233 Sometimes it's better to start project from scratch.
@shreyasjejurkar1233
@shreyasjejurkar1233 3 жыл бұрын
@@titol6 I don't think so when I look at such a mature library like Json.NET. And also the author of library works at Microsoft, so that shouldn't be the problem from my point of view!
@titol6
@titol6 3 жыл бұрын
@@shreyasjejurkar1233 Here you have all the explanations @Nick was talking about: devblogs.microsoft.com/dotnet/try-the-new-system-text-json-apis/
@mohamedchaabouni3027
@mohamedchaabouni3027 3 жыл бұрын
Hello ! I have a question. I want to execute Javascript (node.js) code on a Web API REST Call (C#). Can I use IJSRuntime ? or it isn't a good practice ? and if so, Is there an alternative to run Javascript code on the back-end side. My app have 2 Parts (backend and a front end app) not a Blazor app.
@vitaly062
@vitaly062 3 жыл бұрын
There is node.js for running JS on the server-side. So you already have .Net app, then you need to run node.js app and all what you need is just think about channel which you will use to trigger node.js functions from your .Net app (it might be HTTP, message queue, whatever)
@pilotboba
@pilotboba 3 жыл бұрын
BouncyCastle for any Cryptograpic stuff you want to do.
@rbogdan8980
@rbogdan8980 3 жыл бұрын
Nuget - AspNetCoreRateLimit
@tony-ma
@tony-ma 3 жыл бұрын
Hi Nick have you used messtransit package? Will you make a video on it?
@nickchapsas
@nickchapsas 3 жыл бұрын
I know of MassTransit and I will be making a video about it
@tony-ma
@tony-ma 3 жыл бұрын
@@nickchapsas awesome looking forward to it
@coderider3022
@coderider3022 Жыл бұрын
Masstransit is very hard to get working and very opinionated, it’s not easy to get going. Brighter I think is a better starter package. I would use nservicebus if my company could afford it.
@AizenSousuke92
@AizenSousuke92 3 жыл бұрын
any good model binder for webforms?
@vredurs
@vredurs 3 жыл бұрын
What about Noda Time? Or are the date/calendar apis on pair in .net core?
@nickchapsas
@nickchapsas 3 жыл бұрын
I think in 5 years if seen NodaTime once and that one service was doing some time specific things. It’s pretty cool but I wouldn’t put it under a “must know”
2 жыл бұрын
@@nickchapsas I would recommend NodaTime in every project instead of BCL DateTime because it has a proper abstraction for date, time, time zones, etc. Even if you don't need advanced date time arithmetic you would use proper abstractions.
@davidstowell692
@davidstowell692 2 жыл бұрын
Very tangentially, I noticed that you are using a Rode NT1-A mic - in addition to software development, I'm also a music producer and think very highly of that model of mic.
@NawfalHasan
@NawfalHasan 2 жыл бұрын
I am surprised you missed Autofac and Humanizr.
@benlewies8828
@benlewies8828 3 жыл бұрын
Honestly, I haven't heard of either Refit or RestSharp. I have seen NSwag been used a lot (however, I'm not really a big fan).
@lamboiah
@lamboiah 2 жыл бұрын
Very useful info but more for persons already familiar with the packages. Not enough mention of what they actually do, at least for newbies
@yourpotatoking
@yourpotatoking 3 жыл бұрын
You are not the only big brian in the town. I use arch linux btw.
@tumelomotsikelane
@tumelomotsikelane 3 жыл бұрын
What about using RepoDB? It is said to be a good combination of EF Core and Dapper 🤔
@nickchapsas
@nickchapsas 3 жыл бұрын
This certainly looks interesting, I wasn't aware of it. That being said it wouldn't make the list even if I did, at least not the 2021 list. A project needs to be mature, stable and widely used before it can make my "top 20 nuget packages list"
@tumelomotsikelane
@tumelomotsikelane 3 жыл бұрын
@@nickchapsas I agree. It really is less mature
@MilanDendis
@MilanDendis 3 жыл бұрын
maybe RepoDB as an alternative to Dapper, EF
@Eugene.g
@Eugene.g 3 жыл бұрын
👍
@BittermanAndy
@BittermanAndy 3 жыл бұрын
JetBrains Annotations is the obvious one missing, first package I add to just about every project I ever make. Log4NET at least worthy of mention next to Serilog too. On a separate note, can we please all agree that anything that depends on coding by convention should die in a fire? It's not discoverable, the only way to know it is to know it already, which means it's just more cruft and guff to learn before you can do anything productive. The worst fad in the last two decades.
@daa82
@daa82 2 жыл бұрын
I’d recommend Castle.Windsor
@coderider3022
@coderider3022 Жыл бұрын
Too old, I used it in an old app. Autofac is way to go
@daa82
@daa82 Жыл бұрын
@@coderider3022 seems very similar to castle Windsor. What is the difference?
@coderider3022
@coderider3022 Жыл бұрын
@@daa82 you should stick to the latest stuff not the older tech, need to keep your skills up to date and go with industry. Microsoft or autofac is what you see in projects and online. "Good" or "better" unfortunately doesnt apply in software.
@migsteele
@migsteele 3 жыл бұрын
Fluent assertions ftw
@tomaszkrupa1369
@tomaszkrupa1369 3 жыл бұрын
When it comes to creating http clients, try RestEase
@nickchapsas
@nickchapsas 3 жыл бұрын
It looks like it does the same thing that Refit does. Am I missing something? Edit: It actually does mention that it is inspired by Refit
@ericvosselmans5657
@ericvosselmans5657 2 жыл бұрын
what happend to Fody?
@PerryCodes
@PerryCodes 2 жыл бұрын
3:50 Is anyone actually seeing a link here?
@lasindunuwanga5292
@lasindunuwanga5292 3 жыл бұрын
Well i love EF It makes things super easy and save time a lot from making models
@jfpinero
@jfpinero 3 жыл бұрын
No love for Flurl instead of maybe Refit? Can't go wrong with fluent coding with stuff like await "api.com".GetAsync()
@Punkologist
@Punkologist 2 жыл бұрын
I have used a lot of these, but far too many I haven't
@wangengzheng8931
@wangengzheng8931 3 жыл бұрын
can show list in comment
@VJPaz
@VJPaz 3 жыл бұрын
Why Json.net not newtonsoft.json?
@damianrecinski7329
@damianrecinski7329 2 жыл бұрын
Isn't that the same?
@VJPaz
@VJPaz 2 жыл бұрын
@@damianrecinski7329 nope, they are different
@damianrecinski7329
@damianrecinski7329 2 жыл бұрын
@@VJPaz I don't think so. Even if you go to json.net, you are navigated to newtonsoft.json
@mwi1536
@mwi1536 3 жыл бұрын
For http clients try flurl
@nickchapsas
@nickchapsas 3 жыл бұрын
I've actually used it in production and I really quickly changed it to Refit. It's cool but i think that Refit is cooler :D
@mwi1536
@mwi1536 3 жыл бұрын
@@nickchapsas Next time i will give Refit a try
@nedbog
@nedbog 3 жыл бұрын
We use fakeiteasy, it is nice
@pioners1001
@pioners1001 2 жыл бұрын
FakeItEasy is the best! :D
@infartk
@infartk 2 жыл бұрын
automapper used by junior devs, antipattern for OOP principles.
@N.i.c.k.H
@N.i.c.k.H 3 жыл бұрын
Everywhere I go I find log4net
@adriancooke7310
@adriancooke7310 3 жыл бұрын
Respawn... Jimmy Bogard
@nickfotopoulos5323
@nickfotopoulos5323 3 жыл бұрын
READ....READ 🤭
@SylvanFeanturi
@SylvanFeanturi 3 жыл бұрын
Interesting list. Most are a safe bet for projects, too, or a good start to look for something that fit the particular use-case better. I don't think Serilog should be on the list, but that's more a personal preference than anything else. That said, thumbs down for suggesting using two ORMs at once instead of just learning SQL. That's just lazy.
@nickchapsas
@nickchapsas 3 жыл бұрын
I disagree. It’s not lazy, it’s efficient. Why would I spend time learning something in depth that I really don’t need to? It’s actually been 4 years since I used an RDBMS professionally at all but when I have to Dapper and EF give pretty much the exact same results without me having to be good at SQL. It’s an absolute win
@rahulj2167
@rahulj2167 3 жыл бұрын
thumbs down for not understanding micro orm. Dapper works on SQL queries. Even in entity framework its possible to use plain SQL queries.
@restveggie6155
@restveggie6155 3 жыл бұрын
@@rahulj2167 agree. Knowing sql is a must when it comes down to Sql optimisation. Developer needs to know execution plan more or less. Some times orm spits urgly query lowering performance, that’s when raw Sql comes in handy.
@rahulj2167
@rahulj2167 3 жыл бұрын
@@restveggie6155 Yes. My point was there is no harm in including Dapper, EF under tools for a .Net developer to get familiar with. Each has its use cases.
@cascadengineering
@cascadengineering 3 жыл бұрын
Thumbs down for not knowing that Dapper is not an ORM.
@hrchavz9694
@hrchavz9694 2 жыл бұрын
too sad when you only speak in front the camera
@GussDavey
@GussDavey 3 жыл бұрын
:-) bla bla bla
10 C# Libraries To Save You Time And Energy
33:59
IAmTimCorey
Рет қаралды 204 М.
Backstage 🤫 tutorial #elsarca #tiktok
00:13
Elsa Arca
Рет қаралды 33 МЛН
Универ. 13 лет спустя - ВСЕ СЕРИИ ПОДРЯД
9:07:11
Комедии 2023
Рет қаралды 3,1 МЛН
TRY NOT TO LAUGH 😂
00:56
Feinxy
Рет қаралды 9 МЛН
ТАМАЕВ vs ВЕНГАЛБИ. Самая Быстрая BMW M5 vs CLS 63
1:15:39
Асхаб Тамаев
Рет қаралды 2,9 МЛН
Swagger is Going Away in .NET 9!
10:48
Nick Chapsas
Рет қаралды 83 М.
Don't throw exceptions in C#. Do this instead
18:13
Nick Chapsas
Рет қаралды 249 М.
What is Span in C# and why you should be using it
15:15
Nick Chapsas
Рет қаралды 247 М.
Is LEARNING WPF still WORTH it in 2023?
10:59
tutorialsEU
Рет қаралды 38 М.
You are doing .NET logging wrong. Let's fix it
25:29
Nick Chapsas
Рет қаралды 169 М.
"Stop Using Async Await in .NET to Save Threads" | Code Cop #018
14:05
Jonathan Blow on why C++ is a bad language for games
13:45
Jonathan Blow Highlights
Рет қаралды 11 М.
8 await async mistakes that you SHOULD avoid in .NET
21:13
Nick Chapsas
Рет қаралды 308 М.
Backstage 🤫 tutorial #elsarca #tiktok
00:13
Elsa Arca
Рет қаралды 33 МЛН