Posts

Showing posts with the label C#

Speed up your Windows Phone App!

Du hast eine Windows Phone App und bist mit der Performance nicht ganz zufrieden? So ging es mir persönlich zumindest bei einer meiner Apps. Doch keine Sorge! Denn mit nur wenigen einfachen Anpassungen am Code lässt sich die Performance deiner App sichtbar verbessern. Ich zeige euch nun wie das geht… 1. Fast-App-Switching Eine Windows Phone App kann mehrere Zustände einnehmen. Wird eine laufende App beendet, so kann diese entweder “ Dormant ” oder “ Tombstones ” sein. Ersteres bedeutet, dass die Daten der App weiterhin im Arbeitsspeicher des Phones gespeichert sind, wohingegen bei letztem der gesamte Datenbereich im Hauptspeicher freigegeben wurde, um Platz für andere Apps zu schaffen. Wenn eine App nun also vom “ Dormant ” Zustand wieder aktiviert wird, brauchen keine Daten der App geladen vom IsolatedStorage oder aus dem Web geladen werden, da diese schließlich noch vorhanden sind. Daher kommt auch der Name Fast-Application-Switching, da man so ohne Ladezeiten zwischen verschieden...

Lösung für Init-Problem bei Tessnet2 OCR Wrapper in C#

Tessnet2 ist ein C#-Wrapper für die in C++ geschriebene Tesseract 2.0 OCR Library. OCR steht für Optical Character Recognition und dient zum Umwandeln von Textinhalt aus Bildern zu Klartext. Diese Library werden vermutlich in unserem nächsten Augmented Reality Project am Worcester Polytechnic Institute anwenden. Jedoch gibt es schon beim erstellen der ersten Testanwendung viele Probleme, auf die man stoßen kann, und auch ich darauf gestoßen bin. Es folgen nun die einzelnen Probleme und deren Lösung: 1. BadImageFileException wird geworfen Dieser Fehler wird geworfen, wenn die referenzierte DLL von Tessnet entweder in der falschen Zielplattform kompiliert wurde, oder die verwendete .NET Version neuer als 2.0 ist. Im ersten Fall muss man entweder die DLL der anderen Zielplattform (x64, x86) verwenden, oder in den Compiler-Einstellungen von Visual Studio die Target-Plattform des eigenen Programms entsprechend ändern. 2. Pfadangabe und Version der tessdata Dateien Wichtig zu wissen i...

Automatische Bildschirmskalierung in MonoGame und Windows 8 Store App

So langsam geht die Portierung von VaderpiXX auf Windows 8 dem Ende entgegen. Bei der Anpassung des Viewport beim Wechseln der BIldschirmauflösungen habe ich mir heute etwas die Zähne ausgebissen und möchte nun meine letztliche Implementierung erläutern. In diversen Foren bin ich auf viele Entwickler mit dem selben Problem gestoßen und oft wird ein alternativer Pull angeboten oder ein paar Änderungen in der OpenTK (eine Open-Source C#-Wrapper für OpenGL, OpenAL und OpenCL). Da ich es jedoch bevorzugen wollte den OpenTK-Code nicht zu ändern, habe ich es letztlich wie im folgenden Snippet gelöst: protected override void Initialize() { graphics.IsFullScreen = true; graphics.PreferredBackBufferHeight = 480; graphics.PreferredBackBufferWidth = 800; // ... graphics.ApplyChanges(); ApplicationViewChanged += Game_ApplicationViewChanged; this.Window.ClientSizeChanged += Window_ClientSizeChanged; handleScreenViewState(); base.Initialize(); } void Window_Client...

HowTo: Erstellen eines WCF RIA Service für WP7

Image
Um beispielsweise mit dem Windows Phone auf eine Datenbank zugreifen zu können, wird ein WebService benötigt. Die Erstellung eines solchen Services ist nicht sehr aufwändig, da vieles im Hintergrund generiert wird. Folgend ein kleines HowTo. 1. Erstellung des Models mit dem EntityFramework Öffnet Visual Studio und erstellt zunächst ein leeres ASP.NET Projekt . Fügen Sie dem Projekt anschließend ein ADO.NET Entity Data Model hinzu, zu finden im Bereich Data . Wählen Sie dort Generate from Database und wählen dann im darauf folgenden Schritt die gewünschte Datenbank aus. In meinem Fall habe ich hier die NorthwindOA-Datenbank gewählt. Selektieren Sie dann die gewünschten Tabellen, auf die später unsere kleine Windows Phone App zugreifen soll. Nach einem Klick auf Finish werden anschließend alle Entitäten vom Entity Framework generiert und als Diagramm dargestellt. Jetzt ist es erforderlich, ein Build durchzuführen. Wird haben nun unser fertiges Model. 2. Erstellung...