Launching a tool that allows you to encrypt log messages whilst leaving all the log statement meta data intact. The Log4Net message encryptor does exactly what it says in the title... it encrypts the log messages and only the messages. This means that all the time-stamps, log levels, thread information and any other metadata remain in plaintext within your logs. The tool uses the concept of the log4net forwarding appender meaning that any appenders referenced by the MessageEncryptingAppender receive a logging object containing the encrypted message contents, therefore, this tool should be compatible with any other appenders used by your current solution. The upshot of this is that log message encryption should be able to be plumbed into an existing solution with minimal effort and rework.
Exploring the need to constantly refine software architecture and in some cases start from scratch by looking at some architecture/system design anti-patterns. This post explores the situation where there is one overriding system design that all projects must work within irrespective of the actual project requirements.
Integrating Windor.Castle with Web API can seem like a daunting prospect, but with this article I'll demonstrate all the steps required to get the job done. This article takes you through creating a CastleDependencyResolver and a CastleDependencyScope that you can used to allow Castle to create your ApiControllers.
Making sure that ASP.NET MVC and Windsor Castle play nicely together is surprisingly easy, just as long as you know what steps need to be performed. This post will hopefully take you through the process of integrating Castle (or any other Dependency Injection container) with the latest version of MVC. At the end of the article, there will be a link to the Artisan Code GitHub repository that contains a reference MVC solution with all the setup code required. This can be used as a basis for a new project, or simply as a guide to help you integrate Castle into an existing project. Without any further ado, lets start looking at some code.