Intro to gRPC in C# - How To Get Started,

Поділитися
Вставка
  • Опубліковано 27 сер 2024

КОМЕНТАРІ • 544

  • @SurroundingDarkness7
    @SurroundingDarkness7 3 місяці тому +5

    4 years later and still helpful... Thank you Tim, very much appreciated!

  • @ahmedm_seada
    @ahmedm_seada 4 роки тому +24

    Usually i don't watch long videos but after this i found that i'm missing a lot info in short videos. Thanks A lot 🌺🌺

  • @ritfloyd
    @ritfloyd 3 роки тому +15

    I remember 15 years ago WCF and SOAP was the next big thing and at some point around 2012 REST was considered "the way" to get around all the complexity (which in many ways it did) and now we are back to where we started with gRPC. This is nuts. Nice course though... I do learn a lot from your courses and appreciate the effort.

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +9

      Well, REST is still a thing and gRPC won't replace it (I don't think) because of how simple it is. gRPC, though, will definitely be a major player for a while yet, since it is so fast and versatile. The biggest thing going for it, though, is the fact that it is an industry standard instead of a Microsoft-specific product.

  • @whoiam6395
    @whoiam6395 4 роки тому +12

    Your skill to explain the theme is so good! Thank you! And I am not a native English speaker.

  • @phienle3411
    @phienle3411 3 роки тому +1

    I don't how to get started with gRPC until I see this video. Highly appreciate your effort, sir.

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      I am glad it was so helpful.

  • @Linkario86
    @Linkario86 4 роки тому +5

    I made another Tutorial before (where I had to read off the website) and it was a whole lot more complicated. It didn't really start from scratch anyways and never said anything about rebuilding. Instead there was a .bat file you had to run, which didn't really do the job.
    Anyway I braced myself and looked for a video tutorial. That usualy does it better for me anyways. Thinking it's gonna be complicated, and the Tutorial will take 1h raw video material, I was pretty surprised when I had a "Hello Linkario" coming back at me after about 28 Minutes.
    Thanks a lot, great tutorial and very well explained

  • @maxr1112
    @maxr1112 3 роки тому +2

    thx Corey, you really helped us out a lot in getting to understand gRPC since for students it's not the most ez task to fullfill. Hope you stay as amazing as you are,
    Greetings Max

  • @RalfsBalodis
    @RalfsBalodis 3 роки тому +9

    0:00 - Intro
    2:31 - Creating Demo gRPC app
    4:13 - gRPC app template overview
    17:48 - Creating gRPC Client console app
    28:59 - Custom gRPC Service
    45:23 - Updating gRPC Service: streaming multiple data sets to client
    58:26 - When to use gRPC, summary and concluding remarks

  • @giovannasantosmoreira5551
    @giovannasantosmoreira5551 2 роки тому +1

    Really, you're the best teacher!

  • @emchammer1815
    @emchammer1815 4 роки тому +4

    Needed to learn GRPC for a project at work. Nice tutorial! Thanks.

  • @ramakrishnapujari3758
    @ramakrishnapujari3758 3 роки тому +1

    Very well explained. Easy to understand. Thanks

  • @liorocker1
    @liorocker1 4 роки тому +1

    I barely known about this new technology because of some .NET Conferences, but now it is more clear to me to understand what is it all about, thank you Tim.

  • @MintoIssac
    @MintoIssac 2 роки тому +1

    Wow, great video! I'm gonna share this with my team.

  • @torrvic1156
    @torrvic1156 9 місяців тому +1

    Thank you so much for your awesome explanations of a very complicated topic, Mr. Corey!

  • @RobReynolds
    @RobReynolds 3 роки тому +2

    Tim, at 16 minutes you explained the thing that's been battering my brain for 3 days. Talk about obtuse.
    Thanks for the video. Very helpful

  • @DonovanBrown
    @DonovanBrown 3 роки тому +1

    This was fantastic!

  • @azurtle
    @azurtle 7 місяців тому

    Love the thorough and paced explanations! Very beginner friendly!

  • @blachshma
    @blachshma 3 роки тому +1

    We need a Thank You Tim Corey T-shirt.

  • @mukundhareddy3034
    @mukundhareddy3034 Рік тому +1

    Hi Tim, Wonderful way of explaining things and really worth content.

  • @sahawndada
    @sahawndada 2 роки тому +1

    Your a legend Tim!

  • @imtiajahammad3586
    @imtiajahammad3586 3 роки тому

    Great tutorial for beginning. thanks a lot.
    Specially appreciate the last part where you talk about when you should use GRPC, because I hear a lot from people to replace API with GRPC with no solid reason

  • @AzamKhanUsafZai
    @AzamKhanUsafZai 3 роки тому +3

    Awesome tutorial, straight to code and good info along the way. Next thing would be find some good design patterns around gRPC that can help convert a large WCF service.

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +2

      I will add it to the list. Thanks for the suggestion.

  • @NdamuleloNemakh
    @NdamuleloNemakh 3 роки тому

    In Tim Corey we trust!

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      God is a better to focus on and trust. I promise.

  • @LeeJeeShen
    @LeeJeeShen 3 роки тому +1

    Good stuff. Looking forward to see how grpc support dev documentation like openAPI

  • @alexanderspiegel6747
    @alexanderspiegel6747 3 роки тому +1

    Thanks Tim. As always it is clear and nice presentation. GRPC reminds me WCF somehow. I think it is nice for mircoservices architecture. Because the communication should be as fast as possible and probably closed for connections from outside of the solution. Another point is streaming. It reminds me a short time subscription. Let’s assume we have a client which should receive some messages from a server. So it should establish a connection to server 1st and then some notifications keep arriving till a client keeps connection open. I think it can be useful feature. Thanks again Tim.

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому

      Yep, it has similar characteristics of WCF.

    • @alexanderspiegel6747
      @alexanderspiegel6747 3 роки тому +1

      @@IAmTimCorey what do you think about notifications? Is it good idea to use gRPC to inform a client based on events happened on server side ?

  • @georgekerwood9100
    @georgekerwood9100 2 роки тому

    Great video, thanks, Tim! Any new C# related technology I'm exploring I now search your videos before even googling!
    I'm exploring gRPC for local IPC which I think is an exciting and appropriate application.

    • @IAmTimCorey
      @IAmTimCorey  2 роки тому +1

      I am glad my content is so helpful.

  • @doublef7728
    @doublef7728 3 роки тому

    Here you are where HOW TO GET STARTED has it's meaning.. great thanks.

  • @chefmarv6499
    @chefmarv6499 4 роки тому +1

    I like the fact you don't (and shouldn't) need to aggregate a huge amount of data on the server side if you want to return it. Just loop on each record and return them as you enumerate them.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      Yep, that can be pretty powerful.

    • @MrDimonsky
      @MrDimonsky Рік тому

      @@IAmTimCorey But sooner or later the streaming server has to say "its all, I am done with the data stream". And point is, THIS client is blocked (cannot send anything else) until the "end" flag comes from the server. You haven't mention this in the video. Or you mean, that the exit from the sending function on a server side automatically closes the stream?

    • @larrysafran2996
      @larrysafran2996 Рік тому

      @@MrDimonsky Yes, the sending function needs to call onComplete() when it is done with the data which initiates a half-close for the stream.

  • @asdasddas100
    @asdasddas100 4 роки тому +8

    Wow, I didn't even know this existed. Thanks

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      You’re welcome.

    • @georgepagotelis
      @georgepagotelis 3 роки тому

      Projects/people started using it, I went to an interview and I said I've heard of it. A gen Y, generously put a "1" next to my knowledge. I might get a 2+ now!

  • @chillbro2275
    @chillbro2275 4 роки тому +8

    I haven't seen the word "Marshaller" since i was reading a COM+ book.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      It isn’t something you use a lot, for sure.

  • @hiteshKrawal
    @hiteshKrawal 2 роки тому

    Exactly what I was looking for

  • @tommyoman5309
    @tommyoman5309 3 роки тому

    Thanks Tim! This was really helpful, i now know what the other guys are talking about for the future of our application.

  • @balora
    @balora 4 роки тому +1

    Really interesting. Contract based and performant.

  • @Laggie74
    @Laggie74 4 роки тому +23

    Seems like every decade or so, there's a "latest and greatest" way to do rpc. What happened to SOAP and WSDL? I'm getting too old for this. Lol.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +5

      lol

    • @bjarnenilsson80
      @bjarnenilsson80 4 роки тому +5

      The book and workshop selers had sold all they where able to sell :)

    • @SmartK8
      @SmartK8 4 роки тому

      It's madness. I swear Microsoft is devolving.

    • @yegorandrosov6334
      @yegorandrosov6334 4 роки тому

      And blazor is just fancy asp.net webforms with server side handlers

    • @SoundGenerationBand
      @SoundGenerationBand 3 роки тому

      gRPC is a potential replacement for SOAP.

  • @RamblinggeekUk
    @RamblinggeekUk 4 роки тому

    I watched this and built the sample along side you because the Anki Vector Robot uses gPRC and I wanted to get a better understanding. Thanks!

  • @i.paradox
    @i.paradox 2 роки тому

    TIM Thanks once again for this beautiful explanation.

  • @MikeTwohey
    @MikeTwohey 3 роки тому +1

    I will be using this in a stand alone server service. I will accept calls from my client to perform batch work which runs separately from the client computers. I don't want to rely on IIS or I would use WebAPI.

  • @darkmoon1392
    @darkmoon1392 2 роки тому +1

    Hello Tim.
    Thanks for the great courses.
    Can you make a tutorial for SignalR?
    Sometimes it is really needed.

    • @IAmTimCorey
      @IAmTimCorey  2 роки тому

      Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/

  • @Fasiibcs
    @Fasiibcs 4 роки тому

    Again another good explanation for which I was looking for.

  • @cavalsilva
    @cavalsilva 3 роки тому

    Hello Tim, Great video! I will share with my squad. Thanks.

  • @jakubsuchybio
    @jakubsuchybio 4 роки тому +1

    Nice intro! I was on the verge of trying to port our WCF comm at work to gRPC, but after seeing your vid. I think it won't be that easy as I thought. We are using bi-directional channels for notifications and also file streaming with continuation (when communication drops and whole call timeouts, it can continues with the next call where it left off).

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      I'm glad it was valuable to you, even if it showed you that you have more work to do. There is a possible port of WCF to .NET Core in the works. That might be a better option (but it is a ways off from production-ready).

  • @francoiscrespin1677
    @francoiscrespin1677 4 роки тому +2

    Great work man, thanks for your tutorials!

  • @azrinsani
    @azrinsani 3 роки тому +3

    66K and going hard! GRPC... you killed my beloved WCF!!

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +5

      Well, the move to .NET Core is what killed WCF (Microsoft didn't see the value in porting it). The good news is that Microsoft turned over the source code for WCF to the community so that it can be ported by those who still want to use it. Hopefully you gain back WCF at some point.

    • @azrinsani
      @azrinsani 3 роки тому +4

      @@IAmTimCorey Wow, a reply from Mr Tim himself. I am honored! But anyway, only WCF Client is open source. The WCF Server, Servicehost and even WCF Web is not. For guys who build their entire stack with WCF, it's not only a hard migration, but doesn't make sense from a business point of view too.

  • @FloetschMaster
    @FloetschMaster 3 роки тому

    as always well explained well gone thru, i know now much more than before

  • @pasdilhan
    @pasdilhan 2 роки тому

    Great tutorial, Thanks Tim

  • @sergeyltk
    @sergeyltk 4 роки тому +1

    Very good tutorial style.. Enjoyed it.

  • @MayankGupta303
    @MayankGupta303 2 роки тому

    Thanks for this great introductory video... Appreciated

  • @user2kffs
    @user2kffs 3 роки тому

    Thanks a lot, it saved my work today.

  • @NirmalKumarLanka
    @NirmalKumarLanka Місяць тому

    Thanks Tim, very kind!

  • @iandalrymple7255
    @iandalrymple7255 Рік тому +1

    This was a great video as always. Anyone know of any gRPC tutorials specifically covering authentication techniques?

  • @Jalalx
    @Jalalx 4 роки тому

    From the beginning I had this idea that this should be the right tool for microservice communications.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      It depends on the situation but this is a nice option. Queues are another great option if you don’t need real-time data.

  • @ExLR8Reign
    @ExLR8Reign 3 роки тому

    Thanks Tim! It's very well structured and a great quick start tutorial :)

  • @robbransby8339
    @robbransby8339 4 роки тому +1

    Thanks Tim this was really good.

  • @PhuNguyen-bi7pi
    @PhuNguyen-bi7pi 4 роки тому

    superb content. Thanks for the intro to Grpc.

  • @ibrahimnada4702
    @ibrahimnada4702 3 роки тому

    your videos are gold

  • @lychanhdaric7933
    @lychanhdaric7933 3 роки тому

    Amazing, Good Job Corey!

  • @davestorm6718
    @davestorm6718 3 роки тому

    A good use for this would be SCADA where equipment that needs to be monitored can run a tiny gRPC server in it's own ARM system (like IOT devices, but for industrial control). I wish we had this 30 years ago. This is cool - I'm going to surf for some Arduino projects to see if any use gRPC ;) *** update- yes there are quite a few Arduino gRPC server projects/libraries. This will be fun! ***

  • @Andaramis
    @Andaramis 2 роки тому

    Thanks! (Dolar tax down here in Brazil are very high for us at this moment)

  • @algorithm-artisan
    @algorithm-artisan 4 роки тому

    gRPC for microservices built in Node js works really well!

  • @r1ckhunt3r
    @r1ckhunt3r 3 роки тому

    Thanks Tim. This was a great video!

  • @ButchCassidyAndSundanceKid
    @ButchCassidyAndSundanceKid 2 роки тому

    Fantastic video. I have learned alot.

  • @srieen100
    @srieen100 4 роки тому

    Great video. Good start. Keep rocking.

  • @JerrodVolzka
    @JerrodVolzka 3 роки тому

    He said: "well that's just awesome' and I spit up my pop. I have been there so many times. LOL!

  • @greatmaker957
    @greatmaker957 Рік тому

    Hey Tim great video. Easy to understand. I watched it to the end, but I have one major complaint: you saved the “when would you use this” for the very end, which I felt was a bad move because essentially you said “you wouldn’t”. Kind of a huge let down.

    • @IAmTimCorey
      @IAmTimCorey  Рік тому +2

      I understand what you are saying, but I think you missed what I said at the end. I didn't say you wouldn't use gRPC. I said you wouldn't use it often. There's a big difference. I said that it is a great tool to have in your toolbox. I also said that gRPC is valuable when you need speed or when you need to stream data.
      The reason I saved the "when would you use this" until the end is because that section relies on you understanding what gRPC is in order to understand the points I was making. Otherwise, you might just ignore the technology because you mistakenly thought I said it wasn't useful. Then when a situation comes up where it would be a perfect fit, you won't know to use it.

  • @dand4485
    @dand4485 3 роки тому

    Nice course, one small suggestion unless you see an obvious no-no... When adding the proto file to the client, might suggest a little alternative. Create the folder as suggested in the video, but now use "Add Existing" to the "Clients\Protos" folder. Now navigate to the "ClientDemo\Proto" folder in the Demo project, you'll need to change the filespec in the add item dialog to all files i.e. "*.*" now select the greet.proto files but now the catch... On the Add button you'll see a chevron click on it NOT "Add", now use "Add Link". Now we only have one copy and the client will be updated and you only need to worry about one copy of the proto file being defined and it should alwa

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому

      Yes, if I were creating this for production use, I would make sure that my proto files were shared so that I don't have to update them both when a change gets made. However, I was trying to simulate what you would do when you don't control the client or the server.

    • @abd.alharbi
      @abd.alharbi Рік тому +1

      @@IAmTimCorey Does it make sense to create a class library project that's being referenced in both the server and the client projects and put the proto files there? If not, what could go wrong?

  • @skanyer
    @skanyer 4 роки тому +1

    I spent a lot of time implementing gRPC in a program, and I think I'll be scraping it. There are many things I don't like. It's too difficult to keep everything in sync. There are no tools to convert classes to proto files, which is a problem if you have a lot of classes. Solely using classes from a class library that you may not control doesn't make that any easier. It's cumbersome to map properties of an instantiated class to that of a proto. And perhaps the biggest issue of all, proto3 does not support null properties. Properties which are null get a default value. I'm glad that I learned a new thing, but I don't think I'll ever use it.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      Unless you really need the streaming or the extra bit of speed, it sounds like an API might be a better solution for you.

  • @punitgharat1450
    @punitgharat1450 3 роки тому +2

    Can you make a video about how we can maintain versions in gRPC?

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +2

      Added to the suggestions list, thanks

  • @parsagachkar3140
    @parsagachkar3140 3 роки тому +1

    ok from what I see the way you set it up looks like good old SOAP Web Services. although it's a lot more efficient than sending and receiving XML data I really like it. but I really got a question. from what I saw ". proto" files are simply plain text files and everyone can forge them and I don't see a signature or encryption. how do you protect these services from unauthorized or malicious access? do I implement my own authentication and authorization method (for instance maybe issuing, sending, and validating a JWT for the input of services?) or there is a standard way of implementing authentication and authorization in GRPC?

  • @sekharkatreddy8491
    @sekharkatreddy8491 3 роки тому

    Excellent stuff.

  • @marcoantoniorodriguezsando8622
    @marcoantoniorodriguezsando8622 4 роки тому +1

    I like your very good example of GRPC services, and sending lists also seems to me to be a very good video, but will you have an example where you can receive two lists in the service?
    Excuse my English which is not my native language, I will be very grateful if you could guide me.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      I don't have an example of that. Look into the documentation at docs.microsoft.com for more information and examples.

  • @caioavidal
    @caioavidal 4 роки тому

    Very useful explanation. Thanks

  • @DataJuggler
    @DataJuggler 4 роки тому +11

    This is better at 1.25 speed.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +4

      It all depends on your listening comprehension. I personally like 1.5x.

    • @DataJuggler
      @DataJuggler 4 роки тому

      @@IAmTimCorey Yes, but you remind me of Matthew Santoro at 1.25, at 1.5 it sounds like a squeaky mouse voice.

  • @mahi-lapse
    @mahi-lapse 4 роки тому

    Thanks, simple & nice explanation.

  • @freddycastelblancomacias6082
    @freddycastelblancomacias6082 3 роки тому +1

    Awesome video Tim, as usual, I have a question: Can I use a gRPC as service to be consumed by a frontend app ??? The scope of this kind of services is only for backend ??? Thanks in advance !

  • @davestorm6718
    @davestorm6718 3 роки тому

    I found a strange bug in VS2019 with the .proto Build Action. When you make changes to an existing proto file (or copy it over from the server to the client), VS may leave a bunch of red squiggly lines from the "using GrpcServer" and elsewhere in your client program.cs file. The solution was to change the Build Action from Protobuf to None, then save, then change None back to Protobuf again (go figure). I'm using DotNet5 to follow this tutorial (great tutorial, by the way. Thanks!) and it's pretty much working correctly - same with the "Client only" part - they fixed that bug.

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      I'm glad you figured it out. It would be good to submit this bug so that you know someone is working on a fix.

  • @dainvinciblestrafer4044
    @dainvinciblestrafer4044 3 роки тому

    Hello Tim,
    I try to run the Grpc server and the client, I get the following error.
    Grpc.Core.RpcException: 'Status(StatusCode="Internal", Detail="Error starting gRPC call. HttpRequestException: The SSL connection could not be established, see inner exception. AuthenticationException: The remote certificate is invalid according to the validation procedure.",
    TIA.

  • @Jason_Shave
    @Jason_Shave 3 роки тому +1

    Would it not make sense to create a shared library for the protobufs? This way the 'contract' between the client and server are truly shared and you wouldn't need to copy/paste.

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      Usually but I didn’t want to imply that is the only way to do it.

  • @OvRaf
    @OvRaf 3 роки тому

    great explanation

  • @mihaimyh
    @mihaimyh 4 роки тому +1

    Thanks for this video. I guess, now with C# 8, we can use much better IAsyncEnumerables with streams.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      Yep

    • @99MrX99
      @99MrX99 4 роки тому +1

      await foreach (var currentCustomer in call.ResponseStream.ReadAllAsync())
      {
      Console.WriteLine($"{currentCustomer.FirstName} {currentCustomer.LastName}: {currentCustomer.EmailAddress}");
      }

  • @kamparsen
    @kamparsen 4 роки тому

    GREAT Video .. Learned A LOT . Thank you sooo Much

  • @norberthbrunner1329
    @norberthbrunner1329 4 роки тому +1

    Hi.
    Should be nice seeing the process of publishing production enviroment!

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +2

      I will add it to the list. Thanks for the suggestion.

  • @timur2887
    @timur2887 Рік тому

    Thanks! Great, as always!)

  • @TPCWare
    @TPCWare 3 роки тому +1

    Thanks also for explaining when to use gRPC Vs Web API. A year later, after GA of .NET 5 and a more robust implementation of gRPC on .NET 5 things are still the same or the field of application of gRPC has expanded?

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +2

      gRPC has definitely expanded and become a great option in certain circumstances. It is still not a replacement for an API, but it definitely has a place of its own.

  • @Chris-xd7og
    @Chris-xd7og 4 роки тому

    Very interesting. Thanks Tim.

  • @BenHayat
    @BenHayat 4 роки тому

    Hi Tim;
    Thanks for this great course. I'd like to make a suggestion. You had made an offer to those who are Patreon (with >$10 Level) with the Tips & Tricks. The problem is that, the notion of Patreon has become overly used by so many developers and people that is hard to get involved with a Patreon with someone, just because you need a source code or a tip sheet and etc. Next thing you know, you're paying a bunch of money every month where you're not using anything. Because of this, I see less and less people get involved in Patreon unless, they're using the product on daily basis.
    My suggestion is create your tip sheet or source code or whatever you have and sell it in your store AS IS with one purchase, rather asking people to commit to monthly payment.
    Imagine you go buy a pair of shoes and store owner says, you have to pay $10 per month for one year. To consumer if feels they're getting locked down. But if he says, it's price is $120, it's much easier for that consumer to pay $120 and walk out being free.
    Give us a price for the Sheet/Tip sheet. If it sounds fair, we'll buy it.
    Hope this helps!

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      I'll take that suggestion and consider it. Thanks!

  • @niroshanmanoharan4295
    @niroshanmanoharan4295 3 роки тому +1

    Thank you for the introduction video... Could you please explain how to connect with client UI with Asp.Net 5.0?

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      Think of gRPC like any other data access. What you have seen in this video can be replicated in a class library. Then you can connect that class library to any front-end, including ASP.NET Core 5.

  • @peternguyen9382
    @peternguyen9382 2 роки тому

    first i create console app, but then my customer ask me to provide grpc service. i try to host grpc server in my console app but how can i change the port for grpc server? i stuck on this.

  • @ericmann8976
    @ericmann8976 2 роки тому

    Hi Tim, I really like your channel. Although I am watching this video for the. first time, it seems that gRPC is going to be used to replace WCF at some point in .Net Core. It is much like WCF with capabilities beyond what WCF can do. I agree that it should be used only when needed just as WCF. You still have services and contracts like WCF has but in an industry standard across all platforms and languages as you stated. As you said, web apps would be a much better solution. Thanks for the great lessons.I look forward to learning more on your channel.

  • @najemayadi9808
    @najemayadi9808 4 роки тому +4

    Great video Tim, thank you so much. A question, what do you recommend to "wrap" existing REST API services to use gRPC?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +11

      I don't recommend doing that except in very specific circumstances. Otherwise you have the worst of both worlds.

  • @matteobarbieri2989
    @matteobarbieri2989 4 роки тому +8

    Also for me gRPC was something unknown. Thanks.
    PS: in the past I had the same problem with freezing .net Core console by accidentally clicking it. You must remove "Quick Edit Mode" from "Command Prompt" Properties

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +4

      Thanks for sharing. I’ll try that out.

    • @Niklot84
      @Niklot84 4 роки тому

      Yeah took me a while to figure that out. It's when you select something in the console, then it pauses the execution. If you hit enter in the console it resumes the execution.

    • @garyngzb
      @garyngzb 4 роки тому

      Or just hit Esc will do

  • @imumamaheswaran
    @imumamaheswaran 4 роки тому

    Very insightful!! Subscribed!!

  • @vittoriomorellini1939
    @vittoriomorellini1939 3 роки тому

    The gRPC the future for the web call, faster and faster

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      gRPC is a good option for some situations.

  • @yairashkenazi5455
    @yairashkenazi5455 4 роки тому +4

    Hi Tim, as usual great stuff. Just one question: I need to build a system where there are one or more servers which are connected to hardware devices which stream bytes to the server/s and that stream of bytes needs to be sent to the client to do some processing with the data. So, is gRPC a good choice for such a scenario? The data is sent in packets of 1KBytes at most to the server.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      Probably. The client will need to implement the gRPC contract, but gRPC is designed to do streaming in two directions (if needed).

  • @mohamadalibrahim2995
    @mohamadalibrahim2995 4 роки тому +1

    thank you for your Answer last time, I solved the problem by writing some code in program.cs in the Server Side, and writing some come in the client-side too,
    server-side code: in program.cs
    webBuilder.ConfigureKestrel(options=>{
    options.ListenLocalhost(5001, o => o.Protocols = Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols.Http2);
    });
    client side program.cs
    AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);

  • @piriyaie
    @piriyaie Рік тому

    Thank you sir for this gread video.

  • @Randomas859
    @Randomas859 11 місяців тому

    Hey. Could you make an updated version for this?
    In Visual Studio 2022 there aren't any of these properties for greet.proto client even though i copy paste it from a server

  • @damiromrcen8251
    @damiromrcen8251 4 роки тому

    Very nice and clear tutorial.. thx..

  • @LuigiZambetti
    @LuigiZambetti 4 роки тому +4

    Tim, do you think gRPC will replace ASP.NET Web API Core as RESTful service for the .NET world?

    • @Noceo
      @Noceo 4 роки тому

      Sorry, I am not Tim, but I am pretty confident that it wont. At least not in any foreseeable future. Replacing technology isn't just about having something smarter (if that was the case, JavaScript would be long gone). It is, more or less, about everything else. There are so many services working over HTTP already and so many developers used to HTTP, you don't just change the direction of that ship. It's not that I don't think gRPC is clever, it's just that I think that the world is already so locked on HTTP, that won't just go away.

    • @BenHayat
      @BenHayat 4 роки тому

      @@Noceo
      I fully agree...
      Here is where I think gRPC fits well; Suppose a company is building an application that requires both the serve and client the team has full control of both ends. Here gRPC offers a better and faster transport system than HTTP.
      Suppose you write a Blazor client where you also need data from server, where you build your server to get/set data from/to client, I'd use gRPC than Web API, especially if you need secure and fast transport.
      I'm now investigating into this.

  • @rickydeldo8596
    @rickydeldo8596 3 роки тому +1

    Thank you very much, is there a way to still get the cheat sheet?

  • @xeekk
    @xeekk 2 роки тому

    I'm a little confused. You used "package" in the first proto file, but not the customer proto file, so when I replayed the section where you describe the proto file, you say the package is the name of the package ... but what is package actually used for?