ezyTip Review Published

April 22, 2010 15:28 by garrymc

logoMy ezyTip windows mobile application was just reviewed by Best Windows Mobile Apps who are an independent reviewer of Windows Mobile Applications and are a great source to find interesting Apps. They gave ezyTip 4 out of 5 stars and made it the featured App!  The app lost a few points due to some missing features around emailing and uneven splits which is fair. These are features that are planned for the next major version.

I’ve given them 10 free copies of the App to give away (wasn’t dependant on the outcome of the review btw) so if you want a free copy you’d best be quick and leave a comment to be eligible. You can find the review here .

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
kick it on DotNetKicks.com

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

ezyTip for Windows Mobile Goes Live!!

March 4, 2010 13:44 by GarryMc

Its been awhile since my last post, and during this time I’ve been working on a Windows Mobile Application for the new Windows Mobile Marketplace. It was an interesting experience, which I think turned out quite well in the end. I thought I’d start with a simple App that wouldn’t take too long, and I considered a number of alternatives. However, Windows Mobile being such a non-standard beast made even simple applications challenging. In the end I settled on a Tip Calculator which sounded very easy to do. Well, this is windows mobile, so nothing is easy to do!!1.6 Aspect Ratio Screen

One of the key issues with Windows Mobile development is that 90%+ of apps still look like they were built back in the 80s. A quick look at the Windows Mobile Marketplace will show that this is unfortunately still true. Though some developers are trying to break this trend and make more modern looking Applications.

So in developing my simple Application I wanted to make it look as good as any application on the iPhone, which is where the challenges really being. Unlike modern mobile platforms, Windows Mobile simply doesn’t make it easy to do modern looking applications. Its hard! which explains why so many Windows Mobile Applications look so bad.

Fortunately I managed to find the open-source project Fluid Controls, which is a framework for building modern looking UIs on Windows Mobile including gesture support on 6.0/6.1 devices. Its a great framework, but hasn’t been updated in over a year, is still in Beta and has only a sample application to work out how to use it; which takes a bit of time. Also, despite how good the framework is, it didn’t support all my needs so I had to modify the framework quite a bit to fill in all the gaps. Having said that if you’re looking to do modern UI dev work for Windows Mobile you should check that project out.1.3 Aspect Ratio

So the other challenge as any Windows Mobile developer will know is supporting the crazy number of screen resolutions. The general practice of moving controls around is fine for the older 80s look. However if you’re using an image as a background that doesn’t quite work. As a result I had to create specific artwork for each aspect ratio. The design that was used was to cut off the left and right sides of the 1:1.3 ratio screen to produce the 1:1.6 screen. In the final product, I had native support for 480x640 and 480x800 which are the two high resolutions for the two aspect ratios I supported. If your device has a resolution which is different but of the same aspect ratio (ie 1:1.3 or 1:1.6), then the Application will automatically rescale all the images to fit the resolution. This works really well for the most part, except for those with 240x400, the scaling features of Windows Mobile are not particularly good and it does a terrible job for this resolution. The solution is to provide native images for this resolution, but you also need to consider the size of the download. The final version comes in at 950K so adding more screens would have put it over a 1 Meg. Though I’ve since discovered there are users who use this resolution so I might add an update with the new resolution.

So it was an enjoyable side project to work on which took considerably longer to do than I expected. However, I think the final result is good and it proves the doing modern applications on Windows Mobile is possible, but not trivial.

In future posts I’ll run through my experience with the new Windows Mobile Marketplace and whether I’ll be doing any new 6.x development.

For those with a Windows Mobile Professional phone, you can check out the App with the link below:

 marketplace

Nb: if you are not in the USA, UK or Canada the above link may not work. If so you need to change your catalog (bottom right of website) to either USA, UK or Canada then do a search for ‘ezytip’.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
kick it on DotNetKicks.com

Currently rated 2.1 by 9 people

  • Currently 2.111111/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

UnitTestEx v1.2 Released!

August 20, 2009 23:23 by garrymc

I’ve just released an update to the UnitTestEx component which as the following additions:

  • Re-factored API signatures to make them much simpler
  • ExecuteUnitTestScript to support in/out params
  • Renamed ExecuteUnitTestValidationScriptReader to ExecuteUnitTestScriptReader which also now supports in params
  • Added unit test for all database related features ie ExecuteUnitTestScript
  • Added database scripts to allow testing of the new unit tests.
  • Compare now supports the ability to treat empty collections as the same as null collections. This feature can be useful if de-serialize your expected results from an XML file and your actual forces some collections to be null but the default behaviour of the code is to have initialized collections.

