6.6: Saying goodbye to compilers, operating systems and code...
As we first mentioned here, release 6.6 of The Server Framework removes support for Visual Studio .Net (2002) and Visual Studio .Net (2003). The 2002 compiler is no longer supported by Microsoft and the 2003 compiler becomes unsupported in October this year. To be honest, I’m very pleased to see the back of them. Hopefully most users of the framework are using at least Visual Studio 2005, if you’re not, get in touch now.
We’re also dropping support for Windows 2000, which Microsoft stopped supporting in 2010 this means the Windows XP is the earliest supported operating system for version 6.6.
Finally we’re deprecating quite a bit of code. This will still be present in 6.6 but will, generally, be unavailable by default. You can add various defines to your Config.h to re-enable the deprecated code but be warned, it will be going in a future release.
The following code is deprecated in 6.6
CInOrderBufferList
- use aCSortedBufferChain
and aCBufferProcessor
instead.CSequentialBufferList
- use aCSortedBufferChain
and aCBufferProcessor
instead.- The entire concept of “shared” locks, so
CSharedCriticalSection
,CSharedCriticalSectionFactory
,CUniqueCriticalSectionFactory
,ICriticalSectionFactory
,ISharedCriticalSection
,IManageSharedCriticalSections
andCSmartSharedCriticalSection
- the concept is no longer especially useful as the resource limitations and problems that existed with NT4 are now a thing of the distant past. However, since the code is still present in the framework people use it and end up with slower and more complex servers with contention between otherwise unrelated connections. Use the socket allocators that do NOT require lock factories as a replacement. - Likewise the entire concept of “shared lock sockets” which require the above shared locks to work, so socket allocators no longer take lock factories as constructor arguments and
CSharedLockDatagramServerSocket
,CSharedLockDatagramSocket
,CSharedLockStreamSocket
andCSharedLockSequencedStreamSocket
are also no longer available - but that’s an implementation issue. CCriticalSection
andCCriticalSection2
- use one of the new locks,CLockableObject
orCReentrantLockableObject
instead.CLowContentionBufferAllocator
andCTLSBufferAllocator
- useCBufferAllocator
orCLockFreeBufferAllocator
instead.CDeflatingStreamSocketConnectionFilter
and the “deflate-stream” WebSockets extension - note that “deflate-stream” was dropped from the final WebSocket standard and is not generally used.