<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blogs on Ben Foster</title><link>https://benfoster.io/blog/</link><description>Recent content in Blogs on Ben Foster</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>&lt;a href="https://benfoster.io">Ben Foster&lt;/a></copyright><lastBuildDate>Mon, 14 Nov 2022 09:00:00 +0000</lastBuildDate><atom:link href="https://benfoster.io/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Minimal API validation with ASP.NET 7.0 Endpoint Filters</title><link>https://benfoster.io/blog/minimal-api-validation-endpoint-filters/</link><pubDate>Mon, 14 Nov 2022 09:00:00 +0000</pubDate><guid>https://benfoster.io/blog/minimal-api-validation-endpoint-filters/</guid><description>ASP.NET 7.0 included support for Minimal API endpoint filters. This post looks at how you can use this feature to validate requests using Fluent Validation.</description></item><item><title>ASP.NET 6.0 Minimal APIs - Why should you care?</title><link>https://benfoster.io/blog/minimal-apis-why-should-you-care/</link><pubDate>Thu, 09 Sep 2021 12:26:10 +0100</pubDate><guid>https://benfoster.io/blog/minimal-apis-why-should-you-care/</guid><description>The response to ASP.NET 6.0 Minimal APIs has been fairly mixed. In this post I attempt to address some of the questions and concerns raised by the community and explain why Minimal APIs are an important step forward for ASP.NET.</description></item><item><title>Custom Model Binding in ASP.NET 6.0 Minimal APIs</title><link>https://benfoster.io/blog/minimal-apis-custom-model-binding-aspnet-6/</link><pubDate>Thu, 02 Sep 2021 12:26:10 +0100</pubDate><guid>https://benfoster.io/blog/minimal-apis-custom-model-binding-aspnet-6/</guid><description>This post covers some of the extensibility points offered by ASP.NET 6.0 Minimal APIs to customize model binding</description></item><item><title>From MVC to Minimal APIs with ASP.NET Core 6.0</title><link>https://benfoster.io/blog/mvc-to-minimal-apis-aspnet-6/</link><pubDate>Sat, 28 Aug 2021 12:34:00 +0100</pubDate><guid>https://benfoster.io/blog/mvc-to-minimal-apis-aspnet-6/</guid><description>ASP.NET 6.0 introduces an alternative way to build HTTP APIs, using the aptly named &amp;ldquo;Minimal APIs&amp;rdquo;. This post provides a step-by-step guide on how to translate traditional MVC concepts to this new approach.</description></item><item><title>Customizing Authorization Responses in .NET 5.0</title><link>https://benfoster.io/blog/customize-authorization-response-aspnet-core/</link><pubDate>Sat, 10 Apr 2021 11:00:00 +0100</pubDate><guid>https://benfoster.io/blog/customize-authorization-response-aspnet-core/</guid><description>In this post we explore the new &lt;code>IAuthorizationMiddlewareResultHandler&lt;/code> interface in .NET 5 that enables you to customize the HTTP response when authorization fails.</description></item><item><title>Level up your .NET libraries</title><link>https://benfoster.io/blog/level-up-your-dotnet-libraries/</link><pubDate>Fri, 26 Feb 2021 09:00:00 +0100</pubDate><guid>https://benfoster.io/blog/level-up-your-dotnet-libraries/</guid><description>Producing a good library goes beyond writing code. This post looks at the tools and practices you can you use to level up your libraries, improving quality and security and increasing adoption and engagement.</description></item><item><title>Scale up, hire smart</title><link>https://benfoster.io/blog/scale-up-hire-smart-advice-for-engineering-managers/</link><pubDate>Sun, 16 Aug 2020 12:00:51 +0100</pubDate><guid>https://benfoster.io/blog/scale-up-hire-smart-advice-for-engineering-managers/</guid><description>&lt;p>The bedrock of any successful company is its people. In order to scale you must think longer term and make informed hiring decisions to ensure that you hire the right people when you most need them.&lt;/p>
&lt;p>This article offers advice for engineering and product managers in rapidly growing organisations.&lt;/p></description></item><item><title>Querying and paging a DynamoDB Partition using .NET</title><link>https://benfoster.io/blog/20200615-querying-a-dynamodb-partition-with-dotnet/</link><pubDate>Mon, 15 Jun 2020 15:02:51 +0100</pubDate><guid>https://benfoster.io/blog/20200615-querying-a-dynamodb-partition-with-dotnet/</guid><description>This post looks at the different ways you can query DynamoDB using the .NET SDK including using the lower level APIs to support pagination.</description></item><item><title>Optimising .NET Core Docker images</title><link>https://benfoster.io/blog/optimising-dotnet-docker-images/</link><pubDate>Fri, 12 Jun 2020 13:35:47 +0100</pubDate><guid>https://benfoster.io/blog/optimising-dotnet-docker-images/</guid><description>Put your .NET Core Docker images on a diet with by combining self-contained applications, assembly trimming and multi-stage Docker builds.</description></item><item><title>Testing IOptionsMonitor</title><link>https://benfoster.io/blog/20200610-testing-ioptionsmonitor/</link><pubDate>Wed, 10 Jun 2020 13:15:43 +0100</pubDate><guid>https://benfoster.io/blog/20200610-testing-ioptionsmonitor/</guid><description>&lt;code>IOptionsMonitor&lt;/code> is a feature of the .NET Core Configuration system that provides access to configuration options, even if they change at runtime. This post looks at how to test code that uses IOptionsMonitor.</description></item><item><title>Running Load Tests From the Cloud With k6</title><link>https://benfoster.io/blog/running-load-tests-from-aws-cloud-with-k6/</link><pubDate>Thu, 21 May 2020 07:52:02 +0100</pubDate><guid>https://benfoster.io/blog/running-load-tests-from-aws-cloud-with-k6/</guid><description>k6 is an open source load testing tool offering a first-class developer experience. This post looks at how you can dockerize your k6 scripts and run them from the cloud on AWS ECS.</description></item><item><title>Binding and Validating Enums in ASP.NET Core</title><link>https://benfoster.io/blog/binding-validating-enums-aspnet-core/</link><pubDate>Mon, 18 May 2020 07:59:15 +0100</pubDate><guid>https://benfoster.io/blog/binding-validating-enums-aspnet-core/</guid><description>We commonly use C# Enumeration types to represent a set of named constants within our applications. Often the values for such properties comes from the user via an API request but unfortunately the default model-binding and validation behavior in ASP.NET Core does provide the desired API experience. This post looks at how we handle binding and validating enum values in our APIs as well as supporting snake_case variants of the enum member names.</description></item><item><title>Serilog Best Practices</title><link>https://benfoster.io/blog/serilog-best-practices/</link><pubDate>Mon, 13 Apr 2020 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/serilog-best-practices/</guid><description>&lt;p>&lt;a href="https://serilog.net/">Serilog&lt;/a> is a structured logging library for Microsoft .NET and has become the preferred logging library for .NET at &lt;a href="http://Checkout.com">Checkout.com.&lt;/a>. It supports a variety of logging destinations, referred to as &lt;a href="https://github.com/serilog?q=sinks&amp;amp;type=&amp;amp;language=">Sinks&lt;/a>, from standard console and files based sinks to logging services such as Datadog.&lt;/p>
&lt;p>This guide started off as an article in our engineering handbook and after receiving positive feedback internally, I decided to release it on my blog.&lt;/p></description></item><item><title>Resolving the current route name in ASP.NET Core 3.1</title><link>https://benfoster.io/blog/aspnetcore-3-1-current-route-endpoint-name/</link><pubDate>Thu, 19 Mar 2020 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnetcore-3-1-current-route-endpoint-name/</guid><description>Endpoint routing was first introduced in ASP.NET Core 2.2 with the goal of making routing a cross-cutting concern, decoupling it from the MVC framework. This post explains how to resolve the current route name in ASP.NET Core 3.1.</description></item><item><title>Customising URL generation in ASP.NET Core MVC</title><link>https://benfoster.io/blog/20190503-customising-url-generation-in-aspnet-core-mvc/</link><pubDate>Tue, 19 Mar 2019 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/20190503-customising-url-generation-in-aspnet-core-mvc/</guid><description>This post explains how to use overload of the IUrlHelper interface to customise aspects of generated route URLs such as host, port and path.</description></item><item><title>Customising NSpec</title><link>https://benfoster.io/blog/customising-nspec/</link><pubDate>Tue, 12 Mar 2019 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/customising-nspec/</guid><description>How to customise the default NSpec conventions to extend test grammar and improve debug support.</description></item><item><title>NSpec conventions</title><link>https://benfoster.io/blog/nspec-conventions/</link><pubDate>Fri, 01 Mar 2019 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/nspec-conventions/</guid><description>This post looks at the default NSpec conventions used when writing tests</description></item><item><title>Zlib compression in .NET Core</title><link>https://benfoster.io/blog/zlib-compression-net-core/</link><pubDate>Wed, 13 Feb 2019 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/zlib-compression-net-core/</guid><description>How to compress and decompress using zlib in .NET Core.</description></item><item><title>Injecting UrlHelper in ASP.NET Core MVC</title><link>https://benfoster.io/blog/injecting-urlhelper-in-aspnet-core-mvc/</link><pubDate>Sat, 10 Mar 2018 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/injecting-urlhelper-in-aspnet-core-mvc/</guid><description>This post covers how to register UrlHelper with the built-in DI container in ASP.NET Core MVC to make it injectable into other components.</description></item><item><title>Applying IP Address restrictions in AWS API Gateway</title><link>https://benfoster.io/blog/aws-api-gateway-ip-restrictions/</link><pubDate>Fri, 26 May 2017 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aws-api-gateway-ip-restrictions/</guid><description>How to add IP Address restrictions to API Gateway resources using IAM policies.</description></item><item><title>Bare metal APIs with ASP.NET Core MVC</title><link>https://benfoster.io/blog/bare-metal-apis-with-aspnet-core-mvc/</link><pubDate>Sun, 04 Dec 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/bare-metal-apis-with-aspnet-core-mvc/</guid><description>How to build bare metal APIs using only the minimal required ASP.NET Core MVC components.</description></item><item><title>Using .NET Core Configuration with legacy projects</title><link>https://benfoster.io/blog/net-core-configuration-legacy-projects/</link><pubDate>Sun, 20 Nov 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/net-core-configuration-legacy-projects/</guid><description>In this post I demonstrate how to use the new .NET Core Configuration components in legacy projects such as previous versions of ASP.NET.</description></item><item><title>Automatic post-registration sign-in with Identity Server</title><link>https://benfoster.io/blog/identity-server-post-registration-sign-in/</link><pubDate>Sat, 03 Sep 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/identity-server-post-registration-sign-in/</guid><description>This post demonstrates how to customise Identity Server to support automatic sign-in following the registration of new users.</description></item><item><title>How to configure Kestrel URLs in ASP.NET Core RC2</title><link>https://benfoster.io/blog/how-to-configure-kestrel-urls-in-aspnet-core-rc2/</link><pubDate>Fri, 27 May 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/how-to-configure-kestrel-urls-in-aspnet-core-rc2/</guid><description>How to configure Kestrel URL bindings in ASP.NET Core RC2 using an external configuration file.</description></item><item><title>How to use TraceSource with Azure Diagnostics</title><link>https://benfoster.io/blog/how-to-use-tracesource-with-azure-diagnostics/</link><pubDate>Thu, 12 May 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/how-to-use-tracesource-with-azure-diagnostics/</guid><description>How to use custom trace sources in Azure to make use of features such as application logging and log streaming.</description></item><item><title>Handling unresolved tenants in SaasKit</title><link>https://benfoster.io/blog/handling-unresolved-tenants-in-saaskit/</link><pubDate>Wed, 20 Apr 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/handling-unresolved-tenants-in-saaskit/</guid><description>How to handle unresolved tenants (those that do no match the current request) in SaasKit.</description></item><item><title>How to perform partial resource updates with JSON Patch and ASP.NET Core</title><link>https://benfoster.io/blog/aspnet-core-json-patch-partial-api-updates/</link><pubDate>Mon, 11 Apr 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-core-json-patch-partial-api-updates/</guid><description>How to perform partial resource updates in APIs using JSON Patch and ASP.NET Core.</description></item><item><title>Customising model-binding conventions in ASP.NET Core</title><link>https://benfoster.io/blog/aspnet-core-customising-model-binding-conventions/</link><pubDate>Wed, 06 Apr 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-core-customising-model-binding-conventions/</guid><description>How to customise the model-binding behaviour in ASP.NET Core MVC to bind complex types from the request body (how it should be).</description></item><item><title>Using Role Claims in ASP.NET Identity Core</title><link>https://benfoster.io/blog/asp-net-identity-role-claims/</link><pubDate>Thu, 24 Mar 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/asp-net-identity-role-claims/</guid><description>What are Role Claims in ASP.NET Identity Core and how can you use them?</description></item><item><title>Multi-tenant Dependency Injection in ASP.NET Core</title><link>https://benfoster.io/blog/asp-net-core-dependency-injection-multi-tenant/</link><pubDate>Wed, 23 Mar 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/asp-net-core-dependency-injection-multi-tenant/</guid><description>&lt;p>How to configure tenant-scoped dependencies in multi-tenant ASP.NET Core applications using SaasKit and StructureMap.&lt;/p>
&lt;p>Not for the faint-hearted.&lt;/p></description></item><item><title>Customising claims transformation in ASP.NET Core Identity</title><link>https://benfoster.io/blog/customising-claims-transformation-in-aspnet-core-identity/</link><pubDate>Mon, 21 Mar 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/customising-claims-transformation-in-aspnet-core-identity/</guid><description>How to transform claims and customise claims identity creation in ASP.NET Core Identity.</description></item><item><title>Multi-tenant middleware pipelines in ASP.NET Core</title><link>https://benfoster.io/blog/aspnet-core-multi-tenant-middleware-pipelines/</link><pubDate>Thu, 03 Mar 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-core-multi-tenant-middleware-pipelines/</guid><description>This article looks at how to create forked request pipelines so that ASP.NET Core Authentication Middleware can be used in multi-tenant applications.</description></item><item><title>ASP.NET Core Multi-tenancy: Data Isolation with Entity Framework</title><link>https://benfoster.io/blog/aspnet-core-multi-tenancy-data-isolation-with-entity-framework/</link><pubDate>Mon, 15 Feb 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-core-multi-tenancy-data-isolation-with-entity-framework/</guid><description>The next in my series on building multi-tenant applications with ASP.NET Core, this post looks at how to achieve database isolation with Entity Framework Core, using a database-per-tenant strategy.</description></item><item><title>ASP.NET Core Multi-tenancy: Creating theme-able applications</title><link>https://benfoster.io/blog/asp-net-core-themes-and-multi-tenancy/</link><pubDate>Wed, 03 Feb 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/asp-net-core-themes-and-multi-tenancy/</guid><description>The third part in my series on building multi-tenant applications with ASP.NET Core, this post looks at how to support theming and tenant-specific views in MVC.</description></item><item><title>ASP.NET Core Multi-tenancy: Tenant lifetime</title><link>https://benfoster.io/blog/aspnet-core-multi-tenancy-tenant-lifetime/</link><pubDate>Mon, 25 Jan 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-core-multi-tenancy-tenant-lifetime/</guid><description>In this post we look at how you can control the lifetime of tenants when building multi-tenant applications with ASP.NET Core and SaasKit.</description></item><item><title>Building multi-tenant applications with ASP.NET Core (ASP.NET 5)</title><link>https://benfoster.io/blog/asp-net-5-multitenancy/</link><pubDate>Thu, 21 Jan 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/asp-net-5-multitenancy/</guid><description>How to build multi-tenant applications in ASP.NET Core 1.0 (ASP.NET 5) with SaasKit.</description></item><item><title>How to log debug messages in ASP.NET Core (ASP.NET 5)</title><link>https://benfoster.io/blog/how-to-log-debug-messages-in-aspnet-5/</link><pubDate>Mon, 18 Jan 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/how-to-log-debug-messages-in-aspnet-5/</guid><description>How to log debug messages using the new logging extensions in ASP.NET 5</description></item><item><title>Why comfortable founders fail</title><link>https://benfoster.io/blog/why-comfortable-founders-fail/</link><pubDate>Wed, 13 Jan 2016 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/why-comfortable-founders-fail/</guid><description>There is safety and security in doing what you know, so is it any wonder that founders tend to focus on what is comfortable rather than what is necessary.</description></item><item><title>Using gulp to install from multiple bower config files</title><link>https://benfoster.io/blog/using-gulp-to-install-from-multiple-bower-config-files/</link><pubDate>Thu, 17 Dec 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/using-gulp-to-install-from-multiple-bower-config-files/</guid><description>How to use gulp to install from multiple bower.json configuration files.</description></item><item><title>Becoming a "what matters" developer</title><link>https://benfoster.io/blog/becoming-a-what-matters-developer/</link><pubDate>Fri, 27 Nov 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/becoming-a-what-matters-developer/</guid><description>I&amp;rsquo;ve become a &amp;ldquo;what matters&amp;rdquo; developer - and I&amp;rsquo;m cool with that.</description></item><item><title>10 Books Every Entrepreneur Should Read</title><link>https://benfoster.io/blog/best-entrepreneur-books/</link><pubDate>Tue, 27 Oct 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/best-entrepreneur-books/</guid><description>Whether an aspiring or serial entrepreneur, these books are an essential source of guidance, wisdom and motivation.</description></item><item><title>How to test OWIN OAuth Middleware</title><link>https://benfoster.io/blog/how-to-test-owin-oauth-middleware/</link><pubDate>Fri, 09 Oct 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/how-to-test-owin-oauth-middleware/</guid><description>In this post I cover how to test OWIN OAuth Middleware using NSubstitute and NSpec.</description></item><item><title>Remove black bars from your video stills with a little magic</title><link>https://benfoster.io/blog/how-to-remove-black-bars-from-your-images/</link><pubDate>Tue, 08 Sep 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/how-to-remove-black-bars-from-your-images/</guid><description>With a little command-line magic you can remove black bars caused by letter-boxing from your video stills.</description></item><item><title>VAT for SaaS businesses in the EU</title><link>https://benfoster.io/blog/vat-for-saas-businesses-in-the-eu/</link><pubDate>Fri, 28 Aug 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/vat-for-saas-businesses-in-the-eu/</guid><description>In 2015 the place-of-supply rules for the sale of digital goods and services in the EU changed. This post explains what you need to do to comply, what MOSS is, and how to account for your subscription payments.</description></item><item><title>How not to build your first SaaS startup</title><link>https://benfoster.io/blog/how-not-to-build-your-first-saas-startup/</link><pubDate>Sun, 21 Jun 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/how-not-to-build-your-first-saas-startup/</guid><description>It&amp;rsquo;s time to change the way we build SaaS products. I&amp;rsquo;m fed up of writing the same infrastructure code over and over. Are you?</description></item><item><title>How to handle failed subscription payments in Stripe</title><link>https://benfoster.io/blog/stripe-failed-payments-how-to/</link><pubDate>Wed, 10 Jun 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/stripe-failed-payments-how-to/</guid><description>Getting deep into the Stripe Subscription lifecycle, I explain what happens when subscription payments fail in Stripe and how you can handle this within your own applications.</description></item><item><title>Enabling CORS in ASP.NET Web API 2</title><link>https://benfoster.io/blog/aspnet-webapi-cors/</link><pubDate>Mon, 11 May 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-webapi-cors/</guid><description>This post looks at the different ways you can enable CORS (Cross Origin Resource Sharing) in Web API 2.</description></item><item><title>Resolving hostnames with PowerShell</title><link>https://benfoster.io/blog/resolving-hostnames-with-powershell/</link><pubDate>Mon, 27 Apr 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/resolving-hostnames-with-powershell/</guid><description>How to resolve a CSV file of hostnames with Windows PowerShell.</description></item><item><title>Using HTTPS with the Azure CDN</title><link>https://benfoster.io/blog/azure-cdn-https/</link><pubDate>Wed, 11 Mar 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/azure-cdn-https/</guid><description>If you&amp;rsquo;re using an Azure Cloud Service as the origin server for the Azure CDN and need to use HTTPS, this post is for you.</description></item><item><title>Defining optional parameters with AngularJS UI Router</title><link>https://benfoster.io/blog/ui-router-optional-parameters/</link><pubDate>Mon, 23 Feb 2015 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/ui-router-optional-parameters/</guid><description>This post covers a number of ways in which you can declare optional state parameters when using the AngularJS UI Router.</description></item><item><title>High performance image processing with Image Resizer and Azure</title><link>https://benfoster.io/blog/high-performance-image-processing-with-image-resizer-and-azure/</link><pubDate>Thu, 06 Nov 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/high-performance-image-processing-with-image-resizer-and-azure/</guid><description>In this post I cover how to set up a high performance image processing service using Image Resizer and Microsoft Azure.</description></item><item><title>Using Google Analytics in Multi-tenant applications</title><link>https://benfoster.io/blog/google-analytics-multi-tenant-applications/</link><pubDate>Tue, 24 Jun 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/google-analytics-multi-tenant-applications/</guid><description>How to configure Google Analytics in a multi-tenant application, to track visitors both globally and per-tenant.</description></item><item><title>AngularJS recursive templates</title><link>https://benfoster.io/blog/angularjs-recursive-templates/</link><pubDate>Sun, 04 May 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/angularjs-recursive-templates/</guid><description>How to render tree data structures (such as a hierarchical list of product categories) with AngularJS using recursive templates.</description></item><item><title>A practical comparison of Map-Reduce in MongoDB and RavenDB</title><link>https://benfoster.io/blog/map-reduce-in-mongodb-and-ravendb/</link><pubDate>Sun, 23 Mar 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/map-reduce-in-mongodb-and-ravendb/</guid><description>This post looks at how to perform Map-Reduce operations with MongoDB using both the JavaScript API and C# Driver. I then cover how to achieve the same using RavenDB indexes.</description></item><item><title>ASP.NET Identity Stripped Bare - MVC Part 2</title><link>https://benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-2/</link><pubDate>Wed, 19 Mar 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-2/</guid><description>In this post I introduce some of the new membership features in ASP.NET Identity and swap out my dodgy hard-coded authentication logic to validate user credentials against information stored in a database .</description></item><item><title>ASP.NET Identity Stripped Bare - MVC Part 1</title><link>https://benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-1/</link><pubDate>Fri, 07 Mar 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-1/</guid><description>This post covers setting up cookie based authentication (the replacement for Forms Authentication) in ASP.NET MVC using the new ASP.NET Identity Libraries and nothing else.</description></item><item><title>FitFrame.js - Responsive iframes made easy</title><link>https://benfoster.io/blog/fitframejs-responsive-iframes-made-easy/</link><pubDate>Wed, 05 Mar 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/fitframejs-responsive-iframes-made-easy/</guid><description>Introducing FitFrame.js - Responsive iframes made easy</description></item><item><title>Deferred Domain Events</title><link>https://benfoster.io/blog/deferred-domain-events/</link><pubDate>Tue, 04 Mar 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/deferred-domain-events/</guid><description>We recently had the need to defer the dispatch of domain events until the end of the request.</description></item><item><title>Quick and easy OWIN pipeline hooks</title><link>https://benfoster.io/blog/quick-and-easy-owin-pipeline-hooks/</link><pubDate>Sun, 02 Mar 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/quick-and-easy-owin-pipeline-hooks/</guid><description>A few extension methods for hooking into the OWIN pipeline by passing before/after delegates.</description></item><item><title>Windows Azure - Support Excluded</title><link>https://benfoster.io/blog/windows-azure-support-excluded/</link><pubDate>Sun, 02 Mar 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/windows-azure-support-excluded/</guid><description>Windows Azure - a fantastic platform with one major flaw.</description></item><item><title>How to write OWIN middleware in 5 different steps</title><link>https://benfoster.io/blog/how-to-write-owin-middleware-in-5-different-steps/</link><pubDate>Thu, 27 Feb 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/how-to-write-owin-middleware-in-5-different-steps/</guid><description>In this post I cover the different ways you can write OWIN middleware.</description></item><item><title>Introducing SaasKit - Multi-tenancy made easy</title><link>https://benfoster.io/blog/saaskit-multi-tenancy-made-easy/</link><pubDate>Wed, 05 Feb 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/saaskit-multi-tenancy-made-easy/</guid><description>This post introduces SaasKit, a new project I&amp;rsquo;m working on to help developers build SAAS based applications, covering common challenges such as Multi-tenancy.</description></item><item><title>Custom error pages in ASP.NET MVC. Easy, right?</title><link>https://benfoster.io/blog/aspnet-mvc-custom-error-pages/</link><pubDate>Sat, 11 Jan 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-mvc-custom-error-pages/</guid><description>If you&amp;rsquo;ve ever struggled to configure custom error pages in ASP.NET MVC then this post is for you.</description></item><item><title>Proxying HttpClient requests through Fiddler</title><link>https://benfoster.io/blog/proxying-httpclient-requests-through-fiddler/</link><pubDate>Tue, 07 Jan 2014 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/proxying-httpclient-requests-through-fiddler/</guid><description>How to proxy requests made with .NET&amp;rsquo;s HttpClient through Fiddler, the web debugging proxy tool.</description></item><item><title>Testing handlers/filters that access IDependencyScope in Web API</title><link>https://benfoster.io/blog/webapi-testing-filters-handlers-idependencyscope/</link><pubDate>Fri, 22 Nov 2013 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/webapi-testing-filters-handlers-idependencyscope/</guid><description>How to test message handlers and action filters that access IDependencyScope in ASP.NET Web API.</description></item><item><title>Using an Office 365 distribution group to send emails to UserVoice</title><link>https://benfoster.io/blog/office-365-distribution-group-to-uservoice/</link><pubDate>Tue, 23 Jul 2013 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/office-365-distribution-group-to-uservoice/</guid><description>This post covers how to configure an Office 365 distribution group to send email to an external UserVoice email address.</description></item><item><title>User defined ordering in RavenDB</title><link>https://benfoster.io/blog/user-defined-ordering-in-ravendb/</link><pubDate>Sun, 07 Jul 2013 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/user-defined-ordering-in-ravendb/</guid><description>In this post I demonstrate how you can use RavenDB&amp;rsquo;s index capabilities to provide user define ordering of data.</description></item><item><title>Nancy vs ASP.NET MVC - Static content</title><link>https://benfoster.io/blog/nancy-vs-aspnet-mvc-static-content/</link><pubDate>Fri, 05 Apr 2013 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/nancy-vs-aspnet-mvc-static-content/</guid><description>In this post I cover how to serve static content such as stylesheets and scripts with Nancy and ASP.NET MVC.</description></item><item><title>Nancy vs ASP.NET MVC - Getting Started</title><link>https://benfoster.io/blog/nancy-vs-aspnet-mvc-getting-started/</link><pubDate>Tue, 02 Apr 2013 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/nancy-vs-aspnet-mvc-getting-started/</guid><description>In this post we look at how to create a very basic web site from scratch using both Nancy and ASP.NET MVC frameworks.</description></item><item><title>Nancy vs ASP.NET MVC - An introduction</title><link>https://benfoster.io/blog/nancy-vs-aspnet-mvc-introduction/</link><pubDate>Sun, 31 Mar 2013 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/nancy-vs-aspnet-mvc-introduction/</guid><description>First in a series of blog posts where I take a practical approach to comparing Nancy and ASP.NET MVC.</description></item><item><title>Dog-fooding our API - Authentication</title><link>https://benfoster.io/blog/dog-fooding-our-api-authentication/</link><pubDate>Mon, 04 Feb 2013 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/dog-fooding-our-api-authentication/</guid><description>In this post I discuss how we handled session based authentication with ASP.NET Web API and our ASP.NET MVC and JavaScript clients for the new fabrik API.</description></item><item><title>Simple PATCH validation in ASP.NET Web API</title><link>https://benfoster.io/blog/simple-patch-validation-in-aspnet-web-api/</link><pubDate>Wed, 30 Jan 2013 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/simple-patch-validation-in-aspnet-web-api/</guid><description>A simple approach to PATCH validation in ASP.NET Web API.</description></item><item><title>Centralized Logging and Diagnostics with Elmah and NLog</title><link>https://benfoster.io/blog/centralized-logging-and-diagnostics-with-elmah-and-nlog/</link><pubDate>Sun, 23 Dec 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/centralized-logging-and-diagnostics-with-elmah-and-nlog/</guid><description>In this post I cover how to set up centralized Logging and Diagnostics using Elmah and NLog.</description></item><item><title>Sending additional form data in multipart uploads with ASP.NET Web API</title><link>https://benfoster.io/blog/web-api-multipart-file-upload-additional-form-data/</link><pubDate>Sat, 15 Dec 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/web-api-multipart-file-upload-additional-form-data/</guid><description>In this post I demonstrate how you can use ASP.NET Web API&amp;rsquo;s HTTP client to send additional form data in a multipart form upload.</description></item><item><title>Adding LESS support to the ASP.NET Optimization Framework</title><link>https://benfoster.io/blog/adding-less-support-to-the-aspnet-optimization-framework/</link><pubDate>Fri, 30 Nov 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/adding-less-support-to-the-aspnet-optimization-framework/</guid><description>In this post I explain how to configure the asset optimization features introduced in ASP.NET MVC 4 to handle &lt;a href="http://www.dotlesscss.org/">LESS&lt;/a>.</description></item><item><title>Per-Request dependencies in ASP.NET Web API using StructureMap</title><link>https://benfoster.io/blog/per-request-dependencies-in-aspnet-web-api-using-structuremap/</link><pubDate>Sat, 06 Oct 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/per-request-dependencies-in-aspnet-web-api-using-structuremap/</guid><description>In this post I discuss how to scope dependencies per-request in ASP.NET Web API using StructureMap.</description></item><item><title>Publishing content with AtomPub and ASP.NET Web API - Part 3</title><link>https://benfoster.io/blog/atompub-aspnet-web-api-part3/</link><pubDate>Mon, 01 Oct 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/atompub-aspnet-web-api-part3/</guid><description>In this post I add support for categories to our AtomPub ASP.NET Web API application.</description></item><item><title>Publishing content with AtomPub and ASP.NET Web API - Part 1</title><link>https://benfoster.io/blog/atompub-aspnet-web-api-part1/</link><pubDate>Fri, 28 Sep 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/atompub-aspnet-web-api-part1/</guid><description>In this post I cover how you can build an AtomPub server using ASP.NET Web API.</description></item><item><title>Publishing content with AtomPub and ASP.NET Web API - Part 2</title><link>https://benfoster.io/blog/atompub-aspnet-web-api-part2/</link><pubDate>Fri, 28 Sep 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/atompub-aspnet-web-api-part2/</guid><description>In this post I cover how to publish content to the server we created in part 1 using an AtomPub capable client.</description></item><item><title>ASP.NET Web API Compression</title><link>https://benfoster.io/blog/aspnet-web-api-compression/</link><pubDate>Wed, 12 Sep 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-web-api-compression/</guid><description>How to compress and decompress your ASP.NET Web API responses, including support for GZip and Deflate encoding.</description></item><item><title>Adding PATCH support to HttpClient</title><link>https://benfoster.io/blog/adding-patch-support-to-httpclient/</link><pubDate>Thu, 06 Sep 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/adding-patch-support-to-httpclient/</guid><description>What it says on the tin, adding PATCH support to the ASP.NET Web API HttpClient.</description></item><item><title>Generating Hypermedia links in ASP.NET Web API</title><link>https://benfoster.io/blog/generating-hypermedia-links-in-aspnet-web-api/</link><pubDate>Wed, 05 Sep 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/generating-hypermedia-links-in-aspnet-web-api/</guid><description>In this post I propose a solution to generating Hypermedia links in ASP.NET Web API by &amp;ldquo;enriching&amp;rdquo; the response.</description></item><item><title>RavenDB identity strategy in ASP.NET Web API</title><link>https://benfoster.io/blog/ravendb-identity-strategy-in-aspnet-web-api/</link><pubDate>Thu, 30 Aug 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/ravendb-identity-strategy-in-aspnet-web-api/</guid><description>How to handle RavenDB identifiers in your ASP.NET Web API application.</description></item><item><title>Generating dynamic XML Sitemaps in ASP.NET MVC</title><link>https://benfoster.io/blog/generating-dynamic-xml-sitemaps-in-aspnet-mvc/</link><pubDate>Mon, 06 Aug 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/generating-dynamic-xml-sitemaps-in-aspnet-mvc/</guid><description>Generate dynamic XML sitemaps in ASP.NET MVC.</description></item><item><title>Azure Virtual Machines do not come with a Sysadmin</title><link>https://benfoster.io/blog/azure-virtual-machines-do-not-come-with-a-sysadmin/</link><pubDate>Wed, 18 Jul 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/azure-virtual-machines-do-not-come-with-a-sysadmin/</guid><description>Don&amp;rsquo;t be fooled (as I was) into thinking that the pre-made Windows Azure Virtual Machine images do not require any maintenance out of the box.</description></item><item><title>Injecting Page Metadata in ASP.NET MVC</title><link>https://benfoster.io/blog/injecting-page-metadata-in-aspnet-mvc/</link><pubDate>Thu, 12 Jul 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/injecting-page-metadata-in-aspnet-mvc/</guid><description>Automatically populate Page Metadata from dynamic content using a custom Action Filter.</description></item><item><title>Automatic null model checks in ASP.NET MVC</title><link>https://benfoster.io/blog/automatic-null-model-checks-in-aspnet-mvc/</link><pubDate>Wed, 11 Jul 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/automatic-null-model-checks-in-aspnet-mvc/</guid><description>Automatically return a 404 (Resource not found) if your view models are null in ASP.NET MVC.</description></item><item><title>Password policies do not enforce security</title><link>https://benfoster.io/blog/password-policies-do-not-enforce-security/</link><pubDate>Tue, 10 Jul 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/password-policies-do-not-enforce-security/</guid><description>You know there are problems with an &amp;ldquo;online&amp;rdquo; service when you have to make a phone call in order to log in.</description></item><item><title>Using the View Factory Pattern in ASP.NET MVC</title><link>https://benfoster.io/blog/using-the-view-factory-pattern-in-aspnet-mvc/</link><pubDate>Tue, 10 Jul 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/using-the-view-factory-pattern-in-aspnet-mvc/</guid><description>Use the View Factory Pattern to encapsulate complex view creation in ASP.NET MVC and put your &lt;em>fat controllers&lt;/em> on a diet.</description></item><item><title>CheckBox lists in ASP.NET MVC</title><link>https://benfoster.io/blog/checkbox-lists-in-aspnet-mvc/</link><pubDate>Mon, 09 Jul 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/checkbox-lists-in-aspnet-mvc/</guid><description>Creating CheckBox lists in ASP.NET MVC has never been easier.</description></item><item><title>Automatic ModelState validation in ASP.NET MVC</title><link>https://benfoster.io/blog/automatic-modelstate-validation-in-aspnet-mvc/</link><pubDate>Fri, 06 Jul 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/automatic-modelstate-validation-in-aspnet-mvc/</guid><description>Stop repeating ModelState checks in your ASP.NET MVC controller actions. You&amp;rsquo;re better than that!</description></item><item><title>Content negotiation in ASP.NET MVC</title><link>https://benfoster.io/blog/content-negotiation-in-aspnet-mvc/</link><pubDate>Fri, 06 Jul 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/content-negotiation-in-aspnet-mvc/</guid><description>Return your ASP.NET MVC models in any format with Content Negotiation.</description></item><item><title>Hello Fabrik.Common and fun with strings</title><link>https://benfoster.io/blog/hello-fabrikcommon-and-fun-with-strings/</link><pubDate>Thu, 05 Jul 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/hello-fabrikcommon-and-fun-with-strings/</guid><description>We&amp;rsquo;ve just release Fabrik.Common a project full of useful code that we wanted to share with the world.</description></item><item><title>Using BDD specs for unit testing</title><link>https://benfoster.io/blog/using-bdd-specs-for-unit-testing/</link><pubDate>Wed, 04 Jul 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/using-bdd-specs-for-unit-testing/</guid><description>In this post I discuss how BDD (Behaviour Driven Development) specifications can be used in place of traditional style unit tests.</description></item><item><title>If Then, If Then, If Then, MVC</title><link>https://benfoster.io/blog/if-then-if-then-if-then-mvc/</link><pubDate>Wed, 20 Jun 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/if-then-if-then-if-then-mvc/</guid><description>Fed up of spaghetti controller actions? Encapsulate reusable behaviours with custom Action Filters and View Results.</description></item><item><title>Windows Azure - Something for the little guy...almost.</title><link>https://benfoster.io/blog/windows-azure-something-for-the-little-guy/</link><pubDate>Fri, 08 Jun 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/windows-azure-something-for-the-little-guy/</guid><description>Yesterday Microsoft released some fantastic new features to the Azure platform. Azure is now more attractive than ever to smaller dev shops but is still not quite there.</description></item><item><title>ASP.NET MVC Helper for Twitter Bootstrap's Typeahead plugin</title><link>https://benfoster.io/blog/aspnet-mvc-helper-for-twitter-bootstraps-typeahead-plugin/</link><pubDate>Wed, 06 Jun 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-mvc-helper-for-twitter-bootstraps-typeahead-plugin/</guid><description>A ASP.NET MVC Helper for Twitter Bootstrap&amp;rsquo;s Typeahead plugin</description></item><item><title>Adding a custom image upload dialog to the PageDown markdown editor</title><link>https://benfoster.io/blog/pagedown-markdown-editor-custom-image-dialog/</link><pubDate>Fri, 01 Jun 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/pagedown-markdown-editor-custom-image-dialog/</guid><description>How to add a custom image dialog with asynchronous file uploader to the PageDown markdown editor.</description></item><item><title>Paging with RavenDB and ASP.NET MVC</title><link>https://benfoster.io/blog/paging-with-ravendb-and-aspnet-mvc/</link><pubDate>Sat, 26 May 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/paging-with-ravendb-and-aspnet-mvc/</guid><description>Add paging to your ASP.NET MVC / RavenDB application.</description></item><item><title>ImageResizer Fluent Extensions</title><link>https://benfoster.io/blog/image-resizer-fluent-extensions/</link><pubDate>Mon, 21 May 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/image-resizer-fluent-extensions/</guid><description>Today I created a Fluent API for the popular ImageResizer image processing module for .NET.</description></item><item><title>Better multi select lists with jQuery</title><link>https://benfoster.io/blog/better-multi-select-lists-with-jquery/</link><pubDate>Tue, 24 Apr 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/better-multi-select-lists-with-jquery/</guid><description>Improving the multi select list user experience with jQuery.</description></item><item><title>BDD Resources</title><link>https://benfoster.io/blog/bdd-resources/</link><pubDate>Sat, 07 Apr 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/bdd-resources/</guid><description>Various resources for learning BDD (Behaviour Driven Development)</description></item><item><title>Reference lists in RavenDB</title><link>https://benfoster.io/blog/reference-lists-in-ravendb/</link><pubDate>Thu, 08 Mar 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/reference-lists-in-ravendb/</guid><description>In this post we look at how to manage lists of reference data when using RavenDB.</description></item><item><title>Using a RavenDB listener to update entities</title><link>https://benfoster.io/blog/using-a-ravendb-listener-to-update-entities/</link><pubDate>Wed, 07 Mar 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/using-a-ravendb-listener-to-update-entities/</guid><description>In this post I demonstrate how to update fields on an entity using a RavenDB listener</description></item><item><title>Getting started with OAuth Providers</title><link>https://benfoster.io/blog/oauth-providers/</link><pubDate>Wed, 29 Feb 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/oauth-providers/</guid><description>In this post we look at how to register with, test and retrieve profile information from popular OAuth providers such as Google, Facebook and Twitter.</description></item><item><title>ASP.NET MVC 3 Dependency Injection with StructureMap</title><link>https://benfoster.io/blog/aspnet-mvc-3-dependency-injection-structuremap/</link><pubDate>Fri, 17 Feb 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-mvc-3-dependency-injection-structuremap/</guid><description>StructureMap implementations of IDependencyResolver, FilterAttributeFilterProvider and IModelBinderProvider for dependency injection in ASP.NET MVC 3.</description></item><item><title>Improving ASP.NET MVC Routing Configuration</title><link>https://benfoster.io/blog/improving-aspnet-mvc-routing-configuration/</link><pubDate>Thu, 16 Feb 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/improving-aspnet-mvc-routing-configuration/</guid><description>This post covers some ways you can improve the testability and reduce framework coupling when configuring routing in an ASP.NET MVC application.</description></item><item><title>How to embed Bitbucket source code on your Website</title><link>https://benfoster.io/blog/embed-bitbucket-source-code-on-your-website/</link><pubDate>Mon, 13 Feb 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/embed-bitbucket-source-code-on-your-website/</guid><description>This post covers how you can use the bitbucket REST api and jQuery to embed source code on your web site.</description></item><item><title>Applying a theme programatically in ASP.NET Web Forms</title><link>https://benfoster.io/blog/applying-a-theme-programatically-in-aspnet-web-forms/</link><pubDate>Sat, 11 Feb 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/applying-a-theme-programatically-in-aspnet-web-forms/</guid><description>This post covers how to apply a theme programatically in ASP.NET Web Forms. The sample application demonstrates how to switch themes from the UI and store the currently selected theme.</description></item><item><title>Monitoring files in Azure Blob Storage</title><link>https://benfoster.io/blog/monitoring-files-in-azure-blob-storage/</link><pubDate>Thu, 19 Jan 2012 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/monitoring-files-in-azure-blob-storage/</guid><description>In this post I cover how to monitor changes to files stored in Azure Blob Storage.</description></item><item><title>ASP.NET MVC - Issuing multiple 301 Redirects</title><link>https://benfoster.io/blog/aspnet-mvc-issuing-multiple-301-redirects/</link><pubDate>Sun, 27 Nov 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/aspnet-mvc-issuing-multiple-301-redirects/</guid><description>This post covers how to issue multiple 301 (permanent) redirects in ASP.NET MVC.</description></item><item><title>Listing installed software on a Windows PC</title><link>https://benfoster.io/blog/listing-installed-software-on-a-windows-pc/</link><pubDate>Sat, 05 Nov 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/listing-installed-software-on-a-windows-pc/</guid><description>How to list the software you have installed on your Windows PC.</description></item><item><title>Switching between the cloud and on-premise with StructureMap</title><link>https://benfoster.io/blog/switching-between-the-cloud-and-on-premise-with-structuremap/</link><pubDate>Wed, 02 Nov 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/switching-between-the-cloud-and-on-premise-with-structuremap/</guid><description>In this post I look at how we can make use of StructureMap profiles to easily switch between Azure and on-premise environments.</description></item><item><title>Yet another session-per-request post</title><link>https://benfoster.io/blog/yet-another-session-per-request-post/</link><pubDate>Thu, 20 Oct 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/yet-another-session-per-request-post/</guid><description>I&amp;rsquo;ve done a number of &amp;ldquo;session per request&amp;rdquo; implementations in the past, each claiming to be better than the previous, and here&amp;rsquo;s another one.</description></item><item><title>jQuery sortable - getting the new and original index</title><link>https://benfoster.io/blog/jquery-sortable-getting-the-new-and-original-index/</link><pubDate>Thu, 13 Oct 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/jquery-sortable-getting-the-new-and-original-index/</guid><description>In this post I demonstrate how you can get the new and original index of an item when using the jQuery sortable plugin.</description></item><item><title>AutoMapper StructureMap Profile</title><link>https://benfoster.io/blog/automapper-structuremap-profile/</link><pubDate>Wed, 12 Oct 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/automapper-structuremap-profile/</guid><description>Here&amp;rsquo;s an updated StructureMap profile for AutoMapper 2.0.</description></item><item><title>DDD Resources</title><link>https://benfoster.io/blog/ddd-resources/</link><pubDate>Thu, 06 Oct 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/ddd-resources/</guid><description>Learning Domain Driven Design (DDD)? Here&amp;rsquo;s some resources that I&amp;rsquo;m working through and have found useful.</description></item><item><title>CRUD Do Better</title><link>https://benfoster.io/blog/crud-do-better/</link><pubDate>Wed, 05 Oct 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/crud-do-better/</guid><description>So you&amp;rsquo;re starting to question how you develop applications? Maybe N-Tier isn&amp;rsquo;t so great after all&amp;hellip;</description></item><item><title>Push notifications with NServiceBus and SignalR</title><link>https://benfoster.io/blog/push-notifications-with-nservicebus-and-signalr/</link><pubDate>Tue, 27 Sep 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/push-notifications-with-nservicebus-and-signalr/</guid><description>SignalR and NServiceBus - the perfect combination</description></item><item><title>Better form handling in ASP.NET MVC</title><link>https://benfoster.io/blog/better-form-handling-in-aspnet-mvc/</link><pubDate>Fri, 23 Sep 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/better-form-handling-in-aspnet-mvc/</guid><description>Conventional form handling ASP.NET MVC leads to a lot of repetitive code. This post focuses on improving how we handle forms including a better way to populate &amp;ldquo;buddy&amp;rdquo; data on our view models.</description></item><item><title>Why fabrik is so dapper</title><link>https://benfoster.io/blog/why-fabrik-is-so-dapper/</link><pubDate>Wed, 21 Sep 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/why-fabrik-is-so-dapper/</guid><description>In this post I explain why I used Dapper-Dot-Net for fabrik and why it is important to consider forward facing and administration parts of a web application as two different things.</description></item><item><title>CQRS Resources</title><link>https://benfoster.io/blog/cqrs-resources/</link><pubDate>Tue, 20 Sep 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/cqrs-resources/</guid><description>As I continue to try and get my head around the CQRS architectural pattern I will be using this post to bookmark links and resources I&amp;rsquo;ve found useful.</description></item><item><title>My first web pages application</title><link>https://benfoster.io/blog/my-first-web-pages-application/</link><pubDate>Sun, 18 Sep 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/my-first-web-pages-application/</guid><description>After watching a BUILD video on the new version of WebMatrix I realized that I had never even built a web pages application. Time to give it a go.</description></item><item><title>Managing cache dependencies with CacheEntryChangeMonitor</title><link>https://benfoster.io/blog/managing-cache-dependencies-with-cacheentrychangemonitor/</link><pubDate>Sat, 10 Sep 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/managing-cache-dependencies-with-cacheentrychangemonitor/</guid><description>Version 4 of the .NET framework introduced new caching features as part of the System.Runtime.Caching namespace. This post explains how to use the CacheEntryChangeMonitor to better handle cache dependencies.</description></item><item><title>Finding the balance of abstraction - From web forms to MVC</title><link>https://benfoster.io/blog/finding-the-balance-of-abstraction/</link><pubDate>Sun, 04 Sep 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/finding-the-balance-of-abstraction/</guid><description>With asp.net mvc we were finally able to embrace HTML. Whilst &amp;ldquo;html&amp;rdquo; helpers can be great, they can also be abused. So how do you find the balance of abstraction?</description></item><item><title>Designing a theme api - configuration</title><link>https://benfoster.io/blog/designing-a-theme-api-configuration/</link><pubDate>Thu, 25 Aug 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/designing-a-theme-api-configuration/</guid><description>In this post I explain how we handle the configuration of themes in fabrik&amp;rsquo;s theme api.</description></item><item><title>Windows Azure Accelerator for Web Roles with Wildcard Bindings</title><link>https://benfoster.io/blog/azure-accelerator-wildcard-bindings/</link><pubDate>Thu, 25 Aug 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/azure-accelerator-wildcard-bindings/</guid><description>In this post I demonstrate how you can set up a site with a wildcard binding when using the Windows Azure Accelerator for web roles.</description></item><item><title>jQuery loadNicely - load your images...nicely</title><link>https://benfoster.io/blog/jquery-loadnicely/</link><pubDate>Fri, 19 Aug 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/jquery-loadnicely/</guid><description>loadNicely is a little jQuery plugin used to load your images nicely.</description></item><item><title>Creating a StructureMap Resource Factory for WCF Web API</title><link>https://benfoster.io/blog/structuremap-resourcefactory-wcf-webapi/</link><pubDate>Mon, 15 Aug 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/structuremap-resourcefactory-wcf-webapi/</guid><description>In this post I demonstrate how to register a custom IResourceFactory in WCF Web Api that uses StructureMap to create our resources.</description></item><item><title>A look at the new fabrik theme system</title><link>https://benfoster.io/blog/new-fabrik-theme-system-preview/</link><pubDate>Sun, 14 Aug 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/new-fabrik-theme-system-preview/</guid><description>In this post I give you a preview of the new fabrik theme system and discuss some of the technical challenges I faced in creating it.</description></item><item><title>Removing the TableServiceEntity dependency</title><link>https://benfoster.io/blog/removing-the-tableserviceentity-dependency/</link><pubDate>Sun, 14 Aug 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/removing-the-tableserviceentity-dependency/</guid><description>In this post I demonstrate how to use Azure Table storage without inheriting your classes from TableServiceEntity.</description></item><item><title>Windows Azure - My experience so far</title><link>https://benfoster.io/blog/windows-azure-my-experience-so-far/</link><pubDate>Thu, 11 Aug 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/windows-azure-my-experience-so-far/</guid><description>In this post I discuss my experience developing on the Windows Azure platform and make some general recommendations that will ease the pain of developing &amp;ldquo;for the cloud&amp;rdquo;.</description></item><item><title>Model Binder Dependency Injection with Structuremap</title><link>https://benfoster.io/blog/model-binder-dependency-injection-structuremap/</link><pubDate>Wed, 10 Aug 2011 00:00:00 +0000</pubDate><guid>https://benfoster.io/blog/model-binder-dependency-injection-structuremap/</guid><description>In this post I demonstrate how we can use a custom IModelBinderProvider to allow for dependency injection in an ASP.NET MVC ModelBinder.</description></item></channel></rss>