For anyone who has been using an older version, this version represents a number of breaking changes. The changes however are not significant and the APIs are now quite stable.

If you haven’t checked out the component yet, take a look at the original post and the code on CodePlex.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
kick it on DotNetKicks.com

Currently rated 3.1 by 24 people

  • Currently 3.083333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Visual Studio Debugging Slow? Try this!

August 20, 2009 22:08 by GarryMc

On my current project I find that I’m working with Visual Studio on a VM that is in an isolated domain, which is making life interesting! One of those ‘interesting’ things was that Debugging in Visual Studio was horrendously slow! It would take several minutes to get to the first break point (first line of a unit test), then still be slow when accessing other parts of the code.

The slow part of the process was the loading of the symbol files for each of the referenced dlls, including those of the .NET framework. As it turns out Visual Studio actually loads the symbol files for the .NET Framework from the internet! So the delay is primarily due to timeouts which lead to an unbearable (read unusable) debugging environment. The good news is that there is a solution which is quite simple and easy to implement.

 

Solution

In order to dramatically improve your debugging you need to have Visual Studio use a cached version of the symbol files, as well as ensure its not trying to locate symbol files on slow network shares.

Here are the steps you need to fix the issue:

  1. Create a directory to store you locally cached symbols. Ie C:\Temp\SymbolCache
  2. Change the debug settings for loading symbols, via Tools|Options|Debugging|Symbols.

    DebuggingOptions1

  3. (Option 1) Start debugging the code you want (on a machine that can access the internet; even if its slow) and have it sit on a break point. Then go back to the Symbols settings, where you’ll notice the button Load symbols from Microsoft symbol servers is now active (because that was obvious!). Click the button and you’ll see a popup windows indicating the download of the symbol files. After this is complete you can close out of this window and stop debugging. If you now check your Symbol Cache directory you’ll see you have a load of downloaded symbols (may vary depending on what you’ve referenced).

    SymbolCache

  4. (Option 2) If you have already done option 1 and you need to apply this to another machine, such as a team members machine, you can simply copy the files from one machine to the other.
  5. Depending on your environment you may also have one of two environment variables that need updating. Set either of these environment variables to the same location as the cache created in setup 2. The environment variables to change are _NT_SYMBOL_PATH or _NT_ALT_SYMBOL_PATH. The default setting for these are pointing to the Microsoft Symbols server. You can access the variables either via DOS (set command) or via the Advanced System Properties dialog in Windows.

One you’ve completed the changes you should see a dramatic improvement in your performance. Remember to check in Step 2 that you don’t have any non-existent paths or UNC paths defined as this will also slow things down.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
kick it on DotNetKicks.com

Currently rated 3.4 by 9 people

  • Currently 3.444444/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

dnp.Framework code released!

May 21, 2009 22:25 by garrymc

In an effort to start getting more of the code I’ve been working on out in the public domain, I’ve finally released all the code for the dnp.Framework on CodePlex. While its not all complete, most of the code is quite stable and can be used now!

Some of the major components that are included in the framework include:

  • Database Explorer API: An object oriented database schema API which is ideal for anyone wanting to do code generation. Its based on the provider pattern, so while it currently only supports SQL Server 2005+ its fairly easy to create a new provider for any system. This is stable enough for production use and has an extensive set of unit tests.
  • Data Provider: This is a database agnostic API which is fairly similar to the one in the enterprise library except it doesn’t support datasets and the like. Its also has little overhead. This was designed before the Enterprise Library had a decent model, and it has also been used on mobile devices with the compact framework.
  • DomainModeller: An abstract domain model view of a database schema (extends Database Explorer API). This API is most useful to creating scripts for code generation, where you can concentrate on domain concepts such as base classes, derived classes, namespaces and relationships etc, rather than database concepts. Using this API for code generation can significantly reduce the amount of code typically required.
  • ServiceModel: This project is still under development, but aims to provide the first ‘Model’ that extends the Domain Modeller to define a Service based Application framework. The ServiceModel acts as the abstract API for the final code generation scripts which are currently written using CodeSmith. The scripts currently have good support for the data access layer (repository), service layer (business logic) and entities (using design discussed here). More...
    Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
    kick it on DotNetKicks.com

Currently rated 2.7 by 10 people

  • Currently 2.7/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5