Feed Icon
.NET User Group Leipzig

Wie wir auf dem Vortrag von Lori Grosland und Oliver Scheer in Leipzig zu Rich Interactive Applications festgestellt haben, wird doch des Öfteren mal Microsoft Surface als "Microsoft Sir Face" ausgesprochen. Natural Speakers wie Lori zieht es da die Schuhe aus, /wink/ an Lori. Wer jetzt verwirrt ist, wie die korrekte Aussprache ist, kann sich hier die Aussprache anhören. Ach ja, eine Frage aus dem Auditorium zielte auf Schaltflächen, möglichst standardkonforme, ab. Oliver stellte es so dar: "Jetzt gibt es Surface, wer was mit grauen Schaltflächen tut, hat Rich Interactive Applications nicht verstanden" und zwinkerte mit den Augen...

Lori Grosland beim Vortrag Rich Interactive Applications Oliver Scheer beim Vortrag Rich Interactive Applications

Fazit: Den Teilnehmern tränten in der Regel die Augen, was Microsoft hier mit Silverlight geschafft hat! Lori und Oliver haben eine Spitzenbewertung ihres Vortrages erhalten und nicht nur deswegen sind wir danach im Bayerischen Bahnhof¹ mit allen denen Essen gegangen, die mit wollten und Zeit hatten. Das wurde natürlich nicht vorher verraten und war ein Dankeschön der .NET User Group Leipzig an das .NET Summercamp 2007-Team und gleichzeitig die nachträgliche Feier des Geburtstages dieser.

Essen im Bayerischen Bahnhof für die Teilnehmer und das .NET Summercamp 2007 Team Essen im Bayerischen Bahnhof für die Teilnehmer und das .NET Summercamp 2007 Team

Na Frank, da träumen zwei von Urlaub... :]
Frank ist übrigens seit Am I getting old...finally in mancher Kleidung nicht wiederzuerkennen... ;)²

Lori und Oliver träumen von Urlaub  das ist Frank Fischer...

¹ In Leipzig gibt es gleich je den ältesten und den größten & schönsten Kopfbahnhof Europas. :P
² so gesehen auf dem MVP Open Day

Aktualisierung: Mittlerweile sind neuere Images in die MSDN AA eingestellt worden, die auch ein Upgrade auf die Ultimate-Variante erlauben. Die Ultimate-Variante selber ist weiterhin nicht über die MSDN AA verfügbar. Ein Upgrade ist nun aber über die Anytime Upgrade- oder System Builder-Datenträger möglich.
---

Ein persönliches Ahh!-Erlebnis für mich war Windows Anytime Upgrade. Die Idee von Windows Anytime Upgrade an sich ist gut. Mit Windows Anytime Upgrade kann von einer Version mit weniger Funktionen von Windows Vista auf eine Version mit mehr Funktionen geupgradet werden.

Die Rahmenbedingungen für diesen Artikel sehen wie folgt aus

  • Windows Vista per MSDN Academic Alliance (MSDN AA)
  • Windows Vista Ultimate, Anytime Upgrade Datenträger (also kein Express Upgrade etc.)
    oder
    Windows Vista Ultimate, Vollversion

Windows Anytime Upgrade funktioniert nicht bei der MSDN AAJetzt kommt der Haken: Ein Ugrade von Windows Vista auf Windows Vista Ultimate ist nicht möglich, wenn das erstere aus der MSDN AA bezogen wurde. Leider steht das weder auf den Webseiten zu Windows Anytime Upgrade bzw. bei Produktbeschreibungen bei Händlern wie Amazon. Das ist damit schon eine gemeine Falle für alle die, die nicht wie ich einige Vollversionen von Windows Vista Ultimate haben, sondern nur den Anytime Ugrade Datenträger kaufen, der billiger ist.¹ Um eine Neuinstallation kommt man aber auch dann nicht umher.

Ich hatte das schon vor vielen Monaten weitergeleitet und ja, Feedback hilft, mittlerweile ist auch die Ultimate Variante per MSDN AA erhältlich. Danke unter anderem an Kay Giza und Kathrin Fromm!²

Quelle der Abbildung: microsoft.com, modifziert von Torsten Weber

¹ für Systembuilder-Varianten gilt es entsprechend
² Jetzt fehlen dort nur noch die entsprechenden Product Keys.

Heute habe ich im Blog von Damir Tomičić gelesen:

... plant derweil eine der größten Akquisitionen in der Geschichte der sozialen Netze. Als Ziel gilt das totale soziale Netzwerk OpenMyFaceVZ ...

Quelle: tomicic.de, Das Ultimative Soziale Netzwerk in Deutschland

Ich finde persönlich, "das totale soziale Netzwerk OpenMyFaceVZ" klingt nach Marketing-bla bla. Immer schon gab es irgendwie, irgendwo eine demnächst erscheinende und auch weltbesserende Lösung, die irgendeine Problemstellung mit irgendwelchen Worthülsen adressiert. Doch das was dann wirklich dann entstanden ist, war in der Regel heiße Luft oder? Mir sagte irgendwann mal ein Manager, einer auf der originären Führungsebene, ein alter Hase in der Firmengründung, über geniale Ideen spricht man nicht, man setzt sie so schnell wie möglich um. Vielleicht hat sich dieses ja mit dem viralem Marketing und der Bewertung von Nutzerzahlen geändert? Ankündigen, ankündigen und ankündigen als neue Masche?

O. k., was ist OpenMyFaceVZ? Ein "totales Social Network!". Herrlich, Logo wieder klein geschrieben, der Titel groß und DEnglisch sowieso. Ich persönliche finde so etwas unprofessionell. Was noch fehlt, ist ein "VCs welcome!" als kleine Hommage an "Beta" jeder Web 2.0 Anwendung, sagt mir mein Gefühl.

Anmeldung bei OpenMyFaceVZ

Aber ich möchte ja mehr Informationen und ahne, ich rieche ja die Programmierfehler¹ förmlich, dass da E-Mail-Adressen² in der Form "" eingegeben werden können.

Anmeldung bei OpenMyFaceVZ

Tatsächlich erhalte ich die Bestätigung für meine E-Mail-Adresse "". Ja, dieses wird echt superspannend, wie ich so Informationen erhalten soll.

Anmeldung bei OpenMyFaceVZ

In Zeiten, in denen Microsoft den Wert von Facebook auf so 15 Milliarden taxiert, in dem ein 1,6%-Anteil an der Firma für 240 Million Dollar erworben wird, in denen gleichzeitig Steve Ballmer zu Bedenken gibt, dass solche Ansätze eine gewisse Standhaftigkeit haben aber auch Modeerscheinungen sind, in Zeiten, in denen die sonst gewohnt bissig argumentierende Cordula Lochmann schreibt

... Hören die Betreiber solcher Communities auf ihre Mitglieder und liefern ihnen die gewünschte Funktionalität, ist der Rest ein Selbstläufer (Hervorhebung im Original nicht vorhanden, der Verf.). Und es bedarf keinen mehreren 100.000 Zeilen Code oder den besten Oberflächendesignern der Welt, um ein Netzwerk groß zu machen. ...

