PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : WPF, .NET und unmanaged code


stefan42
2007-07-22, 12:55:20
Hallo zusammen,

da ich mich ins Linuxlager verabschiedet habe und in der Firma noch Windows 2000 (gar nicht so schlechte) Dienste leistet, hinke ich beim Thema WPF etwas hinterher.
Weiß jemand bei folgenden beiden Punkten Bescheid? (oder ist ein besserer Googler als ich ;-)

1. Soweit ich weiß, kann WPF nur von .NET Programmen verwendet werden. Vista selbst ist nicht in .NET erstellt und verwendet nicht dokumentierte dlls für WPF-Aufrufe. Stimmt das so, oder kann man von (unmanaged) C/C++ aus auch WPF nutzen?

2. DirectX 10 ist die Grundlage für WPF, ist aber nach wie vor eine COM-Bibliothek und deswegen natürlich für unmanaged Code nach wie vor geeigent. Stimmt so, oder?

3. Welche von den neuen (größeren) Programmen basieren eigentlich auf .NET? Ich denke insbesondere z.B. an die ganzen Expression Programme von Microsoft, die z.T. XAML verwenden. Weiß jemand, ob die (überhaupt bzw. zu welchem Grad) in .NET geschrieben sind?

Viele Grüße,
Stefan

Demirug
2007-07-22, 13:36:18
1. WPF ist eine managed Bibliothek und kann entsprechend auch nur mit .Net genutzt werden. Unter WPF gibt es noch eine weitere Schicht die als Vermittler zu Direct3D dient. Diese ist unmanaged. Mir ist keine Anwendung bekannt die direkt darauf zugreift. Das Ganze ist auch höllisch kompliziert. Ich erspare mir hier die Details. Lediglich Aero nutzt ein Subset dieser Funktionen. Ich habe noch nicht ausprobiert ob das mit den WPF Klassen geht aber in vielen Fällen kann man sich für .Net Klassen einen COM Wrapper erzeugen lassen. Aber ohne .Net Framework geht dann immer noch nichts.
2. Die Grundlage für WPF ist Direct3D 9 sonst würde es ja nicht unter Windows XP funktionieren. Direct3D 10 ist aber auch noch immer eine unmanaged API da die Spieleentwickler ja zum größten Teil nach wie vor auf C++ und C setzten.
3. Die Expression Tools sind AFAIK fast völlständig in .Net programmiert. Visual Studio hat ebenfalls einen größeren Teil .Net Code.

stefan42
2007-07-23, 13:58:40
Danke, Demirug!

Was hat das wohl für Auswirkungen für normale Anwendungen (=unmanaged C/C++-Anwendungen)? Was ist z.B. mit Photoshop in ein paar Jahren? Eine komplette Migration in managed Code ist wohl von der Performance her nicht interessant und was wenn dann auch noch die Codebasis portierbar sein soll? Werden wir dann viele Programme mit .NET-GUI sehen, die per PInvoke performanzkritische Teile auslagern?

Wird wohl auch spannend was mit Trolltech's QT passieren wird.

Für Eclipse gibt es bereits ein SWT Binding für WPF, d.h. da dürfen sich dann zwei VMs gleichzeitig um den Arbeitsspeicher kabbeln...