WWW-ohjelmointi ANTTI SAND TIETA12

Samankaltaiset tiedostot
ELM GROUP 04. Teemu Laakso Henrik Talarmo

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

OSA I Aloitetaan. Oppitunti. 1. PHP: Kotisivusta portaaliin 2. PHP:n asentaminen 3. Ensimmäinen skriptisi. 17 Johdanto

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Yhteistyötä teatterista & Taiteesta tuotteeksi -hankkeet

WWW-ohjelmointi ANTTI SAND TIETA12

Päijät-Hämeen ja Mäntsälän museoiden työryhmän kokous SOPENKORVEN KOKOELMAKESKUS

TIEA255 Tietotekniikan teemaseminaari ohjelmointikielet ja kehitysalustat. Antti-Juhani Kaijanaho. 16. helmikuuta 2011

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

TIE Principles of Programming Languages CEYLON

TIE Principles of Programming Languages. Seminaariesityksen essee. Ryhmä 18: Heidi Vulli, Joni Heikkilä

Päijät-Hämeen ja Mäntsälän museoiden työryhmän kokous MUSEOKIOSKI

Taustaa. CGI-ohjelmointi

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

Hirviö. Design Patterns

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

4. Derivointi useammassa ulottuvuudessa

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

WWW-Sivustojen suunnittelu. Miten WWW toimii. Suunnittelun lähtökohdat

WWW-Sivustojen suunnittelu

= + + = 4. Derivointi useammassa ulottuvuudessa

Testidatan generointi

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli

Rahoitusriskit ja johdannaiset Matti Estola. luento 10 Binomipuut ja optioiden hinnoittelu

Ulkomaalaistaustainen ehkäisyneuvolassa. Tuire Saloranta TKL Vantaan perhesuunnittelun vastuulääkäri

4. Lausekielinen ohjelmointi 4.1

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Järjestelmäarkkitehtuuri (TK081702)

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Alustavia käyttökokemuksia SAS Studiosta. Timo Hurme Maa- ja elintarviketalouden tutkimuskeskus MTT (v alusta Luonnonvarakeskus / Luke)

Coolselector Asennusohje

TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli

Pedacode Pikaopas. Web-sovelluksen luominen

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Tasasähköyhteyden suuntaaj-asema. Ue j0ƒ. p,q

Taas laskin. TIES341 Funktio ohjelmointi 2 Kevät 2006

Tähtitieteen käytännön menetelmiä Kevät 2009

13/20: Kierrätys kannattaa koodaamisessakin

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Pedacode Pikaopas. Web Service asiakasohjelman luominen

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

WINE API ja Virtualisointiohjelmistot

ruovedellä pohjois-hämeessä. lepounit.com (yritys) lepo.net (oma)

PLA Mobiiliohjelmointi. Mika Saari

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri

Harjoitus 6 (viikko 42)

IIO10200 Tietokantaohjelmointi (4 op)

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

Käyttöjärjestelmät. 1pJÄKÄ1 KÄYTTÖJÄRJESTELMÄN HALLINTA, 12 OSP

Ohjelmointi 1 / syksy /20: IDE

1. Olio-ohjelmointi 1.1

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Groovy. Niko Jäntti Jesper Haapalinna Group 31

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS TYÖASEMALLE

Paavo Räisänen. WampServer palvelimen asennus ja käyttö Eclipsen kanssa, sekä ensimmäinen FTP yhteys.

SQL Server 2008 asennus

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Clojure, funktionaalinen Lisp murre

Tuottavuutta sovelluskehitykseen Oraclen työkaluilla: JDeveloper 10g ja HTML DB OUGF Syysseminaari

TOIMEKSIANTOSOPIMUS. 1. Sopijapuolet. 2. Yhteyshenkilöt. 3. Sopimuksen tausta ja tavoitteet. Osoite: Kasurilantie 1, PL 5, 71801, Siilinjärvi

763105P JOHDATUS SUHTEELLISUUSTEORIAAN 1 Ratkaisut 5 Kevät 2016

Maiju Mykkänen Susanna Sällinen

Johdatus ohjelmointiin

