Tuesday, March 20, 2007
This is the second part of this post. In this one I will tell you what you need to know when you are creating a new Provider (Typed or Untyped).
When you are creating a new provider for your own block you will have to specify many things (when a well known provider for an existent block is being created we already know the provider hierarchy so we don't need to ask you :)):
1. Provider Interface
2. Provider base class
3. Configuration class
There are basically two kinds of providers: Typed and Untyped.
Typed Providers: The typed providers have strongly typed configuration. This means that you have to specify every configuration property in the Configuration Class and Design-Time Class.
(1) and (2) could be the same but you will probably want to be different in order to separate the Interface from its implementation. The (3) is the base class for all configuration object in the same provider hierarchy. It provides the abstract message protocol to create specific configuration objects.
UnTyped Providers: All untyped providers have the same configuration class and it's based on key/value pairs (as strings). So the provider will receive a Name Value Collection and it will have to parse manually the values.
So if you want to create Providers with a very little effort you will probably need an Untyped Provider but if you want a fully design-time user experience you will need a Typed Provider.