Was ist das Net-Framework und wozu dient es ?



  • Die Sache mit den Namespaces war mir als C++ler zu Beginn auch etwas suspekt

    Höh? Bist du von C++ mehr das package-Prinzip aus Java gewohnt? 😕



  • Optimizer schrieb:

    Die Sache mit den Namespaces war mir als C++ler zu Beginn auch etwas suspekt

    Höh? Bist du von C++ mehr das package-Prinzip aus Java gewohnt? 😕

    Ich habe Java nur mal ganz Kurz angeschaut (schon sehr lange her) und weiss nicht genau was du mit Package-Prinzip meinst. Jedenfalls hab ich das mit den Namespaces (vor allem was Zugriff von anderen Klassen anbelangt etc) in den ersten Stunden nicht so gepeilt, warum auch immer.



  • Es ist auf jeden Fall genauso wie in C++ ...
    Außerdem hast du mehr die IDEs und die Bibliotheken verglichen und nicht die Sprachen.



  • Das stimmt schon aber ich habe einfach verglichen was mir persönlich positiv aufgefallen ist. Die Sprache an sich gefällt mir ja auch besser nur wüsste ich jetzt nicht genau wie ich das beschreiben oder in Worte fassen soll.



  • Und was sagst du dazu, das man in C++/CLI genauso schnell seine Anwendungen programmieren kann? Komischerweise kann ich nämlich von C++/CLI aus genau die gleichen Libraries verwenden, wie in C# um schneller zu ergebnissen zu kommen.

    Wenn dir C# von der Sprache her natürlich besser gefällt, dann ist das völlig ok. Was aber die Libs angeht, muß ich dir leider widersprechen. :p Letztendlich macht dein gesamtes Posting fast null Sinn mit dieser Feststellung. 😃 😉



  • Hallo Leute,

    vielen Dank auch für die restlichen Antworten und auch Erfahrungsberichten. Habe mir gestern mal auf die von Optimizer genannte Info auf Wikepedia mal durchgelesen und habe in der History zu C# gesehen das es kaum Software auf dem Markt gibt die in C# geschrieben wurden Zitat

    2004 Obwohl technisch schon einige Jahre alt, steht der Marktanteil an .NET-Programmen immer noch in keinem Verhältnis zur Aufmerksamkeit in Medien und Entwicklergemeinde. Insbesondere auch Microsoft selbst hat keine in der Breite bekannten, komplett mit .NET programmierten Anwendungen veröffentlicht, was sicherlich auch Zeit und Aufwand demonstriert, die technische Umstellungen benötigen.

    Deshalb verstehe ich nicht warum .Net bzw. C# gut sein soll bzw. als Konkurenz zu Java gelten soll.



  • mike2003 schrieb:

    Deshalb verstehe ich nicht warum .Net bzw. C# gut sein soll bzw. als Konkurenz zu Java gelten soll.

    .NET hat teilweise das gleiche Anwendungsgebiet wie Java und C# ist eine Java-ähnliche Sprache, die teilweise sicherlich einige Detailverbesserungen gegenüber Java bietet. Insofern ist es halt eine Konkurrenz zu Java. Da Java im Vergleich zu .NET aber schon länger am Markt etabliert ist, hat es .NET natürlich schwer, sich durchzusetzen. Auch die Verbesserungen sind nicht in jedem Bereich vorhanden. Wenn ich einige Äußerungen von zum Beispiel Optimizer hier richtig in Erinnerung habe, dann ist zum Beispiel das Design der Standardbibliothek nicht wirklich das Wahre. Auch die Generics sollen unter C# gewisse Nachteile gegenüber den Generics in Java bieten, wobei das Gegenteil auch zutrifft. Die einen bieten Unterstützung für primitve Typen, die anderen Unterstützung für Kovarianz usw.! Trotzdem wächst der .NET- und C#-Marktanteil, wenn auch sehr langsam. Es bleibt abzuwarten, inwiefern sich das fortsetzt.



  • mike2003 schrieb:

    vielen Dank auch für die restlichen Antworten und auch Erfahrungsberichten. Habe mir gestern mal auf die von Optimizer genannte Info auf Wikepedia mal durchgelesen und habe in der History zu C# gesehen das es kaum Software auf dem Markt gibt die in C# geschrieben wurden Zitat

    Das es noch so wenige Anwendungen gibt, liegt vor allem auch am Aufwand die Anwendungen und Biblitheken umzustellen. Visual Studio enthält auch gemischten Code aus .NET und native. Du kannst nicht verlangen, dass die mal so eben ihre gesammte IDE umbauen.
    Bevor es mit der Anzahl der .NET Anwendungen "richtig los geht", musst du wohl noch bis Longhorn warten müssen. Microsoft schreibt Avalon und Indigo ja selbst in C# und ist damit durchaus auch willens ihr eigenes "Dog-Food" zu essen.

    Einige .NET Anwendungen gibt es natürlich schon: Arena Wars, MediaPortal, SharpDevelop, Axiom, ATI Control Center, .NET Nuke, RSS Bandit und diverse Entwickler Tools wie NAnt, NUnit, WIX, ...



  • Ja das stimmt schon das auf jedenfall die Umstellung nicht so schnell geht. Wann soll denn longhorn raus kommen ?

    Lohnt es sich eigentlich jetzt noch Java zu lernen oder gleich mit C# anfangen ?

    Java ist ja platformunabhängig ist das C# denn auch ?



  • C# ist normal nicht wirklich Plattformabhängig, da es auf dem .net Framework basiert und das nur unter Windows läuft. Es gibt aber Mono das C# und Teile des .net Frameworks unter Linux anbietet.

    Longhorn soll afaik 2006 kommen.

    Ob java oder C# musst du selber wissen. Jede Sprache hat seine Stärke und seine Berechtigung. C# darfst du nicht als einen Naachfolger von Java sehen. Java und C# sind 2 Paar Schuhe.



  • mike2003 schrieb:

    Java ist ja platformunabhängig ist das C# denn auch ?

    Das sind beides Plattformen.

    FlamourPur schrieb:

    Auch die Generics sollen unter C# gewisse Nachteile gegenüber den Generics in Java bieten, wobei das Gegenteil auch zutrifft.

    Welche Nachteile sollen C# Generics haben?
    Ich habe in einer Ausgabe des dot net magazins gelesen, dass Generics in Java unter der Haube einfach nur gecastet werden.



  • Noodles schrieb:

    mike2003 schrieb:

    Java ist ja platformunabhängig ist das C# denn auch ?

    Das sind beides Plattformen.

    Das ist keine Antwort. "Plattformunabhäng" heißt hier wohl, dass ich mein Programm auf verschieden Computerarchitekturen und Betriebssystemen laufen lassen kann und du sprichst hier von einer Programmierplattform.

    FlamourPur schrieb:

    Welche Nachteile sollen C# Generics haben?

    Och, die haben einige Nachteile. Es sind keine varianten Referenzen möglich, d.h. du hast die selbe Sturheit wie in C++, dass

    List<T> list* = new List< abgeleitet von T >()
    

    nicht geht.

    In Java hast du drei verschiedene Varianzmöglichkeiten, nämlich

    List<? super T>
    List<? extends T>
    List<?>
    

    Und kannst damit sehr viel allgemeinere Algorithmen schreiben. z.B. gibt es

    sort(List<T>, Comparator<? super T>)
    

    Das sind schöne Features, die manchmal einige Code-Duplizierung ersparen. Das mit den versteckten Casts ist implementierungsspezifisch und da ist wohl keiner wirklich begeistert von. Aber sprachlich gibt es zumindest einige Vorteile, neben ein paar Nachteilen gegenüber beispielsweise C#, was dafür Dinge wie new T[] kann.



  • Dann kommen natürlich Dinge hinzu, wie dass Operator-Constraints nicht möglich sind. Klar, in Java gibt es operator overloading gar nicht erst. Aber mir nützen die Operatoren auch nichts, wenn ich sie nicht mit den Typparametern nutzen kann. Letzlich ist das also noch nicht so in sich stimmig.
    Es bringt nichts, nur viele Features zu haben, die dann aber nicht ordentlich zusammenspielen. Wenn ich in C# eine Bruch-Klasse schreibe dann schreibe ich keine Methode add() sondern überlade den op+. Wenn ich den aber in Generics nicht verwenden kann, habe ich einen echten, miesen Nachteil gegenüber der Java-Lösung, so schön mein '+' sonst auch ist.



  • Ixtana schrieb:

    C# darfst du nicht als einen Naachfolger von Java sehen. Java und C# sind 2 Paar Schuhe.

    übrigens: der typ der federführend bei der entwicklung von c# war, hat früher an turbo-pascal und delphi gebastelt. deshalb sollen sich angeblich ehemalige delphi-user schnell mit dem zeug anfreunden können



  • Ixtana schrieb:

    C# ist normal nicht wirklich Plattformabhängig, da es auf dem .net Framework basiert und das nur unter Windows läuft. Es gibt aber Mono das C# und Teile des .net Frameworks unter Linux anbietet.

    😕 Weißt du was du da eigentlich von dir gibst??? C# ist _normal_ nicht plattformunabhängig? Was ist es denn im unnormalen Fall? Was hat C# eigentlich mit Plattformen zu tun? 😮 Was kann .NET dafür, das es unter Windows läuft? .NET darf auf jede Plattform implementiert werden. Genauso wie C# und C++/CLI.



  • Optimizer schrieb:

    Das ist keine Antwort. "Plattformunabhäng" heißt hier wohl, dass ich mein Programm auf verschieden Computerarchitekturen und Betriebssystemen laufen lassen kann und du sprichst hier von einer Programmierplattform.

    Und? Keine von beiden laufen "einfach so" auf anderen Systemen.



  • Ja? Was willst du damit sagen? Du weißt doch ganz genau, dass die Frage war, ob man mit .Net ähnlich leicht Programme für verschiedene Systeme entwickeln kann. Und es müsste eigentlich auch klar sein, dass das von dir nicht wirklich eine Antwort darauf war.

    Du kannst sagen theoretisch blabla, praktisch blabla, was auch immer, aber die Programmierplattform hat damit nichts zu tun. Standard C++ mit seiner stdlib kann man im weiteren Sinne auch als Plattform bezeichnen, auch wenn es eigentlich nicht vollständig genug ist um sich diese Auszeichnung zu verdienen. Es war aber einfach ein anderer Plattformbegriff gemeint.
    http://de.wikipedia.org/wiki/Plattform_(Computer)



  • Optimizer schrieb:

    Ja? Was willst du damit sagen?

    Das Java und .NET Plattformen und somit nicht plattformunabhängig sind.



  • Noodles schrieb:

    Das Java und .NET Plattformen und somit nicht plattformunabhängig sind.

    Könntest du deinen Plattformbegriff etwas spezifizieren? Du meinst wohl, dass man auf eine virtuelle Maschine angewiesen ist, damit entsprechende Programme laufen. Wie ist das mit native Compilern, wie zum Beispiel Excelsior Jet zu vereinen? Mit denen benötigt man dann plötzlich keine virtuelle Maschine mehr.



  • Hier wurde das schonmal lang diskutiert.


Anmelden zum Antworten