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

Thursday, May 31, 2007

IMPORTANT: WebORB and Flex Builder Hotfix 2 update

If you're working with WDMF and/or WebORB Messaging, please wait before updating your Flex Builder installation with Hotfix 2. The reason is some classes were moved out of the SDK to LiveCycle Data Services and this will break your FB project builds. We're working on providing an alternative implementation and it will be available shortly in the WebORB 3.2 release.

Monday, May 21, 2007

Data push from .NET apps to Flex clients (via MSMQ)

I just published an article discussing an approach and the APIs to deliver data from native .NET applications to Flex clients using MSMQ. The article includes the source code for all moving parts (Visual Studio and Flex Builder projects). It also covers the latest WebORB feature addition in 3.1.0.3 - message selectors. A message selector offers full control for server-to-client message delivery. Check out the article here:

http://www.themidnightcoders.com/articles/msmqtoflexdatapush.shtm

Technorati tags: , , , ,

Saturday, May 19, 2007

WDMF in Action

If you try to use to our new Download and Licensing center, you will notice it looks quite different than before. We completely redesigned the application. It is now a Flex client communicating with a .NET backend using WebORB and WebORB Data Management for Flex (WDMF). It was very interesting (and satisfying) experience using our own product to build the application. It took about 4 days, and the majority of time was spent on the client-side. 99% of the backend
functionality was already generated by the WDMF code generator.

I also would like to start a side-project using WDMF so I can blog about my experiences building a Flex application with the framework and definitely share the code. This will result in a sample application anyone can try and see how it is implemented. I am thinking of a customer support incident tracking system. This is something we could use internally and I am sure many other people would benefit from too. If you have any other ideas for a data-driven Flex application, please leave a comment.

Tuesday, May 15, 2007

Free Flex Remoting (AMF3) for .NET

The new release we made available today (3.1.0.3) delivers a very important change in the WebORB for .NET feature line up. We decided to move Flex Remoting (AMF3) support into the free Standard Edition of the product. That's right, now you can build your Flex applications with a .NET backend with no infrastructure cost and enjoy many of the WebORB features. The Standard Edition includes RemoteObject support, management console, code generator, AMF0 (Flash Remoting) implementation and many more very cool features to make your Flex/Flash development a very enjoyable experience.
To get your license, login to the 'Download and Licensing center'. Download the product and then open the 'Licensing' tab and select WebORB for .NET:

The page will display all available licensing options for the selected product. If you're going for the Standard Edition of WebORB, click on the 'Request a License key' button next to the Standard Edition section:


When you request a license key for the Standard Edition, you will automatically get a 90-day temporary key. During these 90 days, you can decide to either continue evaluation and request another key or obtain a permanent key by providing us with your company logo and a quote we can use for marketing purposes (you knew there is a catch somewhere here :) ) The download system we have put together makes it very easy for you to submit information. You can check the status of your key request and provide required information using the 'My Licenses' tab.

There are some technical limitations in the Standard Edition as well. To understand the differences between the editions, make sure to check the comparison chart available on the licensing page.

My Flex and .NET article on Adobe's Developer Center

Adobe Developer Center published my 'Flex and .NET with RemoteObject' article. The article provides a very detailed walkthrough of creating a .NET class, exposing it as a Flex Remoting service and invoking .NET object's methods using the RemoteObject API. If you are new to Flex and .NET is the server-side technology of your choice, you will find the article quite useful. The article is available here.

Technorati tags: , ,

WebORB 3.1.0.3 is released

With what became a weekly tradition we pushed a new release of the product out today. WebORB 3.1.0.3 is available. The release significantly improves stability of WDMF and introduces several new features. A list of all the changes in the release follows:
  • Flex Remoting (AMF3) is now available in the WebORB Standard Edition
  • Added support for MSMQ message selectors (mx.messaging.Consumer.selector)
  • Added capability to create new records in the testdrive MXML/AS code generated by WDMF
  • Added TimeSpan serialization. TimeSpan instances are serialized as 'long' values. A value represents the period of time expressed in milliseconds.
  • Fixed compilation problems in the WDMF generated code for MySQL databases
  • Fixed compilation of VB-based WDMF projects with a MySQL database as the data source
  • Static classes now show up in the service browser
  • Improved WDMF data model validation - auto-correction replaces illegal characters in the class and property names with underscore ('_')
  • Added support for the MySQL 'date', 'year' and 'blob' types
  • Fixed a class cast exception problem with float data type in SQL Server
The first item in the list is probably the most significant. It definitely deserves a separate blog post! :)
Technorati tags: , , ,

Tuesday, May 08, 2007

WebORB 3.1.0.2 is released

There is a new release of WebORB available for immediate download. The release delivers important bug fixes and introduces a few cool features. Here's a summary of the release:
  • Added support for VB.NET in the WDMF (WebORB Data Management for Flex) code generator. All the generated code for the server-side can now be in C# or VB.NET. The code is automatically compiled and deployed into a virtual directory.

  • Standalone WebORB Enterprise Edition process can now operate as Windows Service. Use -install, -uninstall, -start and -stop arguments with weborbee.exe

  • System.Data.DataSet is serialized as a collection of table name to DataTable mappings. A DataTable is serialized as an array of complex types, where each complex type represents a row of data.

  • Configuration file containing database and data model information used by WebORB Data Management for Flex has been renamed to wdm.config. This change requires re-adding of database and data model information in the console.

  • Fixed bugs:
    • Flex Consumer connection termination is now properly handled
    • RTMP connection termination no longer causes thread consumption.
    • Microsoft SQL Server 2005 table names are properly prefixed with schema name. Previously schema name was omitted in the generated SQL queries.
    • Double.NaN type adaptation. Values of NaN can now be adapted to any Nullable numeric type
    • ActionScript String to Guid type adaptation now works as expected
