Jason Crease

Jason Crease studied maths and computer Science at Cambridge University and joined Redgate several years ago as a Test Engineer. He specialised for some time in Testing .NET applications and was part of the team responsible for the development of ANTS Profiler and .NET Reflector. After working as a DevOps engineer supervising Redgate's own IT systems, he joined the DLM team, working on the practicalities of the management and automation of the application lifecycle.

09 February 2016
09 February 2016

Releasing Databases in VSTS with Redgate SQL CI and Octopus Deploy

You can still do Database Lifecycle Management (DLM) workflows in the hosted version of Team foundation Server (TFS) in Visual Studio Team Services (VSTS) . If you are doing your database development in SSMS, you can use a mix of tools to set up the functionality in VSTS. Jason Crease demonstrates how to build and deploy a simple database into the test environment using SQL CI, SQL Source Control, Octopus Deploy, tSQLt, SQL Cop and SQL Release, all with the minimum of hassle and effort.… Read more
24 November 2015
24 November 2015

Database Continuous Integration with SQL CI and Jenkins

2
3
Continuous integration (CI) is the process of ensuring that all code and related resources in a development project are integrated regularly and tested by an automated build system. Code changes are checked into source control, triggering an automated build with unit tests and providing early feedback in the form of errors returned. Potential problems with … Read more
2
3
09 September 2015
09 September 2015

Writing Build vNext tasks for Visual Studio Online

Hosted TFS, now called Visual Studio Online (VSO), has a new way of writing build processes called Build vNext. Agent tasks are the building blocks of processes and you can supplement the built-in ones with custom build tasks defined in JSON that use targets written in node.js or PowerShell. Jason Crease shows how to develop custom build tasks for building, testing, publishing and synchronizing databases.… Read more
09 March 2015
09 March 2015

Integrating Database Lifecycle Management into Microsoft’s Application Delivery Process

In order to automate the delivery of an application together with its database, you probably just need the extra database tools that allow you to continue with your current source control system and release management system by integrating the database into it. If you're using the Microsoft stack, then Redgate's tools can help with some of the difficult database parts of the process, as Jason demonstrates.… Read more
03 May 2012
03 May 2012

Metrics – A little knowledge can be a dangerous thing (or ‘Why you’re not clever enough to interpret metrics data’)

0
0
At RedGate Software, I work on a .NET obfuscator called SmartAssembly. Various features of it use a database to store various things (exception reports, name-mappings, etc.) The user is given the option of using either a SQL-Server database (which requires them to have Microsoft SQL Server), or a Microsoft Access MDB file (which requires nothing). … Read more
0
0
08 September 2011
08 September 2011

SmartAssembly Error Reporting: with the bug-finding power of more than 20 testers

0
0
At Red Gate, we use the SmartAssembly automated-error reporting system in the applications we sell.  When an error or exception occurs ‘in-the-wild’, it is reported back to Red Gate HQ, along with details about the error (stack trace, deployment environment, local variables, and more). Using the ‘SmartAssembly Sync for JIRA’ system, these errors are then … Read more
0
0
26 April 2010
26 April 2010

Breaking through the class sealing

0
4
Do you understand ‘sealing’ in C#? Somewhat? Anyway, here’s the lowdown. I’ve done this article from a C# perspective, but I’ve occasionally referenced .NET when appropriate. What is sealing a class? By sealing a class in C#, you ensure that you ensure that no class can be derived from that class. You do this by … Read more
0
4
16 January 2009
16 January 2009

How big is a string in .NET?

0
1
Typically the size of an object is 8 bytes for the object header plus the sum of the fields.  Consider this simple object: The size of a ThreeFields object is 8 bytes (for header) + 8 bytes (for the double) + 4 bytes (for the object pointer) + 4 bytes (for the integer) = 24 … Read more
0
1
16 September 2008
16 September 2008

Testing the speed of ANTS Profiler 4

0
0
Profiling and debugging code inevitably adds overhead, and I know that it can be really frustrating. The overhead can either be small, e.g. the Visual Studio debugger, or massive, as with most performance profilers. A developer may invest in a performance profiler to optimize an algorithm that takes 10 minutes to run, and finds that … Read more
0
0
17 July 2008
17 July 2008

A Quick .NET Puzzle

0
0
Just a quick .NET puzzle.  Does this application ever throw that ApplicationException?  If so, why? using System;using System.Threading; class Program{    static long Num = 0;     static void Main(string[] args)    {        Thread t1 = new Thread(ModifyNum);        t1.Start();        while (true)        {            long k = Num;            if (k != -1 && k != 0) throw new ApplicationException(                "k is not -1 or 0.  It is " + k.ToString());        }    }     static void ModifyNum()    {        while … Read more
0
0
02 June 2008
02 June 2008

Order of Construction

0
0
  For me, inheritance is often a headache.  In particular, in what order is everything initialized?  Consider this short C# program.   It creates an instance of Dog, which derives from Animal.  Both Dog and Animal have an instance constructor, a class initializer (aka a static constructor), an instance variable, and a static variable.  There are … Read more
0
0