SlideShare a Scribd company logo
2006 Adobe Systems Incorporated. All Rights Reserved.
1
ColdFusion .NET
Integration
Rupesh Kumar
Computer Scientist, ColdFusion Team
Adobe
2006 Adobe Systems Incorporated. All Rights Reserved.
2
 Introduction
 Brief .NET Introduction
 Interoperability Strategies for .NET
 .NET Integration Features
 Syntax
 Demo
 Nuts and Bolts
 Deployment scenarios
 Limitation
 Q&A
Agenda
2006 Adobe Systems Incorporated. All Rights Reserved.
3
 Why .NET integration ??
Leverage some functionality available in .NET
Leverage Microsoft products like Word, Excel, Outlook,
Exchange server etc.
Existing investments.
Existing components and services
Acquired components and services
Introduction
2006 Adobe Systems Incorporated. All Rights Reserved.
4
 Makes Hard Stuff Easy !!!
 Makes all the technologies available
 Keep it simple.
 Java, COM, corba, any webservice, flex
CF
COM
CORBA
Java
Flex
Web Services
.NET
Application
X
What ColdFusion provides?
2006 Adobe Systems Incorporated. All Rights Reserved.
5
 Microsoft intermediate language (MSIL)
 CLR (like JVM for Java)
 Manages memory, threads, execution of MSIL etc
 .NET versions – 1.x and 2.0
 Assembly - .dll or .exe (C#, VB, VJ#, managed C++)
 Global assembly cache (GAC)
Brief .NET introduction
2006 Adobe Systems Incorporated. All Rights Reserved.
6
 Web Services
 Messaging
 Using COM
 Runtime Unification (NEW !!)
Interoperability Strategies
2006 Adobe Systems Incorporated. All Rights Reserved.
7
.NET  CF (CF components exposed as web service)
<cfcomponent>
<cffunction name='echo' returnType=‘string‘ access='remote'>
<cfargument name='input' type=‘string'>
<cfreturn #arguments.input#>
</cffunction>
</cfcomponent>
 Access the wsdl using component’s URL
http://localhost/echo.cfc?wsdl
CF  .NET (.net components exposed as webservice)
<cfobject webservice="http://xyz/TempService.wsdl"
name="obj">
<cfset temp=obj.getTemp("55987")>
Web Services
2006 Adobe Systems Incorporated. All Rights Reserved.
8
 Messaging (JMS, MQSeries…)
Event Gateways
Messaging & COM
 COM
Create COM wrapper for .NET assembly
Create Java proxy using some tool
Invoke proxy from CF
ColdFusion Messaging
Provider
.NET
Event
gateways
2006 Adobe Systems Incorporated. All Rights Reserved.
9
Make .NET components locally available
For more fine grained control and invocations
Invoke .NET components directly from cfm.
CFM
CF
Server
.NET
Assembly
Direct invocationProxy
Runtime Unification – New in Scorpio !
2006 Adobe Systems Incorporated. All Rights Reserved.
10
Using cfobject and CreateObject
Works very much same as cfobject/CreateObject for java
<cfobject type=”.net” class=”com.comp.AccountMgr”
assembly=“act.dll” name=”actMgr”>
<cfset act = actMgr.getAccount(101)>
<cfset bal = act.getBalance()>
Runtime Unification - How does it look?
11
2006 Adobe Systems Incorporated. All Rights Reserved.
Web Services Vs Runtime Unification
Web Services
 Loose Coupling
 Coarse granular and less
programmatic control (as it is
XML based)
 Low on performance, reliability
and security
 Stateless
 Most useful to use it with
external systems (third party
services like weather/stock price
webservices)
Runtime Unification
 Tight Coupling
 Fine granular and more
programmatic control as it is like
invoking local objects
 High on performance, reliability
and security
 Stateful
 Most useful when used with
internal systems of enterprise.
2006 Adobe Systems Incorporated. All Rights Reserved.
12
 Seamless. You don’t need to know much about .NET
 Location independent.
 Can be local or remote
 Can be even outside the firewall (over the web).
 Platform independent.
 CF on any platform
 .NET will of course be on a windows
 Hot deployment of assemblies
 Communication with multiple .NET side
 Secure
 Auto conversion from/to basic CF data types to/from .NET
Features
2006 Adobe Systems Incorporated. All Rights Reserved.
13
<cfobject type=".Net"
class=".Net class"
name="Object name"
assembly="list of assemblies" [optional]
protocol="tcp|http" [optional]
secure="true|false" [optional]
server="IPAddress“ [optional]
port="port"> [optional]
 CreateObject(".Net", ".Net class")
 CreateObject(".Net", ".Net class", "assembly list")
 CreateObject(".Net", ".Net class", "assembly list", "IP
Address”, “port”)
 CreateObject(".Net", ".Net class", "assembly list", "IP
Address", "port", "protocol", "secure")
Syntax
2006 Adobe Systems Incorporated. All Rights Reserved.
14
 Assembly
 List of dll’s and/or exe’s and/or proxy jars.
 mscorlib.dll assembly will always be included.
 Any referenced assembly if present in GAC will automatically be
included.
 Protocol
 Binary – default. Better performance
 HTTP – can be used across firewall
 Secure CF-.NET communication using SSL
 ColdFusion acts as SSL client
 .NET side certificate should be trusted by Coldfusion.
Syntax…
2006 Adobe Systems Incorporated. All Rights Reserved.
15
 Constructors – use init
< cfobject type=”.net” class=”com.comp.Account”
assembly=“act.dll” name=”act”>
<cfset act.init(“Rupesh”, 1000)>
 Static method
<cfset types = act.getAccountTypes()>
<!--- no need to init() to call static method --->
 Calling methods
<cfset balance = act.getBalance()>
 Accessing public fields (using Get_fieldname() and Set_fieldname())
<cfset types = act.Get_name()> <!--- to access ‘name’ --->
 No setter if the field is final
Invocation
2006 Adobe Systems Incorporated. All Rights Reserved.
16
DEMO
DEMO
2006 Adobe Systems Incorporated. All Rights Reserved.
17
Datatypes
 Automatic conversion of primitive .NET datatypes to CF and CF (java)
datatypes to .NET
 decimal type not supported
 use javacast() if required
 javacast enhanced to support byte, short and char.
18
2006 Adobe Systems Incorporated. All Rights Reserved.
Datatype Mapping
.NET
 sbyte
 byte
 short
 ushort
 int
 uint
 char
 long
 ulong
 float
 double
 bool
 String
 decimal
Java
 byte
 short
 short
 int
 int
 long
 char
 long
 float
 float
 double
 boolean
 String
 NOT Supported
2006 Adobe Systems Incorporated. All Rights Reserved.
19
 Ambiguous Method Arguments
 Example 1
public void foo(int param)
public void foo(short param)
foo(12) – X
foo(javacast( “short”, 12)) -
 Example 2
public void foo (String arg1)
public void foo (int arg1)
foo(“123”) – X
foo(javacast(“String”, “123”)) -
When to use Javacast
2006 Adobe Systems Incorporated. All Rights Reserved.
20
CFM /
CFC
CF Server
Proxy
CFSideAgent
.NET
Assembly
.NETsideagent
TCP/HTTP
Can be over SSL
What’s going on inside?
2006 Adobe Systems Incorporated. All Rights Reserved.
21
 A proxy is what is used to interface between CF and the .NET runtime
 Automatically generated by CF if assembly is used
 To be generated by the user using a CF tool if CF is on non-windows machine.
 Generate once and use anywhere
 Proxies generated for 1.x can be used for 1.x as well as 2.0
 Proxies generated for 2.0 will only be used for 2.0
 Pass by reference (default)
 Pass by value
 Reduced network calls
 Bigger objects go over network. so can degrade performance
 User should judge if this is required for a class
 Ideal for simple data objects
Nuts and Bolts – Proxy
2006 Adobe Systems Incorporated. All Rights Reserved.
22
Nuts and Bolts - . NET side agent
 Agent that runs with .NET
 Registration of assemblies.
 Accepts calls from CF side proxy for invocation
 Delegates the call to the actual assembly
 Can configure port and protocol to be used
 Separate installer to install only the agent.
2006 Adobe Systems Incorporated. All Rights Reserved.
23
 CF and .NET on same machine
Of course it will be a windows machine 
No user configuration required
.NET side agent will be started by CF
Automatic registration of the assembly with the .NET side agent
Uses tcp protocol and default port by default
Auto generation of proxy if assembly changes
Deployment scenarios - Local
2006 Adobe Systems Incorporated. All Rights Reserved.
24
 CF and .NET on different machines - Both Windows
.NET side agent (shipped with CF) needs to be installed
Register the assemblies with .NET side agent
Ensure that .NET side agent is running on the remote machine
In cfobject/CreateObject, use host and port
Deployment scenarios - Remote
2006 Adobe Systems Incorporated. All Rights Reserved.
25
 CF on non-Windows
.NET side agent (shipped with CF) needs to be installed
Generate the proxy using CF tool – jnbproxy.exe on .NET machine
Register the assembly with the .NET side agent
Ensure that .NET side agent is running on the remote machine
Copy the generated jar on the CF-machine
Use proxy jar in the assembly list.
In cfobject/CreateObject, use host and port
Deployment scenarios - Remote…
2006 Adobe Systems Incorporated. All Rights Reserved.
26
 Enum and Decimal data type
 methods with out parameters as arguments
 methods with pointers as arguments or return type
 .NET UI components
 Callbacks (events and Delegates) from .NET side
Limitations
2006 Adobe Systems Incorporated. All Rights Reserved.
27
Q & A
Q&A
2006 Adobe Systems Incorporated. All Rights Reserved.
28

More Related Content

ODP
Power ai image-pipeline
PDF
All Things Open 2019 weave-services-istio
PPT
Apache Aries: A blueprint for developing with OSGi and JEE
PDF
IBM Monitoring and Diagnostic Tools - GCMV 2.8
PDF
Linux sever building
PDF
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
PDF
Camel_From_The_Field
PDF
Mac ruby deployment
Power ai image-pipeline
All Things Open 2019 weave-services-istio
Apache Aries: A blueprint for developing with OSGi and JEE
IBM Monitoring and Diagnostic Tools - GCMV 2.8
Linux sever building
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Camel_From_The_Field
Mac ruby deployment

What's hot (20)

PPTX
Performance tips for Symfony2 & PHP
PDF
Introduction to Apache Camel
PDF
Realtime Streaming using Autobahn Websockets
PPTX
Tamir Dresher - Demystifying the Core of .NET Core
PPT
The Web on OSGi: Here's How
PDF
SPIFFE Meetup Tokyo #2 - Attestation Internals in SPIRE - Shingo Omura
PDF
Virtunoid: Breaking out of KVM
PDF
Debugging Java from Dumps
PDF
oVirt CI Package Managenent
PDF
All about CFThread - CFUnited 2008
PDF
Everything as a code
PPT
FreeRTOS Course - Queue Management
PPT
Find bottleneck and tuning in Java Application
PDF
OSGi ecosystems compared on Apache Karaf - Christian Schneider
PPTX
Symfony Under Control by Maxim Romanovsky
PDF
Crushing Latency with Vert.x
PDF
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
PDF
JavaOne San Francisco 2013 - Servlet 3.1 (JSR 340)
PDF
Typhoon Managed Execution Toolkit
PPTX
Real World Lessons on the Pain Points of Node.js Applications
Performance tips for Symfony2 & PHP
Introduction to Apache Camel
Realtime Streaming using Autobahn Websockets
Tamir Dresher - Demystifying the Core of .NET Core
The Web on OSGi: Here's How
SPIFFE Meetup Tokyo #2 - Attestation Internals in SPIRE - Shingo Omura
Virtunoid: Breaking out of KVM
Debugging Java from Dumps
oVirt CI Package Managenent
All about CFThread - CFUnited 2008
Everything as a code
FreeRTOS Course - Queue Management
Find bottleneck and tuning in Java Application
OSGi ecosystems compared on Apache Karaf - Christian Schneider
Symfony Under Control by Maxim Romanovsky
Crushing Latency with Vert.x
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
JavaOne San Francisco 2013 - Servlet 3.1 (JSR 340)
Typhoon Managed Execution Toolkit
Real World Lessons on the Pain Points of Node.js Applications
Ad

Viewers also liked (7)

PPTX
ColdFusion 11 Overview - CFSummit 2013
PPTX
ColdFusion ORM - Advanced : Adobe Max 2009
PPT
ColdFusion 9 ORM
PPT
Language enhancement in ColdFusion 8
PDF
Shooting the Rapids
PPT
Language Enhancement in ColdFusion 8 - CFUnited 2007
PDF
Let's Get to the Rapids
ColdFusion 11 Overview - CFSummit 2013
ColdFusion ORM - Advanced : Adobe Max 2009
ColdFusion 9 ORM
Language enhancement in ColdFusion 8
Shooting the Rapids
Language Enhancement in ColdFusion 8 - CFUnited 2007
Let's Get to the Rapids
Ad

Similar to ColdFusion .NET integration - Adobe Max 2006 (20)

PPTX
WIndows Embedded Compact 2013 – What’s news
PPT
ColdFusion MX 7 Server Administration
PPT
Csharp dot net
PPT
Dot netsupport in alpha five v11 coming soon
PPT
SynapseIndia dotnet development framework
PDF
Provisioning the IoT
PDF
"Wie passen Serverless & Autonomous zusammen?"
PPTX
2014 cf summit_clustering
PPTX
ASP.NET vNext the future of ASP
PPTX
Presentation1.pptx
PDF
Browser exploitation SEC-T 2019 stockholm
PDF
Bare Metal to OpenStack with Razor and Chef
PPT
Railo Presentation Railo 3.1
PDF
Import golang; struct microservice
PPTX
Terraform
DOCX
Backtrack Manual Part4
PDF
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
PDF
Flutter Vikings 2022 - Full Stack Dart
PPTX
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
WIndows Embedded Compact 2013 – What’s news
ColdFusion MX 7 Server Administration
Csharp dot net
Dot netsupport in alpha five v11 coming soon
SynapseIndia dotnet development framework
Provisioning the IoT
"Wie passen Serverless & Autonomous zusammen?"
2014 cf summit_clustering
ASP.NET vNext the future of ASP
Presentation1.pptx
Browser exploitation SEC-T 2019 stockholm
Bare Metal to OpenStack with Razor and Chef
Railo Presentation Railo 3.1
Import golang; struct microservice
Terraform
Backtrack Manual Part4
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Flutter Vikings 2022 - Full Stack Dart
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler

Recently uploaded (20)

PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
KodekX | Application Modernization Development
PDF
Approach and Philosophy of On baking technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Encapsulation theory and applications.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Cloud computing and distributed systems.
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Big Data Technologies - Introduction.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Agricultural_Statistics_at_a_Glance_2022_0.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
KodekX | Application Modernization Development
Approach and Philosophy of On baking technology
Reach Out and Touch Someone: Haptics and Empathic Computing
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
The AUB Centre for AI in Media Proposal.docx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Encapsulation theory and applications.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Understanding_Digital_Forensics_Presentation.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Building Integrated photovoltaic BIPV_UPV.pdf
Cloud computing and distributed systems.
Programs and apps: productivity, graphics, security and other tools
Big Data Technologies - Introduction.pptx
Spectral efficient network and resource selection model in 5G networks
NewMind AI Weekly Chronicles - August'25 Week I
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

ColdFusion .NET integration - Adobe Max 2006

  • 1. 2006 Adobe Systems Incorporated. All Rights Reserved. 1 ColdFusion .NET Integration Rupesh Kumar Computer Scientist, ColdFusion Team Adobe
  • 2. 2006 Adobe Systems Incorporated. All Rights Reserved. 2  Introduction  Brief .NET Introduction  Interoperability Strategies for .NET  .NET Integration Features  Syntax  Demo  Nuts and Bolts  Deployment scenarios  Limitation  Q&A Agenda
  • 3. 2006 Adobe Systems Incorporated. All Rights Reserved. 3  Why .NET integration ?? Leverage some functionality available in .NET Leverage Microsoft products like Word, Excel, Outlook, Exchange server etc. Existing investments. Existing components and services Acquired components and services Introduction
  • 4. 2006 Adobe Systems Incorporated. All Rights Reserved. 4  Makes Hard Stuff Easy !!!  Makes all the technologies available  Keep it simple.  Java, COM, corba, any webservice, flex CF COM CORBA Java Flex Web Services .NET Application X What ColdFusion provides?
  • 5. 2006 Adobe Systems Incorporated. All Rights Reserved. 5  Microsoft intermediate language (MSIL)  CLR (like JVM for Java)  Manages memory, threads, execution of MSIL etc  .NET versions – 1.x and 2.0  Assembly - .dll or .exe (C#, VB, VJ#, managed C++)  Global assembly cache (GAC) Brief .NET introduction
  • 6. 2006 Adobe Systems Incorporated. All Rights Reserved. 6  Web Services  Messaging  Using COM  Runtime Unification (NEW !!) Interoperability Strategies
  • 7. 2006 Adobe Systems Incorporated. All Rights Reserved. 7 .NET  CF (CF components exposed as web service) <cfcomponent> <cffunction name='echo' returnType=‘string‘ access='remote'> <cfargument name='input' type=‘string'> <cfreturn #arguments.input#> </cffunction> </cfcomponent>  Access the wsdl using component’s URL http://localhost/echo.cfc?wsdl CF  .NET (.net components exposed as webservice) <cfobject webservice="http://xyz/TempService.wsdl" name="obj"> <cfset temp=obj.getTemp("55987")> Web Services
  • 8. 2006 Adobe Systems Incorporated. All Rights Reserved. 8  Messaging (JMS, MQSeries…) Event Gateways Messaging & COM  COM Create COM wrapper for .NET assembly Create Java proxy using some tool Invoke proxy from CF ColdFusion Messaging Provider .NET Event gateways
  • 9. 2006 Adobe Systems Incorporated. All Rights Reserved. 9 Make .NET components locally available For more fine grained control and invocations Invoke .NET components directly from cfm. CFM CF Server .NET Assembly Direct invocationProxy Runtime Unification – New in Scorpio !
  • 10. 2006 Adobe Systems Incorporated. All Rights Reserved. 10 Using cfobject and CreateObject Works very much same as cfobject/CreateObject for java <cfobject type=”.net” class=”com.comp.AccountMgr” assembly=“act.dll” name=”actMgr”> <cfset act = actMgr.getAccount(101)> <cfset bal = act.getBalance()> Runtime Unification - How does it look?
  • 11. 11 2006 Adobe Systems Incorporated. All Rights Reserved. Web Services Vs Runtime Unification Web Services  Loose Coupling  Coarse granular and less programmatic control (as it is XML based)  Low on performance, reliability and security  Stateless  Most useful to use it with external systems (third party services like weather/stock price webservices) Runtime Unification  Tight Coupling  Fine granular and more programmatic control as it is like invoking local objects  High on performance, reliability and security  Stateful  Most useful when used with internal systems of enterprise.
  • 12. 2006 Adobe Systems Incorporated. All Rights Reserved. 12  Seamless. You don’t need to know much about .NET  Location independent.  Can be local or remote  Can be even outside the firewall (over the web).  Platform independent.  CF on any platform  .NET will of course be on a windows  Hot deployment of assemblies  Communication with multiple .NET side  Secure  Auto conversion from/to basic CF data types to/from .NET Features
  • 13. 2006 Adobe Systems Incorporated. All Rights Reserved. 13 <cfobject type=".Net" class=".Net class" name="Object name" assembly="list of assemblies" [optional] protocol="tcp|http" [optional] secure="true|false" [optional] server="IPAddress“ [optional] port="port"> [optional]  CreateObject(".Net", ".Net class")  CreateObject(".Net", ".Net class", "assembly list")  CreateObject(".Net", ".Net class", "assembly list", "IP Address”, “port”)  CreateObject(".Net", ".Net class", "assembly list", "IP Address", "port", "protocol", "secure") Syntax
  • 14. 2006 Adobe Systems Incorporated. All Rights Reserved. 14  Assembly  List of dll’s and/or exe’s and/or proxy jars.  mscorlib.dll assembly will always be included.  Any referenced assembly if present in GAC will automatically be included.  Protocol  Binary – default. Better performance  HTTP – can be used across firewall  Secure CF-.NET communication using SSL  ColdFusion acts as SSL client  .NET side certificate should be trusted by Coldfusion. Syntax…
  • 15. 2006 Adobe Systems Incorporated. All Rights Reserved. 15  Constructors – use init < cfobject type=”.net” class=”com.comp.Account” assembly=“act.dll” name=”act”> <cfset act.init(“Rupesh”, 1000)>  Static method <cfset types = act.getAccountTypes()> <!--- no need to init() to call static method --->  Calling methods <cfset balance = act.getBalance()>  Accessing public fields (using Get_fieldname() and Set_fieldname()) <cfset types = act.Get_name()> <!--- to access ‘name’ --->  No setter if the field is final Invocation
  • 16. 2006 Adobe Systems Incorporated. All Rights Reserved. 16 DEMO DEMO
  • 17. 2006 Adobe Systems Incorporated. All Rights Reserved. 17 Datatypes  Automatic conversion of primitive .NET datatypes to CF and CF (java) datatypes to .NET  decimal type not supported  use javacast() if required  javacast enhanced to support byte, short and char.
  • 18. 18 2006 Adobe Systems Incorporated. All Rights Reserved. Datatype Mapping .NET  sbyte  byte  short  ushort  int  uint  char  long  ulong  float  double  bool  String  decimal Java  byte  short  short  int  int  long  char  long  float  float  double  boolean  String  NOT Supported
  • 19. 2006 Adobe Systems Incorporated. All Rights Reserved. 19  Ambiguous Method Arguments  Example 1 public void foo(int param) public void foo(short param) foo(12) – X foo(javacast( “short”, 12)) -  Example 2 public void foo (String arg1) public void foo (int arg1) foo(“123”) – X foo(javacast(“String”, “123”)) - When to use Javacast
  • 20. 2006 Adobe Systems Incorporated. All Rights Reserved. 20 CFM / CFC CF Server Proxy CFSideAgent .NET Assembly .NETsideagent TCP/HTTP Can be over SSL What’s going on inside?
  • 21. 2006 Adobe Systems Incorporated. All Rights Reserved. 21  A proxy is what is used to interface between CF and the .NET runtime  Automatically generated by CF if assembly is used  To be generated by the user using a CF tool if CF is on non-windows machine.  Generate once and use anywhere  Proxies generated for 1.x can be used for 1.x as well as 2.0  Proxies generated for 2.0 will only be used for 2.0  Pass by reference (default)  Pass by value  Reduced network calls  Bigger objects go over network. so can degrade performance  User should judge if this is required for a class  Ideal for simple data objects Nuts and Bolts – Proxy
  • 22. 2006 Adobe Systems Incorporated. All Rights Reserved. 22 Nuts and Bolts - . NET side agent  Agent that runs with .NET  Registration of assemblies.  Accepts calls from CF side proxy for invocation  Delegates the call to the actual assembly  Can configure port and protocol to be used  Separate installer to install only the agent.
  • 23. 2006 Adobe Systems Incorporated. All Rights Reserved. 23  CF and .NET on same machine Of course it will be a windows machine  No user configuration required .NET side agent will be started by CF Automatic registration of the assembly with the .NET side agent Uses tcp protocol and default port by default Auto generation of proxy if assembly changes Deployment scenarios - Local
  • 24. 2006 Adobe Systems Incorporated. All Rights Reserved. 24  CF and .NET on different machines - Both Windows .NET side agent (shipped with CF) needs to be installed Register the assemblies with .NET side agent Ensure that .NET side agent is running on the remote machine In cfobject/CreateObject, use host and port Deployment scenarios - Remote
  • 25. 2006 Adobe Systems Incorporated. All Rights Reserved. 25  CF on non-Windows .NET side agent (shipped with CF) needs to be installed Generate the proxy using CF tool – jnbproxy.exe on .NET machine Register the assembly with the .NET side agent Ensure that .NET side agent is running on the remote machine Copy the generated jar on the CF-machine Use proxy jar in the assembly list. In cfobject/CreateObject, use host and port Deployment scenarios - Remote…
  • 26. 2006 Adobe Systems Incorporated. All Rights Reserved. 26  Enum and Decimal data type  methods with out parameters as arguments  methods with pointers as arguments or return type  .NET UI components  Callbacks (events and Delegates) from .NET side Limitations
  • 27. 2006 Adobe Systems Incorporated. All Rights Reserved. 27 Q & A Q&A
  • 28. 2006 Adobe Systems Incorporated. All Rights Reserved. 28