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
Wissenswertes über Windows Mobile, und mehr...
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
Eingestellt von Peter Nowak um 07:19
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.
Eingestellt von Peter Nowak um 10:53
Labels: CF, Software und Bibliotheken
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.
Eingestellt von Peter Nowak um 19:27
Labels: Devices, Mobile Programming
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.
Eingestellt von Peter Nowak um 09:13
Labels: Software und Bibliotheken
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.
Eingestellt von Peter Nowak um 10:20
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!");
}
}
}
Eingestellt von Peter Nowak um 17:29
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");
}
...
Eingestellt von Peter Nowak um 17:15
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\);
...
Eingestellt von Peter Nowak um 16:52
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:
Eingestellt von Peter Nowak um 15:03
Labels: Konferenzen
Auch in diesem Monat ist ein neuer Artikel von mir erschienen.
Eingestellt von Peter Nowak um 14:48
Labels: Artikel und Co
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.
Eingestellt von Peter Nowak um 19:51
Labels: CF, Mobile Programming, Software und Bibliotheken
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.
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.
Eingestellt von Peter Nowak um 08:38
Labels: Software und Bibliotheken
Kaum ist man ein paar Tage weg, so ist man nicht mehr aktuell.
Während ich auf der VSOne eine Session zum Thema "Nicht alles, was klein ist, ist 'Mobile'" u.a. über das .NET Micro Framework sprach, ist es auch schon erschienen.
Es kann von hier bezogen werden. Auch Ankündigungen verschiedener Hardwarehersteller werden wohl in den nächsten Tagen folgen.
Auf der kommenden BASTA!, welche in Frankfurt Mörfelden stattfindet, wird Frank Prengel von der Microsoft Deutschland GmbH hierzu am 27.02.2007 um 14:15 eine Session ".NET meets Hardware: Das Microsoft .NET MicroFramework" halten. Diese kann man nur empfehlen.
Eingestellt von Peter Nowak um 08:07
Da Geräte in den kommenden Wochen bereits mit Windows Mobile 6 ausgestattet sein sollen, fehlt aktuell noch das zugehörige Windows Mobile 6 SDK. Dieses soll am 1. März erscheinen.
Welche neuen und geänderten Funktionen im Betriebssystem und im SDK enthalten sein sollen, erfährt man in diesem englischen Whitepaper, welches ich wirklich jedem mobilen Entwickler empfehlen kann.
Eingestellt von Peter Nowak um 08:44
Für diejenigen, die ihre Windows Mobile Geräte unter Windows XP synchronisieren möchten ist eine neue Version von Active Sync verfügbar.
Welche Neuerungen und Änderungen enthalten sind erfahren Sie hier.
Den Download der deutschen Version gibt es hier.
Eingestellt von Peter Nowak um 07:49
Labels: Software und Bibliotheken
Kann es sein, dass der PDA "Out" ist, bevor er noch richtig "In" war?
Die hier dargestellten Zahlen könnten zu solch einer Aussage verleiten. Zeit also sich diesem Thema einmal zu widmen.
PDAs als solches werden in 2 Bereichen genutzt: Im Consumer- und im Businessbereich.
Im Consumerbereich stellt man sich schon eher die Frage, ob man einen PDA wirklich braucht. Für Technikfreaks ( ich zähle mich dazu :-) ) mag dies ja noch sein, da man versucht die Geräte auzureizen. Doch der "normale" Endanwender begnügt sich auch mit einem Smartphone. Diese besitzen mehr und mehr Funktionen, wie bspw. E-Mail, Internetbrowser etc., die lange Zeit eher nur PDAs vorbehalten waren. Diese Funktionen werden jedoch eher selten genutzt, so daß ein Smartphone hierfür absolut ausreichend ist. Auch lässt sich mit beide Gerätegruppen meistens Telefonieren. Dies ist aber aufgrund des Formfaktors angenehmer, wenn man ein Smartphone verwendet. Zusätzlich fehlt den PDAs iimmer noch die "Killerapplikation", also jene, welche PDAs selbst interessant gestaltet. Zum Vergleich: Was wären heute Spielkonsolen ohne ihre Spiele? Viele der heute erhältlichen Anwendungen sind meist bereits auch auf einem Smartphone einsetzbar.
Ein weiterer "Hype" waren PDAs, die um die Funktionalität der Navigation mit entsprechender Software und einer GPS-Mouse erweitert wurden. Heutzutage gibt es mehr und mehr Geräte, die ausschließlich diese Funktionalität bieten, so dass PDAs unattraktiver werden.
Wie sieht es aber im Businessbereich aus?
Hier sehe ich als größtes Problem das ungesunde Halbwissen, was weit verbreitet ist. Viele Kunden verstehen die PDAs selbst als "Mini PCs". Sie wollen ihre bestehenden Businessanwendungen mit voller Funktionalität auf die Geräte portieren. Anstatt aber eine nur die wichtigsten Funktionen zu implementieren verfolgt man eher den Ansatz "Der Endanwender muss alles können". DOch man stellt sich nicht die Frage, ob es wirklich so sein muss. Muss es so sein, dann sollte man sich eher auf ein Notebook, ein Tablet PC oder aber einen UMPC stürzen, der dies alles bieten kann. Doch diese Geräte sind dann wieder zu teuer, so daß diese Ganze unberechtigte Frustration darin endet, dass PDAs für den Businessbereich unattraktiver werden.
Sind Sie der gleichen Meinung? Vertreten Sie eine andere?
Ich würde mich freuen, wenn Sie mir hierzu einen Kommentar hinterlassen.
Es scheint glatt so, also ob jede neue Version von Windows Mobile eine neue Eigenheit im Namen besitzt.
Diesmal erhält das neue Betriebssystem (Codename: Crossbow) verschiedene Versionsbezeichnungen:
Das neue Betriebssystem soll wohl im Q2 2007 erscheinen. Aktuelle Geräte werden wohl kein ROM-Upgrade erfahren. Beste Aussichten auf ein Upgrade hat wohl der aktuell noch nicht erschienene T-Mobile Ameo.
Welche Neuerungen in Windows Mobile 6 enthalten sein sollen, erfahren Sie hier.
Mit der neuen API lässt sich auch die Registry bearbeiten. Die folgende Konsolenanwendung zeigt, wie sich aus einem Windows Mobile 5 Smartphone die Besitzerinformationen auslesen lassen. Hierzu muss ein neues Konsolenprogramm im Visual Studio 2005 erstellt werden, welchem erneut die Referenz zur Assembly Microsoft.WindowsMobile.RAPI hinzugefügt werden muss. Diese befindet sich im Ordner %Windows%\WindowsMobile.
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using Microsoft.WindowsMobile.Rapi;
namespace ConsoleRegistryRead
{
class Program
{
static void Main(string[] args)
{
try
{
if (RapiManager.Instance.Devices.Count<=0)
{
Console.WriteLine("Verbindung kann nicht hergestellt werden,"+
"da kein Gerät mit dem Computer verbunden ist.");
return;
}
CERegistryKey currentuser = CERegistry.CurrentUser
(RapiManager.Instance.Devices[0].Session);
// Wenn keine Besitzerinformationen existieren,
// dann existiert auch der Unterschlüssel 'Owner' nicht
if (currentuser.OpenSubKey("ControlPanel").OpenSubKey("Owner") != null)
{
// Bei dem abgefragten Feld handelt es sich um ein Bytearray,
// in dem alle Informationen zugleich abgelegt sind
string ownername =
(string)currentuser.OpenSubKey("ControlPanel").OpenSubKey
("Owner").GetValue("Name");
string owneremail =
(string)currentuser.OpenSubKey("ControlPanel").OpenSubKey
("Owner").GetValue("E-mail");
if (ownername == null)
{
Console.WriteLine("Keine Besitzerinformationen vorhanden.");
return;
}
Console.WriteLine("Besitzerinformationen:");
Console.WriteLine("======================");
Console.WriteLine("Name: " + ownername);
Console.WriteLine("E-Mail: " + owneremail);
}
else
Console.WriteLine("Es wurden keine Besitzerinformationen gesetzt.");
Console.ReadLine();
}
catch (RapiException re)
{
Console.WriteLine("Beim Herstellen einer Verbindung ist ein Fehler
aufgetreten!\n" +
re.Message);
Console.ReadLine();
}
}
}
}
Eingestellt von Peter Nowak um 19:14
Direkt eine Textdatei mit der OpenNETCF.Desktop.Communication Assembly zu erstellen, war leider nicht möglich.
Die neue verwaltete API des Windows Mobile Device Centers hingegen bietet diese Möglichkeit.
So erstellt das folgende Beispiel nach einer Prüfung, ob ein Gerät vorhanden und angeschlossen ist, eine Textdatei. Besteht diese bereits, so wird diese vorher gelöscht.
Hierfür ist es notwendig die RapiManager-Instanz zu nutzen, damit auch eine gültige Session des angeschlossenen Gerätes bezogen werden kann, um somit erfolgreich das richtige Gerät zu referenzieren.
Damit dieses Beispiel natürlich funktioniert muss die Referenz zur Assembly Microsoft.WindowsMobile.RAPI hinzugefügt werden, welche sich im Ordner %Windows%\WindowsMobile befindet.
using System;
using System.Collections.Generic;
using Microsoft.WindowsMobile.Rapi;
namespace WindowsApplicationTest
{
static class Program
{
[STAThread]
static void Main()
{
RapiManager manager = Microsoft.WindowsMobile.Rapi.RapiManager.Instance;
if (manager.Devices.Count > 0)
{
Microsoft.WindowsMobile.Rapi.IO.CEFileInfo info = new
Microsoft.WindowsMobile.Rapi.IO.CEFileInfo(@"\tester.txt",
manager.Devices[0].Session);
if (info.Exists) info.Delete();
Microsoft.WindowsMobile.Rapi.IO.CEStreamWriter sr = info.CreateText();
sr.WriteLine("Hello managed RAPI".ToCharArray());
sr.Flush();
sr.Close();
Console.WriteLine("Datei erstellt.");
}
else
{
Console.WriteLine("Kein Gerät angeschlossen");
}
}
}
}
Eingestellt von Peter Nowak um 19:41
Wie bereits berichtet steht der Nachfolger von Active Sync, das Windows Mobile Device Center, seit gestern als x86 und als x64 Version zum Download bereit. Zu diesen Assemblies gibt es aktuell jedoch noch keine Information. Also muss man sich selbst einarbeiten. Aus diesem Grund werden an dieser Stelle einige Samples zum Einstieg erscheinen. Ältere Programme, welche die RAPI von ActiveSync 4.2 oder früher verwenden (OpenNETCF.Desktop.Communication) funktionieren weiterhin, da aus Kompatibilitätsgründen sich eine rapi.dll im System32 befindet.
Im Ordner "
Eingestellt von Peter Nowak um 18:52
Einen Tag nach dem erscheinen von Windows Vista steht nun auch der offizielle Nachfolger von Active Sync, das Windows Mobile Device Center zum Download bereit.
Download: Link
Eingestellt von Peter Nowak um 12:28
Labels: Software und Bibliotheken
Wenn man sich mit mobilen Geräten insbesondere auch beruflich beschäftigen muss, bleibt es nicht aus, dass man oft gefragt wird, welches mobile Gerät man denn empfehlen könne.
Die Vielfalt der Geräte ist jedoch mittlerweile so groß, dass man kaum noch um http://pdadb.net/ herum kommt.
Auf dieser Seite lassen sich die Smartphones, Windows CE-Geräte und Pocket PCs nach Kategorien sortiert darstellen. Hierzu gehören auch robuste Industriegeräte, die man sich separat anschauen kann,
Auch der gleichzeitige Vergleich mehrerer Geräte ist ebenso möglich.
Okay, mein Arbeitskollege Simon kommt manchmal mit Fundstücken aus dem Internet an, die es einfach wert sind gebloggt zu werden.
Diesmal ist er auf eine Band namens "Press Play On Tape" gestossen, die alte Sounds/Songs aus bekannten C 64 Spielen covern, oder aber Samples daraus für ihre eigenen Songs verwenden. Das man das Theme zu Giana Sisters in eine Rock Version verwandeln kann, hätte ich beispielsweise nicht gedacht.
Standesgemäss finden Konzerte in Spielhallen oder aber auf Spielemessen statt.
Sogar die Veröffentlichung der mittlerweile dritten CD steht bereit bevor. Einige Ausschnitte daraus sind hier zu finden.
Jeder der auch bisher meinte, dass Gamecontroller auch nur dem Zweck dienen, Spiele damit zu spielen wird auch eines besseren belehrt. Auf Youtube findet man ein Video der Band, wie Sie das Cannon Fodder Theme in einer eigenen Version auf Gamecontrollern spielen. Das sollte man gesehen haben. Man findet es hier.
Danke für den Tipp, Simon!
YouTube und Co sind ja allseits bekannt. Meist finden sich hier lustige Videos, bei denen man beherzt lachen kann.
Wo man sich jedoch meiner Meinung nach noch besser ämüsiren kann, sind Chatzitate aus dem IRC.
Die TOP 50 findet man hier. Lachen garantiert!!!
Huch, da hat ja nun Apple wirklich eine Katze aus dem Sack gelassen. Ein iPod mit dem man auch beim Schauen von Filmen und Hören von MP3s telefonieren kann. Revolutionär...
Naja, aber Spass beiseite. Schön ist er doch, nur bei den ganzen "neuen" Funktionen ist es doch mal nötig zu schauen, was denn nun wirklich so neu und innovativ ist, insbesondere im Vergleich mit Windows Mobile Geräten.
Frank Prengel hat sich mal die Mühe gemacht und einen Vergleich gezogen. Man findet diesen hier.
Auch Neil Cowburn, Member von OpenNETCF hat hierzu eine ähnliche Meinung, welche man hier findet.