Blazor WebAssembly ASP.NET Core Hosted in .NET 8 🔥

Sdílet
Vložit
  • čas přidán 23. 07. 2024
  • 🚀 Join the .NET Web Academy: learn.dotnetwebacademy.com
    💖 Support me on Patreon for exclusive source code access: / _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
    Table of Contents:
    00:00 Blazor WebAssembly ASP.NET Core Hosted in .NET 8 🔥
    00:57 A quick look at the "old" .NET 7 solution
    01:54 Build it in .NET 8
    03:24 Add the Client & Shared projects
    06:45 Add dependencies and configure the Server project
    11:17 Change the launch settings
    12:44 Final code changes
    #DotNet #Blazor #BlazorWebAssembly

Komentáře • 68

  • @divanvanzyl7545
    @divanvanzyl7545 Před 7 měsíci +17

    Thanks Patrick. Idk why MS can't release proper guides when they make changes to their product. I would have been lost if it wasnt for your videos.

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

    Thanks a lot Patrick, you saved me from a lot of pain with this one!!

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

    can't be more perfectly timed :) thank you!

  • @joker-im7bl
    @joker-im7bl Před 8 měsíci +5

    This is exactly what I have been trying to do for the last couple days. Thanks for posting this!

  • @nagendravc
    @nagendravc Před 3 měsíci

    Wow! This was again the most required demo! Thanks!

  • @stephenshillitoe817
    @stephenshillitoe817 Před 13 dny +1

    Thank you Patrick for another very helpful and well presented video.

  • @mtranchi
    @mtranchi Před 8 měsíci +10

    Thank you! Loved seeing how that all works. Now how about exporting the three projects into a template for future use?

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

    Just started using blazer 8 and it’s been driving me crazy. This is exactly what I needed. Thank you sir

  • @JackNotJack
    @JackNotJack Před 8 měsíci

    Brilliant. Thanks Patrick.

  • @sharonroy9877
    @sharonroy9877 Před 2 měsíci

    Thanks, this video really helped me.

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

    Thank (Patrick) God this video exists! The Blazor App template was driving me insane. Never been so happy to click that counter "Click Me!" button while getting my 50 degrees Celsius weather reports! Restructured my whole project using this. I will sleep soundly today knowing my client side and server side have clear separation :)

  • @cchiarelli
    @cchiarelli Před 8 měsíci

    Thank you Patrick for your detailed explanation. Looks like .NET 8 version of Blazor is two steps forward one step back. Lots of hoops to go through to create a simple Core Hosted Site. I agree with mtranchi, hopefully someone will create an add-on template to make this much easier.

  • @etiennehublet3034
    @etiennehublet3034 Před 5 měsíci +1

    Thank you Patrick, very helpful ;-)

  • @kimwingco
    @kimwingco Před 3 měsíci +1

    Thanks, Patrick!! I can't count the times you've saved my ass! :) this video was just what I needed

  • @LerivangohHannibalLeckterMx
    @LerivangohHannibalLeckterMx Před 6 měsíci +1

    awesome dude!, I love old architecture, i don't know why to remove it, but anyway, thanks

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

    Very helpful, thank you. I was missing one line in the Program.cs.

  • @user-jo9yf4dh2s
    @user-jo9yf4dh2s Před 6 dny +1

    👍it's very good

  • @eddyelamin9015
    @eddyelamin9015 Před 24 dny

    Thanks for the tutorial bro. Really sucks that Microsoft ditched this awesome architecture.

  • @jonymontana8948
    @jonymontana8948 Před 13 dny

    Thank

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

    I tried to update my hosted wasm app to the new fancy WebApp to be able to enable AutoRender and use the new Auth stuff, but failed utterly :P It would be nice, if you could make a tutorial with one of your old .NET 7 app, hosted wasm, EF, and the old JWT auth you made, like maybe the Webshop app.

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

    How sweet it is to find EXACTLY what you're looking for. Thanks!!
    one question: Why didn't you bring app.UseRouting(); in to Program.cs from .net 7 ?

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

    Excellent!, Thanks But what about publishing and deploy process ? It would be interesting!

  • @joseisrael2946
    @joseisrael2946 Před 5 měsíci +1

    Hi I'm new to .NET and this setup got me confused.
    I was looking for a similar structure to Node applications, with a standalone Front, Back and Library. The Library feeds both, and the Front makes API calls to the Back.
    But here It seems you are using the Blazor app as a... UI library? And serving It by the Server?
    What benefits does It have against just deploying both entities separately and making them talk via REST API calls?
    Edit: thanks for all the content! I'm learning a lot.

  • @user-dw8sf5tx6v
    @user-dw8sf5tx6v Před 8 měsíci

    Hi Friends! I have tried this approach AND upgrading an existing .NET 7 WASM+API project, and unfortunately WASM debugging doesn't work in either case; the breakpoints are left unbound. I didn't see it in the video, but does WASM debugging *actually* work here? Thanks Patrick!

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

    If you are trying to do this after .NET 8 release and getting error in program.cs after adding UseWebAssemblyDebugging & blazorframework files just add nuget package Microsoft.AspNetCore.Components.WebAssembly.Server to server project which is not added by default in web api project in .NET 8

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

    Can you still somehow take advantage of new auto interactivity render mode with this approach?

  • @davidpccode
    @davidpccode Před 5 měsíci +3

    Hi Patrick. Tks for such amazing content. One question. Something seems strange to me. Do I necessarily have to create this reference between the client and my API? What happens if I have an API that is used for many more things and also to be the backend of my wasm? Can't I just do normal http requests? This linking of projects seems tangled and unnecessary to me or what is the purpose?

    • @kell7689
      @kell7689 Před 4 měsíci +1

      Also wondering this... Can't really think of the reason for the reference.
      EDIT: AH, it's necessary for you to be able to launch the WASM client app when running the Server project. When you set the `inspectUri` in the `launchSettings.json` file, it won't take effect if the Server isn't referencing the client.

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

    Hi @Patrick God and everyone
    I would like to know your opinion since I have finished the course, which is actually very good, I learned and reaffirmed many things.
    Now I have a modified version that I had in production for a year with Azure but the promotion has ended and now I have to pay.
    In Azure, maintaining my Web app is very expensive, I already investigated other sites but the cost is similar.
    Here is my question; Do you know of any place where hosting my Blazor web app is cheaper?

  • @kuper1346
    @kuper1346 Před 8 měsíci +4

    So why doesn't dotnet8 have this template again? I understand this (united) template which does make certain things easier for sure. But for certain use cases, what am I supposed to use? Lets say I have a complex commercial app with a lot of server logic, automation and data persistance (database) on one hand and complex frontend with diagrams and a lot of menus on the other. I can't think of how this united template could statisfy this scenario, you do need both aspects which you connect with webapi calls. So thank you for the video, but why? Why does this template not exist? Why was this video needed in the first place?

    • @varinator3176
      @varinator3176 Před 7 měsíci +1

      Because Microsoft and .NET team are completely detached from reality and keep going in circles, trying to catch up to established front-end frameworks, while not being able to do anything better than those frameworks.

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

      I was wondering about the same thing. A couple of months ago I started a small project in .NET 7 using the WebAssembly Hosted architecture, but now that everything started shifting in .NET 8, I don't feel extremely confident about the future. I am actually considering shifting to a .NET + React stack while it still isn't too much work.

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

    Thank you for your amazing tutorial!
    What about Microsoft Identity for user management?

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

      I'd also be interested in hearing how to add Identity + PWA

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

    Hi, what if we use Blazor web app with webassembly global, where server as web API, so we just add one project shared. what do you think?

  • @jasondmace
    @jasondmace Před 8 měsíci +3

    Hi, Patrick. Thank you for the video. What would be the end result difference between this approach vs. upgrading a solution that was created in .NET7? (If any?)

    • @bennyadiwijaya1606
      @bennyadiwijaya1606 Před 7 měsíci +1

      I also want to know,, is there any pros and cons between these two? @Patrick God

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

    Great. So, does it mean that we can migrate an existing .NET 7 WebAssembly hosted application simply changing the target framework version in all the 3 projects?

  •  Před měsícem

    Hi, we also can change the .net version after we create the project with net7. Is there any reason not to use this approach?
    Is it possible do make a video about adding an identity mechanism to a hosted app from scratch? Since .net7 still creates the app with 3th party session package which need licence, some people may need this tutorial. Thanks .

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

    Hi Patrick, need urgent help on publish same application, I did not find razor pages after publish locally, Is .net 8 does not place physical pages there at publish time, my published directory contains only dlls and client webasembly exe

  • @mohammed2709
    @mohammed2709 Před 4 měsíci +3

    how can i deploy this incleded 2 projects ?

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

    Thankyou! Have been driving myself nuts trying to figure this out. I don't understand Microsofts reasoning here, pure WASM apps are toys without access to a server apie.

  • @adammajid9308
    @adammajid9308 Před 2 měsíci

    somebody please help. do i add individual accounts/Identity framework into the client or the server. and also where would i create my models folder

  • @alirezakarimi8685
    @alirezakarimi8685 Před 3 měsíci

    Please help me Patrick. How we can publish this project to IIS server?

  • @neilthompson1050
    @neilthompson1050 Před 3 měsíci +1

    Can you send us a example docker file to build this image? Thanks
    Seem to have some issues with that

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

    Thanks this is interesting while we are considering an upgrade to .net 8 but not sure if we want to migrate into new rendering paradigms.
    Is that the basic premise and use-case for this video ? I am wondering what microsofts new blazor 8 design pattern / rendering mode is that replaces this specific scenario ?

    • @kis.stupid
      @kis.stupid Před 8 měsíci

      Most these rendering paradigms are optional / possibilities for niche cases. Or to gradually migrate from an MVC or Razor Pages to Blazor Server-side. Maybe for when you don't want to go all the way or if you have niche requirements. Explore them at your own pace ;). For the most part you can just work as you were before .NET 8.

    • @kell7689
      @kell7689 Před 4 měsíci

      That's basically it. The new Web App template seems to just allow you to switch rendering modes at will. It strangely allows you to select a single render mode globally though, and if you were to select WebAssembly, it would create both a Client and Server project where UI concerns could be mixed between the two (making a bit of a mess). Seems like the only benefit of that route is so you have the option of switching on the fly.

  • @user-nl9hg7go8l
    @user-nl9hg7go8l Před měsícem

    I need help doing route sub path hosting of blazor webbassembly applications for dotnet 8.0

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

    When using a shared library and also Azure Github ci/cd for Web API and Blazor Client, how can we include the Shared Library in the ci/cd build ?
    a) That is assuming 2 different repositories that have a shared library / project. I am thinking in Github actions we are able to copy in the Shared Library ?
    b) When having everything in 1 Solution, is there a way that only the API/Shared, vs Client/Share projects are included in the Azure App Service ?
    i am new to this space so excuse me if i too simple or wrong perspective. We currently have our shared models in the Web API, that get packaged in nuget(), but that prevents a coder from adding back-end features and front-end at the same time (nuget built during dev push/merge)

    • @kis.stupid
      @kis.stupid Před 8 měsíci

      a) Shared libraries are just built with the project that implements it at the build step of a pipeline. You don't have to do anything extra there (if I understood your question).
      b) I'd recommend to work with the release branch principle. That way you can prefix the branches that have to deploy to the API & use another branch prefix for anything that needs to be deployed to the environment of the client-side project. You could deploy your WASM as a Static Web App (free) and your API to an App Service. You do have to enable CORS on your API than. In this way, you have 2 separate GitHub workflows to split deployments like mentioned above. Or did you mean to deploy both WASM and API onto one App Service? Than, I don't think you can split anything.

    • @m4r10x2
      @m4r10x2 Před 8 měsíci

      Do you mean having different git repos? Or different .net projects/slns in a single git repo?

    • @mikkirefur
      @mikkirefur Před 8 měsíci

      @@m4r10x2 currently we have separate repos. But considering changing into 1 repo. So either to answer question

  • @unjordi
    @unjordi Před 8 měsíci +3

    I exactly want to build the projects separately to host the wasm app in a static host and just have the webapi and the DB costing money and maintenance

    • @kis.stupid
      @kis.stupid Před 8 měsíci

      That's still possible to deploy a Blazor WASM (Standalone) as a Static Web App and the API separately to an App Service, the database to "SQL database" managed service of Azure.

  • @kittkillward9014
    @kittkillward9014 Před 5 měsíci +6

    Cant understand why they removed template with api controllers for server and blazor for client-side rendering. It seems like fully dumb decision from Microsoft.

    • @kell7689
      @kell7689 Před 4 měsíci +2

      It is a bad decision. The new template feels like it's trying to be a jack of all trades.

  • @renatomedeiros4364
    @renatomedeiros4364 Před 6 měsíci +1

    What's the value for inspectUri ????

  • @HernanIannella
    @HernanIannella Před 2 měsíci

    The "shared" library project os completely optional and doesn't affect functionality.

  • @OurWorldIsBroken
    @OurWorldIsBroken Před 7 měsíci +3

    Patrick God vs Microsoft : 1-0