|
Boost : |
Subject: Re: [boost] Proposed -> Boost.Application : Article -> How to Extend Application Modes
From: Richard (legalize+jeeves_at_[hidden])
Date: 2014-01-08 16:16:50
[Please do not mail me a copy of your followup]
I only looked at the Windows service side of this and I would vote
this library down as it stands. The documentation is poor and sketchy
and the Windows service side of things is not following current best
practices for a Windows service.
Even the basics covered in "Professional NT Services" from 1998 are
not being followed here.
Furthermore, current best practices are not to use the Service API for
installing or deleting services (the implementation on github doesn't
even check for errors!), but to handle this in the installation
package for the service.
I'm not saying that the API is deprecated, but this library is going
to send a whole bunch of people down the error-prone path instead of
the best practices path.
On the POSIX side, there is no implementation for 'installing' a
service, so the feature set is asymmetrical between platforms. The
implementation of a service seems to follow all the guidelines in
<http://cjh.polyplex.org/software/daemon.pdf>, but I didn't check
everything point-for-point.
The library as implemented is highly coupled directly to system level
API calls, whether they are POSIX or Windows, and isn't very amenable
to unit testing. The coupling to Windows API calls is also poorly
done and doesn't achieve any level of encapsulation into objects, even
though the Win32 API is basically objects thinly disguised underneath
a C-style API and handles.
Sorry, but I wouldn't recommend this library to anyone interested in
following best practices for services.
-- "The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline> The Computer Graphics Museum <http://computergraphicsmuseum.org> The Terminals Wiki <http://terminals.classiccmp.org> Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk