Home > 一些老文章 > Win7那些事儿(3) – Hesitate to reinstall?

Win7那些事儿(3) – Hesitate to reinstall?

November 7th, 2009 Bali

I am lazy, as many folks are. One of compelling reasons for personal user not installing Win7 is as following,

“Win7 requires a clean install, which mean I will lost 2 days to back to full productivity. I have to reinstall my applications one by one, and set setting, and restore my data.”

If you agree with above claim. This post is for you. Read along.

1 Introduction

MyApps is a suite of technologies which allow users easily manage and distribute all their Windows applications in most convenient way than before. MyAapps is the name.

2 Problem

Have you ever hesitated rebuilding your dev machine to clean up an instability issue after looking at installed about 200 programs?

Have you ever help new members in your team setup and configure his development environment per strict team-acorss guidelines?

Have you ever had to exit setup dialog to install bunch of prerequisites?

Do you have to remember a long list of license key or file?

You may notice that existing processes that maintain applications and their settings in users’ computer are painful and time-consuming. The explosive growth of applications makes users be tired of finding software, waiting for download, playing with options, accepting defaults, inputting license key or file, clicking through and waiting reboot, especially when they are forced to repeat similar steps again and again. MyApps are technologies which change the way people distribute, access and manage various applications in their computer.

3 Solution

3.1 Unique Values

The unique values MyApps offer can be expressed as followings.

  • Easy installation – Users can install any application with one click.
  • App bag support – App list is a list of applications with customized options. Rebuild becomes never easier. You can kick off the installation of hundreds of applications within minutes, and go away to have a cup of coffee.
  • App bag sharing – You can share your application list to your team member or friends, and they can easily repro your environment.
  • Automatic dependency management – MyApps is aware of app dependency and will install all dependent apps for users automatically.
  • License management – do not need save license key/file locally any more. MyApps does that for users.

3.2 Core Scenarios

Key scenarios that MyApps addresses include:

  • One-stop installFrank needs building his dev machine containing about 120 various apps as the first dev of team COOL5. He logs onto MyApps site and set his preferences (e.g., install all apps onto D:\frankapps\) as the first time visitor. He browses/search the software and put them into MyCart of MyApps site. Finally, he accepts all EULAs and clicks Install, and then goes away for half-day training. When he returns, he finds that his computer is installed with latest software and ready to go.
  • Dependency awareness and license handling – .NET 3.5 is required by one of Frank’s selected app – SpeedLaunch, and is installed automatically along with SpeedLaunch. MyApps is also smart enough to handle license at the background for Frank.
  • Share app bagFrank starts customizing his apps. Frank points a debugging tool to an internal team testing DB. The setting is uploaded to public section in CuteInstall site. Frank sets font size to 12 in his VS2008 and uploads this to the private section. Finally Frank published his current app bag as “COOL5_dev_bag” in the MyApps site.
  • No need re-invent the wheelJoanne, the second dev of COOl5 team, install all apps same with Frank by clicking the link in his onboard email:

http://MyApps/install.aspx?bid=COOL5_dev_bag

Joanne also finds out that the debugging tool points to the team testing DB.

  • Easy repro – Months later, Frank has to rebuild his computer to clean out certain instability issues although he is facing tight schedule. Frank logs onto CuteInstall site and with his account and clicks “Restore to latest” button before he leaves office. The second day, Frank gets a fresh working machine with all his favorite private settings (e.g., font is 12 in VS2008) and continue working for his deadline without any delay.
  • Software shopping Sara, a regular computer user, logs onto a MyApps technology enabled online software shop with her Live ID. She decides to buy Office2007 and pays the bill using PayPal. After clicking “Install”, Office2007 is delivered/installed/Configured to her computer through a CDN network within 1/2 hour. She is very happy because she no long needs wait for DVD delivered by UPS again.

3.3 Value Proposition

For customers, the value propostion is pretty obvious if you look at the above scenarios carefully. It save man hours in every application installation and migration, increase productivity and improve across-team capabilities to meet business goals.

For Microsoft, it is also a “must have”. MyApps makes Windows platform more accessible and easy to manage. MyApps technologies bright customers’ unique values by leveraging our Windows platform leadership and global presence of Live platform. It also provides special value to our S+S strategy. More and more people turn to web app mostly because web app is:

  1. Easy available
  2. No download(s) and installation(s) required
  3. Your settings always go with you

MyApps technologies solve above 3 problems altogether. Software installation and maintenance are no longer headache for users. As a result, this ensures the success of Microsoft S+S strategy and strengthens our long term value. It is beneficial to the whole industry and any and every software users.

4 Logical Architecture

The diagram below shows the logical architecture of MyApps platform.

Arch of MyApps

Arch of MyApps

Two innovative concepts MyApps introduces are as follows:

  • Split of static and dynamic bits of apps which will be stored in App bits DB and App settings/bags DB respectively
  • App release description script

To achieve these goals, MyApps technology contains a suite of software component and standard.

  • MRT (MyApps Releasing Toolkit) – software vendors use this tool to write installer code. MRT is based on WSI.
  • MP (MyApps Portal) – it is centralized place which stores all configurable settings of all apps. And it is also responsible for managing software installation, licensing and user configurations.
  • MC (MyApps Client) – MC will be running on software users side to manage installation and settings.

Next we will discuss components one by one.

4.1 MyApps Releasing Toolkit

Every software release should provide a XML file like below.

<?xml version=1.0 encoding=utf-8?>

<App>

<Name>Microsoft.OfficeLabs.PeerMail</Name>

<Version>1.1.0.0</Version>

<DependencyManagement>

<Dependency>

<App>

<Name>Microsoft.DotNet</Name>

<Version>2.0</Version>

</App>

<App>

<Name>Microsoft.Office.Outlook</Name>

<Version>12.0.6213.1000</Version>

</App>

</Dependency>

</DependencyManagement>

<InstallSteps>

<step_by_step_install_guide_by_XML></step_by_step_install_guide_by_XML>

</InstallSteps>

</App>

This file makes sure that (1) the app gets globally unique name with Name and Version, (2) Dependency is clearly defined, (3) InstallSteps will reuse certain tasks pre-defined by MRT. The tasks sample provided by MRT will be to create folder, register COM component, start certain services, copy files, etc. MRT will read this file and generate releasing package.

4.2 MyApps Portal

MyApps Portal is the only place where users browse, search, install, configure, manage and share their apps across all their computers.

4.3 MyApps Client

MyApps will be running in software users as ActiveX IE plugin. Every app defines its config DB as following:

<?xml version=1.0 encoding=utf-8?>

<Configs>

<Section1>

<Property Key=key1 Value=value1 />

<Property Key=key2 Value=value2 />

</Section1>

<Section2>

<Property Key=key3 Value=value3 />

<Property Key=key4 Value=value4 />

</Section2>

</Configs>

We can use lightweight DB component(e.g., SQLite, or SQL Express) to achieve that.

5 Go TO Market Strategy

Business model would be software licensing.

MyApps is not just for resintalling the whole software stack. It actually allows users to maintain streamlined application and settings across the computer overtime. I will probably to start a project in CodePlex for this.

Acknowledgment: MyApps is inspired by Maven for Java, RubyGems for Ruby, CAPN for Perl, YUM for Linux, etc. I am actually surprised that Windows don’t have this till today. Ninite is likely, but far from solving the problem entirely.

Categories: 一些老文章
  1. No comments yet.
Comments are closed.