The Repository Pattern explained for EVERYONE (with Code Examples) 🚀

Sdílet
Vložit
  • čas přidán 4. 06. 2024
  • 🚀 Join the .NET Web Academy: www.dotnetwebacademy.com
    ➡️ Use code START2024 for 10% off!
    💖 Support me on Patreon: / _patrickgod
    🚀 Get the .NET 8 Web Dev Jump-Start Course for FREE: dotnet8.patrickgod.com
    🐦 Let's get social on Twitter/X: / _patrickgod
    🔗 Let's connect on LinkedIn: / patrickgod
    🚀 .NET Jumpstart Course: www.udemy.com/course/net-core...
    💻 GitHub: github.com/patrickgod/Reposit...
    🔥 Blazor E-Commerce Course: www.udemy.com/course/blazor-e...
    🔥 Blazor Bootcamp: www.udemy.com/course/blazor-w...
    Table of Contents:
    00:00 The Repository Pattern explained for EVERYONE 🚀
    00:23 Repository Pattern Definitions
    02:47 Code Example with a .NET 7 Web API in C#
    04:29 Build a Repository
    06:37 Inject the Repository in the Controller
    08:19 Register the Repository/Service
    10:10 One More Beauty of Dependency Injection & the Repository Pattern
    🙏MANY THANKS TO THESE LOVELY PEOPLE:
    Nathan Waterman
    Rakesh Bridgraj
    Joaquim
    Ralf Kürbitz
    @jacoviza
    Thomas McMeekin
    Ameet Jayawant
    JesperNielsen
    Paul
    @Alaffer
    Alvin Majid
    Slava Ukrayini
    Piotr Franczak
    Jan Trichter
    Tom
    H. Ali
    Ashley Gahl
    Daniel Viveros
    Mehmet Ali Ege
    Winther
    harry j
    @Alaffer
    Sam Catlow
    Jim
    Brian Williams
    Gonzo
    Jonas
    Ariel Sartor
    Andy Benson
    @stevelikespies
    Raphael Lukas
    James Goforth
    @williamdevine
    Doug Nelson
    Arif Hasanov
    @kohji1712
    @dlb78dlb
    Thomas Korsgaard
    FastTrak
    Jeff Sager
    Dan Moyer
    AlgoMarket
    Mennskr
    Simon
    Michael Mel
    Hermann Rösch
    Jim McNeal
    Kieron
    @mgrainger231
    Gerrit Esmeijer
    Axel
    Kareem Skinner
    Joaquim
    Alain Legrand
    Per Rieland
    @prodrigu75
    Greg
    Brendan Maunder
    Stageoner
    Andrew Campbell
    pascalditzfeld
    PovilasSimanskas
    jenö
    Marco Otilli
    Mark
    l33ter
    alibux
    g.dassel
    Luke Vincent
    mrcl
    Alain Legrand
    Thomas Werner
    István Csibor
    Grant Burdon
    @gianluigiconti
    Gerrit Esmeijer
    Illia
    Németh-Pók István
    Michael Mel
    Marko Zdilar
    GerryB
    @DADA_universe
    Domen Hren
    @heroesch
    Carey
    Peter De Tender
    Baris Keskin
    @Big_Bear_27390
    Mathias
    walter e watkins
    Günther Dassel
    Axel
    Josh
    Daniel Huber
    Fredric Adell
    Juan Carlos
    Manolis
    Pajani
    P.
    Jonas Granlund
    Bobby
    Kristina
    @xamarin007
    #DotNet #RepositoryPattern #PatrickGod

