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

Friday, January 26, 2007

WebORB for .NET 3.0.1 (with Performance and Invocation monitor)

We just released a new build of WebORB for .NET - 3.0.1. As with the previous 3.x releases, it is a unified build of the Professional and the Enterprise editions of the product. The build includes WebORB Professional 3.0.1 and WebORB Enterprise Beta 2. A license key controls which features are enabled. Without a license key, the product will run as WebORB Enterprise and will let you have 10 concurrent messaging connections and remoting invocations from 5 IP addresses.

Here's what went into the build:
  • Real-time Performance Monitoring panel for the management console - provides a browser-based real-time view onto the performance counters traditionally obtained via the Windows perfmon utility. This is a similar functionality we showcase in this example.

  • Added support for WebORB-specific Windows Performance counters - the product automatically submits invocation instrumentation data for all invocations. WebORB creates the following counters for each invoked method:

    - Last invocation time
    - Average invocation time
    - Fastest invocation
    - Slowest invocation
    - Total number of invocations

  • Added Invocation Monitor panel for the management console - the panel provides the capability to monitor invocation "traffic" and inspect values for the method arguments as well returned results. If you use something like ServiceCapture or Charles, you are already familiar with the functionality, so now we offer it too!

  • Lots of bug fixes and performance improvements in the Flex messaging and RTMP implementation
Download, try it out and let us know what you think. Enjoy!

Monday, January 22, 2007

Speaking to the Seattle Flex User Group next month

I will be speaking to SeaFlex on February 8th. If you are in the area, be sure to be at the next monthly meeting, it should be a fun session. I plan to cover integration with .NET, PHP and Ruby on Rails with some cool demos of the stuff we are working on. One of the new features I will be talking about is the ActionScript ActiveRecord implementation we will be releasing very soon. The feature will offer fantastic data management capabilities for a variety of the backend platforms and databases.

Also we are setting up a free hands-on training session the following day (February 9th). The session will be dedicated to the subject of developing Flex application with .NET. Ideally we wanted to conduct the session at the Adobe Seattle office, but none of the calls and emails were returned thus far, so we're working on finding a venue for the event. You can pre-register using the URL below:
http://upcoming.org/event/143487

More information is available on our website:
http://www.themidnightcoders.com/training/

Saturday, January 20, 2007

Flex at Barcamp Dallas 3

I participated in BarCamp Dallas 3 today. The event is hosted by the Microsoft office in Dallas. Microsoft has a huge two-building campus here and was kind enough to offer the conference room space as well as food for the barcampers. The event is mostly self-organized, anyone can throw their presentation on the schedule board. I presented on the subject of "Building applications with Flex". There were about twenty people in the session. Some stats on the polling I've done: about 70% heard of Flex. Only one person (besides me) actually used Flex. People attending the event would fall into one of the following groups: client-side developers (HTML/CSS/JS), server-side developers (lots of Ruby, less .NET, even fewer Java) and open source enthusiasts. I also had a chance to sit in on a few sessions targeted at the HTML/CSS developers. It was quite interesting to hear the issues described there. I will try to sum it up in another blog post.

Wednesday, January 17, 2007

Invoke client ActionScript functions from the server side

Invoking a server-side method from a Flex/Flash client is a very common task and Flex/Flash Remoting addresses it nicely. However, the reverse invocation (from server to client) is not straightforward, if not impossible. WebORB Enterprise Edition 3.0 provides a very simple API for invoking client-side ActionScript functions from the .NET code. There is a new article on our website describing the API. The article includes full source code listings as well as a live example demonstrating the approach.

You can access the article at:
http://www.themidnightcoders.com/articles/invokeflexclientfromserver.htm

The example in the article is simple, yet very demonstrative of the described functionality. It shows a Flex client with a few AS functions invoked from .NET. Any time any other client connects or disconnects to/from the server application, server application handler invokes AS functions on all connected clients to notify of the events.

Monday, January 15, 2007

WebORB Invocation Monitor (functionality a.k.a. 'Service Capture')

WebORB Management Console, a tool for managing and monitoring product and deployed services, will include a tab displaying information about invocations occurring in the server in real-time. The feature will be available in the next point release (estimated release 5-10 days). The name of the feature is 'Traffic Monitor'. Essentially it provides the same functionality one would find in the proxy utilities such as Service Capture or Charles, which is a detailed display of the data in the incoming requests as well as invocation return values. The feature uses new WebORB real-time messaging, thus the invocation data is dynamically pushed to the client. Below is a screenshot from the internal build:

Wednesday, January 10, 2007

Flex Video Chat with .NET backend (powered by WebORB Enterprise)

There is a new Flex example available on the website. The example is a Flex-based video chat powered by WebORB Enterprise. The example demonstrates a variety of features and concepts including, but not limited to:
  • invocation of a .NET object using NetConnection call
  • dynamic creation of the application instances (rooms)
  • invocation of client-side ActionScript functions from .NET code
  • client stream publishing (camera and microphone)
  • client stream subscription (so one can see other users in a room)
  • using shared object to broadcast text messages between all clients in a room

