Von
Andreas Pollak
11. April 2013 15:06
Eine sehr gute Spracherkennung gibt es eigentlich schon seit Windows Vista. Natürlich damit auch auf Windows 7 und Windows 8. Vor Kurzem wurde dazu ein c00ler Artikel auf Codeproject gepostet wie Du die Speech-API aus .NET in deinen Projekten nutzen kannst. Lies mehr auf codeproject.com zur Spracherkennung mit C#. Andreas Pollak Product Marketing Manager Visual Studio 2012 (Entwicklungs- und Testwerkzeuge) Leader im Magic Quadrant von Gartner für ALM
Von
Philipp Wintersberger (Gastblogger)
1. March 2013 17:50
Nachem ich bereits einen kleinen Einblick in das Thema Gestenerkennung gegeben habe, folgt nun die Theorie. In Teil 1 haben wir künstliche Intelligenz bereits folgend definiert: Als die Fähigkeit, neue und bisher unbekannte Herausforderungen erfolgreich zu meistern...
[More]
Von
Philipp Wintersberger (Gastblogger)
17. January 2013 21:00
Den Anwender Symbole am Touchsreen zeichnen lassen um bestimmte Aktionen auszulösen? Das Handy das von selbst erkennt, ob sein Benutzer gerade im Zug oder doch zuhause sitzt? Bei der täglichen Jogging-Session automatisch Anrufe unterdrücken? Ein Bowling Spiel bei dem das Smartphone die Rolle der Kugel einnimmt?
Apps mit derartigen (gern gesehenen) Features haben nicht nur für Developer seinen Reiz, sie wirken ausgereifter und verkaufen sich meist auch besser – nicht nur weil es „cool“ ist, sondern weil ein erweitertes Set an Inputmodalitäten auch dafür sorgt dass sich Benutzerinteraktionen natürlich anfühlen und der ohnehin schon kleine Screen nicht mit überflüssigen Buttons belastet wird. Schließlich werden die Geräte mit einer Vielzahl an Sensoren ausgeliefert - daher sollte man sie wenn möglich auch nutzen! [More]
Von
Toni Pohl (Gastblogger)
31. December 2012 07:15
Für alle jene Developer, die sich mit Windows Phone 8 Entwicklung auseinandersetzen möchten, hier ein Tipp für den Start: What's new in Windows Phone SDK 8.0!
[More]
Von
Toni Pohl (Gastblogger)
27. December 2012 07:15
War das Christkind brav – und hat vielleicht ein Windows Phone 8 gebracht? Wer als Developer die Weihnachtsruhe für Neues nutzen möchte, sollte sich Windows Phone 8–Entwicklung ansehen. Dazu benötigt man (Visual Studio 2012 und) das Windows Phone 8 SDK. Das SDK beinhaltet alle nötigen Developer-Tools für die Entwicklung von Apps für Windows Phone 7.1 und Windows Phone 8. Max hat in seinem ersten Artikel “App-Entwicklung für Windows Phone 8–Part 0“ bereits die wichtigsten Schritte für die Entwicklung einer coolen geographische Bildergalerie beschrieben. Sozusagen als Teil 0b hier ein paar Informationen, um die Entwicklungsumgebung für #wp8 auf dem eigenen Rechner herzustellen.
[More]
Von
Philipp Wintersberger (Gastblogger)
11. December 2012 15:29
In diesem Tutorial werde ich euch zeigen, wie schnell und einfach man eine eigene Windows 8 Blog-Reader App auf die Beine stellen kann. Ihr könnt die 8 Schritte einfach der Reihe nach durcharbeiten oder gleich den Sourcecode von meinem Blog herunterladen und durchstarten!
[More]
Client-Development | Mobile-Development | Tutorial | Visual Studio 2012 | Windows 8
Tags:
apps
, blog
, developer
, development
, Metro Style App
, Mobile
, visual studio 2012
, Windows 8
, windows store
, xaml
, c# 
Von
Toni Pohl (Gastblogger)
30. September 2012 13:31
In Windows 8 leben zwei APIs-Bibliotheken um Windows Store Apps zu bauen: Windows Runtime und Windows Library for JavaScript. Die Namespaces sind mit jenen des .NET Frameworks ähnlich und werden über das API Metadata-Format (Windows.winmd) bereitgestellt. Im MSDN existiert eine Windows API Referenz dafür.
[More]
Von
Jürgen Mayrbäurl
27. September 2012 13:56
Der heurige Herbst ist für Softwareentwickler im Microsoft-Umfeld so richtig spannend. Sowohl bei den Entwicklertools als auch in der Azure-Cloud jagt eine Neuerscheinung die andere: Visual Studio 2012, WinRT, Windows Azure Websites, Virtual Machines, die erste Preview von Windows Azure Active Directory, etc. Diesen Workshoptag widmen wir daher der Frage, wie man mit Visual Studio 2012 Windows Apps entwickeln kann, die im Hintergrund Services in der Azure-Cloud nutzen. Am Vormittag stehen die klassischen Windows Desktop Apps im Mittelpunkt. Ihr Trainer Rainer Stropek, MVP für Windows Azure, zeigt Ihnen anhand eines durchgängigen Beispiels, wie eine Desktop-Anwendung mit REST-Services in Windows Azure Websites mit .NET 4.5, C# 5 und Visual Studio 2012 umgesetzt werden kann. Er geht dabei auf Aspekte wie Service-Authentifizierung mit ACS (inkl. Ausblick auf das kommende Windows Azure Active Directory Service), Deployment der Serviceschicht über Webdeploy, Skalierbarkeit und vieles mehr ein. Es kommen aber auch die neuen C# 5 Features zum Einsatz, die den Umgang mit asynchronen Serviceaufrufen in die Cloud massiv vereinfachen. Am Nachmittag wechseln wir vom Desktop zur Windows Store App. Rainer wird Ihnen zeigen, wie einfach es unter anderem mit Hilfe der neuen Windows Azure Mobile Services ist, Apps zu erstellen, die Services in der Azure-Cloud konsumieren. Der Workshoptag ist konzipiert für Entwickler, die Erfahrung mit der Entwicklung von Windows-Anwendungen mit .NET und C# haben. Grundlegendes Wissen über Webservices, insbesondere REST, ist von Vorteil, jedoch keine Voraussetzung. Vorwissen in Sachen Entwicklung von Windows Store Apps oder Windows Azure wird nicht vorausgesetzt. Anmeldung und weiterführende Informationen… Agenda: 08:30 – 09:00 Registrierung 09:00 – 10:30 Entwicklung von Windows Desktop Apps Teil 1 10:30 – 10:45 Kaffeepause 10:45 – 12:15 Entwicklung von Windows Desktop Apps Teil 2 12:15 – 13:15 Mittagspause 13:15 – 14:45 Entwicklung von Windows Store Apps Teil 1 14:45 – 15:15 Kaffeepause 15:15 – 16:45 Entwicklung von Windows Store Apps Teil 2 16:45 – 17:00 Ausklang der Veranstaltung Mitzubringen für die Teilnahme an den Hands-on-Labs sind: Notebook mit Visual Studio 2012 und Windows Azure SDK Aktive Windows Azure Subscription (Kostenlose Testsubscription unter http://www.windowsazure.com/de-de/pricing/free-trial/ ).
Von
Toni Pohl (Gastblogger)
13. September 2012 08:00
Na, schon eifrig beim Entwickeln von Windows 8 Apps? Auf codeplex gibt es seit gestern eine coole Entwicklungshilfe für das Development von Windows 8 Apps: Code Snippets for Windows Store Apps. Dieses Projekt enthält etwa 60 gebräuchliche Code Snippets für Windows Apps und ist für die Sprachen C#, VB, Javascript und C++ verfügbar.
[More]
Von
Toni Pohl (Gastblogger)
19. August 2012 13:51
Beim App-a-thon Weekend im Juli kamen Software-Entwickler bei Microsoft in Wien zusammen, um Windows 8 Apps zu bauen. Christoph Wille war so nett und hielt einen Spontanvortrag über seine Windows 8 Applikation “Sprudelsuche” und Do´s and Don´ts beim Development solcher Apps. Sprudelsuche ist eine Windows 8 App zur Suche nach der günstigsten Tankstelle in Österreich. Hier Christophs´Gastbeitrag!
[More]
Von
Andreas Schabus
16. June 2011 23:29
Heute wurde die Beta Version des Microsoft Kinekt for Windows SDK for Academics and Enthusiastsfreigegeben und kann ab sofort kostenlos für die Entwicklung nicht kommerzieller Anwendungen von http://research.microsoft.com/kinectsdk heruntergeladen werden. Mit Hilfe des SDK kann die Microsoft Kinect in eigene Windows 7 Anwendungen eingebunden werden. Dafür werden u.a. Raw Sensor Streams, Skeletal Tracking, sowie Advanced Audio Capabilities für die Programmiersprachen C++, C# oder Visual Basic zur Verfügung gestellt. Weiter Informationen, Beispiele,…
Von
Mario Meir-Huber
21. January 2011 09:00
Im letzten Beitrag habe ich erklärt wie man ZIP-Dokumente schreiben kann. Nun wollen wir diese Dokumente auch auslesen und entzippen. Hierfür iterieren wir über alle Elemente in einer Datei. Hierfür öffnen wir die Datei für den lesenden Zugriff mit “ZipFile.Read”. Die Zipdatei hat eine Liste von verzippten Dateien, welche in “Entries” enthalten sind. Hier können wir auf einfache Weise mit der foreach-Schleife iterieren. Wir geben die Namen einfach auf der Konsole aus. private static void ReadZipFile()
{
using (var file = ZipFile.Read(FILENAME))
{
foreach (var entry in file.Entries)
{
Console.WriteLine(entry.FileName);
}
}
}
Nicht viel schwieriger ist das Entzippen der Dateien. Hier müssen wir nur noch überprüfen, ob ein Eintrag kein Text oder Verzeichnis ist – dies wollen wir natürlich nicht entpacken
private static void UnpackZipFile()
{
using (var file = ZipFile.Read(FILENAME))
{
foreach (var entry in file.Entries)
{
if (!entry.IsDirectory && !entry.IsText)
{
entry.Extract(@"C:\b\extract");
}
}
}
}
Von
Mario Meir-Huber
20. January 2011 12:10
Eine Aufgabe, welche jedem Softwareentwickler im Laufe der Entwicklung unterkommt, ist die Generierung von Dokumenten – hierfür habe ich bereits itextsharp für PDF vorgestellt – und das Packen/Entpacken von Dokumenten in ein ZIP-Archiv. Viele Anwendungen verwenden das ZIP-Format um verschiedene Elemente in eine Datei zu kapseln und dem Benutzer dadurch einfach zugänglich zu machen. Für diese Samples verwenden wir die DotNetZip Library, welche auf CodePlex verfügbar ist (http://dotnetzip.codeplex.com/). Neben der DotNetZip Library gibt es noch eine Handvoll anderer Libraries aber in diesen Sample wollen wir uns auf die DotNetZip Library konzentrieren. Zu Beginn ist es wichtig das wir einen Dateinamen festlegen: private const string FILENAME = @"C:\b\CodeFestSample.zip"; Danach kann man das ZIP-Archiv erstellen. Hierfür erstellen wir eine neue Instanz der Klasse “ZipFile” und setzen die Komprimierung auf die höchste Stufe. Für schnelles Packen/Entpacken sollte ein niedriger Level gewählt werden. Die DotNetZip Library hat eine Funktion “AddDirectory” welche ein gesamtes Verzeichnis verzippen kann. private static void CreateZipFile()
{
using (ZipFile newZipFile = new ZipFile(FILENAME)
{
CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression
})
{
newZipFile.AddDirectory(@"C:\b\FilesToZip");
newZipFile.Save();
}
}
Dadurch wird das Verzeichnis in das Root-Verzeichnis des Zip-Archives inkludiert. Der Nachteil ist jedoch, das dies bei größeren Dateien unter Umständen sehr unübersichtlich werden kann. Daher empfiehlt es sich, den Methodenaufruf mit einem Pfad als zweiten Parameter zu versehen.
newZipFile.AddDirectory(@"C:\b\FilesToZip", "SomeDir");
Somit ist das Verzeichnis in einen Sub-Folder gekapselt und sieht bereits wesentlich besser aus.
Will man eine vorhandene ZIP-Datei erweitern –sprich neue Dateien hinzufügen – so öffnet man die Datei mit “ZipFile.Read”. Die Methode “AddFile” fügt eine einzelne Datei hinzu.
private static void AddFilesToDir()
{
using (var file = ZipFile.Read(FILENAME))
{
file.AddFile(@"C:\b\TestPage.html");
file.Save();
}
}
Sieht man sich die Datei nun an, bemerkt man das ein neuer Ordner namens “b” erschienen ist. Dies wird richtig komplex wenn man eine Datei aus dem Ordner “C:\blub\oh\mein\gott\ist\das\ein\ur\langer\ordner\mit\vielen\dummen\unwichtigen\langen\sub\ordnern\die\eigentlich\gar\nicht\notwendig\sind”
Auch hier würde der Pfad erhalten bleiben. Da empfiehlt es sich, einen Subordner Typ festzulegen. Dies funktioniert ganz einfach indem man diesen als zweiten Parameter spezifiziert.
file.AddFile(@"C:\b\TestPage.html", "/");
Von
Mario Meir-Huber
17. January 2011 19:26
Umbraco, ein beliebtes auf C# und SQL Server basierendes Content Management System, kann dank des Azure Accelerators einfach auf Windows Azure installiert werden. Dafür sind lediglich zwei Solutions notwendig – eine für Windows Azure und eine für SQL Azure. Der HowTo wurde von Daniel Bardi im Umbraco Wiki geschrieben und ist hier verfügbar. Morten Christensen hat in seinem Blog den Install-Vorgang wesentlich umfangreicher beschrieben und auch einiges zum Windows Azure Deployment Prozess geschrieben. Seine Beiträge können hier (Teil I) und hier (Teil II) abgerufen werden. Die beiden letzten Posts sind nicht nur für all jene von Interesse, die Umbraco auf Windows Azure installieren wollen sondern auch für jene, die generell Interesse an Deployment-Themen rund um Windows Azure haben.
Von
Mario Meir-Huber
2. November 2010 16:46
Auf der PDC 2010 in Redmond gab Anders Hejlsberg einen weiteren Ausblick auf die Zukunft von C#. Während bei Version 4 der Entwicklungssprache “dynamic” im Vordergrund stand, ist C# 5 vor allem für asynchrones programmieren (neben anderen Verbesserungen) ein zentrales Thema. Die Abarbeitung von Aufgaben, welche über ein Netzwerk gehen oder aus anderen Gründen länger brauchen waren stets komplexe Vorgänge. Es gab hierfür meist 2 Wege: 1. Alles synchron abarbeiten Dies führte dazu, das der Thread blockierte bis die Abarbeitung fertig war. Vor allem bei großen Datenübertragungen aus dem Netz, großen Dateien oder ähnlichem führte dies oft zu Problemen. Daher mussten solche Vorgänge, wollte man die UI soweit haben das diese reagiert, parallelisieren. Dies führte zu Punkt 2: 2. Asynchrone Methoden Hierbei wird ein Callback aufgerufen, wenn ein Download oder ähnliches Fertig ist. Dies hatte jedoch den Nachteil, das es den Code unnötig verkomplizierte und Callback-Zuweisungen notwendig machte. Außerdem erschwerte es die Fehlerbehandlung, da etwas, das oft zusammen gehört auf zwei Methoden aufgeteilt wurde. Asynchrones entwickeln hatte zwar viele Vorteile, jedoch den Nachteil das es im Code “nicht so schön” wie eine synchrone Methode aussieht. Mit der nächsten Version von C# wird dies nun wesentlich vereinfacht. Kurzum: es ist so schön leserlich wie eine synchrone Entwicklung, jedoch asynchron und blockiert dadurch keinen Thread. Alles was man benötigt sind diese zwei Keywords: async
await
“async” markiert eine Methode für einen asyncronen Aufruf, “await” stellt diesen dar. Ferner wird noch der “Task” verwendet, welcher als Rückgabe einer Methode mit asynchronen Aufruf dient. Die folgende Methode ist synchron und lässt in einem ViewModel die WPF Anwendung für 5 sekunden einfrieren:
public void Query(string symbol)
{
Effect = new BlurEffect() { Radius = 20.0 };
WebClient wc = new WebClient();
string result = wc.DownloadString(string.Format(target, symbol));
var splitted = result.Trim().Split('\n').Skip(1);
Symbols.Clear();
foreach (var item in splitted)
{
Symbols.Add(SymbolViewModel.Create(item.Split(',')));
}
Effect = null;
}
Da diese Methode nicht asynchron abläuft. Dies hat zum Effekt das der Benutzer viel herumklickt und es “geschieht” nichts. Baut man diese Lösung auf die neuen Möglichkeiten mit C# um, so sieht dies folgendermaßen aus:
public async Task QueryAsync(string symbol)
{
Effect = new BlurEffect() { Radius = 20.0 };
WebClient wc = new WebClient();
string result = await wc.DownloadStringTaskAsync(string.Format(target, symbol));
var splitted = result.Trim().Split('\n').Skip(1);
Symbols.Clear();
foreach (var item in splitted)
{
Symbols.Add(SymbolViewModel.Create(item.Split(',')));
}
Effect = null;
}
Hier läuft alles asynchron ab und das UI wird nicht blockiet. es waren nur wenige Abänderungen notwendig: 1.) Methode mit “async” versehen, 2.) einen Task zurückgeben, 3.) await vor DownloadString einfügen und 4.) statt “DownloadString” die Methode “DownloadStringTaskAsync” verwenden. Der Compiler kümmert sich um alles was hier asynchron ist – inklusive des Callbacks. Als Entwickler bekommt man vom asynchronen Aufruf nichts mehr mit. Durch das Keyword “await” wird im Hintergrund ein Delegate mit der restlichen Methode erstellt.