Blog to discuss Midnight Coders products features, ideas and trends in development of Rich Internet Applications

Thursday, March 29, 2007

The new is out - a perfect example of WebORB in action

There is a buzz going on about the new Scrapblog release. Scrapblog is an awesome application allowing to create dynamic slide shows plus a lot more. Congratulations to the Scrapblog team! The new Scrapblog is developed using Flex 2, but very few people know it is using WebORB for .NET for all the client/server communication in the builder component. In fact, here's what Omar Ramos, Scrapblog's Director of R&D, had to say:
" needed a remoting solution to use with Flex 2, as it currently only supports Java. I didn't think twice when choosing WebORB for this task. Version 3.0 [of WebORB] is simply amazing. You won't experience the flexibility and responsiveness that WebORB offers with any other remoting solution. My hat goes off to Midnightcoders, keep the great work."
UPDATE: There's even more buzz going on about the standalone version of the product running in Apollo. It is pretty cool to see this done, especially after Omar pinged me asking how to get Apollo to talk to WebORB. A solution was promptly presented and I am glad we could make a contribution there :)

Technorati tags: , , , ,

Monday, March 26, 2007

Why Adobe needs Flex - my theory

Flex is getting bigger day-by-day. Many businesses add Flex to the list of technologies to evaluate. We start seeing some great Flex-based applications going to production. There are several reasons for gaining popularity of Flex. Some of them include speed- and ease-of-development, almost ubiquitous and truly cross-platform runtime environment and richness of the client API. Additionally, Adobe's marketing is pushing pretty hard to get the word out and to establish the vision for Flex as The platform for the next generation of enterprise applications. It certainly sounds as Flex (especially combined with Apollo) is the next big thing for Adobe. As a developer I cheer and love seeing the waves Flex is making. However, let's not forget, Adobe is in the business of making money, so there are business reasons for pushing the technology out. Hence is my question - is Adobe becoming a tool development company to empower us, developers, with fantastic software development technologies, or is there something deeper than that? What is the business strategy behind the push for Flex?

Last week, the technology known as Flex Data Services is renamed to LiveCycle Data Services. You can grab the latest release (2.5 beta) from the Adobe Labs website. I heard about the upcoming change while at 360Flex earlier this month. I think it is quite interesting to observe the name change and see some new features added to LCDS so I decided to look further.

Let's rewind back to the Macromedia's pre-acquisition times. Macromedia is a designer/developer-oriented company with general-purpose web/software development tools. Adobe is classified as a 'document management' company well-known for Reader, Illustrator, Premier and other tools in the same categories of products. At the pre-acquisition time, the next big thing pitched by Adobe is LiveCycle - a suite of tools designed to orchestrate document-oriented workflow in a business. A search on LiveCycle led me to a presentation by Mike Potter. When listening/watching the presentation, be sure to check out slide 14. Specifically, the slide mentions the following integration points between LiveCycle and Flex:
  • Use Flex for web-based inputting of data
  • Create a Flex form
  • Input data from Flex
  • Submit data to LiveCycle Forms
  • Working offline with data from Flex application
  • Users can submit data back to server when ready
If you are familiar with Flex, you will certainly recognize many of these. However, what I'm wondering if LiveCycle is the driving force here. Would a public company spend millions of dollars on development and marketing (let alone $3.5 billion in the acquisition costs) just to have a great, general-purpose development platform? It sounds like the vision for Flex as a tool supporting LiveCycle is pretty clear. And the name change from FDS to LCDS supports the theory. So what's the true reason for Flex being out there? Is it to create a new general-purpose development platform or establish an ecosystem for pushing LiveCycle applications? If you were Adobe and had a suite of tools (LiveCycle) you could sell for a hefty price tag, wouldn't you want to have an army of developers familiar with how to build applications on top of? If I were in the business of selling LiveCycle, I would love to have that.

I might be completely off-base here (and I hope I am). Please let me know what you think. Do you see yourself as a LiveCycle developer? You might become one if you know how to code in Flex... :)

p.s. btw, since the name of Flex Data Services is now available, should we rename WebORB to FDS??? :)