Komentáře • 54

  • @PatrickGod
    @PatrickGod  Před 9 měsíci

    🚀 Join the .NET Web Academy with a 30% discount - closing soon!
    👉 www.dotnetwebacademy.com/courses/academy?coupon=dnwas23yt

  • @VictorPraizTech
    @VictorPraizTech Před rokem +40

    I came here for the understanding of repository pattern but left with a full understanding of dependency injection. 😅 something I’ve been struggling to understand for weeks. Thanks man.

  • @Apfelloch
    @Apfelloch Před rokem +6

    Came for a Repo Pattern explanation, stayed for the Dependency Injection explanation. I've watched several videos but it was yours that finally made it 'click' for me. Great example - not too abstract (as those "DI explained in n minutes videos) but also not too complex for beginners like me.

  • @knightmarerip711
    @knightmarerip711 Před 10 měsíci +1

    I like how this was explained without using EF, Dapper, etc... just focused on the design pattern. Very well explained!

  • @38911bytefree
    @38911bytefree Před rokem +1

    Thanks Patrick. I have been trying to learn this yesterday and this vid really clarified some points.I have been following several of you vids, Love the way you exlplain in such a peaceful way. Thanks Sir.

  • @seva2814
    @seva2814 Před 10 měsíci +5

    Thats actually not a Repository Pattern, that isolates the database connection but a service layer

    • @theonlycaulfield
      @theonlycaulfield Před 8 měsíci +1

      Yes, I am confused on how this is the top result for my query on ".net repository". A repository pattern separates the db connection from the logic in the service layer. This video represents the repository pattern as if it is the thing that the repository pattern is intended to prevent.

  • @HedgarBezerra
    @HedgarBezerra Před rokem +1

    I really like this pattern along with some more abstraction, in manner that we code a abstract class with generic parameter(class) with all data access functions, this could be reused for all entities around the application.

  • @manuelgamezz
    @manuelgamezz Před rokem +2

    Thanks Patrik, good example.

  • @qemajlosmani
    @qemajlosmani Před 9 měsíci

    Gut gemacht. Simple and very well put example. I always structure the code and pattern design like this.
    When you have too many services, be careful. Injecting services into each other in a circular manner can lead to runtime errors like stack overflow or infinite loops. It's best to avoid such circular dependencies and design your services in a more decoupled way to ensure proper functioning and maintainability. Otherwise, best way to go 👏🏼

  • @Bhupin
    @Bhupin Před 9 měsíci +1

    Thank you so much for this...I came to learn Repository Pattern but learned Dependency Injection..I wish I could tell you how much i struggled trying to grasp the concept of Dependency Injection..You have a new subscriber sir!!

    • @PatrickGod
      @PatrickGod  Před 9 měsíci

      Wonderful! Thank you so much!

  • @sthreetorch
    @sthreetorch Před 10 měsíci

    Point by point. Very well explained! Thanks a lot Man (Additional Subscriber)

  • @andrewsotnikov5680
    @andrewsotnikov5680 Před rokem

    Good example, it also touches the basics of DI

  • @kwstaslalaounis3212
    @kwstaslalaounis3212 Před rokem

    Thank you very much!!!

  • @jannickbreunis
    @jannickbreunis Před rokem

    I am studying how to create multiple data acces classes to prevent having one enormous data acces class. I found the Service Pattern and Repository Pattern. I guess with creating an interface, you combine the two? Good video and nice combination of also showing the depency injection.

  • @noahg2
    @noahg2 Před rokem

    explained in the best possible manner, thank you very much.

  • @Toughmenchannel
    @Toughmenchannel Před rokem

    Great Video. Thanks a lot!

  • @marcioalexandremarcondes557
    @marcioalexandremarcondes557 Před 7 měsíci

    Tks!

  • @kiransai7616
    @kiransai7616 Před rokem

    Good work sir 👍 , on your next vlog please explain us how to work on multi tenant architecture with identity.
    for example: if the client is registering he will have master data base and, he will add some worker's below him they have their own separate database.

  • @thepatrickandlunashow
    @thepatrickandlunashow Před rokem +1

    Great video! Kristina recommended your podcasts- I am on board!

  • @daydrivver2074
    @daydrivver2074 Před rokem +1

    Thank you, i know you just don't do the content for me (asked in a one of your videos about this) but many thank you I hope someday I can pay you back, right now I lost my job due to current environment so many thanks for the content.

  • @10Totti
    @10Totti Před rokem +2

    Many thanks!

  • @joaogabrielv.m328
    @joaogabrielv.m328 Před rokem +2

    Keep up, Patrick! You are a real God, man :D

  • @adamm9706
    @adamm9706 Před rokem +1

    Have you done the Factory Pattern? If not that would make for a great video as well

  • @byte7930
    @byte7930 Před rokem +3

    1. This looks exactly like your Udemy course I took a while ago. So I'm happy, that I'm already using it like this approach.
    2. What game cardridge is inserted into your SNES? 😀

    • @PatrickGod
      @PatrickGod  Před rokem +1

      1. Thank you so much for enrolling! 😊
      2. The Legend of Zelda: A Link to the Past 🎮 Awesome you noticed!😁

  • @jd-chnl
    @jd-chnl Před rokem

    Thank you for explaining! One thing I would like to comment is that your controller in the example works just like a wrapper and adds no any functionality, so I think there is no really need to implement repository here.

  • @kurisutinahiyajosafinaillu6595
    @kurisutinahiyajosafinaillu6595 Před 11 měsíci +1

    I have a question about registering the repository and service, if i have multiple interfaces and classes in a same folder, how can i register them quickly without having to write multiple builder.Services.AddScoped like this example:
    builder.Services.AddScoped()
    builder.Services.AddScoped()
    ...
    builder.Services.AddScoped()

  • @normanaranez323
    @normanaranez323 Před rokem +1

    Do you have any idea how to build multi-tenant architecture that has shared code base and a lot of database?

  • @StevenWong1995
    @StevenWong1995 Před 7 měsíci

    Say if I have multiple interfaces and classes to be registered in the Program.cs, is there any way that I can do it with a smarter way instead of registering them one by one?

  • @tanujavalluru9195
    @tanujavalluru9195 Před rokem

    thankyou

  • @AthelstanEngland
    @AthelstanEngland Před 6 měsíci

    Thanks for this. Never really understood what bit the 'repository' was... now you say it is pretty much the service (I use same term) it makes more sense. One question if I may. Working on my first app of this type (OpenAPI) and it seems you do have to register every single interface in program.cs (using .NET 7) which seems a lot of overhead to me?

  • @salmanahmedkhan3979
    @salmanahmedkhan3979 Před rokem +1

    great. subscribed.

  • @samiullah0011
    @samiullah0011 Před rokem

    If have 50+ controllers and services should i need to inject every class(addscoped etc) into main class?

  • @QartveliMamakaci2000
    @QartveliMamakaci2000 Před měsícem

    Unknowingly explained Dependency Injection too lol.

  • @Gabrieldvg1
    @Gabrieldvg1 Před 11 měsíci

    Good video, but what is a service exactly in this context? I've seen it used in a few places but I still don't know what it is referred to :/

  • @phuongtran-qh5kq
    @phuongtran-qh5kq Před rokem

    Sir, i have 1 question. What about dbcontext and dbset. For example: dbset User. Should i create a repository of user and inject that user db?

  • @babarmughal8891
    @babarmughal8891 Před 10 měsíci

    Best

  • @vintagewander
    @vintagewander Před rokem +1

    You deserve more subscribers

    • @PatrickGod
      @PatrickGod  Před rokem

      Thank you so much! I appreciate that. 😊

  • @vdotrailers
    @vdotrailers Před 11 měsíci

    what is Full repository analysis in AWS site and what does it do? can someone explain pls....is this the place where i can find my app source code in AWS?

  • @gabrielmessias5072
    @gabrielmessias5072 Před rokem

    Hello, I love your videos. I have a request because it still causes me a lot of doubt, could you make a video about websocket?

  • @arunkumarsingh8754
    @arunkumarsingh8754 Před rokem

    Love from 🇮🇳 ❤

  • @Faygris
    @Faygris Před rokem

    So, when using services like this, I've secretly been using the repository pattern all along? 🤯

    • @theonlycaulfield
      @theonlycaulfield Před 8 měsíci +2

      No, this video perplexingly does not describe a repository pattern, as repositories are supposed to separate the db connection from the logic layer that is in the services/service layer. The author seems to be confused on this point when saying that he and others call the repository layer services. What he is doing is simply creating a service layer with the logic and db connection combined, which is what the repository pattern was created to prevent. The repo pattern is a common practice in enterprise software in the US, with both java spring and c# .net, where the intention is to isolate the db connection away from the service layer.

  • @yannid5456
    @yannid5456 Před 5 měsíci

    This explanation is a bit not so correct. Services and Repository are two different patterns that perform different tasks. We use service to store the business logic such conditions and data manipulations.The repository pattern is used for data operations such as database CRUD operations

  • @mykhailo-kmet
    @mykhailo-kmet Před 9 měsíci +1

    It is not a good explanation of Repository pattern. Repository pattern is for manipulating data as if it a collection. So any repository should have methods for adding, removing and getting data. Otherwise it is just data accessor service

  • @wilfredkane7569
    @wilfredkane7569 Před rokem

    𝘱𝘳𝘰𝘮𝘰𝘴𝘮