The coolest part besides the service itself is the built-in CI/CD workflow. To have that created automatically is just a nice feature of the dev workflow. Awesome!
Question: Have you ever done a video on how to manage responsibilities between classes? I've used a lot of your youtube content to help self teach myself c#. I'm starting to struggle with how to visualize and then organize the division of responsibilities between classes. Ie one class is dependent on another to have some of its properties filled out, which class should have the methods to fill those properties? Thank you very much for your content Tim. You have been the single best resource in my journey.
Would have been game changer if for example they enable receiving emails or notification so that visitors reach out to me. Having said that, this is awesome service and thanks azure for providing
The only problem with adding those types of features is that you start to expand the feature set and increase the complexity. Sometimes the best thing you can do is not add a feature. In this case, there are a lot of third-party services you could use to get messages from your site.
Azure is so scary... I won't start using it for my purposes because I'm afraid that there are 500 licensing nuances and hidden costs based on 1000 other things that I'll pay a fortune for even hosting a website. Sure you can set your limits but it's still so complicated that you can't really estimate the price.
My intention is certainly not to come across as rude, but you’re simply misinformed. Microsoft is super transparent with the pricing for their Azure resources. Hell, they even provide budgeting and estimated future cost reports to prevent unexpected bills. Seriously, it’s pretty difficult to get blindsided by runaway costs. Many of the Azure resources are basically free or super inexpensive just as Tim has shown in this video about static websites. I think what’s scary to most is that it sounds too good to be true.
a few years ago, I already had a charge that went over 1000 dollars and microsoft canceled it because it understood that I had set it wrong. today it's very simple to understand what you're doing. I don't pay more than $1 per month for apps to work.
I have a full course on Getting Started with Azure ( www.iamtimcorey.com/p/getting-started-with-azure ) that covers how to use it safely and without risking major bills. I demonstrate a TON of features, including some very expensive ones, and the total bill for everything I did in the course (including time off between recording) was $5, and that was covered by the free credit you get for signing up. Azure is really clear about pricing, but there are ways to put speedbumps in place as well to protect yourself from making expensive mistakes. That course goes deep into how to ensure you are safe when using Azure.
So can we use "static web app" for frontend and "web app"/"virtual machine" for backend? and can we call API in the frontend that is hosted in "static web app"?
So if you host your API on Azure App Service and Azure SQL and then have a Blazor Client App in Azure Static Web Apps, it should work? If you can do that, it would make your client available from anywhere and lower hosting costs.
Great tutorial, thank you.. Only issue I have is that the GitHub workflow requires a file index.html which is not included in the standard blazor web app template. I have added an index.html file to the wwwroot folder and the workflow now works successfully, however I dont seem to be able to view anything other than this index file, ie. the root of my application always defaults/redirects to the index.html. Do you have any suggestions.
Blazor Web Apps cannot be hosted in as Static Web Apps. They aren't static apps. They have server-side code that executes. A Static web app needs to be something that can fully run on the client's browser and that doesn't rely on the server to do processing (although they did add the ability to call an Azure Function). That means Blazor WebAssembly can run as a static web app, but Blazor Web Apps cannot.
Understood. I said it was for Blazor WebAssembly and other client-side application, but I could have been clearer that it wasn't for server-side languages (such as API, MVC, etc.)
The only warning about static sites is if you have any class libraries that are not from nuget that are not in your solution, it will fail on static sites but not with azure web app.
Great course Tim. I set up a new domain and it is running on the web, but the razor pages won't render online. You did mention azure static web hosting does not work with razor pages, but in this tutorial your site did deploy with razor pages. Is there an azure set up to add razor capability?
Razor pages are server-side rendered so no you can't use those on a static web app. My site didn't have razor pages, it had razor components, which are Blazor pages. Yes, that is confusing.
No, MVC requires server-side processing. You need a fully client-side system like Blazor WebAssembly, basic HTML/CSS/JavaScript, or a client-side framework like Angular/React/Vue.
I'm not sure what you mean. If you wanted to host multiple websites for multiple clients, you could do that on Azure for a reasonable amount. For instance, you could pay $70/month for an Azure Web App and host 20+ websites on it with all of the great features Azure has to offer. Or, if they were just HTML/JavaScript sites, you could host them on Azure Static Web Apps like I'm demonstrating here for free.
Hi Tim, this is a nice video as always. I am just wondering, how could I manag to have a stagin page with a new Ui, and prod page, with the ol version. Should I use two static app?
Hey Tim. Why do you think asp/blazor are surviving in this day where everything seems to be angular/react/vue ? What benefits do you have on blazor vs modern client side frameworks?
Couple of things to think through here. First, while Angular/React/Vue are popular, they are not the most common way to build a website. Whenever you see how popular they are, they are comparing them to other JavaScript frameworks. They aren't comparing them to other options (like PHP, C#, Wordpress, etc.) In that realm, JavaScript frameworks are a small percentage. Second, those three frameworks require heavy knowledge of JavaScript and the given framework (which rapidly changes). Blazor runs on C#, which is already being used in the Enterprise space. So, if you are already heavily invested in C#, why should you change to JavaScript and lose all of your advantages you have built up in C#? You can stick with C# and move forward faster.
There is one part you mentioned in the video I am guessing that is not free even though it was advertised that everything is free. I am guessing that custom domains are not free. What if a person does not even have a domain. It would be great if there was an option to create a free domain name. Otherwise, a person would have to use the randomly generated url.
Custom domains aren't free. I understand you would love to have everything be free, but the free content I show off is usually for development purposes. Once you get to production, you are going to have to pay for most things (and you should). Domain names are production items. If you want to use the free version, which I showed in this video, you use the domain name they give you. That's your free domain name. You don't get to pick it, but it allows you to have a domain name unique to you.
Apparently you can't use the completely free tier without having a credit card on the Azure portal. I tried to create a static web app, but Azure told me to upgrade my subscription. For Azure functions this is not necessary
You do not need a 'free subscription' in order to run static web apps for free. Use your existing account and create a static web app (you may need to search for it) then enroll for the 'Pay As You Go' subscription and when finalizing the creation, select the free hosting plan.
@@IAmTimCorey i do recommend shure mv7 for your type of voice or the blue dragonfly which is over expensive but will certainly take your audio to the ultimate level especially in your new treated room.
I have a question about doing a portfolio with azure static web app. The only problem I can see is how would the static site access files (like from database). Is there a way to have a portfolio site that does not require any database access?
Yep, you use an API. But your portfolio doesn't need to access a database. It can be just a static webpage. For instance, the www.csharpmastercourse.com site is all static content. I'm not pulling any data from a database, even though I could. By just having static content, it loads faster, gets higher SEO ranking, and is cheaper. Not everything needs to come from a database.
When the files are called "static", that just means they aren't generated on the server (like PHP or ASP.NET Core apps are - for instance, an MVC site is powered by C#, but the client only receives HTML and CSS, not the C#). The sites can still be dynamic in the content they display (like Angular, React, Vue, or Blazor WebAssembly). The difference is that the content is all downloaded to the content and then the pages are rendered on the client side. So in this case, we are downloading a Blazor WebAssembly project, which includes the .NET runtime. That's what the 8MB is for. You wouldn't use this for a simple website, but you would use it for a full web application. In that case, the 8MB is justified (and it is actually more like 3 or less when you actually build it for production).
@@IAmTimCorey Thanks for the response, it makes it clearer. One final query: how do I actually build it for production? Is there a flag I need to set in Azure?
No. A Single Page App (SPA) can be a Static Web App but a Static Web App doesn't have to be a SPA. For instance, a Static Web App could be just a simple HTML/CSS site.
They are free or $9/month, depending on if you want additional features or not. You can run a full website with custom domain, SSL, and even deployment slots for free.
How would SEO be handled for static Blazor WASM apps? It's my understanding that you would need a server if you wanted to enable pre-rendering and it isn't an option with Azure Static web apps. I know that Google's crawlers will execute JS for crawling SPA sites but many other search engines don't. With the CSharp Master Course website, are you just ignoring that issue and only relying on Google's indexing or is there another way to help with SEO that you're employing? Thanks!
Excellent video as usual but I think it would help not to make a deliberate mistake ;-) setting app location as Client instead of TimCoEnterprise? Beginners (like me) beware.
I struggled for two days with this but Tim's video helped me out. Here is what I had to do to mine to deploy properly: app_location: "/" api_location: "" output_location: "wwwroot" I am not sure why the default template for a Blazor project puts app_location: "Client"
Excelent video!!! I have a question. www.timcoenterprise.com/ -> Working timcoenterprise.com/ -> Not Working How to achieve redirection or how to make it work if the user is not putting "www."
That was just my oversite. I didn't add the apex domain (without the www) to the list of approved URLs in Azure. Just add an additional record for the apex domain and you are set. If you want it to redirect to one or the other, you could use your DNS provider to do that or Azure Front Door.
Data-driven sites, yes. For instance, if you had any type of state that meant your visitors could not be moved off to a new server so a simple round-robin wouldn't work. Plus, getting a site hosted in five different countries and keeping those in sync was difficult. Even now, try hosting a website in multiple locations around the globe without using a cloud platform. Figure out how to handle DNS, load balancing, and more. That isn't easy.