Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

June, 2004

  • Aaron Stebner's WebLog

    Random thoughts from DevCon


    Well, I've been here in San Diego since Monday and attended the first 2 days of the Embedded DevCon 2004 show.  I sometimes forget how tiring it can be just to be on your feet all day since I'm used to spending most of my work day sitting in front of a computer.  But it has been amazing to get a chance to meet so many customers and talk about the wide variety of directions people are going with the embedded tools and different development and deployment strategies.

    So far, I haven't presented (since I got “lucky” enough to have both of my talks on the last day of the show), so instead I have been acting as a proctor for the hands-on labs other folks in my group have been presenting.  I also went to a lunchtime Q&A session called “ask the experts” today, though I don't know that I can really consider myself anywhere near an expert given my relatively short time on the embedded team and the wide range of issues that our customers see every day.  Overall though, this was a great chance for me to see some of the specific pain points and give me some ideas to take back to Redmond when I head back on Friday.

    Here is a list of the things I took notes on during the Wednesday “ask the experts” session that I specifically want to research and come up with plans for addressing:

    1. SOURCE CONTROL (typed in all caps for big emphasis) - Microsoft has not done a good job of recognizing the importance of being able to maintain solid version control for component SLD files and image SLX files.  We need to figure out a set of best practices and create a white paper and possibly supporting tools to make the pain of source control for XP embedded much less in the future
    2. We should consider creating some kind of living FAQ document that contains top issues and solutions and is auto-posted to the newsgroups.  There have been several cases where answers to common problems get buried in the newsgroup, never to be heard from again
    3. We need an FAQ or guide for troubleshooting odd event log entries that are generated when booting an embedded device.  Lots of times these are caused by missing dependencies but how can they be tracked down?

    This afternoon I went to my colleague Nandini's talk about First Boot Agent (FBA).  I thought she did a great job of presenting her material and fielding the questions at the end of the session, I only hope that my talks tomorrow go half as well as hers.  What struck me about the questions was the amount of interest in resealing and cloning.  These are aspects of XP Embedded that I haven't explored very much yet in my time on the team and I'm going to make a point to get a greater understanding of how these work and where the problems are in our current cloning support.

    Wow, I've let the time get away from me while typing out this stuff and I still need to practice my presentations one more time before I fall asleep so I'm going to sign off for now.

  • Aaron Stebner's WebLog

    DevCon here we come!


    Hey all, I have been working to finish up the presentations, demo applications and lab machines for the presentations that I'll be giving at Embedded DevCon next week.  Both of my presentations are on Thursday the 1st, so I'll be spending time meeting folks, answering questions and seeking better understanding of what we're currently doing well and where we can improve in the end-to-end Windows XP Embedded user experience.

    Currently it appears you can only access the full contents of my presentation if you are officially registered for the conference.  You can see the abstracts by going to http://www.windowsembeddeddevcon.com/tech_sessions.asp and http://www.windowsembeddeddevcon.com/tech_hands_on.asp and navigating to the “Track: Application Development” sections.  I'll be presenting XPEA Hands-on Lab 1 (application development for XP Embedded) and XPEA-300 (remote debugging on XP Embedded).  I'm really excited to share some of the tips and tricks I've learned during my time on the Visual Studio and .NET Framework team and combine that knowledge with resources specific to XP Embedded to enable easier and faster application development on this platform.

    I hope to see you all at the conference!

    I will be posting more later this week about some ideas around application repackaging, so stay tuned for that if you're looking here for setup technology discussions.  The really interesting thing is that I've found that application repackaging is something that affects the embedded problem space just like it does for the desktop OS problem space, just with some different implications.  In the next couple of days when I'm less tired I'll type up more and see where my thought processes go..... 

  • Aaron Stebner's WebLog

    A couple more Windows Installer links I found


    Hey all, I'm sure most of you have already seen these but just in case, here are a couple more links that I found related to Windows Installer on various Microsoft websites:

    I also borrowed a copy of a book called Administrator's Introduction to Application Repackaging and Software Deployment using Windows Installer from a guy on my former team here at Microsoft (the link is not necessarily an endorsement of Amazon.com, just what I usually use to send info about books electronically).  I'm planning on taking a look at this book over the weekend.  If anyone has gone through any of this book already, I'd like to hear what you think.

    I'm also thinking of a couple topics for future blog entries as I get time to type them out - thoughts on application repackaging in general, and features that should exist in Windows Installer but don't.


  • Aaron Stebner's WebLog

    Custom actions that should be standard actions


    I recently met a Program Manager who joined Microsoft late last year after working at InstallShield for a while.  We got to talking about some of the difficulties involved in creating an MSI-based setup and the lack of solid, documented best practices and even things that would make it easier to build and test setups such as more comprehensive ICE validation test suites.

    One of the interesting discussions we had was to compare lists of actions that are commonly needed in a setup that are not available as MSI standard actions and have to be implemented as custom actions.  Here is his list:

    1. Install kernel mode drivers
    2. Add/remove a line from a text file that is not in INI file format (such as a .NET Framework .config file)
    3. Create user accounts
    4. Change ACLs (since the LockPermissions table does not honor existing ACL’s)
    5. Create a virtual directories in IIS
    6. Create web sites in IIS
    7. Create SQL server databases
    8. List SQL server databases
    9. Create SQL server user accounts
    10. Validate PIDKEY values
    11. To display billboards
    12. An MSI package cannot use mapped drives when an administrator installs an MSI package through a remote session to a terminal server (http://support.installshield.com/kb/view.asp?articleid=q108613)
    13. Post data to an HTTP server to post information to a organization's web server to record user registration information or other data
    14. Set ALLUSERSPROFILE and USERPROFILE variables in different operating systems
    15. Install a Plug and Play device driver (http://www.installshield.com/news/newsletter/0312-articles/plug.asp?ISCS12NL=16702602)
    16. User profile creation when a new user logs in

    In addition, he made the good point that for every custom action, a setup author has to essentially create 3 custom actions (install, rollback, uninstall) and potentially a 4th (uninstall rollback).

    Of the things on this list it was interesting to see that in my experience on the Visual Studio and .NET Framework setup team, we ended up writing custom actions or equivalent code to do items 1, 2, 3, 4, 5, 6, 10, 11, 13 and 16.  Also, the team is working on new custom actions for the SQL items (7, 8, 9).

    In addition to the above, I would add the following to the list based on my experience:

    1. Marking folders as hidden (and not just files)
    2. Create user groups
    3. NGEN (pre-JIT) .NET Framework assemblies
    4. Perfomance counter registration
    5. MOF compilation

    I'm curious if there are other common custom actions that folks are using that would be useful to have available as standard actions.

    For .NET Framework setup developers, I would also like to know if anyone is attempting to implement NGEN functionality within your setup, and if so if you have any feedback about your experiences doing so.

    Thanks in advance!

  • Aaron Stebner's WebLog

    Blog I found with useful InfoPath information


    I've been experimenting with using InfoPath recently - it is a new tool that is part of the Microsoft Office family of products and I've found it to be really useful to create form templates for things that I need to write a lot (like weekly status reports, meeting notes, test plans, etc).  I found a blog that has a bunch of useful tips and tricks for using InfoPath that I wanted to pass along for anyone who is interested - http://radio.weblogs.com/0131777/categories/infopathTipsAndTricks/

    Have a great weekend everybody!

  • Aaron Stebner's WebLog

    Cool new Visual Studio product in the works


    Hey all,

    My former group (Visual Studio and the .NET Framework) is working on a new version - Visual Studio 2005, codenamed Whidbey.  One of the new products that will be part of Whidbey is a set of tools for creating, running and tracking results for tests.  As a tester, it is pretty exciting to see Microsoft start working on some enterprise-level tools specifically for testing.  Take a look at the link at http://msdn.microsoft.com/vstudio/teamsystem/tester/default.aspx for some additional “sneak peek” information.....


Page 1 of 1 (6 items)