.NET Blog   ·   .NET Casts   ·   .NET GUI Foren   ·   .NET BlogBook   ·   WPF Blogger   ·   visual studio one   ·   ASP.NET professional

  • 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.
Download .NET Essentials Installer
Trickkiste

Developer Basics: Knackige User Interfaces mit WPF - eine Einführung

09.01.09 - .NET, WPF
Beitrag von Norbert Eder
 Microsoft Österreich veranstaltet heute für .NET Einsteiger einen Webcast zum Thema Developer Basics: Knackige User Interfaces mit WPF - eine Einführung. Dieser Webcast richtet sich an Beginner in .NET und wird von Max Knor abgehalten.

Lernen Sie in diesem Webcast wie Sie
  • die Geschäftslogik von der Präsentationsoberfläche Ihrer Anwendung anhand von WPF trennen
  • ihre erste WPF Anwendung schreiben
  • welche Tools von Microsoft sie unterstützen

Der Webcast findet von 10:00 bis 10:45 statt. Während des Casts können Fragen vom Auditorium gestellt werden.

Wer sich also langsam an das Thema WPF herantasten möchte, der sollte sich ein Plätzchen ergattern.


  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Windows 7 Beta - Ab 9.1.2009 sind 2,5 Millionen Exemplare zu haben!

08.01.09 - Internet, Kunterbunt
Beitrag von Norbert Eder
 Steve Ballmer, Chief Executive Officer, und Robbie Bach, President Entertainment and Devices Division, haben auf der heute beginnenden International Consumer Electronics Show (CES) 2009 in Las Vegas die Windows 7 Beta zum ersten Mal offiziell vorgestellt. (Keynote)

Eine nette Zwischeneinlage der Band Tripod auf der Keynote möchte ich auch nicht vorenthalten, wenn diese Aufnahme auch von einem anderen Event stammt. Es empfiehlt sich auf den Text zu achten - es lohnt sich auch, wenn der Musikgeschmack nicht zusagt.



Windows 7 Beta wird angeblich nur begrenzt verfügbar sein. Wie es heißt für 2,5 Millionen Downloads. Das hört sich zwar nach viel an, dennoch sollte man sich beeilen, möchte man die neue Windows Generation schon jetzt testen.

Sobald der Download aktiviert ist, kann Windows 7 Beta unter http://www.microsoft.de/windows/windows-7 (deutsch) bzw. http://www.microsoft.com/windows7 (englisch) herunter geladen werden.

Wer weitere Informationen sucht, wird unter nachfolgenden Quellen fündig:

Windows 7 Blog (engl.): http://windowsteamblog.com/blogs/windows7/default.aspx
Windows 7 Blog (dt.): http://blogs.technet.com/sieben/
Windows 7 Blog: http://blogs.msdn.com/e7/
Windows 7 Mainpage: http://www.microsoft.com/windows/windows-7/


  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Coding Standards als wichtiges Instrument

07.01.09 - Entwicklung, Diskussionen, Qualitätsmgmt., .NET, Grundlagen
Beitrag von Norbert Eder
 Wichtigstes Ziel in der Softwareentwicklung ist es, Projekte zeitgerecht und qualitativ hochwertig abzuschließen. Damit dies auch funktionieren kann, bedarf es Coding Standards, die von allen Team-Mitgliedern eingehalten werden müssen.

Da es wieder Zeit wurde, die eigenen Coding Standards anzupassen, machte ich mich auf die Suche, um meinen Horizont diesbezüglich wieder etwas zu erweitern. Dabei stieß ich auf die Coding Standards Reference Documents von Clint Edmonson. Clint hat dabei grundlegende Coding Standards für VB.NET und C# aufbereitet und als Download zur Verfügung gestellt.

Folgende Themen werden behandelt:
  • Golden Rules
  • Formatting
  • Commenting
  • Capitatlization & Naming
  • Programming

Diese Dokumente stellen eine gute Grundlage für jeden Softwareentwickler, als auch für gesamte Teams dar. Im Idealfall werden Ergänzungen gemacht und als Standardlektüre für jeden Entwickler im Team verpflichtend vorgesehen.

Weiters empfiehlt es sich, die Coding Standards auch entsprechend zu kontrollieren, damit sie tatsächlich Anwendung finden. Dies kann in Reviews passieren.

