What framework do you use?

Frameworks have been a hot topic of discussion around my peers at work of late, and I was wondering what sort of frameworks the wider community was using.

Personally I tend to utilise a custom/personal framework that I have slowly developed over the past few years.  I’ve tended to shy away from using something standard such as Fusebox or Mach II, not because they are bad products (I’ve honestly never looked at them properly to give a good evaluation) but simply because (a) I like knowing how the internals of my system work and (b) I find framework development really interesting (and often the most interesting part of application development).

That being said, if I’m doing Java development, I’ll tend to use something like Struts or the like, simply because I find I need something like that to get work done in J2EE (being it is rather low level).  That may also just be because I’ve not had a huge chance to get my hands deep down into the bowels of what really makes J2EE tick, and therefore haven’t had the time to make up something of my own.

So, do you use a custom framework? if so, why so? or have you started developing with something like Fusebox or Mach II, and if so, why so?

Leave a Comment

Comments

  • Brian Kotek | August 10, 2004

    Both Fusebox 4 and Mach-II are great frameworks and I use them both in different situations. They have been time-tested and proven by thousands of other developers, and were created by folks way smarter than I am. In my experience, these frameworks are an excellent foundation for virtually any application. Further, reinventing the wheel seems rather wasteful unless it is really necessary. You should give these two frameworks a look!

  • Steve Nelson | August 10, 2004

    I’ve been using Fusebox for about 7 years now. I use it on every single web project I worked on. I love it. Fusebox makes managing complex applications fairly straightforward and intuitive. The latest xml version of fusebox is really opening up my eyes to the potential for creating developer tools around the framework. Tools that go beyond just editing code and help developers really achieve their project goals. I’m very excited to see what people come up with.

  • Ian Sheridan | August 10, 2004

    I use my own framework. Why? Because I needed a framework that I could understand much more readily, can’t beat something you made yourself. Also I needed a framework that would allow the other developers in my group to still code in their own style.

    I realize that Fusebox or Mach-ii can do these things but I needed something that the learning curve was lower. I did not reinvent the wheel I just created my own version of it.

  • Scott Barnes | August 10, 2004

    BatFink 🙂

    Reason, its a much easier system for me to roll as it allows seperation of VIEW & DATABASE but the in-betweens stay static 😀

    See MossyBlog for a download if you are interested

  • Mark | August 10, 2004

    Scott,

    How dpo you find the learning curve for Batfink for new developers in your team?

  • Scott Barnes | August 10, 2004

    Extremly hard 🙂

    No, its been a bit of a handful in truth, thats just due to no documentation other then the codebase being made available.

    I explain the concept more so, and then point them in the direction of the Wiki code as an example. The Framework is more of a methodology but can be if you wanted file for file put into a framework category.

    Once I explain the basic concepts of how it pulls together, the in-betweens fall into place automatically, it gets tricky around the rules for persist vs service and how you explain that while they are infact two different CFC they in many ways work like one big object? which is a leap of faith minset wise.

    So far the Team has picked up the server-side routines quite easily enough, its just the presenter thats different (as we are using the frameworks presentation differently to the actual wiki but follow the same practice).

  • Sean Corfield | August 10, 2004

    Mach II. Yes, I do know how the framework works internally but I don’t really need to know that in order to build applications with it. I’ve built some stuff with Fusebox (3 and 4) without really needing to know how they work either. I don’t really understand this "need to know how it works" attitude (I’ve heard it from other folks who have their own custom frameworks).

    I’ve got over two decades of software development experience and I’ve never felt the urge to build my own framework. I’ve always preferred to take advantage of other people’s hard work and make my life easier!

  • Mark | August 10, 2004

    That’s a fair point Sean.

    I know I like to know how my frameworks work internally. I think that’s more to do with my curious nature than anything ‘concrete’.

    It is a valid point that if you have a black box system that has been proven to work without error and as documented, you don’t *need* to know how the internals work.

  • Micha Schopman | August 10, 2004

    I also use my own framework. For high volume websites I need a framework to do the job it is meant for, and thus not having the generic "we need to do it all" framework overhead.

    Frameworks like MachII are perfect for people who want to do the job fast, but mostly, custom build frameworks fitted for the job blast them away (if gooded good).

  • Arindam Biswas | August 10, 2004

    FuseBox 3 and Mach-II. FuseBox 4 sounds interesting, but after the first sight of Mach-II, I abandoned one and all. I’m looking out for a framework similar to Mach-II but for FlashRemoting. Any ideas?

  • Dave Ross | August 10, 2004

    I’m willing to bet that all of those who are touting thier own custom frameworks as "easier to pick up", or perform better because they only provide the feature set necessary for the application at hand, really haven’t looked at mach-ii. Yes, the initial learning curve is a little steep, but that’s what documentation (like Sean’s livedocs), and the community forums/mailing lists are for. I think in most situations mach-ii will outperform any custom solution, not just in speed and stability but in maintainability.

    Also, the truth is, after you build a few Mach-ii applications, you will completely understand how the framework internals work. Just look at the code… it’s clear, concise, and extremely small (what maybe 20 CFCs each averaging 100 lines of code?)

  • Sean Corfield | August 11, 2004

    Micha, performance is never a good reason to use or not use a framework. The benefits of using a standard framework, one that can be used over and over again on projects, far outweigh any perceived benefits of any custom framework.

  • SJ | August 11, 2004

    Custom framework. (Used by me and our four other developers.) I think the assumption by many mach-ii users that all other frameworks are inferior is rude and annoying.

  • Ian Sheridan | August 11, 2004

    Dave, I never said that I did not look at either fusebox or mach-ii. What I needed was something that was in-house and not so complicated that it would deter my colleagues from even wanting to tackle using a framework at all. My decision to use a smaller framework then the two big guns came from a political point of view as opposed to a development best practice one. This way I get then familiar with using one and getting them to see the benefits then throw Mach-ii at them.

  • Brian Kotek | August 11, 2004

    Just because you don’t *need* to know how Fusebox or Mach-II work internally in order to use them, doesn’t mean you *can’t* know. Open up the core files and take a look, they’re really not all that complicated. 🙂

  • Dave Ross | August 11, 2004

    Look… when I first looked at mach-ii, I wasn’t too impressed either. The only example app I could find, Hal’s roulette wheel, was very poor (only one person could play at a time). It was about 6mo. later that I gave it another go, and due to there being a lot more example apps and resources out there, everything kinda "clicked". I realized "hey, this isn’t rocket science", because… it’s not. If you had asked me before that re-discovery, I would have said that Mach-ii is unnecessarily complicated, like many others here. In truth, I would have been saying that because I didn’t have a firm grasp of the framework’s concepts, not because it actually was too complicated or hard to use.

  • Ian Sheridan | August 11, 2004

    That is exactly why I did it in this way. You spent 6 months nay saying mach-ii. I would like to make that understanding/realization easier for my colleagues.

    Also I wanted to explore the thought process in creating a framework and what little things you should do to make it faster and to be able to do all the things that you want it to do. This means I and wanted to know how it worked not that it just *did*.

  • Craig M. Rosenblum | August 11, 2004

    It’s okay to have your own custom framework, as long as it is teachable, and documented, and easy to learn.

    Most frameworks evolve over time, as we learn how to do things faster, or what methods work well or don’t work as well.

  • Micha Schopman | August 11, 2004

    Sean, you’re correct, but my point is morelike, when you only need a specific setup to build you application on and the solution for it is tighter connected to the app, I prefer using a custom framework 🙂

  • Mark | August 11, 2004

    Basically, it sounds like – you are better off having *a* standard framework (even if it’s a custom framework for your company/team), rather than tweaking it for each application.

    Obviously that can be subject to interpretation and project requirements.

    But that makes perfect sense.

  • Craig Bowes | August 25, 2004

    I’m a former Coldfusion developer that has moved to C# and ASP.NET. One of the frustrating things with this move is in Coldfusion I had Fusebox to rely on for my framework. It solved a lot of architecture problems (although not all of them) and in ASP.NET I had to almost start from scratch because ASP.NET is such a different way to do web development.

    So I have finally started to put together my own framework, which has some superficial similarities to Fusebox (code/layout reuse, nested layouts, driving everything through one file, etc.) I intend to eventually publish and open source it at http://www.Obdura.com but haven’t gotten the time yet.