ß introduction seaside web applications · adrian lienhard & lukas renggli, august 2003 slide...
TRANSCRIPT
![Page 1: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/1.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 1
Roadmap
ß Introductionß Seaside Web Applicationsß Example: Insurance Applicationß Server Management Interface
ß ROEß Smalltalk Relational DB Access
![Page 2: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/2.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 2
Introduction
ß netstyle.ch founded in 2000ß Startup specialized in developing
Web-Applicationsß Team of ~6 people (most parttime)
![Page 3: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/3.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 3
Seaside Web-Applicationß Sophisticated framework in Squeakß Server setup:
Apache
Comanche / Swazoo
Static files
SeasideComponent Component
http(s)
Web-client
![Page 4: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/4.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 4
Exampleß Domain: Health Insuranceß Specialized little company with
agenciesß Application: Extranet for...ß creating and manageing offers (with
printing/pdf)ß process of accepting new policiesß management of existing customers with
document-managementß billing for agencies
![Page 5: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/5.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 5
Screenshots
![Page 6: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/6.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 6
![Page 7: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/7.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 7
![Page 8: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/8.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 8
![Page 9: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/9.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 9
![Page 10: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/10.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 10
ROE
ß Generic DB access using Smalltalkß Automatically generated SQL
ß Implementation by Avi Bryantß Extended while developing insurance
application
![Page 11: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/11.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 11
Example: Create Tableperson := factory relation: ‘person’.person
create;addColumn: #id withType: #int;addColumn: #name withType : #text.
CREATE TABLE person ();ALTER TABLE person ADD COLUMN “id” INT;ALTER TABLE person ADD COLUMN “name” TEXT;
![Page 12: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/12.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 12
Simple Example
query := person where: [ :id :name |id > 200 & (name like: ‘avi%’) ].
query := query project: #id.query do: [ :row |
… ]
SELECT "id" FROM(SELECT * FROM (SELECT * FROM person)WHERE ("id">200) AND ("name" LIKE 'avi%'))
![Page 13: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/13.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 13
Class DiagramCollection
Relation
Concrete
Array Postgres
Transform
Join
Intersect
Difference
Union
Project
Select
Alias
Order
Distinct
Unary Binary
…
2
11
1
![Page 14: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/14.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 14
Advanced Examplerelation := PLPerson relation where: [ :lastname |
lastname like: ‘%’ , self searchName , ‘%’ ignoreCase: true ].relation := relation project: #familyid.
relation := relation * PLPersistentVersionHolder relation.relation := relation whereEqual: #(versionid familyid).relation := relation project: #holderid.
relation := relation * PLInternetOffer relation.relation := relation whereEqual: #(holderid id).
relation := self applyVisibilityRules: relation.relation := relation project: #id.relation := relation distinct.
![Page 15: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/15.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 15
Algebraic Representation
P[id](S[(holderid=id)](P[holderid](S[(versionid=familyid)](P[familyid](S[(lastnameilike'%avi%')](table_person)) Xtable_version_holder)) Xtable_internetoffer))
![Page 16: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/16.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 16
SQL Query
SELECT DISTINCT * FROM(SELECT "id" FROM (SELECT * FROM(SELECT * FROM (SELECT "holderid" FROM(SELECT * FROM (SELECT * FROM (SELECT"familyid" FROM (SELECT * FROM (SELECT* FROM table_person) WHERE ("lastname"ILIKE '%avi%'))), (SELECT * FROMtable_version_holder)) WHERE("versionid"="familyid"))), (SELECT * FROMtable_internetoffer)) WHERE("holderid"="id")))
![Page 17: ß Introduction Seaside Web Applications · Adrian Lienhard & Lukas Renggli, August 2003 Slide 2 Introduction ßnetstyle.ch founded in 2000 ßStartup specialized in developing Web-Applications](https://reader033.vdocument.in/reader033/viewer/2022042321/5f0afd4c7e708231d42e5103/html5/thumbnails/17.jpg)
Adrian Lienhard & Lukas Renggli, August 2003 Slide 17
Transaction Examplefactory transaction: [
users add: #(id name) values: #(1 avi).users add: #(id name) values: #(2 adi).“other updates, queries, …” ]
BEGIN;INSERT INTO users (id, name) VALUES (1, ‘avi’);INSERT INTO users (id, name) VALUES (2, ‘adi);…
COMMIT;
BEGIN;INSERT INTO users (id, name) VALUES (1, ‘avi’);INSERT INTO users (id, name) VALUES (2, ‘adi);…
ROLLBACK;