Nick's .NET Travels

Continually looking for the yellow brick road so I can catch me a wizard....

ACS PD Board gets and RSS feed

One of the initiatives that I've been pushing within the Professional Development board of the Australian Computer Society is trying to establish better communication channels.  To this end, we have put together a blog that will be used to introduce the PD Board, who's involved, what activities are being run and any other relevant information.  If you want to see some of the activities that the ACS runs, feel free to subscribe to the rss feed!

Time and Expense - basic db design

Taking the requirements from my previous post I set about to put together a simple database structure that would serve as the backend for my prototype T&E application. Below I have indicated to what extent the functionality is supported by the proposed structure:

- Timesheet entry
      primary functionality
- Client / project / job management (both billable and non-billable)
      project/work item management is primary functionality
      client management is not part of this app

- Staff management including the ability to analyse planned staff availability and setup schedule of rates
      not part of this app
- Expense management
      primary functionality
- Decent reporting / charting / analysis / modelling functionality
      support provided through reporting services
- Ability to export into csv, xml etc
      support provided through reporting services
- Invoicing / billing management
      not part of this app
- Email notifications (timesheets due, upcoming staff availability, billing/invoicing due etc)
      not part of this app (initially)
- Be able to track Time and Expenses OFFLINE
      primary functionality
- Be able to integrate with TFS
      primary functionality

See the following image for an overview of the initial database which should cater for most of these requirements.  I say initial because like most projects, I'm sure I will want to change the scope as I go along.....

 

 

 

ActiveSync 4.2 - perhaps this might work

For anyone with a mobile device, I would recommend downloading the latest in the ongoing connectivity saga, ActiveSync.  If you are running Vista, DO NOT install ActiveSync.  Vista comes with the Windows Mobile Device Center which is the replacement. 

Vista pointers.....

- Although Beta 2 doesn't allow you to set up partnerships, there is an optional update that you can install (run Windows Update and review optional updates) which will allow you to sync with your device.

- To install the WM5 SDKs you need to disable User Access Control (under user settings in the Control Panel).

Time and Expense reporting

I was attempting to catch up on the backlog of unread emails from the Stanski mailing list when I came across a brief off-topic discussion on Timesheet / Timetacking software.  Now you would have thought that such software would be available by the handful, or better yet, integrated into existing packages.  I'm guessing that most accounting packages have some facility to do timesheeting, but it was probably written by accountants, rather than from a user point of view - result is that they are not widely used.  This discussion also got me thinking back to a WF/WCF example application on expense reporting and whether I could combine this with the fantastic work that the patterns and practices group at MS did on the Mobile Client Software Factory.  Over a series of posts I will attempt to put together a "simple" T&E reporting tool, based around the following requirements (cut and pasted from the discussion on the mailing list):

- Timesheet entry (preferably over the internet)
- Client / project / job management (both billable and non-billable)
- Staff management including the ability to analyse planned staff availability and setup schedule of rates
- Expense management
- Decent reporting / charting / analysis / modelling functionality
- Ability to export into csv, xml etc
- Invoicing / billing management
- Email notifications (timesheets due, upcoming staff availability, billing/invoicing due etc)
- Be able to track Time and Expenses OFFLINE
- Be able to integrate with TFS

You will note that I have added my own requirements which are that the application should be able to operate offline and should be able to source project and workitem information from TFS.  As we are increasingly mobile (laptops, pdas, phones) we are more than likely to want to record this information when we are away from our desks.  For example, when you take a client to lunch, you want to be able to add that expense when you pay for the meal, instead of remembering to claim it later in the month.

So, the rough architecture of this application will be a core database (SQL Server 2005) which publishes data (filtered by user) using replication to a client database (SQL Server Everywhere).  The client application will be a WinForms application that works on both PDAs (Windows Mobile), Tablets, Laptops and Desktops (Windows XP).  Timesheet information will simply replicate between the client and server when a connection is available, while Expense information will use a queued (Mobile Client Software Factory) web service (Windows Communication Foundation) call to submit a new expense report.  Each expense report will initiate a workflow (Windows Workflow Foundation) that will require approval for expenses over a certain amount. 

Ambitious you say..... well you might be right, lets see how it goes ;-)

Some frozen thoughts about mobile technology

One of the incentives for accepting a job in Wellington is that it is only 4 hours from Mt Ruapehu. Why is this significant? Well, for those who don't know me that well, one of my passions is of course snowboarding. Anyhow, its been 3 weeks since arriving in NZ and I figured it was time to head to the snow. I booked into the cheapest backpackers I could find, rented a car and off I went.

