There is a .NET version of Prevalence, which is
mentioned in the article as the foundation for many of
these apps. So, you could easily support this with .NET.
Prevalence is not the foundation of Continuation-based
web servers - not even Prevayler is. Continuations are
sort of like goto's with context. The only languages I
know of for continuation support are Scheme, SML NJ,
Smalltalk (now Avi Bryant has written them in), and
Ruby, although there may be more.
The theory of continuations is kind of hard to wrap your
head around, but the practice of writing web apps in
Seaside (Avi Bryant's smalltalk Continuation-based
framework) is incredibly simple.
Technically all you really need to do is save the
cumulative state in viewstate. Not that I am
recommending this, but it's not that complex an idea or
application to do.
Is it great that someone has written a framework to do
it? Yes.
I'll just stick with the UIP. I haven't had a problem
with the Back button on the UIP.
Continuations in Ruby, Lisp, Smalltalk, etc... let you
specify a code to execute after you function has
executed. Something to do instead of 'return'...
Continuations in web development (ala Seaside most
recently) are a bit different but use the same metaphor.
I'd almost compare them to the new iterator support in
the next rev of C# - the 'yield' statement.
Continuations in web development let you write code like
this.
Get state from user
lookup all cities for state
let user select city
lookup all locations in city
ask user for location
So in smalltalk or other dynamic languages this means
you are writing a work flow with a single bit of code,
as opposed to ASP.NET where you write your code on a
postback by postback basis. In .NET the example would
look like
if state = 0 {
Get State from user
set state = 1
}
if state = 1 {
Lookup all cities for state
set state = 2
}
and on. so mostly it's about a simpler developer
experience. The downside to these are that it's all
session managed. Either you put it in the URL and have
fugly URL's or you put it in a cookie and can't run the
same app twice from different windows of the same
browser (cookies are shared).
If you know smalltalk - snag a copy of squeak and
seaside - it's kind of fun!