Entwickler-Ecke
Off Topic - .NET - Top oder Flop?
Ja-Pa - Sa 25.10.03 13:12
Titel: .NET - Top oder Flop?
Hallo an alle,
was haltet ihr von .NET?
Ist es schon soweit ausgereift, das man seine Programme (geht ja auch mit Delphi) damit verbreiten kann/sollte?
Microsoft hält es ja scheinbar für die Entwicklung des Jahrhunderts (abgesehen von Windows XP und dem Tablet-PC :wink:), aber ich finde es noch nicht für ausgereift.
Viele Anwender haben noch gar keine .NET-Laufzeitumgebung auf dem PC und außerdem gibt es die (zumindest von Microsoft) bisher natürlich auch nur für Microsoft-Produkte (und nicht für Linux oder so, sehr plattformunabhängig). Außerdem laufen die Programme langsamer, weil sie erst interpretiert werden müssen.
Und da liegt meiner Meinung nach auch die größte Schwäche von .NET:
Weil es interpretiert werden muss kann jeder mit einem Decomiler den Originalcode ansehen! :!:
Plattformunabhängigkeit ist ja schön und gut, aber .NET ist, finde ich, im Moment noch lange nicht dazu fähig.
Gruß, Ja-Pa
UC-Chewie - Sa 25.10.03 14:14
| Zitat: |
| Ist es schon soweit ausgereift, das man seine Programme (geht ja auch mit Delphi) damit verbreiten kann/sollte? |
Bisher gibt es lediglich eine Preview-Version des .NET-Compilers für Delphi.
| Zitat: |
| Außerdem laufen die Programme langsamer, weil sie erst interpretiert werden müssen. |
Das ist nicht richtig, im Prinzip
könnten die Programme sogar schneller laufen als native Win32-Anwendungen.
.NET funktinioniert so: Beim Ausführen wird geprüft, ob bereits ein Maschinencode-Compilat der Anwendung im Cache existiert. Ist das der Fall, wird dieses gestartet. Ist dies nicht der Fall (in der Regel beim ersten Start), wird ein solches Compilat erzeugt und dieses gestartet. Die Startgeschwindigkeit ist also nur beim ersten Ausführen langsamer, und die Laufzeit ist nicht langsamer, denn die Anwendung wird ja erst in Maschinencode compiliert und dann ausgeführt.
Da es theoretisch für jede Windows-Version eine eigene .NET-Laufzeitumgebung geben könnte, könnten diese speziell auf diese Version optimiert sein und somit könnte einige Teile des Programmes so schneller ausgeführt werden als wenn das Programm auf der WinAPI basieren würde und beispielsweise, um auf jeder Version lauffähig zu sein, eine schnellere Funktion, die nur in wenigen Versionen von Windows verfügbar ist, durch eine langsamere, die aber überall verfügbar wäre, ersetzt werden.
| Zitat: |
| Weil es interpretiert werden muss kann jeder mit einem Decomiler den Originalcode ansehen! |
Wieso denn das? Ein .NET-Compiler erzeugt eine Datei in MSIL (Microsoft Intermediate Language). Diese Datei wird von der .NET-Laufzeitumgebung in Maschinencode compiliert und ausgeführt. Du hast also Einsicht in den MSIL-Code, aber nicht in den Original-Quellcode.
TomT - Sa 25.10.03 20:24
| Zitat: |
Wieso denn das? Ein .NET-Compiler erzeugt eine Datei in MSIL (Microsoft Intermediate Language). Diese Datei wird von der .NET-Laufzeitumgebung in Maschinencode compiliert und ausgeführt. Du hast also Einsicht in den MSIL-Code, aber nicht in den Original-Quellcode.
|
Doch leider schon, man kann mit den entsprechenden Tools den kompletten Quellcode inklusive Kommentaren(!) wiederherstellen
UC-Chewie - Sa 25.10.03 20:42
Hm, das wäre schlecht, wenn das ginge. Hast du mal nen Link?
UC-Chewie - So 26.10.03 11:09
Hm, OK, hab mir das grad mal durchgelesen. Du hattest gesagt, dass sogar die Kommentare wiederhergestellt würden, und das kam mir sehr seltsam vor. Aber zumindest bei diesem Programm sind die Kommentare ja vom Decompiler generiert. Na ja, eine vollständige Decompilierung findet zwar nicht statt, aber eine fast vollständige. Sehr interessant.
matze - So 26.10.03 21:20
hmmm auf die gefahr hin micht hier zu outen:
was ist denn das dot-net konzept von ms genau ?
Ja-Pa - Mo 27.10.03 13:46
| Zitat: |
MSIL - Microsoft Intermediate Language:
.NET-Compiler erzeugen keinen prozessorabhängigen Maschinencode mehr, sondern einen Zwischencode. Dieser Code sieht nahezu gleich aus, egal, mit welcher Programmiersprache ursprünglich gearbeitet wurde. Es genügt nun, die Datei mit dem IL-Code weiterzugeben. Er ist prinzipiell plattformunabhängig und auf jedem Rechner lauffähig, auf dem sich eine CLR befindet.
IL-Code wird jedoch nicht - wie bei Java - interpretiert, sondern stets vor der Ausführung in Maschinencode übersetzt. Und zwar für den Prozessor optimiert, auf dem das Programm ausgeführt werden soll.
Die Compilierung erfolgt dabei "just in time" (JIT). Es wird also nicht das komplette Programm übersetzt, sondern immer nur der Teil, der gerade benötigt wird, so dass der Programmstart nicht verzögert wird.
|
Ihr habt mal wieder recht. So kann das Programm wirklich schneller ablaufen, weil es für das jeweilige System optimiert wird.
Aber braucht das nicht mit der Zeit ziemlich viel Festplattenspeicher?
Wenn jede EXE-Datei einmal in der MSIL und einmal als Maschinencode vorliegem muss?
Und wie merkt das System, wenn der MSIL gelöscht wurde um dann den Maschinencode auch zu löschen?
Oder müllt dann die Festplatte voll?
Spieler1 - Mo 27.10.03 14:08
Titel: .net
Dass man die MSIL Dateien dekompilieren kann ist mir egal. Wenn man OpenSource programmiert, wird wohl niemand mehr die Programme dekompilieren ;-) .
Nur finde ich, dass .net eigentlich keine richtigen Vorteile bietet. Wenn MS .net auch für andere Betriebssysteme machen würde, fände ich es sehr gut.
Klabautermann - Mo 27.10.03 14:17
Titel: Re: .net
Hi,
| Spieler1 hat folgendes geschrieben: |
| Nur finde ich, dass .net eigentlich keine richtigen Vorteile bietet. Wenn MS .net auch für andere Betriebssysteme machen würde, fände ich es sehr gut. |
MS macht es nciht. M$ erlaubt es aber anderen dies zu tun, so wird es bald .NET Framewoks für alle gänigen Platformen geben und MS hat eine breitere Zielgruppe an die sie ihre Programme bringen kann.
| Ja-Pa hat folgendes geschrieben: |
| Aber braucht das nicht mit der Zeit ziemlich viel Festplattenspeicher? |
Das hat doch noch nie getört. Immerhin leben wir in zeiten wo es niemanden mehr stört wenn eine Textverarbeitung mehr als 100 MB belegt. Es wir auch niemanden stören wenn sie dann das doppelte brauch, schließlich sind Festplatten ja nicht alzu teuer.
Gruß
Klabautermann
Ja-Pa - Mi 29.10.03 12:33
Titel: Re: .net
| Klabautermann hat folgendes geschrieben: |
Hi,
Das hat doch noch nie getört. Immerhin leben wir in zeiten wo es niemanden mehr stört wenn eine Textverarbeitung mehr als 100 MB belegt. Es wir auch niemanden stören wenn sie dann das doppelte brauch, schließlich sind Festplatten ja nicht alzu teuer.
|
Trotzdem, da wird doch auch das ganze System langsamer, wenn der Computer erst immer nach der richtigen Datei suchen muss. Besonders, wenn man viele Programme installiert/deinstalliert. Und außerdem können andere Benutzer nackgucken, was man da an Programmen laufen hatte :wink:
@Spieler1: Das finde ich auch. Solange es die .NET Laufzeitumgebung nicht für andere Betriebssyteme gibt, hat das für mich keine Vorteile.
Gruß, Ja-Pa
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!