Quelle: konrad-zuse-eins.de, Microsoft und die Social Communities

ganz im Stil der ersten Dotcom-Blase, funktionierende Geschäftsmodelle werden irgendwann gefunden³, in Zeiten, in denen eBay zugibt, dass der taxierte Unternehmenswert von Skype beim Kauf von eben diesem doch etwas zu hoch war, in Zeiten, in denen die Börse volatil ist, in Zeiten, in denen sich die ganz großen Firmen sich auf hoher Ebene durch ihre große Marktmacht und Kapitalwert streiten, sollten wir einiges an Obacht geben, ob das nicht die nächste Blase wird oder schon ist – Dotcom 2.0.4

Quelle aller Abbildungen: openmyfacevz.com

¹ siehe z. B. Berechnungen mit Minianwendung Währungsrechner oder Probleme mit Cache von dasBlog behoben – Danke Alex!
² übrigens, die einzig korrekte Schreibweise im Deutschen ist "E-Mail-Adresse"
³ siehe auch StudiVZ tut sich im Ausland schwer
4 o. k. aufgrund von Nachfragen..., hier hier Auflösung: OpenMyFaceVZ, nicht so ernst nehmen ;)
  whois.net zeigt auf trnd.com

Von einem Freund erhielt ich vor einigen Wochen die Problemstellung geschildert, dass dieser Regeln in Outlook ausführen möchte. Genauer:

... auf der Party¹ hatten wir über ein Makro gesprochen, das im Outlook alle Regeln ausführt. Also nur durch Anklicken eines Symbols den Posteingang aufräumt, sofern dort entsprechende Regeln vorhanden. Es wäre cool, wenn du das hinbekommen könntest. ...

Das sind zwei Anforderungen:

  • die Regeln von Outlook sollen per VBA angesteuert werden können
  • die Regeln sollen pro Ordner ausgeführt werden können, also nicht nur auf den Posteingang

Unter den Vorgängerversionen von Outlook 2007 funktioniert dieses nicht, weil das Objektmodell von Outlook dort keinen Zugriff auf die Regeln bzw. den Regelassistenten unterstützt. Hier könnte man nur, ähnlich der Lösung bei einer automatischen Synchronisation über ActiveSync per Bluetooth über phoneAlarm, Nachrichten schicken. Doch Robert hat die 2007er Version, so dass alles für eine perfekte Lösung vorhanden ist. Scott Hanselman hat gestern gezeigt, wie leicht Outlook 2007 automatisiert werden kann. Scott hat nur zwei Zeilen Anwendungscode benötigt und auch bei dieser Aufgabenstellung werden es nur unwesentlich mehr, wie ich heute beim Lösen der Problemstellung festgestellt habe.

Damit Makros unter Outlook funktionieren, muss die Sicherheit etwas weniger restriktiv gesetzt sein. Das findet sich unter Extras, Makro, Sicherheit, Makrosicherheit. Dort ist der Wert Warnungen für alle Makros bzw. Keine Sicherheitsprüfung für Makros einzustellen.

Outlook 2007 – Alle Regeln per Makro ausführen, Makrosicherheit festlegen

Wenn nicht, erscheint bei der Ausführung von unsignierten Makros eine Fehlermeldung.

Outlook 2007 – Fehlermeldung, wenn Makros deaktiviert sind

Wenn der Wert Warnungen für alle Makros gewählt wird, erscheint dann eine Warnung beim Öffnen der Makros über Extra, Makros. Makros bleiben über die Symbolleiste aber deaktiviert. Demzufolge ist dann nur der Wert Keine Sicherheitsüberprüfung für Makros sinnvoll.

Makro_Sicherheitshinweis

Das Makro wird dann über Extras, Makro, Makros eingefügt. Dazu muss zuerst ein Name bei Makroname eingegeben und dann auf Erstellen geklickt werden. Als Name ist z. B. RunAllRules selbstsprechend. Im dem darauffolgenden Fenster ist zuerst der folgende Anwendungscode einzufügen und danach dieses Fenster wieder zu schließen (Sub RunAllRules() und End Sub wird automatisch eingefügt).

Sub RunAllRules()
    Dim outlookStore As Outlook.Store
    Dim allRules As Outlook.Rules
    Dim actualRule As Outlook.Rule
    
    Set outlookStore = Application.Session.DefaultStore
    Set allRules = outlookStore.GetRules
    
    For Each actualRule In allRules
        If actualRule.RuleType = olRuleReceive And actualRule.Enabled Then
            actualRule.Execute ShowProgress:=True
        End If
    Next
    
    Set outlookStore = Nothing
    Set allRules = Nothing
    Set actualRule = Nothing
End Sub

Um dann das Makro auch bequem aufrufen zu können, muss in eine freie Fläche einer Symbolleiste mit der rechten Maustaste geklickt und dann Anpassen gewählt werden. Dort ist dann in Kategorien der Wert Makros und bei Befehlen Standard.RunAlles auszuwählen. Dieses kann danach mit der linken Maustaste in irgendeine Symbolleiste gezogen werden.

Outlook 2007 – Alle Regeln per Makro ausführen, Verknüpfung Makro und Symbol

Es braucht nur noch ein Klick mit der rechten Maustaste auf das Symbol Standard.RunAllRules und schon kann über Schaltflächensymbol ändern ein sinnvolleres Symbol ausgewählt werden. Ein erneuter Klick mit der rechten Maustaste darauf und anschließender Auswahl Standard führt dazu, das dann auch nur das gewählte Symbol angezeigt wird und nicht noch Text. Dann benötigt es nur noch den Klick auf Schließen und schon steht das Makro komfortabel zur Verfügung, das alle definierten Regeln ausführt.

Outlook 2007 – Alle Regeln per Makro ausführen, Verknüpfung Makro und Symbol

Wem die angezeigte Verlaufsbar nicht gefällt, ändert

  • actualRule.Execute ShowProgress:=True

einfach in

  • actualRule.Execute

und schon wird nichts mehr angezeigt.

Der obige Anwendungscode führt die definierten Regeln immer gegen den Ordner Posteingang aus. Die Methode Execute einer Regel erlaubt aber Parameter. Sie lautet

  • rule.Execute(ShowProgress, Folder, IncludeSubfolders,
                 RuleExecuteOption)

Für Regel auf den aktuell gewählten Ordner muss dann nur noch der Aufruf dieser Methode im obigen Anwendungcode anpasst und der aktuelle Ordner als Parameter mit übergeben werden. Siehe dazu auch hier.

¹ Ja, so was wird auf einer Party gefragt... ;)

Auf der BASTA! 2007 wurde mein Name genannt, wurde mir erzählt. Uhhh, dachte ich, bestimmt, weil ein paar Dinge auf dem Weg zur BASTA! passiert sind. Nein, das ist falsch gedacht. Vielmehr, weil ich im Advisory Board mitgewirkt habe. Auch für die nächste BASTA! 2008 bin ich wieder dabei.

