Our New Product Delivery Model
’This white paper was created to help describe the changes we are making to our product delivery and maintenance model in conjunction with the release of DXperience 2006.
The Problem
Up to now, each DevExpress product was developed under its own independent release schedule and was assigned its own unique version number. This allowed us to release major new versions of a given product at specified time intervals without the need to "wait" for the completion of other projects. Though this model has merits, over time it presented a series of challenges to us and our customers...
The primary negative side effect of this approach involved the ripple effects caused whenever a new product and or major update was released to our user community. Since all of our products share common code/libraries, each update initiated countless changes to other products and as such, we often chose to release new versions less frequently. In the end, though a particular feature may have been completed, it sat on the shelf until we felt enough "new" features were accumulated to warrant a new release.
The Solution
To properly address the needs of our users and introduce more frequent and timely product updates, we considered the following issues and formulated our delivery solution accordingly.
- A single composite installation to simplify product updates for users.
- All products released at the same time with the same version number.
- No more assembly DLL hell.
- Side-by-side installation of multiple versions of the same product.
- Constant new major improvements across all product lines.
- Easier update and code conversion from version to version.
- Increased Product stability and consistency.
- Ability to easily rebuild products from source code.
In order to achieve these aims, we've decided upon a model wherein updates are released 3 times a year with the following versioning information:
X.Y.Z, where
- X - the last digit in the current year;
- Y – the sequence number of the volume within the year;
- Z –minor update number within a given volume.
Let us now describe the benefits of this new delivery model in detail and what you can expect from us going forward.
- All Windows Forms and ASP.NET products will be packaged in the same single composite setup file. This allows you to simultaneously install all the products you actively use and have licensed. The setup will also include access to product betas for our DXperience customers.
- As mentioned previously, all products included in a volume or volume update will have the same version so you do not need to remember which product versions are compatible and which are not. You will be able to easily tell that XtraTreeList 6.1.1 is compatible with XtraGrid 6.1.1 and be confident that when you install a minor release (such as 6.1.2) it will update all related products accordingly.
- Because our assembly file names now include version information, you can easily determine which versions of our products your application uses based upon your application's references.
- Different volumes can be installed side-by-side so you no longer need to worry about porting legacy applications if the business need does not exist. If, however, you do want to move an existing app to the new version, you would need to update your references, and check that your application still works as expected with the new version. This of course is totally up to you.
- We plan to constantly add major improvements/features with each and every volume so you can continually deliver cutting-edge capabilities to your end-users. Bottom line is that you don't have to wait 12 months for a great new feature – if we've built it and it has been tested, you can expect to be using it within a few months.
-
Since there will be more consistent releases, we can spread the risk of interface changes across multiple releases so you should be able to adapt your code base to a new volume with fewer changes, and no more major release upheavals. Every update will include a special Project Converter tool (ProjectConverter.exe) that will modify references for individual projects that you want to move to a new version. By default this is located in \Developer Express .NET v6.1\Tools\DXperience\.
- In addition to regular volume releases, we plan to produce minor updates for every volume. We will produce them either on a monthly basis or on-demand basis if the number of bugs are close to zero. Minor releases for a volume will be produced at least for a year from the original volume release date; thus you can be certain that you have the most stable product version at any given point in time. Fixes will be applied to all currently active volumes.
-
From this point forward, our assemblies will no longer be placed in the Common Files folder but instead, they will be located under the root folder of the installation in the \Sources\DevExpress.DLL folder.
Our setup installs specially configured project files which allow you to rebuild any of the products so that the resulting assembly file is sent to this folder. The only action you will need to initiate is to register the newly rebuilt assembly in the GAC.
Finally, let us take a brief moment and describe how you must use the new composite setup. With this install, you will download a composite installation program. Once you execute the installer, you will be prompted to provide your Client Center login credentials for authentication via our web service (if you do not have access to the internet, an alternate authentication mechanism is available to you). Once authenticated, you will be prompted to select the products you wish to install (from a list of eligible products based on previous purchases). Please note that the following products will continue to use our old installation routine: CodeRush - Refactor! - all ActiveX products.
One important thing to remember is that you need to use the Update button every time a new product is added to your Client Center account so that our setup shows it in the list of available products. It is also best to download the most recent installation version to be certain that you have the most up-to-date products.
We hope that these changes will increase your productivity and increase the reliability to applications you create using our product libraries.
Thank you
The DevExpress Team
www.devexpress.com