-
ACHTUNG - NEUES BLOG
Ab sofort steht unter http://devtyr.norberteder.com mein neues Blog zur Verfügung. Dieses Blog wird nicht weiter betreut, bleibt aber erhalten. Neue Eintr%auml;ge erfolgen nur mehr im neuen Blog. Kommentare werden ebenfalls nicht mehr behandelt. Wer weiterhin meinen Einträgen und Aktivitäten folgen möchte, möge bitte RSS-Feeds, Verlinkungen etc. an die neue Location anpassen.
|
WPF ist so extrem kompliziert ...
30.04.08 - Entwicklung, Diskussionen, .NET, WPF Beitrag von Norbert Eder| | ... liest man so immer wieder in allen Foren, die sich auch nur annähernde mit der Thematik beschäftigen. Das ist auch durchaus korrekt - zumindest zu Beginn.
Dadurch, dass sich sehr viele Konzepte geändret haben und natürlich jede Menge neues hinzukam, hat sich die Entwicklung von grafischen Oberflächen drastisch geändert. Das resultiert natürlich darin, dass die Lernkurve eine viel steilere ist und zudem viel vorhandenes Wissen verworfen werden muss.
Aber bei Windows Forms konnte ich das immer so machen. Oder so ähnlich lesen sich Beiträge. Mein Rat: Vergesst, was ihr von Windows Forms kennt. Anders ist es kaum zu formulieren.
Windows Forms war gestern (ganz so drastisch ist es nicht, aber aus Sicht der Vision von WPF dann doch wieder). Es ist wichtig die neuen Konzepte zu erfassen und sie verstehen zu lernen. Erst dann sind erste erfolgreiche Schritte tatsächlich möglich.
Es ist nicht bloß die Trennung zwischen Präsentation und Logik, die WPF als neuartig erscheinen läßt. Nein, WPF verwendet teilweise auch Techniken, die schon zig Jahre alt sind. Eben eine Mischung aus GDI/GDI+, Web, Windows Forms usw. Das alles auf Basis von DirectX und noch dazu mit einem unterschiedlichen Rendering-Mechanismus.
Es haben sich nicht nur die Möglichkeiten verändert, nein. Auch Gedanken müssen anders gedacht werden. Andere Schritte als bisher führen zum Ziel. Vieles erscheint im ersten Moment als sehr kompliziert, zeigt aber erst nach einer gewissen Einarbeitungsphase den wahren Reiz und die wahren Möglichkeiten. Wer über die ersten Frust-Momente hinweg kommt, der hat es geschafft.
Daher all denjenigen, die sich selbst in Frage stellen, denen ich in diversen Foren Mut machen konnte oder diejenigen, die diesbezüglich eine Aussage von mir per Mail "eingefordert" haben: Versucht die Konzepte dahinter zu verstehen und befreit euch vom Gedanken, wie es denn unter Windows Forms funktionieren würde ...
| | | 3 Kommentare
- 1278 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Webgrafik einfach und schnell mit WPF anzeigen
29.04.08 - .NET, WPF, ASP.NET Beitrag von Norbert Eder| | Wie geht man ans Werk, wenn in einer WPF-Anwendung Grafiken aus dem Internet geladen und angezeigt werden sollen? Nun ja, herunterladen, zwischenspeichern (Dateisystem, oder Arbeitsspeicher), eine BitmapSource erstellen und dann der Source eines Image-Elementes zuweisen.
Aber das geht auch einfacher!
private void HandleImage(Image image, Uri webUri)
{
BitmapDecoder bDecoder = BitmapDecoder.Create(
webUri,
BitmapCreateOptions.PreservePixelFormat,
BitmapCacheOption.None);
if (bDecoder != null && bDecoder.Frames.Count > 0)
image.Source = bDecoder.Frames[0];
}
Das ist auch schon alles was man tun muss. Stichwort ist der BitmapDecoder. Dieser bekommt in der statischen Methode Create ein Uri-Objekt (daher muss es nicht umbedingt ein Image im Web sein) übergeben. Wenn alles gut geht, können wir das Resultat aus der Frames-Auflistung beziehen und zur Anzeige bringen.
So einfach, wenn man weiß wie ;-)
| | | 1 Kommentar
- 137 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Visual Studio 2008 Feature Matrix
29.04.08 - .NET, Visual Studio Beitrag von Norbert Eder| | Wer eine genaue Übersicht der einzelnen Visual Studio 2008 Editions erhalten möchte, dem sei die Visual Studio 2008 Feature Matrix ans Herz gelegt.
Je nach Bereich können die unterschiedlichen Editionen miteinander verglichen werden. So wird ein schneller Überblick ermöglicht und die richtige Wahl sollte nicht schwer fallen.
| | | 1 Kommentar
- 196 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Na? Welche .NET Framework-Version darf es denn sein?
28.04.08 - .NET, Grundlagen, Base Framework, WPF, ASP.NET, Silverlight, Mobile Devices, Datenverwaltung, Visual Studio, Allerlei Beitrag von Norbert Eder| | Wohl eine der häufigsten Fragen (gleich neben: "Wie bekomme ich Wert A von Form1 nach Form2?") ist wohl die, welche .NET Framework-Version eingesetzt werden soll/darf/muss.
Ein durchaus nicht (immer) einfach zu klärendes Thema. Grundsätzlich wäre es ja sehr einfach: Nimm die Version, die alles enthält, was du auch wirklich benötigst. Damit läßt sich die Frage jedoch nicht gänzlich beantworten.
Oft sind beim Kunden Prozesse am Laufen, die eine freie Wahl des .NET Frameworks nicht zuläßt (lange Evaluierungsphasen bezüglich der Sicherheit, Funktionsfähigkeit usw. fallen hier auf Anhieb ein). In diesen Fällen muss mit dem Kunden zusammen abgestimmt werden, was denn bei ihm tatsächlich verwendet werden darf. Dies betrifft nicht nur das Framework selbst, sondern auch unterschiedlichste Tools und Libraries aller Art. Bereits im Vorfeld muss eine Abgrenzung stattfinden. Dürfen 3rd Party Controls/Libraries verwendet werden? Wenn ja, welche? Diese und weitere Fragen tauchen auf.
Kunden, die derartige Einschränkungen nicht zu Tage liefern sollten jedoch auch nicht gleich mit der full featured Variante ausgestattet werden. Nach einer ordentlichen Evaluierung der Anforderungen sollte schnell klar sein, welche Komponenten notwendig sind. Dies inkludiert auch das Framework. Zukunftsdenken ist schön und oft auch unerläßlich, dennoch würde es beispielsweise wenig sinnvoll sein, eine Konsolenanwendung zum Datentransfer mit dem .NET Framework 3.5 zu implementieren. Version 2.0 ist vollkommen ausreichend. Im Falle einer Serveranwendung kommt dies eventuell nicht so schwer zu tragen (abgesehen davon, dass am Server wirklich nur das Notwendigste installiert werden sollte). Wird ein Produkt auf zig Hundert Rechner ausgeliefert, kann dies sehr wohl einen Unterschied machen. Version 2 sollte auf den meisten Rechnern installiert sein, 3.5 hingegen nicht. Dies würde einen zusätzlichen Deployment-Aufwand mit sich bringen, der nicht zur Zeit und somit auch Geld kostet, sondern eventuell auch auf der einen oder anderen Maschine zu Problemen führt (Murphy läßt grüßen).
Bei der Wahl der richtigen Framework-Version, als auch der verwendeten Tools und Libraries kann also ruhig auch ein wenig Pragmatismus ins Spiel kommen.
Ähnlich der obigen Überlegung sieht es bei der Entwicklung eines Frameworks aus. Oft erscheint in der Zwischenzeit eine neue Version des Frameworks. Eine Umstellung würde Aufwand bedeuten (mal davon abgesehen, dass eventuell neue Features hinzukommen und der begeisterte Feature-Junkie gleich ein Refactoring und ein Recoding in den Raum wirft). Hier muss überlegt werden, auf welcher Version die darauf aufbauenden Zielprojekte umgesetzt werden (sollen). Ist zu rechnen, dass eben diese Projekte auf die neue .NET Framework Version aufsetzen, sollte wohl eher umgestellt werden (eine spätere Umstellung würde vermutlich wohl noch mehr Zeit und Aufwand kosten). Jedoch muss alles gut überlegt sein.
Bei kleinen Tools und Anwendungen, die eventuell über das Internet zur Verfügung gestellt werden, gehen die Überlegungen eher in die Richtung, welche Framework-Version von den meisten Benutzern eingesetzt wird. Will man unbedingt ein aufregendes Design usw. führt ein Weg an WPF (und damit 3.0 bzw. 3.5) kaum vorbei.
Die Überlegungen sind also sehr zahlreich und eine allgemeine Antwort ist auf diese Frage nicht zu geben. Der Einzelfall muss hinterfragt und beleuchtet werden, dann ergibt sich auch eine entsprechende Antwort.
| | | 1 Kommentar
- 180 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Heute schon gewonnen?
20.04.08 - .NET, WPF, Internet, Community Beitrag von Norbert Eder
Diagramm-Designer mittels WPF erstellen
19.04.08 - .NET, WPF Beitrag von Norbert Eder
Auf .NET GUI tut sich was!
16.04.08 - Blog-Intern, .NET, WPF, ASP.NET, Silverlight, Visual Studio, Allerlei Beitrag von Norbert Eder| | Ja, richtig gelesen. Auf .NET GUI tut sich was. In den letzten Tagen wurden einige Verbesserungen vorgenommen, welche den Besuchern und Mitgliedern zu Gute kommen sollen und hoffentlich auch werden. Es ist ein erklärtes Ziel, eine optimale Plattform für GUI-Entwickler/-Designer zu schaffen und daher werden wir uns diesem Ziel Schritt für Schritt nähern.
Hier nun eine kurze Auflistung der neuen Features/Funktionen:
Ressourcen-Liste
Ressourcen sind eine wichtige Sache, wenn man sich in ein Thema einarbeiten möchte oder spezielle Informationen sucht. In der angebotenen Ressourcen-Liste werden hilfreiche Links angeboten, die sowohl dem Entwickler, als auch dem Designer bei der täglichen Arbeit unterstützen sollen.
Coders Lounge
Damit auch allgemeine Programmierthemen ihren Platz finden, wurde die Coders Lounge eingeführt. Hier kann über alles Mögliche und Unmögliche zum Thema Programmierung/Entwicklung diskutiert werden.
Verbesserter Editor
Der verfügbare Editor zum Schreiben von Beiträgen wurde gegen einen neuen Editor mit verbesserten Funktionen ausgetauscht. Damit können Beiträge noch einfacher geschrieben und übersichtlicher gestaltet werden.
Browser-Suche
Wer die Browsersuche unter Firefox bzw. Internet Explorer 7 gerne und häufig verwendet, kann nun den Provider von .NET GUI installieren und damit bequem diese Community durchsuchen.
Verbesserte Erreichbarkeit
Ab sofort ist .NET GUI nicht nur via http://dotnet-gui.com, sonder zusätzlich über http://dotnet-gui.at und http://dotnet-gui.net.
Es hat sich also viel getan und weitere Funktionalitäten sind bereits in Planung. Man darf gespannt sein.
Wer Teil dieser Community werden möchte kann sich natürlich jederzeit gerne registrieren.
| | | 2 Kommentare
- 1094 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
.NET BlogBook Ausgabe 6
14.04.08 - Entwicklung, Diskussionen, Patterns, Software Testing, Projektmgmt., Qualitätsmgmt., .NET, Grundlagen, Base Framework, WPF, ASP.NET, Silverlight, Mobile Devices, Datenverwaltung, Visual Studio, Allerlei, Microsoft Office, SQL Server Beitrag von Norbert Eder| | Ab sofort steht die 6. Ausgabe des .NET BlogBooks zur Verfügung. Insgesamt stehen nun fast 330 Seiten an puren Informationen und Praxiswissen zur Verfügung.
Noch dazu wurden einige Anregungen aufgegriffen. Es gibt ein neues Cover (ein herzliches Dankeschön an 69° media solutions). Ebenfalls wurden unnötige dunkle Stellen entfernt, die beim Ausdrucken maximal Toner verbrauchen, sonst jedoch keinerlei Wirkung erzielen.
Hauptsächlich wurde das BlogBook um Wissen rund um die Windows Presentation Foundation erweitert, aber auch andere Punkte kamen hinzu. Ein Blick lohnt sich allemal.
Weitere Informationen sind auf der Homepage unter http://www.dotnet-blogbook.com zu finden.
Für Anregungen, Wünsche und (konstruktive) Kritik haben wir natürlich weiterhin ein offenes Ohr.
| | | 6 Kommentare
- 1356 mal angesehen
| 1 Trackbacks
| Permalink | Trackback-URL |
Code-Only Anwendungen mit WPF entwickeln
14.04.08 - .NET, WPF Beitrag von Norbert Eder| | Eine WPF-Anwendung muss nicht immer mit Hilfe von XAML geschrieben werden, auch ohne XAML kann eine WPF-Anwendung erstellt werden. Warum dies notwendig ist könnte mehrere Gründe haben, der wohl oft vorkommendste: XAML ist nicht bekannt und es fehlt die Einarbeitungszeit. Eine andere Möglichkeit besteht natürlich auch darin, dass zur Laufzeit ein Fenster dynamisch erstellt werden sollen.
Wie ist also vorzugehen: Grundsätzlich kann eine ganz normale WPF-Anwendung erstellt werden. Die Dateien App.xaml und Window1.xaml sind anschließend zu löschen (die Codebehind-Dateien werden automatisch mit gelöscht). Der Vorteil dieser Variante liegt darin, dass die notwendigen Referenzen alle dem Projekt hinzugefügt werden und somit diesbezüglich keinerlei Aufwand entsteht (natürlich kann dies auch manuell geschehen).
Wer dies manuell machen möchte, muss folgende Referenzen seinem Projekt hinzufügen:
- PresentationCore
- PresentationFramework
- WindowsBase
Nun wird im ersten Schritt eine neue Klasse App.cs dem Projekt hinzugefügt. Diese erbt von Application und enthält den notwendigen Einstiegspunkt.
public class App : Application
{
[STAThread]
static void Main(string[ args)
{
Application app = new Application();
app.Run(new MainWindow());
}
}
Im Grunde passiert nichts anderes, als dass eine neue Application-Instanz erstellt wird und deren Methode Run aufgerufen wird. Als Parameter erhält sie eine Instanz des Typs MainWindow. MainWindow ist so aktuell noch nicht verfügbar, werden wir jedoch im nächsten Schritt erstellen.
public class MainWindow : Window
{
StackPanel mainPanel = null;
Label label1 = null;
Button button1 = null;
private void InitializeComponent()
{
mainPanel = new StackPanel();
mainPanel.Name = "MainPanel";
mainPanel.Orientation = Orientation.Vertical;
label1 = new Label();
label1.Content = "Code Only App";
label1.FontSize = 18;
button1 = new Button();
button1.Content = "Close";
mainPanel.Children.Add(label1);
mainPanel.Children.Add(button1);
this.Content = mainPanel;
}
public MainWindow()
{
InitializeComponent();
Init();
button1.Click +=
new RoutedEventHandler(button1_Click);
}
void button1_Click(
object sender,
RoutedEventArgs e)
{
Application.Current.Shutdown(0);
}
private void Init()
{
this.Title = "Code Only App";
this.Height = 300;
this.Width = 300;
}
}
Die Klasse MainWindow.cs erbt von Window und stellt unser Hauptfenster dar. Wie zu sehen ist, werden nun lediglich durch Code (kein XAML) die einzelnen anzuzeigenden Elemente erstellt. Sämtliche Methoden wurden manuell erstellt, d.h. es gibt hier keinen Code, der irgendwie automatisch erstellt wurde.
Das Ergebnis kann in der nachfolgenden Grafik bewundert werden. Natürlich kann auf diese Variante ebenfalls ein hübsches Design erzeugt werden. Diese Demo sollte jedoch nur grundsätzlich zeigen, wie Code-Only-Applikationen erstellt werden können.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Wir Österreicher sind nicht nur ...
14.04.08 - Kunterbunt Beitrag von Norbert Eder| | ... beim Skifahren Weltklasse. Gestern wurde eindrucksvoll bewiesen, dass wir auch Schwimmen können - oder zumindest ein paar unserer Landsleute. So muss man Markus Rogran zu seinem Weltmeistertitel über 200m Rücken gratulieren und das noch mit der Weltrekordzeit von 1:47,84. Eindrucksvoll.
Man muss sich eben andere Sportarten suchen, wenn man beim Fußball nichts zusammen bringt ;-) Ergo muss wohl auch bald bei den Eishockey-A-Teams das große Zittern beginnen...
| | | 2 Kommentare
- 842 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL | Zurück Weiter
|
|
|
|
|
|
|