Archived

This forum has been archived. Please start a new discussion on GitHub.

.NET 2.0 support clarification

Hello,

I would just like to get some clarification on the status of Ice support for .NET 2.0 and VS 2005. From the various postings, I glean that the current status is as follows:

1. Ice 3.0.1 supports VS2005, but only for C++ (unmanaged).

2. Ice-3.0.1, which provides the true managed .NET support (i.e. C#, VB.NET), currently only exists for .NET 1.1/VS2003.

3. Full .NET 2.0 support with Ice-3.0.1 that includes the needed slice2cs.exe, etc. is a probably a couple months away.

4. It may be possible to build Ice-3.0.1 with full .NET 2.0 under VS2005 support from the third party sources, but this is currently not supported by ZeroC.

Can you confirm or clarify these points?

I am currently developing a Ice/.NET application. I'm using .NET 2.0 and VS2005. I do not want to assume the risk or additional time that may come with doing my own build of Ice 3.0.1. Therefore, my plan at this time is to build my Ice interface assemblies using .NET 1.1/VS2003 and reference and use them in my .NET 2.0/VS2005 application code. When the full .NET 2.0/VS2005 Ice 3 install is released, I would migrate the Ice stuff at that time.

Does this seem like the correct course to take? If not, what would you recommend.

Thanks.

Comments

  • You will get some warning when compiling the generated interface files but they work without any problem!

    This is correct, but only if the "clr:collection" metadata directive isn't used. If any sequence is mapped to a collection instead of an array, the generated code won't compile.

    Cheers,

    Michi.
  • ttouris wrote:
    Hello,

    2. Ice-3.0.1, which provides the true managed .NET support (i.e. C#, VB.NET), currently only exists for .NET 1.1/VS2003.

    That is correct. Unfortunately, Microsoft made a number of incompatible changes in .NET 2.0 and VS 2005. In particular, a change to CollectionBase broke the generated code, and the incompatible change in the way assemblies must be signed with VS 2005 broke the project files.
    Therefore, my plan at this time is to build my Ice interface assemblies using .NET 1.1/VS2003 and reference and use them in my .NET 2.0/VS2005 application code. When the full .NET 2.0/VS2005 Ice 3 install is released, I would migrate the Ice stuff at that time.

    Right, that sounds like the correct strategy. Once Ice 3.1 is released, you will need to recompile your Slice definitions with the 3.1 slice2cs and change your project file to use the Ice 3.1 assembly. The upgrade will not require changes to any Ice-related source code in your application.

    Cheers,

    Michi.
  • stephan wrote:
    This is correct, but only if the "clr:collection" metadata directive isn't used. If any sequence is mapped to a collection instead of an array, the generated code won't compile.

    Cheers,

    Michi.

    Sorry Stephan, I'm not sure what happened there, but it looks like I edited your post by mistake... Please accept my apologies!

    Michi.
  • No worries, Michi!

    The only thing I stated (as DeepDiver before) was that Ice 3.0.1 works well when compiled with .net framework 2.0. I do not understand the error you mentioned about the clr:collection metadata directive. This also works well for me, I'm using this directive on all my sequences. The only thing that happens is that warings are thrown but no errors.

    So the code compiles as long as warnings are not interpreted as errors :)

    regs,

    Stephan