Donnerstag, 29. März 2007

Und tschüss...

Das war es von mir an dieser Stelle, denn mein Blog ist umgezogen.

Man findet ihn ab sofort unter dieser Adresse: http://blogs.compactframework.de/Peter.Nowak

Samstag, 10. März 2007

.NET CF 2.0 SP 2 erschienen

Gestern ist das SP2 vom .NET Compact Framework 2.0 erschienen, welches viele kleinere aber doch nervende Bugs behebt. Es kann hier bezogen werden, wo u.a. auch die Bugfixes aufgezählt sind.

Donnerstag, 8. März 2007

Vista und der Windows Mobile Emulator

So langsam ist es möglich auch Compact Framework Anwendungen unterm Visual Studio 2005 zu erstellen, nachdem das VS 2005 SP1 für Windows Vista verfügbar ist. Die Fehlermeldung, dass wenn ein neues Deviceprojekt erstellt werden soll, man möge doch bitte das Compact Framework 2.0 installieren, obwohl es bereits installiert ist, ist endlich verschwunden.

Hat man diese Hürde ersteinmal genommen und möchte einen Emulator "cradeln", bzw. "in Basisstation" ausführen, so funktioniert dies nicht.
Das Problem liegt darin, dass der Geräteemulator-Manager 1.0 nicht kompatibel mit dem Windows Vista Device Center ist.

Hierfür gibt es eine Lösung. Man läd sich das Windows Mobile 6 SDK hier herunter (leider momentan nur in englisch verfügbar) und installiert dieses mit Adminrechten. In diesem Paket ist der Geräteemulator-Manager in der Version 2.0 (leider auch englisch) enthalten. Dieser ermöglicht dann wieder die Kommunikation des Emulators mit dem Windows Mobile Device Center. Der neue Manager ist kompatibel mit Windows Mobile 5 und 2003 Emulatorimages, so dass auch "ältere" Betriebssysteme verwendet werden können.

Im Allgemeinen lohnt sich in jedem Fall die Nutzung des neuen Geräteemulator-Managers. Dieser soll wesentlich "schneller" sein.

Visual Studio 2005 Service Pack 1-Update für Windows Vista

Wer bereits, wie auch ich, unter Vista mit dem Visual Studio 2005 arbeitet, läuft ab und an in Kompatibilitätsprobleme.
Diese sollen mit diesem Update behoben werden. Das Update ist hier in deutscher Sprache verfügbar.

Freitag, 2. März 2007

Windows Mobile 6 SDK (Update)

Wie bereits hier angekündigt, ist das Windows Mobile 6 SDK mittlerweile unter http://www.microsoft.com/downloads/details.aspx?FamilyId=06111A3A-A651-4745-88EF-3D48091A390B&displaylang=en zum Download in englischer Sprache verfügbar.

Welche Neuheiten im SDK enthalten sind, findet man hier.

Samstag, 24. Februar 2007

Windows Mobile Device Center Managed API - Ereignisse für das Anschliessen oder entfernen von Geräten

Es gibt Situationen, dass man auf Ereignisse reagieren möchte, wenn ein Gerät angeschlossen, oder aber entfernt wurde.

Auch hierzu bietet die Windows Mobile Device Center Managed API eine Möglichkeit, die einem das Objekt RapiManager bietet.

Das folgende Beispiel zeigt, wie dies geht. Dadurch, daß bei den Ereignissen zusätzlich auch noch das Device als Parameter übergeben wird, ist es auch möglich auf spezifische Geräte zu reagieren, wenn man (wie in diesem Beispiel) auf den Gerätenamen prüft.

Durch die Ereignisse wird es dadurch möglich zusätzliche Programme auszuführen, wenn dies denn gewünscht wird.
.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.WindowsMobile.Rapi;

namespace WindowsApplicationConnection
{
public partial class MainForm : Form
{
private RapiManager manager;
public MainForm()
{
InitializeComponent();

manager = Microsoft.WindowsMobile.Rapi.RapiManager.Instance;
manager.OnDeviceConnect +=
new RapiManager.DeviceChangeEventHandler
(manager_OnDeviceConnect);
manager.OnDeviceDisconnect +=
new RapiManager.DeviceChangeEventHandler
(manager_OnDeviceDisconnect);
}

void manager_OnDeviceDisconnect(object source, DeviceChangeEventArgs e)
{
MessageBox.Show("'" + e.Device.Name + "' wurde getrennt!");
}

void manager_OnDeviceConnect(object source, DeviceChangeEventArgs e)
{
MessageBox.Show("'" + e.Device.Name + "' wurde angeschlossen!");
}
}
}
 

Windows Mobile Device Center Managed API - Welche IP hat mein Gerät?

