Customized tasks in VSTS builds

The Microsoft Visual Studio Team Services (VSTS) have a totally new way of creating build definitions. There are many available tasks right out of the box. It offers tasks to build .NET code, build Xamarin apps, execute Grunt and Gulp tasks, do code analysis with SolarQube, integrate Jenkins jobs, publish NuGet packages, run cloud-based load tests, copy files to a machine, deploy a SQL database to Azure, publish a web app or cloud service to Azure, … It has also many utility tasks and there is a collection with free third-party tasks in the MarketPlace.

But when building your software, quite often you need custom steps. In this article I will cover some techniques how to customize the build process. I will show you how to implement PowerShell scripts, do logging and work with environment variables and arguments, how to load custom C# .NET assemblies and how to create extensions and upload them to VSTS.

Azure Management Libraries

Some months ago I was creating some tools at my work to automate the creation of branches in Team Foundation Server, together with namespaces, build definitions and Azure environments. To create and delete Azure clouds services, databases, storage, websites, services busses, … I used the Azure Management Libraries.

The Microsoft Azure Management Libraries (MAML) are a great collection of .NET NuGet packages which allow you to automate, deploy, and test cloud infrastructure easily. Each package provides client .NET classes for an individual area of the Windows Azure REST services. These classes provide a lot properties and methods which are fully await/async.

There are not that many examples and documentation on the internet yet. So I decided to write a simple article about it with a lot of C# examples. I hope the article can be useful to get started with the Azure Management Libraries.

ASP.NET WebAPI 2.2 REST services and Windows Integrated Authentication (WIA)

An detailed article about ASP.NET WebAPI 2.2 REST services and Windows Integrated Authentication (WIA) for intranets. How does it work and how to configure windows authentication in your .NET server project, in IIS (Express) and in the webbrowsers. And finally I will show some examples how to implement .NET and HTML/Javascript clients which consume the service.

Spatial Data in Entity Framework 5.0

In Entity Framework 5.0 spatial data types are supported so now we can create Linq queries to query nearby locations, calculate distances and check if locations intersect with an area. This articles demonstrates how to insert and update locations with latitude and longitude coordinates and how to query them in different ways.

Customize WCF RIA Services code generation

In March of this year SP1 of WCF RIA Services was released together with SP1 of Visual Studio 2010. Soon this was followed by a new version of the WCF RIA Services Toolkit. Microsoft has changed a few things in SP1 which makes it possible for you to implement you own code generation classes that can manipulate the client code generation of RIA Services entities, contexts, … In my opinion this is a great new feature which is very powerful when you are building your own Silverlight framework. So in this article I will describe how the code generation in RIA services SP1 works and I will demonstrate some scenarios and ideas were customizing the generated code is a nice technique to extend your own framework.

Functions in the Entity Framework 4.0: part 3

Over the last few weeks I’ve been writing a series of articles that cover some great improvements in the Entity Framework 4.0 In this third article I will explore some SqlClr features and show how to call custom .NET functions and aggregates in LINQ to Entities queries.

Functions in the Entity Framework 4.0: part 2

In this second article about the Entity Framework version 4.0 user defined functions and the new Model Defined Functions will be explored.

Based on a series of simple examples I will show how to map UDF’s and Entity SQL expressions to Model Defined Functions and how to call them in LINQ to Entities queries.