How do I get a Core Data SQLite datastore off of a test device?

This was a question asked at the last NSCoder night. I didn’t realize the answer was so easy so I thought I would share it here in case others might not know. Just so appropriate credit is given, Ashley Clark was the one who pointed this out to us.

Go to the XCode Organizer while your device is attached and select your device in the left column. The bottom right panel will display a list of applications installed on the device. Scroll to your app. Because the app is installed using a testing profile it should have an arrow to the left than can be expanded. After expanding it, you should see the Application Data directory with an arrow pointing down to the right of the name. Selecting that arrow will give you a prompt to specify a location for that Application Data directory to be saved to your development machine.

The Application Data directory will contain your SQLite store under the Documents folder in addition to preferences, temp data, and anything else stored in the Application Data directory for the app.

Houston iPhone DevCamp

The Houston iPhone DevCamp is going to be held the weekend of January 30-31 in the space next door to CoffeeGroundz. There will be a total of 12 talks during the day Saturday with a happy hour at the end of the day to celebrate the 1st year of the Houston iPhone Developer Meetup.

Starting Saturday evening and going through the night until mid-Sunday morning, there is an iPhone App Jam scheduled. The idea is to develop a complete iPhone app overnight and present what you have developed the next morning. I will be participating and I know of several others that plan on it as well. Don’t be discouraged if you are a newbie to iPhone development as several of the talks will be introductory to help you get started (there will also be advanced talks for those who have been at it a while).

I’ll be giving an introductory talk on Core Data but there will always be two talks going at the same time so you have the opportunity to not have to listen to me if that doesn’t sound attractive. You can sign up on the DevCamp site so I hope to see you there!

Speaking at the Houston iPhone Developer’s Meetup Dec. 15

It has been quite a while since I’ve posted on my blog (too long). I was out of town on business for several weeks during the late Spring and over the Summer so making time for the blog was difficult.

I wanted to let anyone who might be interested know that I will be speaking at the Houston iPhone Developer’s Meetup on December 15. The topic will be Core Data (obviously on the iPhone OS). The talk will be an introduction covering configuration of the store, querying, updating, migration, and the iPhone specific functionality not available on the desktop OS.

Hope to see you there.

Heading to TechEd

I’ll be heading to TechEd North America this weekend.  This year it is in Los Angeles. 

I am attending TechEd.  Are you?

It has been quite a while since I’ve been there so I’m really looking forward to it.  Hopefully the flu scare and the economy (and associated budget cuts) won’t cut down attendance too drastically.

Houston ALT.NET Coding Dojo on TDD – May 7, 2009

J.P. Hamilton has organized a Coding Dojo that will cover TDD.  It will be held at the Microsoft offices in Houston at 6pm on May 7th.  Space is limited to 40 participants so sign up early if you want to attend.

Announcing Reference Assistant 1.0

The product I have been working on, Reference Assistant, was released a few weeks ago.  Reference Assistant is an extension for Visual Studio 2005 and 2008 (and soon 2010).  In short, the goal of the product is cut down the time spent debugging runtime errors due to missing dependencies or errors in configuration.


Here are a few highlights of the capabilities in version 1.0:

  • Configuration files for, Windsor, and Unity can be parsed and displayed visually in a tool window.  Missing or incorrectly spelled types are pointed out (project reference paths are searched for required dependencies). 
  • Navigation to object definitions in supported IoC/DI configuration files
  • Any dependencies detected in configuration files can be automatically copied to the project output directory upon successful build.
  • Reference Paths can be setup automatically using rules setup in preferences.
  • Version conflicts between dependencies are displayed visually and in a tool window.
  • Generate a report of all required assemblies for a project’s deployment, including dependencies defined in IoC framework configuration files.
  • Extensions can be written to support custom file formats or configuration types.

For more detail in addition to the product pages, we have written a blog post walking through the functionality available in Reference Assistant for XML configuration.

If you think you or your team could benefit from a tool like this, download a 30-day trial here.

Watch out for those WaitOne() overloads (when you need backwards compatibility)

Recently I was writing some new functionality that ran work on background threads.  The functionality isn’t that important but one of the classes I was using to get the correct behavior was AutoResetEvent.  Specifically the AutoResetEvent.WaitOne() method.

Since I really don’t use this class very often, I relied on intellisense to give the list of method overloads and I selected the WaitOne(Int32) overload which allows the thread to wait a given number of milliseconds unless signaled first.  My compile worked and the functionality ran properly in Visual Studio 2008 SP1.  Since I share the of the same code base when my product is installed in VS2005, I jumped over and the product compiled and ran perfectly there as well.

I forgot all about this until I was doing the final testing in preparation for a new release.  The first few VPC images took the installation and ran fine.  However, when I ran the installation in a VPC image that had a clean installation of VS2005 SP1 and nothing else, the product did not work properly.  I was puzzled until I enabled logging and found that I was getting a MissingMethodException on the WaitOne(Int32) method.

