C#_Blog_3.0

Drag and Drop & IStream mit C# - Unmöglich? Jul 19

Ich arbeite bei meinem Ferienjob gerade an den Drag & Drop Funktionen unserer Software, um den Austausch von Daten mit dem Windows Explorer und anderen Programmen zu ermöglichen. In unserem speziellen Fall liegen die Daten aber in einer Datenbank, beim Drag and Drop von der Anwendung zum Windows Explorer können die Daten also erst beim Drop an den Explorer übergeben. Das nennt sich "Delayed Rendering" und ist mit C++ ohne viel Aufwand möglich. Mit C# scheint das ganze leider unmöglich zu sein, es gibt zwar mehrere Artikel auf Codeproject.com, nur wird leider bei keinem ein IStream verwendet, weswegen der Explorer ab ca. 20 MB Dateigröße Speicherprobleme bekommt.

Verkaufe mein HTC S730 Apr 26



Ich verkaufe mein HTC S730 auf eBay. Das Gerät hat noch 1 Jahr Restgarantie und kommt orginialverpackt mit Zubehör. Jetzt mitsteigern . Link: HTC S730 auf eBay

//Nachtrag: Nochmals eingestellt, mit Startpreis von 1 €.

dotnetpro 04/09: Programmerweiterungen vom Baum pflücken Mar 23


Die aktuelle Ausgabe der .NET Fachzeitschrift dotnetpro enthält einen von mir geschriebenen Artikel über die Kernbibliothek von SharpDevelop. Diese ermöglicht hochgradig erweiterbare Programme und fördert außerdem eine saubere Programmarchitektur.

Der Artikel wurde auf der dotnetpro Website zusätzlich als kostenloser Online Artikel veröffentlicht.

// 30.03.08: Link korrigiert

Gitarre - Links für Einsteiger Jan 25

Da ich vor einigen Wochen mit dem Gitarre spielen angefangen habe, bin ich auf ein paar nützliche Seiten im Internet gestoßen:

http://www.911tabs.com - Tabs zu fast jedem Song, meist sogar in mehreren Varianten
Workshop Enter Sandman - Guter Workshop zu Metallicas Enter Sandman
Justinguitar.com - Kostenlose (englische) Gitarrenvideos

ResGen.exe im PostBuild Ereignis / Fehler 9009 Sep 15

Ich habe lange rumprobieren müssen, bis ich endlich die Lösung gefunden habe: (Das .NET SDK 2.0 muss installiert sein)

"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\ResGen.exe" $(OutDir)StringResources.resx
del $(OutDir)StringResources.resx

Visual Studio 2008 Service Pack 1 - Neuerungen Aug 12

Microsoft hat vor ein paar Tagen die finale Version von Visual Studio 2008 Service Pack 1 veröffentlicht. Für die Express Editionen ist kein seperater Download möglich, man muss das Programm neu installieren. (Download wie gewohnt hier)

Die Änderungen sind für ein Service Pack wesentlich umfangreicher als erwartet. So wurde zum Beispiel der Code Editor weiter verbessert, so dass nun die meisten Fehler bereits vor dem Kompilieren angezeigt werden. (Das gab es vorher auch schon, allerdings wurde hier beim Service Pack 1 nochmal deutlich nachgelegt).

WPF hat einige Performance Optimierungen erhalten, und es gibt viele Neuerungen. Man kann DirectX Anwendungen direkt in WPF hosten und das DataBinding wurde ebenfalls verbessert. Auch der WPF Designer von Visual Studio wurde erweitert.

Auch für Windows Forms sind einige neue (kleine) Controls hinzugekommen.

Es gibt eine neue Variante des .NET Frameworks, die nur die am häufigsten verwendeten Assemblys enthält und wesentlich kleiner in der Downloadgröße ist.

ClickOnce funktioniert jetzt auch im Firefox, kann Dateierweiterungen registrieren und hat noch einige weitere nützliche Änderungen erfahren.

Mit dem Service Pack 1 wurde VS auch für einige neue Technologien wie dem SQL Server 2008 und dem ADO .net Entity Framwork vorbereitet.

Das war nur ein Bruchteil der gesamten Änderungen (Auch für Webentwickler hat sich einiges getan). Alle Änderungen findet man sehr gut beschrieben in ScottGus Blog.

