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

Thursday, November 30, 2006

Flex-enabled WebORB Management Console

One of the features in the 3.0 release is our new management console. The console is a Flex application using Flex Remoting to talk to WebORB. It provides basic information one would look for to get started with the product, as well examples, client AS3/AS2 code generator, weborb deployment mechanism, licensing and a troubleshooting guide.

The console uses a ton of Flex features. I plan to post write-ups about our experience developing the console in the near future. Some of the things we had to do are:

- integration of IFrame with Flex's TabNavigator
- custom cell renderers in Datagrid
- populating a Tree view from a custom ITreeDataProvider
- managing Flex states
- dealing with File upload/download

To see it in action follow the link below:
http://www.themidnightcoders.net/weborb30

There's a lot more we're going to add in the final release. For example, namespace/class/method security will let you select an item you want to secure and apply security restrictions. Server configuration module will provide a graphical interface for the WebORB configuration file.

Tuesday, November 28, 2006

WebORB for .NET 3.0RC1 is released

I am very pleased to announce the availability of WebORB 3.0 Release Candidate 1. The release is the latest in the area of Flex and .NET integration. The product provides a single environment for hosting and exposing .NET objects to Flex, Flash and AJAX clients.

Here's what's new in 3.0:
  • Completely redesigned Flex-based management console
  • Service Browser - a feature enabling users to graphically inspect the classes deployed in a weborb-enabled application
  • Client-side code generator - enables a developer to automatically generate client access code for any server-side class. Generated code can have multiple "flavors" including Flex/AS3, Flash Remoting/AS2, Remoting with Cairngorm, Remoting with ARP and AJAX.
  • TestDrive - provides a mechanism to invoke any server-side method directly from the console. TestDrive has an intuitive interface for entering method argument values used in the invocation. TestDrive lets you download the code performing an invocation with the same argument values as entered in the UI.
  • Auto-deployment - the console provides a drag-and-drop deployment mechanism for deploying WebORB into any existing virtual directory
  • Support for Flex client security API (RemoteObject.setCredentials)
  • New Flex Remoting examples
  • Improved logging
  • Improved server-to-client exception handling
  • Flex upload enabling framework
The product can be downloaded using the download manager on our website.

Shortly I'll be posting video tutorials describing the new features. There is also a ton of interesting stuff we had learned while working on the new console. I'll be sharing these findings in the blog as well.

Tuesday, November 14, 2006

WebORB for .NET release status update

We have been extremely busy working on the GA release of WebORB Professional for .NET. We will be releasing a Release Candidate 1 this week with a ton of new features. Here's a list of what's coming up:
  • New Flex-based console. The new console is a flex application serving as a gateway for anything you ever want to do with the product. It includes quick start guide, a TON of examples, service browser, license manager, deployment manager, documentation and a lot more
  • Code generator - the service browser mentioned above provides a way to see all deployed .NET classes (organized in a namespace tree). Select a class, choose code style (Flex/AS, Flash Remoting/AS2, Carngorm, ARP, AJAX) and the console automatically generates client-side access code (with all the value object classes). There's also a link to download all the generated code in a zip.
  • Test Drive - for any selected method in the service browser, we provide a way to invoke it right from the console. You get a list of arguments with an type-sensitive editor so you can enter data. Once you provide values for the arguments, click Invoke to send a method invocation. Once the result is available, it is shown in a tree-like structure. The coolest part is once invoked, you can download source code that performs the same invocation with the argument values you just entered.
  • There is a bunch of Flex Remoting examples to showcase various features of the product. Here's a list of what we have thus far:
    - Basic Flex Remoting invocation with MXML or ActionScript
    - Sending and receiving an object
    - Client-server class mappings
    - Secure invocation with credentials
    - Populating tree control with remote data
    - DataGrid with remote data source (shows how to fetch data and send updates)
    - Remote invocation exception handling
    - Integration with ARP (Pizza Service)
  • Lot's of bug fixes in the code
The GA release will be shortly after RC1 and will include additional features in the console (Security configuration, Service exposure (remoting and soap) and Service monitoring).

Stay tuned for more announcements!

Tuesday, November 07, 2006

My 'Flex and .NET' presentation via Breeze

I gave a presentation to the Manhattan's Adobe Users Group on the subject of Flex and .NET integration. The presentation has been recorded (it was done via Breeze) and is now available at:

http://adobechats.adobe.acrobat.com/p38702408/

It should not require an Adobe Connect login, so anyone can watch the presentation.

Friday, November 03, 2006

Invoke ActiveRecord Models Directly from Flex

I was doing some work for a client this past week and we were discussing how exactly the MVC design pattern should be subdivided when integrating a Flex client with Rails. Of course the "View" is the Flex UI, and the Model is the data layer on the server. However, the "Controller" piece could easily be on either the client or the server. If this layer is pushed to the Flex client one option is using a framework like Carnigorm (sp?) that provides a "FrontController" for directing requests to the server. However, when this layer resides on the server, when building a WebORB on Rails app, this logic typically manifests itself in the form of a Service (dropped into /app/services) that directs "actions" directly to instance methods just like a true Rails controller.

So what is the point of all this? Well... I still prefer keeping the "controller" logic on the server, but for those that want to push as much processing to the client as possible I've added a couple features to WebORB for Rails that will make direct invocations to Rails models more natural. Most notably you can now invoke class methods on a server-side class as well as expect all of the "dynamic" methods that ActiveRecord supports (like find_all_by_x_and_y) to work as expected. So for example, you can now make a call like:

remoteObject.find_all_by_keyword("Ruby")

...and after mapping this remote object to a Book model in the remoting config, you could expect that a list of books to be returned to the client. Pretty sweet.

One other minor feature that was added is the ability for Rails models to be mapped to a static type on the client (via a [RemoteClass] tag) instead of simply stashing these objects into the standard dynamic ObjectProxy type.

Anywho... I still like introducing the control layer on the server via a proper "service".... but for those of you that want to push the V & C to the client you can now invoke the M directly to get at your data. Gotta love it.

Wednesday, November 01, 2006

Presenting tonight for the Manhattan's Adobe UG

I will be speaking on the subject of Flex and .NET integration via Breeze for the Manhattan's Adobe User Group tonight. If you are in the NYC area and would like to find out about the aspects of Flex and .NET integration, be sure to come by the Schematic's office in Manhattan. Directions are available here. The presentation starts at 7:00pm EST.

Flex Store - an example of WebORB for .NET in production

One of our customers - an Australian consulting company WDG has just completed and released a full-blown Flex store implementation in production. The project is done for an Australian retailer BCF (Boating, Camping, Fishing). The Flex front-end communicates with the latest version of WebORB for .NET using RemoteObject (Flex Remoting). You can access the store at:

https://store.bcf.com.au/flex/default.aspx

It is great to see Flex apps using WebORB going into production. I am aware of several more nearing the completion - will certainly blog about those once they are public.