Der eine oder andere mag an dieser Stelle vielleicht die Meinung vertreten, dass zuviel Einschränkung schlecht ist. Dem kann ich allerdings nicht zustimmen. Ein Team an Entwicklern bedarf eine Führung und auch Rahmenbedingungen innerhalb derer sie sich zu bewegen haben. Nur dann kann ein (hoffentlich) optimales Ergebnis verfolgt und erzielt werden.


  3 Kommentare - 1478 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Schwerwiegender Fehler 0x8000ffff bei Windows Live Installation

05.01.09 - Internet, Tools, 3rd Party Tools, Kunterbunt
Beitrag von Norbert Eder
 Auf einem meiner Laptops mit Windows Vista Ultimate hatte ich noch die Beta-Versionen der Windows Live Produkte laufen. Gestern wollte ich diese gegen die aktuellen Versionen austauschen. Also den Windows Live Installer herunter geladen, angestartet und prompt einen Fehler kassiert:

Bei der Installation ist ein Problem aufgetreten. Windows Live-Suite wurde nicht installiert.

Systemfehlerdetails
Code: 0x8000ffff
Beschreibung: Schwerwiegender Fehler


Was also tun? Den ersten Hinweis fand ich in einem Support-Artikel von Microsoft. Ein eventuelles Problem könnte durch den Windows Installer hervor gerufen werden. Also erstmal das Windows Installer Cleanup Utility ausführen und dann nochmals die Installation probieren.

Ausgeführt, Installation erneut gestartet und denselben Fehler erneut kassiert. Wunderbar. Was tun?

Im nächsten Versuch deinstallierte ich sämtliche Windows Live Beta-Produkte vom Rechner. Und das zeigte seine Wirkung: Ein erneuter Installationsversuch lief problemlos durch.

Damit wären nun alle meine Rechner aktualisiert, wenn auch nicht ganz ohne Frust. Aber immerhin.

  3 Kommentare - 4662 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Projekte, Projekte, Projekte ...

27.12.08 - Blog-Intern, Entwicklung, .NET, WPF, ASP.NET, Silverlight
Beitrag von Norbert Eder
 ... was fehlt ist die Zeit dazu. Aber die muss man sich bekanntlich ja nehmen! Die Feiertage nach Weihnachten und rum um Silvester eignen sich wunderbar, neben Familie und Co. an Projekten zu arbeiten bzw. an bestehenden bzw. zukünftigen Projekten zu planen. Schließlich nähert sich 2009 auch mit großen Schritten und bekanntlich sollte man sich dann doch etwas vornehmen. Was also schwebt mir so im Kopf herum?

WPF-Blogger


WPF-Blogger hat einen recht guten Start hingelegt. Viele Anregungen fanden ihren Weg zu mir und dem möchte ich natürlich nachkommen, zumal sich derer viele mit meinen eigenen Vorstellungen decken. Anfang 2009 wird es ein größeres Update der Site geben. So kommen einige neue Funktionen hinzu, bishere werden verbessert. Auf vielfachen Wunsch wird auch eine weitere Sprache ihren Weg ins WPF-Blogger-System finden. Weiters freut es mich, dass die Software wohl auch für ein weiteres .NET Community Projekt verwendet werden wird - und dieses wird nicht von mir sein.

.NET BlogBook


Das .NET BlogBook erfreut sich nach wie vor großer Beliebtheit. Und das, obwohl die letzten Veröffentlichungstermine leider nicht eingehalten werden konnten. Der Hauptgrund hierfür war wohl die bis dato aufwändige Pflege des Buches. Hier wird es eine Konzeptänderung geben, die in den nächsten Wochen und Monaten in die Realität umgesetzt werden wird. Ziel ist es, den Aufwand auf meiner Seite zu verringern und dem Leser einen höheren Komfort, als auch höhrere Aktualisierungsraten zu bieten.

.NET Casts


Auf .NET Casts veröffentlichten Kai Gloth und ich vor allem 2007 viele Podcasts. 2008 ist dieses Projekt ziemlich eingeschlafen, da zum einen die gewünschten technischen Mittel nicht zur Verfügung standen und zusätzlich Kai unter massivem Zeitmangel litt. Auch hier habe ich mir Gedanken zu einem neuen Konzept gemacht. Zusammen mit weiteren Persönlichkeiten der deutschsprachigen .NET Szene könnte diese Site 2009 wieder ein Revival feiern.

.NET GUI


