You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Michael Greene (JIRA)" <ji...@apache.org> on 2009/02/04 06:01:59 UTC

[jira] Updated: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

     [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Greene updated THRIFT-309:
----------------------------------

    Attachment: thrift-309-001.diff

This is still a work in progress, but I think it's at the point where it makes the C# libraries much easier to use on a variety of systems -- pretty much anything that's not MinGW+Windows with Visual Studio 2008.  We now can support the versions I specified in the issue description.

Autoconf and pkg-config now perform better Mono version detection so that NET_2_0 can be defined for versions which only support the .NET 2.0 framework.  The minimum requirements were downgraded from 1.2.6 to 1.2.4 after a brief test of compilation and ThriftTest on Gutsy Gibbon.

The properties have all been explicitly defined, instead of the previous automatic versions which required C# 3.0.  There is no difference in the IL generated in either case, so the version with greater platform support was chosen.

A new type, THashSet, is defined.  This type uses either the .NET HashSet library (available in 3.5 and higher) or my own DictSet, a nested class inside of it, based on the "best available".  HashSet was changed to THashSet throughout the project.

Many declared but unnecessary dependencies were removed, in particular ones which are only available in the 3.0 and 3.5 frameworks (i.e. Linq, DataSetExtensions, etc...) and auto-generated but unneeded references (e.g. System.Text in most places)

The ThriftTest csproj didn't take advantage of environmental variables when re-building its ThriftImpl DLL.  The new version allows one to use Framework 2, 3, or 3.5 instead of the previous 3.5
A shell script was added to build the ThriftTests on non-Windows platforms, since this was previously very difficult.  This is intended to be replaced with the proper Makefile setup.

ThriftTest optionally tests all the servers now (TThreadedServer was missing)

Problems with this patch:
 - the lines of the getter and setter properties accidentally had their spacing changed, purely an aesthetic problem

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.