Wednesday, December 17, 2008

Refactoring Asp.Net sites

I'm 1/2 way through refactoring an Asp.Net MVC site to use the new beta and noticed my solution compiling without any issues, but Asp.Net compilation errors appearing on run.

Visual Studio wasn't compiling the content of the asp.net pages. Instead they were compiled on demand. Nothing wrong there... Unless you do a big refactoring and need to find errors on those pages all up-front.

That's where the aspnet_compiler command line tool can come in and help. Basically it pre-compiles all pages in an asp.net application. I think the main reason is for performance reasons on a live environment, but it's fabulous for doing refactorings.

aspnet_compiler -p. -v /

executed from the root folder of your website will detect all errors in the markup.

Enjoy!

Saturday, October 25, 2008

New things to learn... everywhere!

If you don't like learning new things then I really wouldn't recommend working at Readify! If you do, then it will really invigorate you.

Since starting here is a quick selection of some of what I've done

  • Shadowed a TFS MVP on engagements soaking up as much TFS goodness as possible

  • Installated TFS and showed customers how to use it

  • Presented modules on a .Net 3.5 course that was run by Paul Stovell

  • Architecture reviews / re-design

  • Ran a 2 day workshop on Sql Server Reporting Services

  • Presented a session at one of our free community events on WCF

  • Produced a WPF Proof of Concept for a customer


In the next month I'll be presenting the .Net 3.5 course, running a 2 day WCF workshop, and getting my hands dirty with some Silverlight. And if all goes to plan I'll be going on a SCRUM Master course.

SCRUM / agile methodologies have interested me since back in 2004 when my friend in the UK hired me to work on a SCRUM project at a big Investment Bank. The concepts really made sense to me in a ,"yeah - I knew something wasn't right on a lot of projects I worked on, but couldn't place why", way.

Going forward with Readify I'm hoping to be doing more of the same around training, building, but also moving towards introducing agile approaches to customers that want to adopt them.

Oh, and just because I mention the work SCRUM a lot, don't think I'm going to get into rugby.

Friday, October 03, 2008

Prism

I spent 1 1/2 years working on a large CAB application for a local Bank and was left with a bitter taste by CAB...

Primarily because it was such a confusing framework to use. Developers found it really difficult to grasp WorkItems and we overused loosely coupled events almost using them to control our process flow.

ObjectBuilder... Say no more.

The guidance / reference implementations were, hmm, not great. They rendered their own views un-testable by having links to concrete classes which would instantiate views, generally breaking the whole idea of a testable design.

So it's been with a little bit of fear that I downloaded the Prism guidance to have a look at what the WPF Composite Guidance is like.

First impressions have been really pleasant. Yes I have seen ObjectBuilder2 (sounds like some dodgy horror movie title), but thankfully have been pretty shielded from it.

WorkItems are gone - this is awesome. They were really unpleasant to explain to people.
DI has taken over bigstyle. Register everything with the Container, and things get resolved automatically. I was a little bit worried that I'd be swimming through Xml soup but smartly the IoC configuration is done in code at a module level.

Things generally seem neater and cleaner. I got my 1st Application up and running in 30 minutes or so, compared to a few hours with CAB.

So generally I'm pretty pleased. Add to that there is a Silverlight version. Cool! I'm sure I'll become a regular contributor to the Prism forums!

Messing around with Conchango's SCRUM template for TFS

I've spent a bit of time recently using TFS and trying to get my head around its templates.

Out of the box you get one for MSF for Agile, and one for a heavier, CMMI process. Over the last couple of days though I've installed the Conchango SCRUM template and have been playing with it.

So-far I'm pretty impressed. Especially with the online guidance. I think the videos of Ken Schwaber talking through the various phases of SCRUM are excellent.

I worked with Version-One and Perforce in London a few years ago with great success so am looking forward to playing more with TFS / SCRUM.

Sunday, September 21, 2008

Installing TFS 2008 SP1

I had the fun of doing a TFS installation on a customer site this week using TFS 2008 SP1 and Sql 2008.

What fun! We ended up backing out the SQL 2008 installation, creating a new differencing disk from the Windows Server 2008 baseline we had, and putting SQL 2005 SP2 on instead. I'm not sure exactly what went wrong but the TFS Service just could not connect to the Tfs Warehouse database.

