<div>The custom form design and variable length list stuff is default <a href="http://asp.net">asp.net</a> mvc.</div><div><br></div><div>The validation stuff I ended up writing myself using F# quotations, it goes a couple steps farther than what I even mentioned as it converts the F# to javascript so you get server side validation and client side validation for free.  Here&#39;s the github project: <a href="https://github.com/jgreene/FSharp.Javascript.Mvc">https://github.com/jgreene/FSharp.Javascript.Mvc</a> and you can read more about it here: <a href="http://justsimplecode.com/">http://justsimplecode.com/</a></div>
<div><br></div><div><a href="https://github.com/jgreene/FSharp.Javascript.Mvc"></a>There is not much documentation, and there is some complexity to setting up a framework to do something like this, but it&#39;s very doable.</div>
<div><br></div><div><br><br><div class="gmail_quote">On Wed, Jun 1, 2011 at 8:44 AM, Mark Bradley <span dir="ltr">&lt;<a href="mailto:barkmadley@gmail.com">barkmadley@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Wed, Jun 1, 2011 at 11:32 PM, Justin Greene<br>
&lt;<a href="mailto:justin.j.greene@gmail.com">justin.j.greene@gmail.com</a>&gt; wrote:<br>
&gt;&gt; * Forms package: It&#39;s been rewritten, but hasn&#39;t really had much input<br>
&gt;&gt; from others. Now&#39;s the time to speak up if you have any opinions on<br>
&gt;&gt; it. The code is available on Hackage.<br>
&gt;<br>
&gt; List of things that should be inside a forms package in my opinion.<br>
&gt; Custom Design: Form layout should be simple to customize and not be based<br>
&gt; around auto generating tables (if both are possible then of course the later<br>
&gt; can be used).<br>
&gt; Variable length lists: It should be possible to add form elements on the<br>
&gt; client side and bind them on the server side.  An example of this would be a<br>
&gt; list of addresses.  A programmer should be able to add a new address widget<br>
&gt; client side without problems when binding server side.<br>
&gt; Validation:  Complex validation scenarios should be simple and should fit<br>
&gt; into the normal validation pipeline.  An example would be validating that if<br>
&gt; a checkbox is selected then a textbox becomes required.<br>
&gt; All validation errors should display around the same time, e.g. if a type<br>
&gt; validator fires it should not prevent other validators from firing after it<br>
&gt; unless those validators depend upon that type data.<br>
&gt; These are just my thoughts based upon my experiences writing forms.  I can&#39;t<br>
&gt; really utilize any framework that doesn&#39;t implement these features for the<br>
&gt; types of projects I do.<br>
&gt; If you need any more details/clarification I&#39;d be happy to help.<br>
<br>
</div>out of curiosity, which frameworks have you worked with that have some<br>
or all of these features (particularly the complicated validation)?<br>
<div><div></div><div class="h5"><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Mon, May 30, 2011 at 3:41 PM, Michael Snoyman &lt;<a href="mailto:michael@snoyman.com">michael@snoyman.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi all,<br>
&gt;&gt;<br>
&gt;&gt; It&#39;s been about a month since the 0.8 release of Yesod. In the release<br>
&gt;&gt; announcement[1], we laid out some goals. Let&#39;s take a chance to<br>
&gt;&gt; analyze where we&#39;re at:<br>
&gt;&gt;<br>
&gt;&gt; * Documentation: Still improving as always. In particular, the new<br>
&gt;&gt; Yesod site is making it much easier for me to write new content (I<br>
&gt;&gt; have a few things on my local system that can finally go up).<br>
&gt;&gt;<br>
&gt;&gt; * Static file caching headers: Implemented by Greg Weber. We&#39;ll likely<br>
&gt;&gt; be making some API changes to handle embedded files, though that<br>
&gt;&gt; discussion deserves its own blog post.<br>
&gt;&gt;<br>
&gt;&gt; * Other template types: For Hamlet 0.9, we&#39;re going to be splitting<br>
&gt;&gt; Julius/Coffeescript into their own package, and juggling the type<br>
&gt;&gt; signature for Coffeescript a bit. At that point, it should be<br>
&gt;&gt; straightforward to embed Coffeescript directly into a Yesod app, just<br>
&gt;&gt; like Julius is today.<br>
&gt;&gt;<br>
&gt;&gt; * Something like require.js: This is something we haven&#39;t started on<br>
&gt;&gt; yet. I&#39;ll likely start looking into it this week. Additionally, I know<br>
&gt;&gt; that a lot of my sites (jQuery powered) have numerous onload calls per<br>
&gt;&gt; page; I think we can try to make that more efficient as well. I would<br>
&gt;&gt; especially like people&#39;s input on this point.<br>
&gt;&gt;<br>
&gt;&gt; * i18n: The solution is written, and I&#39;m using it in production. At<br>
&gt;&gt; this point, I&#39;d call it beta quality, and I&#39;d appreciate input.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; * Embedded objects in MongoDB: No work done yet.<br>
&gt;&gt;<br>
&gt;&gt; * Performance improvements: Nothing in particular. If you have any<br>
&gt;&gt; examples of Yesod performing badly, please let us know.<br>
&gt;&gt;<br>
&gt;&gt; The goal is for Yesod 0.9 to be feature complete, and for 1.0 to be a<br>
&gt;&gt; fairly stable API. From the list above, my two priorities are better<br>
&gt;&gt; Javascript loading (require.js) and static file serving. However,<br>
&gt;&gt; there&#39;s one other major issue we need to address: the devel server.<br>
&gt;&gt; Unfortunately, it doesn&#39;t work very well at all right now. Thankfully,<br>
&gt;&gt; &quot;yesod build&quot; *does* work very well, and for my development I&#39;ve<br>
&gt;&gt; fallen back to simply &quot;yesod build &amp;&amp; ./dist/build/myapp/myapp&quot; on the<br>
&gt;&gt; command line. My guess is that we&#39;re 90% of the way there on &quot;yesod<br>
&gt;&gt; devel&quot;. This is a project that isn&#39;t tightly bound to the rest of the<br>
&gt;&gt; API work, and would be very approachable for someone trying to get<br>
&gt;&gt; started on Yesod development. If you&#39;re interested in helping out<br>
&gt;&gt; here, please let me know.<br>
&gt;&gt;<br>
&gt;&gt; I have no specific timeframe in mind for Yesod 0.9. As it stands now,<br>
&gt;&gt; it looks like the 0.9 release will involve almost no API breakage,<br>
&gt;&gt; which is a very good sign. But if you have any ideas you&#39;d like to<br>
&gt;&gt; contribute, I&#39;d recommend getting them in in the next week or two.<br>
&gt;&gt;<br>
&gt;&gt; Michael<br>
&gt;&gt;<br>
&gt;&gt; [1] <a href="http://www.yesodweb.com/blog/2011/4/announcing-yesod-0-8" target="_blank">http://www.yesodweb.com/blog/2011/4/announcing-yesod-0-8</a><br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; web-devel mailing list<br>
&gt;&gt; <a href="mailto:web-devel@haskell.org">web-devel@haskell.org</a><br>
&gt;&gt; <a href="http://www.haskell.org/mailman/listinfo/web-devel" target="_blank">http://www.haskell.org/mailman/listinfo/web-devel</a><br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; web-devel mailing list<br>
&gt; <a href="mailto:web-devel@haskell.org">web-devel@haskell.org</a><br>
&gt; <a href="http://www.haskell.org/mailman/listinfo/web-devel" target="_blank">http://www.haskell.org/mailman/listinfo/web-devel</a><br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div><font color="#888888">--<br>
-barkmadley<br>
sent from an internet enabled device<br>
</font></blockquote></div><br></div>