Goodbye controllers, hello Minimal APIs - Nick Chapsas - NDC London 2022

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ก.ค. 2022
  • Minimal APIs are the hottest .NET 6 feature and for good reason. They makes it extremely easy to create high performance and scalable APIs without having to deal with any boilerplate code. In this session I will introduce you to the beautiful world of Minimal APIs. I will show you how easy it is to build an API using them, with just a few lines of code, compare it to the "old-fashioned" approach within .NET in both amount of code and performance and see how it stacks up against other languages and similar frameworks. I will also show you how you can give them structure and how you can organise them, test them and use them in the real world.
    Check out more of our featured speakers and talks at
    www.ndcconferences.com
    ndclondon.com/
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 158

  • @larsthomasdenstad9082
    @larsthomasdenstad9082 2 ปีที่แล้ว +76

    Great opening. :D You seem to do as well in-person as in your planned TH-cam videos.

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว +17

      Thank you! If only where wasn’t a fire drill right before the talk 🥲

  • @nonamezz20
    @nonamezz20 2 ปีที่แล้ว +73

    That was such a quality presentation. Thank you Nick.

  • @iliyan-kulishev
    @iliyan-kulishev 2 ปีที่แล้ว +42

    If you're big on organizing the code around features, use cases, capabilities, if you you are fan of Vertical Slice Architecture, minimal APIs are definitely for you.

    • @rinzler9775
      @rinzler9775 ปีที่แล้ว

      Been on a couple of vertical slice projects - this is not new. Its always a balance between centralisation and vertical slice.

  • @01psychosocial10
    @01psychosocial10 2 ปีที่แล้ว +7

    The audience doesn't aprechiat his humor nearly as much as it needs to be aprechiated :D

  • @TomBauto
    @TomBauto 2 ปีที่แล้ว +12

    I didn't expect to see Nick in such conference, but he looks well prepared and I liked the whole presentation. Congratulations Nick!

  • @weifengmao
    @weifengmao 2 ปีที่แล้ว +11

    Love the subtle jab at the whole Hot reloading mess Microsoft created a year or so ago.

    • @georgebeierberkeley
      @georgebeierberkeley 2 ปีที่แล้ว +3

      Yeah Hot Reload is a total joke. As is the build time of vs 2022. So darn slow.

    • @rinzler9775
      @rinzler9775 ปีที่แล้ว

      ​@@georgebeierberkeley I found 2022 faster - buy spent some time tuning and turming off stuff. Hot reload was onevof them.

  • @alexclark6777
    @alexclark6777 ปีที่แล้ว +2

    Was expecting the first line of this talk to be "Hello everybody I'm Nick!"

  • @lifelover69
    @lifelover69 2 ปีที่แล้ว +4

    Brilliant talk, thanks Nick! Loved the analogies, the memes, the jabs and everything else 😄.

  • @mfsbo
    @mfsbo ปีที่แล้ว +3

    For any software team with junior and senior Devs talk from 30:00 min to 38:00 is good example of what can freedom to build mess up in software. Thanks to Nick, his uncle, his Nephew for building castles as example.

  • @nickchapsas
    @nickchapsas 2 ปีที่แล้ว +292

    To say it is a dream come true and completely surreal to give a talk at NDC, the same conference that I grew up watching as a junior developer, is an understatement 🥹

    • @Dustyy01
      @Dustyy01 2 ปีที่แล้ว +7

      More than deserved🔥✌️

    • @evanboltsis
      @evanboltsis 2 ปีที่แล้ว +1

      3 ώρες για ένα gif που δεν εκτιμήθηκε όσο θα έπρεπε :P. Hopefully in the future, we will meet in person when you have another talk! Congrats!

    • @JOHNDATGOONV2
      @JOHNDATGOONV2 2 ปีที่แล้ว +1

      I’ve been waiting for this! Incredible job!

    • @danielbub
      @danielbub 2 ปีที่แล้ว +1

      Great talk man!
      Love your content!

    • @sharatha6533
      @sharatha6533 2 ปีที่แล้ว +1

      Awesome Video @nickchapsas, also the way you presented it with added humour is better than your videos at times 🙂

  • @powerclan1910
    @powerclan1910 2 ปีที่แล้ว +3

    i've been trying to explain this elephant to people for the past 8 years (as soon as i was in University). Finally getting confirmation. thx

  • @Moosa_Says
    @Moosa_Says ปีที่แล้ว +2

    Absolutely an amazing presentation Nick !! loved every bit of it

  • @LewisCowles
    @LewisCowles ปีที่แล้ว +1

    Love Nick, and the example they provided

  • @dmiradakis
    @dmiradakis 2 ปีที่แล้ว +53

    Your self-awareness about how different tutorial file structures are vs. the real world file structures, your cadence and tone, and your extremely deep .NET knowledge is exceptional.
    Ignore the hate in the comments, this was a fantastic talk and I’m only halfway through right now.
    I think Javascript SPAs and C# minimal APIs are the stuff of the future, it’s the best version of JAMStack technology I could ask for. Great niche you’ve found.

  • @AdrienTorris
    @AdrienTorris ปีที่แล้ว +1

    Such a great talk! Congrats!

  • @HansenPL
    @HansenPL ปีที่แล้ว +1

    Great presentation, thank you.

  • @robl39
    @robl39 2 ปีที่แล้ว +6

    I liked Chapsas before this but the Lego example solidifies my loyalty!

  • @MrRapic
    @MrRapic 2 ปีที่แล้ว +1

    Love the video!

  • @ricmrodrigues
    @ricmrodrigues ปีที่แล้ว +2

    "if you think this should return a 204, you are wrong" 🤣🎯

  • @josepvg
    @josepvg ปีที่แล้ว +1

    Nick is brilliant!

  • @XKS99
    @XKS99 ปีที่แล้ว +2

    Excellent talk. I will give minimal APIs a shot on my next project.

  • @taufanaugusta8884
    @taufanaugusta8884 2 ปีที่แล้ว +5

    That Megazord had me wheezing. LMAO.

  • @mkrass
    @mkrass 2 ปีที่แล้ว +1

    Best crossover of 2022

  • @stefanbogdanovic590
    @stefanbogdanovic590 2 ปีที่แล้ว +1

    Finally Master Nick!

  • @Pistolen84
    @Pistolen84 ปีที่แล้ว +6

    I'm 10 years in doing dotnet. Your my go to guy since I found you! Great talk! 🌟

  • @dave_s_vids
    @dave_s_vids 2 ปีที่แล้ว +3

    Great to see you (virtually) up on stage! Well deserved :) Love your videos - good job on the talk!

  • @BK-19
    @BK-19 ปีที่แล้ว +2

    Thank you very much nick

  • @dvdrelin
    @dvdrelin ปีที่แล้ว +1

    Brilliant. Thanks

  • @gusdeveloper531
    @gusdeveloper531 ปีที่แล้ว +1

    Such a good presentation.

  • @ArnonDanon
    @ArnonDanon 2 ปีที่แล้ว +9

    This is a great talk, i really like the lego analogy. I liked you show your way of building a minimal api and how you might structure it to a mature software.
    thanks for all the great info and perspective.

  • @StephenGillie
    @StephenGillie ปีที่แล้ว +1

    It's like we're moving to a point where all bracketed languages use the exact same terms and syntax. So we would write code once, then test across a number of runtimes to see which is fastest. Or choose a specific runtime for a special use, like when only one runtime has binaries for a specific OS.

  • @JoonhwanLee
    @JoonhwanLee 2 ปีที่แล้ว +3

    Omg Nick on NDC!

  • @abcdef-wy9xo
    @abcdef-wy9xo ปีที่แล้ว +2

    This is true. I was hating controllers and I thought I am dumb to understand its goodness, but controllers are not he best and changing a class for changing a endpoint is not good.
    Good talk.

  • @malinaeemi8603
    @malinaeemi8603 ปีที่แล้ว +1

    last point is something that makes most sense, really. Otherwise, even in other languages, that provide "minimal api" by default, they have frameworks that look more close to typical .net or java and they are preferred over these "typical" approaches for a very good reason.
    Besides, when you are creating or even refactoring a large system, be it monolith or microservice, you will end up writing bunch of boilerplate..where minimal api will just increase your work and you will end up writing patterns that typical .net development already follows.
    It has its use-cases, a bunch of them, i.e. edge. But it doesn't fit with the analogy you were trying to portray in the middle of this otherwise really great talk.

  • @mfsbo
    @mfsbo ปีที่แล้ว +1

    If you are looking for structure of minimal api head to 40:00 and watch Nick show his magic

  • @technics6215
    @technics6215 ปีที่แล้ว +1

    Awesome... Working without this stuff is such waste of time...

  • @fifty6737
    @fifty6737 2 ปีที่แล้ว +2

    Nick is awesome, very awesome presentation

  • @vivekkaushik9508
    @vivekkaushik9508 ปีที่แล้ว

    Awesome

  • @dennisvandermeer8238
    @dennisvandermeer8238 2 ปีที่แล้ว

    Great video but I am curious about something small. Your default port for a new project is 5000 / 5001. For me this is never the case. Of course I can change it afterwards via the methods you describe in your course but how can this be changed by default for each project generated?

  • @SconedCyclist
    @SconedCyclist ปีที่แล้ว +2

    Haven't really been convinced about using minimal api's until you discussed the overhead of the traditional MVC controller api use-case. Side note: wth is up with the audience not picking up on the sprinkles of humor throughout the presentation?

  • @lolyasuo1235
    @lolyasuo1235 2 ปีที่แล้ว +11

    Hey Nick, nice to see you in such big confernce as Greek.
    I love Minimal APIs but when it comes to complex scenarios you end up with something to classic MVC and harder to maintain code. I believe they can coexist both, why do we need to choose? both have use cases.

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว +13

      Even for complex scenarios Minimal APIs are my choice. In complex scenarios it’s not the UI layer that is the actual complicated bit but rather the domain/application layer. I prefer the structure that Minimal APIs provide for that UI layer as explained in the talk

  • @barryvanlandeghem1909
    @barryvanlandeghem1909 2 ปีที่แล้ว +1

    Still would like to hear about the missing odata support for minimal apis

  • @victorsantiago8739
    @victorsantiago8739 ปีที่แล้ว

    The written code in .Net minimal APIs is like Node.Js + Express

  • @petewarner1077
    @petewarner1077 ปีที่แล้ว +2

    Always great to discuss the issues you encapsulated in "the elephant in the room" with fellow developers with regards to controllers, actions and all that ceremony we inherited from MVC. Minimal APIs if nothing else gives us a good jumping off point to ask "can we do this a better way".
    Be careful where and when you introduce the elephant in the room though. Some devs are fanatical about controllers.
    Also there's a good chance a dentist from Ohio will pop out and shoot it.

  • @GilbertoMadeira83
    @GilbertoMadeira83 2 ปีที่แล้ว +1

    Great talk , Minimal apis always seemed like express apps to me, It is a good way to start some simple endpoints

  • @merabc
    @merabc 2 ปีที่แล้ว

    When you have a complex task with large scale project then it's necessary to have some design structure, there is not a meter of minimal API concept

  • @anatolia23
    @anatolia23 ปีที่แล้ว

    Great talk Nick! Just one question, why don't you suggest to use Carter?

  • @heshanwijerathna
    @heshanwijerathna 2 ปีที่แล้ว

    The experience

  • @GeriatricMillenial
    @GeriatricMillenial ปีที่แล้ว

    Just curious, what terminal and extensions for that terminal are you using?

  • @abhishek_youtube
    @abhishek_youtube ปีที่แล้ว

    I am from india. And in India, Java is mostly preferred by new people as java is in course of many collage in India.
    C# is good. I also start using it when i joined a company. But yaah @nick correctly said new people should pic it .
    Microsoft should promote it to college level in India. Once you learn it , you will definitely use it for longer time.

  • @ShamilMS
    @ShamilMS ปีที่แล้ว

    Nick, thank you for your great talk!
    What development IDE are you using? - It first appears in your presentation at 9:34 .

    • @Pobiega
      @Pobiega ปีที่แล้ว +1

      Nick uses Jetbrains Rider

  • @user-hb7py7xy7b
    @user-hb7py7xy7b 2 ปีที่แล้ว +2

    Very good points about controllers origin and there misleading nature while developing APIs. Great overview in general.

  • @yoannvisentin3465
    @yoannvisentin3465 2 ปีที่แล้ว

    Nice talk , thanks Nick. Just one question where does come from the class EndPoint ? I didn't find anything on it online. Thanks.

    • @yoannvisentin3465
      @yoannvisentin3465 2 ปีที่แล้ว

      Ok I found. I presume it's coming from the nuget : MinimalApi.Endpoint

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว +3

      It’s coming from the nuget package FastEndpoints

    • @yoannvisentin3465
      @yoannvisentin3465 2 ปีที่แล้ว

      Thanks Nick!

  • @parlor3115
    @parlor3115 ปีที่แล้ว

    I'm surprised you didn't plug your course here too

  • @vivekkaushik9508
    @vivekkaushik9508 ปีที่แล้ว

    You should mention Presenter's github in description.

  • @mouradaissani8957
    @mouradaissani8957 2 ปีที่แล้ว +5

    nice talk thank you, oh by the way , you do have legs for real lol

    • @mariocamspam72
      @mariocamspam72 2 ปีที่แล้ว +3

      He is very attractive indeed

  • @josephang9927
    @josephang9927 ปีที่แล้ว

    Smart and Handsome as always :)

  • @BrendonParker
    @BrendonParker 2 ปีที่แล้ว +2

    I think minimal apis are cool. However, There is something to be said about using a standard “web api” approach. To use the Lego analogy… a five year old and a senior can come into the project and know how it is layed out, how to add new functionality, how to troubleshoot, extend, etc. With a custom “framework” on top of minimal apis, as demoed, the onboarding process for a new, or more junior dev is more challenging.
    The engineer in me totally wants to go off and do something similar and build my own micro framework. The experienced engineer in my has been scarred by these decisions in the past.
    Glad to see you at NDC! Long time subscriber.

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว +7

      I think I'm at a point where I wouldn't like it to be one. I believe that stripping it to its components (which is what Minimal APIs do) allows people to freely express themselves technically with the structure that they want. If Microsoft uses Minimal APIs to make a new Endpoints approach and that's the percieved "standard" then every other idea that the community creates and maybe adopts, can be shut down by companies or other developers/leadership just because it isn't the "standard" even though it might be a better approach

    • @janekschleicher9661
      @janekschleicher9661 ปีที่แล้ว

      @@nickchapsas Yes, understood. But as software *engineers* we should aim more for standardized solutions than for art and creativity in most parts. I really like FastAPI, but in most projects I host professionally, I'd prefer much more a Django Solution. Much more than any microservice approach, just as it is more or less guaranteed that some standards are followed and not everything is reinvented. In my last project, people were using a Go Minimal API (with ProtoBuf) for a React Front-End and ended up reimplementing CRUD views, rapid proto typing for database objects (creating complex database entries like big boolean queries for subject matter experts), database performance inspection tools, dashboards, action triggering on databases, and so on (especially all the knowledge about best practices in security). Everything you would have got for free (and in standardized way) from every big webservice framework (Django, Ruby On Rails, Zend, Angular, ... and certainly also from .NET). Yes, the frontend and backend developers had much more creativity and I think they liked it a lot, but from my more external view (I was there as Data Scientist), this was ineffective, error prone, and hard to understand and maintain (so there were single point of failures in terms of staff = the bus factor, especially due to this creativity and individual solution).
      Fun Fact, I once tried to explain what would be possible when using such a big framework instead of a the minimal API approach used there and I got as answer: this has to be too good to be true?! (they would have also answered the question when they wrote the last time a view with negative, long time ago; but in the end it was a classical web application running in HTML in the browser on the desktop only inside the company, so a web framework including views would have been very useful in contrast to React + Microservice backend what is just more complex for not so much more outcome, unless you have to create a very dynamic and very interactive application, what is certainly true for any social application, but rarely for most professional applications used by subject matter experts)
      Whatever, when I've seen your lego castle comparison, my first instinct was that if inexperienced and very experienced tend to create a comparing similar solution, this should be the most striking factor to use the foundation for the solution (the big framework) in any professional, engineering work.
      For personal projects, prototyping, (and yes, pure API microservices), experimentation, ... the minimal APIs are great. But beyond, the freedom is a bit like the freedom to use goto-statements, pointer arithmetic, manual memory management, ... what all has to be proven to be troublesome for beginners and experts even though both love it.

    • @adriangodoy4610
      @adriangodoy4610 ปีที่แล้ว

      @@janekschleicher9661 As software engineers we should aim to use the right tool for the problem we have in hand. Using a swiss knife for everything it's not always the best aproach

  • @neunistivlija
    @neunistivlija 2 ปีที่แล้ว +3

    Good thing is that I made this myself years ago, hated controllers

    • @oleggavrilov7083
      @oleggavrilov7083 2 ปีที่แล้ว +2

      And nancyfx did that 10 years ago too, so what? Nobody cared until it got into the default templates

  • @ronnyek4242
    @ronnyek4242 2 ปีที่แล้ว +4

    I feel like I don't necessarily buy into it. It just feels a bit like an early optimization. It reminds me of nancyfx, liek yes you can make more concise API's, but then you lose organizational capabilities that controllers provide, and have to fill in with other mechanisms. I'm not deadset on not using it, but I've still yet to see super lucrative arguments that made me think "Oh man, I need to start building apis this way, not how .net does it" (still watching video, so I may have an AHA moment)

    • @LiquaFoo
      @LiquaFoo ปีที่แล้ว

      “You lose organizational capabilities” that’s where project structure comes into play. If you understand domain driven design or other architectural patterns you now have the choice to build your own organizational structure which is what he’s done. I believe his project is organized using “clean” architecture and some domain driven design nomenclature. So sure Controllers may help you organize your code but with the trade off being more bloat.

    • @ryoukokonpaku1575
      @ryoukokonpaku1575 ปีที่แล้ว +1

      Also when talking about microservices. If you use code generated contracts like with Grpc which is usually common for microservices these days due to support for stuff like 2 way streaming and overall being smaller over the wire, you end up with "Controllers" classes still where you implement your grpc contract.
      Then there's filters and versioning that we usually use for apis that minimal doesn't support yet so I don't think we'll be using minimal apis that much either. Also for the issue on services you can always use `[FromServices]` to inject the service as a method like how it's done for minimal apis.

  • @janedoe6182
    @janedoe6182 2 ปีที่แล้ว

    Microsoft invented node-style web framework on their .NET?

  • @Dimich1993
    @Dimich1993 ปีที่แล้ว +2

    Good job, Nick!
    And please support Ukraine guys!

  • @sentinel9046
    @sentinel9046 2 ปีที่แล้ว

    What tool are you using to test the API?

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว

      It’s built into JetBrains Rider

    • @sentinel9046
      @sentinel9046 2 ปีที่แล้ว

      @@nickchapsas Thank you

  • @qm3ster
    @qm3ster ปีที่แล้ว +2

    Why show Go and not Rust 😭

  • @surakshachoudhary2880
    @surakshachoudhary2880 ปีที่แล้ว

    What IDE is this and why is it not Visual Studio?

    • @nickchapsas
      @nickchapsas ปีที่แล้ว

      It is JetBrains Rider and it's not VS because it's better than VS

  • @danielschmider5069
    @danielschmider5069 ปีที่แล้ว +1

    Why does everything start with Map? MapGet, MapPost, why not just use Get and Post? What even is "Map" ?

    • @SSwoodwork107
      @SSwoodwork107 ปีที่แล้ว +1

      this will be fixed in .net 10 🤣

  • @ulilulable
    @ulilulable ปีที่แล้ว

    Coming from the MVC world, I thought this video would be about transitioning from MVC to some new thing called "Minimal APIs", and I sat here waiting for when this would go from web REST stuff to application MVC stuff...

  • @clashclan4739
    @clashclan4739 ปีที่แล้ว +1

    The problem is you don't choose the project, project choose u and u have to go in a way that outdated sr manager/sr architect designed that project 🤕

  • @micha8469
    @micha8469 ปีที่แล้ว +3

    Okay, I mostly agree it can be successfully used, but I am glad he showed that last example, too. In the end he created something very similar to a regular controller-based approach, but without a word controller and called it his choice. So, in the end something good that is his own choice ends up the same approach Web API uses. Isn't it a little like that? Come on, this final example looks 99% like Controllers + CQRS + MediatR + FluentValidation. Even more with that FastEndpoints library usage.
    I understand that you have a cleaner start, you start from 0% rather than 5% because controller-based approach kinda enforces its few features, but majority of those you'll end up using, anyway. Those examples work at educational level very well. But who can imagine a commercial API without filters, attributes or middlewares? That's just not gonna happen and you will end up setting up the same startup features, but call it a Minimal API, instead. It's not really worse, I'm closer to thinking there is barely any difference at all, so why bother. I'm not gonna call a difference existence or not of "controller" word in the process.

    • @adriangodoy4610
      @adriangodoy4610 ปีที่แล้ว +1

      It's not exactly the same as every endpoint has it's file, Controllers usually agregate the get , post, delete ... in one file. You can bypass doing that, but by default it sends you there

  • @krftsman
    @krftsman ปีที่แล้ว

    This looks just like Nancy from 10 years ago.

  • @jhbonarius
    @jhbonarius 2 ปีที่แล้ว +9

    I actually failed a coding interview because I used a minimal API. Good for me, because I don't want to work for a company that refuses new tech.

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว +6

      I was about to say when I read the first half of then answer. Even if the favourite approach of the interviewer is another way, they shouldn't fail you on the interview

    • @ronnyek4242
      @ronnyek4242 2 ปีที่แล้ว +2

      I wouldn't want a job for a company that uses those types of questions as criteria for hiring. I very much believe in handing a candidate a arbitrary task... go build me something that does x. Explain your choices, and take your time. I've had FAR FAR better results with that

    • @jhbonarius
      @jhbonarius 2 ปีที่แล้ว +4

      @@ronnyek4242 yes, it was a bad interviewer. Didn't even get the chance to explain. I got a better job at a better company in the end. Happy happy joy joy

  • @rahulsahay19
    @rahulsahay19 ปีที่แล้ว +2

    There is no question about that dotnet has plethora of services which is at par from java. But only thing which I still don't understand, why despite so many goodness no FAANG or MAANG company uses it. And because of that its follower companies also don't embrace Microsoft technologies. This makes dotnet a second class citizen. Even fancy startups which are coming, even they are not using. Not sure what Microsoft is doing about it.

  • @rankarat
    @rankarat 2 ปีที่แล้ว +1

    I really liked the video and the explanations, but you should give the proper respect where its due, the Person who developed FastApi should get his honor .

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว +3

      I will add a shoutout to Sebastián Ramírez the next time I do this talk which will probably be in Oslo

  • @okcharles7
    @okcharles7 ปีที่แล้ว +1

    right. no body wants to warm up tons of hours before taking the first step. JS was humbler than C# but now is taking the throne and will. Its flame is fueled by huge A.

  • @Joooooooooooosh
    @Joooooooooooosh ปีที่แล้ว

    Minimal APIs are great for TH-cam demos. Not so much in the real world.

  • @metaltyphoon
    @metaltyphoon 2 ปีที่แล้ว +4

    Damn, great talk but though crowd :/

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว +8

      The crowd was awesome but the mic doesn’t pick up everything. The talk was also the last of the day and there was a fire drill before so many people left, understandably

  • @serus164
    @serus164 9 หลายเดือนก่อน

    47:57 well this didn't age well...

  • @dddanielsr
    @dddanielsr ปีที่แล้ว

    I had to map controllers because the main file was getting too big. What can I do?

  • @itachi2011100
    @itachi2011100 ปีที่แล้ว +1

    really nice presentation but damn this language is hard to read.

  • @adambickford8720
    @adambickford8720 ปีที่แล้ว

    ANT is far more flexible than Maven... and it was a trainwreck. Every build was a snowflake and just getting things to run could be a major effort.
    The reality is you are likely going to be building a bog-standard rest app converting data to json. Don't overthink it.

  • @ConnorZ
    @ConnorZ 2 ปีที่แล้ว +4

    Overall the presentation was very good but I’m quite disappointed that he didn’t use any “random” numbers of 69 or 420 with a live crowd, you had such a good opportunity😭😂

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว +2

      When I tell you I changed the demo last minute and I forgot to add them in! I’m fuming. I’ll get them back in for the next conferences

  • @markcuello5
    @markcuello5 ปีที่แล้ว

    HELP

  • @Eirenarch
    @Eirenarch ปีที่แล้ว

    The endpoints in the demo are simply controllers with 1 action. CMM!

  • @RandalGJunior
    @RandalGJunior 2 ปีที่แล้ว +1

    I think you should walk a little less. You probably would win a marathon... 😅

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว +2

      Hahaha I can’t. If I don’t walk it all falls apart for some reason 😅😅

  • @checox1909
    @checox1909 ปีที่แล้ว +1

    I love the nick chapsas content, but I'm still thinking MINIMALS APIS WON'T REPLACE CONTROLLERS, even the Microsoft documentation says Minimal APIs have a specific use (for Microservices Architecture or Low code applications, that means apps with MINIMAL dependencies) This is complete miss information of the concept about Minimal API's

  • @michaeldeng1981
    @michaeldeng1981 ปีที่แล้ว +1

    .Net is much better than Java now

  • @johnny_rain3226
    @johnny_rain3226 2 ปีที่แล้ว +3

    You are great, and a very good lecturer, but I realy don't like this mess.

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว +1

      By this mess you mean Minimal APIs as a feature?

    • @johnny_rain3226
      @johnny_rain3226 2 ปีที่แล้ว +1

      @@nickchapsas
      Also, but the real mess is the lack of classess and methods since. NET Core arrived, maybe I am an old school conservative or that I have not developed to much with core because in my day job we are still in dot net 4.5, but it takes me out of context when reading a code without the traditional structure. Anyway you have explained it realy good and I realy like your content 👌

  • @lepidoptera9337
    @lepidoptera9337 ปีที่แล้ว

    That was a lot of fluff. Nothing useful here.

  • @erril8285
    @erril8285 2 ปีที่แล้ว +4

    This might be something for Microservices, but for the majority of the applications Minimal APIs does not fit. Why should I create 20 APIs first in the Program.cs and then (because its a mess) move them in another file just to have another Controller like file. And I would have to deal with new syntax. 👎👎👎

    • @nickchapsas
      @nickchapsas 2 ปีที่แล้ว +17

      You don’t need to do any of that. I highly recommend you watch the talk. I cover this topic

    • @ryoukokonpaku1575
      @ryoukokonpaku1575 ปีที่แล้ว

      Not even likely for microservices if you use Grpc which is pretty common for microservices comms nowadays. The services are basically like controllers still since you inherit the base class for the generated service contract or implement an interface if using code first using protobuf-net and I don't see that changing anytime soon to be used as minimal apis due to the nature of generating service contracts.

    • @rolf8064
      @rolf8064 ปีที่แล้ว

      Because you are doing an Agile project? And features are built endopoint after endpoint? And you fainally choose to do a refactor, only when you have an idea about the architecture you desire?

  • @Jkauppa
    @Jkauppa ปีที่แล้ว

    Nobody Doesnt Care (tm)

  • @Sebastian-hg3xc
    @Sebastian-hg3xc ปีที่แล้ว +1

    I should have started reading the video description. I thought this guy was going to explain some paradigmn shift. He isn't. He's just talked about some old thing now being possible in .NET (and who really cares about .NET). Fortunately, I only wasted 10 minutes.

  • @rahulmathew8713
    @rahulmathew8713 ปีที่แล้ว

    All the api in the main program.cs lol, r u kidding, Its a violation of separation of concerns

    • @nickchapsas
      @nickchapsas ปีที่แล้ว +11

      Did you even watch the talk?

  • @ibm_7
    @ibm_7 ปีที่แล้ว

    bla bla bla bla bla... one hour talking about nothing. really waste of time watching this. could have been done in 10 minutes.

  • @michaelganzer3684
    @michaelganzer3684 2 ปีที่แล้ว +4

    What a pity lots of this was already readily available with WTF, I mean WCF, but no one cared. Plus, having people watch, how it's possible to do shit, is like teaching them how to do shit, because they nowadays don't care for understanding stuff, they only care for having heard about it and converting it into likes and clicks. I know, I know, this video is intended for the well developed, blah blah. I don't buy it. Nick, you are restricting yourself to a fan boy. I'm out. ;)

    • @robadobdob
      @robadobdob 2 ปีที่แล้ว +2

      Really looking forward to your video series.

  • @noahchase295
    @noahchase295 2 ปีที่แล้ว +3

    Just abandon C# and start using Nodejs/Express. Only Angular 2 used controllers, now latest version is 14. C# is so behind in using modern day web development techniques.

    • @noahchase295
      @noahchase295 2 ปีที่แล้ว +3

      @TheSnowscar Typescript filled the gaps in javascript lang. Its solved challenges in scaling java-script apps. It has changed web development for ever. Now types is a must fave feature for all programming languages for adoption. NPM is is the biggest library repo in the world, what limitation are you talking about? C# is trying to catchup to Nodejs.

    • @michaelnurse9089
      @michaelnurse9089 ปีที่แล้ว

      @TheSnowscar Thanks

    • @petewarner1077
      @petewarner1077 ปีที่แล้ว +5

      Fan Boys' gonna fan, I guess.
      How about "Just abandon javascript and just use C#. We've had async-await for _ages_. And classes! Javascript is so far behind"
      Honestly, grow up. Loving your stack doesn't require tearing down others. Leave people to their own choices and keep an open mind.

  • @adambickford8720
    @adambickford8720 ปีที่แล้ว +1

    This is also in kotlin as well as java via spring, welcome to the party. It's kind of hilarious calling spring/jvm 'minimal' but API-wise it is:
    Kotlin Ktor:
    fun Route.customerRouting() {
    route("/customer") {
    get {
    }
    get("{id?}") {
    }
    post {
    }
    delete("{id?}") {
    }
    }
    }
    Java Spring:
    route(GET("/employees"),
    req -> ok().body(
    employeeRepository().findAllEmployees(), Employee.class))

    .and(route(GET("/employees/{id}"),
    req -> ok().body(
    employeeRepository().findEmployeeById(req.pathVariable("id")), Employee.class)))

    .and(route(POST("/employees/update"),
    req -> req.body(toMono(Employee.class))
    .doOnNext(employeeRepository()::updateEmployee)
    .then(ok().build())));

  • @jyvben1520
    @jyvben1520 ปีที่แล้ว +1

    .net should have been in the title, a waste of time