You can access the example at:
http://www.themidnightcoders.com/weborb/dotnet/examples.shtm?page=11

You can create your own room or join the chat in an existing room. Client and server-side source code is available (see the links on the example's page).

Enjoy and please let us know if you run into any problems.

Disclaimer: the example is running on the Beta 1 release of the product, so accidents may happen. We're monitoring server/process health and there may be occasional restarts if we have to fix an issue.

Tuesday, January 09, 2007

360Flex Developers Conference

Midnight Coders is a proud sponsor of the 360Flex Conference to be held in San Jose, CA on March 5-7. The conference is going to be absolutely fantastic. The speaker line up is very impressive (it does include Harris and yours truly). The schedule is not published yet, however the talk on the street indicates it should be filled with a variety of sessions ranging from the beginner to the advanced level. I plan to do a very thorough overview of WebORB for .NET filled with a bunch of demos of Flex Remoting and Messaging. I also will have a preview of the new Data Management framework we are working on.

If you have not registered yet, better hurry since the conference is already 80% sold. The registration fee is only $100!

Friday, January 05, 2007

WebORB and Flex 2.0.1 Update

If you are using WebORB and upgraded to the Flex 2.0.1 release, your Flex Builder project will report the following error:

"The services configuration includes a channel-definition 'my-polling-amf' that has an endpoint with a context.root token but a context root has not been defined. Please specify a context-root compiler argument."

The reason for the error is a missing configuration element introduced in 2.0.1. To fix the configuration open your Flex Builder project properties and select the "Flex Server" panel. There is a new field - "Context root". The field value must match the last segment of the root URL path. Below is a screenshot of the panel with the described change from one of my sample projects. Notice the "weborb" value matches the last segment in "http://localhost/weborb".
















Thanks to Alex MacCaw for bringing this to our attention.

Presenting for Silicon Valley Flex User Group

I will be presenting for Silvafug next week (January 11th) . The subject of my presentation is "Flex Remoting without Java". I will be talking about Remoting/AMF3 with .NET, PHP and Ruby on Rails. I also plan to show demonstrate some of the new Flex Messaging/RTMP with .NET examples. The meeting is going to be at the eBay Town Hall. If you are in the area, please stop by, it should be fun.

Thursday, January 04, 2007

Windows Performance Monitor in Flex (with real-time Data Push)

We just published a new example demonstrating the usage of real-time messaging. The example provides a way to monitor ALL aspects of a windows computer through a Flex application and WebORB. You can play with the example and download all the code at the link below:

http://www.themidnightcoders.com/weborb/dotnet/examples.shtm?page=1

The application uses real-time messaging (RTMP) to subscribe and asynchronously receive performance data streamed from a WebORB server - the client does not do any polling. The data in the example is for the computer where the server runs (the computer hosting www.themidnightcoders.net). As you can see from the client code, we use the NetConnection API to invoke methods on the server-side application handler to add/remove performance counters for a particular client. Updates for the added performance counters asynchronously arrive from the server via data push. Each client has a pooled server thread responsible for delivering performance data updates. Changing the update frequency invokes a server method which modifies the timer associated with the update thread.

We are adding similar monitoring application to our management console. We also plan to include a variety of performance counters into WebORB itself. Users will be able to monitor concurrently open connections and measure invocation time of individual services.

Tuesday, January 02, 2007

New WebORB for .NET product page

We just opened up the new product page for WebORB for .NET. The new format and structure should make it much easier to find product information as well as evaluation and development resources. There are sections for product editions, roadmap and release history. There is also a bunch of examples with overview and source code available for online execution. In the coming days we will be updating the site with additional messaging examples, product FAQ and support information.

Here are a few links:

Happy 2007!

2006 has been a fantastic year for Midnight Coders. We have added a ton of features to the .NET line of the product, including Flex integration, real-time messaging and a brand new management console. We have also expanded the product line with WebORB for PHP and WebORB for Rails product editions which were included into Adobe's SDKs for those environments. We co-sponsored Flex Seminar in New York, presented at the AJAX World Conference and Adobe's MAXUP on the subject of Flex and .NET integration. We created WebORB Enterprise Edition with an awesome implementation of Flex Messaging, MSMQ integration, support for Remote SharedObjects and video streaming. But we're just getting started. This year will be even bigger, better and bolder. We are already working on some extremely exciting stuff which will tremendously simplify day-to-day development tasks of the Flex and Flash developers. There will be a new framework to handle data management and data synchronization for Flex clients. We're also wrapping up a really cool Flex Builder plugin for WebORB. We are adding new examples and video tutorials to the website. We also plan to start conducting free periodic webinars dedicated to Flex development.

I also would like to thank all our customers and friends who have helped us to get where we are. Your loyalty, help and contribution is much appreciated and will not go unnoticed. Thank you and have a happy 2007!