For me, a "Component" can occur at any level. On a page for example a Component may be a custom control, applet or an object that is exposed via a custom tag. Tapestry, JSF, ASPX all have these kinds of components. But if you are talking at the application level, then Components take on a completely different definition. If you are going to compose an application from components, then the components are more closely aligned with the business objects they encapsulate. A "Customer" component then may be composed into any number of Applications from Accounts Payable to CRM. Such a "Component" would have its own UI for CRUD operations, and a Web Services Interface for data and method access, and it would likely have its own data persistence or utilize framework or container managed persistence.
The key in my mind is "reuse" if a clump of code and data can be reused in some standard way within one or more frameworks, two or more applications or two or more pages then that clump of code is probably a component. Michael Oliver CTO Alarius Systems LLC 6800 E. Lake Mead Blvd, #1096 Las Vegas, NV 89156 Phone:(702)643-7425 Fax:(702)974-0341 *Note new email changed from [EMAIL PROTECTED] -----Original Message----- From: Michael Jouravlev [mailto:[EMAIL PROTECTED] Sent: Thursday, September 22, 2005 12:03 AM To: Struts Users Mailing List Subject: Fwd: JSF or Struts Classic (was Vs) On 9/21/05, Craig McClanahan <[EMAIL PROTECTED]> wrote: > On 9/21/05, Michael Jouravlev <[EMAIL PROTECTED]> wrote: > > I would like to hear what a component is. Definitions can differ. > > ... ... > below, I'll quote a couple of references that might be the beginnings > of research for your own investigations of the subject -- but this > list should by *no* means be assumed to be an exhaustive analysis of > the available information. Here, as everywhere else, Google is your friend :-). Thanks, Craig. Actually, I already did some research on terminology about a month ago when I was preparing an article. I was looking mostly for definitions from Sun and Microsoft. > There is *lots* more information available to the casual web searcher ... > but the key factors that distinguish a component oriented approach > should be pretty clear. Note that this is not a binary world (you do > *either* COP or OOP), nor is one or the other the perfect answer for > every problem. But my experience recently has been that it is much > easier to teach someone the basics of "program by assembling > components" versus "program by creating object hierarchies" ... and > the difference is dramatic enough that the potential target market for > a component oriented technology (simply measured in the number of > users who can grok how to use it well) is substantially larger than > the number of people who will understand a technology that is built around elegant employment of object oriented design. Right. Composition, aggregation, drag-and-drop, run-time and design-time properties, property editors, interfaces, COM/VBX/ActiveX... Take Delphi or Visual Basic and get the picture. The concept itself is not new and is easy to understand and to use, no arguing with that. I guess everyone played with Erector or Lego in their childhood. > Does that mean COP is "better" than OOP? Don't be ridiculous ... the > question is totally meaningless unless you say better *for what*. I did not want to start argument about what is better. I did not want to argue at all :-) I simply wanted to point out that components (well, sort of, if you squint) can be created in Struts Classic too. And that ASP.NET component approach relies on massive IDE and backend support. I wonder how to encapsulate one component into another with JSF or ASP.NET. Visual tools help to drag the component on the screen in an IDE, but how a JSF page would look like? The same old tags inside tags? Or different? When AmiPro 3.0 allowed to put a table inside a table, this was considered a huge achievement ;-) On the other hand, how many people used it? Struts Classic is still "good enough" for me, but I would agree that writing Struts apps is kinda like coding HTML in a Notepad. The result can be good but takes quite some time. Michael. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]