Was macht man in einem Advisory Board? Man ist vor allem eines, nämlich sehr gemein. Gemein zu den vielen Kontakten, die man kennt und deren Vorschläge bewertet werden. Manche Sprecher reichen nur einen einzigen Vorschlag ein, andere dagegen 15. Insgesamt sind es doch schon eine Menge und hier ist es dann so: Nur der beste Content für den Teilnehmer zählt und da tut es manchmal einem sehr Leid, einfach nein sagen zu müssen zu einem Vorschlag. Der Prozess wird wegen der Menge der Vorschläge mehrmals durchlaufen und irgendwann stehen die Themen der nächsten BASTA! 2008 fest.

Wird LINQ dabei sein? Ist ja anzunehmen mit .NET 3.5 oder? Aber das Microsoft-Ökosystem bietet viel mehr an Neuem. Bald geht es los und es wird ein Stück Arbeit, aber ich bin sehr gespannt!¹

¹ Danke ans Team, dass ich wieder im Advisory Board dabei bin!

Unter ihrem Portal unter bauarbeiten.bahn.de bot die Deutsche Bahn bisher Informationen zur den baubedingten Fahrplanänderungen z. B. per Newsletter. Sogar gleich die PDF-Datei mit geändertem Fahrplan kann man sich anhängen lassen. Seit heute bietet die Deutsche Bahn diesen Dienst auch mobil an. Mobil heißt dabei, dass die Darstellung für mobile Geräte optimiert ist, denn die Webseiten konnten bisher natürlich "auch so" mobil angezeigt werden.

Bundesrepublik Deutschland auf dem Portal der Deutschen Bahn Für mobile Geräte ist die URL: bauarbeiten.bahn.de/mobile.
Für alle, die kein mobiles Gerät haben oder es vorher testen wollen, hat die Deutsche Bahn es etwas "kompliziert" gemacht. Es muss zuerst auf eines der Bundesländer geklickt werden und dann findet sich auf der rechten Seite im Menü Informationsquellen der Eintrag Mobile. Es wäre doch besser gleich auf der Portalseite positioniert gewesen oder?

Ein Klick darauf ermöglicht dann die Betrachtung durch, mit den Worten der Deutschen Bahn, einen Online-Simulator. Es besteht auch die Möglichkeit, sich den Link per SMS zuschicken zu lassen. Das Fazit: Die Bahn wird mobiler. Ich hätte übrigens auch gleich einen Vorschlag: Aktuelle Fahrplanänderungen sollte man sich auch per SMS abonnieren können.

baubedingte Fahrplanänderungen – der Online-Simulator zeigt sie an

Was gibt es noch für mobiles von der Deutschen Bahn? Z. B.:

Mehr gibt es noch hier.

Aktualisierung: Dem Entwickler von phoneAlarm hat dieser Blogeintrag bzw. Vorschlag gefallen. In Version 2 soll diese Funktionalität in phoneAlarm enthalten sein. Ein SDK habe ich auch gleich noch vorgeschlagen... :)
---

Leider unterstützt Windows Mobile von Haus aus keine Profile. Profile meint, dass z. B. während der Zeit von 23 Uhr - 6 Uhr ein mobiles Gerät weder auf Anrufe noch auf SMS bzw. MMS durch irgendetwas an Tönen aufmerksam machen soll. Es soll also still sein und GSM könnte während dieser Zeit gleich auch noch deaktiviert sein. Am nächsten Morgen soll dann automatisch alles zurückgesetzt und GSM wieder aktiviert werden. "Normalerweise" müsste bei Windows Mobile hier wieder die PIN eingegeben werden, aber ist das eine gute User Experience?

Eine Anwendung, die Profile unterstützt und das sogar gut, ist phoneAlarm von pocketMax. Sehr gut deswegen, weil sich Profile mit Standorten verknüpfen lassen. Verlässt man z. B. den Einflussbereich von Funkzellen, die Zuhause in der Nähe sind, könnte automatisch auf das Profil Geschäftlich geschaltet werden. Erreicht man die Funkzellen Zuhause wieder, dagegen zurück aufs Profil Zuhause. Unabhängig davon können Profile automatisch geschaltet werden, z. B. wenn im Terminkalender ein Termin einer bestimmten Kategorie steht. Ist die Kategorie beispielweise Besprechung wird eben auf Stumm aber mit Vibrationsalarm während dieses Zeitraumes geschaltet. phoneAlarm bietet unglaublich viele Variationen durch vielfältige Einstellungsmöglichkeiten. Das ist User Experience! Wer seinen Terminkalender pflegt, muss nie wieder darüber nachdenken, welches Profil gerade am besten an sein sollte. Die Profile lassen sich auch manuell wählen und zusätzlich dazu der Ton abschalten mittels "Ton aus bis".

Funktionsweise von phoneAlarm

Microsoft – change the mobile world or go home! Für mich persönlich ist bei mobilen Geräten schon nervig, dass eine Synchronisation in Abhängigkeit vom Standort nicht von Haus geht. Lösungen für Kunden habe ich schon entwickelt, durchaus auch sehr komplexe, aber etwas Einfaches für die Endanwender fehlt. O. k., we change the mobile world or go home!; und so habe ich eben etwas an Anwendungscode geschrieben, der phoneAlarm hier ergänzt¹.

phoneAlarm kann also in Abhängigkeit von z. B. einer Funkzelle ein phoneAlarm aktiviert BluetoothProfil starten. Es startet bei mir, wenn ich Zuhause bin und 22 Uhr ist, dass Profil Sync an.  Das Profil aktiviert Bluetooth und ActiveSync kann es auch starten. Alles gut, könnte man denken, doch ahh, dass mobile ActiveSync kann nicht über Parameter gesteuert werden! Es gibt zwar einiges an über Suchmaschinen erreichbaren Tipps, aber die Synchronisation starten per ActiveSync über Bluetooth mittels ein paar an Parametern geht scheinbar nicht. Einer dieser Tipps ist z. B. die Ergänzung der Verknüpfung zu ActiveSync:

repllog.exe /remote

Doch es funktioniert nicht und so muss etwas Anwendungscode her. phoneAlarm startet dann die zu entwickelnde Anwendung und nicht mehr direkt ActiveSync. Dieses muss also von der zu entwickelnden Anwendung übernommen werden, welche auch nach dem Start von ActiveSync die Nachricht an dieses schickt: Über Bluetooth verbinden.

Nach 10 Minuten wird bei mir auf das Profil Sync aus geschaltet phoneAlarm aktiviert zwar Bluetooth und kann ActiveSync starten, aber das reicht nichtund damit Bluetooth wieder abgeschaltet und ActiveSync beendet, was auch über phoneAlarm erledigt werden kann. Um 23 Uhr wird dann auf das Profil Nacht geschaltet und der MDA Touch schweigt bis zum nächsten Morgen.  

Wie funktioniert das Ganze? Per P/Invoke. ActiveSync findet sich auf einem mobilen Gerät im Verzeichnis \Windows als Datei repllog.exe {1}. Diese Datei wird verwendet, um ActiveSync zu starten {2}. Hier wird etwa fünf Sekunden gewartet und an dieser Stelle könnte der Anwendungscode noch optimiert werden, so dass überprüft wird, ob ActiveSync gestartet wurde. Für den Normalfall sollte es aber so reichen {3}.