Technorati tags: , ,

Thursday, March 08, 2007

Flex RemoteObject vs WebService benchmark

It is not an earth shattering discovery that Flex/Flash Remoting is faster than WebServices. Pretty much everyone knows that (although there are still a few who try to prove the opposite). The real question is how much faster. We set up a simple benchmark test comparing invocations of the same C# class as an http service, SOAP web service and a remoting service exposed via WebORB. There are three benchmark tests, each invoking one of the following function in the backend object in a tight loop:

// argument and return type - primitive value - string
public String echoString(String str)
return str;

// argument and return type - complex type
public Car echoCar(Car carObj)
return carObj;

// argument and return type - array of complex types
public Car[] echoCars(Car[] cars)
return cars;

The Car class is defined as:
public class Car
public String make;
public String model;
public int mileage;
public String driverName;

The client side code reuses the same function to issue invocations for RemoteObject and WebService objects, since both extend from the AbstractService class. This results in testing of the pure performance for the underlying plumbing.

And now, here's the live benchmark application (http/web services, beg for mercy, cuz RemoteObject is about to beat the heck out of ya):

You can download the code for the example and run it locally. Make sure to download WebORB for .NET so you can expose the backend class as a remoting service (client code, server code). The webservice WSDL is available here.

Technorati tags: , ,

Why Adobe develops Flex

Microsoft develops tools for developers to drive the sales of the operating system and Office. The more people develop Windows apps, the higher demand is for Windows itself.

Google develops a search engine to drive revenue from ad placements. The more people use the search engine, the higher click-through rate on the injected ads.

Apple develops iTunes to ultimately drive the sales of iPods.

Now, why does Adobe develop Flex? Let me know what you think and I will describe my theory in a follow-up post.

Wednesday, March 07, 2007

Back home from 360Flex

The conference is over and I can't wait for the next one. It was a great event with very little agenda pulled by any big and mighty corporate forces. The sessions I managed to attend were very informative. Unfortunately I had to leave early due to a family emergency. I gave a presentation on "Building Flex Apps Faster with WebORB" and demonstrated a few latest features including the new WebORB Data Management for Flex (WDMF). The demonstration was received very well and people loved the new stuff. Harris presented on Flex and .NET integration. Since I spent very little time in PowerPoint and focused mostly on the code and the product, I will not be publishing my slides, but instead will re-record the demo with Camtasia and post it here. We are planning to release WDMF by the end of this month.

Some interesting things I learned:
  • 'Borneo' - the new Flex Data Services release (FDS 2.5) will focus on scalability and performance improvements
  • Borneo will also include a new feature enabling developers to code SQL queries directly in data-management-config.xml. Client applications will be able to invoke the queries using the DataService API. This looks a lot like a variation of a stored procedure invocation. It appears to be step forward in solving some of the development challenges associated with the FDMS approach.
  • FDS soon to be renamed to LiveCycle Data Services
Now back to midnight coding..

Technorati tags: , , ,

Sunday, March 04, 2007

Off to 360Flex

I am flying out to San Jose tonight for the 360Flex conference. My presentation is tomorrow at 4pm in the Integration track. I will be demonstrating some of the latest innovations in the product as well as our new WebORB Data Management for Flex (WDMF) for the first time at a public event. If anyone needs to get a hold of me at the conference, my cell number is 972.489.7148.

See you at 360!

Thursday, March 01, 2007

Open Source Love

A while back we received an email from Mike Potter of Adobe. It included a patch to WebORB for Rails that was sent to him by a certain 大滝 寿哉 from Japan. Here is the original text from our Japanese friend:

-----Original Message-----
From: 大滝 寿哉 [mailto: ... ]

I was not able to input Japanese by the program that you made. Because I changed it, please take it good.I'm sorry. I am not good at English

----株式会社 インストーム ...

We love emails like this. This guy made a very valuable contribution to WebORB for Rails.... the patch he submitted fixed our support for "foreign" languages and is very welcome to several of our international users/developers.

Thanks 大滝 寿哉!!! And by the way... your English is way better than our Japanese!!! :-)