Sharing expertise for better outcomes. DAPUG workshop Delphi for PHP 2. Maj 2007



Relaterede dokumenter
PHP Quick Teknisk Ordbog

OrCAD Capture TCL IDE med Eclipse

Tech College Aalborg. HomePort. Projekt Smart Zenior Home Guide til udvikling af nye adaptere til HomePort

SAS2WPS Workshop. Torben Christensen! Senior Partner, MSc.! tlf: Copyright UniQcus 2014

Netværk & elektronik

ISA Server 2006 Del 5. Jesper Hanno Hansen

how to save excel as pdf

Spatial Suite Bruggergruppemøde Øst Tirsdag den 11. juni Karsten Pihl,

BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015

Digitaliseringsstyrelsen

CURRICULUM VITAE. Hoda Al-Amood, 2014

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets.

Kenn Römer-Bruhn. WordPress. - gør dig synlig på nettet

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

Dokumentering af umbraco artikeleksport:

POST IT! Cph Business Academy Multimediedesign 2. Semester flow april Kirstine Marie Rasmussen cph-

Hosted CRM Outlook client connector setup guide. Date: Version: 1. Author: anb. Target Level: Customer. Target Audience: End User

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

IBM WebSphere Operational Decision Management

Moderne SAS-programmering på webben med SAS Studio. Georg Morsing SAS Institute

Thomas Vedel, Vedel Consult DAPUG erfamøde 10. november Installation af SubVersion (svn)

Hvor er mine runde hjørner?

Da beskrivelserne i danzig Profile Specification ikke er fuldt færdige, foreslås:

Sådan installeres og teste WordPress på en lokal server

Installation af Oracle 10g Release 2 database

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

IT SUMMER CAMP Dato for arr. og. dato for seneste tilmelding. bliver offentliggjort i maj. Ubuntu-Linux, Web-Server, Anvendte Web-Teknologier

APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR. EG Copyright

EasyIQ Opdatering > 5.4.0

Hosted CRM Outlook client connector setup guide. Date: Version: 1. Author: anb. Target Level: Customer. Target Audience: End User

Webside score khtsb.com

PID2000 Archive Service

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

Idekatalog. Så vidt jeg husker fremgik det ret tydeligt hvad der skulle være i ansøgningen. Der var bare virkelig mange informationer der skulle med.

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

Opsætning af FTP- og webserver 22. januar 2007

Online kursus: Content Mangement System - Wordpress

Databaseadgang fra Java

Exceptions i Delphi. Try except

Installation af Bilinfo på Windows

Shooting tethered med Canon EOS-D i Capture One Pro. Shooting tethered i Capture One Pro 6.4 & 7.0 på MAC OS-X & 10.8

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.

Ansat i FOA fagforening, hvor jeg bl.a. arbejder med integration og sagsbehandlingssystemer.

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: APP: SMARTEYES PRO PORT: SecVision - Quick Manual v1.0

Programmering C RTG

Digital Print Room Implementering og tilretning. 11. Sep TMC Plot-SIG

Undervisningsbeskrivelse

Data lagring. 2. iteration (implement backend)

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

VÆR EFFEKTIV SOM SAS PROGRAMMØR MED SAS ENTERPRISE GUIDE 7.12 GEORG MORSING

Webside score assin.co

Delphi og Databaser for begyndere

Indholdsfortegnelse. Side 2 af 20

Dynamisk Webdesign F2010

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

1 Indlæsning af script

Status på det trådløse netværk

SSSystems.local. Netværk. Sikkerhed. Webserver

The Design Diaries Project 3 2. Semester. Blog om designprincipper

Aktivering af Survey funktionalitet

Arkitektur for begyndere

Extension udvikling i Mozilla Firefox. Henrik Gemal

Programmering I Java/C#

Drift & fejlfinding. Netteknik 1. Drift & fejfinding på IT systemer. Mercantec på de større IT systemer! Hvad er drift af IT systemer?

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Webside score bugs.eclipse.org

RentCalC V Soft-Solutions

FleeDa (DBK Fleetmap Database) Installationsvejledning til installation af VPN og FleeDa klient på egen PC (Juli 2017)

Opdatering af ISOWARE til version 6.1.0

Navision Stat (NS 9.2)

BEC. NetScaler Unmanaged VPN. Installation. Bruger Vejledning. Version

3. PROJEKT, 2 SEMESTER

Webside score anforderungserverraum.de.ipaddress.com

Web- og serverprogrammering

SAS USER FORUM DENMARK 2017 USER FORUM. Rune Nordtorp

Web 2.0. World Wide Web (www)

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE

WordCamp Denmark Hurtigere websites med simple optimeringer. Tobias Borg Petersen Digicure A/S