We're getting closer to the production release of the Enterprise Edition. There will be a few interim Beta releases over the course of the next 3-4 weeks. We plan to add lots of documentation as well as the graphical management interface for all the WebORB Enterprise features.
Technorati tags: , ,

Friday, May 04, 2007

Microhoo-oo.... say it in a yodelling kind of way

There are speculations Microsoft is interested in buying Yahoo. I guess with as many lines of business MS has, it might makes sense, but to me the idea of Yahoo+MS merger is a bit weird since the cultures are so different. The fun part is to think about the outcome of the acquisition. For example, would people call it Yasoft or Microhoo? Or perhaps, MS would add an exclamation point to its name, like "Microsoft!" :) Take it as a Friday morning humor. Have a good weekend.

Tuesday, May 01, 2007

Thoughts on Silverlight, Adobe, Flex and us

Microsoft has taken the covers off of Silverlight. The industry seems to be stunned as the execution and the technology facts are quite impressive. I will not go into the analysis of the Silverlight features, there are plenty of other resources for that. Instead, I would like to discuss what the news has in it for Flash/Flex, Adobe and us(Midnight Coders).

Flash/Flex. Silverlight is clearly a competitor to Flash/Flex. Competition typically results in two things: (1) Consumers benefit from lower pricing (2) Competing technologies tend to improve to deliver better, faster, cooler features. For example, availability of Silverlight Streaming may certainly have a profound impact on the pricing of products like FMS (and our own WebORB Enterprise). Another example is the plugin processing speed. Scott Guthrie in his interview with Channel 9 mentions the speed of the Silverlight virtual machine (CLR/DLR) and indirectly refers to an alternative product saying Silverlight is about 20 times faster. I am not sure if he's talking about Flash9, though something tells me that's what MS would benchmark their product against.

Adobe. Things will never be the same for Adobe. With a single move, Microsoft put .NET on the RIA map, the same .NET Adobe has been completely ignoring with Flex. This means that in theory every single .NET developer is qualified to be an RIA developer, but unfortunately they will remain in the Microsoft's camp. Should Adobe try to gain any traction with the .NET folks? Absolutely! Giving up on them would be letting MS eat Adobe's lunch without a fight. The key is to focus on the material and immaterial assets Adobe has. I believe there are three:
  1. Adobe still has the majority of the graphics/art designers in its camp. The role of the designers in the RIA space is extremely important. That's a huge asset.
  2. Flash plugin market penetration. Many people say it is very hard to get the deployment numbers Flash player has and MS may fight an uphill battle to get the same ubiquity with Silverlight as Adobe has with Flash. I tend to disagree with this argument. Microsoft can get the same number overnight just by doing a "security update" and install Silverlight onto every single Windows XP, 2000, 2003 and Vista box.
  3. Platform/OS agnostic approach. Unlike MS, Adobe has no vested interest to stick to a particular operating system or a suite of server-side products (databases for example). As a result, Adobe's product vision *must* be "Flex is for everyone, Flex is for all". No matter if you are .NET, Java, PHP, Ruby, Python (or even Prolog) developer, you should be able to get the same quality of service and support when building an RIA with the backend of your choice.
What should Adobe do now in response to Silverlight? Here's my top ten:
  1. Embrace ALL popular languages as equal citizens of the Flex ecosystem
  2. Provide comprehensive backend implementation for all supported languages. That would include remoting, data management, messaging, and tooling.
  3. Simplify application Flex development live cycle. Rely on code generators and development workflow automation. Look at what we did with WDMF, this is the kind of things developers LOVE.
  4. Open up, document and standardize on-the-wire protocols
  5. Bundle FMS and FDS together
  6. Create a competing online streaming hosting service with even more hard drive space and bigger bandwdth pipes than MS.
  7. Pay attention and nourish small to medium size businesses. Let them use the product even if it means no revenue.
  8. Consider Visual Studio plugins/compiler for Flex development. I hear many .NET developers complain about their experiences with Flex Builder. I tend to agree, with all things being equal, Visual Studio is lighter and faster.
  9. This is a wild one (and kind of contradicts #8), but the benefits are huge: Introduce support for .NET languages in Flex Builder. Why lock people in to ActionScript? No reason one would not be able to program Flex in C#..
  10. Finally partner with Midnight Coders :)
Midnight Coders/WebORB. Our product is designed to be completely agnostic to the client technology. Today we support Flex, Flash and AJAX clients and can connect them to a variety of the backend systems (.NET, PHP, Ruby on Rails and Java (no Flex support for Java though)). As a result, it would make perfect sense to add Silverlight to the list of supported clients. That would open up a lot of interesting opportunities. For example, tighter integration between Silverlight clients and PHP or Ruby backends; server-to-client method invocation, perhaps even support for WDM(S?) :) We are not rushing there yet, our primary focus is still Flex. Even though it sure would be nice to do all development in Visual Studio, I believe Flex is superior to Silverlight
especially when it is integrated with .NET through WebORB.

Technorati tags: , , ,

WebORB 3.1.0.1 is released

There is a new release of WebORB for .NET available for immediate download. This is a maintenance release with bug fixes and some new features for WDMF. The release includes the following:
  • Added 'Cardinality' column in the Table/Column properties in Code Generator
  • Added support for stored procedures
  • Added support for ActiveRecords.XXX.findFirst and findLast methods
  • Console's Data Management tab immediately stores changes in the column mappings
  • Added data type mapping for the "float" data type
Many of you have asked for documentation and more examples. We are working on it and will be publishing more information on WDMF very soon.