gRPC Service with .NET 7

  Переглядів 33,927

Les Jackson

Les Jackson

9 місяців тому

In this video we build a gRPC service with 5 methods: Create, Read (single), List (multiple), Update and Delete. We then employ JSON transcoding (a new feature added in .NET 7) to allow our gRPC service to act as a REST based API. This allows web-based endpoints to consume our service, while at the same time continuing to allow native gRPC clients to consume as well.
🌐 Links 🌐
💾 GitHub Repo: github.com/binarythistle/S06E...
🎓 My other courses: lesjackson.net
📕 My Book: link.springer.com/book/10.100...
🤩 Patreon: / binarythistle
🌲 Linktree: linktr.ee/binarythistle
🔗 Microsoft Learning: learn.microsoft.com/en-us/asp...
🔗 DBeaver: dbeaver.io/download/
⏲️ Time Codes ⏲️
- 0:33 - Welcome
- 2:00 - gRPC Overview
- 5:08 - Scaffold the prject
- 9:58 - Test "greeter" service with Postman
- 12:32 - Add package dependencies
- 14:48 - Create the Model
- 16:38 - Create DB Context & migrations
- 22:37 - Define the protobuf file
- 32:39 - Build the first service method
- 40:55 - Test method with postman
- 42:52 - Read method
- 48:42 - List method
- 52:39 - Update method
- 59:14 - Delete method
- 1:03:24 - Add the annotation files
- 1:06:07 - Annotate the first gRPC method
- 1:09:26 - Annotate remaining methods
- 1:12:42 - Test with Postman
- 1:16;00 - Patreon supporter credits

