The email below is an email I sent Oren after reviewing a patch which
would add the AAA extension methods to anyone using C# 2.0.  As
everyone is well aware C# 2.0 did not have extension methods, so this
patch exposes the extensions methods simply as static methods.  This
particular patch aside, I have a broader questions  about what
versions Rhino should support etc.  Enough setup, here is the email:


Oren,

Been getting into the Rhino source and trying to get familiar with the
bits on a deeper level than before.  Currently I'm taking the patch
supplied several weeks ago and going through trying to get some of the
extensions with c# 2.0.

Am wanting to have a discussion with you and the other devs about
where Rhino is going and what our support for 2.0 should be.  I would
recommend that we remove the Visual Studio 2005 project and all
support for it (my understanding is that Castle has done this as
well).  It does not currently compile on the trunk (has references to
CPP interfaces, a missing file).  Further, as new work is being added,
a lot of the items being added are not 2.0 compatible.  Two quick
examples:

    * MockRepository ctor has ProxyGenerationOptions created with
object initializer (added in revision 2069)
    * MockRepository.Stub() uses lambda syntax (added in revision
2066)

If we get the 2005 solution working (which I had a version of) we have
to be very careful about what and how it is added to the project.  It
would seem to me to muddy the solution files with many conditional
compilation statements (a 2.0 safe version and a 3.0 safe version).
With C# 4.0 on the horizon if this strategy were adopted I could see
more complex conditional compilation going on in order to make the
various compilers happy.

If the extension methods were added to work with C# 2.0 the code would
look ugly:

IDemo mock = MockRepository.GenerateMock<IDemo>();
RhinoMockExtensions.Expect(mock, Action<T> action);

Everything in terms of readability that extension methods and the AAA
syntax give you seem to be lost.

Am curious what you're thoughts are and the thoughts of others...I
don't want to overstep my bounds here as the new guy but I see some
potential red flags about going down the road of trying to get the
extensions methods working with various framework versions.  However I
have not typically had to deal with releasing a product for multiple
versions to such a wide audience so I'm using this as an opportunity
to learn/grow.

Tim

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Rhino Tools Dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rhino-tools-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to