#2150 Which Fantom frameworks would you use for a new web app?

LightDye Fri 24 May 2013

Hi,

I'm starting a project to build a RESTful web app. I'd like to write it in Fantom and have evaluated Tales/Fanbatis stack. Although they're pretty nice, my concern is that those tools don't seem to be maintained anymore. I wrote a prototype using Tales/Fanbatis and it was a fun exercise but every time I had an issue, posted a question in their forum but I haven't received a single answer yet. It's been like that for almost 2 months and I don't want to start a new project based on an unsupported stack.

The question is, what other similar stacks are out there to replace Tales/Fanbatis, mature enough to run in Production mode? is Draft, for example, mature enough? What would replace Fanbatis?

Thanks.

brian Fri 24 May 2013

So is your app not generating HTML on the server and just serving up JS pages that make REST requests back to the server? If so, then I'd say you don't need a framework - just use the core web and webmod APIs. That is how our SkySpark app works - we just have a very simple webmod suite built directly with the core APIs.

andy Fri 24 May 2013

I've been running Draft for about a year in production - its pretty solid. Its intentionally basic tho - so don't expect alot of new features. But I'm pretty responsive if there are bugs or issues.

LightDye Fri 24 May 2013

Thank you for replying.

So is your app not generating HTML on the server and just serving up JS pages that make REST requests back to the server?

Yes, pretty much except that it won't even be serving the HTML/JS pages, which I'm planning to deliver via Apache and also as a mobile app using either jQuery mobile or LungoJS wrapped in PhoneGap. The server will just perform DB operations and return JSON. The server most likely will be deployed on Heroku.

then I'd say you don't need a framework - just use the core web and webmod APIs.

I really liked the easiness of mapping URLs to Fantom methods provided by Tales and the ability to make changes without restarting the server every time. From Draft docs I see it can do the same, so I'm happy to try it.

I've been running Draft for about a year in production - its pretty solid. Its intentionally basic tho - so don't expect alot of new features.

Would you say that Draft is a thin layer on top of web and webmod APIs? That is fine as I don't need many features.

But I'm pretty responsive if there are bugs or issues.

That's key, thank you Andy.

My main concern at the moment is the scalability of the backend. What would you guys use for DB access, connection pooling and Object mapping (i.e. what Fanbatis currently does in my prototype)?

andy Mon 27 May 2013

Would you say that Draft is a thin layer on top of web and webmod APIs

Yep.

What would you guys use for DB access, connection pooling and Object mapping

This site just uses the sql pod to talk to MySQL, which works pretty well for us. But I'm also not really an ORM kind of guy, so others might be more helpful.

katox Mon 27 May 2013

@LightDye If you do care about scalability I'd also discourage the ORM way. sql has a simple interface to work with.

If you needed connection pooling with sql pod, I adapted one for it. See 2097.

LightDye Tue 28 May 2013

Thank you all for replying. I'll provide you with feedback as soon as I have the chance to try your suggestions.

SlimerDude Tue 28 May 2013

As far as back end libraries go, I know status302 runs MongoDB using the Fantom Mongo Driver and fanlink to map the documents to Fantom objs. I've not used them myself so I can't comment on how they perform.

As far DBs go, I do think document DBs are the way forward and new projects really need a compelling reason to use relational DBs.

For front end frameworks, "Tales" is obviously great but is not as configurable as I'd like. And, personally, I see "draft" more of a collection of (really useful) utilities rather than a cohesive framework. Which is why I've been tinkering with BedSheet.

Although BedSheet is new, most of the heavy lifting is done by fIoc which (even though I say so myself) is pretty solid and extensively tested. It's also live in production projects.

I may make an official(!) preview release of BedSheet over the next few days - if there's time I'll post a quick overview on SideWalk later today.

tcolar Tue 28 May 2013

I use Draft http://repo.status302.com/browse/draft on most/all my web projects, I like the simplicity. Its very stable, never had a problem.

Tales is actually very very good, but I tend to prefer "no magic" frameworks, got burned too many times.

I almost always use it together with mustache http://repo.status302.com/browse/mustache for the templating, I've always liked this kind of logic less templating (like velocity back then), although with the macros it can be quite powerful. This is very stable as well.

Sometimes I use the sql module (fanbatis) which can be used interdependently of Tales but most of the time I use Mongo nowadays so I use the mongo module http://repo.status302.com/doc/mongo/. This also works very well although a few features are missing.

Lastly I sometimes use FanLink http://repo.status302.com/browse/fanlink which builds upon fantomongo for direct object to document mapping.

Login or Signup to reply.