This document discusses component-based programming and provides examples of it in Progress and other platforms. It defines component-based programming as separating concerns into loosely coupled independent components. An individual software component encapsulates a set of related functions or data. Components communicate via interfaces. Examples given include procedure libraries in Progress, bundles in OSGi, and modules in .NET. The document contrasts object-oriented programming with component-based programming's emphasis on prefabricated and reusable components.
3. About me
§ Progress OpenEdge developer
at Wayfare ~ 3 years
§ 5 years web development experience
§ Some projects related to OpenEdge
◦ Cloud Developer Studio (cloud-studio.ro)
◦ OpenEdge mode for ACE Editor (bit.ly/1iqCa6u)
◦ Omen (bit.ly/1jAkwp5)
§ Hobbies: Photography, Recreational Gaming
§ Contact me at valentin.duricu@wayfare.ro
§ More about me: valentin.duricu.ro
6. § branch of software engineering that
emphasizes the separation of concerns
§ it is a reuse-based approach to define,
implement and compose loosely
coupled independent components
§ Example:
• a checkout component, responsible for a
users order
• a card processing component, required by the
checkout one to charge the users credit card
7. § An individual software component is a
• software package
• a web service
• a web resource
• a module that encapsulates a set of related functions (or data)
§ With regard to system-wide co-ordination, components
communicate with each other via interfaces
8. In a much simple way…
http://www.tofucar.com/the-car-components-that-you-must-check-regularly
11. § OOP
• Software should be written according to a mental model
• Modeling of real-world interactions
• Attempt to create “nouns” and “verbs” to be used in more
human readable ways
12. § CBP (Component Based
Programming)
• Developers should create software by gluing together
prefabricated components
• Modularizing software as software components
• It is desirable to build complex system by assembling
highly cohesive loosely coupled large components
14. § Bundles as defined by the OSGi Service Platform
§Component web platform for modular js, css, and other assets
§Component Object Model (OCX/ActiveX/COM)
and DCOM from Microsoft
§Enterprise JavaBeans from Sun Microsystems (now Oracle)
§The System.ComponentModel namespace in Microsoft .NET
§Unity3D developed by Unity Technologies
§XPCOM from Mozilla Foundation
§.NET Remoting from Microsoft
§CORBA and the CORBA Component Model from the Object
Management Group
17. •Omen – a dependency manager for
OpenEdge projects
§ Written in JavaScript to be ran in Node.JS
§ Available for free in NPM repository
§ Commands available to:
• create, install, update or publish project
• create eclipse project, initalize appserver, generate propath
§ Private repository for private usage