Image representing the Articles category

Building a NuGet Packages Architecture Part 6 - Enhancing your packages

Published 2 years ago

Welcome to the last episode in the article series on building a NuGet packages architecture for your own software development purposes. This is the last part in a series of 6 articles about building a software architecture based on NuGet packages and feeds. In this series you will see:

  • How to refactor your codebase to make it work with packages
  • How to build packages on your local machine
  • How to build packages using an Azure build pipeline and add the generated packages to a feed
  • How to consume your packages in your applications
  • Different ways to improve usage of your packages and types with service registration methods
  • Various tips and tricks to enhance your package and how to use them

In this article I'll wrap up the series by providing some additional tips and tricks to improve your packages, their usability and your development process using packages in general. In particular, I'll discuss:

  • How to add additional metadata and an icon to your package
  • How to add XML documentation for the types in your packages
  • How to add unit tests and run them as part of your build pipeline
  • How to debug the code in your packages

If you're interested in purchasing the entire article series now as a 60+ page PDF document, check out this post: Introducing a new article series: Building a NuGet packages architecture.

Read on ...
Image representing the Articles category

Building a NuGet Packages Architecture Part 5 – Service Registration Methods

Published 2 years ago

This is part 5 in a series of 5 articles about building a software architecture based on NuGet packages and feeds. In this series you will see:

  • How to refactor your codebase to make it work with packages
  • How to build packages on your local machine
  • How to build packages using an Azure build pipeline and add the generated packages to a feed
  • How to consume your packages in your applications
  • Different ways to improve usage of your packages and types with service registration methods
  • Various tips and tricks to enhance your package and how to use them

In this part you see different ways to add service registration methods to your packages, making consuming and configuring your types simple and straightforward.

If you're interested in purchasing the entire article series now as a 60+ page PDF document, check out this post: Introducing a new article series: Building a NuGet packages architecture.

Read on ...
Image representing the Articles category

Building a NuGet Packages Architecture Part 4 - Consuming packages and managing changes

Published 2 years ago

This is part 4 in a series of 6 articles about building a software architecture based on NuGet packages and feeds. In this series you will see:

  • How to refactor your codebase to make it work with packages
  • How to build packages on your local machine
  • How to build packages using an Azure build pipeline and add the generated packages to a feed
  • How to consume your packages in your applications
  • Different ways to improve usage of your packages and types with service registration methods
  • Various tips and tricks to enhance your package and how to use them

In this article I'll complete the process of migrating to a package-based architecture by updating the demo application. I'll remove all project references and replace them with a package reference instead.

If you're interested in purchasing the entire article series now as a 60+ page PDF document, check out this post: Introducing a new article series: Building a NuGet packages architecture.

Read on ...
Image representing the Articles category

Building a NuGet Packages Architecture Part 3 - Adding packages to a feed using a pipeline in Azure DevOps

Published 2 years ago

This is part 3 in a series of 6 articles about building a software architecture based on NuGet packages and feeds. In this series you will see:

  • How to refactor your codebase to make it work with packages
  • How to build packages on your local machine
  • How to build packages using an Azure build pipeline and add the generated packages to a feed
  • How to consume your packages in your applications
  • Different ways to improve usage of your packages and types with service registration methods
  • Various tips and tricks to enhance your package and how to use them

In the previous article you saw how to create packages from your projects on your local machine. In this article I'll take these concepts a step further and set up a build pipeline in Azure DevOps to automatically build NuGet packages and publish them to a feed so they can be accessed by Visual Studio and other tools.

If you're interested in purchasing the entire article series now as a 60+ page PDF document, check out this post: Introducing a new article series: Building a NuGet packages architecture.

Read on ...
Image representing the Articles category

Fixing the error "rzc rewritecss exited with code -2147450730."

Published 2 years ago

While working on an existing .NET Core project I ran into a number of SSL issues (where suddenly certain ports on my localhost would no longer serve up a site with a valid SSL certificate). In order to rule out an issue with my existing project, I created a new .NET Core 6.0 web application. However, that failed to compile and presented me with this error message:

rzc rewritecss exited with code -2147450730.

I searched Google and found a few references to this error but they all seemed to deal with .NET Core 3.x and none of the answers worked for me.

Read on ...
Image representing the Articles category

Building a NuGet Packages Architecture Part 2 - Building packages

Published 2 years ago