Manchmal ist es nützlich die IP Adresse des angeschlossenen Gerätes zu erfahren. Ganz einfach ist es, wenn man das angeschlossene Gerät einfach selbst "fragt".

Ist ein Gerät angeschlossen, so erhält man über folgenden kleinen Codeschnippsel bereits die Information:

.

            ...
RapiManager manager = Microsoft.WindowsMobile.Rapi.RapiManager.Instance;
if (manager.Devices.Count > 0)
{

System.Net.IPAddress adress = manager.Devices[0].IPAddress;
Console.WriteLine("IPAdresse: "+adress.ToString());
}
else
{
Console.WriteLine("Kein Gerät angeschlossen");
}

...

Windows Mobile Device Center Managed API - Remote einen Prozess ausführen

Wie Sie bereits hier gesehen haben, ist das erstellen einer Textdatei ganz einfach. Wie wäre es aber, wenn nach dem Erstellen zusätzlich die Datei Remote auf dem Windows Mobile Gerät auch angezeigt wird?


Auch das ist möglich. Die Klasse Microsoft.WindowsMobile.Rapi.CEProcess kann hierzu verwendet werden. Die Nutzung ist ähnlich der, die man bereits vom .NET Framework kennt.


Nach dem Erzeugen eines Objektes vom Typ Microsoft.WindowsMobile.Rapi.CEProcess, wird dessen Eigenschaft StartInfo ein neues Objekt vom Typ System.Diagnostics.ProcessStartInfo übergeben, welches als Parameter die auszuführende Datei und ggfs. zugehörige Kommandozeilenparameter übergeben bekommt.


Der Code sieht somit so aus:


            ...
RapiManager manager = Microsoft.WindowsMobile.Rapi.RapiManager.Instance;
if (manager.Devices.Count > 0)
{
// Erstellen einer Textdatei "tester.txt" auf dem Device
Microsoft.WindowsMobile.Rapi.CEProcess proc = new CEProcess (
manager.Devices[0].Session);
//Für Anzeige mit Pocket Word auf einem Windows Mobile != Smartphone
//proc.StartInfo = new System.Diagnostics.ProcessStartInfo
// (@"\Windows\pword.exe", @"\tester.txt");


// Ansonsten Internet Explorer Mobile
proc.StartInfo = new System.Diagnostics.ProcessStartInfo(
@"\Windows\iexplore.exe", @"\tester.txt");
proc.Start();
Console.WriteLine("'Tester.txt' wird auf dem Device dargestellt.");
}
else
{
Console.WriteLine("Kein Gerät angeschlossen");
}...

Interessanter als Textdateien zu erstellen ist es jedoch CAB-Installationsdateien, respektive CPF-Konfigurationsdateien auszuführen. Hierzu muss lediglich folgende Zeile lediglich geändert werden, wenn die Installationsdatei installation.cab sich unter \ befindet:

.

...
proc.StartInfo = new System.Diagnostics.ProcessStartInfo(@"\Windows\wceload.exe",
" \"\\installation.cab\);

...

VSOne 2007 Konferenz

Ebenfalls diesem Monat fand die VSOne 2007 Konferenz vom 13. - 14 Februar in München statt. Als Location wurde das ehemalige IMAX Kino (Kino 1) am Forum des deutschen Museums ausgesucht. In diesem wirkte auch ein gestandener Sprecher, wie beispielsweise Michael Willers vor der mehreren Metern grossen Wand verloren:




















Ansonsten waren auch wieder erstklassige Sprecher (Michael Willers, Ingor Rammer, Christian Nagel, Ralf Westphal, Neno Loje um nur einige neben den vielen anderen guten Sprechern zu nennen) vor Ort. Auch ich durfte mich als Sprecher wieder im Mobile Track "austoben", welcher leider nur am Dienstag stattfand.


Session: Nicht alles, was klein ist, ist "Mobile"

Vieles, was ein wenig kleiner ist als ein Notebook, wird direkt in die "Mobile" Schublade befördert. Doch dass es immense Unterschiede in Hard- und Software gibt, und was Industriegeräte sind, wird hier vorgestellt.


Session: Be cautious: Projekte für mobile Anwendungen

Projekte für mobile Anwendungen sind oftmals ein heikles Thema. Meist ist auf den verschiedensten Seiten nur ein ungesundes Halbwissen vorhanden, wodurch es im Projekt selbst dann zu Problemen kommt. Was es für die verschiedenen beteiligten Gruppen zu beachten gilt, wird hier dargestellt.


Session: Hybride Anwendungen mit dem .NET Compact Framework

Oftmals müssen Anwendungen für verschiedene Endgeräte erstellt werden. Wie Sie elegant mit dem .NET Compact Framework Anwendungen zeitgleich für den Pocket PC und den PC erstellen können, und was es dabei zu beachten gibt, zeigt diese Session.

(Die Folien im PDF Format werde ich zu einem späteren Zeitpunkt nachreichen)

Die Konferenz selbst war mässig besucht. Dies lag jedoch selbst weniger an der Konferenz, als an der Tatsache das zeitgleich eine SQL Konferenz von Microsoft in Berlin stattfand, welche bestimmt einige Besucher gekostet hat.

Neben den Sessions war es möglich interessante Gespräche mit verschiedensten Teilnehmern zu führen. Auch ich nahm die Möglichkeit des "Social Networking" wahr und bedanke mich nochmal bei den entsprechenden Teilnehmern und hoffe, dass ich mit Rat und Tat auch weiterhelfen konnte.

Ebenfalls zum Thema "Social Networking" fand am Dienstag Abend eine kleine Konferenzparty statt. Dabei gab es neben leckerem Fingerfood (obwohl ich ein paar Anläufe brauchte einen Burger zu erhaschen :-) ) leckeren "CaiPy", welcher die Redelust deutlich erhöhte. Leider war dies nicht bei allen der Fall, denn irgendjemand musste diese auch "herstellen". Dafür hatten Sie aber immer ein freudiges Lächeln im Gesicht (nicht wahr Tanja? :-) ).