Most times when I travel I take my laptop so that I can stay in touch with the rest of the world. Normally this involves paying some outrageous fee to a hotel, that has already charged through the roof for a room, just to get a couple of hours of Internet access. This time I figured that I would leave the laptop at home as I was unlikely to use it as connectivity was highly unlikely. Or so I thought. I had forgotten that we are in a new era of FlashPackers - travellers who live on a shoestring, yet have all the devices of your average executive. Not only does the Mountain View Motel have Internet, it's free!

The next bit of technology I wanted to comment on are the scanners that the mountain staff use to monitor punters. In the lift queues the staff scan everyone lift ticket (barcode scanner) to validate them. I restisted the urge to ask "Is that a Pocket PC?". This said, I would be interested to know what devices they are as they have to handle some pretty average conditions. Today was sub-zero and raining, all day.

Intilecta's starting to grow!

For the last couple of weeks the initial team here at Intilecta have been busy and, like most good startups, we are already looking to expand the team.  If you think you have what it takes and are keen to join the team, check out the oppportunities on the Intilecta website.

Why didn't I think of this..... use Crossbow to control Blackberries

Ok, so there are two points to this post:

1) Daniel Moth points out that instead of complaining that the WM5 SDK doesn't install properly on Vista Beta 2 I should of just temporarily disable User Access Control while installing the SDK - damn, why didn't I think of doing that.  I guess I assumed that when I told it to "Run as Administrator" it would have the same effect.

2) Anyone watching the Windows Mobile space should be aware that the code name for the next version of Windows Mobile is "Crossbow".  A quick google on Crossbow and Blackberry (for example if you were looking for a comparison) might lead you to the following page for an Australian company that sells a product called Crossbow Herbicide which is explicitly used "For the control of blackberries....." - how funny is that.

How good is this - defer connection to TFS on VS load

Check out this to see how you can tell VS not to connect to TFS when it loads.  One of my biggest complains about VS is that if you had Team Explorer open when you closed it previously it will try to connect the next time you open VS.  If you don't have a connection to the server it throws a wobbly, or worse, just seems to hang.  Anyhow, "add a DWORD value called AutoLoadServer under HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\TeamFoundation and set the value to 0."

SoftTeq represented at the ECU Early Career Awards

About a month ago I was nominated for the ECU Early Career Awards as recognition for the work I have done with the local IT community.  My involvement with the ACS and the Perth .NET Community of Practice saw me progress to becoming one of the finalists for 2006.  Unfortunately as I'm currently in Wellington, NZ, I won't be able to attend the awards ceremony so will have to wait and see who takes out the honours (cross fingers...) 

Bored sitting on the bus/train on the way to work - try being a Caveman for an hour or so...

This is a bit old news now as Frank had the scoop a couple of days ago, but since I've only just had the time to download the demo and play with it I thought I'd blog about it.  The guys from Lightworks have finished their first game, Cavemen, and its a ripper.  I must admit that I couldn't bring myself to put it down after playing the first couple of levels.  Although I haven't got around to buying the next levels (saving that for a rainy day) I would recommend anyone who wants a distraction for a couple of hours to try it now!

Off to NZ to work at Intilecta

For those who haven't heard through the grapevine I have been fortunate enough to be involved with an exciting new startup venture here in sunny (not) Wellington, NZ.  Intilecta is set to be a major player in the future of BI software and it has been an awesome experience to date.  With initial funding secured the CTO, Greg Martin, has put together a crack development team, with Steve Sim as the Development Manager, former ISA Technologies architect, David Gardner (also a Perthite) and of course myself. 

After flying into Wellington last week I have almost acclimatised to the time, cold and wind.  These are all good things, especially the cold when you put it in perspective that one of my passions is snowboarding and that I am the proud owner of a season lift ticket to the local mountain.

So, how long am I in NZ for - well at this stage it is a 6 month stint to get the development process underway.  Afterwhich I will be returning to sunny (not joking this time) Perth.  In the meantime my colleague Alastair will be running the user group. 

If you are in Wellington, or feel like coming to NZ for a holiday, please make sure you look me up.  My new contact information should be on the contacts page of the SoftTeq website in the next couple of day.

Vista Update, VMWare and still no Windows Mobile 5 SDK

Mid-last week I spat the dummy and re-paved my machine back to WinXP.  After having Vista and Office running quite smoothly for a couple of weeks the straw that broke the camels back was the inability to connect my laptop to a number of wireless networks.  I must admit I find the new interface for network connections difficult to use - in fact, coupled with the continual need to Ok administrative prompts, it SUX.  But that's another story...

