Monday, 4 November 13:30-17:00 Afternoon
14 Object vs. The Web
Applying software engineering principles, particularly object-oriented techniques, to the Web is not always easy. Many current Web technologies lend themselves to-or even encourage-bad practices. For example, scripting and server-page technologies can encourage cut-and-paste reuse, direct-to-database coding, and poor factoring. Component models like COM and EJB seek to construct building blocks for application assembly, but in doing so they sacrifice many of the advantages of objects. XML emphasizes technology-independent reuse and sharing of content, data, and messaging but at the expense of encapsulation and the association of behavior with state, which is central to OO.
However, software engineering and OO techniques are gaining importance in Web development as Web applications become more complex and integrated with traditional server-side applications. To motivate of the need for these techniques, we examine some representative Web technologies and the issues they present in naive use. We describe a layered, OO architecture, based on the Model-View-Controller (MVC) pattern, which can overcome these issues to produce large, well-structured systems.
This tutorial surveys current web technologies with an emphasis on OO usage, provides best practices and examples from Java and Smalltalk, discusses myths and truths about components, Web Services, and XML, and describes architecture and development practices that support good practices. Attendees will learn a set of patterns for building well-structured web-based systems which leverage object-oriented design principles.
Attendees should have a reasonable understanding of OO development. Experience with web development is helpful, although a basic familiarity with terms is adequate.
Alan Knight works on Smalltalk web tools for Cincom Systems. Prior to that he was chief architect of the TOPLink family of object-relational mapping products with The Object People and WebGain. He has spoken extensively at conferences including OOPSLA, Smalltalk Solutions and Java One, and is co-author of the book "Mastering ENVY/Developer".
Naci Dai is the founder of ObjectLearn and an independent mentor and an educator. Prior to that he was with BEA Systems and The Object People Inc. He teaches object technology, Java, design patterns, and distributed computing. He leads and mentors Web development projects. He has a background in applied engineering and computational physics. He has received his Ph.D. from Carleton University. He is a member of the ACM and IEEE.