8 November 2018
Determining Service Worker Support for your Site
Use feature detection to measure service worker support among your visitors, with a historical Google Analytics example to help assess the value of a PWA.
Building a website means joining up lots of small decisions. Find practical web development examples covering ASP.NET, browser APIs, CSS, testing, and performance.
8 November 2018
Use feature detection to measure service worker support among your visitors, with a historical Google Analytics example to help assess the value of a PWA.
21 October 2014
Use the HTML picture element and srcset to serve images that suit the viewport, avoiding desktop-sized downloads on mobile and handling older browsers.
12 September 2014
My 2014 comparison of HTTP and HTTPS page loads explores TLS handshake overhead and practical ways to measure and reduce the cost of encrypted connections.
26 August 2014
A preview of our Velocity New York 2014 talk, using the HTTP Archive to uncover good and bad website practices and practical page speed improvements.
27 July 2014
Understand what Visual Studio's Build, Rebuild and Clean commands actually do, when incremental builds save time and which files Clean leaves behind.
3 July 2014
My experiment with Filament Group's loadCSS shows how asynchronous stylesheets avoid blocking rendering, along with the flash of unstyled content tradeoff.
5 March 2014
Set up Grunt and UnCSS to remove unused selectors and minify stylesheets automatically, using a Bootstrap example to show how much CSS can be cut.
24 February 2014
A 2014 walkthrough of Chrome's CSS audit tool, showing how to spot unused framework styles and reduce the stylesheet weight your users download.
27 January 2014
Extend classic ASP.NET bundling so you can add attributes such as async and media to script and style tags without losing built-in minification.
21 November 2013
Set up separate Web.config transforms for staging and live environments in Visual Studio, using solution configurations or publish profiles.
28 October 2013
Track hyperlink clicks with the HTML ping attribute. A small example shows the asynchronous request and how it can avoid an extra tracking redirect.
4 October 2013
The original ASP.NET HTML Minifier walkthrough shows how to minify files during Visual Studio 2012 publishing, avoiding per-request processing overhead.
23 September 2013
This archived announcement explains my three-copy Fast ASP.NET Websites giveaway, which closed on 22 October 2013, and introduces the book's practical focus.
10 September 2013
Track connections, disconnections and reconnections to display a live online count without session state, using a classic ASP.NET SignalR hub example.
30 August 2013
My original Fast ASP.NET Websites launch announcement introduces the book's hands-on performance guidance and code examples for ASP.NET MVC and Web Forms.
19 August 2013
The August 2013 MVC HTML5 Toolkit update added DataType annotations, EditorFor helpers and validation support, reducing manual setup of HTML5 form fields.
11 August 2013
Check tests, performance, configuration, security and custom error pages before deploying a classic ASP.NET side project with this lightweight release checklist.
24 July 2013
Follow the original Windows Azure custom-domain setup to understand A records, CNAME verification and how I connected both www and root domains.
26 March 2013
A Bootstrap typeahead example for ASP.NET MVC that retrieves JSON key/value pairs, displays readable names and keeps the selected ID for lookups.
20 March 2013
Browse five icon packs I gathered for web prototypes, including IconMonstr, IcoMoon and Typicons, with notes on the image and icon-font formats they offered.
12 March 2013
A 2013 ASP.NET MVC 4 example uses the Google PageSpeed API to retrieve scores and suggestions, turning manual performance checks into a dashboard.
29 November 2012
See how I disabled Flash while testing an HTML5 replacement in older Chrome, Internet Explorer, Firefox, Safari and Opera versions in this historical guide.
26 November 2012
Add a file dependency to .NET's MemoryCache with HostFileChangeMonitor, so cached file contents are invalidated when the source changes, without a restart.
9 February 2012
Combine TinyCon and local storage to show new-post notifications in a favicon, with a same-origin gotcha and a title fallback for unsupported browsers.
11 October 2011
An early PDF.js walkthrough shows how to render PDF documents in a web page with JavaScript and HTML5, without asking users to install a reader plugin.
26 September 2011
A C# Memcached walkthrough for sharing cached objects across applications and keeping them outside the IIS app pool, with setup and client examples.
14 September 2011
Build an ASP.NET MVC helper that embeds images as Base64 data URIs to avoid separate HTTP requests, with browser fallbacks and a look at the size tradeoff.
7 September 2011
How I redesigned this blog in 2011 with CSS3 media queries and Skeleton, letting one layout adapt to different screen sizes instead of separate mobile pages.
8 July 2011
A 2011 ASP.NET MVC experiment with HTML5 Application Cache, showing dynamic manifests, offline resources and the pitfalls of caching server-rendered pages.
24 June 2011
Run independent C# methods concurrently with Parallel.Invoke, using lambda expressions and the Task Parallel Library instead of managing threads yourself.
5 June 2011
I used a Visual Studio T4 template and Microsoft Translator to generate translated .resx files, reducing repetitive work while leaving room for human review.
12 May 2011
Capture page timings in Selenium 2 tests, save them to XML and chart the results in an MVC dashboard to track performance changes over time.
15 April 2011
A 2011 C# example using Microsoft Translator's SOAP API to translate text and request spoken audio, with a service reference and a small wrapper class.
21 March 2011
Use explicit interface implementation in C# to make selected methods accessible through the interface, helping keep callers away from concrete class methods.
22 February 2011
An early MVC HTML5 Toolkit release added audio and video helpers, plus autofocus, readonly and disabled attributes to make richer MVC views easier to build.
17 February 2011
Count table rows with Selenium 2's C# API using XPath and a reusable helper, then apply the same approach to other elements such as select options.
9 February 2011
I must admit, I've been a bit of a slow starter when it comes to Asp.net MVC 3. I am an avid fan of MVC 2 and haven't really taken the time to look at MVC 3 until now. Wow - I am impressed though! There are a
1 February 2011
My original MVC HTML5 Toolkit NuGet announcement shows how to add the library through Visual Studio's package interface or Package Manager Console.
24 January 2011
Follow the original OAuth token exchange and signed API calls in this historical C# walkthrough, with a link to my newer OAuth 2.0 guide.
1 November 2010
Handle HTTP 407 proxy authentication errors in a .NET application with a helper that checks connectivity, tries credentials and prompts users when needed.
28 October 2010
Use an HTTP HEAD request in .NET to check a resource and inspect its size or last-modified headers without downloading the body, saving unnecessary bandwidth.
25 October 2010
My 2010 introduction to jQuery Mobile shows how to build a mobile page with data-role attributes, theme swatches, buttons and icons.
6 October 2010
Store and retrieve objects with .NET 4's MemoryCache, using a small reusable wrapper to avoid repeated database calls and handle cache misses.
24 September 2010
Feed ASP.NET MVC data into a Google Visualization table, then add column formatting, sorting and paging to make the results easier to browse.
23 August 2010
I'm sure most of you have at some point been exposed to a CAPTCHA control on the net. They come in loads of forms and are used to tell the difference between humans and computers (bots). If you have a website on the net, you are prone to lots
6 August 2010
Test ASP.NET MVC routes with Moq by faking HTTP requests and checking controller, action and parameter values, catching broken mappings before they ship.
1 July 2010
My early exploration of HTML5 input types shows how native email validation, placeholders and form widgets can replace extra JavaScript and CSS.
1 June 2010
Set up a local HTTPS development site in IIS 7 with a self-signed certificate, configure Visual Studio debugging and handle a 32-bit application pool issue.
7 May 2010
A 2010 ASP.NET MVC Google Maps helper combines controller JSON and JavaScript to draw interactive maps with markers, while keeping the view code reusable.
29 April 2010
My 2010 experiment with RDFa structured data shows how to mark up a page for rich snippets and test whether search engines understand the HTML.
22 February 2010
The changes I used to speed up this MVC blog in 2010, including data and output caching, minification, Gzip compression and content delivery networks.