Data Centric Development (DCD) provides the following services (as plugins):-
ColdFusion, PHP, WebService, HTTP, LCDS, BlazeDS
Is that it?
What if we need to connect to some other server technology?
Cant we create services for some other server technology using the DCD workflow and author flex applications for it ?
Luckily DCD ALSO provides extensiblity mechanism, using which users can write their own plugin for a particular server technology.
This developed plugin can then be used with the Flash Builder to connect to that server, create services and use DCD workflow to develop Flex applications!
Using DCD Extensibility to create plugins?
Lets consider a scenario:
EnterpriseDebbie
is a developer in an Enterprise. EnterpriseDebbie
often wants to use the enterprise services that are written in Ruby in her web applications. EnterpriseDebbie
sees the extensible architecture in Flex Builder and builds a plug-in so that all of the developers in that Enterprise can now use the plug-in to generate client-side code for the Ruby on Rails services.EnterpriseDebbie
has these options to do this:# She has a product, which supports AMF communication with Ruby on Rails, example WebOrb
for Ruby on Rails (similar to BlazeDS
)
- She just has a AMF implementation which could be plugged in to any server, example RubyAMF
(similar to AMFPHP) - She consumes Ruby on Rails services through HTTPService in Flex (similar to any other HTTP Service)EnterpriseDebbie
builds the plug-in with one of the above options and enables developers in her enterprise to use features in the DCD workflows.
Now, DCDEx supports three “server types” :-
HTTPService, WebService and RemoteObject
Which means if your server-side application is accessible over HTTP, you can connect to a Flex application by using HTTPService. Likewise for other server types.
Extension Points details
There will be some extension points which can be used by plug-in authors to provide their own service implementation as mentioned below:-
1. Extension point details:
- Services Wizard,
- Service Introspection (invoked in wizard / services explorer using refresh option),
- Viewing Service File (As part of the Package Explorer, for example a CF developer can now see the CFC file that he/she has imported/created in the services folder)
- Service Properties
Extension Point: serviceImplementation
Location: com.adobe.flexbuilder.DCDService
Extension Point Elements:
- serviceWizard: attribute name: class, a Java Class, should implement IServiceWizard
- serviceIntrospector: attribute name: class, a Java Class, should implement IServiceIntrospector
- serviceProperties: attribute name: class, a Java Class, should implement IServiceProperties
2. Extension point details: Right-Click Context Menu
Extension Point: designViewContextMenu
Location: com.adobe.flexbuilder.mxml.editor.design
Extension Point Elements: configuration
- class: Required, Java Type, must Implement com.adobe.flexbuilder.mxml.editor.design.extensions.IComponentConfiguration
The component on which right click happened will be set as the component Instance and run() method will be called. - fullyQualifiedComponentName: Required, String Type
The fully qualified class name of the component on which this context menu item needs to be added. For example, mx.controls.DataGrid - displayString: Required, String Type
The string which will be displayed in the context menu item.
3. Extension point details: UI Authoring
Extension Point: componentConfigurator
Location: com.adobe.flexbuilder.dcrad
Extension Point Elements: configuration
- class: Required, Java Type, must implement Implements com.adobe.flexbuilder.dcrad.extensions.IComponentDataConfiguration
The component on which Service/Operation is dragged-dropped will be set as the component Instance and run() method will be called. - fullyQualifiedComponentName: Required, String Type
The fully qualified class name of the component on which to associate with this configurator. For example, mx.controls.DataGrid