When it comes to building Rich Internet Applications (RIAs) for the .NET environment, developers prefer to use the Visual Studio IDE. Up until now, Visual Studio was easier for pure Microsoft environments (such as for Silverlight client to .NET services), but Silverlight doesn’t have nearly the installed base that Flash has (99% of all Internet-enabled desktops).

With the release of SapphireSteel’s Amethyst, developers now have an easy way to create Flash-based applications right inside Visual Studio. The problem of linking Flash with .NET is solved by Midnight Coders’ WebORB which provides end-to-end client-server application development across the two platforms. The Midnight Coders and SapphireSteel Software technology partnership is aimed at implementing seamless integration of Amethyst with WebORB. This will give Visual Studio users a simple and elegant way of creating data-driven Flash Platform applications with a .NET ‘back end’.

Yesterday SapphirSteel Software has released the final version of Amethyst, the Flex development plugin for Microsoft Visual Studio.

For the first time, Visual Studio users have access to a full suite of integrated development tools for the Adobe Flash Platform,” says Huw Collingbourne, Director of Technology at SapphireSteel Software, “Amethyst gives Microsoft developers the ability to design, code and debug Flash and Flex applications without being forced to use an unfamiliar IDE.

“Moreover, Amethyst is a truly ‘visual’ system, not just an ActionScript editor. Developers can drag components from the Visual Studio Toolbox and drop them right into the Amethyst Designer in order to create sophisticated Flash-based user interfaces. In fact, Amethyst looks and works just like the C# and Visual Basic environments so there is really almost no learning curve for an experienced Visual Studio user coming to Amethyst.

“With Amethyst, Visual Studio programmers have a real alternative to Microsoft’s own tools for creating applications for the WPF/Silverlight platform. Amethyst users have immediate access to the Flash Platform for developing both desktop and browser based applications”

In addition to its visual Designer, Amethyst also has powerful editing features includes code folding , extensive ActionScript syntax coloring options and user-configurable code formatting. It provides fast IntelliSense and a superset of the refactoring capabilities provided as standard for C#. It also has a powerful ‘multi-process’ debugger which gives programmers the ability to debug multiple separately compiled programs (Flash SWFs) simultaneously.

Visual Designer

The Amethyst Designer supports Adobe’s Flex 3, Flex 4 and AIR frameworks. It integrates fully with the Visual Studio tools such as the Toolbox, the Layout toolbar, the Properties panel and the code editor so that users can easily create and edit Flash-based user interfaces inside Visual Studio.

IntelliSense

Amethyst supports all the standard IntelliSense features including code completion, snippets (code templates), navigation bars to find methods and classes in the current code file plus Go To Definition and Find All References to locate references to classes, variables and methods throughout an entire project.

Refactoring

Amethyst supplies a range of automatic refactoring options (to help restructure the user’s code) including: Rename, Auto-generate getter and setter methods (‘encapsulate field’), Extract code into a new method, Move a class to a new package, Promote local variable to parameter, Remove parameters and Reorder parameters. All suggested refactoring changes can be previewed prior to starting a refactoring operation.

Integration with Adobe Tools

Amethyst can import projects created by Flex Builder, Flash Builder or the Flash IDE (CS3, CS4, CS5), so that teams of developers can work on a shared codebase. When a project is shared with the Flash IDE, animators may use Flash’s timeline-based development while programmers have access to the advanced editing and debugging tools of Amethyst.

Debugging

The unique ‘Amethyst Cylon’ debugger supports simple breakpoints, conditional breakpoints and ‘break on hitcount’. It integrates with the Visual Studio debugging windows including the Watch windows, the Call Stack and the Immediate window. Programmers are able to evaluate expressions interactively in the Immediate window. The Amethyst Cylon debugger provides multi-process debugger including ‘listen and attach’ to enable the debugging of multiple compiled files (SWFs) simultaneously. When the debugger is in ‘listen’ mode it will auto-attach to one or more SWFs when they are loaded so that the programmer can debug by stepping out of one program into a different one in a single debugging session.

Note that you may male installations of Amethyst for VS2008 and VS2010 onto the same system (they coexist fine). It requires a commercial edition of Visual Studio as Microsoft does not permit 3rd party languages in the Express editions.

This is the slides of the presentation I had at the Spring event titled :

Spring and Flex integration for developing Enterprise RIAs