Jetzt muss noch nach das Fensterhandle von ActiveSync ermittelt {4} und eine entsprechende Nachricht an dieses geschickt werden {5}. Die Parameter kommen dabei nicht von ungefähr, sondern müssen, da wie sooft nicht dokumentiert, mit Werkzeugen dafür ermittelt werden. Wie das funktioniert, ist aber nicht Teil dieses Artikels. ActiveSync kann übrigens mit einer Nachricht auch beendet werden {6}. Doch dieses muss gar nicht verwendet werden. Es reicht, es entweder über phoneAlarm über Programm schließen zu beenden oder an zu lassen. Über das Profil Zuhause², wird Bluetooth deaktiviert und damit so auch das mobile Gerät "ausgedockt". ActiveSync kann ruhig an bleiben, es läuft im Hintergrund und tut nichts. Das ist auch das Standardverhalten, auch wenn mobile Geräte wie der HTC Touch neuerdings erlauben, die mobilen Anwendungen direkt immer zu beenden, anstatt sie in den Hintergrund mit (X) zu schicken.

Unter Programm ausführen muss also nur die mobile Anwendung ActiveSyncBT eingetragen werden:

\programme\activesyncbt\activesyncbt.exe ActiveSyncBluetoothConnect

Das funktioniert super so. Mit den Entwicklern von phoneAlarm stehe ich jedenfalls auch in Kontakt. Mal schauen, vielleicht wird es in der nächsten Version direkt in phone Alarm eingebaut!? :)

using System;
using System.Diagnostics;
using System.Threading;
using System.Runtime.InteropServices;

namespace ActiveSyncBT
{
    class Program
    {
        const string ACTIVESYNC = @"\windows\repllog.exe"; // {1}
        const uint WM_COMMAND = 0x00000111;

        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                return;
            }

            if (string.IsNullOrEmpty(args[0]))
            {
                return;
            }

            if (args[0] == "ActiveSyncBluetoothConnect")
            {
                ActiveSyncBluetoothConnect();
            }

            if (args[0] == "ActiveSyncBluetoothDisconnect")
            {
                ActiveSyncBluetoothDisconnect();
            }
        }

        private static void ActiveSyncBluetoothConnect()
        {
            StartActiveSync(); // {2}
            Thread.Sleep(5000); // {3}
            IntPtr hwnd = FindWindow("ActiveSync", null); // {4}
            int wParamStatus = 42020;
            int lParamStatus = 2080867584;
            SendMessage(hwnd, WM_COMMAND, wParamStatus, lParamStatus); // {5}
        }

        private static void ActiveSyncBluetoothDisconnect()
        {
            IntPtr hwnd = FindWindow("ActiveSync", null);
            int wParamStatus = 42020;
            int lParamStatus = 2080866256;
            SendMessage(hwnd, WM_COMMAND, wParamStatus, lParamStatus); // {6}
        }

        [DllImport("coredll.dll")]
        public static extern IntPtr FindWindow(string className, string windowName); 

        [DllImport("coredll.dll")]
        public static extern int SendMessage(
           IntPtr hWnd, uint WM_COMMAND, int wParamStatus, int lParamStatus); public static void StartActiveSync() { Process ActiveSync = Process.Start(ACTIVESYNC, ""); } } }

using System;
using System.Diagnostics;
using System.Threading;
using System.Runtime.InteropServices;

namespace ActiveSyncBT
{
    class Program
    {
        const string ACTIVESYNC = @"\windows\repllog.exe";
        const uint WM_COMMAND = 0x00000111;

        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                return;
            }

            if (string.IsNullOrEmpty(args[0]))
            {
                return;
            }

            if (args[0] == "ActiveSyncBluetoothConnect")
            {
                ActiveSyncBluetoothConnect();
            }

            if (args[0] == "ActiveSyncBluetoothDisconnect")
            {
                ActiveSyncBluetoothDisconnect();
            }
        }

        private static void ActiveSyncBluetoothConnect()
        {
            StartActiveSync();
            Thread.Sleep(5000);
            IntPtr hwnd = FindWindow("ActiveSync", null);
            int wParamStatus = 42020;
            int lParamStatus = 2080867584;
            SendMessage(hwnd, WM_COMMAND, wParamStatus, lParamStatus);
        }

        private static void ActiveSyncBluetoothDisconnect()
        {
            IntPtr hwnd = FindWindow("ActiveSync", null);
            int wParamStatus = 42020;
            int lParamStatus = 2080866256;
            SendMessage(hwnd, WM_COMMAND, wParamStatus, lParamStatus);
        }

        [DllImport("coredll.dll")]
        public static extern IntPtr FindWindow(string className, string windowName); 

        [DllImport("coredll.dll")]
        public static extern int SendMessage(IntPtr hWnd, uint WM_COMMAND, int wParamStatus, int lParamStatus);

        public static void StartActiveSync()
        {
            Process ActiveSync = Process.Start(ACTIVESYNC, "");
        }
    }
}

¹ Bild "Microsoft - change the world or go home!" im Original entworfen durch Hugh MacLeod von Stormhoek und angepasst von Torsten Weber.
² Nach 10 Minuten um 22:10 Uhr.

ActiveSyncBT.zip (1,77 KB)
ActiveSyncBT_Code.zip (4,18 KB)

In einem Forum hatte ich gerade gelesen (sinngemäß):

... das bei Microsoft immer irgendetwas außer Betrieb ist oder nicht funktioniert...

Auch wenn es leicht emotional getrieben ist, ab und zu habe sogar auch ich diesen Eindruck; auch wenn natürlich gerade Betriebssysteme mit zu der höchsten Komplexitätsstufe zählen. Ich denke, es wird sich nie ganz vermeiden lassen, dass es irgendwann halt mal "knallt" oder Programmierfehler enthalten sind. Wenn z. B. die Modellierung der Tests nicht richtig durchdacht ist, siehe ruhig Berechnungen mit Minianwendung Währungsrechner und dort den Beitrag von Frank, rechnet halt Excel falsch¹.

Seit mittlerweile einer Woche will bei einem Server 2003 das Datum/die Zeit über den Internetzeitserver von Microsoft (time.windows.com und Rest) einfach nicht mehr synchronisiert werden. Auch über welche nicht, die im Intranet stehen. Heute ist Freitag und ich habe keine Lust auf Ereignisprotokoll-blabla und Rest alles durchzuschauen, was hakt. Also Suchmaschinen to the rescue!

Es gibt einen Zeitserver, war ja anzunehmen, von der Physikalisch-Technischen Bundesanstalt. Super.

  • ptbtime1.ptb.de
  • ptbtime2.ptb.de

Eingestellt, auf Jetzt aktualisieren geklickt und boooaaarrrrrrrrrrrr, gleich noch mal probieren, boar, nach sagenhaft nur 1 Sekunde synchronisiert. Da hat der Internetzeitserver von Microsoft erstmal vorgeglüht, auch wenn er andere Zugriffszahlen verkraften muss. Aber dafür gibt es adäquate Infrastrukturen oder? Windows Update verträgt exorbitante Zugriffszahlen auch und darauf ist Microsoft zu Recht stolz. >:->

