Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Win32 oder .NET; VCL.NET oder WinForms ?

  Alt 29. Mai 2006, 22:55
Zitat von hanspeter:
Ich hatte das schon mal geschrieben. NET ist die Neuentwicklung der VCL ohne alte Zöpfe und mit einem moderneren Sprachkonzept.
...
Wer sich das Net-Framework anschaut sieht eigentlich deutlich das VCL und Net den gleichen Vater haben.
Schaut man in die Vergangenheit, so stagniert die Delphientwicklung eigentlich seit dem Ausscheiden von Anders Hejlsberg.
Dass Autos runde Räer haben ist keine Hommage an Eckbert, den trickreichen Nendertaler[1], es ist einfach ein Design, das sich praktisch aufdrängt.
Das gleiche gilt für BCL/FCL vs. Delphi RTL/VCL. Es gibt nunmal bestimmte Widgets in der Win32 API, und das ein Fenster einen Text, ListBox/ComboBox Strings als Items und ListView mehrere Spalten, Icons und Ansichten hat dürfte wohl auch schon jeder gemerkt haben.
Außerdem hat Hejlberg nach der VCL die MFC verbrochen, demnach...
Wo SWF/WPF und die VCL auseinandergehen ist die Architektur hinter dem "Drag'nDrop-uff'm Designer-Geklicke".
Die VCL steht technisch noch da wo sie in der Uraufführung stand: Sie ist immer noch nicht interface basiert.
SWF/WPF/ASPX teilen sich eine Menge Interfaces, die entweder den Designer (IExtenderProvider,IComponent,IContainer), oder das extrem mächtige und (mit krüppligen DataSets) oftmals extrem unterschätzte DataBinding aufmöbeln.
Für DataBinding gibt es Dinge wie
  • IEditableObject
  • IChangeTracking
  • ICancelAddNew
  • INotifyPropertyChange
  • IDataError
  • IBindableComponent
  • IListSource (sehr interessant für alle, die DataModules hinterhertrauern )
  • IBindinglist
Die Liste ist keinefalls vollständig sonder nur das womit ich oft zu tun habe.
Was ist an interface-basierter API anders?
Du kannst jede beliebige Klasse hernehmen und sie zu einer Komponente machen, die du auf einen Designer werfen kannst (auf alle 3 GUI Frameworks UND auf WebServices/WinServices/Komponenten).
Du kannst jede Klasse zu einer Datenquelle aufbohren, die ihrerseits mehrere Datenquellen veröffentlicht (IListSource) und du kannst die UI über Änderungen deiner Daten informieren (INotifyPropertyChange), Fehler direkt an Ort und Stelle melden (IDataError) oder auf ein [Esc] reagieren (ICancelAddNew/IEditableObject).
Wer in .Net noch irgendwelche ChangeEvents irgendwelcher Controls abfängt um sein Model mit dem View zu synchronisieren (und vice versa) hat entweder einen wirklich trifftigen Grund dafür oder er reduziert DataBinding auf "krüppelige DataSets"(TM).

Man darf aber auch nicht die Kehrseite der Medaille vergessen: SWF basiert auf GDI+.
GDI+ mag eine sehr mächtige und einfache API sein um schöne Dinge wie Gradienten, Transparenzen & Co auf den Schirm zu zaubern, ABER GDI+ hat fast keinen Hardware support.
Die Folge ist, dass man jedem SWF Fenster beinahe zusehen kann, wie es sich auf den Schirm zeichnet.[2]
Ehrlich gesagt bin ich deshalb fast jedesmal wenn ich eine meiner Apps öffne, ein kleines bisschen mehr angepisst...

Zitat:
Neben C# ist übrigens VB auch eine interessante Sprache.
Na pfui Deivel aber auch!
Zitat:
Sie hat nicht mehr viel mit der "alten Frickelsprache" VB gemeinsam.
Richtig, wenn man einer Sprache, die absolut ungeeignet für OO ist OO aufquetscht bekommt man eine "neue, bessere Frickelsprache". VB.Net gehört zu den widerlichten Dingen, die MS in den letzten 10 Jahren angestellt hat.
Dieses Biest unterläuft die statische Typensicherheit, die Pascalisti seit jeher zu schätzen wussten (und die seit C#/Java auch den c-ischen Sprachen zugute kommt) auf eine so kranke Weise, dass man ernsthaft am Geisteszustand der Erschaffer zweifeln muss.
In VbNet kannst du stets und ständig late binding benutzten. Wer den kleinen Fakt kennt, dass dynamic invokes so ziemlich das langsamste sind, dass .Net zu bieten hat, bekommt wohl jedesmal Panikzustände, wenn der den IL Code eine typischen Vb.Net-Fricklers lesen muss.

Es gibt für's VS zumindest eine weitere Sprache, die ich als sehr nett empfinde. Aber da muss ich wohl nicht genauer werden.

[1] ihr wisst schon, der der das Rad erfand...
[2]einfach mal ein Fenster vor einem SWF Fenster Fenster bewegen. Besonders krass wird's wenn du dort einen DataGridView hast.

puh.. genug philosülziert für heute....:tupid:
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat