[c#] kant en klare generics .NET install

Pagina: 1
Acties:

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik wil wat experimenteren met c# (eindelijk operator overloading en properties!) en ik wil natuurlijk ook gebruik maken van generics. Rotor is een generics uitbreiding op de .NET omgeving, maar kost nogal wat werk om te installeren. Eerst moet je de sscli aanpassen met de rotor zaken en dan moet je de nieuwe omgeving builden. Wat ik me dus afvraag is of er niet gewoon een kant en klare download is waarmee ik aan de slag kan.

[edit]
Is er trouwens een verschil in functionaliteit tussen de c# generics specificatie en die van java? Ik weet dat c# op bytecode nivo veranderingen ondergaat en java alleen maar compiletime, maar zijn er verder nog verschillen in functionaliteit?

[ Voor 23% gewijzigd door Alarmnummer op 18-01-2003 12:12 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:42
Alarmnummer schreef op 18 januari 2003 @ 12:03:
Is er trouwens een verschil in functionaliteit tussen de c# generics specificatie en die van java? Ik weet dat c# op bytecode nivo veranderingen ondergaat en java alleen maar compiletime, maar zijn er verder nog verschillen in functionaliteit?
Differences between C# generics and other implementations

C++ templates differ significantly from C# generics. Where C# generics are compiled into IL, causing specialization to occur intelligently at run-time for each value type and once only for reference types, C++ templates are essentially code expansion macros that generate a specialized type for each type parameter supplied to a template. So, when the C++ compiler encounters a template, say a Stack of integers, it will expand the template code into a Stack class that contains integers internally as its native type. Regardless of whether the type parameter is a value or reference type, unless the linker is specifically designed to reduce code bloat, the C++ compiler will create a specialized class each time, resulting in a significant increase in code bloat over C# generics.

Moreover, C++ templates cannot define constraints. C++ templates may only define constraints implicitly by simply using a member that might or might not belong to the type parameter. If the member does exist in the type parameter that is eventually passed to the generic class, the program will work properly. If the member does not exist in the type parameter, the program will fail and a cryptic error message will likely be returned. Because C# generics can declare constraints and are strongly typed, these potential errors do not exist.

Meanwhile, Sun has proposed the addition of generics in the next version of the Java language, codenamed “Tiger”. Sun has chosen an implementation that does not require modifying the Java Virtual Machine. As such, Sun is faced with implementing generics on an unmodified virtual machine.

The proposed Java implementation uses similar syntax to templates in C++ and generics in C#, including type parameters and constraints. But, because it treats value types differently than reference types, the unmodified Java Virtual Machine will not be able to support generics for value types. As such, generics in Java will gain no execution efficiency. Indeed, the Java compiler will inject automatic downcasts from the specified constraint, if one is declared, or the base Object type, if a constraint is not declared, whenever it needs to return data. Further, the Java compiler will generate a single specialized type at compile-time that it will then use to instantiate any constructed type. Finally, because the Java Virtual Machine will not support generics natively, there will be no way to ascertain the type parameter for an instance of a generic type at run-time and other uses of reflection will be severely limited.
Hier vind je nog meer informatie over oa de C# generics.
Bovenstaand extract komt nl. uit de link in dat topic

https://fgheysels.github.io/


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
En nu nog ff de binairy :P

[edit]
Heeft iemand trouwens gyro onder linux al werkende? (Is dat uberhaubt mogelijk?) In de gyro documentatie staat ook veel uitleg voor freebsd, het lijkt me dus dat het ook gewoon voor linux werkt.

[ Voor 80% gewijzigd door Alarmnummer op 18-01-2003 13:21 ]


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Heee, ik zag net iemand hetzelfde posten in de MS C# newsgroup. Ben jij dat of is dat iemand anders? Indien iemand anders, dan kun je wellicht die gast mailen, misschien heeft hij al een binary te pakken.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
EfBe schreef op 18 January 2003 @ 14:25:
Heee, ik zag net iemand hetzelfde posten in de MS C# newsgroup. Ben jij dat of is dat iemand anders? Indien iemand anders, dan kun je wellicht die gast mailen, misschien heeft hij al een binary te pakken.
Ik denk dat ik dat ben :D

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Hmmzz.. Ik heb nu alles gebuild met de juiste sscli. Maar als ik ga compileren dan krijg ik een hele lading foutmeldingen:
Microsoft (R) Visual C# Shared Source CLI Compiler version 1.0.0002
for Microsoft (R) Shared Source CLI version 1.0.0
Copyright (C) Microsoft Corporation 2002. All rights reserved.

error CS0006: Metadata file 'Microsoft.Vsa.dll' could not be found
error CS0006: Metadata file 'System.dll' could not be found
error CS0006: Metadata file 'System.Runtime.Remoting.dll' could not be found
error CS0006: Metadata file 'System.Runtime.Serialization.Formatters.Soap.dll' could not be found
error CS0006: Metadata file 'System.Xml.dll' could not be found
Ik geloof dat dit komt doordat er verschillen zitten in mijn vs.net zijn .net omgeving en hetgene wat deze versie van de cli nodig heeft. Wie weet hier meer van af? *kijkt ff richting mbravenboer ;)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer:Wie weet hier meer van af? *kijkt ff richting mbravenboer ;)
Ik heb hem helaas nog niet geinstalleed hier op Linux. Ik wacht eigenlijk al een tijdje totdat iemand hier een beschaafd pakketje van maakt, maar ik heb sterk de indruk dat er meer mensen zo zitten te wachten ;) . Binnenkort toch maar eens gaan doen dus. Ik hoop dat de linux 'patch' samen kan werken met Gyro.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
hehe, na veel pijn en moeite heb ik zometeen een klaar. Als het formaat nog enigsinds gangbaar is dan zet ik hem even op mijn site (en anders zet ik hem even op mijn werk op de site :P ) Dus iedereen die met c# en generics aan de slag wil, zonder de hele VS.NET te installeren, nog even geduld :)

