On 2011-08-15, Dominik Psenner wrote:

> The other big story is the support for the .NET client profiles. As I
> understood it, we have to drop everything in log4net that is not
> supported in a .NET 4.0 client profile (i.e. references to System.Web).
> To achieve this we have at least two options:

> 1] refactor everything that doesn't fit with the client profile into a
> separate project / dll
> 2] maintain a .net 4.0 client profile branch with a subset of the
> log4net functionality

> * Solution [1] is a pain for everyone that uses log4net since they need
> to reference two libraries instead of one
> * Solution [2] is a pain to maintain with subversion

Not really, solution 2 doesn't require a branch IMHO.

Right now the NAnt build builds several different assemblies targeting
different platforms all out of the same source tree and it should be
straight forward to extend that to the client profile as well.

Tasos' patch basically works the same way as log4net supports the
compact framework now - it adds a conditional compilation symbol and
simply excludes all System.Web stuff if that is set.

We could extend the NAnt build to create even more assemblies (4.0 had
to be added and 3.5 client profile as well as 4.0 client profile), set
the CLIENT_PROFILE symbol and be done.  This should even be possible for
1.2.11 - at the expense of even more assemblies.

The main hurdle may be NAnt's limited support for .NET 4.0 (need to use
a nightly build for now) and I don't think there is a target defintion
for client profiles at all - but that should be doable.  I'm willing to
invest some effort here.

Longer term switching to MSBuild or the solution task in NAnt and using
Visual Studio 2010 solution files targeting the correct platform may
work should we plan to drop support form 1.x, Compact Framework and
explicit support for Mono.

What I wonder is: do we really need 3.5 and 4.0 assemblies at all?
Wouldn't a 2.0 assembly including System.Web and a 3.5 client profile
assembly without it work for .NET 3.5/4.0 projects and and their client
profile subsets well enough?  For 1.2.11 that is, later we may want to
use LINQ or WCF or whatever.

Stefan

Reply via email to