When creating software components, it is often forgotten that it has to be easy to use. A lot of components are designed with an IoC and lots of unit tests. When using the component, the parent software should not need to create all the internal dependencies. This requires internal knowledge of the library which should […]

The article demonstrates how different versions of the same service could be supported or not in a web API. Underneath are good links of different possibilities, which are better for different business scenarios. Depending on the client application/implementation, an update strategy could be implemented using Message Handlers. Code: https://github.com/damienbod/WebAPIVersioningAnd-MessageHandlers Possibility One: The old version of […]

This article demonstrates how to setup up a Web API service which supports default batching as well as a custom Protobuf batch handler. Protobuf is used because it is the fastest and best serialization library which exists for .NET applications. CRUD operations are supported. Batching can be used to send multiple requests in a single […]

This article demonstrates how to create a Web API RESTful service and use Elasticsearch as the persistence infrastructure. Nest is used to access Elasticsearch store. Simple CRUD is supported in the controller. code: https://github.com/damienbod/WebAPIRestWithNest Update 2014.09.28: updated all NuGet packages and fixed NEST, breaking changes in version 1 Structure The Application structure is based on […]

In this article, exception handling is explored for Web API. The standard features from Web API 2 are shown as well as the global exception handling released in version 2.1. code: https://github.com/damienbod/WebApi2_1ExceptionHandling Using the HttpResponseException class The following two examples demonstrates how the HttpResponseException class can be used in simple action methods. The HttpStatusCode enum […]

UPDATE: This NuGet package will no longer be supported as SLAB now supports an Elasticsearch sink. This blog still demonstates how to create a custom sink for SLAB. With the version 1.1 bulk inserts can also be used for custom sinks. See https://damienbod.wordpress.com/2014/04/02/semanic-logging-with-elasticsearch-using-semanticlogging-elasticsearch-nuget-package/ This post demonstrates how to create a Semantic.Logging Sink which adds documents […]

This post shows how to use multiple models in a single view. The models can be used in separated forms or together in one form. You could use each child model with a separate ajax post if required. Only properties in the parent class affect the child models, but a property in a child model […]

At present there are 2 main players in the full text searches for applications. Solr and Elasticsearch. Both are built using Lucene. There’s a lot of dicussion about which is the best, but for me, Elasticsearch provides some better features and seems to be growing faster. I decided to choose Elasticsearch because you require no […]

The example shows how to setup a Web API 2 service using Protobuf-Net as it Media Formatter and a HttpClient which gets and deserializes the response using Protobuf-Net. Protobuf is choosen because it’s the fastest Media Formatter at present. Code: https://github.com/damienbod/WebApi2WebApiContribProtobuf Web API 2 Server The server is just a basic Web API MVC 5 […]

This post compares the Serialization to files using Protobuf, Json.NET (Newtonsoft) JSON and BSON, Servicestack Json and plain .NET Xml. The test measures the whole operation and not just serialization to a memory stream. Code: https://github.com/damienbod/SerializationToFileTests For Serialization, the tests use an Object class with int, double, string, Object properties and also a List of […]