ZAAWANSOWANE TECHNIKI WWW (zajęcia r. i r.)

Wielkość: px
Rozpocząć pokaz od strony:

Download "ZAAWANSOWANE TECHNIKI WWW (zajęcia r. i r.)"

Transkrypt

1 ZAAWANSOWANE TECHNIKI WWW (zajęcia r. i r.) 1. Przygotowanie środowiska pracy back-end (Node.js) NodeJS (wersja LTS: 8.9.1) jest zaawansowanym środowiskiem do tworzenia skalowalnych i bardzo wydajnych aplikacji webowych. Aplikacje oparte o środowisko node działają w asynchronicznym systemie wejścia/wyjścia sterowane za pomocą zdarzeń i pozwala na uruchomienie kodu JavaScript poza przeglądarką internetową. System posiada bardzo dobrze rozbudowany system wtyczek dostępnych w repozytorium on-line (npn) które można instalować w zależności od potrzeb. Instalacja środowiska uruchomieniowego Node.js 0) Wchodzimy na stronę: 1) Pobrać najnowsza wersję platformy node.js, a następnie rozpakować do katalogu domowego i zmienić nazwę powstałej kartoteki na nodejs. 2) W utworzonej kartotece znajduje się kartoteka bin w której zlokalizowany jest główny plik wykonywalny o nazwie node, stanowiący interpreter kodu JS. 3) Domyślnie powinniśmy używać powłoki terminala bash. Jeśli nie jest to domyślna powłoka należy się do niej przełączyć wpisując w terminalu polecenie: > bash 4) Definiujemy tworzymy następujące linki symboliczne w głównej kartotece nodejs: > ln -s./bin/node node > ln -s./bin/npm npm 5) W pliku.bashrc (jeśli nie istnieje tworzymy taki w sowjej głównej kartotece domowej) dodajemy następującą zmienną środowiskową: export PATH=$PATH: /home/username /nodejs/bin gdzie username - oznacza nazwę użytkownika nodejs - oznacza nazwę kartoteki instalacji nodejs 6) Następnie w głównej kartotece domowej wykonujemy polecenie: > source.bashrc 7) Jeśli w kartotece mamy np. plik.js, zawierający skrypt w języku JS, to aby go wykonać należy uruchomić go następującym poleceniem: > node plik.js 8) W celu sprawdzenia czy poprawnie zainstalowaliśmy środowisko node można wykonać polecenie: > node -v Zadanie 1 Dla przetestowania poprawnej instalacji środowiska uruchomieniowego Node.js proszę uruchomić aplikację serwerową dostępna na stronie: Kod proszę wpisać kod dostępny na stronie do pliku app.js i uruchomić poleceniem: > node app.js

2 Proszę zmodyfikować skrypt tak aby w ostatecznej odpowiedzi renderowana była prosta strona internetowa z kodu hipertekstowego (HTML). Instalacji i praca z pakietem Express.js (aplikacja samodzielna nie MVC) Node.JS umożliwia tworzenie złożonych i zaawansowanych aplikacji internetowych o architekturze MVC (Model-View-Controller). Dziś poznamy kompletne narzędzia i metody do tworzenia aplikacji w tej architekturze w środowisku NODE.JS. Do tworzenia aplikacji w architekturze MVC w środowisku NODE.JS służy pakiet Express (strona projektu: ). Jest to bardzo rozbudowane narzędzie ułatwiające budowanie aplikacji internetowych w NODE.JS opierających swoją komunikację na protokole HTTP. 0) Tworzymy np. Kartotekę o nazwie test, a następnie do niej przechodzimy > mkdir test && cd test 1) Następnie inicjalizujemy kartotekę zakładając nowy projekt w Node.js > npm init Polecenie to przeprowadzi nas przez proces tworzenia pliku package.json który będzie zawierał wszystkie informację o naszym nowym projekcie. W szczególności przy wyborze nazwy tzw. Entry point proszę wpisać zamiast proponowanej nazwy index.js, nazwę app.js. Plik po utworzeniu powinien wyglądać następująco: About to write to /home/marcin/test/package.json: { } "name": "test", "version": "1.0.0", "description": "Moja pierwsza aplikacja Node.js / Express.js", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "aplikacja", "web", "node" ], "author": "Jan Kowalski", "license": "ISC" 2 ) W kolejnym kroku należy zainstalować pakiet express.js: > npm install express --save Proszę zwrócić uwagę, że modyfikacji uległ plik package.json 1

3 3) Proszę utworzyć plik app.js w który prosze umieścić nasępujący kod aplikacji: const express = require('express'); const app = express(); app.get('/', function (req, res) { res.send('hello World!'); app.listen(3000, function () { console.log('example app listening on port 3000!'); 4) Proszę uruchomić aplikację poleceniem: > node app.js a w pasku adresu przeglądarki wpisać adress Zadanie 2 Proszę omówić metody natywne HTTP i sposób trasowania w aplikacjach Express.js. Zadanie 3 Proszę spróbować użyć kodu przedstawionej aplikacji do wysłania do użytkownika statycznego kody strony internetowej HTML zapisanego w pliku index.html 2. Praca z generatorem Express.js (aplikacja samodzielna z szablonem MVC) 0) Domyślnie używamy powłoki terminala bash. Jeśli nie jest to domyślna powłoka należy się do niej przełączyć wpisując w terminalu polecenie: > bash 1) Za pomocą standardowej metody instalacji pakietów należy zainstalować w środowisku node.js moduł express : > npm install express 2) Dodoatkowo musimy doinstalować pakiet generatora express: > npm install -g express-generator Na tym etapie środowisko NODE.JS jest gotowe do tworzenie aplikacji w architekturze MVC. Tworzenie nowego projektu MVC: Aby utworzyć nowy projekt należy wykonać następujące kroki: 1) Utworzyć w kartotece głównej NODE.JS nowy katalog np.: > mkdir hello 2