Työpöytävirtualisointi

Tietokannan webbikytkentä. Janne Petäjä

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011

VIDEOJET decoder 7000

5. HelloWorld-ohjelma 5.1

- Komposiittityypit - Object (Mukaanlukien funktiot) - Array. - Erikoisdatatyypit - null - undefined

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

Visual Basic -sovelluskehitin Juha Vitikka

Vagrant, Homestead, Laravel

Web Services tietokantaohjelmoinnin perusteet

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Harjoitus 5 (viikko 48)

server "Ismo" $ uname -a Linux ismo #1 SMP Thu Sep 16 19:35:51 UTC 2010 i686 GNU/Linux $ cat /etc/issue Debian GNU/Linux 5.


JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

15. Ohjelmoinnin tekniikkaa 15.1

WWW-ohjelmointi ANTTI SAND TIETA12

Harjoitus 2 (viikko 45)

DIPLOMITYÖ ARI KORHONEN

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Transkriptio:

WWW-ohjelmointi ANTTI SAND TIETA12

Krssin kvas 2 Työkrssi WWW-sovellsten totettamisesta selain- ja palvelinympäristöissä Kerroksittainen arkkitehtri Client-server arkkitehtri Cookies, sessions, athentication, athorization Tietotrva: CSRF, XSS, Injections, Escaping, Encrypting, Defensive programming Paikka: lennot ls A2B, harjoitkset B0016 Lento-opets: 11 lentoa Harjoitstapaamiset: 11-12 kertaa Edellytykset:TIEP1, TIEP5, TIEA2.1, TIEP3, (TIETA7), TIETA9, Opintopisteet:10 op Hyviä käytäntöjä ja yleisiä vaaran paikkoja

Krssin tavoitteet 3 Opintojakson soritettaan opiskelija ymmärtää arkkitehtrin merkityksen ylläpidettävyydelle www-sovellsten ohjelmoinnissa, osaa snnitella www-sovellkselle arkkitehtrin, joka eriyttää tietokantakerroksen ja esityskerroksen toimintalogiikasta, osaa snnitella www-sovellksen transaktiorakenteen, ymmärtää eri tekniikoiden rooleja www-sovellksen rakentamisessa, ja osaa totettaa snnittelemansa arkkitehtrin mkaisen www-sovellksen ymmärtää selainohjelmoinnin persteet ja kykenee tottamaan dynaamisia selainsovellksia.

Krssin aihealeet 4 HTTP protokolla Front controller PHP -ohjelmointikieli MVC I/O, inpt/otpt, syötteet ja tlosteet Reititys Työskentely tietokantojen kanssa Tietotrva, atentikaatio, athorisaatio Templating Active Record, ORM Soveltvat snnittelmallit XSS, CSRF, SQL Injektiot REST APIs Istnnot ja evästeet Tila ja tilattoms Client server -arkkitehtri

Krssin sorittaminen 5 Lennot Harjoitstapaamiset Tentti Harjoitstyö 11 tapaamiskertaa Teorian ja käytännön tasapainoila 11-12 tapaamiskertaa Käydään läpi viikon aihetta Määrittelyä Arkkitehtria Krssin keskeisin opetsmoto Ohjelmointia oppii vain ohjelmoimalla

Aikatal 6 Viikko Aihe Tehtävä/projekti Viikko 1 Intro Kehitysympäristö kntoon Viikko 2 Basics PHP persteet Viikko 3, 4, 5 Core FW Simple PHP Framework Viikko 6 Secrity Secring PHP applications Viikko 7 & 8 Laravel Fll PHP Framework Viikko 9 & 10 Ve Client Server -applications Viikko 11 Excercise Harjoitstyöstä

Arviointipersteet 7 Krssi arvioidaan harjoitstyön persteella Viikkoharjoitsaktiivisdella voi vaikttaa arvosanaan Tentti pitää sorittaa hyväksytysti Jos harjoitstyön arvosana on 5, krssin arvosana on 5 Mssa tapaksessa viikkoharjoitsaktiivisdella voidaan vaikttaa arvosanaan