Even with the SQL2K5 installation we had problems connecting through to the Reports from Team Explorer. What could save someone some time is this... Be sure to upgrade not only TFS to SP1 on the Team Explorer machine, but also VS2008. We only did VS2008 and obviously Team Explorer had changed as-well.

Friday, August 15, 2008

RDN last night

Thanks to everyone that came to the RDN last night, and to Chris for doing the "In-Depth" session.

I defintely picked some good information up around Windows Workflow, and hopefully some of you got something out of my WCF Primer presentation. That was my 2nd presentation (I did one for the local .Net user group last year on the Composite Application Block).

I was pretty nervous before, and for the 1st 5 minutes or so, but once I settled into it I managed to put my nerves to the side and present! It's challenging presenting to so many people when everyone is at a different level.

One great thing from doing the presentation is that you learn things about the technologies that you might not have known about before. For example I understand the internals of WCF - its extensibility and messaging layer - much more than a week ago, and a lot of the terms I'd read about - behaviours for example - are a lot clearer in my mind!

As for the experience, it's a buzz and I'd recommend it to anyone. I think it's awesome for building up confidence. I'm hoping to improve my skills as-well as time goes by and will use last night as a personal bench-mark.

An interesting thing after last nights was looking through the feedback forms. I really appreciate the ones with the comments, and the lower scores as those are ones which are really useful for getting better. Not that I don't like the high scores - they are great too!!!

So more coming soon hopefully. Watch this space!

New job, new times, new challenges...

It's been a while since I last wrote so here's an update of what I've been upto.

I left the Bank I was working at. The politics were getting me down and it was wayyyy to stressful. I learnt tons of good stuff whilst there - .Net 3.0, WCF, WPF, CAB to name a few, and made some good friends as-well.

I had a holiday to Vietnam and Cambodia which was awesome. Plenty of pictures at www.flickr.com/photos/graemefoster.

And finally I started working for Readify, an MS Consultancy. For those in the UK who haven't heard of Readify they are a very well respected MS consultancy firm in Australia with a whole bunch of MVP's working for them.

The job is going to be really challenging and exciting. I'll be consulting on architectures, running training sessions, giving presentations to the local community, fixing bugs for customers, you name it I'll be doing it!!!

And along the way I hope to be writing more blog posts about, ummm, stuff!!!

Thursday, May 01, 2008

Excited by technology again!

I'm a bit late jumping on this one but today I took delivery of my Squeezebox.
And I love it!



You can tell these guys have learned a thing or two from Apple on design.

The box screams apple,
The setup experience was flawless. It just worked!

Where are you?
Which wireless network?
Password?
It went and got an IP address.
Then updated its firmware.
Then hunted for the Slimserver server which I'd already installed on my Macbook. It just found it!!

And now I can listen to XFM without having to lug my computer to the stereo!

Sunday, March 02, 2008

Choosing a technology for an application

The more work I do around WPF "smart" clients the less I believe they are the future. Maybe it's because I'm working on an application that I truly believe is using the wrong technologies and should be an asp.net application but I miss the freedom I felt writing web apps.

I know there are a bunch of reasons for writing smart-client - offline, being one of them, but I think that reason is starting to look a little shaky given Google Gears... Now if Silverlight lets you run Sql CE (or equivalent) on the client I see that as one more reason not to write chunky fat clients.

Using Uri's in CAB

Recently I was thinking about a neat addition to CAB that would allow a user to use a Url to "deep-link" into a CAB application (CAB as that's the technology I use at work).

The way I see it working would be:

Use a pluggable protocol to register my application with explorer.
Create a common url syntax to link a Uri to a Cab event
When the application starts follow one of two paths:

1. If not already running then start up and pass the Url to the Url launcher service.
2. If not already running then open an ipc channel listening locally on port whatever
3. If already running then connect to the ipc channel and supply the url.

Originally I thought that you could use the uri to directly create a CAB work-item. This is impossible to do right though. You don't know where the work-item should live in the hierarchy, if it is single instancing or multiple, or any number of contextual issues. Using a Cab event is bullet-proof though. Raise it globally and the subscriber can choose exactly what they want to do with it.

Nice.

Monday, February 25, 2008

Blog reactivated

Wahay,

For some reason my blog was deactivated when I checked it last week. Seems like Google have re-activated it!