.NET

Es soll sie ja geben ...

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

.NET

Beitrag von Jan »

Hallo alle zusammen,

weil im Vorstellungsbereich mal wieder die Diskussion ganz leicht losgetreten wurde über den Sinn .NET oder Linux bzw. deren Umsetzung durch Alaska möchte ich gerne eine Frage loswerden. Dabei geht es mir NICHT darum, ob Alaska irgendwas in der Richtung macht oder nicht, oder wie lange das dauern würde oder könnte (erfahrungsgemäß bei Alaska eher noch länger etwas :( ).

Was ist der Sinn von .NET? Verzeiht wenn ich einfach so doof frage. Aber mir hat sich der Sinn noch nicht erschlossen. Was u. a. daran liegen mag, daß mir noch niemand erzählt hat, was das überhaupt bedeutet. Es wird offensichtlich in sämtlichen Zeitschriftenartikeln und Diskussionsforen vorausgesetzt, das man voll im Thema ist. Was einem aber dummerweise nicht die Gelegeheit gibt, ins Thema zu kommen.

Und offensichtlich sind alle ganz hysterisch danach. Wirklich liefern tun das aber anscheinend nur MS, die Erfinder der ganzen Sache, und Borland. Oder habe ich da etwas übesehen?

Und bitte: Ich habe keinen Dr. in höherer Programmierkunst. Also bitte halbwegs Amateur-Verständlich.

Jan
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jan,
ich gebe mal jetzt eine sehr vereinfachte Darstellung: .NET ist das gleiche wie Visual Basic for Applications mal war/ist - nur ein wenig mächtiger. ;-)
Schau Dir mal die Office Anwendnugen (Word/Excel/Access/Powerpoint) an - dort kannst Du mit VBA programmieren.
Das ganze geht auch übergreifend - Du kannst also aus einem Excel-VBA-Programm heraus auch eine Access- oder Winword-Datei ansprechen und nutzen. Dabei ist und bleibt jede Applikation im Prinzip auf seinen "Befehlssatz" beschränkt, stellt aber über entsprechende Aufrufschnittstellen diese auch anderen Applikationen zur Verfügung (schon mal was von DDE/DCOM gehört?)
Es gibt also viele Bezeichnungen für (im Prinzip) die gleiche Sosse :-)
.NET ist alos im Prinzip nichts weiter als ein definierter Standard, anhand dessen Programme die Funktionalität anderer Programme nutzen können - sofern beide halt .NET "sprechen".
Das war jetzt zwar vereinfacht ausgedrückt, sollte aber für einen ersten Überblick reichen (denke ich). :-)

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Beitrag von Jan »

Moin Martin,

OK, ich glaube das habe ich verstanden. Im Prinzip also eine Art OLE-Funktionalität auf Programmierebene oder so ähnlich.

Und VBA kenne ich (leider) nur zur Genüge. Ich muß unser Warenwirtschaftssystem damit weiterentwickeln. Unter Access. Allerdings benutze ich da relativ wenig "Fremdprogramme", nur ein paar mal Outlook zur automatisierten Informationsweitergabe.

Was ich aber nicht verstanden habe: Was soll letztendlich damit bei Xbase++ erreicht werden? Daß wir "Standardmodule" von Fremdentwicklern mit einbinden können, egal ob wir jetzt C#, Xbase++, Delphi oder sonstwas programmieren? Oder Fremdprogramme durch unsere Programme "fernsteuern" können?

Funktioniert denn das alles nahtlos? Wie wird das mit der Optik sein wenn ich Fremdcode nutze? Ist das dann immer noch "mein" Programm? Wenn ich z. B. den Adobe Reader in mein Programm integriere: Ist das dann Adobe-Optik oder meine? Oder bei einer Textverarbeitung wie Word (wobei ich persönlich da kein Fan von bin, ich bleibe beim guten alten WordPerfect)? Wie weit geht da die Integration z. B. von Symbolleisten, Menüs, etc.?

