Home     About PeterBlum.com     Policies     Download a Licensed Product     Newsletter
ADME Developer's Kit  
Current Release: 1.0.0  Release History  |  Get this Update
Jump to: Download

Product Summary

  • For custom control developers.
  • Access the web.config file from within design mode.
  • Access any other file, including your configuration files, within the web application and \aspnet_client folders.
  • With access to these files, you can provide new design mode features that access databases or offer user-customizable settings.
  • Free with straightforward licensing.

Product Description

ASP.NET Design Mode Extender (“ADME”) helps custom controls to provide a better design mode interface. Visual Studio.Net and Web Matrix provide ‘design mode’, a group of visual editors to show and edit controls that you add to your web forms. You subclass these classes to support design mode:

  • ControlDesigner (in System.Web.UI.Design) draws an image into the visual design page to represent your control. Some designers call the CreateChildControls(), OnPreRender() and other methods of the actual control to generate the HTML. A ControlDesigner can also add commands to the context menu to extend the editing tools.
  • UITypeEditor (in System.Drawing.Design) extends the Properties Window to provide the user interface that edits a particular property.
  • TypeConverter (in System.ComponentModel) primarily converts between different datatypes. It also provides one way to show a list of choices on a property from within the Properties Window.

However the ASP.NET framework has a significant design mode limitation. It does not provide access to the web.config file or identify the file paths to your web applications.

  • The ConfigurationSettings.AppSettings property (in System.Configuration) exposes the <AppSettings> section of the web.config file. In design mode, it retrieves the settings of the IDE’s config file, not of the web.config file.
  • The ConfigurationSettings.GetConfig() method has the same problem.
  • The MapPath() method (in System.Web.HttpRequest, System.Web.HttpServerUtility, System.Web.UI.Page and several other classes) converts a virtual path to a physical file path. If you pass “~” to MapPath() at runtime, you get the web application’s root file path, which you can use to read various XML files into the web application. In design mode, MapPath() always returns an empty string.

If you had access to the web.config file and web application file paths, your users can customize your custom control’s design mode interface.

Here are some ways your custom controls can use ADME to improve your user’s design mode experience:

  • The web.config file contains your settings that initialize and customize the web application at runtime.
    • Users often place their database connection strings here. If design mode had access to the database, it could provide new types of editors.
    • Define customizable default values for your control’s properties. While you can use the DefaultValueAttribute to supply one value, your control could check the web.config file for a customized default as the control is added to the form.

      Note: ADME only accesses the web.config file within the application root folder. It ignores the web.config file in subfolders and the machine.config file.
  • With access to the web application and \aspnet_client\ folders, you can get to application specific support files.
    • Retrieve localized strings from .resx files that are included in the application so your controls reflect a particular culture.
    • Create your own XML configuration file for your control that allows your users to customize their design mode experience. You may develop a property where the user picks from a list of classes. Without ADME, your property’s UITypeEditor or TypeConverter would only be able to show the list you predefined. Since .net is an object-oriented platform, users should be able to create new classes. With ADME, your XML configuration file can allow the user to add new objects into your UITypeEditor or TypeConverter.
      For example, your control has a property called Shape with these classes listed in a UITypeEditor: Square, Circle, and Triangle. Suppose a user develops a new shape class, Polygon. They can add it into your XML configuration file.
  • You may want to offer new configuration settings that are design mode specific, such as a SQL Connection string to a database associated with your control. While you could have the user place such settings in the web.config or your own XML configuration file, you can also expand ADME to store and retrieve simple strings for you.

What ADME Developer's Kit Contains

  • Detailed Developer's Guide, with instructions to code and ship your custom controls with ADME support.
  • The ASP.NET Design Mode Extender, including an installer that your customers will use to install ADME. ADME is much more than an assembly. It includes a Windows application and Add-Ins for Visual Studio.Net and Web Matrix, designed to work around the limitation in the .Net framework.
  • Beta Testers Guide. During this beta period, get started developing with ADME and provide valuable bug reports and product feedback.
ADME Developer's Kit is free and you can distribute the ASP.NET Design Mode Extender itself without charge or complicated licensing. The idea is to give users one tool that extends design mode support amongst all the custom controls they receive.


Product ADME Developer's Kit
Version 1.0 (Current release: 1.0.0)
Price Free
Restricted Usage This product must be licensed. Read the License Agreement
Source Code Not offered
Language C#
Compatibility Microsoft .Net 1.0 and 1.1

Download this file