andrewdavey/cassette — pull request #191 by kamranayub (2012-02-26 18:49:57+00:00)
Title: Add .NET 3.5 Backwards Compatibility

Pull Request for Issue #168

## Goals

* As much shim transparency as possible to not disrupt existing codebase
* Totally automated multi-targeted build process
* No extra Nuget packages
* As little extra configuration as possible for end-users (this will be eliminated in Nuget 1.8 hopefully)
* Least maintenance headache as possible (the only annoying thing will be updating Cassette's own nuget dependencies)

## Rundown

* Added Cassette.FX35.sln for easy 3.5 development
* Added shims where needed to add support for .NET 3.5, redirects or uses .NET 4 native methods in 4.0 mode (uses `NET40` and `NET35` constants)
* Modified `csproj` files to conditionally reference/include files based on `TargetFrameworkVersion`
* Added contribution documentation to help contributors code against 3.5
* Cassette, Web, Views, UnitTests, and IntegrationTests all have .NET 3.5 configurations (Debug-FX35, Release-FX35)
* Updated `build.xml` to support multi-targeting
* Updated Nuget package workflow using XDT transformations (less maintenance)
* Added DotNet35 example web project
* Added documentation to Cassette website under Getting Started
* Removed WebActivator in favor of `CassetteHttpModule` starting/stopping Cassette (@andrewdavey's suggestion to avoid a new Nuget package)

## Potential Issues

* Will the HttpModule be as good as WebActivator? Remains to be seen. In Nuget 1.8 (hopefully) we can reintroduce the dependency for .NET 4 and use this method for 3.5 (that will also remove any extra configuration for end-users).
* CoffeeScript compilation is using old multi-threaded method