Monday, November 5, 2007

They're fixing their bugs!

We've licensed the suite of ASP.NET components from DevExpress.

During the implementation of a module we found three (quite minor) bugs so far. The really amazing experience was that you could not only post and track defects using a public web site, but they are indeed fixing them in days! (and I'm not talking about 30 day here, that would be a month).

Sunday, October 28, 2007

Things I like about Flex

First of all: I'm a .NET guy. I breath, eat and drink this platform each day, and I'm not tired of it all all. But I'm really growing a big, serious liking on Adobe's Flex technology for the presentation layer. Here's why. And to add some controversy, I've lined it up against some alternatives.

Flex vs. ASP.NET
A lot of the headaches you have with browser-based apps just go away:
  • Flex offers you a stateful client. You get rid of the dance around which event from the page lifecycle to handle in which case, and you don't have to care about ViewState handling any more.
  • Security problems you are always fighting with when dealing with HTML based applications are just gone. I can't think of a way to (easily) program a XSS of SQL Injection attack vector into a Flex <-> Web Service application.
  • Quality of presentation. You get vector-based rendering, and complete client-side view controller behavior without posting forth and back.
  • When you compare at the server load and network traffic footprint, Flex is just a whole lot cheaper.

Flex vs. Silverlight.
I'd much rather love Silverlight than Flex. I would not have to pull in another vendor. I could Visual Studio as the IDE. I could use C# as the language, and had the CLR to program against. Reusing all of this would make a much flatter learning curve. There is participation from proven vendors of high-end components like Telerik or Infragistics. I also dream that it may at some point in time support WCF for connectivity, providing really seamless data flow to the server (including the galore of endpoint options, and conversation patterns). Flex currently does not support out-of-the-box WCF services. It does support ASMX web services well, but that restricts you to XML over HTTP(s) and the classic request/response pattern.

But.

Silverlight is not even in version 1. OK, it is in version 1.0 now, but Silverlight 1.0 does not already provide the feature set I'd like to see before I start using it (like a decent set of databound controls, and a serious communication stack). It'll take some time to get these features. And even then, it'll be in version 1. Flex is in version 2, with version 3 in public beta. The Flash plugin is in version 9. This just proves a certain stability, both of the robustness of the tech, and of the ability of the vendor to support it.

Flex vs. AJAX.
I don't like AJAX. Its merit is that that it has taken today's browser-based applications to a new level of usability. But when I think about an ideal - or even only good - platform for enterprise application development, I envision something that does not consist of such a high number of inprecisely defined, and ever-changing, unrelated technologies. If someone could please explain to me how to end-to-end debug, or unit test, a complex AJAX app, I could still change my mind.

Using Flex in conjunction with web services, you get a very tidy programing model. You just cannot do other than separate and centralize your business logic, and your view logic. You can also very well apply patterns like MVC to your Flex code itself (I might be postign about this in a few days). You can system-test the presentation app with stub web services, and you can unit-test the view controllers.

Flex vs. Smart Client
"Only runs on Windows." You cannot put out something with this label attached into today's market any more. Companies fear the risk of making a commitment, even if today they are running Windows exclusively. (If you're planning a product for a known, defined deployment scenario, then things look different. WPF plus WCF is of course very juicy.)