Main Site Links Resources Tutorials
News VB Gaming Code Downloads DirectX 7
Contact Webmaster VB Programming Product Reviews DirectX 8
  General Multimedia Articles DirectX 9
      Miscellaneous

Experience for the next generation
It is quite clear that the majority of computer development is geared towards internet based connectivity; in the last 3 years the number of users online has grown to huge numbers - and it looks like the figures will keep on going up.

Internet integration is a big part of WinXP, and whilst it is still perfectly possible to use XP without an internet connection you will be missing out on quite a lot of the new features. Microsoft have gotten in a little bit of trouble with the United States Justice Department over the inclusion of Internet Explorer 6, Outlook Express 6 and MSN Messenger in WinXP - how that will finally pan out is unclear now, and too big a topic to discuss! Search through online news archives if you want to find out the absolute latest.

However, the main area of internet integration is not connected with that little dispute - so is definitely here to stay. Windows Update is a clever feature whereby WindowsXP will scan your computer checking version numbers for components/drivers and then check against an online database to see if newer/better versions exist. If an update does exist it will be downloaded and installed on your system, the net result is that if you regularly use this feature you're system will be pretty much always up-to-date. This feature also kicks in if you install or have hardware that needs drivers that the system can't find locally (on the disk or hard drive). Whilst writing this review it detected that I have an "unknown DVD decoder" attached to my system, and prompted me to let it look online for some drivers. I didn't actually need to let it do this as I have the drivers on a CD already.

The other area of internet integration that is worth paying attention to is the help and support center / help. WinXP comes with a significant help library anyway, but if you can't find what you're looking for in the local archives it has several links/methods by which it can attempt to get the information from the Microsoft servers. This also helps when you get system errors - by default Windows will want to check the Microsoft servers for a solution, if it can't then it'll want to log it on the servers for future reference/other people.