4 2) Wygenerować strukturę aplikacji: > express hello 3) Wejść do kartoteki hello: > cd hello/. 4) Doinstalować standardowe pakiety: > npm install 5) Na tym etapie aplikacja jest gotowa do uruchomienia. Serwer uruchamiamy wydając polecenie: > npm start 6) W przeglądarce, po wpisaniu adresu localhost:3000 powinniśmy ujrzeć domyślną stronę projektu express. 7) Dodatkowo w konsoli w której uruchomiliśmy serwer dostajemy logi np.: GET / ms - 270b GET /stylesheets/style.css 200 8ms - 110b które mówią o czasach wykonywania przychodzących żadań do serwera i pobieranych plikach. Zgodnie podziałem na trójwarstwową strukturę aplikacji (Model-View-Controller) poszczególne moduły aplikacji są rozproszone w różnych kartotekach. Podstawowa struktura kartotek jest następująca: -rw-r--r :52 app.js drwxr-xr-x :52 bin drwxr-xr-x :52 node_modules -rw-r--r :52 package.json drwxr-xr-x :52 public drwxr-xr-x :52 routes drwxr-xr-x :52 views // główny plik aplikacji // katalog z serwerem // dodatkowe moduły node.js // pliki publiczne np. css // kontroler // widok Kartoteka models nie jest standardowo tworzona. Zadanie 4 Proszę zbudować w oparciu o infrastrukturę Express.js (MVC), aplikację która będzie obsługiwać formularz przez który dane będą przesyłane za pomocą metody POST, a następnie dane te będą wyświetlane na stronie która jest wyświetlona po wysłaniu formularza. Może to być prosty formularz kontaktowy. 3. Komunikacja HTTP (POST, GET) Architektura trójwarstwowa wymusza podział na akcje i widoki. Gdzie akcje (znajdujące się kontrolerze) są odpowiedzialne za wykonywanie operacji i obsługę żądań przychodzących do serwera, a widoki za wyświetlanie danych przychodzących z kontrolera. Standardowo akcje przechowywane są w kartotece routes, a widoki w kartotece views. Rozpocznijmy od kontrolera: w kartotece routes znajdują się dwa plik jeden o nazwie index.js drugi user.js. Zajmijmy się tym pierwszym, który odpowiada za obsługę strony głównej w naszej aplikacji. Jego struktura jest bardzo prosta i zawiera tylko jedną funkcję obsługującą żądania GET przychodzące do serwera. 3