Oja.. cd`s zijn ook te koop, 25 euro per cd ;) Afbeeldingslocatie: http://www.tr-resurrection.de/smilies/greedy.gif

[ Voor 16% gewijzigd door Alarmnummer op 19-01-2003 22:21 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
mbravenboer schreef op 19 January 2003 @ 16:33:
[...]

Ik heb hem helaas nog niet geinstalleed hier op Linux. Ik wacht eigenlijk al een tijdje totdat iemand hier een beschaafd pakketje van maakt, maar ik heb sterk de indruk dat er meer mensen zo zitten te wachten ;) . Binnenkort toch maar eens gaan doen dus. Ik hoop dat de linux 'patch' samen kan werken met Gyro.
Als je de sscli hebt, dan kan je die ook compileren voor Linux (althans wel voor freebsd en dat is grotendeels wel compatible met Linux). Waarom gebruik je dat niet ipv mono?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Er waren toch wel patches voor de Linux versie van de SSCLI? Het voornaamste probleem is de vraag of het goed gaat als je Gyro hier ook weer overheen zet. Ik denk van wel, maar weet dit dus niet zeker. Ik gebruik met name Mono vanwege de licentie van Rotor en de eenvoudige installatie van Mono. Overigens kom ik sowieso niet erg veel toe aan C# werk.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
mbravenboer schreef op 19 January 2003 @ 22:25:
Er waren toch wel patches voor de Linux versie van de SSCLI?
Die versies zijn platform onafhankelijk. Als je het pakket download zitten daar windows specifieke bestanden in, maar ook *nix shellscripts.
Het voornaamste probleem is de vraag of het goed gaat als je Gyro hier ook weer overheen zet. Ik denk van wel, maar weet dit dus niet zeker. Ik gebruik met name Mono vanwege de licentie van Rotor en de eenvoudige installatie van Mono.
apt-get mono :P


Ik heb het net even ingepakt, en het is 150 mb groot (en dan heb ik niets gecleaned ofzo maar gewoon de dir gezipped). Ik zal het vandaag of morgen even op het internet plaatsen.

Is daar trouwens belangstelling voor?? Afbeeldingslocatie: http://www.tr-resurrection.de/smilies/ears.gif

[ Voor 21% gewijzigd door Alarmnummer op 19-01-2003 22:47 ]


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: Die versies zijn platform onafhankelijk. Als je het pakket download zitten daar windows specifieke bestanden in, maar ook *nix shellscripts.
Ja, maar het zaakje werkt volgens mij toch niet op Linux. De PAL is niet geimplementeerd voor Linux. Waarom is anders dit nodig? :

http://www.oreillynet.com/pub/wlg/1602
en nu: http://www.macadamian.com/products/sscli/

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
mbravenboer schreef op 19 January 2003 @ 22:57:
[...]

Ja, maar het zaakje werkt volgens mij toch niet op Linux. De PAL is niet geimplementeerd voor Linux. Waarom is anders dit nodig? :

http://www.oreillynet.com/pub/wlg/1602
en nu: http://www.macadamian.com/products/sscli/
Vreemd dat het dan wel onder Freebsd werkt en niet onder linux.

En ik heb net de build even op mijn werk gezet, maar hier heb ik geen visual studio en het werkt dus niet. Fantastisch microsofties!

[edit]
Ik was toch even iets te voorbarig. Die environment bat die je eerst moet gebruiken die zit stampvol met vs links. Gelukkig is dit niet meer nodig bij het gebruik, want ik heb gewoon in de rootdir van de build een cs file geplaatst en gecompileerd.

[ Voor 21% gewijzigd door Alarmnummer op 20-01-2003 10:36 ]

Pagina: 1