Jan
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jan,
Jan hat geschrieben:Was ich aber nicht verstanden habe: Was soll letztendlich damit bei Xbase++ erreicht werden? Daß wir "Standardmodule" von Fremdentwicklern mit einbinden können, egal ob wir jetzt C#, Xbase++, Delphi oder sonstwas programmieren? Oder Fremdprogramme durch unsere Programme "fernsteuern" können?
und natürlich auch andersherum! Ein Word kann dann auch auf eine DBF-Datei mit NTX-Index zugreifen, um Serienbriefe zu drucken.
Jan hat geschrieben:Funktioniert denn das alles nahtlos? Wie wird das mit der Optik sein wenn ich Fremdcode nutze? Ist das dann immer noch "mein" Programm? Wenn ich z. B. den Adobe Reader in mein Programm integriere: Ist das dann Adobe-Optik oder meine? Oder bei einer Textverarbeitung wie Word (wobei ich persönlich da kein Fan von bin, ich bleibe beim guten alten WordPerfect)? Wie weit geht da die Integration z. B. von Symbolleisten, Menüs, etc.?
Nun - das wird sicherlich davon abhängen, was Du nutzt! Bastelst Du Deine eigene Menü/Symbolleiste und hängst hinter die jeweiligen Befehle/Icons nur die Aufrufe oder nutzt Du die komplette Symbolleiste von Word...
Ich selber habe mit .NET noch nichts gemacht (und habe es eigentlich auch nicht vor).
Mir reicht (erstmal) die ActiveX-Bastelei (sobald die 1.9 draussen ist) und die XbpRTF()-Nutzung - wird auch noch recht aufwändig, mich da erstmal reinzupfrimeln :shock:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Martin,
Martin hat geschrieben:Mir reicht (erstmal) die ActiveX-Bastelei (sobald die 1.9 draussen ist) und die XbpRTF()-Nutzung - wird auch noch recht aufwändig, mich da erstmal reinzupfrimeln
Vielleicht sind wir nach dem XUG-Treffen schlauer...

Jan
Karlo Bender
Rookie
Rookie
Beiträge: 16
Registriert: So, 29. Jan 2006 23:20
Wohnort: Hilden

Beitrag von Karlo Bender »

Hallo Jan,
dass .Net alles bietet, was bisher mit VBA möglich war, also insbesondere die Einbindung der Office-Programme in eigene Programme, stimmt zwar, aber das ist nur ein ganz kleiner Teilaspekt. Insbesondere kann man nicht daraus schließen, dass .Net deshalb auch die Einschränkungen von VBA hat, die du offenbar bei deiner Access-Programmierung kennengelernt hast. .Net ist ja nicht irgendeine Sprache, sondern so gut wie alle wichtigen Sprachen werden zurzeit auf .Net umgesetzt. Für Xbase würde das z.B. bedeuten, dass du bei deiner gewohnten Sprache bleiben und z.B. auch Access direkt damit programmieren könntest. Das ungeliebte VBA könntest du dir also sparen. Andere Vorteile von .Net liegen darin, dass du mit ADO.Net auf fast alle wichtigen Datenbanken zugreifen kannst, dass mit dem .Net Framework eine riesige Klassenbibliothek zur Verfügung steht, dass es sehr einfach ist, die Programme mit einer Web-Oberfläche zu versehen oder Web-Services zu schreiben, ebenso wie Programme für PDA's. Alle .Net-Sprachen setzen auf derselben Runtime (CLR) auf und nutzen daher dieselben Variablen- und Klassenspezifikationen. Man kann daher völlig problemlos die Klassen verwenden, die ein anderer in einer beliebigen anderen .Net-Sprache entwickelt hat. OLE und ActiveX kann man damit echt vergessen.

Der gute Steffen würde für das alles nach vorsichtiger Schätzung etwa 123 Jahre brauchen. :D
MfG
Karlo
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

ich bin zwar kein Spezialist was .NET angeht, aber aus einem Vortrag fallen mir gerade wieder einige Vorteile ein, welche der begeisterte (MS?)-Mitarbeiter vorgetragen hat und auch ein paar Nachteile, welche danach im Gespräch so durchgeschimmert sind:

Vorteile:

1. .NET Programme sind fast so schnell wie C++ Programme (reine C++ EXE Programme).

2. Solange man nur die .NET Anteile von C++, C#, Visual Basic .NET nutzt, laufen die Programme gleich schnell und gleich gut (Byte-Code-Interpreter nutzt gleiche Runtime)