Alles in allem war es eine gelungene Konferenz, weswegen ich mich schon auf die Nächste freue.

Artikel März 2007

Auch in diesem Monat ist ein neuer Artikel von mir erschienen.

Bei diesem handelt es sich um den 3. Teil der kleinen Sharepoint 2007 Reihe im dotnet Magazin, welcher in der Ausgabe 03.2007 erhältlich ist.
Titel: Formularoffensive
Inhalt: Zu einer Serverkomponente, wie den SharePoint Services, gehört natürlich auch ein darauf abgestimmtes Werkzeug für die Frontend-Programmierung. Mit InfoPath 2007 steht ein solches Werkzeug in den Startlöchern, mit dem es möglich ist, Vorlagen oder auch Formulare für den Office Forms Server 2007 zu erstellen. Welche Neuerungen es sind, und was der Forms Server ist, zeigt dieser Artikel.

Donnerstag, 22. Februar 2007

Komprimieren under Windows CE und Windows Mobile

Wenn man mit Geräten arbeitet, dessen Speicher begrenzt ist, achtet man auf jedes Byte. Das eine oder andere lässt sich mittels Komprimierung sparen.
Für diesen Zweck gibt es nun auch eine Bibliothek, mit jener sich Daten unter Windows CE und somit auch unter Windows Mobile kompimieren lassen: zlib Compression Library 1.2.3 for Windows CE von OpenNETCF, welche bereits durch ihre .NET Compact Bibliothek "Smart Device Framework" bekannt sind.
Die Bibliothek ist als Sourcecode- und Binärpaket für native Entwickler erhältlich und steht unter der Shared Source License. Für Entwickler mit dem .NET Compact Framework steht zusätzlich ein managed Wrapper zur Verfügung.

Als Alternative hierzu sei auch noch die SharpZipLib erwähnt, welche ebenfalls unter dem .NET Compact Framework eingesetzt werden kann und unter der GPL steht.

Mittwoch, 21. Februar 2007

MEDC deutsche Edition

Wer im Bereich Mobile tätig ist, insbesondere mit Microsoft Technologien, für den gibt es eigentlich nur eine Entwicklerkonferenz: Die Microsoft Embedded Developers Convention (MEDC).

Diese findet einmal pro Jahr einerseits in den USA, andererseits auch als Ableger in Europa statt. Dieses Jahr soll auch zum ersten Mal eine deutsche MEDC am 25. und 26. Juni in Berlin stattfinden, wo wieder interessante Workshops und Sessions zum Besten gegeben werden.

Ein Muss für jeden mobilen Entwickler.

Mehr Informationen zur Konverenz erhalten Sie hier.

Neue Versionen diverser Microsoft Anwendungen

Es gibt immer hilfreiche Tools, die man in der (mobilen) Entwicklung einsetzt.
Eines dieser "Tools" ist Microsoft Virtual PC, was nun kostenfrei in der neuen Version 2007 vorliegt. Das Installationspaket für 32- bzw. 64 Bit Versionen ist hier erhältlich.

Wer das Visual Studio 2005 unter Vista installiert bekommt die Hinweismeldung, das man für den SQL Server 2005 Express Edition bitte das SP 2 installieren soll. Dies jedoch ist erst seit gestern verfügbar. Es kann kostenfrei hier heruntergeladen werden und besitzt eine Größe zwischen 300 und 400 MB. Die Neuerungen des SP 2 sind hier beschrieben.