[Haskell-cafe] ANNOUNCE MFlow-0.0.3 an Application Server for stateful web apps with statically typed widget combinators

Alberto G. Corona agocorona at gmail.com
Tue Feb 7 11:06:23 CET 2012


Here you can take a look at a complete example included in the package:

http://haskell-web.blogspot.com/2012/02/web-application-server-with-stateful.html

This snippet is the web page in declarative form:

shopProds :: V.Vector Int -> [Prod]
          -> View Html IO  (Either Int Prod)shopProds cart products=
  br
  <++                    -- add Html to the first widget
  p << "-----Shopping List-----"
  <++
  widget(Selection{
       stitle = bold << "choose an item",
       sheader= [ bold << "item"   , bold << "price", bold << "times chosen"],
       sbody= [([toHtml pname, toHtml $ show pprice, toHtml $ show $
cart V.! i],i )
              | (Prod{..},i ) <- zip products [1..]]})

  <+>                    -- operator to mix two wdigets

  br
  <++                    -- add Html to the second widget
  p << "---Add a new product---"
  <++
  table <<<              -- <<< encloses a widget in HTML tags
            (tr <<< td ! [valign "top"]
                          <<< widget (Form (Nothing :: Maybe Prod) )

             ++>         -- append Html after the widget

             tr << td ! [align "center"]
                          << hotlink  "hello"
                                      (bold << "Hello World"))



2012/2/7 Alberto G. Corona <agocorona at gmail.com>:
> Hi  Haskellers
>
> I I´m happy to announce the first version of MFlow
>
> http://hackage.haskell.org/package/MFlow
>
> MFlow permits the execution of web applications in a procedural form,
> that is, with multiple requests-response interactions in a single
> procedure. MFlow stores the execution state, manage timeouts, shutdown
> and restart the procedure on demand at the point of execution, even
> after server stop. These services are transparent for the programmer.
>
> The other aspect of MFlow are combinators for the definition of
> widgets and formlets that can be mixed freely with HTML formatting and
> produce statically typed values using  the "traditional"
> formlet/applicative approach. There are bindings for the package
> XHtml, so no need to learn new  paradigms/scripting/formatting..
>
> Console and window oriented apps are possible.
>
> Out of te box serialization in files permits very rapid prototyping,
> but any backend can be used .
>
> MFlow (MessageFlow) was created initially as the user interface for
> the Workflow package . Currently is an alpha version. It has only
> basic authentication but I plan to inprove it for serious
> applications. I upload this version just in case anyone wants to play
> with it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120207/8d31a031/attachment-0001.htm>


More information about the Haskell-Cafe mailing list