One of the other things that I found frustrating with Vista Beta2 was that I couldn't synchronise my WM5 device using the new Windows Mobile Device Center.  I could explore files, but not able to set up a partnership.  The story is that we had to wait for an update before we could setup a partnership, or for that matter use VS to debug mobile applications.  Anyhow, the update has arrived, but of course if arrived a day or so after I had converted my laptop back to WinXP - talk about frustrating.

So I figured I'd set up a VPC image with Vista - easily done!! and sure enough there was the update.  Once installed I figured this would fix the issues preventing the Windows Mobile 5 SDK from installing properly, but alas it still doesn't work.  The next thing I wanted to check was whether I could set up a partnership.  I ran VS2005 and used the Device Emulator Manager to run up the PPC2003SE emulator.  I then set the emulator to Cradle, which under WinXP would allow activesync to connect to the emulator as if it were a true device.  Unfortunately no joy - does this mean that there is only support for partnering with WM5 devices or is there an issue with the Device Emulator Manager??? 

I then cursed because although I have a real WM5 device there is no way to get it to connect to my Vista VPC because Virtual PC still does not have USB support - urgh when will this be fixed.

A while later I bit the bullet and downloaded a trial edition of VMWare Workstation.  Not only is the interface much richer than Virtual PC (including support for USB) it already has support for building a Vista image.  I wish that the Virtual PC team would learn something from the functionality of VMWare.

Finally, after many hours of installing Vista and Visual Studio I have an image that my WM5 device can connect to.  The new partnership setup is much better than activesync, and seems to work.  Unfortunately this STILL doesn't fix the issues with A) cradling an emulator or B) installing the WM5 SDKs

My experiences with Vista all seem to be 2 steps forward followed by 1 step back ;-) At least we're making progress forward.....

SQL Everywhere CTP - get it while it's hot....

A while ago Microsoft made the announcement that there was to be a change in the SQL product line to include a new product, SQL Server Everywhere.  In fact this is essentially a rebranding exercise around the SQL Mobile product (previously SQL Server CE).  There are going to be a couple of changes made, making it possible to run SQL/e (Steve's cute abbreviation) on Windows XP and hopefully a nice deployment model (for example ClickOnce).

Anyhow, if you want the goods you can get an early version by downloading the CTP

 

"How to build an annoying mobile application 101"

Even wondered how you can stop your device from accidentally calling people?  Or wanted to stop people drawing all over you application?  Perhaps you even have a legitimate reason to stop people using the touch display - like they are supposed to use the keyboard or hardware keys to navigate (like a smartphone)?  Well, look no further, here's a neat trick for disabling the touch screen on your device....

<System.Runtime.InteropServices.DllImport("touch")> _
Private Shared Sub TouchPanelDisable()
End Sub

This code snippet was brought to you curtesy of a fellow .NET CF MVP, Peter Foot.

Wanna see what Exchange SP2/WM5 has that your mobile application needs?

The Messaging and Security Feature pack combined with Exchange SP2 gives us mobile users direct-push email.  So how does this work, well a blog article by the exchange team gives a detailed insight into how it all works.

Why do we want to know how it works?  Well, the same technique can be used in our applications to make them respond immediately as information on the server changes.  Typically most mobile applications currently use some form of polling or SMS notification to initiate a sync.  This can both be expensive and not particularly effective.

Using the technique described by the exchange team, Alex Yakhnin shows how you too can have an application that is always up to date!

 

 

 

 

Mobile Client Software Factory.....we're almost there - Drop 11

In case you haven't seen, drop 11 of the Mobile Client Software Factory has hit the web site.  This includes a number of bug fixes and improvements in documentation.  You will also notice that support within Visual Studio has been added for creating disconnected service agent classes using a guidance package.

IMPORTANT - Feedback is urgently required by this team as they are rapidly approaching code freeze, please send feedback via the gotdotnet website ASAP.

.NET Micro Framework Whitepaper

A couple of people have started talking about the .NET Micro Framework which is, as the name suggests, an extremely cut down version of the .NET Framework.  Unlike the .NET Compact Framework which was designed to run on top of an existing OS, the .NET Micro Framework can operate without an underlying OS.  As such it has provisions for a HAL that is specific to the device onto which it is to be run.  The best news is that this is all going to have rich developer support through Visual Studio.  Check out the new whitepaper that provides early information about this framework.