Meine Community zur .NET basierten Oberflächen-Programmierung hat es 2008 ganz gut geschafft, sich zu etablieren. 2009 möchte ich diesen Trend fortführen und den Besuchern und Mitgliedern noch mehr Inhalte bieten. Erklärtes Ziel ist es definitiv, die größte Community rund um WPF und Silverlight zu werden bzw. den aktuellen Spitzenplatz zu erhalten.

Trickkiste


Die beliebteste Seite meiner Blogs ist wohl die Trickkiste. Abgesehen von der Home wird diese Page am Häufigsten aufgerufen. Ist die gebotene Funktionalität zum aktuellen Zeitpunkt doch eher als gering einzuschätzen, möchte ich die Trickkiste um zusätzlichen Inhalt und einige neuen Funktionen erweitern.

Wechsel Blogsystem


Bis jetzt hat mein verwendetes Blogsystem ganz gute Dienste geleistet. Mit der Zeit steigen allerdings die Anforderungen. Bedingt durch sinkende Ladezeiten, vermissten Komfort und der fehlenden Möglichkeit, den Windows Live Writer zu verwenden, muss ich wohl oder übel auf eine neue Software umsteigen. Dies ist jedoch kein leichtes Unterfangen, als dass die alten Links weiter bestehen bleiben sollten. Zur Datenübernahme habe ich bereits eine kleine Anwendung geschrieben, die auch bereits gut funktioniert. Diese muss noch an einigen Stellen abgeschliffen werden, dann steht einem Umstieg nichts mehr im Wege. Als System werde ich wohl Wordpress einsetzen, da mir die vorhandenen auf .NET basierenden Systeme nicht ausreichend Komfort anbieten.

Windows Presentation Foundation / Silverlight


Die Windows Presentation Foundation (WPF) und Silverlight waren im letzten Jahr mein Steckenpferd und werden es auch 2009 bleiben. So sind für diese Gebiete nicht nur einige Zeitschriften-Artikel geplant, sondern auch ausführliche Artikel und How-To's auf meinem Blog. Auch möchte ich generell zu diesem Thema weitere Hilfen anbieten. Dazu wird es in den nächsten Wochen zusätzlich zum Blog auch wieder eine Main-Page geben, nachdem diese über einen längeren Zeitraum nicht verfügbar war.

Weitere Projekte


Als Trumpf halten ich natürlich noch ein paar Projekte zurück, die zu gegebener Zeit bekannt gegeben werden. Eines davon hat aktuell höchste Priorität und wird wohl im ersten Quartal 2009 zu bewundern sein.


Ja, 2009 wird ein interessantes Jahr. Viel ist geplant und viel will auch erreicht werden. Für mich essentiell wird 2009 die Zusammenarbeit mit weiteren Experten aus der deutschsprachigen .NET Szene. Eventuell läßt sich auch Microsoft selbst von der einen oder anderen Idee begeistern. Man darf auf jeden Fall gespannt sein.

PS: Wer Ideen zu meinen anvisierten Projekten hat, oder selbst Projekte am Start hat, welche sich mit meinen überschneiden: Auf jeden Fall melden. Gemeinsam läßt sich nun mal wesentlich mehr und sinnvolleres erreichen.

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Live-Update + Silverlight

22.12.08 - .NET, WPF
Beitrag von Norbert Eder
 Leider habe ich keinen Screenshot gemacht, was mir jedoch beim Update der Live-Produkte aufgefallen ist: Es findet auch eine Überprüfung der installierten Silverlight-Version statt - vermutlich also wohl auch ein Update, wenn notwendig.


  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Hilfe! Ich werde verändert!

22.12.08 - Entwicklung, .NET, Grundlagen, Security
Beitrag von Norbert Eder
 Im Artikel Ich werde beklaut! habe ich darüber geschrieben, wie einfach Ressourcen aus einer WPF-Anwendung entwendet werden können und warum es sich - aus meiner Sicht - nicht lohnt, diese Inhalte mit hohem Aufwand zu schützen.

Nun ist das Stehlen von Ressourcen (Layouts, Styles, Grafiken, etc.) wohl eine der häufigsten Arten, aber nicht die Schlimmste. Seltener, aber dennoch nicht zu unterschätzen ist es, wenn Software von Fremden bewußt verändert wird. Für viele Anwendungsbereiche mag das vielleicht kaum eine Relevanz haben, aber gerade im Security-Bereich kann dies äußerst unangenehme Folgen mit sich bringen. Aber wie kann man sich davor schützen?

Strong Named Assemblies