This is part 2 in a series of 6 articles about building a software architecture based on NuGet packages and feeds. In this series you will see:

  • How to refactor your codebase to make it work with packages
  • How to build packages on your local machine
  • How to build packages using an Azure build pipeline and add the generated packages to a feed
  • How to consume your packages in your applications
  • Different ways to improve usage of your packages and types with service registration methods
  • Various tips and tricks to enhance your package and how to use them

In this second article, I'll take the application I refactored in part 1 and build packages locally from the projects I extracted out to a separate solution. I'll also show you how to test and use your packages locally. Part 3 then shows you how to automate this process with an Azure DevOps build pipeline.

If you're interested in purchasing the entire article series now as a 60+ page PDF document, check out this post: Introducing a new article series: Building a NuGet packages architecture.

Read on ...
Image representing the Articles category

Building a NuGet Packages Architecture Part 1 - Introduction

Published 2 years ago

This is part 1 in a series of 6 articles about building a software architecture based on NuGet packages and feeds. In this series you will see:

  • How to refactor your codebase to make it work with custom NuGet packages
  • How to build packages on your local machine
  • How to build packages using an Azure build pipeline and add the generated packages to a feed
  • How to consume your packages in your applications
  • Different ways to improve usage of your packages and types with service registration methods
  • Various tips and tricks to enhance your package and how to use them

In this first article, I'll set the stage with an introduction to NuGet and the sample application I'll use throughout this article series. You'll see how I refactored my code so I can extract packages from it. In part 2 I'll then show you how to create packages from these refactored projects on your local machine. Later articles then show you how to build these packages automatically and add them to a feed using an automated Azure DevOps pipeline.

If you're interested in purchasing the entire article series now as a 60+ page PDF document, check out this post: Introducing a new article series: Building a NuGet packages architecture.

Read on ...
Image representing the Articles category

Improving your ASP.NET Core site's file handling capabilities – part 2 – Data migration

Published 3 years ago

In part 1 of this article, I showed you how to hide file management in an ASP.NET Core application behind an interface and how to build concrete implementations of File Providers that target the local filesystem and Azure storage. With that setup, the application can work with files without knowing where they are stored. This in turn makes it easy to move away from files on the local filesystem to files in a remote location like Azure storage and also facilitates unit testing.

But how do you actually switch your data from one storage location to another? That's the topic of this article.

Read on ...
Image representing the Articles category

Improving your ASP.NET Core site's file handling capabilities – part 1 – Introduction

Published 3 years ago

In a previous article I talked about hiding email capabilities behind an interface to make your code easier to unit test, to centralize configuration and to make it simple to switch to a completely different solution such as a cloud-based email handler like SendGrid, MailChimp or MailGun. Instead of newing up an SmtpClient directly, I created an interface called IMailSender and several concrete implementations that handle the sending of email differently (such as storing it on disk as .eml messages, sending it over SMTP or sending it with SendGrid).

In this article (and the next) I am going to talk about a similar improvement: handling files in a filesystem. I'll show you how to hide file handling - reading, writing and deleting files - behind an interface, similar to how I hid the emailing details behind IMailSender. I'll then create two concrete implementations: one using the local filesystem, the other using Azure storage. I'll then show you how to use dependency injection to inject one of the concrete classes at run-time to determine where your files are located and how to access them. With this setup, it's easy to write code to target yet another (remote) file storage solution like Box or OneDrive and plug that in without making any changes your application code.

Read on ...
Image representing the Articles category

Improving your ASP.NET Core site's e-mailing capabilities

Published 4 years ago

Many websites depend heavily on e-mail: they send account confirmation e-mails, password reset e-mails, order confirmations, back-in-stock notifications and much more. Despite its importance, I often see that sending e-mail is an overlooked area when writing well maintainable and stable code. It's also often overlooked when monitoring sites and lots of code I have seen just assumes the mail server is up and running. But problems will occur; mail servers will go down, passwords do expire or get changed without updating the web site and more.

In a preceding article you saw how to monitor your site's SMTP server using an ASP.NET Core health check. While it's great to be notified when your SMTP server is unavailable, it would be even better if your site has an alternative way to deliver the messages when the primary SMTP is not available.

In this article, I'll show you a couple of ways to improve the way you send e-mails from your ASP.NET Core applications. In particular, I'll discuss:

You'll find the full code for the article as a download at the end of this article, as well as in the Github repository for this article.

Read on ...

Mobile: False

Crawler: True

I: False