Up Extend

Customize

Last modified on August 15, 2012 17:22

There are a number of extensibility points within DevForce which allow you to customize your application processing.  We list them here.



The first time DevForce finds and uses your custom classes it will log this fact to the debug log (or other ITraceLogger implementation).  This information, along with logging about all assemblies loaded into the "parts" catalog, can help in diagnosing problems should they occur.  

Use DevForce Types

The following tables list the DevForce interfaces and base types which you can implement or extend to provide customization for your application.  You'll notice that in some cases there are default implementations for an interface; in these cases you can either implement the interface directly or sub-type the base class to provide the customization you require. 

InterfaceDiscoveryPurposeTopic
IAuthenticationManagerClientProvides credentials to an EntityManager.Security
IAuthenticationProviderClientProvides an IAuthenticationManager.Security
ICompositionContextResolverClient and ServerProvides for resolution of custom Composition Contexts.Discovery
IConcurrencyStrategyServerAssigns the value of a concurrency field.Concurrency
IDataSourceKeyResolverClient and ServerDetermines the data source key and connection information. Data sources  
IEntityLoginManagerServerValidates user credentials.Security
IIdGeneratorClient and Server  Assigns temporary and permanent IDs for entities.Custom ids
IKnownTypeClient and ServerIndicates a known type.Known types
IKnownTypeProviderClient and Server Provides programmatic specification of known types.Known types
ILoginCredentialClient and Server Defines user credentials.Security
ITraceLoggerClient and ServerA custom logger.Log
ITraceLoggerProviderClient and ServerProvides custom logging.Log
IVerifierProviderClient and ServerProvides programmatic specification of verifiers.Validation

Base TypeDiscoveryPurposeTopic
AspAuthenticatingLoginManager  ServerDefault IEntityLoginManager when using ASP.NET security.Security
BaseCompositionContextResolver Client and Server  Default ICompositionContextResolver implementation. Discovery
DefaultConcurrencyValueSetterServerDefault IConcurrencyStrategy implementation.Concurrency
DefaultDataSourceKeyResolverClient and Server  Default IDataSourceKeyResolver implementation.Data sources  
EntityServerErrorInterceptorServerIntercept and filter exceptions before sending to the client.Security
EntityServerPocoSaveAdapterServerProvides save processing for POCO classes.POCO
EntityServerQueryInterceptorServer Intercept and customize query processing.Query
EntityServerSaveInterceptorServer Intercept and customize save processing.Save
EntityServiceApplicationServer Allows for interception of EntityService events.Configure
FormsAuthenticationLoginCredential Client and ServerILoginCredential which can be used with ASP.NET Security.Security
LoginCredentialClient and ServerDefault ILoginCredential implementation.Security
ServiceHostEventsServer Customize configuration of WCF services.Configuration
ServiceProxyEventsClient Customize configuration of WCF proxies.Configuration
UserBaseClient and ServerDefault IPrincipal implementation.Security
UserIdentityClient and ServerDefault IIdentity implementation.Security

Use DevForce attributes

There are also a few attributes which DevForce will look for to provide specific functionality. There are other DevForce attributes, such as those for validation, property interception, and authorization, but we won't list them here since they don't directly relate to the topic of discoverability and extensibility.

AttributeDiscovery Purpose Topic
AllowRpcAttributeServer Indicates an invoked server method.Server methods
DiscoverableTypeAttribute Client and Server Indicates a known type. Known types
EnableClientAccessAttribute ServerIndicates a provider of CRUD processing for POCO classes. POCO
Created by DevForce on September 12, 2010 17:32

This wiki is licensed under a Creative Commons 2.0 license. XWiki Enterprise 3.2 - Documentation. Copyright © 2015 IdeaBlade