Der erste Ansatz ist, den eigenen Assemblies einen Strong Name zu verpassen. Die Identität der Assembly besteht hierbei aus ihrem Namen, der Versionsnummer und Informationen der Kultur (sofern diese gesetzt wurde) inklusive eines öffentlichen Schlüssels (Public Key), als auch einer digitalen Signatur. Dies ist ein einfacher Weg, der frei Haus durch .NET mitgeliefert wird, hat jedoch so seine Tücken als dass ein Strong Name sehr einfach entfernt werden kann. Danach kann die Software normal verwendet und auch verändert werden. Die veränderte Assembly kann zwar ohne Signatur nicht im den Global Assembly Cache (GAC) installiert werden, was aber in vielen Fällen auch nicht vorgesehen ist.

Nichts desto trotz sollte Strong Named Signing dennoch verwendet werden, da es doch eine zusätzliche Hürde darstellt und es daher für viele weniger attraktiv ist, die Software zu verändern. Alle Angreifer können damit allerdings nicht ausgeschlossen werden.

Wie vor Veränderung schützen?


Ein vollständiger Schutz ist nie möglich. Man kann es dem Angreifer aber erheblich schwerer machen. Es gibt zahlreiche Tools, die hier Abhilfe schaffen wollen. In diesem Zusammenhang werden oft Obfuscating-Tools genannt, die jedoch nicht vor Veränderung schützen. Andere Produkte fahren weit größere Geschütze auf. Eines davon ist CodeVeil. Dieses Tool bietet nicht nur Obfuscating-Mechanismen, sondern verschlüsselt zusätzlich auch MSIL. Weiters werden entschlüsselte Informationen nicht im selben Speicherbereich der Assembly geladen, wodurch eine Speicher-Dump erheblich erschwert wird.

Es gibt also durchaus Mechanismen, um sich bestmöglich zu schützen. Eine 100%ige Garantie wird es allerdings nie geben. Man kann also immer nur versuchen, einen Schritt vor den bösen Jungs zu sein bzw. es ihnen so schwer zu machen, dass die Attraktivität, die Software zu manipulieren, möglichst gering ist.

Wichtig ist zusätzlich, dass man sich als Entwickler über die Möglichkeiten der Angreifer informiert. Einen interessanten Einstieg bietet hier der Artikel Assembly Manipulation and C#/VB.NET Code Injection.

PS: Viele Tools unterstützen in den aktuellen Versionen weder WPF noch Silverlight. Hier bleibt zu hoffen, dass die Hersteller Mittel und Wege finden, uns Entwickler auch bei diesen Technologien mit Security zu unterstützen.


  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Docking wie Visual Studio

19.12.08 - .NET, WPF
Beitrag von Norbert Eder
 Wer ein richtiges Docking abseits des DockPanels benötigt, der sei auf AvalonDock hingewiesen. Damit lassen sich innerhalb kürzester Zeit Docking-Szenarien á la Visual Studio realisieren.

Hier ein XAML-Markup zur Demonstration:
<Grid>
    <ad:DockingManager x:Name="dockManager">
        <ad:ResizingPanel Orientation="Vertical">
            <ad:ResizingPanel Orientation="Horizontal" >
                <ad:DockablePane>
                    <ad:DockableContent Title="Beschreibung">
                        <TextBox />
                    </ad:DockableContent>
                </ad:DockablePane>
                <ad:DocumentPane x:Name="documentsHost">
                    <ad:DockableContent Title="Dokument 1">
                        <RichTextBox/>
                    </ad:DockableContent>
                    <ad:DockableContent Title="Dokument 2">
                        <RichTextBox/>
                    </ad:DockableContent>
                </ad:DocumentPane>
            </ad:ResizingPanel>
            <ad:DockablePane>
                <ad:DockableContent Title="Ausgabe">
                    <TextBox />
                </ad:DockableContent>
            </ad:DockablePane>
        </ad:ResizingPanel>
    </ad:DockingManager>
</Grid>

Das Ergebnis läßt sich sehen:



Und hier nun im Docking-Modus:



AvalonDock kann unter anderem auch per MSI-Paket installiert werden. In der Toolbox finden sich anschließend alle bereitgestellten Steuerelemente. Eine sehr nette und hilfreiche Sache. Es empfiehlt sich, einen genaueren Blick auf dieses Projekt zu werfen.

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Ich werde beklaut!

