120 Que Podriamos Ver En Gene Xus

Post on 30-Jun-2015

375 views 0 download

Transcript of 120 Que Podriamos Ver En Gene Xus

¿QUÉ PODRÍAMOS VER EN GENEXUS?

Gustavo Protogp@artech.com.uy

Presentation flow

o Scenarioo Improvementso Benefits

SaaSM

ult

i-Tenan

cy S

hare

d D

B

o Shared Data Baseo Shared Data Base separate Schemaso Isolated Data Base

Manual Multi-tenancyM

ult

i-Tenan

cy S

hare

d D

B

Procedures

Web panels

Queries

SDTs

Automatic Multi-tenancy M

ult

i-Tenan

cy S

hare

d D

B

Identify as “Tenant Transaction”

Active Tenant DP

Under the coversM

ult

i-Tenan

cy S

hare

d D

B

o Adds TenantId to “Multi-Tenant transactions”

o Updates subtype groupso Assigns/Filters by Tenant in CRUD

operations

BenefitsM

ult

i-Tenan

cy S

hare

d D

B

o Less codeo Less errorso Cleaner KBso Can be reverted at any time

Inheritance

Extends propertyIn

heri

tance

Student extends Person

Type of RelationshipsIn

heri

tance

Part

ial

Superpose

Exclusive

Tota

l

BenefitsIn

heri

tance

o Less codeo Easier subtype definitiono Better end-user experienceo More functionality

Inte

nsi

onal R

ela

tion

ship

s

Intensional TransactionIn

tensi

onal R

ela

tion

ship

s

Include{ UserId ( ProgramId )}

Authorized

ExclusionsIn

tensi

onal R

ela

tion

ship

s

Include{ UserId ( ProgramId )}Exclude{ UserId = NUserId ProgramId = NProgramId}

Authorized

Extended domainsIn

tensi

onal R

ela

tion

ship

s

Include{ IECType = ECommunicationType.eMail}Include{ IECType = ECommunicationType.MSN}…Include{ IECType = ECType}

DomainECommunicationType

eMailMSNSkype

ECommunitationType

{ ECType* …}

Init

ializ

e

IECommunitationType

{ IECType* …}

Multiple documentsIn

tensi

onal R

ela

tion

ship

s

Include{ DocumentType =“Invoice” DocumentId = InvoiceId}Include{ DocumentType =“Payment” DocumentId = PaymentId}…Include{ DocumentType =“Purchase” DocumentId = PurchaseId}

Invoice Payment Purchase

Document

BKEntry{ BKEntryId* … InvoiceId PaymentId … PurchaseId …}

BKEntry{ BKEntryId* … DocumentType DocumentId …}

ImplementationIn

tensi

onal R

ela

tion

ship

s

SQL ViewsSelect UserId, ProgramId From User, ProgramWhere NOT EXISTS (Select * from NotAuthorized Where NUserId = UserId and NProgramId = ProgramId)

Select ‘email’ AS IECTypeUNIONSelect ‘msn’ AS IECTypeUNIONSelect ‘skype’ AS IECTypeUNIONSelect ECType as IECType From ECommunicationType

Select ‘Invoice’ AS DocumentType, InvoiceId as DocumentId from InvoiceUNIONSelect ‘Invoice’ AS DocumentType, PaymentId as DocumentId from PaymentUNIONSelect ‘Invoice’ AS DocumentType, PurchaseId as DocumentId from Purchase

BenefitsIn

tensi

onal R

ela

tion

ship

s

o Less codeo More semanticso KBs easier to understando Better generated code performance

Customer{ CustomerId* CustomerName … CustomerStatus // Active | Inactive …}

For each where CustomerStatus = “Active” …endfor

For each Using ActiveCustomer() …endfor

Imp

licit

Data

Sele

ctor

Implicit Data SelectorIm

plic

it D

ata

Sele

ctor

Implicit Yes

Exceptions

For each Using ONLY OtherDataSelector() …endfor

For each Using NONE …endfor

Imp

licit

Data

Sele

ctor

BenefitsIm

plic

it D

ata

Sele

ctor

o Less codeo Less errorso KBs easier to understand

Other

o Transaction initializationo Reorganization between versionso Conditional eventso New/Update code redundancyo …

gp@artech.com.uy

Muchas gracias