3. Solange man reinen .NET Code verwendet prüft der CODE bzw. die RUNTIME während der Ausführung ob das Programm sich an die Vorgaben des Systemadministratos (das muß nicht der Programmierer sein) hält. Ein Admin / eine Firma kann also im System festlegen was ein Programm darf und was nicht. Bei einer bisherigen EXE geht das nur sehr begrenzt (Dateizugriff über Benutzerrechte etc.)

4. Gleiches Objektmodell, bedeuted aber auch, dass man z.B. Visual Basic fast alles vergessen kann und es anders machen muß. Hier war die Empfehlung gleich C# zu benutzen.

5. Der Compiler und die Runtime sind kostenlos !
Nur für die IDEs (Borland oder MS) muß man zahlen, es soll aber auch hier schon Freeware geben ?

6. In der riesigen Klassenbibliothek gibt es jede Menge neue Funktionen, welche einem das Leben erleichtern - falls man sie findet wenn man sie braucht ;) - XML, SOAP, WEB-Siten etc. soll alles kein Problem sein. Allerdings mußte ich - beim Versuch JAVA mal nebenbei zu lernen - feststellen, dass einem eine solch große Klassenbibliothek auch erschlagen kann :( .

7. Neuerdings habe ich schon gesehen, dass WEB-Provider C# oder VB mit .NET angeboten haben.

Nachteile:

1. Solange die .NET Runtime nicht vorinstalliert auf dem Rechner liegt, muß man halt Schlappe 30 MB Runtime beim Kunden installieren, das könnte eventuell den einen oder anderen abschrecken ;).

2. Die Systemresourcen dürften nicht zu vernachlässigen sein.

3. Alte Basic bzw. C++ Programme sind nicht einfach nach .NET zu übertragen - wenn man die Vorteile nutzen will. Also alles neu macht der Mai.

Die Nachteile werden mit der Zeit verschwinden, denn es wird normal sein, dass das .NET auf dem Recher installiert ist - auch wenn man es nicht braucht - eine .NET Implementation für LINUX soll auch schon fertig sein, wobei hier aber keine GUI Teile dabei sind.

Ich persönlich denke, dass dies nicht für mich gebaut ist. Wer .NET will, soll C# lernen. Xbase++ hätte nie eine Chance bei .NET auch nur den Anschluß in akzeptabler Zeit zu schaffen. Die IDE, die spärlichen XbpControls kaum Unterstützung für neue Programmierer und das zu einem stattlichen Preis, dürften viele davon abhalten als blutige Anfänger mit Xbase++ zu starten, da gibt es billigeres und moderneres (auch wenn nicht unbedingt unter einem Dach). Ich persönlich bin halt schon lange bei Xbase++ und es fällt mir schwer zwischendurch mit PowerBasic oder PureBasic (trotz guter IDE) zu programmieren, da ich mich schon so an die Klassen und die Sprache gewöhnt habe. Hier liegt die Stärke von Xbase++.
Gruß
Hubert
Karlo Bender
Rookie
Rookie
Beiträge: 16
Registriert: So, 29. Jan 2006 23:20
Wohnort: Hilden

Beitrag von Karlo Bender »

Hallo Hubert,

deiner Auflistung von Vor- und Nachteilen kann ich größtenteils zustimmen. Zu Vorteil 4 will ich kurz ergänzen, dass einem im Falle Visual Basic die Vorkenntnisse deshalb so wenig nützen, weil das bisher eine so eingeschränkte Sprache ohne vernünftige Objektorientierung war. Deshalb hat Microsoft soviel Ballast abgeworfen, dass die Visual Basic Programmierer ihre Sprache in VB.Net kaum wieder erkennen. Bei Sprachen, wie Xbase++, die schon eine "richtige" Objektorientierung beinhalten, ist es nicht so schwer, sie auf .Net umzusetzen. Zu 5 möchte ich darauf hinweisen, dass es von Microsoft auch eine abgespeckte Visual Studio Version inkl. C# als kostenlose, leistungsfähige IDE gibt. Außerdem gibt ein Open Source Projekt namens #Develop, wo man ebenfalls eine leistungsfähige IDE für C# kostenlos erhält.

Zum Nachteil 3 möchte ich relativieren, dass auch eine Einbindung in .Net, die noch Teile von altem Code (unmanaged) beinhaltet, schon große Vorteile haben kann, weil man sich damit alle Möglichkeiten von .Net erschließt, was den weiteren Ausbau und Anschluss an moderne Technologien betrifft. Das trifft insbesondere für C++-Programme zu, die man mit sog. „managed extensions“ versehen und in .Net integrieren kann. Wenn ein solches Programm gut und sicher funktioniert, wen kümmert es dann, dass Teile des Programms intern „unmanaged“ ablaufen. Für innere Werte wird man bekanntlich auch nicht bezahlt.

