[POLL] Should NLog.dll remain cross-platform?

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[POLL] Should NLog.dll remain cross-platform?

Jarek Kowalski

I've been recently thinking about NLog.dll supporting multiple platforms
(.NET, Mono, .NETCF). There are some issues which make me seriously
reconsider providing versions of NLog.dll compiled for each supported
platform instead of just one binary that targets all.

The issues are:

1. I recently came up with an optimization to the File target on Unix
platform which could be implemented using some mono-specific APIs
(Mono.Posix.dll). Compiling this using .NET 1.0 compiler (although
technically possible for Mono 1.0 profile) is anything but "clean". It's
would not be possible with Mono 2.0 profile since the assemblies use new
format, incompatible with csc.exe 1.0.

2. .NET 2.0 has new configuration API (System.Configuration.dll) which
should be supported in addition to current configuration system, at least to
get obsolete-warning-free build.

3. There are some new .NET 2.0 APIs which beg for NLog support (like Console
with managed support for changing colors). With the introduction of WinFX,
we'll get the new WCF platform as well.

4. Most new development projects target .NET 2.0/VS2005 and .NET 1.0 will
probably become deprecated soon. It's theoretically possible to support
newer frameworks with older compiler, but it's very hackish and error-prone
(late binding, reflection and so on).

5. We already have a special build for .NET CF 1.0 (and there'll be a new
build for .NET CF 2.0 soon)

6. There are very few programs that target both Mono and .NET without
recompilation (I'm only aware of NAnt).

So we'd have the following releases:

.NET 1.0 (exists today)
.NET 1.1
.NET 2.0
.NET CF 1.0 (exists today)
.NET CF 2.0 (will be added in 1.0 release)
Mono 1.0 Profile
Mono 2.0 Profile

.NET 1.0 build would be the lowest-common-denominator-version supported on
all platforms (just like it is today) and other versions would have
additional features that target specific platforms.

Each target would be marked with an attribute stating its platform support
(framework & OS). This will be used to generate documentation so that the
user will always know which version to use to get particular target/layout
renderer under a particular operating system.

Please vote. Possible answers are:

+1 - produce multiple NLog.dll binary releases, one for each platform using
#if's in the code.
0 - undecided
-1 - keep single NLog.dll that targets all platforms

If I get a sum above 0, I'll make a new snapshot release for testing soon.

My vote is +1.



Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
Nlog-list mailing list
[hidden email]
NLog Blog