Who s to blame? Jeppe Rørbæk. Jeppe.rorbaek@teknologisk.dk Konsulent og underviser på Teknologisk Institut MCP, MCAD, MCSD, MCT

Installation af MySQL server på PC

DYNAMISK WEBDESIGN Intro

A11: Last Year s Exam

PDFmaps på smartphones

Offline besked. Det budskab, der vil blive vist på sitet, når webstedet er offline.

Installationsguide til SAP Business One 2005 SP1 (SBO 2005)

1 ProjectWise sessioner ved BE 2006

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt

Orcad Layout kørekort. REV. 1.

GIS Is Advancing Rapidly Integrating and Leveraging Many Innovations

Advanced Word Template Brugermanual

Procesbeskrivelse - Webprogrammering

Pronestor Room & Catering

IPv6 Application Trial Services. 2003/08/07 Tomohide Nagashima Japan Telecom Co., Ltd.

Media College Aalborg Side 1 af 11

Tech College Aalborg. ASP.NET Hjemmeside. Projekt Smart Zenior Home - Guide til ASP.NET hjemmeside med Visual Studio

Softwareløsninger til dit netværk

Transkript:

Sharing expertise for better outcomes DAPUG workshop Delphi for PHP 2. Maj 2007

DAPUG Workshop agenda Værktøjer til i dag Gennemgang af webserverens anatomi Grundlæggende PHP programmering Anatomien i Delphi for PHP Gennemgang af forskellige features Hvordan finder man dokumentation og løser dagligdags problemer Gennemgang af deployment Hvordan skaber man sig det overblik at se, hvornår man bruger javascript? Programmeringsøvelser Fremtidsperspektiver

Værktøjer til i dag Delphi for PHP trial edition: http://surl.dk/2gu/ MySQL database server, community edition: http://surl.dk/2gt/ Firebird database server: http://surl.dk/2gs/ PuTTY (SSH tunneller til f.eks. MySQL): http://surl.dk/2gr/

Hvad er Delphi for PHP? IDE(Editor+PHP+Debugger)+Ajax+VCL+Templates Lav interaktive websider til alle webservere der kører PHP med en Delphi IDE Delphi-delen udviklet og vedligeholdt af CodeGear PHP-delen udviklet og vedligeholdt af Qadram Qadram's udviklere har tilsammen 36 mandeårs erfaring i at lave software til andre PHP engine er Open Source Det er konstrueret på en god måde Fokus er på modularisering, indkapsling, produktivitet og så videre...

Status Fejlfyldt (version 1.0.1.414) IDE langsom (de lover at det bliver hurtigere senere) Ikke så mange komponenter endnu Database-delen ufærdig Dokumentation har seriøse mangler Første opdatering er ikke kommet endnu Meget lovende Allerede yderst brugbart, især fordi det bygger på gennemprøvede koncepter (php, ajax, smarty) og fordi det grundlæggende rent faktisk fungerer

Status - fejl/bugs Bugs with most votes on Developer Network: VCL API documentation mainly useless MySQL grid accepts changes but no update to table Database access is slow Ctrl+Click on an identifier should take me to the definition Help on Components is Poor Assigning Datasources in linked Data Modules fails. Wish to stop line hightlighting AutoCompletion Exception Listview doesn't work Deploy VCL in central location Other bugs, rated high by CodeGear DBGrid displays decimal field as a string No JavaScript debugger File/Save Project as not working

Mine mest irriterende problemer Assigning Datasources in linked Data Modules fails. DBGrid opfører sig forskelligt i diverse projekter DBPaginator laver ikke sider af records, men 1 record ad gangen Manglende dokumentation gør, at man skal kigge i eksempler, som ofte ikke fortæller alt man gerne vil vide Der foregår en eller anden form for caching på webserver siden der får bl.a. grafer til at opføre sig mærkeligt. Årsagen har jeg ikke fundet endnu. Utf-8 giver fejl en del forskellige steder i IDE'en, bl.a. aktiveres BOM bytes som ødelægger graf-komponentens funktion

Licens Kan bruges til kommercielle apps Kan bruges til Open Source apps VCL'en kan man kopiere lige så tosset man vil

Sammenlignet med asp/aspx Billig deployment Egnet webhotel med 1GB plads og database er gratis hos domaindirect.dk Nem deployment Ingen specielle rettigheder eller opsætning kræves på serveren til de fleste komponenter Stabil drift Ingen relevante server-side states Deployment til non-pc hardware Sony Playstation, Routere, din vaskemaskine... Linux, Unix, FreeBSD, SunOS, Mac OS X og Windows Og sikkert mange andre... 31-bit tegnsæt (aspx supporterer 16-20 bit) Byg videre på eksisterende php kode eller statisk html PHP har et rigtigt stærkt runtime library PHP har en mindre god håndtering af datatyper

