It's reading notes time! It is a habit I started a long time ago, where I share a list of all the articles, blog posts, and books that catch my interest during the week.
What is an RDP Browser? (And How To Get One) (Peter) - A great alternative when you want to test on different browser or version of a browser, for gaming, And also for cyber security when investigating.
It's reading notes time! It is a habit I started a long time ago, close to 600 weeks ago in fact, where I share a list of all the articles, blog posts, and books that catch my interest during the week.
Syncing a git branch between Windows and WSL filesystems (Andrew Lock) - It's true that by habit or reflex most people will think of Git as centralized... But it's not! Once you understand that so many possibilities are available. This post both summarize that and shows and example.
Low Code
Testing Your Native AOT Applications - .NET Blog (Marco Rossignoli, Jakub Jareš, Jakub Chocholowicz) - With code ahead-of-time (AOT) we still need tests but how to do it with that stripped version. of .NET? This short tutorial shows how.
How to automate tasks in Windows (David Nield) - Seeing things getting done by some automation you built is a nice feelingThis short post introduces 4 tools that will get you started with automation.
In this post, I will share a few things that we need our attention when deploying a .NET isolated Azure Function from GitHub to Azure using the Zip Deploy method. This method is great for fast deployment and when your artefacts are zipped in a package.
Note The complete code for this post is available on GitHub
Understanding Zip Push/Zip Deploy
Zip Push allows us to deploy a compressed package, such as a zip file, directly to Azure. It could be part of a continuous integration and continuous deployment (CI-CD) or like in this example it could replace it. This approach is particularly useful when you want to ensure your artifacts remain unchanged across different environments or when aiming for the fastest deployment experience for users.
While CI-CD is excellent for keeping your code up-to-date, zip deployment offers the advantage of speed and consistency. It eliminates the need for compilation, leading to quicker uploads and deployments.
Preparing Your Package
It’s crucial to package with all necessary dependencies the code required. There is no operation to fetch any external packages during the deployment, the zip file will be decompressed and that's it. The best way to ensure you have everything you need is to publish your code, to a folder and then go in that folder and zip all the files.
dotnet publish -c Release -o ./out
Don't zip the folder, it won't work as expected.
You need to go inside the folder and select all the files and zip them to create your deployment artefact.
The next step is to make your artefact available online. There are many ways, but for this post we are using GitHub Realease. From the GitHub repository, create a new release, upload the zipped file created earlier and publish it. Note the URL of zipped files from the release.
Preparing The ARM Template
For this one-click deployment, we need an Azure Resource Manager (ARM) template. This is a document that describes the resources that we want to deploy to Azure. To deploy the zipped file into the Azure Function there are two particularities that required our attention.
Here we define an Windows Azure Function and the WEBSITE_RUN_FROM_PACKAGE needs to be set to 1. The WEBSITE_RUN_FROM_PACKAGE is the key that tells Azure to use the zip file as the deployment artefact.
Then to specify where the zip file is located we need to add an extension to the Azure Function.
The packageUri property is the URL of the zipped file from the GitHub release. Note the dependsOn property that ensures the Azure Function is created before the extension is added. The complete ARM template is available in the GitHub repository.
One-click Deployment
When you have your artefact and the ARM template uploaded to your GitHub repository, you can create a one-click deployment button. This button will take the user to the Azure portal and pre-fill the deployment form with the information from the ARM template. Here is an example of the button for markdown.
[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FFBoucher%2FZipDeploy-AzFunc%2Fmain%2Fdeployment%2Fazuredeploy.json)
The has three parts, the first is the image that will be displayed on the button, the second is the link to the Azure portal and the third is the URL of the ARM template. The URL of the ARM template is the raw URL of the file in the GitHub repository, and it needs to be URL encoded. The URL encoding can be done using a tool like URL Encode/Decode.
Final Thoughts
Zip deployment is a powerful tool in your Azure arsenal by itself of part of a more complex CI-CD pipeline. It's a great way to make it easier for people to deploy your solution in their Azure subscription without having to clone/ fork the repository.
Video version
If you prefer, there is also have a video version of this post.
It's reading notes time! It is a habit I started a long time ago, close to 600 weeks ago in fact, where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
Is Your Container Image Really Distroless? (Laurent Goderre) - Nice post that explains a new way to improve security and more while building our container by going distroless.
Azure PowerShell Tips and Tricks (Paul Harrison) - PowerShell is a very interesting and useful script language.All those tips are pure wisdom!
DevOps
Beautiful .NET Test Reports Using GitHub Actions (Sean Killeen) - It's true that the unit test result in Azure DevOps looks amazing. Pretty nice adaptation in GitHub Action, could/ should it be native?
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
Blazor WebAssembly Virtual File System Access (Michael Washington) - A nice tutorial the show us how to keep file (aka data) in the browser of the visitor. All the code is available.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
Blazor Basics: Advanced Blazor Form Validation (Claudio Bernasconi) - Having control on the validation and how we guide our users is a must. This post does a great job at explaining how to to it within Blazor with clear and simple code sample.
An Introduction to Mistral AI (https://www.freecodecamp.org/news/an-introduction-to-mistral-ai/) - An interesting alternative to GPT when text is involved.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
Dapr v1.13 is now available (Dapr project maintainers) - I really like those post that goes over the news and also named all the contributors. This is when you see how many people are involved.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
Blazor and .NET 8: How I Built a Fast and Flexible Website (Jeffrey T. Fritz) - optimisation is often a step that people forgets, but it's one that is extremely rewarding.This series seams very interesting, we will s| more of those in the notes...
The FAST and the Fluent: A Blazor story - .NET Blog (Vincent Baaij) - Nice post that teach us a bit of history. I'm fan of Fluent UI and Blazor...and more recently of the Fluent UI Blazor library. I think it's a must for all Blazor developers.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, that catch my interest during the week. This week it's definitely more code focus.
If you think you may have interesting content, share it!
Cloud
Open at Microsoft - FluentUI.Blazor (Denis Voituron) - This post summarized the new series of videos about FluentUI Blazor done on Open at Microsoft, including the videos.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
Planning for Resiliency with Azure OpenAI (Matthew Anderson) - Like everything else in the cloud we need to think about resiliency. This nice post get us started and explains 2 different architectures for our system.
My Top 10 NEW Visual Studio Features of 2023 for .NET Developers - .NET Blog (James Montemagno) - I don't code everyday and when I do it's on all kind of device and OS so I end up more often using VS Code. But, when I can use Visual Studio it's always a treat. In this post, James shares his favorite new features part of that great IDE. Those are only the recent ones, there are so much more!
Scaling Docker Compose Up (Milas Bowman) - Interesting post that do a deep dive into docker compose file.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
How to Make Your Web Sites Accessible (Beau Carnes) - Accessibility is a must and now there a course available on camp to help us making our website accessible.
Dev Tunnels: A Game Changer for Mobile Developers - .NET Blog (James Montemagno) - Dev Tunnel is definitely a incredible tool.I used it for debugging connector in Power Platform and there is no doubts it will help with mobile app...No more guesses debug with the real thing.
Miscellaneous
Introducing Sudo for Windows! (Jordi Adoumie) - Wow! This is a really good new feature. How many time a forgot to start my terminal as admin and needed to starry over again...Looking forward to try it.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
Understanding C# 8 default interface methods (Andrew Lock) - Very clear post about the new feature available in interfaces, with great examples that make us understand why and when it is useful and how to implement it.
Code Visualization with CodeSee's Shanea Leven (Hanselminutes with Scott Hanselman) - Another very interesting episode. CodeSee definitely catches my attention, I'm planning to try it with my OSS project to get started.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
How to deal with API rate limits (Salma Alam-Naylor) - Perfect post to learn why rate limit exists (its easier to manage them if we understand them), and a few suggestions on how to deal with them.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
Cloud
Backing up files to Azure blob storage with azcopy (Andrew Lock) - A very interesting solution to a situation we are all facing. Nice to see the OSS project (I didn't know that one) and smart way to use Azure.
Simpler auth for Blazor Web Apps with Auth0? (Jon Hilton) - A wonderful tutorial very well detailed that explains how to use Auth0 with Blazor server app and search some gotchas so our experience goes smoother.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
FluentUI.Blazor v4.3 (Denis Voituron) - I recently migrate one of my website to use FlunentUI Blazor, and the experience is amazing. It looks great and required less code from me.
WebAssembly: 4 Predictions for 2024 (Matt Butcher) - Nice post that review 2023 predictions and sets 2024 ones explaining why it could happened.
Dockerfiles have versions? (DevOps and Docker Talk: Cloud Native Interviews and Tooling) - Interesting episode about a little thing that could have a big impact in our CICD and I'm sure is overlooked.
How to Focus When the World Feels on Fire (Modern Mentor) - Quick thoughts and tips to stay focus. Sometimes it's harder and other times and having a fews tricks his always a good idea.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
Using the CLI to Build and Run .NET Applications (Dusko Mirkovic) - This is a short tutorial that shows the basics functionalities of the command dotnet... Its very useful and it works on al platforms.
Scanning Uploaded Files for Malware in C# (Vladan Petrovic) - This post shows how to use a pretty neat tools to improve security in our C# app. And there is a free version.
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
Getting Started with Infra for Developers in Azure (Andreas Helland) - The ease of creating and managing virtual desktop is very useful in many scenario as this post shows. And Aspire looks just as amazing... What's your top favorite from the recent past events?
Azure Durable Entities Revisited (Ken Ross) - Durable functions are a great tools in integration and long process activities.This post is a very nice introduction on the topic.
Building a better internet with Cloudflare's Rita Kozlov (Hanselminutes with Scott Hanselman) - Just like Scott said: I'm a user of Cloudflare for years, but didn't gave you any money yet, is it okay? Learn if it is and why in this nice episode.
KubeCon Live with Friends 2023 (DevOps and Docker Talk: Cloud Native Interviews and Tooling) - A review of KubeCon, what's hot what's new and more.
Maarten Balliauw: Developer Tools - Episode 273 (Azure DevOps Podcast) - I really enjoy this episode with Maarten where he talks about Riders, and their vision of this IDE, and other different tools.
Blogging with guest Andrew Lock (Weekly Dev TipsWeekly Dev Tips) - Why should you blog, I mean now in 2023/2024? Listen to Andrew answering to this question. He knows what he is talking about, he blog every weeks and he is an author (love the book too btw).
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
Suggestion of the week
Getting Started with Blazor’s New Render Modes in .NET 8 (Jon Hilton) - Amazing post that covers the four rendering mode for Blazor in .NET 8.There just enough code to understand the concept and see the trade-offs and advantages of each options.
ai generated: melting snowman who love to read
Cloud
A Decade of Have I Been Pwned (Troy Hunt) - Congrats for this anniversary and what a journey it was.I remember reading with passion your tech blog describing the tech decision taken for the site.
Making Azure the Best Place to Observe Your Apps with OpenTelemetry (Matthew McCleary) - Looking back, tracking, monitoring, tracing are such important action when we think about application life cycle.I'm very happy to see Azure offers a great sets of tools to do it.
🤖 Does Functional Programming Matter To You? (Rob Conery) - Interesting and intriguing post about functional programming. Wanna share your thoughts? Rob is waiting for your comments...
It is time to share new reading notes. It is a habit I started a long time ago where I share a list of all the articles, blog posts, and books that catch my interest during the week.
If you think you may have interesting content, share it!
5 Awesome C# Refactoring Tips (Milan Jovanović) - Refactoring is an important skill to have. Most code grow by patches and at some point it needs some help.
Hot Reload for C# Dev Kit (Mark Downie) - Wow! Things are evolving so fast, we pass from syntax highlighting from hot reload so fast!