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

What's hot

Performance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPPerformance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHP
Max Romanovsky
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
FuseSource.com
 
Realtime Streaming using Autobahn Websockets
Realtime Streaming using Autobahn WebsocketsRealtime Streaming using Autobahn Websockets
Realtime Streaming using Autobahn Websockets
Tom Sheffler
 
Tamir Dresher - Demystifying the Core of .NET Core
Tamir Dresher  - Demystifying the Core of .NET CoreTamir Dresher  - Demystifying the Core of .NET Core
Tamir Dresher - Demystifying the Core of .NET Core
Tamir Dresher
 
The Web on OSGi: Here's How
The Web on OSGi: Here's HowThe Web on OSGi: Here's How
The Web on OSGi: Here's How
mrdon
 
SPIFFE Meetup Tokyo #2 - Attestation Internals in SPIRE - Shingo Omura
SPIFFE Meetup Tokyo #2 - Attestation Internals in SPIRE - Shingo OmuraSPIFFE Meetup Tokyo #2 - Attestation Internals in SPIRE - Shingo Omura
SPIFFE Meetup Tokyo #2 - Attestation Internals in SPIRE - Shingo Omura
Preferred Networks
 
Virtunoid: Breaking out of KVM
Virtunoid: Breaking out of KVMVirtunoid: Breaking out of KVM
Virtunoid: Breaking out of KVM
Nelson Elhage
 
Debugging Java from Dumps
Debugging Java from DumpsDebugging Java from Dumps
Debugging Java from Dumps
Chris Bailey
 
oVirt CI Package Managenent
oVirt CI Package ManagenentoVirt CI Package Managenent
oVirt CI Package Managenent
Barak Korren
 
All about CFThread - CFUnited 2008
All about CFThread - CFUnited 2008All about CFThread - CFUnited 2008
All about CFThread - CFUnited 2008
Rupesh Kumar
 
Everything as a code
Everything as a codeEverything as a code
Everything as a code
Aleksandr Tarasov
 
FreeRTOS Course - Queue Management
FreeRTOS Course - Queue ManagementFreeRTOS Course - Queue Management
FreeRTOS Course - Queue Management
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
 
Find bottleneck and tuning in Java Application
Find bottleneck and tuning in Java ApplicationFind bottleneck and tuning in Java Application
Find bottleneck and tuning in Java Application
guest1f2740
 
OSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian SchneiderOSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian Schneider
mfrancis
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovsky
php-user-group-minsk
 
Crushing Latency with Vert.x
Crushing Latency with Vert.xCrushing Latency with Vert.x
Crushing Latency with Vert.x
Paulo Lopes
 
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentOSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
Sanjeeb Sahoo
 
JavaOne San Francisco 2013 - Servlet 3.1 (JSR 340)
JavaOne San Francisco 2013 - Servlet 3.1 (JSR 340)JavaOne San Francisco 2013 - Servlet 3.1 (JSR 340)
JavaOne San Francisco 2013 - Servlet 3.1 (JSR 340)
Shing Wai Chan
 
Typhoon Managed Execution Toolkit
Typhoon Managed Execution ToolkitTyphoon Managed Execution Toolkit
Typhoon Managed Execution Toolkit
Dimitry Snezhkov
 
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsReal World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js Applications
Ben Hall
 

What's hot (20)

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

Viewers also liked

ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013
Rupesh Kumar
 
ColdFusion ORM - Advanced : Adobe Max 2009
ColdFusion ORM - Advanced : Adobe Max 2009ColdFusion ORM - Advanced : Adobe Max 2009
ColdFusion ORM - Advanced : Adobe Max 2009
Rupesh Kumar
 
ColdFusion 9 ORM
ColdFusion 9 ORMColdFusion 9 ORM
ColdFusion 9 ORM
Rupesh Kumar
 
Language enhancement in ColdFusion 8
Language enhancement in ColdFusion 8Language enhancement in ColdFusion 8
Language enhancement in ColdFusion 8
Rupesh Kumar
 
Shooting the Rapids
Shooting the RapidsShooting the Rapids
Shooting the Rapids
Maurice Naftalin
 
Language Enhancement in ColdFusion 8 - CFUnited 2007
Language Enhancement in ColdFusion 8 - CFUnited 2007Language Enhancement in ColdFusion 8 - CFUnited 2007
Language Enhancement in ColdFusion 8 - CFUnited 2007
Rupesh Kumar
 
Let's Get to the Rapids
Let's Get to the RapidsLet's Get to the Rapids
Let's Get to the Rapids
Maurice Naftalin
 

Viewers also liked (7)

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

Similar to ColdFusion .NET integration - Adobe Max 2006

WIndows Embedded Compact 2013 – What’s news
WIndows Embedded Compact 2013 – What’s newsWIndows Embedded Compact 2013 – What’s news
WIndows Embedded Compact 2013 – What’s news
Mirco Vanini
 