Im Forum stand zur Physikalisch-Technischen Bundesanstalt

... (Deutsche Wertarbeit) ...

Problem gelöst und Notiz an mich selbst: Torsten Weber ist übrigens auch "Made in Germany". ;)

(weitere Internetzeitserver-Alternativen gibt es hier)

Internetzeitserver für Windows

Internetzeitserver für Windows

Hier steht übrigens, wie das Aktualisierungsintervall geändert wird.

¹ Jetzt werden einige vielleicht sagen: Na ja, ist ja klar! Anzeige != Berechnung. Aber eben sehr wenige Modellierungsansätze unterstützen auch das Kernverständnis. Viel zu oft wird mit UML, Prozessebenen, Komponentenebenen, Ebenen-blabla zu früh operiert. Insofern ist das verständlich und nachvollziehbar, es wurde einfach nicht daran gedacht und nun werden Ansätze für Tests remodelliert. Siehe auch hier.

Champagne Dom PérignonNotiz an mich selbst: Donnerstag, 18.10.2007...
... Projekt Codename Menelaos erfolgreich abgeschlossen.
Mit allen Beteiligten Champagne Dom Pérignon 1996 getrunken.

Jungs, das macht uns so schnell keiner nach. Danke Team!
Jetzt noch schnell nach Frankfurt und München, Codename Trian wartet schon...

Codename Menelaos

Vor einiger Zeit hatte ich Ping Me von MSDN Online angeschaut und Kay einiges Feedback dazu gegeben. Gefallen hat mir damals unter anderem nicht, dass Ping Me doch scheinbar auf einem Server gehostet wurde, der über eine 56K-Leitung angebunden war: Es war einfach nur langsam oder startete manchmal einfach gar nicht. Microsoft, gerade Microsoft Deutschland, nimmt Feedback zum Anlass für Veränderungen. Ein Manager von Microsoft sagte mir irgendwann mal: "Es muss nur genug Feedback immer wieder in die eine Richtung geben." So weit so gut, also schaute ich mir heute das Video, das ich damals für das Feedback verwendet hatte, erneut an. Urteil: Es startet jetzt unmittelbar; super!¹

Aber, halt, war ein Bild von Olaf Grauschmitt damals auch im Video von Henrike drin? Ist es ein Osterei? Olaf, Mitglied bei Brotherhood of DPE, hat seine Sonnenbrille zumindest nur bei seinem Video auf. Sonst hätte es dann schon einen kleinen Hauch von Agent Smith gehabt oder? ;)

Ping Me – Osterei bei Henrike Röse?

Ping Me – Osterei bei Henrike Röse?

Das Video von Henrike gibt es hier, das von Olaf hier.
Die Übersicht gibt es unter www.msdn-online.de/pingme.

¹ Einiges gefällt mir weiterhin nicht wirklich. Z. B., dass bei einem Klick auf vorstehende Links das Fenster des Browsers an die Videos angepasst wird (wenn nur ein Tab im IE geöffnet ist). Ahh...

Oder was ist mit Sonderzeichen? Das habe ich doch sofort gerochen. :)

Henrike Röse anpingen

Übringens, Janas Nachname wird mit dt geschrieben. Kein Wunder, dass der Link zu ihr nicht klappt.
Es heißt doch auch "Ping Me" statt "Ping-Me" oder? Bitte also noch mal alles durchschauen.
Uh, war dann doch eine längere Fußnote... :)

Vor wenigen Tagen hatte ich mit richtige Modellierung – Newsletter abbestellen zu Modellierung meine Gedanken aufgeschrieben. Meiner Meinung nach werden oftmals wichtige betriebswirtschaftliche Gesamtzusammenhänge nicht adressiert, Kernprobleme ebenso nicht bzw. nicht richtig formuliert.

Ein Beispiel, was mich heute zum schmunzeln gebracht hat, ist die Minianwendung der XTOPIA 2007¹.
Ich spürte diesen Programmierfehler schon regelrecht, als ich nach einer E-Mail die Webseite wieder angeschaut habe. Runtergeladen, installiert und hui, da ist er, der Fehler. Immerhin stürzt Windows nicht mehr mit einem Bluescreen (BSoD) ab. :)

Welcher Modellierungsansatz wurde verwendet? Das weiß ich nicht, spielt auch keine so große Rolle. Ich schätze, er hat nicht konsequent beurteilt, wie zweckmäßig eine solche Anwendung ist. Das meint nicht nur, ob überhaupt Ressourcen für eine solche Anwendung aufgebracht werden sollten², sondern eine kontinuierliche Beurteilung auch während der Entwicklung.

  • Was ist der Tag X? Tritt er einmal, mehrmals auf?
  • Wann ist der Tag X?
    • Um 0 Uhr MEZ?
    • Was ist mit Zeitzonen?
    • Was ist mit Lokalisierung, Globalisierung?
  • Was passiert mit der Anwendung, wenn der Tag X erreicht wird?
    • Soll etwas angezeigt werden?
      • "die XTOPIA läuft..."
      • Wie wäre ein Link zu Fotos oder Live-Streaming?
        Ging es nicht um "die" Konferenz?
      • Oder gar nichts mehr anzeigen?, Text einfach ausblenden.
    • Soll sie sich nach X + n Tagen deaktivieren?
      • Unmittelbar nach der XTOPIA?
      • Nach ein, zwei Monaten oder wenn ein neues Datum für die XTOPIA 2008 da ist?
    • Soll ein neues Datum eingespielt werden können?
  • ...

Es geht also nicht darum, ob "-1" ein Programmierfehler oder einfach Schlacksigkeit ist, sondern darum, dass schon bei trivialen Aufgaben wie "Zähler rückwärts laufen lassen" es richtige Modellierung braucht und eben nicht nur per UML oder Softwarekomponenten, sondern eine, die viel viel höher ansetzt.

XTOPIA Minianwendung

Das fällt auch auf, wenn die Minianwendung abgedockt ist und auf sie geklickt wird...

XTOPIA Minianwendung

Sorry Microsoft, nicht böse sein... :)

¹ Warum ist eigentlich die Schreibweise des Logos klein aber im Text ist XTOPIA immer groß?
  O. k., die Schreibweise Xtopia gibt es auch noch:
  XTOPIA Minianwendung
² was nicht implizieren soll, dass ich die Minianwendung schlecht finde

Nicht nur, aber auch bei Blogs sollte man aufpassen, dass man nicht nur zitiert.
Dieses Mal sei mir das aber verziehen, weil die nachfolgende Beschreibung perfekt ist:

In einigen amerikanischen Universitäten ist es üblich, dass Professoren eingeladen werden, eine Vorlesung zu halten, die sie so gestalten sollen, als sei es die letzte in ihrem Leben. So auch Randy Pausch, Informatik-Professor an der Carnegie-Mellon-University. Jedoch mit einer kleinen Besonderheit: Für ihn ist es keine fiktive letzte Vorlesung, denn er ist unheilbar an Bauchspeicheldrüsenkrebs erkrankt und wird in ein paar Monaten sterben. Doch er zeigt keinerlei Bitterkeit oder Resignation, sondern strahlt in seiner Vorlesung eine ungeheure Energie und Lebensfreude aus, die einen vor Neid erblassen lässt.
Quelle: nilsmueller.info, Letzte Worte

