- We design and build extraordinary applications for companies looking to make the next great idea a reality.
- learn more
Microsoft Eats Its Young: AjaxPro is no more

Back when .NET didn't have an Ajax pot to piss in, I voraciously read Michael Schwarz's blog and followed his Ajax.NET framework. He eventually released a companion "Pro" version. Now, several Microsoft MVP awards later, he is packing it in. I, for one, will miss the competition in the .NET world. That leaves two major alternatives that I'm aware of:
Since the concepts around how Ajax apps should be built are still in flux, it would be nice to have a few alternatives in the .NET world (especially ones that don't produce the XHR salad that ASP.NET Ajax does).
Technorati Tags: ajax, .net, ajaxpro.net, gaia widgets, anthem.net
Topics: .NET, Ajax Frameworks, ASP.NET, C#, Microsoft
MS Volta: GWT for .NET
I missed this yesterday as I was immersed in the GWT conference. Over at MS Labs, you can see Volta, Microsoft's take on compiling to JavaScript, sort of like a GWT for the .NET platform.
You architect and build your application as a .NET client application,
assigning the portions of the application that run on the server tier
and client tier late in the development process. You can target either
web browsers or the CLR as clients and Volta handles the complexities
of tier-splitting. The compiler creates cross-browser JavaScript for
the client tier, web services for the server tier, and all
communication, serialization, synchronization, security, and other
boilerplate code to tie the tiers together. In effect, Volta offers a
best-effort experience in multiple environments without requiring
tailoring of the application.
Supposedly it compiles from MSIL (Microsoft Intermediate Language) to JavaScript, which allows you to compile from all of the .NET supported languages. Also, you can debug in VisualStudio.
There was a project call Script# that compiled C# to JavaScript, but this is a lot more substantial. Lots of docs and demos, too. I haven't kicked the tires on this yet, but I'll ask one of my .NET guys to check it out.
As for how it works under the covers:
In essence Volta is a recompiler. Volta works on MSIL rather than on a textual source language. Volta rewrites MSIL into any number of target languages, including, today JavaScript and MSIL itself. Rewriting, as a general technology, lets us delay permanent decisions about architecture, execution platform and browser until after our code is basically working. Furthermore, it frees us from having to express all these irreversible decisions in your source code. The result is a programming model that enables us to easily reshape a working application, and finally realizes the promise of one application running anywhere.
If you think about it, this is really not a threat to GWT, but a validation. If GWT is good for Java developers and Java projects, the same holds true for .NET. If you have C# developers, have them write C# for both the client and server side. Check as much as you can at compile time. Let the compiler deal with optimization, etc.
This, combined with the announcement on IE8 makes me more optimistic about MS's support for Ajax in the browser.
Framework Watch - Jayrock
Nice and simple, that's what I like in my dotnet frameworks. Jayrock certainly fits the bill there. It's somewhat similar to the Java-based DWR, in that it automatically generates a Javascript proxy class from your ASP.NET HTTP Handler. From the project page:
Jayrock is a modest and an open source (LGPL) implementation of JSON and JSON-RPC for the Microsoft .NET Framework, including ASP.NET. What can you do with Jayrock? In a few words, Jayrock allows clients, typically JavaScript in web pages, to be able to call into server-side methods using JSON as the wire format and JSON-RPC as the procedure invocation protocol. The methods can be called synchronously or asynchronously.
This framework could be used as the basis for a more full featured framework (like WebWork on top of DWR and Dojo). I'd like to see them follow DWR's lead and add Comet support.
Topics: Ajax Frameworks, C#, SOA
Eight Javascript Code Generators
Javascript code generation seems to be here to stay, with GWT taking roots and Ruby providing it's RJS Templates. It seems like it's time for a roundup of the little critters.
- RJS Templates for Ruby on Rails - Not quite a true Ruby->Javascript compiler as it seems to me, but cuts down on lots of coding.
- GWT - Java->Javascript. Everyone has heard of this beast. It's the 800 pound gorilla sucking the air out of the room for many other frameworks. Unique in that it provides a "hosted" mode that lets you debug in Java rather than Javascript.
- pyjamas - Python->Javascript. Open Source project inspired by GWT from which it borrows some ideas. Fairly active.
- Morfik - Java, Basic, C#, Object Pascal -> Javascript. Commercial offering from down under (Tazmania, dontcha know). Comes as an IDE that also provides server side development capability.
- Script# - C#->Javascript. No "hosted mode," so you are stuck debugging the generated Javascript. Runs out of Visual Studio. One man's effort right now, though that man apparently works for Microsoft. Unclear what the future of this project might be.
- Java2Script - Java->Javascript. Eclipse plugin. Predates GWT. Has a set of widgets based on SWT. Claims to allow you to convert your SWT based desktop apps into Javascript-based web apps. The demos (see screenshot of one of them) look promising.

- Scheme2Js - Scheme->Javascipt. If you feel the need to get that LISP-like syntax when you write code, here is the compiler for you. There's an article describing the inner workings for those interested.
- Haxe - Haxe->Javascript. Haxe is an OO language used to write web applications, among other things. You can also use it to write Flash and server side apps. All in one language. Didn't I just see a resume for a Haxe developer here somewhere?
I'd only feel comfortable using RJS and GWT at this point, since RJS doesn't really "hide" the Javascript all that much, and GWT provides the hosted mode. If you are debugging a complex, generated hunk of Javascript, you'd better be able to either make sense of the code (RJS) or go back to the source language (Java in GWT). I'm surprised the other tools don't think to provide some sort of high-level language debugging capability. I guess too few developers these days remember what it was like to debug assembly language generated from a compiler.
There's also the ParenScript LISP->Javascript compiler, but it, alas, seems to have gone the way of all single developer open source projects. Last, there is this article from Microsoft Research about the implementation of an Oberon to Javascript compiler. An interesting how-to of how such a thing can be built. Sorry, just the article, no download.
Topics: Ajax Development, C#, Code Generation, GWT, Javascript
About Pathfinder
Recent
- Bandwidth profiling Flex projects and more with Charles
- iPhone SDK: UIViewController Testing & TDD
- Icons are evil; so are menus - unless you do them right
- The Truth About Designing For Security
- GWT, Gadgets and OpenSocial, Part 2
- Has Many has_many: A Refactoring Story
- The Hidden Power of Canvas
- Review of fixture_replacement2 plugin
- Chess Game Viewer in GWT
- From JSP to Ruby on Rails: First thoughts on front-end coding conventions
Archives
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006

