Which C# Web Application Type Should I use? MVC? Blazor? Razor Pages?

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

КОМЕНТАРІ • 397

  • @bendunaway8296
    @bendunaway8296 3 роки тому +40

    Blazor is my tech of choice. We have 4 server side applications in production, being used thousands of times per day, with no iddue. Blazor totally simplifies the development process for single page response application. Plus, I hate JS. :)

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

      Excellent!

    • @jessecavada3015
      @jessecavada3015 3 роки тому +10

      Some people would say “You are in the wrong job if you are building for the web while hating JavaScript.”

    • @maximeumbra7235
      @maximeumbra7235 2 роки тому +7

      Began as a complete beginner slightly under two years ago, tried js for a week and it felt like suffering involuntary convulsions every five minutes. C# was enjoyable from the first line i ever wrote in it.

    • @ChamuMatumbura
      @ChamuMatumbura 2 роки тому +8

      Once I got hooked up to Blazor, I kissed goodbye to JS.

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

      @@ChamuMatumbura is it just me or is there literally still some things you pretty much HAVE to use JS for?

  • @christiandiomangay5107
    @christiandiomangay5107 3 роки тому +28

    during college i got bucky roberts at my back but now its tim corey ..

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому +1

      Thank you for continuing your learning with Tim.

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

      @@tomthelestaff-iamtimcorey7597
      i learned native andoid development fom bucky later got job in xamarin
      and now trying to learn web development,web api ,xunit tests with tim

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

      I use to love bucky :)

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

    One of the biggest reasons to learn C# is this channel

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

      I’m glad you feel that way.

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

      That's right.

  • @Exozik
    @Exozik 3 роки тому +7

    This really helped me a lot grasping all the essentials differences and advantages of each project type. Very well done Tim!

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

    What I’ve got from this video and comments section: 1) use razor pages if you want to make a web application with a small or no user interactivity but with a lot of static pages with tons of info in them, 2) use Blazor WebAssembly strictly with an API (for security reasons) if you sure that clients of your web application will have to work in offline conditions and can’t have stable online connection (for example in some retail store with unstable VPN to their central office), 3) for the sake of better maintainability try to use one programming language and avoid mixing of different frameworks from different languages in one app, 4) use Blazor Server for everything else 😊
    Hopefully I’ve got it right 😂Thank you so much for this video Tim!

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

      That's a pretty good framework for decision-making.

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

      Thank you for this summary. Did you left out MVC consciously?

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

      @@GameplayDexter you are welcome! I am glad that a newbie like me can give somebody some useful tips of information. Frankly I never used it sir so I can’t say much unfortunately. What do you think about MVC yourself? I think that actually Blazor looks the way better then MVC in most cases but I can be wrong.

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

    I wish you do all tech related explanation that are not bound to C#. Your explanation is very clear even for a beginner. Kudos to you🙆‍♂

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

    It worth mentioning that not every business/project is suitable for SPA; f.e. public pages or content-centric sites. So the type of the website/app affects which technology to choose. Very important!

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

      yeah most intranet apps in my company I wouldn't want to do as spa because it's just not suitable

  • @Omar.bin.khattab
    @Omar.bin.khattab 3 роки тому +1

    i am wondered why not your channel reach to 10 million , you deserve it , great job Tim

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

      Thank you!

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

      I think because programming is kind of a niche stuff. Tim’s channel is very popular if think about programming as a niche activity.

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

    Easily one of the best videos for a beginner (Both for Web Dev. & Blazor) !!

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

    your channel is the best for learning c# and dotnet, i am experienced with unity3d and now im trying to expand my knoledge of the ecosystem around it and your channel is pure gold

  • @rendellgood
    @rendellgood 3 роки тому +11

    Amazing content with practical answers to so many questions I come up with. Thank you for these high quality tutorials/informative videos!

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

    Hey Tim thanks for breaking things down, it's hard to get the lay of the land with all the choices. I'm going to buy your course glad I stumbled upon this video

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

    This was great information and very timely for me because I was going to start a project in Blazer Web Assembly, and I needed to store secured information. I dodged that nightmare.

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

      You still can, you just need to do so with an API, but it is more complicated than other options.

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

    Thank you! Loving using C# for everything with Blazor Pages and .NET 6. Keep up the great work!

  • @aaronbrightware
    @aaronbrightware 3 роки тому +6

    I've been building a large forms heavy web app for past couple of years. I went with razor pages as I wanted something with strengths of web forms binding but cleaner. Blazor seemed too experimental, MVC has more ceremony than I find necessary, Angular and React add un-required complexity. It was the right decision for my project, no regrets and so far there has been no downsides. Have also made a couple of small side apps using Blazor Server. It was real easy to do, and super clean code. Could see myself moving to Blazor Server from Razor pages one day, but going to wait and see.

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

      I would actually recommend blazor server side at least. I worked with razor pages some. I think that blazor is much better than razor pages and makes it much easier to create components and break out the logic and easier to maintain.

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому

      Thanks for watching and sharing your thoughts!

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

      @@andywalter7426 Agreed, I really like working with Blazor and its superior component model and have been on-board since the really early experimental demos. But I do find razor pages to be slightly more reliable, whereas I've experienced some odd quirks and bugs with blazor, simply because its a new paradigm. I'm going to wait till .net 6 before making any leaps!

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

    Hey man, thank´s for this video. I´m from Brasil, and learn a lot in you chanel ! Keep doing this work!

  • @fadge316
    @fadge316 3 роки тому +7

    I've been using Blazor server side recently, loving it. Took a while to figure out a lot of the quirks but I really like it

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

      Awesome!

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

      I seems like a Razor page app is better than Blazor for an app that has a large number of pages. I am doung an app that has over 50 webpages. I can't imagine how yhat would work in Blazor.

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

      @@whatwhome6914 It is a SPA; so the main point is to figure out how to organize your app in terms of "routes". It worth mentioning that not every business/project is suitable for SPA, f.e. public pages or content-centric sites.

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

    Great talk. I realize this video is limited (based on title) to c#, but it would be valuable context to many to mention how other frameworks do some of these "better" than MS's offering. Blazor requiring a large webasm blob is seen as 2nd class at best. It's MS's attempt to catch-up to other frameworks (and they haven't yet).

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

      Thanks for the suggestion.

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

      What would you say is better? Legitimately trying explore options at the moment.

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

    Wow, first year in the industry and you just blew my mind and solved an issues I was having with React and individual account authentication.

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

    I know that some people have a vested interest in Blazor succeeding but I don't see it happening for a couple reasons. 1. Silverlight. You know what I mean. I loaned an expensive piece of guitar gear to a recovering addict so he could get back on his feet. I never saw it again. A year later he asked if he could borrow a guitar... I was introduced to the "Fool me twice" saying... You may feel differently, but I think that concept applies here. That's number one, but it pales in comparison with number 2. At every turn, the reason for choosing Blazor is NOT "This is superior in every way to your other choices!" Nope. You know what THE NUMBER ONE reason developers are given to choose Blazor over anything else? "You already know C#... why bother re-tooling to JavaScript? Use all the skills you already have and build something comparable to those JS boys!" Uh... Bzzzzzt. Wrong.
    JavaScript is THE LANGUAGE of the web. Full Disclosure: I'm NO JavaScript fanboy. As a matter of fact, C# has been my language of choice for almost two decades now after leaving Java. It served me quite well for nearly the previous decade. The best middleware used Java at the time. I strongly feel the best frontend frameworks require JavaScript/TypeScript. Don't buy into a crutch you must use for the remainder of a product's lifetime, that may or may not continue being supported by Microsoft. Mastering JavaScript for the frontend, even if you continue with C# in the middle and backend tiers... You won't regret it one iota!

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

      I'll take on that challenge. Let's address your points one at a time. So your first point is that you were burned by Silverlight (weren't we all), so you aren't going to get burned by Blazor. I know that's the common comparison, but it's an apples to oranges comparison. Silverlight was a proprietary Microsoft technology that relied on browsers to support a custom extension to bring a proprietary coding language to the web. It required access that opened the browsers up for danger/viruses. That effort failed. People didn't install the extension, browsers struggled with supporting it vs maintaining security, and Microsoft got tired of the effort. That was a bad situation. Blazor is an open-source project built upon a web standard. Blazor Server uses SignalR and JavaScript to communicate (SignalR is just a wrapper around web sockets with fallbacks for long polling and other communication methods - all of these are web standards). Blazor WebAssembly uses WebAssembly, a JavaScript system for supporting web applications. All of this is built upon industry standards. None of this is proprietary. All of it is open source. So comparing an open source, web standard project against a closed-source, proprietary solution with no external backing is a bad comparison.
      OK, point two is that JavaScript is the language of the web so therefore C# is just inferior on the web and shouldn't try to compete. That's not what Blazor is doing. Blazor is building on JavaScript so that we can use C# for some of the interactions and JavaScript for the rest. Right now, the common "wisdom" seems to be that if you want any type of web application, you need Angular, React, or Vue. There's a problem there. It is like buying a Ferrari for every person that needs a car. Sure, some might need/use it but not everything needs that type of overhead. That's where Blazor comes in. It provides a web-standards compliant way to use C# to extend into the common areas of web applications. The benefits of doing so are that it reduces the number of applications that need full SPA frameworks, plus it reuses existing skills. You dismiss the idea that reusing existing C# skills is a factor, but I feel that's incorrect. Being an expert in C# and an expert in JavaScript (including at least one SPA framework) is practically impossible. As you get better in one, your skills will suffer in the other. It can be done, but it takes a tremendous effort (been there, done that - Angular front-end and WebAPI backend as a lead developer with only one other developer on the team). By allowing C# developers to go all the way to the full front-end with C#, we reduce the skills necessary for some teams. Yes, there is still definitely a place for SPA frameworks. However, now a shop has options. If they have two developers, they don't have to dedicate one to each language (or be ok with mediocre in both developers).
      The lie JavaScript has taught us is that the only way to truly exist on the web is through mountains of JavaScript code. That's just not true. Not every web application needs to be a client-side app. Not every web app needs to be a full SPA. Not all code on the front end of the web needs to be written in JavaScript.

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

      @@IAmTimCorey Woah!! You brought a Model M to a membrane and rubber domes fight!

  • @kmills-swimmin
    @kmills-swimmin 3 роки тому +1

    Around 18 mins in you mention news sites like CNN, etc. Hypothetically, which of these project types would you recommend for CNN? I feel like it would be Blazor Server? To try and reduce that huge initial load, and still allow for the interaction. Would you agree? P.S. You are amazing, you're the first person I'll be donating to on Patreon ever.

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

      I would probably lean towards Razor Pages. Blazor is best when there is user interaction (capturing user input, etc.). CNN is mainly used for consumption of content. Razor Pages are really quick and light. They are also simple. Later, if you want to add in Blazor Server (or MVC or API), you can easily just add it in for the pages that need it.

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

    very comprehensive answer, thanks Tim

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

    Thank you for this! I just got a technical challenge and this info helped me to plan what to do.

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

    Thanks for that video! that was good and clear. I'm lazy to change to blazer but this video encourages me.

  • @gavingreenhorn
    @gavingreenhorn 5 місяців тому

    Thanks for this Tim. When I go to Microsoft docs trying just to home in on a starting point, I get easily overloaded with all the acronyms and discouraged.

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

    Excellent introductory presentation.

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

    Tim do you make a full playlist for a Blazor Server web application in the future?

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому +4

      I will add that great suggestion to Tim's list. In the mean time, get a head start using this list of Tim's Blazor videos - ua-cam.com/users/IAmTimCoreysearch?query=blazor

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

      +1 - I as well would love to see a full series using Blazor server. It’s such a powerful tool for so many use cases out there.

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

    Awesome! What a good question, thanks for your introduction.

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

    What would you recommend for an e-commerce site? I was thinking of starting in MVC but you think blazor server would be better? Would I still use mvc architecture?

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

      I'm just using Asp Net Core MVC .Net6 to build E-Commerce now! Mostly I use MVC but I tried Razor too! I do prefer MVC though! But definitely I'm interested in Blazor never used!

  • @troymitchel4790
    @troymitchel4790 11 місяців тому +1

    Hey Tim, could you make an updated version of this video comparing .Net 8 technologies?

    • @IAmTimCorey
      @IAmTimCorey  11 місяців тому +1

      It is coming, but not right away, though. I want to get some things built with Blazor first.

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

    Next time I would like to see some diagrams or text on the screen. Hard to follow when I can only listen to your voice and try to get that information into my head

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

      We are still working through this. The issue is that you are seeing a podcast. It is meant to be listened to. You get to see extra because you are watching it, but I don't want the listening experience to be less valuable.

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

    Which project type will you suggest to build real time web application like stock trading application?

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

      Blazor server is perfect for that.

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

      @@JoePiotti Could you elaborate, I'm also looking into this so it would be nice to get an explanation as to why Blazor is a good choice.

  • @pw.70
    @pw.70 3 роки тому +1

    Excellent explanations - thanks Tim.

  • @jonbordon3406
    @jonbordon3406 3 роки тому +6

    Thanks for a great explanation! I have a question. People talk alot about the downside that you can’t use a Blazor server app when the network is down, but who tries so surf the web when the network is down? Pretty much all sites become pretty useless without an internet connection, right? What am i missing here?

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

      My thoughts exactly.

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

      Web applications can definitely benefit from offline access. For instance, the cable company where I used to live used a web application for their technicians. That way, their technicians could use any phone/tablet they wanted. However, their technicians were working on installations where the Internet might not work so they made the web app a PWA with offline capabilities. The tech would fill in the work ticket information offline (if necessary) and would then sync it when they got back online. Delivery services also use systems like this.

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

      On point, I don't know why everyone keeps calling it downside...what do you wanna do on the browser if the server is down?? There's no magic about it, it should just disconnect

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

      @@kevinmungame1869 To me, coming from a desktop developer background it's not something conceivable that one user click in the front-end trigger a round trip to a server. And I am not an ecologist! Therefore I have never been interested by Blazor Server but Blazor Webassembly is another story.

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

      Its about the purpose of the app... If the primary purpose is presenting info offline is pretty useless. If its about collecting information offline could be vital.

  • @the-nasim
    @the-nasim 3 роки тому +1

    Frontend: Next.js
    Backend: ASP.NET Core
    Perfect combination 😍

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому +2

      Well... That is an option 😉

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

      If u uave blazor, why would use inefficient javascript?

    • @the-nasim
      @the-nasim 3 роки тому

      @@SayWhaaaaaaaaaaaaaaaaaaaaaaat Well because first of all I know Next.js 😁 and currently learning ASP.
      The cool thing about next.js is that it can generate static page. Which is just html, css. After that it can behave like a react application.
      Next.js has many cool feature that is well suited for most of the websites.
      And I think webassembly is overkill for basic pages like blog, portfolio etc.
      At the end, It always depends.

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

    Thank you. I was researching what environment and architecture I might need for an application I am building. Sounds like Blazor Web Assemblies it is. Now time to learn it. :D

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

    Thanks for the video. I'm a junior at a company that has an old Web Forms app that I work on, but they're phasing it out this summer so, I'm looking for a new job and I'd like to be prepared/start a couple projects with a frequently used framework. I don't want to be in this position again lol. I'm starting to learn JavaScript as well, so I'm hoping I can transition to a JS role eventually.

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

    Great run down but there was one point that was not mentioned.
    Blazor is a Single Page Application (SPA) that has some limitations, disadvantages over MPAs.

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

      @Soy Orbison, sure if you're debating SPA versus MPA but the topic is what to use from the .net ecosystem, and knowing the advantages disadvantages of Blazor SPA versus Razor Pages MPA is necessary knowledge.

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

      Lol. Imply a problem but don't provide even a few example details. That's helpful.

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

    Hey, Tim! Thanks for the video. It was very informative.

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

    Hi Tim, I need to develop an intranet that connects to sql (EF) and also to a Sharepoint site (Graph). What kind of project do you recommend? blazor? razor? both? Ty!

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

      I'm sorry, I really can't give you a specific answer. You need to figure out what works best for your specific situation. For instance, as a consultant, there were about 30 things I would evaluate to make a decision on which technology to use in a given situation, and it would even change per-project.

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

    What is the difference between a DTO and a ViewModel and how do you use them?

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

    In our company, every problem looks like a Mendix application. This is because they bought it before proper evaluation and it is so expensive, they are trying to utilise it everywhere.

  • @kirillzlobin7135
    @kirillzlobin7135 6 місяців тому +1

    So Blazor Web Assembly is like an analog of React from Microsoft world?
    And Blazor Server is like Next.JS correct?
    I just need to wrap my head around this new stuff for me, as I am coming from JS world :)

    • @IAmTimCorey
      @IAmTimCorey  6 місяців тому +2

      This can be a confusing topic. What makes it even more confusing is that Microsoft combined the two concepts into one in .NET 8. But let me explain each individually first.
      Blazor WebAssembly (WASM): Similar to React, yes. It is fully client-side rendered.
      Blazor Server: Somewhat similar to Next, but also different. It is a Server-Side Rendered language (SSR), so no code goes to the client. However, it uses SignalR (really just a wrapper around Web Sockets) to give real-time client-side interactivity. That gives you the safety of a server-side language while giving you the functionality of a client-side language. The only downside is the constantly-open connection to the server (super-tiny, so you can have thousands of connections on even a decent web server).
      Now let's discuss .NET 8. In .NET 8 we have two Blazor projects:
      Blazor WebAssembly - Yes, this one still exists because you can make a PWA and run your web application offline.
      Blazor Web App - This can do SSR, Server, and WebAssembly all in one project. You can use SSR for pages that don't need client-side interactivity (or not much, since there can be a little). Then you can also have components that are Server or WebAssembly. This means the page could be SSR, but a small piece could have client-side interactivity. The really nice one is when you say the component is Auto. That means that the component renders initially as Server, since a Blazor Server component is very quick to render (but relies on that connection). However, in the background, the WebAssembly version of that same component is downloaded to the client. When the download is complete, the component is swapped out for the WebAssembly version. The client will use the WASM component from then on, including on future page renders. This gives you the initial speed of server-rendered Blazor Server and then gives you even more speed with the client-side rendered component without needing to wait for the initial download and now without having to rely on a constant SignalR connection anymore either.

    • @kirillzlobin7135
      @kirillzlobin7135 6 місяців тому +1

      @@IAmTimCorey Thank you for such a detailed answer. You are the C# Legend

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

    Tim, which one do you prefer (Angular, Vue or React)?

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

      I prefer Angular because it is more like c# to me. Yes, it has a steeper learning curve, but like I said it was more natural to me to go along with web api.

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

      ​@@kevincordell9539 I move to web apps soon, and sure I give an angular test, thanks for stating that.

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

      I prefer to keep all of my development in one language (C#) whenever possible. It allows my developers to be more of an expert in the language because they aren't trying to be an expert in two languages. However, when I can't, I tend to lean towards Vue. It is simpler than the other two, with less to go wrong and less to learn. I used to use Angular, but they burned me with the move from 1 to 2. I'm really not a fan of the rapid iterations on any of them. It makes developing an enterprise system really hard.

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

      @@leeroy1986 Thank you so much for the clarification.

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

      @@IAmTimCorey Thanks so much, your point of view always makes things easier.

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

    Hi Tim! Question:
    I'm planning to build a very small website in which users can order tickets for an event organized by a voluntary organization. In the past the 200 tickets for this event were sold out after 3 minutes. So this website should be able to handle around 200 users in 3 minutes. I don't have to implement payment functionality. This organization will contact the people that have ordered a ticket for the payment afterwards.
    I'm doubting if I should use MVC, Blazor Server or Blazor Web assembly. Performance is key. Which project type would you suggest?

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

      The fastest for your situation will probably be Razor Pages. They are super-quick.

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

    you are the man!

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

    Hi! Thank you very much for posting this video as it answers all my questions :)

  • @FiveNineO
    @FiveNineO 3 роки тому +29

    The stack is getting quite confusing if I'm honest

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому +4

      All the more reason to stay up to date with Tim!

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

      MVC will be around. But if you're just starting out just go with Blazor Server side or .NET api + Javascript. Those are the most popular to use at work.

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

      @Soy Orbison Yeah it's easier but I think you have to ask yourself why we even define a class in the beginning? I mean look at typescript, it's becoming really popular because typed languages save so much in regards of errors.

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

      @limelight81 But when would you need to consume an arbitrary structure in your webapp, you can only process it when you know what you want to do with it (unless it's some sort of data testing thing). And as you say, it's also possible with stuff like blazor.

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

      @limelight81 front end JavaScript guys will always go with untyped, error prone script. Blazor with the front end running converted c#, solves this for OOP guys.
      People don’t know what they don’t know. Script guys are usually surface level understanding of oop, if any.

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

    Great video! Your explanation was a huge help

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

    I still miss Web Forms. In my experience it was the fastest way to launch an application. Even without drag and drop thing. I never became fan of MVC project type. Especially with EF. I always enjoyed ADO.NET and used in most projects as data access tool.
    I know web forms doesn’t fit into the modern web development environment but I think, I had my best time in development with it. Razor Pages is my choice now.

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

      Have you checked out Blazor Server yet? It isn't exactly the same as WebForms, but the spirit of WebForms is absolutely there. It is quick to build, it is quick to reuse "pages" as components, and it has the best of both client-side and server-side development.

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

      @@IAmTimCorey I’m hearing a lot about Blazor Server these days. I heard quite good things when it comes to single page application development. But I’m still not sure if I can make complex ERP applications with it.
      But I guess I need to try it before I come to any conclusion.

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

      While it does act like a single page application (SPA), it isn't really the same thing. It has the same scalability of any web application for making complete ERP applications. The biggest "concern" you will need to have is on the scaling of the SignalR connection. A good server can handle between 10,000 and 20,000 simultaneous connections. After that, you need to either offload your SignalR to Azure SignalR or spool up a second web server. Not really an issue since you probably need to scale everything up at that point anyway (remember, this isn't 20,000 connections per day but at one time so you can have hundreds of thousands of daily visitors without issue).
      Here is an intro video on Blazor Server: ua-cam.com/video/8DNgdphLvag/v-deo.html
      If you come to the point where you want to move forward with Blazor and need to know more, my Blazor Server In Depth course will really help: www.iamtimcorey.com/p/blazor-server-in-depth

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

    What about a video explaining what (auto) mapper is better to use?

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

      Thanks for the suggestion. In general, Automapper is probably the way to go.

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

    Excellent overview!

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

    Excellent video Tim!
    Thanks!

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

    I giggled about you saying people getting scared about 10mb of data I thought the days were over of people worrying about it. Even public wifi (I know shouldn't be used) is still bad but you can get a website downloaded on your phone or laptop browser client fast, yes if they were a bigger distance away from the server it would be slow like connecting to a server in the UK from the US (just an example). I think I'm going to try and become very well known with blazor I think it would be much better within a company.

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

    Thanks Tim. Could you please tell me the name of the cheap hosting service you mentioned at the end of the video?

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

      Here is a link to them (affiliate link): www.interserver.net/r/589892
      Make sure to get the ASP.NET hosting (which handles .NET Core just fine).

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

      I use this one: also very inexpensive and great service: winhost.com

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

    Thank you so much for this video. amazing video. I love Microsoft Technologies.

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

    Good explenation. Solved a lot my concerns.

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

    Very good, many doubts I had.
    I'm wanting to use Blazor in a project with almost 2000 tables, I don't know if it's suitable for something like that. I will have to find out.

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

      Sure. Just remember that humans don't have the ability to comprehend that much information on the screen at one time. Show what they need to make a decision (it is less than you think). Paging, caching, etc. will make your site very responsive.

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

    I really loved this show!

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

    I wonder blazor and blazor assembly are two different project types. And offloading Signal R to azure Signal R servers , are new stuff man. Thanks for making jargons a bit easier.

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

      Yep, Blazor Server and Blazor WebAssembly are two different project types. I am glad you learned something new.

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

    Awesome analogy there Tim :)

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

    Blazor server seems to be very good. But can you please guide in what specific scenarios it might not be suitable to use? Why having an always-on connection be a problem?

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

      Offline access. That's the big one.

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

    This video is amazing! Thank you Corey. This is how an education video should be. Clear and informative! Just to the point.

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

    Great vid, Tim. I now got a clarification on the differences of these frameworks. On a different note, will you have a video covering microservices? Currently have a project and was thinking if I should do microservice as more services will be coming in the future.

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

    Tim, you are an absolute blessing man. Thanks. A question for the next Dev Series,
    In Desktop we had RDLC and Crystal Reports to design reports. Now that I have moved to Web is there a tool that is as good as these two? I am having a hard time customizing and exporting reports to pdf.

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

      I use Telerik Reports, I worked for many years with Crystal Reports and SQLRS, I found in Telerik Reports what I needed, you can do the Reports with the Visual Studio Designer or with the Report Designer (Windows only), but what I like most is Telerik Report Server, where I publish all my reports and then run on my ASP.NET MVC or Blazor Client applications.

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому

      I noted your recommendation by adding it to Tim's list of possible future topics, thanks.

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

    Thanks Tim great video

  • @paulgehrman
    @paulgehrman 2 місяці тому

    Blazor WASM is my preferred choice. Way, way better than MVC, and orders of magnitude better than Angular.

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

    Thanks for the Vid, great as always, I'm sure a while back I saw a video of Blazer Server and Webassemby in the same solution, would this give you the offline support and also PWA? is is something to consider, or not much benefit?

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

    Tim - can you clarify your statement about web forms here in that you said web forms will not be in .NET core and is basically EOL in Framework. This seems to contradict a newer video you made on VS 2022 by saying .NET 6 and future will be the only frameworks supported in VS 2022 while at the same time VS 2022 provides great new support for displaying web forms content in the designer.
    Understanding of course web forms will still only run on Windows, can you clarify if web forms will still use Framework or will we be able to target .NET 6?
    Great work, thanks!

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

      That was preview 1. Preview 2 fully supports .NET Framework. No .NET Core for WebForms though.

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

    I will learn a bit more on Blazor, haha!

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

    If you do not need SEO - use any you want. But all IT history going to Containers. Immutable "bytes" (not script file) as Container - best choice, imho. Compile before send to Client - for ever )

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

      I am not sure what you are trying to communicate here. Containers (I'm assuming Docker containers) just hold a web application. Which type of ASP.NET Core web application you use in a container is up to you. You wouldn't send a container to an end user to run your site. That would be impractical. If you mean you would send them to a customer who used them as their web server, that would work. However, only the image is immutable, not the container. It also does not really protect your sensitive data to be in a container.

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

    gr8 vide like always keep going tnx a lot for your efforts

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

    Nice explanation, thanks a lot!

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

    Hi Tim, is Razor and/or MVC in danger of getting phased out like web forms, in maybe 3 years, due to Blazor support? cheers

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

      No, I don’t think so. They each serve a purpose still, plus they are web standard designs, unlike WebForms.

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

    Blazor server is not fast at all actually while rendering changes on client. Users will have a lagging feeling if it’s not an intranet application. For dynamic client pages, blazor webassembly should be the way to go. Yes blazor server is much easier to arcihtect but it’s only good for intranets

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

      I have not had that experience on the web (running production apps on a cheap web host). It sounds like you had some bad configuration or you were pushing way too much data to the screen somehow. Blazor Server can handle thousands of records on the screen while scrolling with very little issue. Plus, now with .NET 5 and the Virtualize tag, you can have millions of records and yet have a smooth experience.

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

      Probably used an Azure free tier and didn't enable Web sockets, lol.

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

    Very educational, suscribed.

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

    Hey Tim nice video! My question is, what are the techniques that we can use to implement SEO better, since Blazor Web Assemblies, for instance, don't take that in account and just return simple HTML to the search engines. Thanks!

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

    hi tim, i building a website with blazor web assembly, which needs to SEO Freindly, i didn't find any material for seo in blazor webassembly could you please make tutorial regarding this topic ,
    by the way huge fan of your tutorial and your timco retail manager project is GOLD

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

    Hi, Tim! I really hope you can give me an advice. I want to start a new web project, where i want the sql server DB in the cloud.
    (A small desktop tool will send all the data to sql server frequently) All i need is,this application should just pick the data from cloud and show it to the client. (Just Reports only.. with graphical presentation, No data addition,deletion. Just view the reports with user's queries.) Which project type should i use.?? I am new to web app completely. Also suggest which graph component should use.. thnx in advance..

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

      hi, could you share in which project type you made this project in the end?

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

    Excellent video, thanks!

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

    Hi, Tim! I really hope you can give me an advice.
    I want to start a new project, exactely a website for selling products, where users can create new account, login, publish new ad etc.
    Wich c# web application should i use? I was thinking at MVC, but i need an advice from a professional like you. Thanks!

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

      It all depends on the project, what you want to do with it, and more. There isn't one right answer that fits those criteria.

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

    Blazor server is the best, for way bigger project I would likely consider razor pages

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

      There is no best in my opinion. Each has their strengths and weaknesses and you choose what is best for your specific situation. All of these can handle a large application.

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

    I would like to go with WASM but I still need to hit web services, not API's, is that a problem?

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

      It depends on the type of web service. Remember that nothing is secure on the client-side, so you can't put access tokens or other items in the Blazor code that authorize the application to talk to the web service. If you can use application authorization or ask the user for credentials, then you will be fine.

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

    Nice summary Tim. So it sounds like mostly it's a combo of Web-API + Razor Pages these days where the Razor page is basically hosting/containing the front-end JS client (aka, Angular, React, or even html/css + pure js etc). Is that a correct assumption? That's kinda where I landed recently doing a small one-off time-tracking app for our family biz.

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому

      We hope Tim's videos continue to help you grow your skills to help support that family business.

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

      @@tomthelestaff-iamtimcorey7597 I guess that's a 'yes' then to my question... ?
      Thank you though either way.

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

      No, the answer to the question is that it depends. If I were starting today, I would probably use Blazor. Lest context switching between languages.

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

      @@IAmTimCorey Yeah, for pure greenfield I'm kinda ready to go Blazor (where as a year back I felt it wasn't quite there yet); beyond the context switching I am personally 100% tired of the insane complexity of the front-end stack. It feels like current JS UX approach has 'jump the shark' and I've actually gone back to writing vanilla JS for my small projects.
      Anyway, thanks for the clarification Tim, appreciate it.

  • @getsmartpaul
    @getsmartpaul 2 роки тому +2

    Do blazer client apps run in mobile apps on iPhone and android?

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

      Blazor WebAssembly can be a progressive web application (PWA). That means that you can install it on any client (iOS, Android, Mac, Linux, Windows, etc.) as if it is an application. However, it is just a small wrapper around a headless browser window. This is a way to get your web app to look and function like a mobile app for practically free. However, it does not have access to anything more than what a regular web application has access to. You cannot get access to any specific resources like a mobile app can.

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

    1, put it double speed (not even 1.75). 2. listen to his analysis, but put the weight the opposite way. For example, he mentioned api, but put it the least weight. In reality, do that opposite. Use Angular.

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

      This is like coming into a discussion on what different screwdrivers do and insisting that the right choice is a hammer. Different tools have different jobs. Different web application types have different jobs, which is what I was conveying. I'm not sure if you think I was de-emphasizing API or emphasizing it, but API is an important tool that every web developer should know how to use. It just isn't the solution to every problem.

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

    Another great Video.

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

    Thanks!

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

    Just what I needed, looking at porting /g an Angular app to a Microsoft web project. Looks like I will go a mix of Blazor and Api, just not sure if I want to do WebAssembly or Server. Can they be mixed? Is there even a use case for that?

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

    Great job. One video, introduces the five type of projects.
    As I have go through most of the video, I have one suggestion. It is good to have, some text animation along with the video. Especially when you are explaining about the n-categories (topic like this), if we missed something where are in middle, then the text may guide us. Thank you.

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

    Hello,
    I wanted to build 2 different projects
    1. A customized management or Enterprise Software Cloud based (SAAS)
    2. Air Ticket booking application (B2B,B2C) with Back office functionality
    can you tell me which project type to use.

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

      There are a lot of factors that go into those decisions. It will need to be you that ultimately makes that decision.

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

    Thanks for some great info--but, the title includes Razor Pages, which are not covered at all in the video. :[

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

    Great video again

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

    Quick info: MVC is actually just a architectural pattern. But Microsoft developed a technology for implementing it easily

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

    What technology do you use in your website and why?

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

      It depends on which part. For my courses, the site is currently hosted by Teachable (since they host my courses). However, we are working on building a separate website from Teachable and hope to release it later this summer. That version will be just HTML and CSS. The C# Mastercourse landing page ( www.csharpmastercourse.com/ ) is just HTML and CSS. For the suggestion site ( suggestions.iamtimcorey.com/ ), I wrote that in C# with Blazor Server as the front-end. For another upcoming site, I'm going to be using Razor Pages. For a still further site, I'll probably use Blazor WebAssembly and API. Each solution is determined by the specific situation and problem I need to solve.

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

    When you compare & contrast Blazor Server vs. Blazor WebAssembly... you seem to imply that the latter requires an API to function but the former does not. Am I crazy, or wouldn't we *still* create an API as a "middleware" layer even for a *production* Blazor Server app?

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

      The difference is required vs optional. In Blazor WebAssembly, you have no option but to use an API if you want to access a secure database. With Blazor Server, you CAN use an API but you can also connect to a SQL database using just a class library (or even "directly") just like any other server-side ASP.NET Core project (like Razor Pages, MVC, and even API). As for what we would do, it depends on the situation. An API adds significant overhead. You have to identify if the additional overhead is justified and offset by other factors.

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

      @@IAmTimCorey yep I guess when I said "production" I was implying the tendency for any real product (FB, IG, banks, etc.) to have both a web and mobile app client. I think that makes the API "required" for any real customer-facing business that wants to provide a mobile app experience.

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

    Interesting that you get asked this question a lot. I think people that ask this question are not practicing enough. It's like asking "which fruit is the best". Or your comparison is better "which tool type is the best".

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

      It comes from not actually having used them all, which is understandable. If you haven't used any yet, you will want to know which one is the best.

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

      @Soy Orbison true, true. But it's like if you read things like the Buddha's teachings: often people come to the Buddha with a question, and often the Buddha makes that person realize that that question is not important at that moment, and there is an underlying thing that one should focus on.
      I'm quite active on stack overflow, and often you see questions like "how can I optimize this code" by people who don't seem to yet understand the fundamentals of programming. Imho they should focus on other things first

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

      @Soy Orbison I was thinking of a second similarity, which you actually see quite often: people starting playing electric guitar and asking things like "which are the best pickups" and "I want to buy a $5000 guitar, which should I buy". While they should first focus on learning to play the guitar. Maybe join a band. See if they will actually like it for longer then a year (because many people actually drop the hobby within).

  • @NicholasAllen-uu9qc
    @NicholasAllen-uu9qc 6 місяців тому

    Do you ever see people mixing both Blazor Server App and WebAssembly into one project? I have a project where certain areas need to always be online, and other areas where it has to still function if connection is lost.
    Also, for WebAssembly what is the process for pushing updates and changes to the solution if a user already has it downloaded to their machine?

    • @IAmTimCorey
      @IAmTimCorey  6 місяців тому

      Have you seen the new Blazor Web App in .NET 8 (which mixes both and more): ua-cam.com/video/walv3nLTJ5g/v-deo.html
      As for WebAssembly, it updates itself in the background automatically.

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

    16:19 - if you don't already have more that one project then either your project is in the "small utility" realm or you probably have A LOT of refactoring to do in order to get that thing Clean, Testable and SOLID-compliant.

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

      For Blazor WebAssembly, the second project is another UI project (an API) as opposed to just a class library.

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

      @@IAmTimCorey Ahh. Thank you for the clarification.

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

    A lot of companies who build components to these projects still have more for MVC vs Blazor. However they are growing...