5 W ogólności w tym kontrolerze (oraz każdym innym dowolnym) moga znaleźć się akcje operujące na metodach natywnych protokołu HTTP. Najczęściej używanymi są dwie metody: GET -> nasŧepuje kiedy żądamy pobrania danego zasobu (za pomoca adresu URL stanowiący jednoznaczny lokalizator zasobu). Serwer w odpowiedz na żądanie GET kiedy użytkownik ma do tego prawo oraz zasób istnieje. zwraca żądany zasób. Przykładem żądania GET jest np. zwykłe wyświetlenie strony HTML. POST -> następuje kiedy chcemy do serwera przesłać dane lub te dane uaktualnić. W zasadzie jest to to samo co żądanie GET, poza tym że w ciele tego żądanie możemy przesłać dodatkowe dane. Przeanalizujmy funkcję która znajduje się w pliku routes/index.js : /* GET home page. */ router.get('/', function(req, res) { res.render('index', { title: 'Express' W tej funkcji obsługujemy żądanie GET przychodzące od klienta (z przeglądarki), wymuszające wyświetlenie strony głównej aplikacji. W odpowiedzi na przychodzące żądanie req formowana jest odpowiedź res, która renderuje stronę index.html na podstawie widoku znajdującego się w kartotece views. Przeanalizujmy, jakie wartości przyjmuje metoda render : - Jako pierwszy argument podajemy nazwę pliku widoku który ma zostać wyświetlony w wyniku realizacji tego zadania, - drugi parametr to obiekt z danymi przekazywanymi do widoku które mają zostać wyświetlone ostatecznie na stronie. Można to porównać do funkcji która zwraca wartość (tu w postaci złożonego obiektu) do innej funkcji. Metody które mogą zostać wykorzystane do zwrócenia odpowiedzi do klienta: res.download() - zwracamy plik którego pobrania żąda użytkownik. res.end() - zakończenie formowania odpowiedzi (argumentem może być tekst) res.json() - zwrócenie do klienta pliku JSON. res.jsonp() - zwrócenie do plikenta odpowiedzi JSONP. res.redirect() - przekierowanie żądania (np. Na inny addres). res.render() - wyrenderowanie strony z szablonu (np. JADE lub EJS). res.send() - wysłanie odpowiedzi do klienta np. tekstu res.sendfile() - odesłanie odpowiedzieć jako application/octet-stream res.sendstatus() - odesłanie kodu odpowiedzi HTTP i jego reprezentacji tekstowej. Zadanie 5 Proszę przetestować metody zwrotu odpowiedzi kontrolera zaznaczone na niebiesko w tabeli powyżej. Proszę dla każdej metody napisać osobną akcję kontrolera z użyciem metody GET. Każda akcja powinna być wykonana przez osobny adres URL. 4

6 4. Przekazywanie zmiennych przez adres - metoda GET w node.js. W kilku sytuacjach niezbędne jest jawne przekazanie wartości zmiennych przez adres (metoda GET), podobanie jak to było w PHP. Jako, że w tym przypadku metoda wysyłamy zmienne to GET możemy posłużyć się funkcją: router.get(). Jak już wiemy w metodzie.get() pierwszym parametrem jest adres obsługiwanego żądania. W tym miejscu możemy również przekazywać wartości zmiennych. Przykład: Chcemy przekazać 4 następujące zmienne o wartościach całkowitych: a=4, b=5, c=6, d=7. Aby to uczynić musimy w odpowiedni sposób spreparować maskę adresu dla metody.get(). Zakładamy że nasz funkcja będzie obsługiwała docelowo adres /test oraz w odpowiedzi będzie renderować stronę widoku o nazwie testowy.jade. W standardowym wypadku szablon naszej funkcji będzie następujący: router.get('/test, function(req, res){ var obj = 0; res.render('testowy', obj); Teraz musimy tak zmodyfikować maskę obsługiwanego adresu aby można było podać zmienne (oczywiście nie wpisujemy ich na sztywno w adresie!). Zmianę w adresie są symbolizowane przez: :nazwa_zmiennej // dwukropek i nazwa zmiennej przykładowo: router.get('/test/:a, function(req, res) gdzie :a jest nazwą naszej zmiennej którą będziemy mogli posługiwać się do odebrania wartości. Jesteśmy mamy tych zmiennych więcej oddzielamy je przecinkami: router.get('/test/:a,:b,:c,:d, function(req, res) Możliwe są również, inne kombinacje np: router.get('/test/:a/:b,:c/:d, function(req, res) router.get('/test/:a/:b/:c/:d, function(req, res) router.get('/test/:a/:b,:c,:d/:e/:f/:g,:h, function(req, res) W adresach można przesyłać dowolne wartości tj. liczby, znaki etc. Aby odebrać wartości ze zmiennych adresowych należy posługiwać się obiektem żądania i nazwą zmiennej zdefiniowanej w adresie: np: req.params.nazwa_zmiannej; req.params.a; 5

7 Req.params.b; Wykorzystanie tej funkcjonalności najczęściej polega na wpisaniu na sztywno np. odnośnikach wartości zmiennych. W widoku ma to np następującą postać: a(href= /test/4,5,6,7 ) kliknij mnie Po kliknięciu w link zostanie wywołana metoda get obsługująca wywołany adres. 5. Przekazywanie zmiennych przez formularz - metoda POST w node.js. Zacznijmy od zdefiniowania w routes/index.js nowej funkcji która będzie odpowiadała za wyświetlanie naszej strony oraz przetworzenie danych wpisanych do formularza. Standardowo w tym pliku mamy obiekt który obsługuje nam zapytania do serwera żądające wyświetlanie danej strony: /* GET home page. */ router.get('/', function(req, res) { res.render('index', { title: 'Express' W tym wypadku w odpowiedzi renderowany jest szablon zapisany w pliku views/index.jade, będący rozszerzeniem domyślnego wyglądu strony. Aby obsłużyć formularz obsługujący dane musimy posłużyć się do tego celu metodą odbierającą dane z formularza czyli POST (wyjaśnienie różnicy pomiędzy GET a POST było przedstawione w poprzednich materiałach). Szkielet funkcji jest następujący: router.post( [link-wyswietlany], function(req,res){ res.render(' [nazwa.jade] ',{ } ); W naszym przypadku chcielibyśmy utworzyć formularz który posiada jedno pole typu text do którego wpisujemy dane, a następnie te dane są wyświetlane jak tytuł strony ( w nagłówku h1) strony wyświetlonej po przeładowaniu. Załóżmy że strona po przeładowaniu będzie się nazywać studentów, a do szablonu jade przekazywana będzie wartość pola z formularza. Do pobierania danych z pól formularza, posługujemy się obiektem req który jest generowany w momencie wysłania żądania do serwera. Dostęp do wszystkich pól formularza jest możliwy przez obiekt body i podanie nazwy danego pola w formularzu np:. req.body.student. Pełny kod funkcji renderującej stronę na podstawie danych z formularza jest następujący: router.post('/studentuj',function(req,res) { var student = { name: req.body.student //nazwa pola }; res.render('index', {title: req.body.student Musimy odpowiednio zmodyfikować plik szablonu, tak aby zawierał sam formularz. Dla języka JADE/PUG miałby on postać: 6

8 extends layout block content h1= title p Welcome to #{title} form(method="post" action="/studentuj") input(type="text" name="student") input(type="submit") Formularz ten POSTuje (czyli wysyła dane) pod adres /studentuj który właśnie jest obsługiwany w kontrolerze przez wcześniej napisaną funkcję. Zadanie 6 Proszę przetestować przesyłanie danych obiema metodami GET i POST. Proszę przygotować przykład w którym będzie pokazane odbieranie danych obiema metodami. 6. Silnik szablonów JADE/(PUG) oraz EJS Express umożliwia użycie kilku silników szablonów dzięki którym możemy przygotowywać widoki aplikacji internetowych m.in. ejs, hbs, hjs, jade, pug, twig, vash. Dla wygodny można wybrać jeden z nich. Wśród twórców aplikacji Express/Node najczęściej używanymi są JADE/PUG oraz EJS. Domyślnie aplikacja wygenerowana w Express.js działa z użyciem silnika JADE/PUG. Przy inicjowaniu nowego projektu możemy wybrać typ silnika na którym ma działać nowa aplikacja: JADE : express nowy_projekt EJS : express --view=ejs -e nowy_projekt Jade jest uproszczoną formą szablonu HTML pozbawioną właściwych znaczników, zawierającą elementy logiki wyświetlania. Przykład: doctype html html head script(src=' title= title link(rel='stylesheet', href='/stylesheets/style.css') body block content Natomiast EJS jest zwykłym szablonem HTML wzbogaconym o annotacje które służa np. so osadzania zmiennych wewnątrz szablonu. <!DOCTYPE html> <html> <head> 7

9 <title><%= title %></title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1><%= title %></h1> <p>welcome to <%= title %></p> </body> </html> Gdzie notacja jest zapisana jako znacznik: <%= title %> Jak widać Jade, jest pozbawiony znaków określających znaczniki oraz jest również samo uzupełniający się ponieważ nie ma znaczników zamykających!!!! Przykład widoku wyświetlającego stronę główną jest umieszczony w pliku index.jade : extends layout block content h1= title p Welcome to #{title} Polecenie extends layout mówię serwerowi, że ten plik rozszerza funkcjonalność głównego widoku umieszczonego w pliku layout. Dodatkowo w obu przypadkach widoku głównego, jak i widoku rozszerzającego widać również jak należy odbierać zmienne przekazywane przez w obiekcie funkcji render. Jak pamiętamy przekazaliśmy w kontrolerze objekt: { title: Express } Jest on teraz wyświetlany w dwóch miejscach w elemencie <h1> oraz <p>. W obu przypadkach dostęp do obiektu jest inny, jednak są to dwie równoważne metody. Z doświadczenie polecam metodę drugą czyli #{ nazwa zmiennej }. Przykład 1. (który już znamy): Zapisywanie znaczników w JADE: <div> Element blokowy </div> div Element blokowy Przykład 2. <html> <head> <title> Jade </title> </head> <body> <p> JADE html... head... title Jade... body... p... JADE 8

10 </p> </body> </html> W przykładzie powyżej kropki oznaczają wcięcia zrobione za pomocą spacji. Alternatywnie można używać tabulatora (stałego odstępu). Należy jednak w pojedynczym pliku.jade używać spacji lub tabulacji (nigdy obu). Powyższy przykład pokazuje również niezwykłą zwięzłość tego typu kodowania. Wewnątrz tekstu języka JADE można używać znaczników HTML!!!!! Przykład 3. Plain text can include <strong>html</strong> <p> It must always be on its own line </p> Plain text can include <strong>html</strong> p It must always be on its own line Znaczniki HTML zostaną przesłane do przeglądarki gdzie zostaną zinterpretowane Przykład 4 - Lista <ul> <li>item A</li> <li>item B</li> </ul> ul li Item A li Item B li Item C Tworzenie atrybutów znaczników: <a href="google.com">google</a> <a href="google.com" class="button">google</a> a(href='google.com') Google a(class='button', href='google.com') Google Klasy: <a class="button"></a> <div class="content"></div> a.button.content Identyfikatory: <a id="main-link"></a> <div id="content"></div> a#main-link #content Prosta logika w JADE: JADE umożliwia wykonywanie bardzo prostych operacji wyliczeniowych: 9

11 <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> ul each val in [1, 2, 3, 4, 5] li= val Możliwe jest wykonywanie prostych zadań które mają być wykonane w pętli: <li>item</li> <li>item</li> <li>item</li> - for (var x = 0; x < 3; x++) li item Dostęna jest również instrukcja warunkowa wyboru: <p>you have 10 friends</p> - var friends = 10 case friends when 0 p you have no friends when 1 p you have a friend default p you have #{friends} friends 7. Tworzenia projektów MVC w oparciu o Node.js/Express.js Środowisko Node.js w połączeniu z modułem Express.js umożliwia tworzenie aplikacji internetowych bazujących na trójwarstwowej architekturze o podziale na następujące komponenty: - Logika danych (Model) - Logika biznesowa (Kontroler) - Logika prezentacji (Widok) Express.js pozwala na utworzenie szkieletu aplikacji opartego na w/w wzorcu.. Aplikacja internetowa oparta na module Express.js wykorzystuje wbudowane w protokół HTTP natywne metody komunikacji pomiędzy klientem a serwerem tj. GET, POST, PUT, DELETE itp. Służą one do przyjęcia przez serwer żądania (req) od klienta oraz odesłania do niego stosownej odpowiedzi (res). Podejście te bazuje na tzw. trasowaniu oraz tworzeniu end-pointów do wykonywania określonych czynności przez aplikację. Ogólna postać End-pointa w Express.js ma to: app.metoda( TRASA, CALLBACK ); Przykładem end-pointa jest następująca funkcja znajdująca się w pliku./routes/index.js /* GET home page. */ router.get('/', function(req, res) { 10

12 res.render('index', { title: 'Express' Ten konkretny end-point pozwala na obsłużenie żądania GET w wyniku wpisania przez użytkownika do przeglądarki następującego adresu URL: localhost:3000/ Następnie w wyniku tego wywołania endpoint realizuje określoną operację która jest zapisana w ciele funkcji wywołania zwrotnego tzw. callbacka. W przykładzie funkcja renderuje stronę HTML bazując na szablonie o nazwie index (pierwszy argument metody res.render()) oraz danych które są przekazywane w postaci obiektu w drugim argumencie. W ogólności funkcja Callback nie musi renderować widoku w postaci pliku HTML, może np. zwracać dane w postaci obiektu JSON który następnie jest przesyłany do przeglądarki klienta poprzez metodę: res.json(data); Jednym z typowych zachowań aplikacji internetowych w celu poprawy wydajności ich działania jest renderowanie wszystkich elementów widoku (strony) HTML w momencie przyjścia pierwszego żądania klienta, natomiast uaktualnienie wszystkich danych prezentowanych w tym widoku w wyniku operacji wykonywanych asynchronicznie za pomocą podejścia AJAX (czyli wymieniając obiekt JSON). Drugim bardzo istotnym aspektem tworzenia aplikacji w oparciu o Node.js/Express.js jest umiejętności tworzenia własnych modułów (modelu) aplikacji, które realizują określone funkcjonalności lub potrzeby biznesowe. W standardowym szkielecie aplikacji Express.js nie ma miejsca na model, i należy stworzyć go samodzielnie. Najwygodniej jest utworzyć kartotekę o określonej nazwie np. Modules i w niej przechowywać wszystkie pliki autorskich modułów. W ramach tej kartotek należy organizować poszczególne funkcjonalności (modele) w odrębnych plikach i następnie zgodnie z podejściem CommonJS udostępniać je innym obiektom za pomocą: Module.exports = NAZWA-MODELU; A następnie w pliku w którym chcemy użyć tego modułu dodać go za pomocą dyrektywy: const MODEL = require(../modules/mojmodul.js ); (przykład z utworzeniem modułu opartego o klasę Kalkulator podany jest w wykładzie 6 oraz stanowił zadanie na poprzednich zajęciach). 7. Tworzenie modularnej struktury aplikacji opartej o obiekt module.exports W środowisku Node.js we współpracy z Express.js możemy tworzyć własne lgiczne moduły aplikacji realizujących określone funkcjonalności (zadania). Jednym z popularnych metod enkapsulowanie funkcjonalności w JavaScript są moduły tworzone w postaci osobnych plików i dołączony do głównego programu za pomocą dyrektywy require() np. : const http = require( http ); Dyrektywa ta tworzy obiekt będą bezpośrednim odwołaniem do obiektu modułu http i dającym dostęp do jego metod. 11

13 W przypadku gdy chcemy sami stworzyć taki moduł robimy to najczęściej poprzez stworzenie literału obiektowego składującego odpowiednie dane oraz metody wykonywane na tych danych. Przykład prostego modułu stanowiącego kalkulator: // w pliku kalkulator.js var kalkulator = { dodaj: function(a,b){ return a + b; }, odejmij: function(a,b){ return a - b; }; module.exports = kalkulator; Każdy obiekt (zatem również literał obiektowy) posiada obiekt module.exports, dzięki któremu możemy udostępnić zawartość dowolnej funkcji lub obiektu do innego obiektu. Dla przykładu stworzonego modułu kalkulatora, jego dołączenie do programu głownego będzie wyglądać następująco: // w pliku app.js const kalkulator = require('./kalkulator.js'); console.log(kalkulator.dodaj(4,5)); console.log(kalkulator.odejmij(4,5)); console.log(kalkulator.pomnoz(4,5)); console.log(kalkulator.podziel(4,5)); Podobnie możemy utworzyć nowy moduł w oparciu o klasy języka JavaScript: // w pliku kalkulator.js class Kalkulator { constructor(a,b){ this.x = a; this.y = b; } Dodaj() { return this.x + this.y; } }; module.exports = Kalkulator; Oraz plik głównej aplikacji: // w pliku app.js const Kalkulator = require('./kalkulator.js'); var k = new Kalkulator(4,5); console.log(k.dodaj()); Zadanie 7 Proszę zaadoptować przygotowany przykład nowego modułu (stworzonego jako literał obiektowy lub klasa - do wyboru jedno lub drugie) do aplikacji uruchamianej za pomocą 12

14 Express.js. Proszę również o przygotowanie uproszczonego interfejsu klienta GUI który będzie umożliwiał użycie w/w modułu kalkulator. Prosze posłużyć się struktura aplikacji utworzoną za pomocą generatora Express.js. Interfej powinien umożliwiać wprowadzenie dwóch liczb przez formularz, następnie za pomocą metody POST dane te powinny zostać przesłane do serwera gdzie powinny zostać odebrane i na ich podstawie powinna zostać wykonana odpowiednia operacja dostępna w kalkulatorze. Do modułu proszę również dodać pozostałe operacje matematyczne oraz spróbować zaimplementować operację silnia (rekurencja!!). 13

server.listen(port, hostname, () => { console.log(`server running at });

server.listen(port, hostname, () => { console.log(`server running at  }); TECHNIKI WWW (WFAIS.IF-C125) (zajęcia 04.01.2017 r. i 11.01.2017) Dla przypomnienia uruchamianie serwera http podającego statyczną treść polegało na stworzeniu skryptu wraz z osadzonym kodem statycznej

Bardziej szczegółowo

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Co to jest NODE.JS? Nowoczesne środowisko programistyczne Node.js Co to jest NODE.JS? Nowoczesne środowisko programistyczne Środowisko programistyczne w sensie zestawu gotowych klas i metod których można używać do przygotowania własnych skalowalnych i wydajnych

Bardziej szczegółowo

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

PROJEKTOWANIE APLIKACJI INTERNETOWYCH PROJEKTOWANIE APLIKACJI INTERNETOWYCH (WFAIS.IF-N016) dr inż. Marcin Zieliński Wykład dla kierunku: Informatyka Stosowana I rok, II stopień Rok akademicki: 2016/2017 - semestr letni WYKŁAD 6 Przypomnienie

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS)

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS) Zaawansowane Techniki WWW (HTML, CSS i NODE.JS) Dr inż. Marcin Zieliński Środa 15:30-17:00 sala: A-1-04 WYKŁAD 8 Wykład dla kierunku: Informatyka Stosowana II rok Rok akademicki: 2014/2015 - semestr zimowy

Bardziej szczegółowo

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne: Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: oraz systemy CMS (Content Menager System): Dlaczego

Bardziej szczegółowo

Modele danych walidacja widoki zorientowane na model

Modele danych walidacja widoki zorientowane na model Modele danych walidacja widoki zorientowane na model 1. Wprowadzenie Modele danych Modele danych w ASP.NET MVC to klasy znajdujące się w katalogu Models. Ich zadaniem jest mapowanie danych przesyłanych

Bardziej szczegółowo

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI SPIS TREŚCI 1.Dwie metody przekazu danych do serwera 2 2.Metoda GET przykład 3 3.Metoda POST przykład 4 4.Kiedy GET a kiedy POST 5 5.Szablony po co je stosować 7 6.Realizacja szablonu własną funkcją 8

Bardziej szczegółowo

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

Ajax. 1. Wprowadzenie. 2. Aplikacja serwerowa

Ajax. 1. Wprowadzenie. 2. Aplikacja serwerowa Ajax 1. Wprowadzenie Do tej pory każda akcja na Waszej stronie kończyła się nowym requestem do serwera i przeładowaniem całej strony w przeglądarce. W tej instrukcji dodamy elementy asynchroniczne na stronie,

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP. Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, obsługa formularzy oraz zmiennych

Bardziej szczegółowo

MVC w praktyce tworzymy system artykułów. cz. 2

MVC w praktyce tworzymy system artykułów. cz. 2 MVC w praktyce tworzymy system artykułów. cz. 2 W drugiej części artykułu o wzorcu MVC stworzymy część skryptu, odpowiedzialną za obsługę kategorii. Tworzymy kontroler kategorii Na początek stwórzmy plik

Bardziej szczegółowo

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów A Zasady współpracy Ocena rozwiązań 3.0 25 40 punktów 3.5 41 65 punktów 4.0 66 80 punktów 4.5 81 100 punktów 5.0 101 130 punktów Warunki zaliczenia przedmiotu Student uzyska ocenę zaliczającą (3.0) o ile

Bardziej szczegółowo

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji

Bardziej szczegółowo

Quiz Aplikacja internetowa

Quiz Aplikacja internetowa - 1 - Quiz Aplikacja internetowa Opis: Realizacja aplikacji internetowej Quiz w oparciu o Python i framework Flask (wersja 0.10.1). Autorzy: Tomasz Nowacki, Robert Bednarz Czas realizacji: 90 min Poziom

Bardziej szczegółowo

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5 Politechnika Wrocławska Wydział Podstawowych Problemów Techniki Technologie sieciowe Sprawozdanie z labolatorium Lista 5 Autor: Piotr Kosytorz IIrokInf. indeks: 166174 Prowadzący: dr inż. Łukasz Krzywiecki

Bardziej szczegółowo

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

WYKŁAD 1 ANGULARJS CZĘŚĆ 1 WYKŁAD 1 ANGULARJS CZĘŚĆ 1 DEFINICJA ANGULARJS Framework JavaScript na licencji open-source wykorzystywany do tworzenia aplikacji SPA (single page applications) w oparciu o wzorzec projektowy Model-View-Controler.

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,

Bardziej szczegółowo

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery Łukasz Bartczuk Moduł 6 JavaScript w przeglądarce Agenda Skrypty na stronie internetowej Model DOM AJAX Skrypty na stronie

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

Laboratorium 6 Tworzenie bloga w Zend Framework

Laboratorium 6 Tworzenie bloga w Zend Framework Laboratorium 6 Tworzenie bloga w Zend Framework Przygotowanie bazy danych 1. Wykonaj skrypt blog.sql, który założy w bazie danych dwie tabele oraz wpisze do nich przykładowe dane. Tabela blog_uzytkownicy

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,

Bardziej szczegółowo

Laboratorium 1 Wprowadzenie do PHP

Laboratorium 1 Wprowadzenie do PHP Laboratorium 1 Wprowadzenie do PHP Ćwiczenie 1. Tworzenie i uruchamianie projektu PHP w Netbeans Tworzenie projektu Uruchom środowisko NetBeans. Stwórz nowy projekt typu PHP Application (File->New Project,

Bardziej szczegółowo

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar) Tworzenie witryn internetowych PHP/Java (mgr inż. Marek Downar) Rodzaje zawartości Zawartość statyczna Treść statyczna (np. nagłówek, stopka) Layout, pliki multimedialne, obrazki, elementy typograficzne,

Bardziej szczegółowo

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Aplikacje webowe z wykorzystaniem Node.js oraz Express Aplikacje webowe z wykorzystaniem Node.js oraz Express Adresaci szkolenia: Kurs przeznaczony jest dla programistów pragnących tworzyć skalowalne aplikacje z wykorzystaniem Node.js. Parametry szkolenia:

Bardziej szczegółowo

Spring Web MVC, Spring DI

Spring Web MVC, Spring DI Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Laboratorium 5 Spring Web MVC, Spring DI Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 Technologie Technologie / narzędzia będące

Bardziej szczegółowo

Angular, cz. II. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński rperlinski@icis.pcz.pl

Angular, cz. II. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński rperlinski@icis.pcz.pl ngular, cz. II 1/24 Angular, cz. II Tworzenie serwisów Web 2.0 dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej 10 kwietnia 2015

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Zaawansowane aplikacje internetowe

Zaawansowane aplikacje internetowe Zaawansowane aplikacje internetowe AJAX 1 Celem tego laboratorium jest pokazanie moŝliwości technologii AJAX. W ramach ćwiczeń zostanie zbudowana prosta aplikacja, przechwytująca kliknięcia uŝytkownika

Bardziej szczegółowo

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień 2009. Uniwersytet Warszawski

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień 2009. Uniwersytet Warszawski Uniwersytet Warszawski 6 kwiecień 2009 Spis Treści 1 MVC Jak to wygląda w JavascriptMVC 2 Prawie jak klasy 3 Hierarchia Widoki Kontrolery Modele 4 Struktura katalogów Generatory kodu Generatory dokumentacji

Bardziej szczegółowo

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework mgr inż. Łukasz Stefanowicz dr inż.

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Program szkolenia: Przygotowanie do nowoczesnego programowania po stronie przeglądarki (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:

Bardziej szczegółowo

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2 1. Instalacja serwera WWW Aby zainstalować serwer WWW w systemie Linux, należy wykorzystać menedżer pakietów apt-get. Polecenia które należy wpisać w terminalu użytkownika root 1 : apt-get install build-essential

Bardziej szczegółowo

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Statyczne strony HTML Wczytanie statycznej strony HTML sprowadza się do odebrania żądania przez serwer, odnalezienia właściwego pliku

Bardziej szczegółowo

Aplikacje internetowe - laboratorium

Aplikacje internetowe - laboratorium Aplikacje internetowe - laboratorium PHP Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej opartej o język PHP. Aplikacja ilustruje takie mechanizmy jak: obsługa formularzy oraz obsługa

Bardziej szczegółowo

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

PROJEKTOWANIE APLIKACJI INTERNETOWYCH PROJEKTOWANIE APLIKACJI INTERNETOWYCH LABORATORIUM NR 2 REJESTRACJA NA WEBRATIO.COM 1. Wejdź na webratio.com i zarejestruj konto na uczelniany adres email (@wi.zut.edu.pl). 2. Po wpisaniu danych i zatwierdzeniu,

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

2 Podstawy tworzenia stron internetowych

2 Podstawy tworzenia stron internetowych 2 Podstawy tworzenia stron internetowych 2.1. HTML5 i struktura dokumentu Podstawą działania wszystkich stron internetowych jest język HTML (Hypertext Markup Language) hipertekstowy język znaczników. Dokument

Bardziej szczegółowo

Express.js i własne API - pomoc do lab02

Express.js i własne API - pomoc do lab02 xpress.js i własne API - pomoc do lab02 1/27 Express.js i własne API - pomoc do lab02 Tworzenie serwisów Web 2.0 dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki

Bardziej szczegółowo

Podstawy wzorca MVC 2011-10-18 MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.

Podstawy wzorca MVC 2011-10-18 MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę. Podstawy wzorca MVC MODEL KON- TROLER WIDOK Zawiera dane aplikacji oraz jej logikę. MODEL WIDOK Odpowiada za wyświetlenie danych użytkownikowi KON- TROLER KON- TROLER MODEL WIDOK Jedyna część aplikacji,

Bardziej szczegółowo

Programowanie i projektowanie obiektowe

Programowanie i projektowanie obiektowe Programowanie i projektowanie obiektowe CherryPy, Genshi Paweł Daniluk Wydział Fizyki Jesień 2016 P. Daniluk(Wydział Fizyki) PO w. IX Jesień 2016 1 / 20 Aplikacje webowe Podejście standardowe Serwer (np.

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 14 AJAX, czyli jak odświeżyć bez odświeżania, część trzecia Na dzisiejszych zajęciach będziemy kontynuować realizację serwisu do wymiany wiadomości z wykorzystaniem technologii

Bardziej szczegółowo

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji: Technologia wykonania projektu: HTML5 Javascript: o jquery (1.9.1), o CreateJS (0.6.1): EaselJS, TweenJS, PreloadJS. Części funkcjonalne projektu: Strona internetowa pliki strony internetowej zlokalizowane

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych

Bardziej szczegółowo

Zajęcia 4 - Wprowadzenie do Javascript

Zajęcia 4 - Wprowadzenie do Javascript Zajęcia 4 - Wprowadzenie do Javascript Co to jest Javascript Javascript jest językiem skryptowym pozwalającym na dołączanie dodatkowej funkcjonalności do stron WWW. Jest ona najczęściej związana z modyfikacją

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP + bazy danych Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, współpraca PHP z bazami

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej JSP - Java Server Pages dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2019 Aplikacje i skrypty WWW klasyfikacja

Bardziej szczegółowo

Wykład 03 JavaScript. Michał Drabik

Wykład 03 JavaScript. Michał Drabik Wykład 03 JavaScript Michał Drabik Język programowania wykorzystywany na stronach internetowych głównie w celu umożliwienia interakcji z użytkownikiem. Kod JavaScript może być umieszczany w kodzie XHTML

Bardziej szczegółowo

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

Bardziej szczegółowo

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia Kod szkolenia: Tytuł szkolenia: DED/FSJS Full Stack JavaScript z Angular i Nest Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest dla programistów posiadających podstawową wiedzę w zakresie JavaScript,

Bardziej szczegółowo

ASP.NET MVC. Grzegorz Caban grzegorz.caban@gmail.com. 20 stycznia 2009

ASP.NET MVC. Grzegorz Caban grzegorz.caban@gmail.com. 20 stycznia 2009 ASP.NET MVC Grzegorz Caban grzegorz.caban@gmail.com 20 stycznia 2009 Agenda Przyczyna powstania Co to jest ASP.NET MVC Architektura Hello World w ASP.NET MVC ASP.NET MVC vs ASP.NET WebForm Przyszłość framework'a

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

5.4. Tworzymy formularze

5.4. Tworzymy formularze 5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania

Bardziej szczegółowo

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji src/ - folder zawiera cały kod PHP aplikacji

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji src/ - folder zawiera cały kod PHP aplikacji Baza danych i ORM Projekt zestaw usług dostępnych pod daną domeną. Aplikacja niezależnie działające programy/serwisy (w obrębie pojektu). Zwyczajowo projekt posiada dwie aplikacje: Frontend Backend Moduł

Bardziej szczegółowo

Bazy danych i strony WWW

Bazy danych i strony WWW Bazy danych i strony WWW Obsługa baz danych poprzez strony WWW Niezbędne narzędzia: serwer baz danych np. MySQL serwer stron WWW np. Apache przeglądarka stron WWW interpretująca język HTML język skryptowy

Bardziej szczegółowo

media Blitz wydajne sytemy szablonów

media Blitz wydajne sytemy szablonów Blitz wydajne sytemy szablonów Dlaczego stosować szablony? MVC Kontroler Model Widok Co to jest Blitz? Rozszerzenie PHP stworzone przez Alexey A. Rybak a. Regularnie rozwijany od 2005 roku. Szybki i lekki

Bardziej szczegółowo

Klient poczty elektronicznej - Thunderbird

Klient poczty elektronicznej - Thunderbird Klient poczty elektronicznej - Thunderbird Wstęp Wstęp Klient poczty elektronicznej, to program który umożliwia korzystanie z poczty bez konieczności logowania się na stronie internetowej. Za jego pomocą

Bardziej szczegółowo

INSTALACJA I KONFIGURACJA SERWERA PHP.

INSTALACJA I KONFIGURACJA SERWERA PHP. LABORATORIUM 0 INSTALACJA I KONFIGURACJA SERWERA PHP. W celu poprawnego wykonywania zadań na laboratorium konieczne jest zainstalowanie na komputerze wyposażonym w system operacyjny Windows następujących

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta

Bardziej szczegółowo

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript Kod szkolenia: Tytuł szkolenia: HTML5/ANG Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript Dni: 5 Opis: Adresaci szkolenia: Kurs przeznaczony jest dla programistów

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Rys.2.1. Drzewo modelu DOM [1]

Rys.2.1. Drzewo modelu DOM [1] 1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA 2.1. DOM model

Bardziej szczegółowo

Zadanie programistyczne nr 3 z Sieci komputerowych

Zadanie programistyczne nr 3 z Sieci komputerowych Zadanie programistyczne nr 3 z Sieci komputerowych 1 Opis zadania Celem tego zadania jest napisanie prostego serwera WWW, wyświetlającego strony z zadanego katalogu. W tym celu wykonaj następujące czynności

Bardziej szczegółowo

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11 Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET

Bardziej szczegółowo

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP Baza danych i ORM Struktura Bundle app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP src/ - folder zawiera cały kod PHP aplikacji vendor/

Bardziej szczegółowo

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017 Wykład 7 25 kwietnia 2017 Dokumentowanie kodu Program javadoc Java jest wyposażona w generator dokumentacji który na podstawie odpowiednio napisanych komentarzy w kodzie programu (które jednak nie sa konieczne),

Bardziej szczegółowo

Zaawansowane aplikacje internetowe laboratorium REST

Zaawansowane aplikacje internetowe laboratorium REST Zaawansowane aplikacje internetowe laboratorium REST Pytka Bartosz, Drożdż Mateusz, Ejkszto Mateusz, Łozowski Marcin, Tański Mariusz Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne

Bardziej szczegółowo

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod: 1. Listener dla przycisku. Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod: W linii 24 tworzymy globalną metodę mglobal_onclicklistener,

Bardziej szczegółowo

Facelets ViewHandler

Facelets ViewHandler JSF i Facelets Wprowadzenie JSP (JavaServer Pages) są natywną i najczęściej używaną technologią do tworzenia warstwy prezentacyjnej dla JSF (JavaServer Faces) Istnieją alternatywne technologie opisu wyglądu

Bardziej szczegółowo

Tworzenie i wykorzystanie usług sieciowych

Tworzenie i wykorzystanie usług sieciowych Ćwiczenie 14 Temat: Tworzenie i wykorzystanie usług sieciowych Cel ćwiczenia: W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi sieciowej w technologii ASP.NET oraz nauczy się tworzyć

Bardziej szczegółowo

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

Bardziej szczegółowo

Wprowadzenie. 1. Terminal WebRTC. LABORATORIUM 5: WebRTC komunikacja między terminalami.

Wprowadzenie. 1. Terminal WebRTC. LABORATORIUM 5: WebRTC komunikacja między terminalami. LABORATORIUM 5: WebRTC komunikacja między terminalami. Wprowadzenie Technika WebRTC (złożenie angielskiego słowa Web oraz akronimu RTC, pochodzącego od angielskiego Real-Time Communications, komunikacja

Bardziej szczegółowo

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

PROJEKTOWANIE APLIKACJI INTERNETOWYCH PROJEKTOWANIE APLIKACJI INTERNETOWYCH (WFAIS.IF-N016) dr inż. Marcin Zieliński Wykład dla kierunku: Informatyka Stosowana I rok, II stopień Rok akademicki: 2016/2017 - semestr letni WYKŁAD 2 Przypomnienie

Bardziej szczegółowo

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy

Bardziej szczegółowo

Technologie informacyjne lab. 4

Technologie informacyjne lab. 4 Technologie informacyjne lab. 4 Cel ćwiczenia: Zapoznanie się z komunikacją ze zdalnym serwerem w sieci na przykładzie bezpiecznego serwera SSH. Wstępne zapoznanie się z ideą certyfikatów. Praca z edytorem

Bardziej szczegółowo

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych Widoki zagnieżdżone, layout 1. Wprowadzenie Repozytoria danych Identyczne operacje na danych często się powtarzają np. pobierz książkę. Jeśli zapytanie realizowane jest za każdym razem w metodzie kontrolera

Bardziej szczegółowo

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.

Bardziej szczegółowo

KUP KSIĄŻKĘ NA: PRZYKŁADOWY ROZDZIAŁ KOMUNIKATY DLA UŻYTKOWNIKA

KUP KSIĄŻKĘ NA:   PRZYKŁADOWY ROZDZIAŁ KOMUNIKATY DLA UŻYTKOWNIKA KUP KSIĄŻKĘ NA: WWW.PRAKTYCZNEPHP.PL PRZYKŁADOWY ROZDZIAŁ KOMUNIKATY DLA UŻYTKOWNIKA KOMUNIKATY DLA UŻYTKOWNIKA W większości aplikacji potrzebujesz mieć możliwość powiadomienia użytkownika o rezultacie

Bardziej szczegółowo

Instrukcja obsługi narzędzia API

Instrukcja obsługi narzędzia API Instrukcja obsługi narzędzia API 2012 1. Podstawowe informacje Aby umożliwić maksymalną integrację systemów i stron partnerów z naszym systemem, stworzyliśmy specjalne API, które umożliwia generowanie

Bardziej szczegółowo

Wprowadzenie do framework a Symfony

Wprowadzenie do framework a Symfony Wprowadzenie do framework a Symfony mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Bazuje na wzorcu projektowym MVC Niezależność od systemu bazodanowego Programowanie zorientowane

Bardziej szczegółowo

Programowanie Komponentowe WebAPI

Programowanie Komponentowe WebAPI Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //... JQuery jquery (jquery.com) to jedna z najbardziej popularnych bibliotek/frameworków do javascript. Jej popularność oczywiście znikąd się nie bierze. Dzięki tej bibliotece jesteśmy w stanie o wiele szybciej

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

MVC w praktyce tworzymy system artykułów. cz. 1

MVC w praktyce tworzymy system artykułów. cz. 1 MVC w praktyce tworzymy system artykułów. cz. 1 Tworząc różnego rodzaju aplikacje natrafiamy na poważny problem utrzymania dobrej organizacji kodu przejrzystej oraz łatwej w rozbudowie. Z pomocą przychodzą

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Środowisko Django początki 10 stycznia 2014 Plan wykładu 1 2 Plan wykładu 1 2 Co to jest Django Oparty o Pythona framework do tworzenia aplikacji internetowych. Co to jest Django Oparty o Pythona framework

Bardziej szczegółowo

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8 Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem

Bardziej szczegółowo