The only main problem with the whole internet-ready nature of this operating system is if you're not connected to the internet. It's a fairly obvious statement really, but in my situation (and I doubt I'm the only one) I have two computers - one is for the internet, one is for development. That is, my (now) WinXP machine does not have a modem installed most of the time, and therefore can't make any use of the internet functionality. The system is still perfectly usable, and I've been surviving fine - but I suppose it's fairly lucky that I haven't needed to make use of the help and support center too much...

Internet connectivity in WinXP may well be a trial run for Microsofts next big jump - the .Net generation software. The only major .Net software currently available is VisualStudio.Net (reviewed here). Exact details of how the .NET software will eventually roll out is not easily available, but it is clear that it will be highly internet/network orientated. I could be completely wrong, but before Microsoft jump in the deep-end with such a system, it would be useful for them to test/setup the infrastructure and see how it copes in a live environment. From first impressions, it seems to be working fairly well...

Performance & Stability
Two of the biggest issues for many people contemplating upgrading/replacing their current operating system. If these two areas are not up to scratch, then no matter how pretty the system looks or how many amazing features it has the majority of people will not waste their time with it.

Performance has been good all round, It is difficult to say for certain how much faster windows is from version to version. The basic tests I ran indicated a marginal speed improvement, but this could as much be from better hardware drivers (in the case of 3D multimedia tests) as the actual windows code. As far as playing games are concerned, the speed improvement won't be particularly noticeable - 5 or 10 frames per second improvement at best. DirectX is apparently built pretty much into the core of the WinXP system this time around, as opposed to Win98 where it was just a bit more tightly woven together, it is probable that this change is what gives multimedia applications the slight edge.

Stability - always an interesting issue with operating systems. WinXP is built on the NT/2000 kernel rather than the rather dodgy Win9x kernels, therefore stability is generally much better. However, it's not entirely bullet proof - you can still crash the system, and crash it big time! If you're a programmer, the NT-style process management will be a real benefit. If you locked up an older Win9x system it would often require a hard-reset in order to get it working again. With WinXP you can in all but the most serious crashes just kill the offending process and carry on as normal. One particular application that I was working on with Win98 before was Direct3D texture memory access - an often risky business, the number of times I locked up the computer/blue-screened it was quite impressive. Developing the same application since installing XP still heralds quite a few crashes (cant blame Windows for my stupid code!) but all it ends up doing is closing a few of my programs, rather than stopping me working altogether.


The new friendly error messages. In the above case, I've stopped it
from reporting the error to Microsoft.

Memory and resource management seems to be much better, probably also due to the NT/2000 kernel being used - I had left this computer on for nearly 7 hours yesterday (not very clever I suppose), doing odd bits of work now and then. The system remained running and as far as I could measure at the same speed as when it was first turned on.

As mentioned in the previous section, Windows would like you to report all of your major errors to them, which I did test out on a couple of occasions. However, the closest I got to a solution was being forwarded to a knowledge base article (which didn't solve my problem, but did help a little bit).

Programming for XP
Programming with/for WindowsXP is not really that different from programming with Windows 98, any code that ran on a previous operating system will tend to run with WinXP as well. Once you've compiled a program, selecting it's properties in Windows Explorer you can run it in "compatibility mode" - Windows 95, Windows 98/ME, Windows NT 4.0 SP5, Windows 2000. When you select this, the program should operate as if it were running on the specified system.

Given that this is currently the most recent operating system it does mean that it was designed with all the current and existing technologies in mind along with a thought to future technologies. Whilst you'll still be wanting to support older systems, it is definitely an advantage to you and your customers to develop with WinXP in mind.

It is always useful to remember that as hard as Microsoft may try to push forward their operating system(s) at the end of the day it is the software developers across the world that sell it - we write the programs to take advantage of the OS, and customers will (in most cases) just follow along. Therefore, it is important that Microsoft give developers the support that they need/want, and luckily for both parties, they do.

There are two main areas you'll be interested in:

.Net frameworks, whilst it probably won't be until the .Net servers and operating systems go live that these will really come properly to life, WinXP has pretty good support for the frameworks, and are closely integrated into the core. Anyone who's had Visual Studio .Net for a while will have had the frameworks to "play" around with, but recently the .Net frameworks became available on windows update for XP and most other OS's - so home users are now more likely to have them already installed.

Win32 API, the specification for this hasn't changed much (it cant really), but there is full inclusion of the new GDI+ libraries. These are essentially a class-based/Object-Orientated version of the old GDI/GDI32 libraries with a few additional functions/tweaks (alpha blending for example). GDI+ is available as an upgrade for other versions of Windows, but it is at it's best for WinXP - simply because WinXP has it properly built in. GDI+ also allows some hardware acceleration to take place with suitable drivers/hardware, which is something I'm amazed Microsoft haven't implemented before (given the power of graphics hardware).

Additionally, DirectX8.0 is included by default with WindowsXP - and is again, tightly integrated into the system core, providing a bit of additional speed and stability. Other SDK's are available for windows components - such as Windows Media Player. Windows Installer is also built into the system - which may well prove useful for distributing products, particularly if you're interested in online/cross-network installations and deployment.

Finally, the 'WinLogo' program has been upgraded to match WinXP as well - This is a fairly simple system whereby you get to promote Windows for Microsoft by including a little icon/logo in your software documents/boxes, and Microsoft will include you in their "compatible with XP" software catalogue.

For those looking for further details, the following links will take you to information on the Microsoft site:
General Windows Programming (all versions), Introduction to Windows XP Programming, Windows XP developer program, WinLogo Program, GDI+ start page.

Versions
Professional Edition:
Full Copy $299, Upgrade $199 (Microsoft Shop Online)
This version has everything that you can possibly get from WinXP

Home Edition:
Full Copy $199, Upgrade $99 (Microsoft Shop Online)
This version has quite a few things cut out - it's only intended for 
the home user, not a professional/semi-professional developer.

There aren't going to be any major core-differences to either edition, the real differences lie in the tools that come with them. Obviously for any serious programmer or developer you'll be wanting the Professional edition, but if you want to save yourself some money you can probably make up what you've lost with specific developer-related 3rd party tools.

Once you've purchased your copy, you'll obviously need to install it. Installation was pretty straight forward - and after the first few screens of configuration you can pretty much leave it to get on by it's self. Bare in mind that the basic installation is now 1.5gb - which in these days of super huge hard drives isn't too bad, it's still a hefty figure should you be concerned about your disk space.

The other big change that comes with upgrading from previous versions is that you'll almost certainly need new drivers. WindowsXP comes with an impressively large number of system drivers - but they're only the most basic functional section (no help files / utilities / control applets etc..), so whilst it is quite likely that it'll get your system working okay you're best off downloading/acquiring the latest drivers online (windows update will help here). Because the system is now based on the NT/2000 core, you need completely new drivers - in previous years Win95 drivers would often work in 95,98 and ME - you can't safely use Win9x drivers under XP.

Drivers are about the only part of windows that, over the years, has pushed me towards mindless acts of violence against inanimate objects (desks being a common theme). There are just times (I'm sure you'll appreciate) that something should work fine - everything says it'll work fine, but it just wont. This is almost always due to drivers - take video cards for example, under Win98 on my SS7/AMD K6 based system it took weeks of research, downloading and customer-service calls to get a simple graphics card working in anything other than in lo-res/16 colors. Therefore, before I ever change my operating system I do lots (and I mean lots) of research into driver availability, stability and compatibility. I strongly suggest you do this before considering an upgrade. I was fairly lucky with my system - I don't have top of the line hardware, but it's all still fairly well supported, so drivers weren't hard to come by. This should now be true for most people - As I said at the start of the review, WinXP has been available for quite a while now so most initial driver teething issues should have been resolved; and any companies looking to support WinXP will have already done so by now.

The only problem that I did have was with my ageing flatbed scanner, which (even for Win9x) only shipped with 16bit/Win3.1 drivers and utilities. WinXP really didn't like these drivers (don't blame it really), and in the end I just had to use a default set of generic drivers from windows' library. It now works okay, but I've lost a couple of the utilities that extended the devices functions quite nicely.

Things only really get interesting once you've started up your new system - product activation. The first time you log into/start up you'll get a message stating that "this software must be activated before it can be used" - you then get led through a few steps to gather some details, and you must then go get an activation code. You can either use the internet, or you can phone up an automated system (I chose the latter) to get the code. Product activation is Microsoft's latest attempt to cut down on piracy - having to register the software with them allows them to try and stop multiple people from using the same copy (piracy basically). At the time of release, many people were very critical of this system - wouldn't it mean that Microsoft would be able to "watch" them? store lots of information about them? well, I suppose it could well do... but when I phoned up to get my activation code I chose not to give away my details (this was more due to the fact that I was in a hurry, and couldn't be bothered to sit through another 5 minute phone call!), and I suppose it is possible that the number I gave them (you give them a number, they give you a number back - product activated) had some details in it, but I think it unlikely. Therefore, unless you're a software pirate, you don't have much to complain about when it comes to product activation.

Conclusions

WindowsXP is definitely ready to be looked at seriously, and for the majority of people it will be the next logical step for their system(s). I am assuming that there will be two categories of developer reading this review, those that are still using Win98SE or WinME and those that are using Win2000.

Those people using Windows 2000 will be aware of the huge advantages of the NT kernel as far as productivity is concerned (stability and performance wise), and short of any huge interest in the UI/GUI for XP will probably be fairly happy with their system as it stands.

However, those with Win98SE or WinME - definitely time for an upgrade, I personally never liked Windows ME (although I never actually owned a copy / had it on my system), and Win98SE is essentially based on software technology of 4 years ago - despite the number of patches/upgrades you can get.

Having used Windows 98 SE for several years now, and having experienced its highs and lows I can say that so far my experience with WindowsXP is far better. There is a much more solid and refined feel to this version, it is designed for maximum ease-of-use with all it's new added features, yet at the same time it holds true to the operating system that I've used (and known) for many years. 

I've now spent 2 days with WinXP on my system - digging as deep and in as many places as I can to find it's flaws, find it's bonuses and generally put it through it's paces. I think I'll have to agree that XP does come from eXPerience, and that Microsoft have really given some thought to the way they made this operating system. I'm not in any hurry at all to go back to Windows 98SE.

As a quick summary:

Good Points Bad Points
• Very well designed interface both in looks and feel. • May well not suit older systems / older hardware so well
• Reliability and efficiency of the NT/2000 operating systems. • Some older software that worked with Win9x may not work with WinXP
• New changes/upgrades to the interface don't get in the way. • Quite expensive for most people.
• Ready for the next generation of software. • Could require a bit of research/work getting the relevant drivers.
• 6+ months of release time has shown it not to be all hype.
• Any hardware that needs XP-specific drivers will have them available by now.
• Good selection of tools/utilities for average home-users.
• Good use of internet-integration / works well.

Click here to go back to the first page...

DirectX 4 VB © 2000 Jack Hoxley. All rights reserved.
Reproduction of this site and it's contents, in whole or in part, is prohibited,
except where explicitly stated otherwise.
Design by Mateo
Contact Webmaster