| Subscribe via RSS

Book Fever

August 29th, 2007 | Comments Off | Posted in Uncategorized

I’m on a weeks holiday from work at the moment, having fun with my wife and baby daughter in the limited sunny weather that our glorious nation provides us with. Time off is great for giving you the perspective you need to achieve what you want to achieve in the coming months and years.
This time around, it’s becoming glaringly obvious to me that – I need to learn something new. I’ve pretty much got most AJAX.NET down pat and I’m looking for the next big subject to tackle.

Not learn something as in ‘understand the basics and hack the rest’ ( I’ve heard this called JIT learning in some quarters!!  ) but to really learn, understand and digest all facets of the chosen subject. So to this end, I’ve purchased a few books and am going to choose which amongst them feels the most suitable for me.

The chosen books are:

Introducing Microsoft LINQ: I’ve had a brief look at Linq but I’ll wait to get the book to see if it really has the depth I’m looking for. There’s no doubt I will be learning this, but to what level is the question.

Professional Microsoft Smartphone Programming: The dominance of S60 phones has always put me off really getting into windows mobile development, but with the advent of tools like Red Five Labs S60 SDK, the prospect of real cross platform development looks closer.

Beginning J2ME: I’m not that sure about this one. I’ve done a fair bit of J2ME hacking in the past, but it wasn’t much fun. I’m hoping that some of the projects in this book will spark a bit of interest. Anyway, 3 quid from ebay – can’t grumble!

LINQ – First Impressions

August 20th, 2007 | 1 Comment | Posted in Framework, LINQ

LINQ is pretty good! I’ve used plenty of ORM tools in the past, and LINQ offers a nice user experience. I spent an hour hooking up Northwind and dragging tables onto the design surface in order to generate some code and the created objects offer some cool features.
The LINQ syntax does feel a bit like writing inline SQL though, and doesn’t feel as ‘objecty’ as the entities thrown up by Subsonic. The use of the DataContext classes *seem* to offer transactions out the bag, and the hierarchy of methods and properties feel well thought out and usable.

I’m going to do a little ‘Learn LINQ’ series of posts later in the week, so stay tuned.

Efficient data paging with SQL Server 2005 using ROW_NUMBER()

August 8th, 2007 | 13 Comments | Posted in SQL

Paging large amounts of data in SQL Server 2000 used to be a real pain, creating temporary tables, suffering bad performance after the first few batches of data or using ROWCOUNT to ignore large numbers of rows. Luckily SQL Server 2005 delivers a couple of new functions to make efficient painless data paging a reality. Enter the ROW_NUMBER() function.

All ROW_NUMBER() and it’s partner OVER does is to add a virtual row number to the start of each row returned. That’s it. Nothing more dramatic than that. Take a look at this query:

SELECT CallID, ROW_NUMBER() OVER (ORDER BY ID) AS Row
FROM CallRecords

which returns:

CallID    Row
101        1
102        2
103        3
104        4
105        5
106        6
107        7
108        8
109        9
110        10

(10 row(s) affected)

As you can see, has created a new ‘virtual’ column named ‘Row’ and filled it with sequential row numbers. Breaking this query down, we can see what each individual part does:

SELECT CallID : Returns the data from the CallID Column from my table
ROW_NUMBER() : Works the magic to return a row number
OVER (ORDER BY ID) : This determines the order of the data that is returned BEFORE the row number is added
AS Row : gives the column generated by ‘ROW_NUMBER() OVER (ORDER BY ID)’ the name ‘Row’
FROM CallRecords : Get the data from my CallRecords tables

Now let’s expand this query to return just the rows between 5 and 9 by wrapping it in a bit of extra SQL:

SELECT CallID, Row FROM
( SELECT CallID, (ROW_NUMBER() OVER (ORDER BY ID))
AS Row FROM calldatarecords ) Rows
WHERE Row BETWEEN 5 and 9

And that’s it! Have fun!

kick it on DotNetKicks.com

Productivity tools for the busy C# developer

August 2nd, 2007 | 1 Comment | Posted in C#, Productivity

There’s no getting away from it….I’m a bit of an add-in junky. The visceral thrill of a new bit of productivity kit is one of life’s greatest pleasures. Here’s a short list of tools I couldn’t live without.

GhostDoc – A VSNET addin that generates XML comments based on your method and class names. Normally the results are pretty good and only require a minor amount of tweaking

Google Desktop – Switch off all the visual panels and stick with the utter magic of the ‘double ctrl’ search box.

Launchy – A new one on me. Very like the ‘double ctrl’ Google function but for launching apps and navigating your file structure. You can even coerce it into doing much cleverer things as outlined here on Lifehacker.

WinDirStat – Other disk visualization apps just can’t compete. Bow down to the master.

Subsonic – This bit of kit entirely changed the way I prototype applications. The ability to just throw away large chunks of code and then re-generate new versions is so liberating I can’t explain. It makes entirely usable Active Record based objects and editors ( called scaffold ) to get your projects from 0 to 60 without breaking a sweat.

Mix 07 London – 11th/12th of September

August 1st, 2007 | Comments Off | Posted in Mix07

mixuk_thumb It’s confirmed! I will be attending Mix 07 this year! If anyone fancies a meet up, give me a shout. If you are not yet registered and want to go, you had better be quick as places are limited. Register here.

  • Cloud

    Ajax AmpliFeeder ASP.NET Blabnote C# Cloud Design EntityFramework Framework JavaScript JQuery LINQ Live Mesh MicroBlog Mix07 Mobile Productivity Rails Remix08 SDS Silverlight2 SQL SSDS TDD Telecommunications Uncategorized VOIP WCF Web 2.0 Webcast


  • @jonpauldavies