Sammenlignet med alm. php programmering For: Mere struktur, meget større læselighed For: Væsentligt øget produktivitet For: Medleverede komponenter sparer programmering Imod: Lidt mindre frihed i html programmering Imod: Mindre frihed i valg af editor

En webservers anatomi Demonstration af http request og http response GET/POST/HEAD og andre httpd/mod_php og mysqld Mime-types Http redirection Ajax, javascript m.v.

Grundlæggende PHP Fortolket sprog http://dk.php.net/manual/da/function.eval.php Variable Data typer Literals Sprogstruktur Funktioner Klasser Manualen http://dk.php.net/manual/da/ Sprogets performance

Anatomien i Delphi for PHP Hvordan requests håndteres i VCL-baserede php filer Hvordan komponenter kan lade sig gøre Hvordan man skruer det sammen med gammel php kode Javascript Ajax

Gennemgang af features Layers Grid layouts Visuelle html komponenter (f.eks. Label) Grafik-komponenter (f.eks. SimpleChart) Javascript komponenter (f.eks. MonthCalendar) Database access ActionList BasicAuthentication Service http://www.qadram.com/vcl4php/wiki/index.php/users_guide:web_services Templates Nedarvning Javascript using MainMenu, Window

Ajax apps Asynchronous Javascript and XML Reduce number of bytes transferred when exchanging information with server Reduce re-initialization time on client IP network latency is not removed Certain browser features, like history, won't work Delphi for PHP automates this a lot Components may use Ajax, encapsulating Ajax calls (DBGrid)

Database komponenter Tabel komponent som TTable men kan begrænse antal records hentet Query komponent som TQuery men kan begrænse antal records hentet Datasource forbinder GUI komponenter med database Data aware komponenter viser current record DBPaginator hopper hen over records (inden data aware komponenter viser current record) DBRepeater itererer over records og genererer HTML kode for hver record DBGrid itererer over records og laver et stort interaktivt javascript-grid med tilbagekobling til serveren ved post events (når det virker) That's it!

Simpel database form

Koden bag OK knappen... function Button1Click($sender, $params) { global $BlogDB; // Check to see that the user has entered valid data. if( strlen( $this->edit1->text ) && strlen( $this->memo1->text ) ) { // Convert the text that the user entered into valid HTML. $content = texttohtml( $this->memo1->text ); // Append a new record to the comments database, associating this comment with the blog post ID. $BlogDB->CommentsTable1->open(); $BlogDB->CommentsTable1->append(); $BlogDB->CommentsTable1->BlogID = $this->id->value; $BlogDB->CommentsTable1->Author = $this->edit1->text; $BlogDB->CommentsTable1->Posted = date( 'YmdHis' ); $BlogDB->CommentsTable1->Content = $content; $BlogDB->CommentsTable1->post(); $BlogDB->CommentsTable1->close(); // Clear the fields so that if the user adds another comments, the fields will start empty. $this->edit1->text = ''; $this->memo1->text = ''; } } // Redirect back to the blog post page. redirect( 'blog.php?id='. $this->id->value );

Dokumentation, dagligdagen Indbygget hjælp The manual http://dk.php.net/manual/da/ Online VCL docs: http://www.qadram.com/vcl4php/vcldoc/ http://www.qadram.com/vcl4php/wiki http://sourceforge.net/projects/vcl4php/ Forums http://www.qadram.com/vcl4php/forums/ vcl/samples Use the source, Luke! Debugging php code Debugging html-code (firefox, addins) Debugging javascript Workarounds

MySQL via SSH tunnel PuTTY MySQL uses TCP port 3306 Lav lokal tunnel fra port 3306 til remote localhost:3306 Hold putty kørende så længe databasen skal være forbundet Lav derefter udviklingen som om at serveren kører på localhost

Deployment Apache, PHP 5, MySQL Safe mode VCL upload Pga. bugs glemmer IDE'en visse javascript filer som man selv må lægge op manuelt vcl, vcl-bin Zend caching af kompilering Sikkerhedsopdateringer

Data flow i brugerflader Performance vs. persistens Performance vs. browser kompatibilitet

Programmeringsøvelser Lav en side, der viser resultatet af et SQL statement (simuler evt. hvis du ikke har MySQL installeret) Tilføj en graf til siden, så man også kan se tallene grafisk Put tabellen og grafen ind på bestemte sider i et eksisterende websidelayout vha. templates Lav en side til hurtig redigering af data i en tabel Ajax?

Fremtidsperspektiver Bedre IDE performance Bugfixes Forbedret database infrastruktur Flere komponenter Herunder muligvis en ændret måde at Ajax komponenterne snakker med serveren på Samarbejde mellem PHP projektet og CodeGear, ligesom vi så det mellem Sun/Java og Borland Flotte, interaktive databasebaserede websites for dummies