1 / 35

A trip to the other side of the world

A trip to the other side of the world. Ing. Andr és Aguiar aaguiar@artech.com.uy. Urban Myths. With a good object-oriented programming ‘framework’ I can obtain the same features as with GeneXus. What features?. Multiple platforms Multiple databases

joei
Download Presentation

A trip to the other side of the world

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A trip to the other side of the world Ing. Andrés Aguiar aaguiar@artech.com.uy

  2. Urban Myths • With a good object-oriented programming ‘framework’ I can obtain the same features as with GeneXus

  3. What features? • Multiple platforms • Multiple databases • No need to write code to access data or SQL • Code independent of database structure • Automatic change of database structure

  4. Thesis • Real world is denormalized • On building any model working with normalized entities you lose information • Lost information is critical during applications development

  5. Invoice from “real life”

  6. Relational Invoice

  7. UML Invoice

  8. GeneXus Invoice

  9. ‘Invoice Demo’

  10. ‘Invoice Demo’

  11. Invoice Demo using object-oriented design

  12. UML Model

  13. Object/Relational mapping • Mapping from an objects model to a relational model • We will use “Hibernate”

  14. Object/Relational Mapping

  15. Adding an invoice

  16. Queries

  17. Reorganization

  18. Reorganization …

  19. Second round

  20. Reorganization impact

  21. Moral • A GX model captures the relevant hierarchical view for the case use. • With this view we can infer relevant relationships -which do not exist in an object-oriented model- for a case use. • A GeneXus transaction is less liable to changes in the data model than a OO model.

  22. Graphs versus Hierarchies • What is a ‘Customer’? • Customer.Invoices • Customer.City.Country • “Lazy loading” • “Eager loading”

  23. Guessing

  24. Moral • In a GX transaction we explicitly define the group of data that is relevant for the use case, and only these. • Explaining them is reasonable.

  25. Concurrence

  26. Concurrence problems • There is a concurrence error: • Invoice.CustomerId change • Item.ItemPrice change • There is no concurrence error • Another user changed Customer.CustomerEmail

  27. Concurrence problem • There is a concurrence error: • A new line was added • Other user modified a line that has not been modified by us • A line was deleted

  28. Moral • Concurrence rules are quite more easy to infer if you know exactly the group of data involved in the use case. • GeneXus infers them automatically. If you use an object-oriented programming you must explain them.

  29. ‘Service-Oriented Architecture’ • Communication between applications or between the physical tiers of an application is performed with messages. • Messages are data expressed in XML

  30. OO to SOA • How should I map my objects graph to a message? • What is an invoice? • Each message has a different view of my objects model • Customer information in the ‘Invoice’ message is different to the one required in the ‘customer’ message.

  31. Moral • Messages in SOA should have all the information required for this use case, and only this information. • GX transactions are ideal for a SOA environment. An object model is not.

  32. Building the user interface

  33. Moral • Inferring the user interface from an object model is not possible.

  34. We did not talk about: • Knowledge Base – protection of technological change • Productivity • Easy use of data • Batch processes! • Database automatic design • Reorganizations

  35. Conclusions • Working with denormalized structures is more productive than working with normalized structures. • Transactions are the key element of GeneXus working philosophy.

More Related