.[ ČeskéHry.cz ].
Rozdil mezi .NET C++ a .NET C#
Jdi na stránku Předchozí  1, 2
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> .NET
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 23. září 2008, 01:16:21    Předmět: Odpovědět s citátem

SUK napsal:
jinak moznost kompilovat cokoliv s .NETem do nativu vidim jako chvilema nemozny (jak by to bylo treba s reflexi? ).

A proč by v nativu nemohla být reflexe? Jenom si s sebou budou objekty tahat trochu víc dat a nejenom ty, možná to taky nebude úplně intuitivní na používání (rozuměj mnohem víc low-level).

andris11 napsal:
no a hlavne Garbage Collector, netvrdim, ze mam v tomhle jasno

Pod C++ můžeš udělat podobný garbage collector jako v .NET, jenom to dá trochu práce a pokud to má být kopírovací GC (řeší fragmentaci), pak jeho používání asi nebude úplně jednoduchý, ale mělo by to jít (mám zatím zkušenost jen s mark&sweep collectorem, ten tam jede krásně a moc to nebordelizuje kód).

andris11 napsal:
.NET -> native nevidim vubec ruzove

Ale to je přeci přesně to, co dělá just-in-time compiler v .NETu, ne? (nebo by to aspoň měl dělat, teď si nejsem jistej)

andris11 napsal:
opacny smer je asi schudnejsi, viz ten thread o OGRE zkompilovanem do rizeneho kodu, ale nerad bych siril famy.

I to je možné, ale zase nevyužiješ třeba GC a jiné výhody .NETu a podle toho zmíněného threadu to vypadá mnohem komplikovaněji už proto, že to generuje trochu jiný MSIL kód a bez složitých ručních úprav přímo v IL to na Xboxu stejně nepůjde (to byl smysl toho threadu btw), nehledě na nepoužitelnost takhle zkompilovaného projektu v jiných .NET projektech.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 23. září 2008, 08:25:57    Předmět: Odpovědět s citátem

posila napsal:
Augi napsal:
Podpora přímo v jazyce pro indexed properties fakt není Wink

Tak s tim nesouhlasim, protoze ta konstrukce public int this[int index] {get; set; } se proste jmenuje indexed property, pod timto nazvem se to da najit v helpu, a daji se s tim udelat stejne veci, jako s tou VB konstrukci.
Ne! Tahle konstrukce se jmenuje indexer a je to něco jiného než indexed property, viz např. http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx - je tam odkaz na příslušné kapitoly ze specifikace C#.
Rozdíl mezi indexerem je indexed property je ten (zjednodušeně řečeno), že indexer jde udělat jen na this, kdežto indexed property na jakékoliv property. Samozřejmě jde implementovat indexed property pomocí indexeru (pomocí další třídy), ale to už není přímá podpora v jazyce jako v případě VB.NET, kde to jde naprasit přímo a není třeba používat žádné dodatečné třídy - v CIL je to pak vidět podobně jako get a set metody od property, pouze ty metody mají další parametr - a přesně tak je to nutné volat, když někdo udělá ve VB.NET assembly s indexed properties a my ji chceme používat ze C# (takže např. obj.get_MyIndexedProperty(i)).

posila napsal:
To, ze to da vic prace je uz vec jazyka, ale rozhodne bych na zaklade toho netvrdil, ze C# nema podporu.
Ale já mluvil o přímé podpoře v jazyce, tedy bez další práce navíc Wink

posila napsal:
Augi: a tohle jsem ti mohl napsat na IRC, kdybys nesel tak rychle spat
Kdo mluvil o spaní, já napsal jen "gn all" Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
andris11



Založen: 29. 07. 2008
Příspěvky: 22

PříspěvekZaslal: 23. září 2008, 10:50:37    Předmět: Odpovědět s citátem

indexed properties vs. indexers: jak rika Augi.

Napadlo me pozdeji, ze to asi ve vysledku pouziva indexed properties featuru IL, s tim, ze v C# muzes mit v typu jen jednu anonymni indexovanou property. Vyhoda v C# je ze se na to da zvenci pristupovat jako na default propertu, indexuje se primo promenna typu implementujiciho indexer.

Eosie napsal:
andris11 napsal:
.NET -> native nevidim vubec ruzove

Ale to je přeci přesně to, co dělá just-in-time compiler v .NETu, ne? (nebo by to aspoň měl dělat, teď si nejsem jistej)

Jo JIT se stara o kompilaci IL do instrukci CPU, ale k behu ta aplikace potrebuje instanci CLR poskytujici garbage collecting aj. Nativnim kodem rozumim lib, ktery se da loadovat standartnim loaderem v OS, v praxi nevim o kompileru, ktery by napr. z C# kodu dokazal takovou lib vytvorit.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 23. září 2008, 11:01:05    Předmět: Odpovědět s citátem

Takové "kompilery" existují, ale prý je s tím hromada problémů (několikrát se to řešilo na fóru builder.cz).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 26. říjen 2008, 23:03:26    Předmět: Odpovědět s citátem

Tak k prvotní otázce můžu říct toto: C++ pod dotnetem (neboli C++/CLI, jak se tomu oficiálně říká), je C++ a ještě spousta věcí navíc. Není na tom nic ořezaného, jak psal tazatel, ale právě naopak plno věcí navíc! Když to srovnáte se staršími verzemi C# a díváte se low level očima, tak C# oproti tomu C++/CLI je takové dítě. C++/CLI má prostě spoustu věcí, které C# nemá. Na druhou stranu pro 99% aplikací jsou ty low level věci úplně zbytečné a spíš se hodí ty nové high level vymoženosti C#, které pokud vím C++/CLI nemá. Micorosoft doporučoval C++/CLI na psaní systémových služeb, ale sám sjem to nikdy nezkoušel.

Před dvěma lety jsem náhodou publikoval článek o tom, co to C++/CLI vlastně umí. Tak možná se někomu bude hodit. Dal jsem to dočasně k dispozici sem.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> .NET Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna