Rob Brooks-Bilson
Tech, Photography, Stuff
Tech, Photography, Stuff
October 24, 2006
I'm sitting in Rupesh's ColdFusion .Net Integration session right now. The main benefits of .Net integration has to do with leveraging some .Net functionality within ColdFusion. Adobe has no plans to port ColdFusion to the .Net platform, but their integration strategy should make it easier to leverage MS products like Excel, Word, Outlook, Exchange, etc. The .Net integration will also let you integrate with components and services created in .Net.
Right now, the only way to integrate with .Net is via web services, messaging, or by using COM. With the Scorpio release, you'll be able to integrate with .Net using what's called Runtime Unification - just like we do now with COM, CORBA, and Java - via createObject() and the cfobject tag (type=".net").
The Runtime Unification makes .Net assemblies locally available. It gives you more fine grained control than the previously mentioned integration strategies. Benefits include:
Syntax for calling looks like this:
Rupesh then went on to show an example of using a few lines of code to generate a MS Word document. It was FAST and relatively simple to do. Finally, native integration without having to use COM or Apache POI!
There's also automatic datatype conversion fr primitive .Net datatypes to CF and CF to .Net. Decimal type is not supported. You can also use javaCast() where required (ambiguous method arguments).
There's a chart for datatype mapping from .Net to Java. All primitive types are supported except for decimal.
Deployment scenarios include ColdFusion and .Net on the same server, ColdFusion and .Net on separate Windows machines, and ColdFusion on other platforms with .Net installed on a Separate Windows machine. Each of these configurations has various configurations and steps required to make it all work. The simplest is CF and .Net on the same machine, but it will work across all three of the options.
Some limitations: Enum and decimal datatype not currently supported. Methods with out parameters as arguments and methods with pointers as arguments or return types are also not supported. Unfortunately, you also can't use .Net UI components. Callbacks are also not supported.
11/1/06 10:50 AM
Why don't Adobe use Mono to support CF and .Net on the same OSX/Linux machine ?
Having to have a windows machine around to run .Net sounds like the bad old days of ODBC...
11/2/06 6:00 PM
I'd think going the Mono route wouldn't give them very much bang for the buck, costs/benefits wise. From talking with them at MAX, it seems that the major audience they are going for is Windows shops that have a CF investment, and want to be able to use CF with their other .Net systems, not shops that primarily run Linux.
11/3/06 3:18 AM
I can understand that, but there is also a small but growing number of people who want to use Linux in the enterprise, and have a need to tie that into Windows/.Net stuff.
But I'll always go for the elegant solution first, realise it's impossible and then do it another way :-)