Friday, February 13, 2009

A small request...

I have a small request:

I'd like to know what grinds your gears, and what makes you smile about the Flex library, and about whatever other libraries you use on a daily basis to get your work done. If you have time, please post here or to me off-list a quick summary of your thoughts, some bullet points, or even a link to somebody else's blog posting that sums up your ideas. Anything you've got to say, even if it's no more than "PureMVC ftw!", I'd like to hear it.

I have a keen interest in frameworks, and I'm planning on building something that takes the best ideas I can find (and cook up) from these and my experiences maintaining a mostly-closed-source framework at my 9-5. It's for my own apps, I'll be dog-fooding it, but it will be open source. It's going to be a full-stack framework with an optional Java+Warp+BlazeDS component, so if you think you've got some good ideas, or would like to help, please drop me a line.

8 comments:

colemanb said...

I like all the working examples the Flex world has to offer, such as flexexamples.com. All the opensource projects such as degrafa and just simple components that show me where I'm doing it wrong.

I think it's great that Flex has developers who make small simple apps will full source view, such as roktok - http://joshblog.net/projects/roktok/srcview/ - and the fact that Flex is so visual, you can see the results, then dive into the code.

freaker said...

I've been developing client applications in flash earlie. After moving to Flex I can't say that I miss Flash alot. The mix of easy to write mxml and the relatively powerful actionscript language is great. I also like the later versions of the builder/plugin with intellisense, refactoring, profiler, debugger etc. I'm not experienced with javascript libraries, but I have not heard a better support for databinding than than the one in Flex. I really like the curly bracces databinding.

If I should mention something negative, it whould be the security changes which came in Flash Player 9.0.124 in April ast year. It is kind of frustrating to have to deploy a server for the policy-file. I think it should be up to the developers to maintain security.

Rhysyngsun said...

I don't quite understand the lure these days of frameworks. I feel that these cookie-cutter frameworks force developers into design pattern choices that do not necessarily fit their project in it's entirety. I favor solid OOP and design pattern practices.

BikeRider (HASA T6) said...

Take a look toward Mate framework (
mate.asfusion.com )
That might be helpful!

darscan said...

Word up! I'm interested in structural/architectural frameworks like PureMVC, Mate and Swiz, but I feel that there is a way to take advantage of the benefits that they provide without making applications directly dependent on them. How? Through dependency injection. Which is why I'd be very keen to bounce some ideas around with you.

I'd like to take what I see as the best approaches from each framework and create something simpler and more flexible.

I like the Mediator concept as made popular by PureMVC, keeping View Components self contained and unaware of the application, but I don't like the manual wiring involved, or it's use of the Service/Model Locator pattern. I also don't like how the Mediator is directly dependent on the framework. Ideally, Mediators should be created automatically as view components appear, and should have all their dependencies injected. Something that would need to be considered here however is data context - if Mediators are automatically created they will need some way to look up certain properties that they need from their context.

I also like its use of the Command pattern, and Notification to Command mapping, but again, I don't think that commands should be dependent on framework code, or employ the Service/Model Locator pattern. Commands should make use of Dependency Injection.

And I'm not a fan of it's custom event system (Notifications). A simple EventDispatcher would be much more appropriate.

Mate is cool, but I don't like using the display list as the primary event channel. Also, the Presenter pattern makes more sense in Mate than the Mediator pattern, but this puts application integration code into the view components. Mate's Event Map also seems to mix up application configuration with application logic.

Likewise, Swiz seems cool, but as an IOC container it seems a little limited, and I don't agree with the Central (Singleton) event channel idea.

I'm putting together a little proof-of-concept framework that uses hacked-together DI, automatic Mediator creation, and cascading data lookup (need a better term!), but would love to be able to remove my custom DI and use a proper IOC container like Smartypants. The framework would then only really comprise of two things:

A Mediator Factory - for mapping Mediators to view components

And a Command Invoker - for mapping Commands to Events on event channels

I'll post a link to my experiment as soon as I've implemented the Command Invoker. Beware: my DI is nasty - I just haven't figured out how to do this stuff with an established IOC container yet.

Can I reach you via email? Your gfunk007.com site seems to be down, so I don't know if my mail will reach you.

Rock on!

Josh McDonald said...

Have you looked at SmartyPants-IOC? If there's something you need in an injector that it doesn't do, I want to know about it :)

I'm not sure what the issue is with my old email address, but you can get me at josh@joshmcdonald.info

darscan said...

To be honest, I've grabbed the source, and given it a quick look, but haven't figured out how to use it yet. I've also gone through the wiki and examples on Google Code but it hasn't clicked with me yet. Thanks for the email addy - will fire you a mail in a sec. Cheers,

darscan said...

Just a quick update: I managed to implement that framework idea I mentioned using SmartyPants.

SmartyPants rocks! Constructor injection would be great - but I see that's marked for the 1.1 release. Anyhow, thanks for awesome library - definitely gets me amped, and helps me build my apps faster! rockn

This is

  • Tales of Flex
  • From Brisbane, Australia
  • Opinions on Flex development
  • Tips and FAQs
  • Shameless self-promotion

I am

  • Twitterer
  • Flexcoder
  • Maroon
  • Designer
  • Java lover
  • That loud-mouthed Aussie yob
  • Blogger
  • Problem solver
  • Contributor
  • Cricket Fan
  • Lousy photographer
  • Great cook

I read



Subscribe via RSS to receive updates!