Fixing issue 150: Added support for nested controller types.

Controller types no longer have to be public top-level types. As long as they are visible outside the assembly then they can be nested types as well.
Issue 273: Validate enum values used in Tracing

Added checks and tests for TraceLevel and TraceKind enums
Issue 307: Make HttpError key string literals public

Rather than making the key literals public, we added public getters/setters so that users of the class don't need to know the dictionary keys and won't have to guess the type of the associated values.

Henrik

[1] http://aspnetwebstack.codeplex.com/workitem/307
Fixed fx cop problems
Enable FxCop v11, clean up new violations, renumber old rules to new numbers
Refactored ODataEntityDeserializer

Refactored ODataEntityDeserializer to ODataCollectionDeserializer and
ODataFeedDeserializer and ODataPrimitiveDeserializer.
$filter supports any/all with primitive collection properties.

Fixes issue http://aspnetwebstack.codeplex.com/workitem/360

Prior to this fix, using $filter with 'any' or 'all' on a property returning a collection of primitive types threw ArgumentNullException.

With this fix, 'any' and 'all' can be used in a $filter expression against collections of primitive types.  Collections of entities already worked with 'any' and 'all', and that behavior did not change.
Fix issue 353: Content negotiation returns 406 on missing accept header

Updated check of whether to match on type to include a check of whether there are any accept headers present in the request. If there are accept headers present and "ExcludeMatchOnTypeOnly" is set to true then we don't match on type but rather return null resulting in a 406 response. If there are no accept headers present then we do match on type as no accept headers mean that the server can pick the format.

NOTE: This commit adds a new virtual method to DefaultContentNegotiator that breaks out the decision as whether to exclude matching based on type only or not. This decision was previously made in the default implementation of MatchType but now it can be overridden independently in the method ShouldMatchOnType.

Henrik

[1] http://aspnetwebstack.codeplex.com/workitem/353
Improved $filter expression generation.

1) when null propagation is enabled, the expression we generate for function
call has redundancy.

2) Adding support for limiting the number of expressions generated during
translation of $filter.

3) A $filter that could be null is being translated to an expression that has redunadancy.
[OData] Add self links to feeds in accordance with the specification
     Add ODataQuerySettings class to hold parameters to query composition.

Prior to this change, controlling null propagation or stable ordering was done through bool parameters to ApplyTo.  This increased the number of ApplyTo overloads and was not flexible for growth.

After this change, these bool parameters have been moved into ODataQuerySettings and the ApplyTo overloads reduced.  Future parameters to control query composition will be added to ODataQuerySettings as needed.
Bug 452955: [OData] $metadata and servicedoc does not work with tracing

We are working around the tracing issue in runtime by adding an extension
method to set the ODataFormatter on HttpConfiguration. This helper adds
the formatter to the collection and stores it in Properties property bag
of configuration as well (so that we can retrieve it after tracing has
replaced it in the formatter collection.)
Adding PatchKeyMode configuration knob on the ODataFormatter.

Key properties should not be PATCHed. This commit adds support for that in
the ODataFormatter and also exposes a configuration knob on the formatter
to tune the behavior for handling key properties in a PATCH operation.
Resolving client disconnection issues for self host server
Switch NuGet.Core.dll to CopyLocal true
Add tests to verify ODataResult<T> can be handled by other formatters
Add System.Net.Http.Formatting.NetCore to Runtime.sln
Bug 468492: [OData] string value deserialization doesn't work

Already fixed as a part of commit 0d7a952955a7: Refactored
ODataEntityDeserializer. Adding a test case to verify it.
[Issue 352] Adding support for query composition on non-standard edm primitive types.

we added support for non-standard primitives like uint64 in the model
builder and formatter in an earlier commit (b04504d8c). This commit
extends that support to the QueryableAttribute as well.
Issue 371: problem with nullable values

A binary operation with a nullable property on the left side and
non-nullable on the right side is causing problem here as
Expression.Binary doesn't handle it well. Fix is to do a Convert
expression for the non-nullable side.