Video-Treiber für neuere HTC Geräte Jul 29

Ein Problem, dass alle neueren (aber nicht die ganz neuen) Geräte von HTC, wie das Tytn 2 und mein S730 betrifft: Man hat bei HTC offensichtlich mit dem Video-Treibern geschlampt. Das merkt man vor allem beim Surfen und bei 3D Anwendungen wie TomTom.

Inzwischen gibt es auf http://www.htcclassaction.org inoffizielle Treiber, bisher allerdings nur für das Tytn2 (dort sind die Probleme auch wesentlich schlimmer als auf dem S730).

Windows Mobile 6.1 Apr 16

Lange hat Microsoft nichts zum Thema Windows Mobile 6.1 gesagt, auch nicht als schon lange inoffizielle ROMs im Umlauf waren und Hersteller erste Geräte damit präsentiert haben. Inzwischen ist es offiziell, und ich hab es auf meinem S730 auch schon installiert. Inwieweit im inoffiziellen Versionen der endgültigen Fassung entsprechen weiß ich nicht, allerdings funktioniert es bei mir sehr gut.

Windows Mobile bringt einen neuen Startbildschirm, Copy and Paste, Threaded SMS, Verbesserungen im IE und einige andere Dinge mit. Alles in allem keine große Sache, aber doch nice-to-have.

ASP .net Websiteverwaltungs Tool funktioniert nicht Jan 31

Ein Problem, mit dem ich schon kämpfe seit ich mit ASP .net arbeite: Das ASP .net Websiteverwaltungs-Tool. Mithilfe dieses kleinen Werkzeugs kann man komfortabel Benutzer anlegen, Rollen festlegen, etc. Allerdings streikte das Tool mir in den meisten Fällen mit der Fehlermeldung.

"Es ist ein Fehler aufgetreten. Kehren Sie zur vorhergehenden Seite zurück, und versuchen Sie es erneut."

Nach einer kleinen Internet Recherche hab ich den Fehler schließlich gefunden: Da wohl jemand bei Microsoft verdammt schlampig programmiert, denn offensichtlich reagiert das Tool extrem empfindlich auf Sonderzeichen im Pfad.  In meinem Fall war das Projekt in D:\Programmieren\C#\Websites gespeichert und das Tool kam nicht mit der Raute zurecht.

Achja, der Fehler wurde auch mit VS 2008 immer noch nicht behoben...

Verschachtelte Repeater mit LinqDataSource Jan 30

Unter ASP .net 2.0 ist es ja nur mit Umwegen möglich zwei Repeater zu verschachteln, wenn der zweite Repeater die Datenquelle per Eval() bekommen soll. Falls die Datenbindung nicht abgekapselt ist, konnte man auch DataBinder.Eval verwenden.

Nachdem ich mich in letzter Zeit mit LINQ beschäftigt habe und ziemlich begeistert bin, kämpfte ich heute den ganzen Nachmittag mit einem nervigen Problem herum: Die verknüpfte Tabelle lies sich auch mit LINQ nicht per Repeater anzeigen, auch nicht per DataBinder.Eval()

Schließlich fand ich über Mike Bosch die Lösung: Man muss in der LinqDataSource EnableUpdate auf true setzen!

Beispiel: Eine Postliste, die zuerst die Postdetails anzeigt und dann alle verknüpften Tags ausgibt.

<asp:LinqDataSource ID="BlogDataSource" runat="server" ContextTypeName="CmsDb" TableName="BlogPosts" AutoPage="true" OrderBy="PostId DESC" EnableUpdate="true" />
<asp:ListView runat="server" ID="PostList" DataSourceID="BlogDataSource">
    <LayoutTemplate>
        <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
    </LayoutTemplate>
    <ItemTemplate>
        <h2>
            <%#Eval("Title") %>
        </h2>
        <h3>
            <%#Eval("PostDate") %>
        </h3>
        <%# Eval("Text") %>
        <p>
            <asp:Repeater ID="nestedRepeater" runat="server" DataSource='<%# Eval("Tags") %>'>
                <ItemTemplate>
                    <%# Eval("Name") %></ItemTemplate>
            </asp:Repeater>
        </p>
    </ItemTemplate>
</asp:ListView>