ADF Business Components

ADF BC Tuning II: Associations

Last week, I talked about tuning your ADF entity objects for maximum performance. This week, I’m going to talk about ADF associations.

Custom Association Views

One of the concepts I covered last week was an entity object’s default query, the all-columns query that would be created in a default view object for that entity object. I also talked about one place where the default query is used, even if you don’t create a default view object: entity object fault-in.

But there’s another place that this possibly inefficient query gets used, at least by default: Whenever your business logic traverses an association accessor.

Continue Reading »

Comments (1)

ADF BC Tuning I: Entity Objects

This week’s post will be the first of a five-week series about an important but little-discussed topic: Tuning your business components for maximum performance. A lot of projects put very little effort towards business components tuning (usually nothing more than improving the SQL of expert-mode VOs), and because of this, a lot of developers new to the framework come away with the (false) impression that business components perform poorly. Business components actually perform quite well, so long as they’re properly tuned.

This week, I’m going to talk about tuning entity objects. Over the next weeks, I’ll cover associations, view objects, view links, and application modules.

Continue Reading »

Comments (3)

The Power of Properties II: The View Object

Hey, did you know that, even if you create a “Programmatic View Object” (rows populated programmatically, not based on a query), you can set “bind variables” for it? Neither did I until very recently. You can’t do it in the Create View Object wizard (because the Query page never appears), but once you’ve got that VO, you can indeed add bind variables in the editor.

“Why on earth would you want to do that?” you ask (or, at least, I imagine you asking). “Bind variables are meant to allow the application or user to specify bind parameters for a query, and a programmatic VO doesn’t have a query.” Indeed, that’s what bind variables are usually for, but here, I’m going to show you, at least in outline, how to use this feature to make the ultimate 100% declaratively customizable framework classes (one view object class, one view definition class) for view object definitions based on REF cursors (i.e., whose instances will call a package function to retrieve their row set, rather than execute a query).

Continue Reading »

Comments (1)

Extreme Reusability, Part I

As promised, I’m posting of the presentation I’d been hoping to give at the OOW Unconference Methodology Symposium last week, expanded slightly for the more forgiving medium of a blog. As it turns out, it’s expanded substantially more than I thought, so I’m going to divide it into two parts. This week, I’ll talk about the basics of the methodology, its goals, and the two techniques it relies heavily upon. Next week, I’ll talk about the actual development process it specifies.

“Extreme Reusability” (the name is not mine, but rather Chris Muir’s; however, I decided I like it) is an idea for an ADF development methodology for mid-sized teams (generally around 4-20 developers) that I’ve been recently expanding on. Continue Reading »

Comments (1)

RTM, the ADF Edition

Over on the ADF Methodology group, in a thread called ADF Study, we recently talked about ways to get up to speed with ADF. If you’ve been following this blog at all, you’ve probably guessed (from my sheer number of links to them) that I’m a big fan of the various ADF Developer’s Guides. I want to point these guides up a bit, because they’re a massively underused resource, for beginning and even experienced ADF developers.

Continue Reading »

Comments (2)