ColdFusion MX 7 Server Administration
ColdFusion MX 7 Server AdministrationColdFusion MX 7 Server Administration
ColdFusion MX 7 Server Administration
Steven Erat
 
Csharp dot net
Csharp dot netCsharp dot net
Csharp dot net
Revanth Mca
 
Dot netsupport in alpha five v11 coming soon
Dot netsupport in alpha five v11 coming soonDot netsupport in alpha five v11 coming soon
Dot netsupport in alpha five v11 coming soon
Richard Rabins
 
SynapseIndia dotnet development framework
SynapseIndia  dotnet development frameworkSynapseIndia  dotnet development framework
SynapseIndia dotnet development framework
Synapseindiappsdevelopment
 
Provisioning the IoT
Provisioning the IoTProvisioning the IoT
Provisioning the IoT
Sander Mak (@Sander_Mak)
 
"Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?""Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?"
Volker Linz
 
2014 cf summit_clustering
2014 cf summit_clustering2014 cf summit_clustering
2014 cf summit_clustering
ColdFusionConference
 
ASP.NET vNext the future of ASP
ASP.NET vNext the future of ASPASP.NET vNext the future of ASP
ASP.NET vNext the future of ASP
Clément Hallet
 
Presentation1.pptx
Presentation1.pptxPresentation1.pptx
Presentation1.pptx
JayakumarS71
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Amazon Web Services
 
.Net Core
.Net Core.Net Core
Browser exploitation SEC-T 2019 stockholm
Browser exploitation SEC-T 2019 stockholmBrowser exploitation SEC-T 2019 stockholm
Browser exploitation SEC-T 2019 stockholm
Jameel Nabbo
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
Matt Ray
 
Railo Presentation Railo 3.1
Railo Presentation Railo 3.1Railo Presentation Railo 3.1
Railo Presentation Railo 3.1
Rhinofly
 
Import golang; struct microservice
Import golang; struct microserviceImport golang; struct microservice
Import golang; struct microservice
Giulio De Donato
 
Terraform
TerraformTerraform
Terraform
Adam Vincze
 
Backtrack Manual Part4
Backtrack Manual Part4Backtrack Manual Part4
Backtrack Manual Part4
Nutan Kumar Panda
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Fabrice Bernhard
 
Flutter Vikings 2022 - Full Stack Dart
Flutter Vikings 2022  - Full Stack DartFlutter Vikings 2022  - Full Stack Dart
Flutter Vikings 2022 - Full Stack Dart
Chris Swan
 

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

WIndows Embedded Compact 2013 – What’s news
WIndows Embedded Compact 2013 – What’s newsWIndows Embedded Compact 2013 – What’s news
WIndows Embedded Compact 2013 – What’s news
 
ColdFusion MX 7 Server Administration
ColdFusion MX 7 Server AdministrationColdFusion MX 7 Server Administration
ColdFusion MX 7 Server Administration
 
Csharp dot net
Csharp dot netCsharp dot net
Csharp dot net
 
Dot netsupport in alpha five v11 coming soon
Dot netsupport in alpha five v11 coming soonDot netsupport in alpha five v11 coming soon
Dot netsupport in alpha five v11 coming soon
 
SynapseIndia dotnet development framework
SynapseIndia  dotnet development frameworkSynapseIndia  dotnet development framework
SynapseIndia dotnet development framework
 
Provisioning the IoT
Provisioning the IoTProvisioning the IoT
Provisioning the IoT
 
"Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?""Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?"
 
2014 cf summit_clustering
2014 cf summit_clustering2014 cf summit_clustering
2014 cf summit_clustering
 
ASP.NET vNext the future of ASP
ASP.NET vNext the future of ASPASP.NET vNext the future of ASP
ASP.NET vNext the future of ASP
 
Presentation1.pptx
Presentation1.pptxPresentation1.pptx
Presentation1.pptx
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
.Net Core
.Net Core.Net Core
.Net Core
 
Browser exploitation SEC-T 2019 stockholm
Browser exploitation SEC-T 2019 stockholmBrowser exploitation SEC-T 2019 stockholm
Browser exploitation SEC-T 2019 stockholm
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
 
Railo Presentation Railo 3.1
Railo Presentation Railo 3.1Railo Presentation Railo 3.1
Railo Presentation Railo 3.1
 
Import golang; struct microservice
Import golang; struct microserviceImport golang; struct microservice
Import golang; struct microservice
 
Terraform
TerraformTerraform
Terraform
 
Backtrack Manual Part4
Backtrack Manual Part4Backtrack Manual Part4
Backtrack Manual Part4
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Flutter Vikings 2022 - Full Stack Dart
Flutter Vikings 2022  - Full Stack DartFlutter Vikings 2022  - Full Stack Dart
Flutter Vikings 2022 - Full Stack Dart
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 

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