DotNet 3.5 or 2.0: Ajax

Originally AJAX (Atlas) was developed as a CTP and released as v1.0.61025. It got its official first release and now comes as 3.5.0.0. Lots of things break when assembly references are wrong, particularly in the web.config file. This error is but one particularly annoying symptom, as its un-catchable. An Error has occured System.Web.HttpParseException: The base class includes the field 'manager', but its type (System.Web.UI.ScriptManager) is not compatible with the type of control (System.Web.UI.ScriptManager).    at System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildFieldDeclaration(ControlBuilder builder)    at System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse)    at System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse)    at System.Web.Compilation.TemplateControlCodeDomTreeGenerator.BuildMiscClassMembers()    at System.Web.Compilation.PageCodeDomTreeGenerator.BuildMiscClassMembers()    at System.Web.Compilation.BaseCodeDomTreeGenerator.BuildSourceDataTree()    at System.Web.Compilation.BaseTemplateBuildProvider.GenerateCode(AssemblyBuilder assemblyBuilder)    at System.Web.Compilation.AssemblyBuilder.AddBuildProvider(BuildProvider buildProvider)    

Cross-user remote debugging

The problem with cross-user remote debugging is that the other user has to have sufficent rights to your machine. If that's a local user on the remote machine.. then just create an account of that user and password on your machine.

Reliability and performance

Its been a while since I looked at Reliability and Performance monitor, but saw somebody else doing the same recently. Now I am not sure if using  laptop affects reliability over a normal machine, but compared to others, my Vista experience is more varied. On the whole I am very happy, I just get annoyed when like today my machine fails to come back from hibernation. So on with a quick review of the last three months September September shows the highest recorded reliability with 9.17 but then drops rapidly   Initially I see 3x Disruptive shutdown, 2x OS Stopped Working, 2x Outlook.exe stopped responding, 1x WinWord stopped responding, 1x TSMService.exe stopped responding, and 1x iexplore.exe stopped responding. The cliff highlighted is due to KHost.exe, Kservice.exe and 4x MSIExec.exe so I can safely blame BBC iPlayer for that. October October is pretty flat going from 7.12 on the 30th Sept to 7.52 on the 21st Oct. In between there are fails in PresentationDirector.exe, 3x Disruptive Shutdown, OneNote.exe, 1x DevEnv (VS 2005), OS Stopped working, BITS.exe, 2x TSMService.exe, 3x My own programs and 2x TabTip.exe (both on the 22nd) November November has ten Disruptive shutdowns but overall reliability gets better. December December sees a move to IE8 Beta, which is great but brings instability with it. IE8's 'reopen tabs if I crashed' feature is well worth putting up with any other issues it brings with it. Otherwise I get 5 disruptive shutdowns and a couple more iPlayer issues. January so far Well today's Disruptive shutdown, along with three IE crashes, 1x explorer.exe and an msnmgr.exe, drops me from a peak of 8.15 down to 6.83. Conclusion As I said before I am very happy with Vista on the whole, and I am looking forwards to Windows 7. However somewhere between Windows and my Hardware, I really ought to be seeing a lot less disruptive shutdowns. In this case I have to blame Lenovo. My hardware is less than 20 months old, being a Thinkpad X61 Tablet. The install seems a very customised Vista build with more time spent on the Lenovo pieces that the Vista install. I would personally love to flatten it and install plain Windows, no OEM components and compare how that goes.

PEX

How did I miss this until now? http://research.microsoft.com/en-us/projects/Pex/ http://social.msdn.microsoft.com/Forums/en-US/pex/threads/ http://www.codeplex.com/Pex/Wiki/View.aspx?title=MbUnit%20Extension&referringTitle=Home http://blog.benhall.me.uk/2008/08/how-to-have-pex-generate-nunit-mbunit.html

Arrrgghhh....

It had to happen sometime, but I've opened a vbproj, and its DotNet 1.1.  Okay so it took me two minutes to remember the _ syntax from my VB6 days, but now we are off and running.

Christmas is coming...

Quote of the day "Did I tell you that I started the Christmas shopping?"

One for James - where or join on

Must be about a month ago now, myself and James were trying to work out the difference between select * from a inner join b on a.x = b.y and a.z = az and select * from a inner join b on a.x = b.y where a.z = az Thing is we couldn't find a difference and thought it may even assist in the sql planning since the predicates are placed as soon as they can be which should hopefully mean sql plans the filters sooner. However it never seemed to pan out. Today however I've found a difference, the join filter is applied before the outer join and in where the data was instead of eliminating a row, I got an outer join on nulls. declare @a table (data varchar(30), x int)declare @b table (x int, data varchar(30) null)insert into @a values ('hello',1)insert into @b values (1,'world')select a.data, b.data from @a a left outer join @b b on a.x = b.x and b.data != 'world'select a.data, b.data from @a a left outer join @b b on a.x = b.x where b.data != 'world' It gets better, should you apply a join hint to the query there is NO visible difference in the query plans shown select a.data, b.data from @a a left outer hash join @b b on a.x = b.x and b.data != 'world'select a.data, b.data from @a a left outer join @b b on a.x = b.x where b.data != 'world'

New job

I've delayed a little in writing this post, can I pretend I was getting Christmas out of the way? I recently left my previous role and joined... well nobody really. As much as I am happy to say I've finally get my own company off the ground, it's not yet gone quite far enough. Following a major re-organisation and re-branding operation (maybe not), my company is now in consultancy. My first contract is at Nomura. So far this is great, flexible working hours ("we only care that you do your forty hours"), half the team is in headphones, and nobody has more than one meeting per day. The technology here is varied, its all MS, but some of the applications are still in ASP-VB6. Some are bang up to date with DotNet3.5 using Linq. None seem to be massively parallel, but I have found a race condition already. Which brings me to a post I'll write up in the next couple of days. I expect to see an return to the previous rate of posts on here, and I will hopefully have a little more time to kepp up with everybody else in the industry. What I will say however is that am really glad that I did my time at my previous employer and really enjoyed some of the challenges. I would definitely do it again, but not with my insane commute on top, I'd want the opportunity to compete with my colleagues on a level footing.

Paying the Technical Debt

We have two screens, the new one (soon to be released but not yet) works fine, the old one (in production) shows a duplicate. Fortunately the screen pretty just shows the output from a store proc. Unfortunately thats 1,020 lines of stored proc, including generating 6 temporary tables, and adding 9 nine indexes on those temp tables. There are 45 joins to diagnose. I thought I could find the individual that wrote the new screen and get his advice on the old one, surely he looked at it. Unfortunately not, 1,020 lines of code was too complicated, so they (wisely) rewrote it as a black box. I may be some time...

LTV commuter survey - Seat reservations

Following the proposed service change on the 14th December, we have heard that the new Euston-Lichfield Trent Valley evening services will now be composed of trains that travel to Glasgow Central instead of Manchester. In fact the announcement made just before Rugby on Tuesday 18th November advised all regular travellers to obtain seat reservations. At this time we believe there is no support for regular travellers to obtain seat reservations, particularly not in any manner that matches the tickets that we purchase. So my questions are very simple. 1. Do you already travel with a seat reservation? 2. Does this affect you getting a seat? 3. How often do you travel (Daily, Always the same number of Days a week [1,2,3], Usually a number of days a week [1,2,3], An average number of times a month, etc)? 4. Which are your usual services [Outbound and return]? 5.What ticket do you travel on? Annual, Monthly, Weekly individual returns Please add your response to the comments below, and please supply your email address, but only so I can track individual responses, it won't be used except for communications on this issue [I hate Spam myself]