Feb 13

This is part one in a series of four and will step by step explain how to use WCF services to access SQL Azure Database from Windows Phone 7 app. As an example I will develop a Windows Phone app where the user can create an account and later on log in to the account by user name and password. The accounts are saved in SQL Azure and I am using WCF for communication between the WP7 app and SQL Azure Database.

The book Beginning Windows Phone 7 Development has a very detailed chapter about using SQL Azure Database.

Part 1: Signing up to Windows Azure and create your SQL Azure Database

Continue reading »

Tagged with:
Sep 01

Adding gradient details to your application graphic can make a big difference. The out-of-box support for this in Compact Framework is not very good and you need to custom build controls with gradient support. This post explains how to create your own gradient buttons in .NET Compact Framework.

I have earlier written a post about Creating gradient background with transparent labels in .NET Compact Framework and the approach when creating a gradient button is quite similar. As a base for drawing gradient I use the same GradientFill.cs and Win32Helper.cs that I used and explained when creating gradient background.

The GradientFill.cs and Win32Helper.cs I have got from Microsoft MSDN site: How to Display a Gradient Fill. Their example also have a gradient button, but the example I will show here is a very simple gradient button that is easy to continue developing to suite your needs.


using System;
using System.Diagnostics;
using System.Drawing;
using System.Runtime.InteropServices;

Continue reading »

Tagged with:
Aug 31

In my pet project Run Smart With Me I decided to use GPS.NET 3.0 to handle the GPS functionality. GPS.NET is an open source project and can be found on CodePlex. My pet project will use the built in GPS device on mobile devices to track speed and distance when working out (running, cycling, skating).

In this post I will explain how I used the GPS.NET in my project.

I copied the following introduction to GPS.NET from CodePlex:

GPS.NET is a formerly commercial .NET component maintained by GeoFrameworks, LLC from 2004 to 2009. In 2009, Jon Person decided to release the full source code of GPS.NET to the public domain for the benefit of the open source development community. This version (3.0) is the latest release which had a short lifespan before being released here on CodePlex. The purpose of this framework is to deliver intuitive real-time GPS functionality with maximum laziness efficiency for all possible computers, mobile devices and NMEA-compliant GPS devices.

Continue reading »

Tagged with:
Mar 06

This post will first explain the advantages you get from separating language and hard coded text from your application code and then show code examples in C# helping you getting started implementing language and text separating.

Lets have a look at the advantages:

Multi language support

When you separate the language from your application code it takes little effort to implement multi language support for your application. The only thing you need to do is to translate your original language file into the languages your application shall support and select on start up what language file to parse.

Continue reading »

Tagged with:
Nov 12

When developing Windows Mobile applications in Visual Studio creating user controls or custom controls will often help you get a better application and decrease your development time. Often you will have problem using your user controls or custom controls in the Visual Studio designer. Forms using your controls will not show at all in the designer and sometimes Visual Studio will shut down because of this (happens often if you are referring to external .dll in the user control or custom control).

I will walk you through a simple example on how you can achieve this with out any problems at all.

I will use a simple example where I have created a Header user control that is referring to the Microsoft.WindowsMobile.dll and Microsoft.WindowsMobile.Status.dll. Then I have a simple Form that I will use the designer to append the Header to and make sure the Visual Studio designer still works.

I am using Visual Studio 2008, Windows Mobile 6 Professional SDK and .Net Compact Framework 3.5 for this example.

Continue reading »

Tagged with:
Oct 10

apacheWhen developing all kind of projects a good strategy for logging can save you a lot of time and frustration. Personally I am very found of using Apache log4net and this post will describe the most important features in log4net and how to implement and use this in a .Net Compact Framework project.

log4net can be configured with different appenders that logs to different sources (file, output window, smtp, server ++). You can also configure what kind of log levels will be written to the different appenders (info, debug, warn, error and fatal).

Most of the time I use two different appenders: I use the DebugAppender to log to my output window in Visual Studio, I like to set this appender to log all levels. I also like to use a LogFileAppender to log to a file on the device, I usually set this appender to only log error and fatal.

You can read documentation and download Apache log4net at

Continue reading »

Tagged with:
Jul 02

I have been involved developing a C#.Net Compact Framework project were we are using Model-View-Presenter(MVP) pattern for quite a while now and I would like to share my experiences learned during this project with you.

First of all, using MVP in a Compact Framework project is done exactly the same way as you would do it for standard C#.Net (or any other programming language). For some reason (unknown to me) developers tend to skip using patterns in mobility projects. I guess they think that good architecture is not necessary in smaller projects, like mobility projects often are. Wrong! As a developer you should strive to achieve good architecture in your projects no matter what size or complexity they have. What pattern to choose is of course another discussion. We chose to base the project architecture on the MVP-pattern and succeeded doing so. Let me walk you through how we ended up using it.

The figure below shows how the MVP components interact with each other. The View are implemented in the screens (forms) and the Presenter presents the data to be displayed to the View. The Presenter is responsible for the business logic and retrieve/save data to the Model. The Model will often interact with a Data Access layer (left out in this example for simplicity). The Model will also have business specific objects that both the Presenter and View can use, but the View will never ask the Model for data or save data to the Model.


Continue reading »

Tagged with:
May 05

A few days ago I wanted to create a fresher UI then what .NET Compact Framework offers out of the box. I wanted to create a gradient background for the screen and I wanted to have transparent labels on top of the background. In my opinion this is not much to ask for and I was a bit surprised that I actually had to do this myself.

Well after a few hours I made a gradient background and a transparent label. I will now step by step go through my solution.

The first thing I started with was to create a gradient background. I found that the best way achieving this would be to override OnPaintBackground in the Screen class. I found a very good article on how to do this on MSDN: How to display a gradient fill. I copied the GradientFill class and the Win32Helper class into my project, I didn’t bother using the GradientFilledButton class since I only needed gradient for my background.

Then I override the OnPaintBackground in my Screen, giving me this Form:

using System.Drawing;
using System.Windows.Forms;

Continue reading »

Tagged with:
Subscribe to my feeds Follow me on Twitter