Pixata Custom Controls
For Lightswitch

Recent Posts

Popular tags (# posts in brackets)

Anonymous types (3) ASP.NET (5) C# (3) C# tricks and tips (2) Computers (6) Design patterns (3) DomainDataSource (3) Dynamic data (4) Entity framework (3) Entity model framework (5) F# (3) LightSwitch (12) Linq (6) Microsoft (2) MVP (2) MVVM (2) Project Euler (2) RIA services (5) Silverlight (2) SQL Server (4) Unit testing (4) Visual Studio (7) WCF (3) WPF (3)

Gratuitous link to StackExchange




The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Actually, as I'm self-employed, I guess that means that any views I expressed here aren't my own. That's confusing!


Theme modified from one by Tom Watts
C#/F# code styling by Manoli (for posts pre-2016) and Google code prettify (for post from Jan 2016 and beyond)

My rambling thoughts on exploring the .NET framework and related technologies

About me

I always thought it was a little presumptuous to assume that anyone was the slightest bit interested in who I am. On the slight off chance that anyone actually reads this blog, my guess is that they would do so based on the hope that it contained something useful. Why would they want to know who wrote the blog?

Well, it seems that there are some strange people out there! Following some of my posts in various MSDN forums, I got into conversation with a few people, both in the forum and off-line, and they (fairly reasonably I guess) asked who I was. I guess it's always nice to know who you're talking to!

So, in the interests of interest, here's a brief potted history of me (Alan Silver, in case you hadn't worked that bit out yet). First, for those weird enough to want to see what I looked like at age five, here is a fairly cute picture...

Me at the tender age of five years old

I was born (so rumour goes) on the 7th April 1961, making me 50 years young at the time of writing. I have never quite grown up, despite now being married with eight children! If you look towards the left of the this (and indeed, any) page, you will see a picture of me with the Boss. She's the elegant-looking one with the smile. I'm the hairy, overweight one with the beard. We live in the wild North-West of England, in a small fishing village called Manchester. She hails from the North-East, and I come from across the Pennines. How we ended up here is anyone's guess, but we like it.

So what qualifies me to write about technical matters? Well, I have a first-class degree and a PhD in Mathematics (honest, I'm not making this up, you can see me listed on the very 1990s-looking web page of my PhD tutor), and can speak Algebra fluently! Much to the Boss' amazement, I still read maths books, usually in the smallest room, late at night when no-one is looking!

After graduating, I spent a few years working for British Nuclear Fuels (whose web site seems to have disappeared into the ether), although to this day, I'm still not sure what I was supposed to be doing there! I had a very fancy computer on my desk, that at the time cost more than the house I owned, but I guess it would be about as powerful (and expensive) as my pocket calculator now. Actually, my favourite pocket calculator is a really old Omron 8SR from 1975, which looks just like the one in the Jabapense advert below, except that mine is bright green.

Japanese advert for the Omron 8SR calculator

The thing I like about this ancient relic is that if you ask it to do anything more complex than adding two single-digit numbers, you can see it working out the answer as numbers flash across the VFDs (vacuum fluorescent display). It can take a good second or so to work out a sine or cosine. Ah, the innocent days of computing eh?

Sorry, I seem to have got sidetracked. Where was I? Oh yes...

Around fourteen years ago, I was offer a sideways promotion into voluntary redundancy (I think they tactfully named it "resizing"), and went to work for myself. Amazingly enough, despite not having a lot of business sense, being far too easily distratced by things with blinking lights and buttons, and trying to learn too many new tricks all at once, I'm still self-employed.

I have been writing computer programs ever since I first got my hands on one (a BBC B Micro as I remember), and have been through various versions of...

  • Basic, including the good old GWBasic, and various other forms found on old cranky computers
  • RPG I/II and III which I leanred during a brief sortie into the world of real work before I went to university. The company used IBM mainframes (long before PCs were around), and these were the three incarnations of the reporting language used
  • Cobol. No, I really can't remember why on earth I learned Cobol, but I did. I remember having vague thoughts about brushing up my skills in the late '90s, when Cobol programmers were commanding huge fees to fix the millenium bug in old legacy software. Never got round to it, which is why I'm still working for a living, not sunning myself on a beach in the Bahamas (quite apart from the fact that I can't take the heat of course)
  • Lisp, which I mainly learned so I could keep up with my brother, who is very clever and did a masters in Lisp. It had a bit too many brackets for me, but was suitably weird that you could feel superior to people writing in silly kids' languages like C (which I really LOVED, see below)
  • Prolog, which I got into whilst on a short secondment in Paris. This was a great, if totally useless language, in which you can write programs that pretend to understand what you're saying (sort of very basic artificial intelligence, but without the intelligence)
  • Fortran, mainly when I was working at BNFL, and some of the modelling software allowed you to write your own modules, as long as you did it in Fortran or C. Given my deep love of C (ahem, see below), I stuck to Fortran
  • C/C++ which were about as much fun as root canal treatment in my opinion, but there you go. I once read an article that claimed that the C language was never supposed to be a real language, and was only written as an end-of-term joke by an undergraduate computer student. The language's name came from the mark he got when he submitted it to his tutor. I'm sure this isn't true, but it's too close to the truth for my liking!
  • Java, which I learned whilst bored one day at BNFL. As I mentioned above, I never quite worked out what they were employing me for (nor did they I think), so I spent a fair amount of my time writing computer programs on the fab workstation they had given me. This was the early '09s, and Java was making the news in a big way. I wrote some really pointless applets for web pages. Kept me amused for a while.
  • Javascript, which was obligatory for anyone who wanted to do stupid web tricks in the early days of the web. You know, we used to think that falling snowflakes and cursor trails were pretty neat in those days!
  • VBScript, which kept me amused whilst creating classic ASP web sites that noone looked at
  • Visual Basic 6, which I got into as a result of writing desktop backend applications for the web sites I was writing in VBScript. I then moved into regular desktop development using VB6, and had a good time. This language was probably my favourite, and most fluent until I discovered .NET, and then I moved into...
  • C#, which I chose because it didn't look anything like VB6! When I moved to .NET, I was warned that Visual Basic.NET was different enough from VB6 to trip you up in many places. I decided that a clean break was necessary, and picked C#. Also, being a C-based language, the career prospects looked better. This was one of the more stupid reasons for choosing a language, as I have never looked for a career, or even for a job since, but it seemed like a good idea at the time.

I spent a few years concentrating on producing ASP.NET web sites, then moved slowly into desktop development, and kind of stayed there. I still do some web sites, but spend more time on the desktop (if you see what I mean).

Having spent years as a "throw-it-all-in-the-code-behind" programmer, I then started learning about design patterns, and now know enough to bore anyone for ages! Although I prefer MVP for ASP.NET web sites, I mainly use ASP.NET MVC as it is well supported (unlike any of the MVP frameworks for ASP.NET), and use MVVM for WPF-based desktop development. Since spring '11, I have been spending far too much time playing with Visual Studio Lightswitch, which is one of my current favourite development environments, and have moved a lot of development over to that. I have also produced a suite of free custom controls for Lightswitch, which has had surprsingly positive feedback from the community, and has been downloaded nearly 14,000 times (at the time of writing).

As you can see from the length of this page, I'm easily distracted when I should be working. I better go and do something more productive now.