Harjoitstyö 8 Harjoitstyö on krssin keskeisin työkal Käyttäjätilit, käyttäjien oikedet, istnnot Ohjelmoimaan voi oppia vain ohjelmoimalla Harjoitstyön tlee olla riittävän laaja ja siinä tlee ratkaista wwwohjelmoinnin keskeisiä ongelmia Varatminen yleisimpiin tietotrvaongelmiin Työskentely tietokannan kanssa (CRUD) Työskentely verkkolomakkeiden datan kanssa, validointi, virheilmoitkset käyttäjälle Selainohjelmointi, XHR

Opettajan yhteystiedot 9 En ole vakitisessa työshteessa, ei viikoittaista vastaanottoa, ei työhonetta, ei työphelinnmeroa Mrheisiin voi hakea helpotsta harjoitstapaamisissa tai hätätapaksessa sähköpostilla: antti.sand@staff.ta.fi Paljon opiskelijoita -> sähköpostiin ei välttämättä ehdi paljoa vastailemaan Moodlessa on keskstelale, josta voi hakea vertaistkea ongelmien ratkaisn Työskentelyn ongelmiin vastas löytyy sein myös malta Interinteistä

10 KURSSIN TYÖKALUT KÄYTETTÄVÄT TEKNIIKAT JA OPISKELIJAN KEHITYSTYÖKALUT

Krssin työkalt 11 Krssilla ttsttaan palvelinohjelmointiin PHP kielellä ja lopssa ttsttaan Laravel -ohjelmointikehykseen. Selainohjelmoinnissa ja palvelin-selain kommnikaatiossa käytetään JavaScript kieltä ja ttsttaan Ve.js JavaScript kirjastoon. Krssilla käydään läpi arkkitehtrisia ja toimialakohtaisia vaatimksia, jotka ovat isoilta osin mttmattomia ohjelmointikielestä riippmatta. TIETA12-2017 - A.S.

Opiskelijan työkalt 12 Koodieditori on koodarin läheisin työkaveri pidä holta, että editorisi on jri sinlle paras mahdollinen Omia sositksia: Sblime Text (nagware) ja Atom (ilmainen) kevyitä ja mokattavia / laajennettavia PhpStorm (ilmainen opiskelijalle) monipolinen, oikea IDE. Trhan raskas, jos et opettele käyttämään kaikkia ominaisksia. Homaa, että srin hyöty löytyy kstomoinnin ja laajennsten katta

Opiskelijan työkalt 13 SQL tietokannat PostgreSQL, MySQL / MariaDB, SQLite Tietokantaeditori helpottaa elämää: PostgreSql MySql / MariaDB SQLite macos PSeqel Seqel Pro Windows HeidiSQL SQLiteBrowser

Opiskelijan kehitysympäristö 14 PHP, *SQL, Server daemon Palvelinohjelmointi vaatii laajoja oikeksia säätää palvelimen asetksia. Paikallinen kehitys voidaan tehdä omalla koneella, mtta jlkaisversiot vaativat oikeksia. Paikallisen kehityskoneen asetkset macos ja Linx käyttäjät voivat asentaa omalle koneelleen kaikki vaadittavat ohjelmat melko vaivattomasti (apt-get ja brew). Trvallisempi vaihtoehto on virtalisoida kehitysympäristö

