Highlights of the 6.0 server framework release
The latest, 6.0, release of The Server Framework is significant for me in several ways. From a purely practical point of view it’s the first release from my new Subversion repository and as such it’s the culmination of a fair amount of work and restructuring. The new repository is easier to work with and the new code structure is expecially noticable in the way that example servers and clients are now packaged for release. This new example code structure is easier to release from and to grow; which means that it’s more likely that new examples will be released.
From a user or potential user’s point of view the fact that all of the example servers and clients are now available online in source code form is a useful change; of course The Server Framework code that they require isn’t freely available, but many clients have requested that I send them examples so that they can assess how they might integrate their code with The Server Framework. For existing clients all you now need to do to get hold of a particular example is download it and copy the library source code into the appropriate place.
The number and scope of the examples has also grown; there are now Gateway servers (proxies) that bridge connections together, Data distribution servers and clients that demonstrate pub/sub and high data flow scenarios along with the CLR hosting servers, OpenSSL servers, SChannel servers and the examples that demonstrate our Windows Service and Performance Counter integration.
See here for details of all of the examples available and for links to download them.
6.0 is also the first release since 5.2 for which the full documentation set is available online (see here). Of course this is still a work in progress, but it’s getting better with each release.
Two libraries have been merged into the Win32 tools library. The C++ tools library and the Registry tools library. The C++ tools library is something that seemed like a good idea back in 1997 when the code was first being developed and I expected that much of the code might be cross-platform. The idea was to stick all of the stuff that should work on any platform in the C++ tools library and keep the Windows specific stuff in the Win32 tools library. It didn’t quite work out like that. Most of the code developed since then is very Windows specific and so I’ve finally simplified matters by merging the code into one library. The Registry tools library is slightly different. Back in February 2000 I wrote a registry class and uploaded it to CodeProject.com this was before I was using the STL and the code has stayed pretty much untouched in its own library ever since. Ideally it needs refactoring to bring it into line with the rest of the Win32 tools library and that’s more likely to occur if the code is, infact, part of the Win32 tools library; at least that’s the theory.
And last, but not least, this release is easier to configure; though at first it may appear that it’s harder to configure… Previously various configuration options used to live in Admin.h and the framework shipped with these set to our current favourite settings. This isn’t always appropriate for clients and so you now need to actively configure the system before you build for the first time. This is, probably, as simple as copying one of the example config files. The idea is that you are forced to think about it rather than simply having my latest settings thrust upon you. See here for more details.