КОМЕНТАРІ: 52
@adhamelsharkawy_79
@adhamelsharkawy_79 9 місяців тому
Welcome back Les, and thank you for your efforts
@vineetkumarsingh3155
@vineetkumarsingh3155 9 місяців тому
Great video Les, loved your content. I would have loved to see you using another c# application as client, rather than using postman. That would have completed the loop.
@highfive7281
@highfive7281 6 місяців тому
I love how you make advanced topics seem easy plus I love your accent.
@ViV.PakPak
@ViV.PakPak Місяць тому
깊이있고 아름다운 강좌, 함께할 수있어서 기쁘게 생각합니다. 오랜만에 찾아뵈었군요.. 늘 감성있는 목소리에서 전달하시려는 내용이 잘받아들여집니다. 다시한번 좋은 강좌에 감사드리며, 늘 건강하시고, 행복과 함께 일상에 늘 행운이 가득하시길 바랍니다. 감사합니다.
@kunalkslvlogs2823
@kunalkslvlogs2823 9 місяців тому
I love your content and regularly watching your videos
@eugene-dmitrievich
@eugene-dmitrievich 5 місяців тому
Thank you so much for this video! Interesting explanation of gRPC, Protobuf, .NET, JSON transcoding
@mohammadramezani1233
@mohammadramezani1233 9 місяців тому
Welcom back les can we use grpc in angular in dotnet7?
@ucretsiztakipci6612
@ucretsiztakipci6612 9 місяців тому
Excellent content as always.
@user-wj8lx2ws8y
@user-wj8lx2ws8y 9 місяців тому
Awesome explanation... Thank you Les 👏👏👏
@CrazyPilot333
@CrazyPilot333 9 місяців тому
Thanks for the lesson!
@iJEca
@iJEca 9 місяців тому
You are fantastic!!!! Thank you for your effort for us
@adrianoverbury4949
@adrianoverbury4949 9 місяців тому
Love this video. I've had an eye on gRPC for some time now, so it's great to see how easy an implementation could be. The note about using mapping frameworks like AutoMapper brought me back to old debates on my team. We have a number of large and relatively complex objects in our services with a lot of attached metadata, and we used to use AutoMapper to handle the mapping so we didn't need to write these large mappers by hand. We eventually moved away from those to manual mappers for a couple of reasons: trying to debug errors in AutoMapper was way harder than it needed to be, so when something went wrong the reasons why were hidden away and not easily discernible from the stack trace, and also because they were several times more performant than AutoMapper. Would love to know your thoughts on that
@kevinison3740
@kevinison3740 Місяць тому
Excellent video, thank you Les!
@morgadoapi4431
@morgadoapi4431 9 місяців тому
Thanks for the content!
@conradtaylor29
@conradtaylor29 9 місяців тому
Hey Les, this was absolutely fantastic and I learned a ton. I wasn't able to get .Net 7 to work for me because HTTP/2 isn't fully supported on macOS. However, I was able to use .Net 8 Preview on macOS because HTTP/2 is fully supported. Thus, I was able to code along without changes. The JSON transcoding is super awesome and it was very easy to setup. I'll definitely be leveraging this in my projects. Bravo!!!! 🙌🏾👏🏾👍🏾🔥
@zombieYello
@zombieYello 9 місяців тому
Another great video! thank you Les
@hgedek
@hgedek 8 місяців тому
Thanks for this great tutorial
@cheeseburger1884
@cheeseburger1884 9 місяців тому
Epic!
@smrsgv
@smrsgv 8 місяців тому
very cool Les! thanks!
@yigitbozkurt1965
@yigitbozkurt1965 9 місяців тому
extraordinary!!!
@elan311X
@elan311X Місяць тому
Timeless 💯
@The-Z-Zone
@The-Z-Zone 7 місяців тому
Great video. Any pointers on how authentication/authorization would work using GRPC in combination with the REST endpoints?
@HaoNguyen-km9xj
@HaoNguyen-km9xj 9 місяців тому
Nice, long time to see a new video.
@VuvaToniKroos
@VuvaToniKroos 9 місяців тому
Love this video, Les
@parko1965
@parko1965 9 місяців тому
Spot on Les, another little nugget.
@freelancerweb813
@freelancerweb813 8 місяців тому
thank u so much Sir, I think your channel the best for learn
@kennedymungai
@kennedymungai 9 місяців тому
You are god sent
@rufetaliyev9850
@rufetaliyev9850 9 місяців тому
Thanks for this video. Can you explain how to use kafka in microservice like a pro?
@matteobarbieri2989
@matteobarbieri2989 8 місяців тому
Great video, thanks. I just have two questions: 1) at minute 42 you do a null check with "!=" operator. Is it not better using "is" keyword ? 2) why do you write time code in the video description? Is it more time consuming splitting the video in chapters?
@avanthasiriwardana
@avanthasiriwardana 7 місяців тому
If Les, no comments. Always good stuffs, Thanks Mate
@stevenpotter9555
@stevenpotter9555 5 місяців тому
Hi Les, this is the first of your videos that I've watched and I have to say that it is very well done. I was able to follow along and build a functioning gRPC service with JSON transcoding and a working OpenAPI\swagger definition. This is great and as a WCF developer I can see this being a viable migration path. My only problem is that I just can't seem to understand the self-hosting as windows service concept. I can do this with WCF configuring my endpoints, timeouts, logging etc. But I just don't see any thorough instructions on how to do this similarly with gRPC it's glossed over in the documentation and not even touched in any of my books. Any chance you could do a walk through on the various hosting methods, exclusively detailing the self-hosting model? Thanks...
@philippelombaers
@philippelombaers 8 місяців тому
Let's say I've a BrokenRule type that I want to reuse in multiple gRPC projects/solutions. Can I include my BrokenRule proto file and generated code into a Nuget assembly and make it available to other services ? Will I be able to include the type into another proto file without regenerating the code ? Thanks for your help
@gerahambe1
@gerahambe1 3 місяці тому
thank you so much
@gilpel77
@gilpel77 4 місяці тому
Amazing content as usual Les, thank you. I am wondering for which particular use you would go for gRPC communication rather than REST. In my case, i have a bunch of computational microservices that need to communicate frequently and intensively together (1k-1Mb) and other microservices, more high level, that do not generate such heavy traffic and which are the ones that really require a UI to interact with. Do you think it would be a good idea to go for gRPC for the intensive ones and REST for the UI orientes onea. Or just gRPC for everyone and the jsonTrancoding layer for the higher level servicesthat will need webapp client to be plugged in for user interaction?
@chuonchuon7386
@chuonchuon7386 2 місяці тому
Thank you
@girlygamer3102
@girlygamer3102 4 місяці тому
Thank you Les for the fantastic tutorial and hard work for us as always. We can use gRPC service directly with Windows Forms/WPF applications and even with .NET MAUI app. I have a question - does JSON transcoding put some overhead while deserializing the JSON request to the Protobuf message or we gain the same performance benefit associated with using it without transcoding? Your help/guidance will really be very helpful
@saminathan2577
@saminathan2577 9 місяців тому
bro dotnet core mvc application in aws ec2 instance how to depoy
@mostafaelnady4368
@mostafaelnady4368 6 місяців тому
amazing
@parthgupta6789
@parthgupta6789 3 місяці тому
How your terminal give suggestion for adding the packages?
@aliwa91
@aliwa91 2 місяці тому
Welcome back
@rilwanoshinkoya5782
@rilwanoshinkoya5782 9 місяців тому
Nice one Les. Please can you add a tutorial on how to consume the grpc in code ?
@habeebafolabi7292
@habeebafolabi7292 9 місяців тому
In code you mean your frontend project? If yes, HTTP transcoding has made it easier since you can call a gRPC service like a REST endpoint.
@shababarshad8688
@shababarshad8688 3 місяці тому
hi @jackson how we can set arguments in request which are class or custom objects kindly tell if there is any solution
@charlescasmir8098
@charlescasmir8098 25 днів тому
Bro, can one connect an MVC to a gRPC server?
@yigitbozkurt1965
@yigitbozkurt1965 6 місяців тому
we're waiting for the new videos...
@tesszheng4586
@tesszheng4586 8 місяців тому
Thanks for the nice video, was just wondering why in every method of ToDoService, you are returning await Task.FromResult(object), looks like we can directly return the object
@derking
@derking 8 місяців тому
Yes do that instead, indeed very bad what he has shown there.
@ralphmaasgmailcom
@ralphmaasgmailcom 9 місяців тому
Hello Les Thanks for the video very helpful I was looking for this solution for a while. After I created the proto-file and built the application I noticed I made a mistake in ListToDo procedure "ListToDo(GetAllRequests) returns (GetAllResponse)" I fixed the error ""ListToDo(GetAllResponse) returns (GetAllRequests)" but no matter what I tried the implementation of the service gave every time the override wat not matching, I tried everything obj and bin folder deleted but couldn't fix it except recreate the whole project. Do you perhaps have a tip to fix an error in the proto file so that it also matches with the relevant server.
Publisher Subscriber Pattern - Build your own .NET Message Broker
1:46:34
Where should you use gRPC? And where NOT to use it!
10:57
CodeOpinion
Переглядів 74 тис.
格斗裁判暴力执法!#fighting #shorts
00:15
武林之巅
Переглядів 7 млн
Intro to gRPC in C# - How To Get Started,
1:04:00
IAmTimCorey
Переглядів 225 тис.
Creating .Net Core Microservices using Clean Architecture
26:02
Rahul Sahay
Переглядів 13 тис.
.NET gRPC - deep dive - Irina Scurtu - NDC Oslo 2023
59:24
NDC Conferences
Переглядів 6 тис.
.NET Core 3.1 MVC REST API - Full Course
3:27:48
Les Jackson
Переглядів 952 тис.
Build an API Gateway with Envoy and use with .NET Core APIs
1:51:27
Les Jackson
Переглядів 77 тис.
tRPC, gRPC, GraphQL or REST: when to use what?
10:46
Software Developer Diaries
Переглядів 64 тис.