Tweaking our Nancy unit tests to run in 5 minutes instead of 40

Our product has over 4300 tests. The server side UI tests are around 1500 in total but was causing the full test run to take 20 minutes. Recently adding only a handful of tests increased the total test run time to over 40 minutes. It turns out the useful Browser testing component from the Nancy framework was expensive to create for each of our 1500 server side UI unit tests. Changing our Browser and bootstrapper configuration to run once per suite rather than once per test, resulted in our total test time being reduced to just over 5 minutes! That saving was worth the trade-offs we had to make. Continue reading

Ext.NET Ajax Requests: MVC, Web API or ASHX?

When I wrote the book on Ext.NET 2, I often described using ASHX or MVC Controllers (amongst other techniques) for getting data from Ext.NET Stores via AJAX Proxies.

Recently, I’ve received a few questions — and wondered myself — whether to use Web API instead. It has a cleaner method signature, and is intended for this kind of scenario where you want to return data rather than HTML.

I finally got a moment to compare all three (for my scenario). Continue reading

Why Use XSLT in Server Side Web Frameworks For Output Generation?

Just as web developers want to use standards on the client side, standards such as XSLT on the server side may be an efficient way to create good quality markup and other web output.

It can help avoid the hard coded or hard to edit HTML strings that are often seen in server side templates and scripts.

As an open standard, XSLT is reasonably universal, and skills can be easily transferable.

Some people don’t like it or have had bad experiences with it in the past.

But it can be a very powerful tool in the developer’s toolbox. Perhaps it is worth giving it another look?

This article looks at why XSLT could be useful as part of the View in an Model-View-Controller pattern, its benefits and potential drawbacks. Continue reading

PHP 5.3 Gets A Bit More Object Oriented And More

PHP 5 in general has been a good improvement over PHP 4, but those used to full blown object oriented program languages such as Java or C# may find some OO features still lacking in PHP 5.

PHP 5 has the usual things, such as classes, interfaces, abstract classes, inheritance, etc, but some useful programming constructs have been missing, though PHP 6, under development, aims to rectify that.

However, it seems that many of those features are going to be brought forward to the up-coming PHP 5.3 (which may make it more likely that it will get installed by web hosting companies sooner than they would likely go for PHP 6).

Sitepoint has an excellent summary of the features. The list of features include: Continue reading

ASP.NET Is a Leaky Abstraction

A manipulation of the classic Mona Lisa shows her holding a mask revealing a smiling, ugly face. ASP.NET is a leaky abstraction because it tries to hide away some of the details of HTML markup generation for you when sometimes you need to know about the underlying markup.

In doing so, it is too easy to create ASP.NET sites that violate web accessibility guidelines and contain unnecessary markup bloat. In some cases, ASP.NET makes it really difficult to create the exact output you need. But there are a some options to address this problem. Continue reading