18.12.08 - .NET, WPF
Beitrag von Norbert Eder
 Das trifft wohl nicht oft zu. Aber sehr viele Softwareunternehmen haben Angst, beklaut zu werden. Beklaut hinsichtlich Ideen, Sourcecode oder Ähnlichem.

Fast täglich werde ich von unterschiedlichsten Personen darauf angesprochen - meist hinsichtlich WPF - wie man sich effektiv davor schützen kann. Sind erst mal die grundlegenden Informationen bezogen, stellt sich schnell heraus, dass in den meisten Fällen bereits Tools (Obfuscator etc.) eingesetzt werden und das eigentliche Problem ganz wo anders liegt - nämlich in der immerwährenden Angst.

Natürlich, seit es Software gibt, wurde von der Konkurrenz abgekupfert und geklaut. Das wird wohl auch noch so bleiben und kann wohl nie gänzlich ausgeschlossen werden.

Die mir gestellten Fragen bezogen sich meist auf einfache Dinge: Styles, Templates. Und ja, diese Informationen können sehr einfach aus einer Assembly bezogen werden. Alles was man dazu braucht ist der .NET Reflector und das Add-In Baml-Viewer.

Sehen wir uns dies anhand eines Beispiels an. Gegeben sei eine kleine Anwendung, die einen einzigen Button enthält. In der App.xaml wird global für alle Buttons ein Style definiert:
<Style TargetType="Button">
    <Setter Property="FontFamily" Value="Arial"/>
    <Setter Property="FontSize" Value="22"/>
    <Setter Property="BorderThickness" Value="2"/>
    <Setter Property="Background">
        <Setter.Value>
            <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                <GradientStop Color="Yellow" Offset="0.0"/>
                <GradientStop Color="Orange" Offset="1.0"/>
            </LinearGradientBrush>
        </Setter.Value>
    </Setter>
</Style>

Nach dem Kompilieren der Anwendung, wird die erstellte Assembly (in diesem Fall die die ausführbare Anwendung) im Reflector geöffnet. Innerhalb der Ressourcen finden sich die generierten Ressourcen für unsere Anwendung. In <i>AssemblyName</i>.g.resources auch die zu BAML kompilierten XAML-Dateien:



Mit installiertem BamlViewer kann nun über das Tools-Menü eben dieser aufgerufen werden. Als Ergebnis werden zwei zusätzliche Bereiche angezeigt. Im ersten werden die enthaltenen Baml-Dateien gezeigt. Bei Klick auf eine dieser Dateien wird das XAML im zweiten Bereich gezeigt:



Damit ist es nun ein Leichtes, um an fremde Styles, Templates und dergleichen heran zu kommen. Dies ändert sich auch nicht, wenn beispielsweise ein Tool á la den Dotfuscator verwendet wird. Das XAML bleibt vor diversen Änderungen unberührt. Zudem sollte mit Obfuscatoren und XAML besonders vorsichtig umgegangen werden. Typen, die von XAML aus benötigt werden, sollten beispielsweise nicht umbenannt werden, da diese anschließend nicht mehr gefunden werden können. Lediglich {smartassembly} bietet kleine Unterstützungen in diese Richtung an.

Generell ist anzumerken, dass es zwar sicherlich einige geben wird, die sich hart erarbeitete Styles von anderen "besorgen" werden. Der Punkt ist aber weiterhin die Businesslogik. Diese entsteht oft in Mannmonaten bzw. -jahren und kann nicht so einfach analysiert werden. Im der dafür notwendigen Zeit ist der Hersteller ein gutes Stück weiter und der Erfolg des Reengineerings hält sich somit in Grenzen.

Es verhält sich also ähnlich zu Websites: Auch hier können Styles und die notwendigen Images sehr schnell bezogen werden - die rechtlichen Konsequenzen inklusive. Das Layout macht aber noch keine Anwendung ...

  2 Kommentare - 878 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


UPDATE: WPF-Blogger

17.12.08 - .NET, WPF
Beitrag von Norbert Eder
  Wie bereits angekündigt wird WPF-Blogger in der nächsten Zeit um zusätzliche Features erweitert.

Seit gestern Abend steht die RSS-Feed-Funktionalität zur Verfügung. Je nach Geschmack kann der gesamte Feed bezogen werden (dieser inkludiert die Feeds aus allen Sprachen) und/oder die jeweiligen Sprach-Feeds.

Weitere Features und Verbesserungen folgen demnächst!
  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL



Zurück Weiter