SpringSource announced Spring BlazeDS Integration, a new open source project to provide tight integration between Spring and Adobe BlazeDS, Adobe’s open source server-based Java remoting and Web messaging technology.

This open source project will make it easy for Java and Spring developers to create enterprise-class rich Internet applications (RIAs) using Adobe Flex software, a cornerstone of the Adobe Flash Platform, and Spring, the de facto standard for enterprise Java.

In fact SpringSource and Adobe started a partnership with the goal of making easy the integration between Spring and BlazeDS. Child of this partnership is the Spring BlazeDS Integration project, which allows you to integrate BlazeDS with robust server-side Spring services.

In this 4-day bootcamp you learn how to use the Spring Framework to create well-designed, testable business applications in an agile manner.Through our trainings, you benefit from the wide experience and architectural expertise of our team. We bring that experience to you in a highly interactive, intensely hands-on setting. The Core Spring course not only focuses on explaining Spring features and how to use them, but also on fundamental architectural issues.

Spring is one of my favourite frameworks. It's an open source framework that helps the developers'
life. Thanks to the Inversion of Control (IoC) pattern that Spring uses, it will save a lot of time in developing.In fact there are some factors you have to consider when you
develop a Java application.Using the standard JEE approach
you'll tend to write a lot of unuseful and repeatedly code or
implementing J2EE design patterns that are workarounds for technology
limitations rather than real solutions to a problem.The Inversion of control - also known as IoC - is a
concept, and an associated set of programming techniques, in which the
control flow is inverted compared to the traditional interaction model
expressed in imperative style by a series of procedure calls. Thus,
instead of the programmer specifying, by the means of function calls, a
series of events to happen during the lifetime of a programme, they
would rather register desired responses to particular happenings, and
then let some external entities take over the control over the precise
order and set of events to happen (from Wikipedia).

That's why is important to have the possibility to easily integrate Spring to Flex applications.

Luckily SpringSource and Adobe started a partnership with the goal of making easy the integration between Spring and BlazeDS. Child of this partnership is the Spring BlazeDS Integration project,
which allows you to integrate BlazeDS with
robust server-side Spring services.

In this course, students build a Spring-powered JEE application that
demonstrates the Spring Framework in an intensely productive, hands-on
setting. Completion of this course entitles each student to waive the
registration fee for the SpringSource Certified Professional
Examination.

Recently I've presented at the JavaDay conference about enterprise Flex and Livecycle DS development. The audiance was, of course, made up of Java/JEE developers so it was very interesting to give some tips very close to their world (enterprise developers). I've talked about:

Comtaste and Adobe Italy are organizing a series of events dedicated to the Enterprise RIA development using Livecycle Data Services and BlazeDS with Flex 3 and AIR. On November 5th in Milan, there will be one of those meetings titled:

In this event Comtaste will show some of their projects we're working on in the Enterprise contexts (an Enterprise Dashboard application, a multimedia recruiting system, a customized start-page library and many other).

I've decided to make this post because recently I'm receiving a lot of questions from our clients about how BlazeDS web messaging differs from the messaging service in LiveCycle Data
Services ES. The answer is pretty simple and well explained by Adobe on the FAQ page (you can read it at the end of this post). But a point of confusion is probably the Adobe LiveCycle Data Services Community Edition licensing against the standard Adobe LiveCycle Data Services and BlazeDS.

The Adobe LiveCycle Data Services Community Edition offers as a subscription service that includes certified builds of BlazeDS along with Adobe support (you can choose from Bronze or Gold support).

How does BlazeDS web messaging differ from the messaging service in LiveCycle Data
Services ES?

BlazeDS’s web messaging, using COMET-style long polling or the new HTTP streaming channel thatestablishes a persistent connection between client and server for true data push, is capable ofhandling roughly 100-200 users per CPU, depending on many different factors. Scalability isconstrained by the current servlet specification where each persistent connection utilizes a servletthread. In contrast, LiveCycle Data Services ES provides a dedicated messaging service that runs ona separate process and is capable of supporting thousands of users per CPU, bypassing the servletscalability limitation and reducing the amount of memory required. The dedicated messageservice also supports the RTMP protocol, which offers more advanced two-way communication notsupported by the HTTP protocol.For applications that require massive scalability and performance, such as real-time stock trading,most customers will require the more specialized features of LiveCycle Data Services ES.