Virtalisoit 15 kehitysympäristö Oracle VirtalBox virtalisointiin (https://www.virtalbox.org/) Vagrant virtaalikoneiden hallintaan (https://www.vagrantp.com/) Valmiit VM Imaget jri halamasi laiselle kehitysympäristölle, tai phdas käyttöjärjestelmä image ja itse asennett sovellkset (https://atlas.hashicorp.com/boxes/search?pr ovider=virtalbox)

Sositeltavaa lettavaa 16 Verkossa kasapäin ohjeita PHP kielelle Mtta iso osa näistä sisältää vanhentneita käytäntöjä ja honoja nevoja Jos olet ttstnt kieleen mtamia vosia sitten ja kaipaat tietojen päivittämistä tämän hetken sositeltihin käytäntöihin, sositeltavaa lettavaa on https://phpbestpractices.org/ www.phptherightway.com Modern PHP New Featres and Good Practices, (2015), JOSH LOCKHART

Sositeltavaa lettavaa 17 Jos kaipaat kattavampaa materiaalia PHP kielestä, olio-ohjelmoinnista ja snnittelmalleista, hanki PHP Objects, Patterns, and Practice 5 th edition (2017), MATT ZANDSTRA Hom! 5 th edition Kirjaa päivitetty kielen kehityksen mkana, aiemmissa painoksissa osin vanhentneita käytäntöjä

Sositeltavaa lettavaa 18 The Clean Architectre in PHP (2016), Kristopher Wilson CLEAN arkkitehtri SOLID snnittelmalli BDD Jos et ole vielä lkent, niin kannattaa: Design Patterns: Elements of Resable Object-Oriented Software - Gang of For Patterns of Enterprise Application Architectre Martin Fowler

19 PHP HYPERTEXT PREPROCESSOR

PHP Historia 20 PHP development began in 1995 when Rasms Lerdorf wrote several Common Gateway Interface (CGI) programs in C, which he sed to maintain his personal homepage. He extended them to work with web forms and to commnicate with databases, and called this implementation "Personal Home Page/Forms Interpreter" or PHP/FI. - yep, Wikipedia Haltaan toiminnallistta staattisille siville Olemassa olevat työkalt harvassa Syöte käyttäjältä lomakkeilla Tiedon käsittely tietokannoissa WWW-ohjelmoinnin persteet

PHP hyvässä ja pahassa 21 PHP:n oss tnnetista palvelinsovellksista Kaikki mt 18 % PHP 82 % PHP: a Fractal of Bad Design https://eev.ee/blog/2012/04/09/phpa-fractal-of-bad-design/ PHP Scks, Bt It Doesn't Matter https://blog.codinghorror.com/phpscks-bt-it-doesnt-matter/ Kitenkin, PHP on seimmin saatavilla oleva palvelinpolen kieli ja se on saatavilla koln palvelimilla

PHP kritiikkiä 22 Toimintaympäristön mtos on ollt merkittävää Kieltä on kitenkin vaikea distaa rikkomatta olemassa olevaa Todaan sia toiminnollisksia edellisten rinnalle, knnes pelkästään A- kirjaimella alkavia fnktioita on 124 Moni fnktio tekee miltei samaa asiaa erilaisilla parametrijärjestyksillä

Tastoja tälle 23 Aln perin fnktionaalinen, löyhästi tyypitetty kieli Myöhemmin tot mkaan lokat ja OOP:n persteet Sittemmin laajennett nimiavarksilla, rajapinnoilla, abstrakteilla lokilla, Ja nyt jopa vahvalla tyypityksellä (7.0 ja 7.1 toivat mahdollisden parametrien ja palarvojen tyypittämiselle) TIETA12-2017 - A.S.

Helpon, dynaamisen kielen ongelma 24 Koska PHP on valmiiksi asennettna niin moneen palvelimeen ja koska se on melko helposti lähestyttävä kieli ja koska dynaaminen tyypitys saattaa tottaa välillä oikein toimivan ohjelman vähemmällä vaivalla, monet, joilla ei ole laajaa osaamista alasta saattavat lähteä totettamaan visioitaan Tämä on johtant honosti toimiviin, tietotrvattomiin ohjelmiin Ja PHP:n honoon maineeseen Ja toisaalta isoon määrään verkkomateriaalia, jonka avlla det skpolvet ovat totettaneet honosti toimivia, tietotrvattomia ohjelmia Toisaalta kielen lähtökohdat ovat olleet pragmaattisia ja se on kehittynyt askeleittain, josta syystä iso osa materiaalista kvaa vanhentneita toimintatapoja

PHP elää renessanssiaan 25

Zend 26 PHP Engine on se osa, joka parsii (tlkitsee) koodin Perinteisesti tähän käytetään Zend Engineä PHP:n kehitys ei ole ollt hidasta 1998 se oli osana 1% domaineista, nyt 82% tnnetista Samalla kieli kehittyi shteellisen nopeasti shteessa klneeseen aikaan Mtta omassa erityiskentässään liian hitaasti shteessa kentän kehittymiseen http://php.net/manal/en/history.php.php

Enter Facebook 27 Facebookin sren sosion myötä tarvittiin tehokkaampi engine ja sia ominaisksia Facebook jlkaisi oman HHVM:n (HipHop Virtal Machine), joka oli nopeampi kin Zend Engine Facebook laajensi PHP kieltä omalla taaksepäin yhteensopivalla Hack kielellä, joka mm. toi kieleen mkaan mahdollisden staattiselle tyypitykselle Facebook kiritti kielen ja enginen kehitystä Nyt Zend on päässyt samalle viivalle HHVM:n kanssa nopedessa Ja PHP 7.1 toi mkanaan ten staattiselle tyypitykselle

Tämän päivän WWW-ohjelmointi 28 https://www.yotbe.com/watch?v=mdots5bdqrm&t=500s (8:20 21:00)

Langage Wars 29 Verkkokeskstelissa jäädään sein kinastelemaan kielten paremmdesta Faktapohjainen vertail on järkevää parhaan valinnan tekemiselle mtta loplta asiakasta kiinnostaa enemmän lopptlos, kin käytetty tekniikka Ja loplta sien kielten toma (koodaajan) tehokkshyöty lähenee nollaa http://blog.cleancoder.com/ncle-bob/2016/05/21/blenoyellow.html Ja kiidettäessä aina kohti seraavaa srta jtta menetetään paljon hyvää aiemmista http://blog.cleancoder.com/ncle-bob/2016/07/27/thechrn.html

Hello, World! 30

Sinlla saattaa olla PHP jo asennettna 31 Etenkin jos sinlla on macos tai Linx. Voit tarkistaa sen komennolla > php -v Kvassa versio 7.0.12, mtta 5.6.x riittää hyvin ja on yleisemmin käytössä

32 PHP omalle koneelle macos: asenna homebrew, sitten brew install homebrew/php/php70 Windows/macOS/Linx: XAMPP https://www.apachefriends.org XAMPP asentaa Apachen, PHP:n ja MariaDB:n TIETA12-2017 - A.S.

Hello World! 33 PHP:n tlkattava oss alkaa <?php Jos tiedostossa on vain php-koodia, ei tarvita slkevaa määrettä, mssa tapaksessa tlkattava oss lopetetaan?> Echo tlostaa rdlle Ajetaan php tiedosto.php

Löyhästi tyypitetty kieli 34 Java / C# String mystring; mystring = fbar ; Int myint; myint = 42; PHP $mystring = fbar ; $myint = 42; $myint = [ f, bar, baz ]; myint = [ f, bar, baz ]; Vahvasti tyypitetyssä kielessä mttja alstetaan tietotyyppiin, eikä sitä voi enää mttaa. PHP:ssa mttjaa ei alsteta, sen tyyppi määräytyy vasta sijoittamisen yhteydessä ja se voi vaihtaa tyyppiään.

Löyhästi tyypitetty kieli 35 Java / C# pblic String themeaningoflife(int a) { retrn It was + a; } PHP fnction themeaningoflife($a) { retrn It was. $a; } Vahvasti tyypitetyt kielet määrittelevät palarvon tyypin ja parametrien tyypit. (PHP 7.1 tkee myös vahvaa tyypitystä.)

36 Live koodasta AIKATAULUN SALLIESSA

Ensi kerraksi 37 Kehitysympäristö kntoon! Tarkista, että sinlla on kelvolliset työkalt (editorit) Paikallinen kehitysympäristö (PHP, *SQL, Server daemon) Sositelt vaihtoehto on asentaa VirtalBox ja Vagrant ja käyttää ScotchBox tai laravel/homestead Vagrant-konetta Näin kaikilla on sama paikallinen kehitysympäristö riippmatta oman koneen käyttöjärjestelmästä Varmista, että sinlla on virtaalikoneessa PostgreSql, koska sitä käytetään koln palvelimella Pystyt jlkaisemaan ja ajamaan koodia koln palvelimella

Kysymyksiä? 38