TIP: How to uninstall IE8

If, like me, you rushed out and installed Internet Explorer 8 last week, then you may, like me again, be regretting it.

IE8 has been slow, unstable and ugly. By ugly I mean that most of the sites I viewed looked really bad (or didn't render at all). The price of progress you may say? After all, the push is on for better standards compliance right? Unfortunately, the IE8 Beta 1 release seems to have been rushed out the door without proper testing, and more importantly, without the proper user preparation – users need to be informed of the potential issues and in effect, properly change managed.

When is a Beta a Beta?

Short answer: it's never a beta anymore.

Ever since Microsoft (and others) started pushing out Beta versions of products to everyone (think Visual Studio 2005 Beta 2 and onwards) we've all grown accustomed to using Beta software in production settings. Previously the domain of die-hard testers only, now everyone runs them. They are not Betas anymore. The real Betas are now called CTPs and come with explicit this-may-not-work doco (sometimes that is their only doco) – although many people still end up putting CTPs on production machines as well (example :-).

So when IE8 was announced with such fanfare at MIX last week – it was pretty much a public event (I mean why else would you have it noted on the Microsoft home page?). Everyone was being invited to download and uninstall it.


It's a shame really

I've had nothing but nice words to say about Microsoft over the last few months. Their releases have been continuous, innovative and of high quality. But this IE8 release is an unwelcome exception. Now, it may turn out to be my machine that's playing up given I have so much junk installed on it (it's due for a reformat actually), but even in that state it runs Safari Betas, Firefox Betas and a host of other Beta software fine. IE8 is the only thing I've had problems with.

The real shame for me is that I won't be getting to play with all the new features any time soon. And there's a stack of them.

I gave it my best shot. I spent Thursday in IE8 mode, and then on Friday when I couldn't stand it anymore I shifted to IE7 compatibility mode. That didn't change things (although sites did look fine again). It crashed repeatedly and was slow. Slow to start, slow to open a new tab, slow to render a page. Slow. Saturday morning was the end. Off it came.

The sad part about this – Microsoft had a chance to win over a lot of people with this release. And they definitely need to in the browser game, with so many people favouring non IE options. But if others have suffered the way I have (and from my Twitter reading many have), then Microsoft has a lot of work to do to win them back.

Back to the uninstall

Oh yes, so how do you uninstall IE8? If you are on XP it is in the same place – Add and Remove programs. But on Vista it is hidden away in the View Installed Updates section. You still get to it via Control Panel -> Uninstall a program. But then it is sitting over on the left panel.


Click on View installed updates.

Find IE8 in the list and click Uninstall from the top bar.

In fairness to Microsoft I have to say the uninstall process was very smooth and after rebooting I had IE7 back and working fine. I've had no problems with missing links, components or saved settings. So at least they got the uninstall part right.

I'm looking forward to Beta 2.

Am I over-reacting? What's been your experience with IE8?

TIP: Problems with hidden Adobe download install files

PROBLEM: Adobe Download Manager hides files on your hard disk. As a result your install doesn't work, and further you can't find the hidden files to delete them.

SOLUTION: Find the hidden files underneath the \Temporary Internet Files\ directory


If you've downloaded an Adobe product lately using their Download Manager you might have got frustrated because you suddenly found yourself with way less hard disk space than you thought you would.

This is because Adobe in their wisdom, hide the download files in a hidden virtualized directory underneath your Temporary Internet Files directory. The don't tell you this of course, so whilst you think it's downloading into:


it is actually downloading into something like this:

\\localhost\C$\@GMT-2008.02.08-02.59.35\Users\craigb\AppData\Local\Microsoft\Windows\Temporary Internet Files\Virtualized\C\Users\craigb\Downloads\Adobe\Premiere\

I'm sure there is some well intentioned reason for this – most likely related to security privileges – but frankly, it is a crazy notion.

It quite often leads to a problem with installing (eg if you're running UAC on Vista) because the <installer.exe> files don't get the Administrator access they require. As a result, the installer extracts its files but then bombs out, and you end up getting all frustrated at how poor the user experience with Adobe products is.

Solving this one is easy enough – you just need to find where the hidden files are (that crazy directory path above), right click on the <installer.exe> and Run as Administrator. Or if the installer file needs to decompress, you can manually decompress it to a directory and run the installer from there.

For example, in my case I downloaded a Trial of Abode Premiere which came in at 2.74 GB. After downloading it, it wouldn't launch the installer. I finally found the files:


I then manually opened the .7z file using WinRAR, extracted it to a directory (costing me another 2.7GB+) and was able to install it.

If you've got this far then you know roughly where the files are. But here's the problem: If you go and look at the Temporary Internet Files folder in Windows Explorer the directories are hidden. You'll see below that Windows shows it as having 0 subdirectories and 81 files (and that is in fact all you can see) where as the Properties for the subdirectory shows 96 files and 71 folders.

Changing your Windows Explorer settings to 'Show Hidden files', and 'Not hide System files' will make no difference.

So how do you find them?


To get access to the folders, go to the Previous Versions tab (on the Properties form above).


Click on Temporary Internet Files and click Open. Windows will now magically open a view of the directory, complete with all the hidden directories showing.

Dig into the Virtualized directory, and you're on your way to finding those pesky hidden files.


Summary: Next time you find a big chunk of your hard drive mysteriously missing, go to:

C:\Users\craigb\AppData\Local\Microsoft\Windows\Temporary Internet Files\Virtualized\C\Users\

and start investigating (obviously you need to change the users directory to your own name (ie replace 'craigb'). The path structure will be different if you're using Windows XP.

[Note that in terms of terms of deleting the files you can actually achieve this by using the 'Delete Browsing History…' function in IE, but that will also wipe your Cookies, Form data, history, cached files etc – which you may not want to do.]

Is there an easier way of finding/showing these files? I hope so. If I've missed something obvious, please let me know in the comments.



Other Tags: Can't install Adobe Premiere

Other Tags: Can't delete Adobe hidden files, Adobe eats hard disk space

CLARITY: SharePoint – WSS versus MOSS

There's still plenty of confusion out there about SharePoint, particularly around what is included in WSS versus MOSS. Part of the problem is that there is soooo much information about SharePoint that the simple details get lost…

So, let's go through the various options, comparing WSS with MOSS Standard and MOSS Enterprise as simply as possible. I'll exclude technicalities (eg that you need R2 of W2K3 etc) and just focus on the main points.

Windows SharePoint Services (WSS)

Currently in version 3.0, WSS is a free add-on to Windows 2003 Server. WSS is the foundation of SharePoint. It provides a stack of features (or services), including document management & collaboration, Wikis, Blogs, RSS feeds, strong Office integration (Word, Excel, Outlook, Access, PowerPoint) including alerts and synchronisation, basic workflow and some search capabilities. It has the foundational elements such as security and storage services.

Many intranet requirements are completely catered for with WSS. And WSS can be used quite effectively as a web site too.

[I've seen discussions about storage limits within WSS being set at 4GB*, but my current understanding is that this is not the case – ie there is no set limit.]

Microsoft Office SharePoint Services (MOSS) Standard

MOSS** sits on top of WSS and comes in two main versions: Standard and Enterprise.

MOSS Standard has stacks of features of course (including Enterprise Content Management, Portals and comprehensive Workflow), but the main ones to consider are:

  • Enterprise Search (which allows you to crawl a number of data sources)
  • People management (which includes all the My Site stuff, Personalisation features, Single Sign On and more)
  • Analytics (which includes all the usage and auditing functions for example: you can audit who is searching for what)

Point to note: Enterprise Search IS included in the Standard version.

Microsoft Office SharePoint Services (MOSS) Enterprise

Moving on to MOSS Enterprise, we get everything in Standard, plus a few more features added, the most important of which are:

  • Business Data Catalog or BDC (which is a means of linking SharePoint to basically anything including SQL Servers, Oracle Servers, Microsoft CRM, SAP and more, and providing the BI functions including dashboards and KPIs)
  • Excel 2007 Services (which allow Excel spreadsheets to be 'hosted' and rendered, and even accessed as web services)
  • Forms server (see below)

Point to note: People sometimes confuse BDC with Enterprise Search. To clarify: BDC can be considered an extra source of data feeds into Enterprise Search.

Other versions

There also used to be various flavours of MOSS for Search, and these can best be summed up as WSS plus Enterprise Search (ie they lack some of the other MOSS features such as ECM etc). They have recently been re-branded as Microsoft Search Server 2008 and come in a free 'Express' version and the Standard version.

Aside: There is another SharePoint pseudo-version known as the Office Forms Server 2007 which basically allows InfoPath forms to be rendered in the browser. It can be added to just WSS if required, and is included by default in the MOSS Enterprise version.


Microsoft hasn't gone out of its way to make all this clear I have to admit – the hype around SharePoint is usually focused on the MOSS side of things – and why not? After all that's where the big dollars are. Speaking of big dollars, it may not be as big as everyone keeps making out.


Sure enough the Internet facing licensing is off with the fairies (at around the USD 40K per server mark!), but inside the company it can be significantly cheaper.

I don't claim to understand the SharePoint licensing intimately, but this link will give you an overview of licensing (eg a basic intranet MOSS license is under $5K, although moving to Enterprise will get you into $60K level – Yikes!). However, the real kicker comes when you have to weigh up all the CALs you need (and for Enterprise you need to buy both the Standard CALs and the Enterprise CALS on top).

Getting confused yet? Yep, and to top it off you also need to factor in SQL Server licenses if you don't already have those in place.

Summary: You need MOSS Server license + CALs + SQL Server licenses

Point to note: If you want to expose your intranet on the internet (eg via your web site) then you are in for a headache :-)

This barely helpful link from Microsoft attempts to make it clearer, but requires about five readings before it starts to make sense.

This Excel spreadsheet is a great SharePoint feature comparison for those wanting to get into the nitty-gritty (well worth the download).

Consider this…

Here's the main takeaway… if you are considering SharePoint for your intranet but have been worried about licensing costs, then start with WSS. It has stacks of collaboration features and may be all you need. And it's free. Plus you can always build on it, adding MOSS features later.

If you did move to MOSS, start with MOSS Standard and think carefully about whether you need the Enterprise features.

And think very, very carefully about making your web site MOSS based :-)


References: Inside Microsoft Office SharePoint Server 2007 by Patrick Tisseghem


* 4GB limitation – MOSS running on SQL Express will be limited to 4GB (due to the SQL Express limitations), but WSS seems to run on a special version of SQL that is not limited. MOSS is never recommended to be run on SQL Express. Disclaimer: I am not sure of these details.

** MOSS is technically MOSS 2007, as there has not been any previous MOSS versions. The previous version of SharePoint was SharePoint Portal Server 2003, usually referred to as SPS or SPS 2003.

Technorati Tags: , ,

COMMUNITY: Are events worth the cost?

Q: Is it worth going to community events like SQL Code Camp?

A: Yes – read on for explanation…

SQL Code Camp 13-14 October 2007

When considering any developer event these days it is important to calculate whether you are getting good value. With so much content available online, we need to evaluate the costs (financial, comfort, time and otherwise) involved in traveling to a venue to learn similar information. The greatest cost is of course in personal time. These days I put an hourly $ value on my time and use it to compare options. Sounds clinical and selfish perhaps, but is primarily an attitude of considering yourself as your own personal business – you need to make a profit or else you're not around for long.

Let's breakdown the costs

First the financial costs of attending an event like SQL Code Camp… the event is free, but everything else adds up. Airfares: $240, Accommodation: $268, Hire car: $191, Meals: $40, so roughly $750. Sure, there's ways of minimizing these expenses, but I have certain standard of living expectation, so these values are about right.

Next, personal time cost: You are giving up at least 2 and probably 3 days (including travel down on Friday, recovery on Monday morning etc) of your personal time that could have been spent on other activities. Giving myself a nominal personal charge out rate of $1.5K a day and I've basically said that I am expecting $3K value out of the weekend for it to be worth my while.

[Aside: My personal hourly rate is based on a combination of personal time and professional charge out rate: so I use $200 an hour and $1.5K a day when making these calculations. I treat weekend days and week days the same.]

What about the comfort cost? This is a hard one to gauge, but basically amounts to how unpleasant (or pleasant) the conditions are. They include everything from an uncomfortable bed (serves me right for being tall) through to eating too much pizza at lunch. I'm on a bit of a health kick at the moment, so I really notice it when I eat badly (yes, I could have catered for myself I guess). Sounds picky? I guess, but I don't really mean it to come across like that, rather I'm just evaluating. Let's put a nominal half day cost on the comfort side of things…

Other costs? Well, if I were in Catherine Eibner's shoes I guess there'd be a few more costs to consider…

So, let's add it all up. $750 travel expenses, $3K time expenses, $750 comfort. That's about $4.5K. So what value did I get in return?

Return on investment

There are three main returns from an event like this. First of all there is the content delivered by the speakers. At this code camp the quality of speakers varied a lot. Crowd favourites like Greg Low, Adam Cogan and Grant Paisley delivered in fine form, Kevin Kline from the US was excellent, and even a few of the 'new' speakers were well worth the time (Mai and Ducas were standouts). The majority of sessions were helpful, but approximately a third were disappointing. The main reasons were due to poor presentation skills and too little content for their allotted time (I won't pick on anyone in particular, but when much of a session involves looking at the syntax of a command and encouragement to check out Books OnLine, you know you are getting poor value). This is of course the problem with community events – you can't expect to have top content for the whole event. Verdict: Overall content was fair to good value.

Next is the value of networking. This tends to get overrated by people in my opinion. For example, I often hear people talking about how one of the main benefits of an event like TechEd is the networking. Whilst I don't disagree, I am less hasty to tout this aspect. Networking is indeed important, and must (yes MUST) be a part of every developer's time in the community, but it is also something that is available via other avenues (and I guess that's why the 'social networking' fad is so big these days). There's nothing like meeting in person mind you, but, like many developers, I have a limit to the amount to talking and chatting I can manage. In general I'm on the introverted side of the scale, so a few hours over a weekend is all I can manage. Thus, it is about a balance really. In terms of networking, SQL Code Camp is a good opportunity. Meeting and chatting with a few experts is important, and to be honest some of the tips I picked up from sitting next to Peter Ward on the flight home were priceless. so, I'm not going to underestimate that.

If I was a speaker (I wasn't) I could include some kind of exposure benefit from attending. For example, Kevin Kline would have received great exposure from speaking, and I'm sure Quest will get a few more hits and even purchases in the coming months. Thus being a speaker could return great value.

Let's discuss the content a bit more. As I mentioned earlier some of the sessions were excellent. For someone in my position I need to be aware of as much as possible that is happening in the technology circles. Although I've been developing with SQL since the 6.5 days, given the size of the product now, there is no way to be competent across all areas. Thus, although I don't have to know the specific details of how to program in a particular area, I do need to know what a product is capable of. And, in this regard, the event was fantastic. I was given exposure to a broad range of areas involving SQL Server. Everything from performance tuning, to migration strategies, tips and tricks, to SSIS, SSAS, SSCE, even a touch on VSTA, and plenty more. In a single weekend I've seen a number of SQL 2005 areas and have a high level overview of where SQL 2008 is going. This was a great return on investment for me.

Other options

But let's compare it to other avenues. If I'd taken my $4.5K of opportunity cost elsewhere, what could I have bought? The first possibility is self-study. I could have taken a week off work and just studied, played, read and worked with SQL 2005 and the latest CTP of 2008. But consider this… how often have you spent half a day trying to work out something that turned out to be really simple? Something that you perhaps picked up from an off hand remark an accomplished speaker made… Yes, there is a definite value from seeing people present and work with a product. Never devalue the live performance.

Another option would have been to take a training course. Given my budget of $4.5K this is probably the equivalent of a 2 day course (if including the cost of my time etc). The advantage of this approach is that you can (normally!) be confident that the course is high quality throughout. And you can also control the content (because you decide which course you are attending). The down side is that courses are usually more detailed and specific to a particular topic, as opposed to the broad range offered at a Code Camp event. However, this post is about the value of events in general, not just Code Camps, so often the level of topic changes with the event.

Moving on to other options, there are paid events/conferences (eg TechEd, ReMIX, PDC, etc). I'm calculating my $4.5K would only buy 1 day of a conference like TechEd (factoring in conference registration cost, accommodation + travel), so I'd likely need to equate 3 Code Camps for one TechEd. The advantage of a conference like TechEd is the range of topics that one can choose between, the calibre of the speakers and sheer size of the event. There are no real downsides by comparison that I can think of.

The value of repetition

So, let's compare going to TechEd with going to 3 Code Camps. What represents the better value? I suspect few would choose Code Camps over TechEd, but does that mean that we should only go to TechEd? Or is there value in attending both? What if I attend TechEd and also Code Camp? Is the value of Code Camp in anyway reduced? This last part is an interesting question. And this is perhaps one of the best value parts of Code Camp – the value of repetition. You'll all know that being shown something twice makes it much easier to learn (doing it yourself is even better). Therefore, the maximum value of a Code Camp in my opinion is combining it with other events. The ideal would to attend TechEd, then a number of events afterwards to reinforce things learnt at TechEd. In fact, even greater would be to attend TechEd first in the US, then follow it up with the Australian version :-). If you are an MVP, then you are even luckier, since you can get the heads up on technology at the MVP Summit, then follow it up at TechEd.

[Another aside: This is also why I will happily see a presentation twice, eg if a great speaker presents a great session at two different events, I am happy to see it twice as I will often get more out of it the second time.]


Let's draw this all to a close. Do I think there was $4.5K of value in attending SQL Code Camp? Answer: Given the broad range of content, the quality of some of the speakers, the networking potential and added value of repetition, the answer is a resounding yes.

Therefore, as an overall statement of my position:

Question: Is there value attending community events? Answer: Yes.

Question: Is it valuable to attend both community and paid events? Answer: Even more so.

Question: Given the limitation of having to choose between community or paid events, which offers more value? Answer: Paid events.

Question: If there was one thing about free community events that you wished could be improved, what would it be? Answer: I wish the quality of the presentations was consistently high.

But finally…

A big thank you to Greg Low, Readify and helpers (including Microsoft, WardyIT, Quest and others) for putting on another fine community event. See you again next year.

Technorati Tags: ,

SHAREPOINT: Beginner’s guide

A few Fox people have asked me lately about SharePoint, and how to get started with it. This might seem strange given how much push it is getting from Microsoft, but perhaps this is another case of having tooooo much information to sift through. Sometimes it can be too overwhelming.

(Note: I am not a SharePoint expert – this is early days for me too)

Anyway, here's a few resources to get started:



There's two things I've realised about SharePoint that developers need to understand:

  1. We need to get our heads around configuration
  2. We need to understand the significance of workflow

As developers we generally like to avoid all the setup stuff (eg take SQL Server), and instead concentrate on the programming (eg database design and writing stored procedures). With SharePoint we can't do this – we need to understand all the setup and configuration stuff as well as the programming. A large part of SharePoint solutions is in the initial config, and we can't just palm it off onto the IT Pros.

With regard to workflow, we need to grasp that the future of enterprise development revolves around workflow. This shouldn't be too much of a surprise (eg the .Net framework has a big focus on it) but it is easy to ignore (especially if you are from a database background).


There's millions of books available of course, but here's two I'm reading:


This is excellent. It takes you step-by-step through how to build a Virtual PC of Windows 2003 Server with MOSS 2007 fully installed.

How to create a MOSS 2007 VPC

Note: this requires you to have access to licenses for Windows 2003 Server, SQL Server 2005, SharePoint Designer, and MOSS (Microsoft Office SharePoint Server) 2007. For MSDN subscribers and MVPs this won't be a problem, but for others this could be tricky. You may need to use a range of trial software. There may even be fully configured trial VPCs available too (but that kinda defeats the purpose of going through all the config).

Personal note 1: It took me approx 2 weeks to complete, as I was installing a little bit each night and playing with a few things along the way (colleagues at work have set it up in a day though). Once complete, it is a full VPC (at roughly 10GB) that you can backup easily.

Personal note 2: In light of my recent notebook reinstalls, I have come to fully appreciate the beauty of VPCs!


There's also millions of SharePoint blogs around. Here's two local guys that I read:

SharePoint Tips (Ishai Sagi)

Guru Web (Ivan Wilson)


Sydney also has a SharePoint User Group, but I haven't attended it (but feel it worth mentioning since I know the company who organize it). The meeting coming up in August looks very good.

Darren Neimke's book (ASP.Net web parts in Action) always gets great reviews, and is sitting on one of our desks at work, but so far I haven't read it. The reason for mentioning it is because many ASP.Net developers don't realize they are 90% of the way to being SharePoint developers – much of the coding behind SharePoint sites is all ASP.Net. And yet, I hear many ASP.Net developers tell me they don't know the first thing about SharePoint. With the state of the SharePoint market at the moment (it's hot, hot, hot in Australia) there's plenty of opportunities for those quick enough to re-package themselves.

Andrew Coates points to the 2007 Microsoft Office Virtual Labs, some of which cover SharePoint.

Of interest

Microsoft is in the process of moving their entire US web site to be SharePoint 2007 based, but as of July 2007 my understanding is that this is not yet completed – please let me know if it has been completed.

Technorati Tags: ,

VPC: Mouse issues running W2K3 under Virtual PC 2007

Solution: Set Hardware Acceleration to Full

Problem: My mouse movement was really sluggish in a VPC running Windows 2003 R2 (but other OSes are fine)

Acknowledgement: Thanks to Paul Adare on the Microsoft Newsgroup for sorting this one out

Here's the steps:

  1. Right click on Desktop, select Display Properties
  2. Settings Tab
  3. Advanced Button
  4. Troubleshoot Tab
  5. Slide the Hardware Acceleration tab to Full

VFP: How to make Visual FoxPro cool

Visual FoxPro
VFP: How to make Visual FoxPro cool
In case you hadn’t noticed, Visual FoxPro (VFP) is not very ‘cool’. In this post my aim is to cover 3 areas:
1. Why VFP isn’t cool
2. Why it matters
3. How we can make VFP cool
1. Why VFP isn’t cool
OK, so the first thing we need to agree on is that VFP is not cool. I’ve been chatting with a few people in the .Net space lately (including Adam Cogan and Paul Stovell) about their thoughts on VFP. I’ve concentrated on developers who have never used VFP because they can offer the most useful opinions (as opposed to say VFP/.Net developers who are pretty well aware of what VFP can do).
Straight away we need to acknowledge that there is a general lack of knowledge in the .Net community on what VFP can do. For example, they are genuinely surprised to learn how easily VFP can talk to SQL Server. Countering this is not my agenda however – there have been plenty of discussions on the lack of marketing for VFP and I have no interest in repeating them here. I will come back to ‘spreading the message’ later in this post though.
Rather, I’m going to concentrate on non-technical areas. Here’s some of the reasons why people think VFP isn’t cool:
Reason 1: It is ‘over the hill’
The first thing that VFP has against it is the fact that it has been around for so long. You’d think this was good thing right? Stable. Optimised. Large community. Nup. Today’s new developers are most interested in working with the latest technology. And VFP aint new.
Think Cobol. When people laugh about someone being a Cobol programmer, its not because they are bringing to mind the languages shortcomings. No, primarily they are thinking of how antiquated the language is – ie it must be a bit of joke to be still using it.


And sadly, Visual FoxPro is creeping into that same area. This is in spite of the fact that Microsoft is currently working on the next update to VFP and has confirmed support of it until 2014. ‘But it is so old!’ – yes, it must be well past its used-by date… or so the theory goes. Disagree with this all you like, but its a fact – ask a new uni student what they think of VFP and they’ll look at you blankly. Ask an older developer (not a VFP developer) their thoughts and they’ll query whether it is still around. Inform them it is and watch their reaction – it must be on the scrap heap surely… and on it goes. We’ve all run into this thinking out there.
And I can relate to this myself. I love all the new stuff, so I totally understand where they are coming from.


Now, at this point you may be questioning if new developers are really that ‘superficial’ – I mean surely they’d have some interest in comparing the tools and choosing the best one to work with. Nup. I reckon the actual abilities of the tool comprise roughly 5% of the decision process.
Don’t believe me? Then consider this – why are there more developers going into C# than VB.Net? C# is cooler, that’s why. Both languages have roughly the same functionality, and yet C# is perceived as being the language the smarter ‘real developers’ choose. Yes, and VB is for the people who find C# too hard…
There are ofcourse some pretty major (and vocal) proponents of VB, but the fact that they have to ‘explain’ why VB is just as good is part of the proof that it is the ugly sister. [btw I expect this last paragraph will probably get the most reaction from readers, and if so, then its because you’ve missed my main point.]
Main point => Coolness isn’t about technical ability, it is about perception. Perception is everything.
Reason 2: It doesn’t do Managed code
The second thing against VFP is that it is not part of the .Net suite. VFP code isn’t managed code. And here’s the interesting part – ask a new .Net developer why managed code is better. You’ll get a few mumbles about better memory management, some will mention garbage collection, but by and large, developers can’t tell you what’s so good about managed code. It’s just better OK.
So, because VFP isn’t managed code then it must behind the times. Ofcourse, they all use Word, Outlook, Skype, Windows Media Player and a host of other applications that aren’t written in managed code but that’s beside the point. The point is that if you are writing managed code, then the perception is that you are writing better code. Managed code is cool, VFP isn’t.

And don’t get me wrong – I am not ridiculing this thinking, I actually think it has a lot of merit. My point is to simply list reasons for the perception VFP has.
Reason 3: The Developer User Experience
The third strike against VFP is the tired look and feel. Run up VFP and you are faced with the old Windows 2000 menus. No nice Whidby menus, not even Office 2003 style menus. Open a few dialogs, all the icons are ancient. Nothing is 3D (except some of the new reporting dialog icons) and the status bar is from the 90s. Yikes it doesn’t even have a tabbed interface (someone really needs to do something about that {g})
Ofcourse this doesn’t matter one iota to the quality of the applications it produces, but these days the user experience is core.
Reason 4: It has the word ‘Fox’ in it
Although the word Fox has actually benefitted somewhat from the FireFox browser, over all, the words Fox and FoxPro are largely outdated. VFP really needs some rebranding to overcome this.
For many people there is a big stigma attached to the word FoxPro. They can’t disassociate it from the crappy FoxPro for DOS application they used in a company 10 years ago (my attention has turned to older developers here).
But even more recent developers remember the FoxPro that came with Visual Studio 6. They saw it there, but can only really remember the bland 16 colour icon it had. Again, the perception is that it is old and irrelevant.
And don’t underestimate the need for branding. Take Microsoft FrontPage for example. The stigma attached to FrontPage from prior versions (where it used to bastardise your HTML) was so bad that Microsoft knew they had to rebrand it. And so what was originally going to be FrontPage 2007 has now become Microsoft Expression Web Designer Edition (check out the demos for it here and you’ll see what I mean). Same product, different perception.


2. Why it matters
So what if VFP isn’t cool – it still does what we VFP developers need right?
Wrong. The biggest problem VFP faces going forward is lack of developers. The VFP programmer pool is most likely reducing.
I am assuming most people will agree with this statement.
The challenge for a VFP devleopment shop is not the technology, its the people. If you want to grow your business and take on new developers you need to have a good supply of them to choose from. So why are there less VFP developers?
This is because all the new uni students are studying .Net or Java. There are exceptions ofcourse, but this is the general trend (and I suspect this is happening in India and Asia aswell, not just in Western countries).
And why aren’t uni students learning (or interested in atleast knowing about) VFP? Put aside the hype and huge marketing push from Microsoft for a minute and it all comes back to the coolness factor. If we could make VFP cool, we’d get more takers.
3. How to make Visual FoxPro cool
So, what can we do to make VFP cool? Here’s some ideas (some we can do, some are out of our hands):
Rebrand it (Requires Microsoft)
It is time to lose the word ‘Fox’.
Microsoft has not indicated what the next update/version will be called. For now it is simply code named Sedna. However, I have started referring to it as Microsoft VF.Net
The VF is short for Visual FoxPro, and the .Net refers to the strong integration it has with the .Net 2.0 framework. No, it doesn’t write .Net code, but it does use the .Net framework. It is a .Net aware language.
I’ve also changed the icon in the top left corner of the VFP IDE. So when people see me using VFP they see the caption as Microsoft VF.Net and the nice icon. You can also disable the splash screen using a config file, so, unless you look at Help > About there is not a Fox in sight.
I also use FoxTabs (even though it is still in beta and has a few known issues, and needs a name change {g}) which improves the design experience.
Revamp the interface (Requires Microsoft)
The interface needs an overhaul. Update the menus to be like Visual Studio 2005, spruce up the dialogs and splash screen. Note, we don’t need a single change in functionality, only the look and feel of the product.
Promote the .Net integration
In demos to a mixed audience (ie not confined to Fox devs) I will try to mention the new Sedna examples (and gee I hope there is a new CTP coming soon…). Developers don’t realise how easy it is to use VFP with .Net (both using Sedna and using .Net controls – check out Craig Boyd’s and Rick Strahl’s site for examples)
Promote the data binding
The stuff coming in LINQ for .Net is great. However, show people how much more they can do in VFP, and tell them they should campaigning the .Net teams to provide the same. .Net developers should be shouting about how badly they have been treated in the databinding stakes. Tell them they can use VFP as an example of how it is possible to do it.
Promote VFP as a helper tool
VFP is a great tool to use along side Visual Studio. I’m not trying to convince .Net developers to change over to VFP, but there are plenty of benefits they could derive by having VFP as a helper tool, including:
– Need to write some quick SQL Server unit tests? Use VFP to setup test data. Then use VFP to make SQL SP calls and check the data returned.
– Need to pull out some data into a spreadsheet – use VFP.
– Need to script some updates – VFP is great as a scripting tool, similar to a scripting language like VB script.
– Need to check if a COM object is installed – try a quick CREATEOBJECT call in VFP.
Promote VFP as a prototyping tool
VFP is a great tool for .Net developers to be building prototypes in. Whip up a form, throw on some controls, bind to some example data, deliver the app to the client in a tiny installer, etc
Spread the message
This is not a new appeal. Craig Boyd (and even myself) have called for action from the VFP community to help let other developer communities know some of the great stuff VFP has (if for no other reason than they can then put pressure on Microsoft to hurry up and get it into .Net {s}).
However, the message comes down to dispelling a few of the misconceptions about VFP. Here’s a few things we need to promote:
– VFP works great with .Net
– Sedna actually focusses on .Net interop
– VFP is an awesome connector to SQL Server
– VFP has inline SQL calls
– VFP is well supported and continues to improve
Wrap up
After reading my post I’d understand if you thought I was anti .Net. In fact, the opposite is true – for example I look after a team of 15, over half of which are .Net developers. We do a lot of ASP.Net, SQL Server and BizTalk development. But we also do a lot of Visual FoxPro development. My concern is over the perception VFP has and the longer term issue we will face getting more VFP developers. Hence my interest in improving the perception VFP has.
Your thoughts
If you are a .Net developer and can spare a minute to send me your thoughts on what you think of VFP and what it would take to convince you VFP is cool, I’d love to hear from you. You can email me (cb@talman.com.au) or leave a comment on this post.
Paul Stovell and Adam Cogan have given me heaps to think about, much of which has ended up in this post. Any biases, inaccuracies or perceived hostility is totally mine though.