Component based Progress Programming VALENTIN DURICU
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 More about me: valentin.duricu.ro
About Wayfare Visit our stand And…
What is Component based Programming?
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
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
In a much simple way… regularly
OOP vs CBP
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
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
Examples
Bundles as defined by the OSGi Service PlatformOSGi Component web platform for modular js, css, and other assets Component Component Object Model (OCX/ActiveX/COM) and DCOM from Microsoft Component Object ModelDCOMMicrosoft Enterprise JavaBeans from Sun Microsystems (now Oracle) Enterprise JavaBeansSun MicrosystemsOracle The System.ComponentModel namespace in Microsoft.NETMicrosoft.NET Unity3D developed by Unity Technologies Unity3DUnity Technologies XPCOM from Mozilla Foundation XPCOMMozilla Foundation .NET Remoting from Microsoft.NET RemotingMicrosoft CORBA and the CORBA Component Model from the Object Management Group CORBACORBA Component ModelObject Management Group
CBP in Progress
Already exists: Procedure Library Another way: Through a dependency manager
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
THANK YOU