Debug Secondary Tiles

This is another of those posts for my future self, because I know I won’t remember this little tip.

Set startup through app manifest

The WMAppManifest.xml has a property that tells it where to send the default launch of the application.

      <DefaultTask Name="_default" NavigationPage="MainPage.xaml" />

So the normal launch page is MainPage.xaml. But you can change it to another page, and include your parameters just like from a secondary tile!

      <DefaultTask Name="_default" NavigationPage="/TileDetails.xaml?myid=2" />

Now you can just press F5 and debug just as if that secondary tile had been clicked.


Coding 4 Fun Phone Toolkit updated

If you have not looked at the toolkit before you seriously owe it to yourself, go get it now!

Coding 4 Fun Phone Toolkit

Windows Phone Geek has also done a great intro post on one of the new controls (the MetroFlow control).  Getting started with MetroFlow Control is a great read, even just to get up to speed with the overall concepts of the toolkit.


TouchDevelop makes Windows Phone 7 easy to program

I attended a great XAPFest meeting last night about TouchDevelop.  This is an app you can download today for your Windows Phone 7 from the Web Marketplace.

What is it?

Many of us were introduced to programming because we had computers at home (and usually lots of free time).  Most machines had built in BASIC or some other language, and there were lots of magazines and books with code you could type in to make your machine do what you wanted.


Today most machines do not have a built in language, or tutorials on how to use the built in tools like Powershell to write programs.  Even then the tools and learning curve is very steep.  Learning to do something like post an image to Facebook means having to learn a LOT of different technologies.

TouchDevelop is a very easy to use programming tool that lets users write applications directly on the phone.  No need to sync to a PC, or learn C# or even know the SDK.  All of the features of the phone are exposed through built in objects in the tool.  The user doesn’t have to know the difference between a JPG and a PNG.  They just say Image.



My Favorite Visual Studio 2010 Plugins

I have gotten asked quite a few times why my Visual Studio looks different, or has some additional feature than another developers. There is a large community of plugins for Visual Studio (quite a few are free). I just wanted to link to two of the most popular that I send to people.



PLINQ and .Net Parallel Programming resources

Seems there are more and more articles popping up on PLINQ and just multi core programming in general.  Visual Studio Magazine has a great summary of the current state of affairs in multicore programming.

Key to the article is that just enabling parallel code doesn’t always make it run faster.  There are dependencies, deadlocks, and all sorts of other problems that can occur.  Programmers have to know how to take advantage of the various technologies, and shift some thinking to new design patterns as well.

There are many technologies in .Net 4 including the following list:



Silverlight Firestarter Dec 2010

Watching the Silverlight Firestarter event that was hosted here at Microsoft today.



Silverlight 5 Announced

  • Azure support
  • 64 bit Silverlight client is now available to run within 64 bit Internet Explorer
  • Low latency network applications
  • MVVM improvements, end to end complex types, RIA improvements, also mentioned as ported from WPF

Improved Data Binding and debugging of data binding.  It was mentioned that some of these are from WPF, that is a good cross product migration of tech.  This means you now have breakpoints within XAML files!  You don’t have to do it within just the source, you can set them within the XAML for the binding.  This would be VERY nice if added to ASP.Net as well.  When you have to write code for the data binding inline you can set a breakpoint for the code that gets executed as a part of the bind (and even view exception).



Technical Debt

Not all code that is sloppy or messy is technical debt.  I tend to agree with Martin Fowler in his assessment of technical debt.  When your team is making conscious design decisions for valid reasons (shipping a product, pushing off heavy work for next release, etc) then you are incurring debt.   When you just have a mess of code, it is not technical debt.

Pay it down fast

Technical debt is like a short term high interest loan, you should prioritize paying it off quickly, or the interest quickly overcomes the original principal of the loan.

Remember that whatever you ship to incur that technical debt will still be out there, and have to be supported.  You can’t simply tell all your users to upgrade to 2.0 because 1.0 was full of debt.  In this way technical debt is a long term bond, you can’t simple buy them back.  They take time to mature and be retired.

Learning from your code

Programming is always a journey about learning.  Often after completion of a project I think of better ways it could have been designed, built, etc.  The project could still have been a success, but there were things I would have done differently with the full insight of the completed project. 

This usually happens to me when there was simply not enough time to think through everything up front, or the requirements changed during the course of the development.

Make conscious choices

Bad things happen on projects all the time.  Just make sure you are making the decision to incur technical debt consciously.  Don’t end up in that accidental debt category.


Overview of ADO.NET

NOTE: This article was originally part of the VistaDB.Net blog and has been moved here.

ADO.NET is a set of libraries included in the .Net framework to facilitate the communication of applications with various data storage mechanisms.  These libraries form the basis for all third parties to provide data access services to users of .Net applications.

Visual Studio 2005 and 2008 did not change the data access model.  In fact ADO.NET 2 is the longest running Microsoft data access technology without a major revision.  I don’t know if this is going to change in .Net 4, but the stability of ADO.NET is a major reason for its adoption in VistaDB.

In this article I going to give a high level overview of the ADO.NET object model and how VistaDB supports that model.  I will then follow up with more articles discussing specifics for this model.