Prädikat: Sehr Empfehlenswert und jeder der 1:40 h mal irgendwie Zeit hat, sei es ans Herz gelegt!
Das Video gibt es in groß hier: Dying 47-Year-Old Professor Gives Exuberant ‘Last Lecture’.

Vorlesungen von Randy Pausch gehen mit Alpha Centauri- Leider aus und vorbei einher.
Prof. Harald Lesch hat ein ähnliches Talent. Vereinfachung auf hohem Niveau ist eine Tugend.

Randy Pausch

Randy Pausch

WIFI Detektions T-Shirt

8. October 2007

Das T-Shirt habe ich gerade im Blog von Jason Langridge entdeckt.
Prädikat: Geek Stufe 9 von 10!

Here at ThinkGeek we're pretty lazy when it comes to technology. We expect our gadgets to do all the busywork while we focus on the high level important tasks like reading blogs. That's why we hate to have to crack open our laptops just to see if there is any wi-fi internet access about... and keychain wi-fi detectors, we would have to actually remove them from our pockets to look at them. But now thanks to the ingenious ThinkGeek robot monkeys you can display the current wi-fi signal strength to yourself and everyone around you with this stylish Wi-Fi Detector Shirt. The glowing bars on the front of the shirt dynamically change as the surrounding wi-fi signal strength fluctuates. Finally you can get the attention you deserve as others bow to you as their reverential wi-fi god, while geeky chicks swoon at your presence. You can thank us later.

WIFI Detektions T-Shirt
Quelle Abbildung und Zitat: thinkgeek.com

Mehr Sachen für Geeks gibt es im Blogeintrag Geeks und der WAF.

Für Lars Kellers Vortrag zu Office 2007 hat wieder ein Foto gepasst: Ein Gewächs, ein wenig aufgepeppt mit Accessoires. :)

Worum geht es? Aus dem Abstract:

Office 2007 – Ein Einstieg in die Add-in Entwicklung mit VSTO 3.0 & VS 2008: Office 2007 hat zahlreiche Innovationen im Gepäck. Zweifelsohne ist die wohl interessante Neuerung für Entwickler die neue Ribbon UI. Dieser Vortrag stellt die Ribbon UI vor und zeigt, wie einfach diese mit Hilfe der Visual Studio Tools for Office (VSTO) erweitert werden kann. Weiterführend wird das neue VSTO 3.0 vorgestellt und welche Neuerungen Visual Studio 2008 für die Office Add-in Entwicklung mit sich bringen. Der Vortrag von Lars Keller wird durch kleine Live-Coding Beispiele abgerundet und demonstriert, wie einfach die Interaktion zwischen Office-Applikationen sein kann.

Die Anmeldung dazu gibt es unter: www.dotnet-leipzig.de/v/vsto.

Vortrag Office 2007 und .NET (VSTO)

Seit Scott Hanselman bei dasBlog aus lizenzrechtlichen Gründen Routinen ausgetauscht hat und dabei ein paar Programmierfehler unterlaufen sind, "verschwinden" Statistiken in dasBlog. Bloß gut, dass sie nicht wirklich verschwinden. Die Programmierfehler bewirken, dass im Verzeichnis /logs Dateien mit 0 Byte angelegt werden. Werden diese Dateien einfach gelöscht, sind die Statistiken wieder da. Eventuell muss vorher der Anwendungspool ASP.NET 2.0 wieder verwendet werden, bevor diese Dateien gelöscht werden können. Die Beschreibung wie das funktioniert gibt es hier. Damit gibt es immerhin einen Workaround dafür, solange bis es vom Team um dasBlog gefixt wird (aktuell ist Version 2.1.7238.742).

dasBlog – verschwundene Statistiken in der Administration Area

dasBlog – verschwundene Statistiken

O. k., für Vergleiche sollte man üblicherweise objektiv Leistungsmerkmale vergleichen, doch könnte dann der MDA I jemals gegen einen MDA Touch gewinnen? Den MDA hatte ich gerade beim Entrümpeln der Elektro-Gimmick-Kiste gefunden und das Foto musste einfach sein. ;) Wie Stephan finde ich übrigens den HTC Touch Dual noch einen Tick besser und das wird sicher der nächste.

Der MDA I wird jedenfalls nicht bei eBay, sondern bei talkGreener entsorgt.

... Telefonieren Sie zu attraktiven Konditionen zum Wohle der Umwelt und wohltätiger Zwecke. Wir
verbinden modernes Mobiltelefonieren und Handyrecycling. ...
Quelle: talkgreener.de

Mehr zu der Rücknahme von Elektrokleingeräten über die Deutsche Post findet sich übrigens hier.

PS: Mehrzahl von Handys ist nach der gültigen Rechtschreibung Handys, nicht Handies Stephan... ;)

MDA I vs. MDA Touch

Modellierung: Hier wurden und werden seit geraumer Zeit unglaublich viele Werkzeuge entwickelt, nicht nur für die UML. Hin und wieder werden schon mal Wörter neu zusammengesetzt und deren Bedeutung für allheilbringende Ansätze dann erklärt. Ob damit auch Service-orientierung in der Informations- und Kommunikationstechnologie gemeint ist, sei dem Leser frei dahingestellt. Oder trifft es eher das Service Engineering? Auch das ist frei dahingestellt. Eines wird bei den ganzen Modellierungsansätzen zu häufig doch vergessen: Die Anwender müssen diese verwenden wollen und auch verstehen. Was nützt das beste  Werkzeug, wenn Anwender davon die betriebswirtschaftlichen Gesamtzusammenhänge nicht verstehen? Ich behaupte, es gibt wenige gute Werkzeuge oder gar Ansätze, die das unterstützen, Hypes lassen zur Genüge grüßen.

Was ist daran so problematisch? Mit dem heutigen Trend zu Wiederverwendung, zu Software Factories, zu modularen, ja zu kombinierbaren Geschäfts- und IT-Lösungsbausteinen werden überall gleiche Fehler gemacht. A macht es auch so, muss doch für B gut sein! Ein Ansatz, der nicht nur den Sinn und Zweck und Umsetzung modelliert, sondern auch dazu die Zweckmäßigkeit des Ganzen beurteilt, fehlt meist. Ich formuliere dazu ein alltägliches Beispiel: Geschäftsprozess Newsletter abbestellen, "eigentlich" trivial.

Wie geht es richtigerweise los?

  • Mit Maschinencode?
  • Mit C#-Code?
  • Mit Klassendiagrammen?
  • Mit Sequenz- oder Aktivitätendiagrammen; UML-Diagrammen?
  • Mit der Modellierung von Komponenten?
  • Mit der Modellierung von Architektur?
    Mit der Formulierung notwendiger Anwendungen, Funktionalitäten und Infrastruktur?
    Mit der Formulierung notwendiger Funktionsumfänge, Prozesse, Aktivitäten von dem Ökosystem Unternehmen?
  • Mit der Abschätzung der Projektlaufzeit, des Budgets, der Mitarbeiteranzahl?
  • Mit einem Vergleich mit anderen Unternehmen und deren Lösung?

