I just noticed that Jeff has reviewed the book Microsoft SQL Server 2005 Compact Edition. Jeff goes into substantial detail in his review looking at the contents of each of the chapters. Although I haven't had the opportunity to read this work, from Jeff's comments I think this book would be worth reading if you are working in the mobile space and are interested in getting started using SQL Server CE and data synchronisation.
Ever wondered why your device prompts you when you attempt to run an application? Or perhaps what those Microsoft folks are on about when they talk about 1 and 2 tier security models? Well as a follow up to my previous post about the Device Security Manager, here is a post by Reed Robison that gives a great introduction to the Windows Mobile security model.
In order to successfully build an application for a mobile device you need to go through the same process as you would for building any other application when it comes to testing. Unfortunately this is typically a painful process as it requires the application to be tested on numerous devices, much of which is hard to automated. Luckily, building applications for the Windows Mobile platform and particularly the .NET Compact Framework reduces the variability of devices and provides a set of expectations around the target device. This process is also painfully slow as the process of building, deploying and testing on the device is much slower than on the desktop.
Most device developers will have at some stage used the device emulator to help them build, test and demonstrate their application. Visual Studio 2005 shipped with v1 of the device emulator which, unlike previous versions, was a standalone emulator that could be used without the overhead of Visual Studio. It was also considerably quicker than previous versions.
Since then we have seen version 2 release and now with Visual Studio 2008 just around the corner there is going to be a device emulator v3. Mohit Gogia has gone into detail about one of the most significant features of the new version - Automation. Automation has particular relevance to testing applications as it enables the tester to programmatically control the emulator. This allows test cases to be fully automated so that they can be integrated into an organisation continuous build system.
Before I get into the talking about a tool that windows mobile developers will find useful I thought I'd start off with a tool for the end users who are worried about loosing their precious device. Earlier this week I was sent a link to the Shadowmite Hacker Team which had an interesting utility for locating lost or stolen devices. Like the look of SecurIt, which is available via XDA developers, as it is simple and has a single function:
Basically it watches your simcard’s IMSI at every boot to see that it’s the same, and if so, just play a “OK” chirp. But if the sim has been changed it locks the phone up while also sms’ing a preset number the new number and imsi right from the new numbers account.
Now for developers: One of the cool features of Visual Studio 2008 is the Device Security Manager (accessible from the Tools menu), which allows you to examine the security configuration of your device (or emulator) and to be able to reconfigure your device to a particular (or one of the predefined) security configuration.
If you are building mobile applications you don't need to wait until Visual Studio 2008 to be able to change the security configuration of your device. There is a tool called the Security Configuration Manager that ships with the Windows Mobile 6 SDK which has the same functionality, although arranged slightly differently. This tool is a little hidden as it is not installed by default. After installing the Windows Mobile 6 SDK go to c:\Program Files\Windows Mobile 6 SDK\Tools\Security\Security Powertoy and run the installer SecCfgMgr.msi. This will install the Security Configuration Manager so that it appears directly under All Programs in Start menu.
One of the biggest annoyances of working with a real device, over an emulator, is that they are usually set to One-Tier Prompt security (for Pocket PC devices at least). When you build, deploy and run an application from within Visual Studio you will get prompted to confirm that each assembly is ok to run. If your application has a number of assemblies this quite quickly gets very frustrating. By changing your device security back to "Security Off" you can eliminate the prompts and hence get your work done quicker.
There are strange parallels to the whole "developing as administrator" discussion as to whether this is a good idea in the long run, since most device you ship to will probably have security enabled.
Yesterday I put my old slow hdd from my laptop in an external enclosure so that I could easily access any data that I had on my computer before the upgrade. Unfortunately this plan got thwarted when I attempted to access my documents folder (ie f:\Users\Nick\.....). This raised a security access denied error, despite the fact that I'm an administrator on this computer. Even if I ran Windows Explorer as administrator it still wouldn't allow me to access this folder.
Luckily one of the other people in the Silicon Beach House still has a Windows XP machine so I asked them if they could open the folder, which they could no problem. Great, so Vista has added an additional level of security that is a complete waste of time since the folder can be accessed on older computer....?
To disable this security "feature" I simply selected the Users folder and forced an update of security permissions so that "Everyone" has full access. This seems to work and now I can access everything on the external drive. What a waste of an hour of my time!
Having just rebuilt my personal laptop (with a new 7200rpm drive which makes a noticeable different to speed) I downloaded the latest version of Pocket PC Controller. I noticed that they have done a couple of releases since I worked with it earlier in the year but I wasn't expecting a massive face lift. They have adopted the new Office 2007 look - not going to describe this as a picture is worth a thousand words:
One of the cool features of Pocket PC Controller is the ability to capture not only stills images but also videos footage. This is a great way to demonstrate your application in action!
It's great to see that not only is the Perth .NET Community of Practice library growing (thanks to Mitch who is really working with the book publishers to get access to more books), it is actually being used. At the moment we have 10 books out of a total of 37 on loan to user group members.
Recent additions include:
For quick access to the library and to reserve a book, head over to HireThings.
Hint: If you are attempting to search for the user group books make sure you set the location to Australia!
I wonder how much of this discussion will be focused around new-media v's old-media. To be honest I can't remember the last time I read the paper hoping to find out what is going on in the world - most of the Australia papers are little more than light comedy relief. Most of my news, current affairs and technology information comes online from one of my countless rss feeds. If I can't subscribe to it I can guarantee I'll only look at it once.
Personally I'm looking forward to this discussion and would encourage others to attend:
Walkley Media Forum – The War of Attrition: Influence & Diversity
Thursday 23rd August 2007, 6.30pm
The Ernst & Young Building
11 Mounts Bay Rd, Perth
New federal laws are radically reshaping Australian media ownership. The first round of mergers has seen Rural Press swallow up Fairfax, Packer capture Channel Nine Perth and Seven Network seize a strategic stake in The West Australian. What does this mean for WA and where are our media industries headed?
Join our panel of experts to find out more about the future of our work. Moderated by Michael Sinclair-Jones, WA Branch Secretary, Media Entertainment & Arts Alliance
· Gary Adshead, Snr Reporter Channel 7
· Bronwen Clune, founder Norg Media
· Martin Turner, Community Newspaper Group
RSVP to the Alliance call 1300 65 65 13 or email firstname.lastname@example.org
A new piece of technology coming in the web arena, this time targetting real world application development. Well worth listening to the following to get an idea of what's to come:
At the end of last month I posted that we were setting up a co-working space here in Perth. Well, a lot has happened since then and we now have the following companies involved with Silicon Beach House (blog, site etc still to be created...):
As you can see we have a range of companies involved, with each company working with different technologies. Although there is a clear web focus for a number of the companies there are some that have seen the light and are either building occasionally connected applications (namely Intilecta) or are not developers (Tuscan IT). There is also the ever contentious issue as to what hardware to run - it seems that the majority of the office prefer Macs, which I must say gives the office a bit of style ;-)
Yesterday we took delivery of additional tables and chairs so that everyone is comfortable and despite the downtime from the ever useless iinet everyone seem to feel at home. If you are thinking that you would like to be part of this hive of activity we are still looking for another 2 or 3 people to move in. If you know anyone who is currently working from home and would like to enjoy the numerous benefits of inner city working life, please feel free to contact me
Despite being a relatively new import into the Perth .NET community, Graeme Foster has already volunteered to present at the next meeting of the Perth .NET Community of Practice. Whilst the last session was dedicated to all the new coolness that Microsoft is bringing us in the UX space there are still a lot of fundamentals that most organisations don't do well. Graeme is ambitiously going to cover CAB, MVP and TDD all in one session.
Most people have heard or the Composite Application Block (CAB), the Model-View-Presenter (MVP) pattern and Test Driven Development, but few can really say that they can use them together. Luckily some of the larger development shops around Perth are starting to use these to build a real world applications.
Check out Graeme's session on the 2nd of August!
In addition to our expanding library the Perth .NET Community of Practice has recently put together an aggregate feed that allows recruiters to post Perth based job notices. You can subscribe to this feed from here or using the RSS button on your web browser when visiting the user group website (http://www.perthdotnet.org).
Congratulations to Robert Walters who are the first to make use of this resource by placing a 1Yr C# .NET Application Developer contract on the feed!
From Mauricio's post I just signed up for and downloaded a new IM/Skype client for my Windows mobile device. Having only recently removed Palringo (which was a cute concept but not overly useful) I am being a bit critical of messaging/VoIP clients and I must admit I wasn't impressed with Fring. Granted the sign up process was well thought out - they send you an SMS to your device which the download url, which you click to install the application. Unfortunately the usability of the application left a lot to be desired and it seemed to drain a lot of system resources for such a small application. In fact during the initialisation phase it crashed my device the first time! I don't think I'll be recommending the first version of this application but will keep it bookmarked for future releases.
Early last year Andrew and I completed the book [VS2005] which was subsequently published around August. Unfortunately we are already in the throws of beta testing the next edition of Visual Studio. This means that it is time for us to start working on the next edition of the book. Of course this time the book's title will be updated to Professional Visual Studio 2008 and will again be a Wrox title. However, due to other commitments Andrew has decided to pass on the batten - he will remain on the team as an editor for this edition. I'd like this opportunity to welcome fellow Perth developers, Mitch Wheat and David Gardner, who have agreed to help me put together this book.
Based on some of the feedback from the first edition of the book I would like to extend an invitation to .NET developers out there who would be interested in reviewing one or more chapters of this book to drop me an email, or contact me via Facebook (which we will be using to comunicate the progress with those involved).
I have been a bit remiss for not having congratulating the winners of the Australian Imagine Cup competition. Whilst this was blogged a while ago by Frank and Nick I would still like to pass on my congratulations as this is a significant achievement for those involved. However, this is only really the first stage and, as I posted a while ago, there is much more to the competition to be found at the world wide finals, this year to be held in Korea.
As some people will already know I have been invited to attend the finals as one of the judges for the software design competition. This is an experience I'm definitely looking forward to and as such I have been eagerly watching some of the activities that have been going on around the world. One such event that Microsoft EMEA have put together is the Imagine Cup Gallery in Second Life:
The Imagine Cup Gallery in Second Life runs until August 5th 2007 so you can visit anytime. However we’re holding three open events for you to come and meet the different teams and these will be held from 19.00-21.00 Central European Time on July 12th, 19th and 26th 2007. If you already have a Second Life Avatar teleport directly to the Microsoft Island
More information can be found at http://www.microsoft.com/emea/presscentre/SecondLife/default.mspx
I've used Groove a number of times over the last couple of years but haven't used it much this year until this evening when I thought I'd dust off the covers and give it a go for a project I'm embarking on (more on that later). Anyhow I have recently changed users on this computer and I haven't used Groove under the new account. Luckily I had previously emailed my Groove account to myself so I figured I could just use that account information to get me up and running again. Unfortunately this failed with a message saying that the account was too old:
"Saved account for Nick Randolph is too old and cannot be installed. Please import a more recently saved version of this account."
Huh, surely not..... Luckily I hadn't removed the previous user account off this computer so I went trawling through the application data folder to see whether I could manually restore the account. It turns out that there is a folder "C:\Users\<user>\AppData\Local\Microsoft\Office\Groove\User" but unfortunately copying this from one user to another generates a warning message claiming the account is incomplete, an exception and then Groove bottoms out completely. As a last resort I decided to copy the entire "C:\Users\<user>\AppData\Local\Microsoft\Office\Groove" folder across to the new user and this worked a treat! I'm all to go with all my old workspaces.
Last night at the Martime Museum in Fremantle Thales Australia launched their Software Development Centre. Over the last 12 months Thales Australia has emerged as a single entity bringing together a number of smaller companies into a single entity. With strengths in both military and civil industries, Thales also boasts a large software development branch with approximately 150 developers based here in Perth.
Under their former banner, ADI, most of their development was reportedly C/C++ and Java. Through discussions with a number of the local Thales Australia staff I understand that they are doing a substantial amount of work in C#/.NET. This move necessarily increases the pressure on the market to deliver more .NET developers which unfortunately are a scarce commodity at the moment. Thales joins a number of other large .NET employers such as UnisysWest, HBOS/BankWest, Change Corporation and Fujitsu to name but a few.
With such pressure on the local .NET industry it begs the question as to what the future holds - what's going to happen when there just aren't enough developers to go around? We are already seeing this happen with a number of people moving jobs in the past month. There is an increase in the number of developers preferring short term contracts to permanent employment - this adds considerable overhead to projects due to the time lost due to replacing staff as they churn. It was a relief last night to hear the Minister for Energy, Resources, Industry and Enterprise, Franics Logan, talk about a recent meeting where it was agreed that all states in Australia would follow Victoria in rolling out an advertising campaign targetting high-school leavers. This would encourage them into tertiary ICT courses which will help fuel the next generation of technology workers.
A while ago I posted about the Microsoft Mobile Development Handbook that Andy, Daniel and Peter wrote. As I was fortunate enough to be involved in reviewing the book I was sent a complimentary copy which arrived at the office this morning. This has of course been added to the Perth .NET Community of Practice library but if you are doing mobile development I would really encourage you to order a copy.
Last night Shane Morris gave his "age of user experience" presentation to the Perth .NET Community of Practice which was extremely well attended with over 50 people turning up to hear the Microsoft user experience story. I would like to thank Chuck for making this happen - I think that everyone who spoke with Shane took something away from his engagement.
Some general feedback on the session was that it was great to have a non-developer present on this topic as it gave a bit of credibility to the Expression story. That said, given that the room was almost entirely developers, I think that the lack of source control integration for these products was definitely a sore point. A few people mentioned that they were hoping Shane would drill down deeper into what constitutes a good user experience but I feel that given this was Shane's first visit and that we hadn't given him any focus for his session that the overview he gave was well suited for the group. Perhaps if there is enough interest we can get Shane back later in the year to conduct a usability workshop or another session more targetted on the design process - if this is something that interests you make sure you let me know!
- Next month Graeme is going to deliver as session on CAB and TDD - make sure you are registered at the user group site so that you receive reminders
- The .NET library is continually growing - we just took delivery of a number of .NET compact framework books that might be of interest if you are doing mobile development
- There are still spaces in the SoftTeq co-working center - for more information see my previous post (if you know a startup company looking for office space in the CBD feel free to spread the word)
I'm sorry did I miss the point where we started caring again about what language we are writing in. This was a discussion point 5 years ago when we didn't have powerful IDEs to help us write applications. Now it should be "what job do I want to get done?" and "what technology is going to deliver that the quickest, cheapest and highest quality output?
By technology I think there are at least four key areas to look at:
- Skills availability (who's going to write the code)
- Framework (.NET, Rails etc)
- Tools (VS, Eclipse etc)
- Language (Java, VB.NET, C#, Ruby)
And imho you shouldn't make a decision based on one of these factors alone. Particularly in Australia atm where getting skilled developers in nearly any technology is proving very difficult.
Unlike Alex I don't much care for C# or Ruby for that matter. I find that despite being more verbose VB.NET is still my preference but again this doesn't mean I will always pick it for the job.