WPF/XAML Infos

#1
Hallo zusammen,

Ich darf demnächst einen Vortrag zu WPF/XAML halten. Dazu fehlen mir leider noch einige Informationen.

Ich bin schon eine ganze Weile auf der Suche, aber meistens finde ich nur Stellen an denen sich geschickt um die konkreten Fakten herumgewunden wurde. Ich hoffe dass mir hier jemand helfen kann.

  1. In welchen .NET Sprachen gibt es die WPF-Teile alles? In allen kann ich mir eigentlich nicht vorstellen, oder? Ich finde immer nur "z.B. C# und VB"
  2. Soweit ich weiß kann man nur bei C# und VB die XAML-Dateien gleich mit kompilieren, bei den anderen muss man loose XAML benutzen. Stimmt das so?
  3. Thema loose XAML: Bei loose XAML kann man ja nicht vom XAML-Code auf die Methoden zugreifen (z.B. Click="geklickt()"). Stattdessen muss man sich im Quelltext, nachdem man alles mit dem XamlReader geladen hat, das Element mit FindName() raussuchen und dann die Methode dran hängen. Ich habe öfter gelesen, dass man das mit .NET 4.0 vielleicht wieder direkt in den XAML-Code schreiben können soll, hab dazu aber nichts weiter gefunden. Geh ich richtig davon aus, dass das weiterhin nicht geht?Thema loose XAML: Bei loose XAML kann man ja nicht vom XAML-Code auf die Methoden zugreifen (z.B. Click="geklickt()"). Stattdessen muss man sich im Quelltext, nachdem man alles mit dem XamlReader geladen hat, das Element mit FindName() raussuchen und dann die Methode dran hängen. Ich habe öfter gelesen, dass man das mit .NET 4.0 vielleicht wieder direkt in den XAML-Code schreiben können soll, hab dazu aber nichts weiter gefunden. Geh ich richtig davon aus, dass das weiterhin nicht geht?

Das war's glaub ich erstmal. Schonmal danke im Vorraus :)
 

Norbert Eder

Erfahrenes Mitglied
#2
Hallo,

ad 1) siehe auch http://msdn.microsoft.com/en-us/library/aa970268.aspx. Hier findet sich folgende Aussage:

If you have previously built applications with .NET Framework using managed technologies like ASP.NET and Windows Forms, the fundamental WPF programming experience should be familiar; you instantiate classes, set properties, call methods, and handle events, all using your favorite .NET Framework programming language, such as C# or Visual Basic.
ad 2) Wo hast du diese Information her?

ad 3) Loose XAML ist auch nicht dafür gedacht, mit Code zusammen zu arbeiten. Damit ist es möglich, in reinem XAML Pages zu erstellen. Sollen weitere Funktionalitäten zur Verfügung stehen, die per Code abgedeckt werden müssen, dann handelt es sich auch nicht mehr um Loose XAML. Dazu passend eine Aussage von Tim Sneath:

Loose XAML is basically the capability that allows you to open any XAML file on your hard disk (or a hyperlink on a web page) and "run" it within a browser without compilation. You can't embed any code within the XAML document - it has to just be pure XAML itself - so it's not suitable for building a large-scale application; however it's certainly a nice little feature for trying out a little XAML code or for something like a small animation that you might embed into a web page.
 
#3
Hallo,

erstmal danke für die Antworten.

zu 2: Mein Betreuer arbeitet schon eine ganze Weile mit WPF und XAML, unzwar mit C++. Er meinte das ist eine Beschränkung des Compilers, dass er das z.B. eben bei C++ nicht mit rein kompilieren kann. Ich habe auch nirgends was gefunden wie man das direkt mit rein kompilieren könnte.

zu 3: Dass Loose XAML nicht dazu gedacht ist, ist mir auch vollkommen klar. Die Sinnhaftigkeit dieser Frage ergibt sich aus der vorherigen. Wenn ich z.B. C++ nutze, bin ich gezwungen auf Loose XAML zurückzugreifen. Und es würde um einiges einfacher werden wenn ich mir nicht alle Elemente der Gui wie beschrieben raussuchen könnte, sondern direkt darauf zugreifen könnte, genauso aus XAML heraus auf Methoden, also die Ereignishandler hinzufügen könnte.
 

Norbert Eder

Erfahrenes Mitglied
#4
Ich gehe davon aus, dass du ohnehin C++/CLI meinst. Abgesehen davon: Es gibt die WPF-Beispiele auch in C++, also gehe ich davon aus, dass es auch mit dieser Sprache funktioniert. Ob das Precompiling der via XAML deklarierten Objekte funktioniert kann ich aufgrund eines nicht installierten C++/CLI aktuell nicht testen.

Unabhängig davon: Welchen Grund hätte es, auf C++/CLI zu setzen und nicht auf C#? C++ ist ansich nicht dafür gedacht UI-Anwendungen zu entwickeln. Die Stärken liegen - aus meiner Sicht - hier im nicht-visuellen Bereich.
 
#5
Jo, ich meine C++/CLI. Dass es funktioniert weiß ich, mein Betreuer arbeitet mit C++/CLI und WPF. Aber eben ohne das Precompiling der in XAML deklarierten Objekte. Das ging bis einschließlich .NET 3.5 nicht mit C++/CLI.

Zu deiner letzten Frage:
Ich will das ja auch gar nicht machen. Die Sache ist einfach die, dass die Zielgruppe des Vortrags hauptsächlich aus Mitarbeitern des Instituts an dem ich das halte (Uni) fast ausschließlich mit C++ arbeiten. Und da will ich denen wenigstens sagen können, welche Einschränkungen die inkauf nehmen müssen, wenn sie das ganze nicht mit C# machen wollen.
 
#6
Hi,

habe ein Problem, habe eine WPF erstellt, welche mich auf von einer Startseite auf weitere Seiten linkt, aber ich brauche ein Login.vb vor der WPF und die Seiten sollten nicht xaml sondern besser im VB.Net Modus sein.

Geht es überhabt? Und wenn ja Wie?