Monday, February 26, 2007

I prepared a short screencast video, showing Anglia's Datamaker technology generating lots and lots of managed code automatically.

In the video, we select a Dynamics Nav table tell it we are writing a SQL Compact application and DataMaker does the rest.

The video concludes of the auto generated code being pasted into a Visual Studio solution and being complied successfully.

It sure save a lot of typing....

 

Video at -

http://private.angliabs.com/webextension/video/datamaker.avi

 

DataMaker details at -

http://www.angliabs.com

Monday, February 26, 2007 4:39:59 PM UTC  #    Comments [0]  | 

I've been getting lots of email around the contribution I made back about a year ago to OpenNetCF (v1.4),   see www.OpenNetCF.org

This was back in the day when the Compact Framework 2.0 had just been launched and we finally had access to serial ports without the need to P/Invoke.

I put together at least a starter for ten set of classes that would extract data from the stream of NMEA sentences and fire corresponding events,  i.e fire an event when position changes or a satellite appears in view.

Of course this hasn't been a solo-mission, once the GPS library was put up as shared source I had loads of input into how the library should work.   It was amazing to see people rolling their sleeves up and helping me when my basic maths skills ran out of steam (that happened fairly early on :-) )

 

When the Windows Mobile 5 SDK shipped we saw the release of the GPS native classes.     This superceded the OpenNetCF library and provided a much more robust implementation of the GPS code.    To get a sample application that utilises these Windows Mobile 5 features have a look at -

http://msdn2.microsoft.com/en-us/library/ms879577.aspx

Peter Foot found a couple of little issues with the sample that he blogged about at -

http://www.peterfoot.net/FixingTheWindowsMobile50GPSSampleCode.aspx

 

However it seems that OpenNetCF GPS library is still out there and being used.   I was amazed to see a screenshot of it being used as one of the first apps on a Gumstix device running CE.    * Note the UI was not added by me,  another OpenNet contributor (who's name escapes me), did a superb job of putting a face on the library code.

http://66.102.9.104/search?q=cache:oo4LpaT5eaUJ:home.tampabay.rr.com/vescovi/gumstix/gumstix.htm+gumstix+gps+ce+opennetcf&hl=en&ct=clnk&cd=3&gl=uk

 

So although happy to take questions about my early attempt to provide a generic open source GPS library,  I think the native code stuff in WIndows Mobile 5 now wins.

 

For those of you, still out there wanting features and add ons to the OpenNetCF offering maybe with enough demand I'll do a version 2, taking the best of what's provided in Windows Mobile 5 and adding on a few of the bells and whistles that have evolved with the OpenNetCF version.

Monday, February 26, 2007 4:26:23 PM UTC  #    Comments [0]  | 
Sunday, February 25, 2007

Roll Up, Roll Up

Jeremy Palmer and I are talking about build line of business applications at the upcoming Architecture Insight Conference (5th-6th March, in Newport UK).   I'm planning to show how to build mobile apps 'sausage-factory' style...

Register here -

http://www.Microsoft.co.uk/Events/registermulti.aspx?event=ArchitectInsight2007

 

Event Blog here -

http://blogs.msdn.com/ArchitectInsight/

Sunday, February 25, 2007 3:33:05 PM UTC  #    Comments [0]  | 
Saturday, February 24, 2007

For those who haven't heard of Sideshow see -

http://www.Microsoft.com/windows/products/windowsvista/features/details/sideshow.mspx

Following Daniel Moths brilliant introduction to Windows SideShow.

http://www.danielmoth.com/Blog/2006/11/vista-sideshow.html

I thought I would have a play.   However to get things up and running you need to install the Vista SDK (big, download at (32bit) ) -

http://download.microsoft.com/download/a/7/7/a7767f09-0136-4a96-a1f8-276bf0ee31fa/Setup.exe

& then then the managed code wrapper for Sideshow at (32bit)-

http://download.microsoft.com/download/1/5/b/15bbf1b9-a340-4b9a-974b-4bf12123a5dc/WindowsSideShowNETFx_Beta.msi

So after all this,  all I wanted to do is port a simple proof of concept I-Ching program I put together based on the content at -

www.binaryrefinery.com/i-ching/mobile.aspx

Want to know more about I-Ching have a look at -

http://en.wikipedia.org/wiki/I-Ching

& here's the result after several Gb's less (well 1.2) of hard drive space -

 

Will post source when I have fully recovered :)

Saturday, February 24, 2007 10:45:26 PM UTC  #    Comments [0]  | 
Friday, February 23, 2007

For the second year running, we have attained the Mobility Competancy.    This is a great addition to our Micosoft Gold Partner Status and shows that at Anglia we have top class MCPs and satisfied customers.

 

check us out at -

www.angliabs.com

Friday, February 23, 2007 1:34:40 PM UTC  #    Comments [0]  | 

So this morning,  we decided it was about time to move from source stafe over to Team Foundation Server (TFS).

It seems that TFS will only install if the default database instance is a SQL Server 2005.   In our case we have a default instance of SQL 2000 and a named instance of 2005.

Doh!

Friday, February 23, 2007 12:02:21 PM UTC  #    Comments [0]  | 
Wednesday, February 21, 2007

So we often face the issue of how we deploy applications to mobile devices.  Currently (well at least until Windows Mobile 6 is mainstream) we have to deploy various CAB files to the device before a line of business application can run on a device.

Now I know lots of hardware vendors have ways of pushing out applications to devices, but I wanted something that would work for all.

So this is what we do.

Screenshot shows a web-page with all the required cabs.   Its a simple asp.net application that enumerates .cab files in a given directory.

