Click here to monitor SSC

Jason Crease


Jason Crease

The Brian Keller VM – Try out Microsoft’s ALM stack easily

0 comments

Why do I need this? Microsoft sells a range of tools to support a project from ideation to release and beyond. In Microsoft’s ALM (Application Lifecycle Management) vision: you create work items (requirements, user stories, bugs) in Team Foundation Server (TFS), write your code in Visual Studio, commit to Team Foundation Version Control, build it […]

8 May 2015 10:17 am by
Jason Crease

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

0 comments

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). […]

3 May 2012 3:23 pm by
Jason Crease

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

0 comments

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 […]

8 September 2011 2:22 pm by
Jason Crease

New spreadsheet accompanying SmartAssembly 6.0 provides statistics for prioritizing bug fixes

0 comments

One problem developers face is how to prioritize the many voices providing input into software bugs. If there is something wrong with a function that is the darling of a particular user, he or she tends to want action – now! The developer’s dilemma is how to ascertain that the problem is major or minor, […]

18 March 2011 12:06 pm by
Jason Crease

Breaking through the class sealing

11 comments

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 […]

26 April 2010 8:58 am by
Jason Crease

How big is a string in .NET?

19 comments

How big is a string in .NET? Typically the size of an object is 8 bytes for the object header plus the sum of the fields.  Consider this simple object:     class ThreeFields    {        double d;        object o;        int i;    } The size of a ThreeFields object is 8 bytes (for header) + 8 bytes […]

16 January 2009 10:32 am by
Jason Crease

Scrum: Keeping Kosher doesn’t make you Jewish

1 comment

Our development team has started using Scrum.  We’re only 4 weeks in, so it would be premature to make a judgement on whether it’s working for us.  I’ve investigated how it’s practised elsewhere, and there seems to be a worrying trend…   Let’s say I want to become a Christian.  I could go to church […]

8 December 2008 10:10 am by
Jason Crease

Nullable Structs – An interesting ‘Gotcha’

5 comments

One of the interesting new features in C# 2.0 was nullable valuetypes.  Using these, you can set valuetypes to a value, or null.  Their usage is entirely straightforward.  For instance, to use a nullable int simply declare a variable of type int?, and then set it to a value or null.   Behind the scenes, […]

26 November 2008 11:11 am by
Jason Crease

Testing the speed of ANTS Profiler 4

0 comments

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 […]

16 September 2008 8:55 am by
Jason Crease

A Quick .NET Puzzle

3 comments

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 (true)        {            if (Num == […]

17 July 2008 12:17 pm by
Older posts