Es geht los mit dem Verständnis des Kernproblems, alles andere ist nur Hilfsmittel für die Umsetzung.

Das fällt mir bei Newslettern in letzter Zeit sehr häufig auf. Meine E-Mail-Adresse für Newsletter hat sich durch eine eigene Domain und eigene Infrastruktur dafür geändert. Für die alte E-Mail-Adresse habe ich beim ehemaligen Provider von mir durch einen Freund, der weiterhin dort Kunde ist, eine Weiterleitung schalten können. Damit werden E-Mails an foo@altedomain.de an foo@neuedomain weitergeleitet. Und hier liegt die Krux an so einem Wechsel.

Es gibt himmelschreiend viele Anbieter (damit modellierte Lösungen) die in den Newslettern schreiben "klicken Sie hier, damit Sie aus dem Newsletter ausgetragen werden". Was passiert dann? Eine neue E-Mail wird generiert, meist an irgendeine E-Mail-Adresse nach Format unsubscribe@domain.de. Um sie abzusenden zu können, müsste aber nicht eine Weiterleitung geschaltet sein, sondern ich Zugriff auf das E-Mail-Konto haben, was ja nicht existiert. Warum gibt es keinen Link in solch einem Newsletter als Alternative oder gar eine, das ist doch immer gut, Fallback-Lösung? Z. B. in Form einer "Kontaktieren Sie unseren Kundendienst"-E-Mail-Adresse. Reagiert dann der Kundendienst auf einen weitergeleiteten Newsletter mit der Bitte um Löschung der alten E-Mail-Adresse erst beim dritten Mal, ist das schlecht fürs Image. O. k., er kann nichts dafür, es steht ja auch meist auch nicht in seiner Arbeitsanweisung...

Vista wird mit einer Minianwendung zur Berechnung von Fremdwährungen durch Microsoft ausgeliefert: dem Währungsrechner. Nein, dieser Beitrag handelt sich nicht um eine sinnvolle Risikodiversifikation, es geht darum, ob das verantwortliche Produktteam hier geschusselt hat. Wer Frank Fischers Blogeintrag Sorry, no Schadenfreude allowed!! zu einem "interessanten" Programmierfehler in Excel gelesen hat, wird es vielleicht schon ahnen: Die Ergebnisse der Minianwendung sind etwas fraglich.

Um den Wert einer Währung, als Beispiel "18,50 USD ist wie viel Wert in EUR" zu ermitteln, muss nur die Minianwendung in der Sidebar bzw. dem Desktop hinzugefügt, EURO und US-DOLLAR ausgewählt und 18,50 bei US-DOLLAR eingeben werden. Schon erscheint das Ergebnis, auch noch auf ganze fünf Stellen nach dem Komma genau.

Doch was heißt Komma? Das, was unter Start, Systemsteuerung und dort bei Region beim Reiter Regions- und Sprachoptionen über Dieses Format anpassen bei Dezimaltrennzeichen eingestellt ist? Denn wird nicht 18,50 sondern 18.50 eingegeben, findet die Umrechnung mit 1850 als Basis statt. Auch ist egal, wie viele Dezimaltrennzeichen eingegeben werden. Egal ob "," oder ".". Das Ergebnis bleibt falsch bzw. richtig.

Minianwendung Währungsrechner Minianwendung Währungsrechner
Minianwendung Währungsrechner Minianwendung Währungsrechner

Es geht weiter: -1850 ist eine ungültige Zahl, aber -18.50 ist eine gültige (1850).

Minianwendung Währungsrechner Minianwendung Währungsrechner

Gegentest: -18aaaa.50 ist eine gültige Zahl (1850), -18.aaaa50 keine.

Minianwendung Währungsrechner Minianwendung Währungsrechner

Liebes verantwortliches Produktteam: Bitte nachbessern, denn die Einstellungen in der Systemsteuerung haben scheinbar zusätzlich auch keine Auswirkung!

Zuerst ein herzliches, großes Dankeschön an alle unsere Referenten und Sponsoren ohne deren Engagement ein nicht-kommerziell ausgerichtetes .NET Camp nicht möglich wäre.

Ein Auszug aus der Liste unserer Referenten¹:

  • Alexander Groß
  • Daniel Fisher, devcoach
  • Lars Keller, netcreate
  • Šenaj Lelic, DataAssist
  • Peter Nowak, T-Systems
  • Stefan Richter
  • Jens Schaller, Comma Soft AG
  • Roland Weigelt, Comma Soft AG
  • Ralf Westphal
  • Torsten Weber
  • Michael Willers, devcoach

Erstmals gab es ein Catering für alle Teilnehmer. Bei früheren .NET Camps der .NET User Group Leipzig war "nur" ein Getränkedienst (mit Keksen ;)) und natürlich Abendveranstaltungen enthalten.

Und nun die Impressionen:
Das .NET Summercamp 2007 fand vom 24. bis 28.09.2007 an der Wirtschaftswissenschaftlichen Fakultät der Universität Leipzig statt.

.NET Summercamp 2007

Enthalten war beim .NET Summercamp 2007 auch ein Besuch bei Porsche Leipzig mit Abendessen.

.NET Summercamp 2007

.NET Summercamp 2007

.NET Summercamp 2007

.NET Summercamp 2007

.NET Summercamp 2007

.NET Summercamp 2007

So manches Glas ist während des .NET Summercamp 2007 nicht ganz geblieben...

.NET Summercamp 2007

Zu jeder "ordentlichen" Entwicklerkonferenz gehört mindestens ein koffeinhaltiges Kaltgetränk...

.NET Summercamp 2007

Šenaj Lelic beim letzten Check seiner Präsentation...

.NET Summercamp 2007

Lars Keller zeigt nach seinem Vortrag wie Office 2007 einhändig anprogrammiert werden kann...

.NET Summercamp 2007

Lars Keller hat leider nicht gegen mich verloren bei einem individuellen Autorennen... ;)

.NET Summercamp 2007

Der Coding4Fun-Event zum Imagine Cup 2008 – der Raum war brechend voll...

.NET Summercamp 2007

Erst Human Table Soccer ...

.NET Summercamp 2007

... und danach ein Buffet mit französischen Spezialitäten.

.NET Summercamp 2007

Die Mousse au Chocolat war ein Traum!

.NET Summercamp 2007

Peter Nowak spricht über mobile Geräte...

.NET Summercamp 2007

Networking war ganz wichtig!
Die Geschäftsführung von itCampus beim Gespräch mit Studenten...

.NET Summercamp 2007

Ralf Westphal beim Gespräch mit Studenten...

.NET Summercamp 2007

Jens Schaller im Gespräch im Alex...

.NET Summercamp 2007

Roland Weigelt im Gespräch mit einer Teilnehmerin...

.NET Summercamp 2007

Autogramme "mussten" :) auch verteilt werden. Von Ralf und mir...
Hier in Leipzig hat 2003 Ralf glaube ich sein erstes jemals geben müssen (nämlich mir).