Was dein Fazit betrifft, bin ich für mich persönlich zu einem anderen Schluss gekommen. Es gibt bereits einen leistungsfähigen Xbase-Compiler für .Net, nämlich Cule (siehe www.softwareperspectives.com). Ich kann mir durchaus vorstellen, dass wir unseren Xbase++-Code hierauf mit vertretbarem Aufwand konvertieren können. Wir haben dafür verschiedene Strategien entwickelt, die zu erläutern hier im Moment zu weit gehen würde. Wenn wir Fortschritte machen sollten und Interesse besteht, werde ich gern darüber berichten.

Dass die Stärke von Xbase++ darin liegt, dass man sich so daran gewöhnt hat, klingt in meinen Ohren ein bisschen wie Resignation. Für mich liegt die Stärke in der Eleganz und Eingängigkeit der Xbase-Sprache. Natürlich ist jeder Systemwechsel mit Aufwand verbunden. Hier liegt der Vorteil einer verbreiteten Plattform, der man eine langjährige Zukunft voraussagt, natürlich darin, dass das Risiko geringer ist, dass man irgendwann in einer technologischen Sackgasse landet. Deshalb setzen wir darauf, unsere Xbase-Entwicklung auf .Net weiter zu führen.
MfG
Karlo
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Beitrag von Tom »

In der aktuellen c't (Ausgabe 4/2006) befinden sich übrigens Visual Web Developer 2005, Visual Basic 2005 und Visual C# 2005 in den Express-Editionen als Vollversionen, dazu beginnt in der Ausgabe ein .NET-Programmierkurs. Nur als Info.

http://www.ctmagazin.de
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Tom,

danke für den Hinweis. Kommt aber leider etwas zu spät. Die c't lese ich zwar normalerweise nicht. Aber die Express-Versionen habe ich mir am Freitag von Microsoft mal runtergeladen und installiert. Nicht um damit wirklich zu arbeiten, sondern um das mal kennenzulernen.

Der Programmierkurs in der c't könnte da dann sicher hilfreich sein. Ich schnuppere da auf dem Weg nach Hause mal im Bahnhofszeitschriftenladen rein (als Zugreisender liegt das sozusagen direkt auf dem Weg :) ).

Jan
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

ich habe mal wieder einen kleinen Performance Test gemacht ;-)

Rechner mit AMD Athlon 64 3000+, XP Pro, 2 GB Ram

Aufgabe 10.000.000 :!: Rechenoperationen nWert := x * x
Ich weiß jemand wird sagen, dass das keine Aussagekraft hat ... aber ich machs trotzdem 8)

Innerhalb der Sprache verwende ich den am Besten geeigneten Datentyp.
Xbase++ wir haben ja nur numerisch x und nWert
C# und Power Basic LONG x und DOUBLE nWert.
Gemessen wird in Sekunden mit 2 oder 3 Dezimalstellen (Seconds(), Timer(), DateTime,TimeSpan)

ich schreibe hier mal nur den Xbase++ Code rein, der Rest ist ähnlich.

Code: Alles auswählen

FOR X := 1 to 10000000
       nWert := x*x
next
So nun zu den Ergebnissen - ich muss sagen, ich war überrascht wie schnell alle 3 waren :!:

Code: Alles auswählen

Xbase++      1,00  Sekunden
C#           0,340 Sekunden  (das Ergebnis müsste bei VB.NET und C/C++.NET gleich sein)
PowerBasic   0,08  Sekunden  (optimiert direkt auf CPU Register)
Java SE 6    0,200 Sekunden
10 Millionen Durchläufe je Sekunde finde ich wirklich beachtlich (im Ernst). Dass C# mit .NET - und somit im Prinzip alle .NET Sprachen - 3x schneller sind ist ordentlich, da aber Power Basic nochmal deutlich schneller ist, frage ich mich wie ein native C++ Compiler vor .NET das erledigt hätte ... :wink:

*** so ergänzt um das Erbebnis mit Java SE 6 ***
Gruß
Hubert
Antworten