I’ll spare you the details of the agony but I thought about this for a while and decided to try installing the .NET 3.5 SP1 framework in this VM and, low and behold, the problem vanished.

It turns out this method overload was introduced in .NET 3.5 SP1 but because System.Threading resides in mscorlib and there is only a 2.0 version of that assembly, any .NET 2.0 application (which in my case was the VS2005 package) is able to compile against it and run as long as the SP1 version of .NET 3.5 is present on the machine.

The solution was to use the WaitOne(Int32, bool) passing false to the second parameter which gives the same functionality.

I’ll be watching for this type of thing a little closer from now on.

Houston ALT.NET Conference coming in April

Ben Scheirman has announced that he is putting together a Houston ALT.NET Conference and it will be held at the Microsoft Offices the weekend of April 3-5, 2009.  It will follow the Open Spaces format and it should be good based on my prior history with these sorts of events.

The event will be free to all attendees so plan on coming if you can make it.  Unfortunately, I will probably end up missing the event since I will be taking a trip to Redmond and flying out that Sunday.

Impressions of Win7 Beta Upgrade from Vista Ultimate SP1

Over this past weekend, I upgraded a laptop from Vista Ultimate SP1 to the new Windows 7 Beta (both 64-bit).  I decided to throw caution to the wind and forget the whole VM thing.  The upgrade lasted just under 7 hours but, before you think that might be a long time, the same laptop when upgraded from Vista Home Premium SP1 to Vista Ultimate SP1 took a little over 6 hours 20 minutes.  The laptop is an HP Pavilion dv5 (4gb ram, 2.1ghz AMD dual-core).

There have been no unworkable problems up to this point.  The issues that I have had so far are:

  • Skype 3.8 did not work.  The Win7 installer warned about this and I uninstalled before restarting the upgrade.  After the upgrade, I attempted to install the app (ignoring the compatibility warning) and it did install but crashes without an error dialog shortly after.  The Skype 4 beta 3 release seems to be working properly so far on Windows 7 64-bit so I will see how that goes.
  • Virtual PC did not upgrade properly.  I received a message stating that “Virtual PC could not open the Virtual Machine Network Services driver”.  The VMs did run but without any network access.  Uninstall/Reinstall of VPC fixed this issue for me.

I thought I might have a problem with TortoiseSVN but it has worked after the upgrade without any problems at all.

Visual Studio 2008 and 2005 both work fine after the upgrade.  I was expecting that I might have a problem with the Experimental Hive entries for the VS SDKs after the upgrade, but I didn’t have any problem with those either.

My first impressions of Windows 7 are good but I’m not overwhelmingly impressed in the way that some blogs have expressed.  Memory usage seems slightly better but nothing to bet exited about.  Bootup time has improved for me quite a bit, which is nice.  It is encouraging that performance of the beta appears to me to be at least the same as Vista Ultimate SP1 in the worst case and slightly better in some areas.

Some things have moved around on the Control Panel again so that is a little annoying.  One example is the Startup Applications that used to be found under Programs.  This applet appears to have gone away all together which is puzzling but it is possible that I have overlooked it.  Power users know to go directly to the folder but a regular user would be stuck with whatever installers or the OEMs feel like should run at startup. 

The new taskbar/quickstart toolbar combo is nice but I can’t figure out a way to start a second instance of an application, short of going back to the start menu.  This was a feature of the old quickstart toolbar I would like to have back.  An option on a right-click menu would be good enough.  Hopefully I’m overlooking an option somewhere.  [Update 1/13/09 11:35am – Shift+Click will launch a second instance.  That is about the only combo I didn’t try.  Thanks to Markus Egger on Twitter for that one.]

I Finally Joined Twitter

After spending time listening to the Virtual ALT.NET Meeting last night, I decided that I needed to go ahead and join Twitter because I was clearly missing out on some interesting community discussion.

James Avery had already told me that he found it a great resource, but sometimes I guess I need to hear it from more than one place.

The tipping point for me was the discussion around the VB.NET development community and open source.  There was a great discussion of issues at the VAN and it was kicked off because of the lively discussion that had occurred on Twitter a few hours earlier.

I wished I could have participated a little in the discussion but I’ve had a major cold over the last few days and I was a little drugged up on cold medication.  I ended up leaving the meeting after an hour so I could retire for the night so I missed the last part.  Some of the great discussion:

  • VB.NET community involvement in open source
  • Difficulties encountered when introducing new concepts like IoC and ORM to .NET developers that have not been exposed before.
  • Mass Transit
  • migratordotnet and the newer Fluent Migrator that is being worked on

I’ll definitely be attending the future VAN meetings and hope to participate.

You can find me on Twitter – darrenstokes.

« Previous PageNext Page »