.NET Summercamp 2007

PC WARE stellt sich den Studenten vor...

.NET Summercamp 2007

Der Grillabend, Steaks und Roster für alle...

.NET Summercamp 2007

... und Spanferkel (neben Zutaten wie leckerem Sahne-Krautsalat und vegetarischem Angebot).

.NET Summercamp 2007

.NET Summercamp 2007

.NET Summercamp 2007

Selbst um 23 Uhr wurde noch von einigen (wie mir ;)) gespeist; es war einfach zu lecker...
Unglaublich, wie viele Cola-Flaschen doch auf einen kleinen runden Tisch passen...

.NET Summercamp 2007

Der X360-Contest..., es wurde gefahren bis die Reifen qualmten!

.NET Summercamp 2007

Selbst 23 Uhr gab es immer noch ein paar die spielten, obwohl der Contest schon zu Ende war...

.NET Summercamp 2007

Freibier für alle beim Grillabend / X360-Contest...

.NET Summercamp 2007

Typisch Student – in der ersten Reihe sitzt (fast) keiner... ;)

.NET Summercamp 2007

Die neuen ".NET Frogs": Daniel Fisher und Michael Willers...

.NET Summercamp 2007

Besteht Verwechslungsgefahr mit den ".NET Twins"?
Hier der Vergleich: Ralf Westphal und Christian Weyer (letzterer war leider nicht dabei)...

.NET Summercamp 2007

Lori Grosland war extra zu Besuch und hat uns gefilmt! Wer hätte das mal bei Gründung der .NET User Group Leipzig vor Jahren gedacht...

.NET Summercamp 2007

Lori ist etwas kleiner als Daniel und Michael doch der Absatz hat für das Interview geholfen... ;)

.NET Summercamp 2007

Sorry Lori, dass ich das Geheimnis verrate, /lieb guck/... :)

.NET Summercamp 2007

Es gab viele Aussteller, auch Microsoft, auch wenn der Stand leider leer war und so verloren wirkte.
Einen neuen Student Partner neben Marci scheint es aufgrund des .NET Wintercamps 2007 nun bald zu geben. Grund genug, die Werbung dafür auf allen unseren Seiten wie zu RIA abzuschalten. :)

In dem Sinne, .NET Community rocks!

.NET Summercamp 2007

.NET Summercamp 2007

.NET Summercamp 2007

Sponsoren waren bzw. Kooperationen über:

Zu Besuch war bei uns übrigens Dr. Said Zahedani, Direktor Developer Platform and Strategy Group von Microsoft Deutschland.

¹ Bernd Marquardt hatte leider einen grippalen Effekt, sonst wäre er natürlich dabei gewesen :)

In unserem Buch schreiben wir auf Seite 578:

P/Invoke an sich gesehen ist gar nicht so schwer. Vielmehr macht die Ermittlung der richtigen Methodensignaturen Schwierigkeiten. Erschwerend kommt hinzu, dass das »Ausprobieren« auch nur sehr begrenzt möglich ist. Schnell kann hier das Senden von falschen Datentypen bzw. Werten an unverwaltete Bibliotheken zu Speicherverlusten oder unerwarteten Ergebnissen führen. Denn mit P/Invoke verlassen Sie die Zwischenschicht zwischen Quell- und Maschinencode, die durch die Laufzeitumgebung geprüft wird und durch die z. B. direkte Speicherzugriffe verhindert werden.

Für eine professionelle Programmierung werden also unbedingt der richtige Bibliotheksname, die richtige Methodensignatur und die entsprechenden Werte benötigt. Das ist beim .NET Framework mit der MSDN-Bibliothek (Link1901) oder Werkzeugen wie PInvoke.NET noch relativ einfach. Aber beim .NET Compact Framework und Windows CE als Baukasten für das Betriebssystem Windows Mobile wird das Ganze schon erheblich schwerer. Dennoch gibt es im Web hier und da einige gute Ressourcen, wie z.B. Link1902. Im Bereich Smart Device Functions sind dort Windows CE DLL-Bibliotheken mit ihren Methodensignaturen und den zu verwendenden Werten, teilweise sogar mit Beispielen, gut dokumentiert. Mehr Informationen zu P/Invoke beim .NET Compact Framework erhalten Sie unter Link1903. Mehr Informationen zu Windows CE erhalten Sie unter Link1904 und mehr zum Werkzeug PInvoke.NET gibt es unter Link1905.

Auf der BASTA! machte mich ein Besucher eines Vortrag von mir wieder auf ein Plug-In aufmerksam:

Mit diesem Add-In können Methodensignaturen gesucht werden. Wie war z. B. gleich doch die Signatur um einen Prozess zu beenden? Beenden ist terminieren, der Terminator lässt grüßen, daher t eingeben und schon erscheint die Signatur. Fazit: Zu empfehlen und funktioniert auch für Strukturen etc.

PInvoke Visual Studio Add-In zum Suchen von Methodensignaturen bei mobilen Geräten

Übrigens, das Verweiswerkzeug, für Zugriff auf 140 Beispiele und 400 Verweise ins Web, gibt es hier.

Ein Foto, aufgenommen während des .NET Summercamp 2007 im Hörsaal Süd (Raum 3) ist passend für den Vortrag von Oliver Scheer von der Microsoft Deutschland GmbH zu Rich Interactive Applications.

Worum geht es? Aus dem Abstract:

Die neuen Technologien WPF (Windows Presentation Foundation) und Silverlight bieten .NET Entwicklern und klassischen Webentwicklern neue und viel einfachere Möglichkeiten interaktive Anwendungen für den Windows Desktop und für das Internet zu erstellen. Silverlight basiert auf dem .NET Framework und der Sprache XAML und implementiert die dahinterliegende Technologie für Cross-Browser und Cross-Plattform, d. h. nicht nur für den Internet Explorer und nicht nur für Windows, sondern auch für andere Plattformen und Browser. Da mit Silverlight eine „kleine“ aber „feine“ Variante des .NET Framework einhergeht, das über ein Browser-Plug-In installiert wird, hat der .NET Entwickler nun die Möglichkeit, seine Kenntnisse auch für Webanwendungen, z. B. auf einem Mac zu verwenden. Der Vortrag von Oliver Scheer zeigt die Designer- und Entwicklerumgebungen für WPF und Silverlight und demonstriert völlig neue Möglichkeiten der RIA-Entwicklung.

Die Anmeldung dazu gibt es unter www.dotnet-leipzig.de/v/ria.

RIA – Rich Interactive Applications der nächsten Generation

CEO bei GROSSWEBER, Entrepreneur, Entwickler, Finanzinvestor. Promoter von Community, Open Source und
Open Spaces.

Ich biete Consulting und Schulungen / Trainings, u. a. zu mobilen Geräten, Lync.
GROSSWEBER

Bei GROSSWEBER wird praktiziert, was gepredigt wird. Dort werden Schulungen für moderne Softwaretechnologien angeboten, wie Behavior Driven Development, Clean Code, Git oder HTML5. Their staff is fluent in a variety of languages, including English.

Categories

Calendar

<August 2014>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

Archive

My subscribed blogs

Blogs of good friends