At the bottom is a list of our primary LOB applications and corresponding version number.    This data comes from a SQL table that is (and here's the magic)  replicated via SQL Compact to the device.


Over on the mobile device when our application starts it compares the assembly version of the running application with that it has in the mobile application version table.    If they are different a new application cab is downloaded from the shown web-page and installed.

We achieve the version upgrade by using a separate .Net Compact Framework application that is launched from the application automatically downloads the required cab and installs.

Once download is complete the newly upgraded application is re-launched, with a command line parameter to pop up a message saying that the application has been upgraded.

This is a massive time saver,  as it means we can automate the whole process of managing and controlling deployment.

Anyone else do anything similar?


 

Wednesday, February 21, 2007 2:28:05 PM UTC  #    Comments [0]  | 

I find myself increasingly in commercial situations where we are bidding for business selling solutions based around Dynamics Nav.   This is all great, but what makes one Microsoft partner any different to another when put in from of a company selecting an ERP solution.   The answer we've found is value add.

Having Windows Mobile LOB applications in the tool box is a great commercial differentiator.  Being able to say that we can take ERP screens out of the box and deliver them to mobile devices can mean the difference between winning the gig or not.

 

Of course there are lots of factors when changing a key line of business system like an ERP;  however showing something real on a mobile device is normally a good way to ensure that your proposal sticks in the panel making the shortlists mind.

 

We also find that Windows Mobile and SQL Compact providing store-and-forward offline access is key.     The last thing in this price competitive world (certainly in the UK) a company can stand is to install a vast wireless infrastructure to support permanently connected mobility.   SQL compact lets you build solutions where you can work anywhere pretty much over any network.  When you have wireless access of some kind (wifi, GSM, 3G, satellite) the devices sync back to our central ERP system (in our case Dynamics Nav).   

 

We also challenge other vendors to look how they would support staffs that routinely climb in the back of delivery trucks or the hold of ship.   Normally most other offerings rely on two way permanent connections continually between ERP and handheld device.    This is not the case with SQL Compact.

 

So life with Windows Mobile for LOB is good.   Having a core set of key technologies that do the heavy lifting like SQL Compact and .Net Compact Framework means I can focus on building the desired functionality rather than worry about the plumbing underneath.   Furthermore having a SQL based ERP system such as Dynamics doing the really complex stuff, means that we can achieve amazing results in a timeframes and costs appropriate to 50-150 user systems.

 

I'm not sure why I'm telling you all this, because you'll go out and do the same :-)   But it certainly is working for us...

http://www.angliabs.com

 

Wednesday, February 21, 2007 9:57:54 AM UTC  #    Comments [0]  | 
Tuesday, February 20, 2007

Jeremy Palmer (MS), came up with a great term the other day.

'Monkey Code',  thats the code you write again and again, each time you write a data-driven application.   You know:

Create database connection
Sql selects (spelling everything correctly)
error handling
etc.

all that usual boring stuff...

So trying to make writing applications less like doing the washing up,   I've been building as part of my day job a tool that does the 'Monkey Code' for you.

I've got it to the stage of point and shoot.  Point the tool at a SQL table, stored procedure or view and it builds the rest.

Results of this work can be found at -

http://www.microsoft.com/windowsmobile/providers/SolutionDetail.aspx?SolutionGUID=a5c61b37d2fe4e348829a53315d2859b

Thanks Jeremy for putting a name to my pain.   'Monkey Code'

Tuesday, February 20, 2007 11:45:18 PM UTC  #    Comments [0]  | 
Monday, February 19, 2007

Just an FYI

I'm not sure if anyone else has see this behaviour.    Under SQL Compact and previous versions, the only way I have found to retrieve an image from the database is to use a - SqlCeCommand.ExecuteScalar

I cannot no matter how hard I've tried get SqlCeCommand.ExecuteResultSet to retrieve an image out of the database.

 

 

 

Monday, February 19, 2007 3:24:12 PM UTC  #    Comments [0]  | 

Windows Vista,  has a great feature that has been introduced within the user interface.  Textbox fields when they are empty display their label, as follows:

What a great idea to implement this feature on Windows mobile; this would save vast amount of screen space as textbox labels seem to utilise lots of screen space (certainly on the LOB apps I write).

So with half an hour to kill this morning I produced a quick proof of concept that achieve this.  

Screenshot below, showing textbox not in focus.   Notice label colour is gray.

Screenshot below, showing textbox in focus

The code behind this is as follows, just implementing the GotFocus and LostFocus events on the textbox control:

private bool inlabelmode = true;

private string labeltext = "Our Box";

public Form1()

{

InitializeComponent();

labelon();

this.trackBar1.Focus();

}

private void labelon()

{

this.textBox1.ForeColor = Color.Gray;

this.textBox1.Text = labeltext;

inlabelmode = true;

}

private void labeloff()

{

this.textBox1.Text = "";

this.textBox1.ForeColor = Color.Red;

inlabelmode = false;

}

private void textBox1_GotFocus(object sender, EventArgs e)

{

if (inlabelmode) labeloff();

}

private void textBox1_LostFocus(object sender, EventArgs e)

{

if (this.textBox1.Text == "") labelon();

}

 

Anyhow,   it all needs wrapping up into a nice user control, but I thought I'd put this up to share.

 

 

Monday, February 19, 2007 10:43:45 AM UTC  #    Comments [5]  | 
Sunday, February 18, 2007

Test Post

Sunday, February 18, 2007 9:06:03 PM UTC  #    Comments [0]  | 

Theme design by Jelle Druyts

Pick a theme: