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.

10 September 2020
10 September 2020

Database Continuous Integration with SQL CI and Jenkins

0
18
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
0
18
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
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
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
8
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
8
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