PROJEKTOWANIE APLIKACJI INTERNETOWYCH
|
|
- Julian Karpiński
- 7 lat temu
- Przeglądów:
Transkrypt
1 PROJEKTOWANIE APLIKACJI INTERNETOWYCH (WFAIS.IF-N016) dr inż. Marcin Zieliński Wykład dla kierunku: Informatyka Stosowana I rok, II stopień Rok akademicki: 2016/ semestr letni WYKŁAD 6
2 Przypomnienie JavaScript 6 (ECMA 6) - c.d. - wyrażenia interpolowane, - operator rozproszenia/reszty, - iteratory, - nowy typ danych: Symbol, - pętla for-of, - moduły, - klasy.
3 JavaScript (JS) - ECMA6 Wyrażanie interpolowane (literały szablonów łańcuchowych): Wraz z wprowadzeniem ES6, w standardzie języka pojawiły się znane z niektórych języków szablonów np. Jade (Pug), wyrażenia interpolowane. Są to wyrażenia będące stringami w których możemy umieszczać zmienne, których wartość jest ustalana w momencie interpretacji kodu. Przykład (jak było w ES5): var imie = "Jan"; var witaj = "Czesc " + imie + "!"; console.log(witaj); // Czesc Jan! Przykład ES6: var imie = "Jan"; var witaj = `Czesc ${imie!`; console.log(witaj); // Czesc Jan! Szablon wyrażenia interpolowanego umieszczamy w języku JavaScript 6 pomiędzy tzw. apostrofami odwrotnymi: ` ` Zaletą wyrażeń interpolowanych jest to że można zapisywać je w wielu linijkach i będą traktowane jako jedno wyrażenie. Zakres działania wyrażeń interpolowanych zależy tylko o kontekstu wywołania tak jak jest to w przypadku zmiennych.
4 JavaScript (JS) - ECMA6 Wyrażanie interpolowane (literały szablonów łańcuchowych): var tekst = `To jest naprawde długie tekst pisany w wielu linijkach ale odczytywany w formie jednego wyrażenia.`; console.log(tekst); // To jest naprawde długie tekst pisany w wielu linijkach ale odczytywany w formie jednego wyrażenia. Wewnątrz wyrażeń interpolowanych można umieszczać: zmienne, wywołania funkcji, oraz inne wyrażenia interpolowane. function upper(text){ return text.touppercase(); var imie = "Jan"; var info = `To jest pierwsze ${upper("wywolanie") tej funkcji przez ${upper(`${imiea`)`; // To jest pierwsze WYWOLANIE tej funkcji przez JANA. console.log(info);
5 JavaScript (JS) - ECMA6 Operator rozproszenia/reszty... (trzech kropek) : Działanie tego operatora zależy od kontekstu: gdy jest używany w stosunku do tablic (a w ogólności każdego obiektu iterowanego), powoduje on rozproszenie wartości tego obiektu na poszczególne składniki. Przykład zastosowania operatora rozproszenia: function foo(a,b,c){ console.log(a,b,c); foo(...[1,2,3]); // 123 var tab1 = [11,12,13]; var tab2 = [10,...tab1,14]; Tu działanie operatora rozproszenia pełni tą samą rolę co metoda concat() dla tablic. console.log(tab2); // [10,11,12,13,14]
6 JavaScript (JS) - ECMA6 Operator rozproszenia/reszty... (trzech kropek) : Drugim zastosowaniem operatora... jest w zasadzie odwrotne: zbiera wszystkie wartości i umieszcza je w tablicy: Przykład zastosowania operatora reszty: function foo(a,b,...c){ console.log(a,b,c); W tym przypadku operator zbiera wszystkie argumenty przekazane do funkcji poza dwoma pierwszymi i zapisuje je do wspólnej tablicy. foo(10,11,12,13,14); // [12,13,14] function foo(...a){ console.log(a); Kiedy nie ma innych argumentów to wszystkie podane parametry zostaną zapisane do tablicy. foo(10,11,12,13,14); // [10,11,12,13,14]
7 JavaScript (JS) - ECMA6 Pętla wyliczeniowa for of : Jedną z nowości w ES6 jest pętla pozwalająca na wyliczenie wartości z tablic. Do tej pory dostępna była tylko pętla for in : // Deklaracja prostej tablicy var tab = ["a","b","c","d","e","f"]; Pętla for-in for (let i in tab){ console.log( i ); // Pętla for-of for (let i of tab){ console.log( i ); // a b c d e f Zwykłe obiekty nie nadają się do wykorzystania w pętlach for-of ponieważ nie posiadają Obiekt na którym operuje pętla for-of musi być iterowalny, lub musi być możliwość skonwertowania takiego obiektu do postaci iterowalnej tzn. obiektu domyślnych który jest iteratorów. w stanie wygenerować iterator, który może zostać użyty przez pętlę. W JavaScript są to np. typy wbudowane: tablice, łańcuchy znaków, generatory, kolekcje.
8 JavaScript (JS) - ECMA6 Nowy typ danych Symbol: Wraz z ES6 do standardu JS wprowadzono nowy prosty typ danych tzw: symbol: var s = Symbol("To jest nowy typ danych"); typeof s; // symbol Cechy typu Symbol: - nie posiada swojej formy literałowej (inne typy proste posiadają). - w deklaracjach Symbol nie można używać operatora new, ponieważ Symbol nie jest konstruktorem, zatem obiekt nie zostanie utworzony. - parametr przekazany w deklaracji Symbol powinien być łańcuchem znakowym (z opisem przeznaczenia symbolu), jest jednak opcjonalny. - dzięki wykorzystaniu metody typeof możemy sprawdzić czy mamy do czynienia z symbolem. - służą do tworzenia łańcuchów znakowych które nie będą kolidowały z innymi wartościami w programie.
9 JavaScript (JS) - ECMA6 Iteratory: Są to wzorce służące do pobierania danych ze źródła w sposób sekwencyjny na żądanie (jest to wzorzec programowania znany z innych języków). W ES6 został wprowadzony niejawny standaryzowany interfejs iteratorów, który może zostać wykorzystany w wbudowanych strukturach danych JS. var tablica = [1,2,3]; var idx = tablica[symbol.iterator](); Wykonanie Symbol.iterator na rzecz tablicy spowoduje zwrócenie iteratora. console.log(idx.next()); console.log(idx.next()); console.log(idx.next()); console.log(idx.next()); // { value: 1, done: false // { value: 2, done: false // { value: 3, done: false // { value: undefined, done: true Dlaczego iterator dla wartości 3 nie przypisał własności done na true?? Natomiast metoda next() jest składową interfejsu Iteratora która zwraca kolejną wartość z iterowanego obiektu. Przyjęta konwencja dla wbudowanych iteratorów, zakłada że wywołanie metody next() dla zakończonego iteratora nie powoduje zgłoszenia błędu tylko zwrot wartości: {value: undefined, done: true
10 JavaScript (JS) - ECMA6 Organizacja kodu: Moduły W ES6 tworzenie modułów oparte jest na plikach oraz wykorzystuje się do tego celu dwa słowa kluczowe export i import. Słowo kluczowe export jest wykorzystywane do określenia listy eksportowanych powiązań. Można w zasadzie uznać, że jest operatorem udostępniania modułu. Przykłady: export var a = 5; export function test(){ var tab = [1,2,3]; export { tab ; Eksporty poszczególnych elementów. var a = 5; var b = 7; function test(){ var tab = [1,2,3]; export { a, test, tab ; Eksport wszystkich powiązań jednocześnie. Wszystko co nie zostanie wyeksportowane jest prywatne, a nie jak by się wydawało zmienną globalną.
11 JavaScript (JS) - ECMA6 Organizacja kodu: Moduły Aby w programie głównym pobrać moduł i móc posługiwać się udostępnionymi przez niego metodami składowymi, musimy dołączyć taki moduł korzystając z operatora import. Podobnie jak w przypadku eksportowania istnieją różnice w użyciu poszczególnych form składniowych. export var a = 5; function komunikat(){ console.log( Witaj ); export { komunikat, a ; import { komunikat, a from plik ; Eksport Import Łańcuch znakowy plik na końcu definicji importu jest tzw. specyfikatorem modułu, określającą lokalizację danego modułu. Może to być adres URL bądź ścieżka dostępu do pliku w lokalnym systemie. Nazwy identyfikatorów podane w imporcie muszą odpowiadać dokładnie nazwą podanym w eksporcie. Uwaga: Specyfikator modułu musi być łańcuchem znakowym i nie może być przekazany jako zwykła zmienna zawierająca łańcuch znakowy! var nazwa = plik ; import { komunikat, a from nazwa; // ERROR / BŁĄD!!!
12 JavaScript (JS) - ECMA6 Organizacja kodu: Klasy Organizacja kodu w JavaScript do wersji ES6 oparta była o literały obiektowe lub funkcje, które spełniały rolę indywidualnego opakowania na daną funkcjonalność. Można było uznać nawet że dzięki istnieniu operatora new oraz instanceof, te formy przypominały specyficznie funkcjonujące klasy. Wraz z specyfikacją ECMA6, usystematyzowano zagadnienie opakowywania funkcjonalności dzięki wprowadzeniu zakresu określanego słowem kluczowym class. Nowy mechanizm tworzenia klas pozwala określenie bloku kodu, którego zawartość definiuje składowe prototypu funkcji. Przykład: class Komunikat { constructor(a,b){ this.x = a; this.y = b; Wypisz() { console.log( this.x + this.y ); ; Zapis class powoduje utworzenie funkcji, podobnie jak było to robione poprzednio przy określaniu zakresu bloku funkcjonalności. Konstruktor określa sygnaturę stworzonej funkcji. Metody składowe są tworzone tak jak w przypadku tworzenia funkcji w literałach obiektowych. Wewnątrz klasy metod nie oddzielamy przecinkami!!!
13 JavaScript (JS) - ECMA6 Organizacja kodu: Klasy Porównanie nowego zapisu klasowego z poprzednim standardem literałowym: class Komunikat { constructor(a,b){ this.x = a; this.y = b; Wypisz() { console.log( this.x + this.y ); ; function Komunikat(a,b){ this.x = a; this.y = b; Komunikat.prototype.Wypisz = function(){ console.log( this.x + this.y ); var K = new Komunikat(5,6); K.x; K.y; K.Wypisz(); // 5 // 6 // 56 Przedstawione zapisy funkcjonalnie są tym samym, jednak występują pomiędzy nimi różnice: - w przypadku klasy tworzenie nowej instancji musi odbyć się za pomocą operatora new, w przypadku funkcji nie musi tak być. - użycie zapisu klasowego w zapisie globalnym tworzy w nim leksykalny identyfikator Komunikat, jednak w odróżnieniu od zapisu funkcyjnego nie wtworzy w globalnym obiekcie własności o tej nazwie.
14 Node.js + Express.js Express.js jest pakietem które pozwala na tworzenie aplikacji internetowych o architekturze MVC (serwisowej). Ułatwia obsługę żądań HTTP i wprowadza szerokie możliwości tworzenia aplikacji internetowych / sieciowych. > npm install express
15 Node.js Prosty serwer HTTP utworzony w Node.js: const http = require('http'); const hostname = ' '; const port = 3000; const server = http.createserver((req, res) => { res.statuscode = 200; res.setheader('content-type', 'text/plain'); res.end('hello World\n'); ); server.listen(port, hostname, () => { console.log(`server running at ); Po uruchomieniu tej aplikacji powstał serwer http oczekujący na żądania na porcie Po otrzymaniu żądania http serwer zwraca odpowiedź OK przesyłając do wyświetlenia zwykły tekst: Hello World, który jest widoczny w przeglądarce.
16 Node.js + Express.js //- plik app.js const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('hello World!') ); app.listen(3000, () => { console.log('serwer dziala na porcie 3000!') ); Prosta aplikacja napisana z użyciem Express.js nasłuchująca żądań na porcie 3000 i odsyłająca odpowiedź w postaci tekstu. Przedstawiony kod w zasadzie niczym nie różni się od prostego serwera HTTP. ma jednak kilka zalet.
17 Node.js Uruchamianie aplikacji za pomocą Node.js app.js Jeśli Node.js został zainstalowany globalnie na komputerze, jego uruchomienie polega na wywołaniu z konsoli polecenia: > node app.js Hello World
18 Aplikacja internetowa: model dynamiczny Model dynamiczny: Użytkownik JavaScript Żądanie HTTP Serwer HTTP Serwer aplikacji Interfejs użytkownika HTML CSS AJAX Odpowiedź HTTP: XML JSON Aplikacja Sieć Dane 1. Przeglądarka (użytkownik poprzez GUI) wysyła żądanie wyświetlenia treści HTML. 2. Strona zawiera skrypt JavaScript który jest odpowiedzialny za wyświetlenie podstawowej struktury HTML. 3. JavaScript wykonuje żądanie AJAX do serwera HTTP, w celu pobrania zawartości za pomocą API serwera aplikacji. 4. Serwer aplikacji pobiera żądane dane z modelu danych (np. bazy SQL). 5. Następnie serwer aplikacji odsyła dane do klienta w formacie np. JSON lub XML. 6. Silnik AJAX otrzymuje te informacje, skrypt JavaScript wykorzystując te informacje, modyfikuje DOM strony HTML w celu wyświetlenia pobranej zawartości.
19 Wzorce projektowe - MVC Model-View-Controller (MVC) [Model-Widok-Kontroler] - jest to wzorzec projektowy (podejście które jest bazą w oparciu o którą tworzymy aplikację), dzielący projektowaną aplikację na trzy warstwy: - Model (dane / logika) - Widok (prezentacja danych) - Kontroler (interakcja z użytkownikiem + sterowanie aplikacją) MODEL VIEW CONTR OLLER Można go zaimplementować bez użycia bibliotek czy specjalistycznych platform programistycznych, stosując jasne reguły podziału na konkretne komponenty w kodzie źródłowym. W ten sposób każdy komponent aplikacji można niezależnie od siebie rozwijać, implementować i testować.
20 Wzorce projektowe - MVC Jak działa MVC? 1. Użytkownik wykonuje (określoną) czynność w aplikacji. 2. Wyzwalana jest procedura obsługi zdarzenia (wywołanego przez użytkownika) w kontrolerze. 3. Kontroler pozyskuje dane z modelu i następuje przekazuje je do widoku. 4. W widoku dane są prezentowane użytkownikowi. M C V Przykład synchroniczny czat: 1. Użytkownik wpisuje wiadomość na czacie. 2. Wyzwalana jest procedura obsługi przekazania wiadomości. 3. Kontroler komunikuje się z modelem i zapisuje nową wiadomość. 4. Kontroler uaktualnia widok 5. Użytkownik widzi nową wiadomość w oknie czatu.
21 Node.js + Express.js //- plik app.js const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('hello World!') ); Dołączenie modułu Express.js Wywołanie metody obsługi żądania HTTP app.listen(3000, () => { console.log('serwer dziala na porcie 3000!') ); Uruchomienie serwera nasłuchującego żądań na porcie 3000 Kod powyżej umożliwia uruchomienie serwera HTTP oraz obsługę żądań przychodzących od klientów. Obsługa żądań odbywa się za pomocą tzw. trasowania, tzn. uzależnienie wykonania określonej czynności przez serwer od wprowadzenia poprawnego adresu URL. Każdy adres URL powinien (trasa) powinna obsługiwać jedną czynność. Czynności jakie mogą zostać podjęte w wyniku przyjścia żądania to najczęściej odesłanie klientowi określonego żądanego zasobu w postaci pliku HTML lub danych w postaci pliku JSON.
22 Generator Express.js Express.js jest modułem pozwalającym na tworzenie aplikacji w oparciu o architekturę MVC. Dla ułatwienia na początku możemy utworzyć (wygenerować) szkielet projektu który następnie możemy samodzielnie rozbudowywać. Do tego celu służy narzędzie zwane: express-generator. Aby wygenerować szkielet nowego projektu należy: 1. Utworzyć nowy katalog projektu: > mkdir test 2. Na utworzonym katalogu wykonać polecenie: > express test 3. Wejść do katalogu i wykonać w nim polecenie: > cd test && npm install 4. Uruchomić aplikację node/express: > npm start W tym kroku tworzona jest struktura kartotek oraz pliki z szkieletem aplikacji. Instalowanie niezbędnych modułów. Uruchomienie serwera HTTP
23 Generator Express.js Generator po zakończeniu działania tworzy w pełni działającą aplikację MVC gotową do uruchomienia. Struktura kartotek jest następująca: MODEL CONTR OLLER VIEW Uwaga: Brak wyodrębnionego modelu w szkielecie projektu. Logikę biznesową danej aplikacji należy zaprojektować i następnie zaimplementować w ramach szkieletu.
24 Generator Express.js Generator po zakończeniu działania tworzy w pełni działającą aplikację MVC gotową do uruchomienia. Struktura kartotek jest następująca: Plik zawierający informację o aplikacji oraz wszystkie niezbędne zależności dodatkowych modułów. Główny plik aplikacji app.js Kartoteka plików publicznych (dostępnych dla klienta) Kartoteka z plikami tras Kartoteka z plikami widoku Pliki uruchomieniowe serwera HTTP
25 Generator Express.js Strona widoczna po uruchomieniu aplikacji 0 Po uruchomieniu aplikacja działa jako serwer HTTP nasłuchujący na adresie IP: oraz standardowym porcie 3000
26 Generator Express.js Uruchomienie aplikacji Konsola wywołanych żądań przychodzących do serwera HTTP Komunikaty wyświetlane w konsoli serwera HTTP Po uruchomieniu aplikacja działa jako serwer HTTP nasłuchujący na adresie IP: oraz standardowym porcie 3000
27 Generator Express.js Przykład implementacji modułu w ramach projektu Express: 1. Tworzymy w ramach projektu dodatkową kartotekę np. o nazwie modules w której będziemy przechowywać elementy logiki biznesowej (moduły): > mkdir modules && cd modules 2. Tworzymy odpowiedni plik modułu, który następnie udostępniamy poprzez obiekty exports i modules (użyjmy poprzedniego przykładu z kalkulatorem): class Kalkulator { constructor(a,b){ this.x = a; this.y = b; Dodaj() { return this.x + this.y; Odejmij() { return this.x - this.y; ; module.exports = Kalkulator; Plik o nazwie kalkulator.js" zlokalizowany w katalogu: modules.
28 Generator Express.js Przykład implementacji modułu w ramach projektu Express: 3. W pliku kontrolera głównego (jeśli to w nim chcemy skorzystać z modułu) importujemy nowy moduł. Następnie w ramach obsługi jednej z tras wykorzystujemy funkcjonalności stworzonego modułu: var express = require('express'); var router = express.router(); const Kalkulator = require(../modules/kalkulator.js ); /* GET home page. */ router.get('/', function(req, res, next) { var k = new Kalkulator(4,5); var d = k.dodaj(); res.render('index', { wynik: d ); ); module.exports = router;
29 Express.js { "name": "projekt0", "version": "0.0.0", "private": true, "scripts": { "start": "node./bin/www", "dependencies": { "body-parser": "~1.12.0", "cookie-parser": "~1.3.4", "debug": "~2.1.1", "ejs": "~2.3.1", "express": "~4.12.2", "morgan": "~1.5.1", "serve-favicon": "~2.2.0" Plik: package.json Podstawowe informacje o projekcie Skrypt uruchomieniowy aplikacji Informacje o zależnościach (modułach) niezbędnych do działania aplikacji i ich wersjach Plik ten powstaje automatycznie w momencie generowania szkieletu projektu. Plik ten uaktualniany przy każdej instalacji dodatkowego modułu npm przez wydanie polecenia: > npm install nazwa_pakietu --save
30 Express.js #!/usr/bin/env node // Module dependencies. var app = require('../app'); var debug = require('debug')('projekt0:server'); var http = require('http'); // Get port from environment and store in Express. var port = normalizeport(process.env.port '3000'); app.set('port', port); // Create HTTP server. var server = http.createserver(app); // Listen on provided port, on all network interfaces. server.listen(port); server.on('error', onerror); server.on('listening', onlistening); Plik:./bin/www Plik tworzący serwer i obsługujący nasłuchiwanie żądań za pomocą protokołu HTTP Ustalenie portu na którym nasłuchuje serwer HTTP: domyślnie 3000 lub podany jako zmienna środowiskowa BASH Utworzenie serwera HTTP Uruchomienie nasłuchiwania
31 Express.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieparser = require('cookie-parser'); var bodyparser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); Plik: app.js Pliki tras kontrolera, wszystkie które znajdują się w kartotece routes var app = express(); // view engine setup app.set('views', path.join( dirname, 'views')); app.set('view engine', 'ejs'); // uncomment after placing your favicon in /public app.use(logger('dev')); app.use(bodyparser.json()); app.use(bodyparser.urlencoded({ extended: false )); app.use(cookieparser()); app.use(express.static(path.join( dirname, 'public'))); app.use('/', routes); app.use('/users', users); module.exports = app; Określenie języka szablonów oraz katalogu w którym się znajdują Definicja ścieżki do kartoteki public widocznej dla klienta Związanie plików kontrolerów z odpowiednimi trasami. Odwzorowanie adresów URL na strukturę katalogów
32 Express.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieparser = require('cookie-parser'); var bodyparser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); Plik: app.js Pliki tras kontrolera, wszystkie które znajdują się w kartotece routes var app = express(); // view engine setup app.set('views', path.join( dirname, 'views')); app.set('view engine', 'ejs'); // uncomment after placing your favicon in /public Zmienna przechowująca app.use(logger('dev')); informację o katalogu app.use(bodyparser.json()); projektu. app.use(bodyparser.urlencoded({ extended: false )); app.use(cookieparser()); app.use(express.static(path.join( dirname, 'public'))); app.use('/', routes); app.use('/users', users); module.exports = app; Określenie języka szablonów oraz katalogu w którym się znajdują Definicja ścieżki do kartoteki public widocznej dla klienta Związanie plików kontrolerów z odpowiednimi trasami. Odwzorowanie adresów URL na strukturę katalogów
33 Express.js var express = require('express'); var router = express.router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' ); ); module.exports = router; Plik: routes/index.js Pojedyncza tras obsługująca określone żądanie przychodzące od klienta. Odpowiedź na żądanie klienta jest formułowana za pomocą mechanizmu funkcji wywołania zwrotnego callback.
34 Express.js var express = require('express'); Plik: routes/index.js var router = express.router(); req - obiekt żądania przychodzącego od klienta /* GET home page. */ res - obiekt odpowiedzi (do klienta) router.get('/', function(req, res, next) { res.render('index', { title: 'Express' ); ); module.exports = router; Pojedyncza tras obsługująca określone żądanie przychodzące od klienta. Odpowiedź na żądanie klienta jest formułowana za pomocą mechanizmu funkcji wywołania zwrotnego callback. Najważniejszą rolę w kodzie powyżej spełnia obiekt router, który jest odpowiedzialny za trasowanie czyli obsługę wszystkich wywołań adresów URL. Każda trasa może posiadać jedną lub więcej funkcji obsługi trasy. W momencie rejestracji żądania router określa która funkcji obsługi trasy zostanie wykonana. Ogólna postać funkcji obsługi trasy wygląda następująco: router.metoda( TRASA, OBSŁUGA TRASY ) Metoda HTTP np. GET, POST, PUT, DELETE Trasa: adres URL żądania klienta Najczęściej wywołanie zwrotne realizujące określoną funkcjonalność.
35 Express.js Przykłady funkcji obsługi żądań: router.get('/', function (req, res) { res.send('hello World!'); ); router.post('/', function (req, res) { res.send('żądanie POST'); ); Funkcja obsługująca tą samą Funkcja trasę /, ale dla dwóch różnych możliwych metod HTTP. Bardzo często trasa w postaci adresu URL oraz metoda (np. GET) w literaturze określana jest jako END-POINT. router.put('/user', function (req, res) { ); res.send('żądanie PUT dla URL /user'); Funkcja Podobnie jak poprzednio dwie usługi END-POINT. router.delete('/user', function (req, res) { ); res.send('żądanie DELETE dla URL /user');
36 Express.js Pojęcie END-POINTU jest bardzo istotne z punktu widzenia tworzenia w przyszłości aplikacji o charakterze API (interfejsów). W typowych aplikacjach internetowych skrypty wykonywane po stronie klienta (w przeglądarce) komunikują się z serwerem asynchronicznie za pomocą wywołań kierowanych do odpowiednich endpointów. W Express.js nazwą trasy może być: (a) łańcuch znakowy, (b) wzorzec, (c) wyrażenie regularne. Znaki? +, * mają takie samo znaczenie jak w przypadku wyrażeń regularnych tj:? - wyrażenie występuje 0 lub 1 raz + - wyrażenie występuje 1 lub więcej razy * - wyrażenie występuje 0 lub więcej razy, albo zaczyna się od danego znaku Natomiast. oraz - są interpretowane jako elementy statyczne łańcuchów. Dodatkowo można używać nawiasów ( ) określania grupy znaków których mają dotyczyć pokazane kwantyfikatory. router.get( '/', function(){ ); router.get( '/test', function(){ );
37 Koniec wykładu 6
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ółowoExpress.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ółowoZaawansowane 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ółowoZAAWANSOWANE TECHNIKI WWW (zajęcia r. i r.)
ZAAWANSOWANE TECHNIKI WWW (zajęcia 18.11.2017 r. i 17.12.2017 r.) 1. Przygotowanie środowiska pracy back-end (Node.js) NodeJS (wersja LTS: 8.9.1) jest zaawansowanym środowiskiem do tworzenia skalowalnych
Bardziej szczegółowoserver.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ółowoPROJEKTOWANIE 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ółowoPopularne 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ółowoMEAN Stack - Node.js, express
EAN Stack - Node.js, express 1/48 MEAN Stack - Node.js, express Tworzenie serwisów Web 2.0 dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej i
Bardziej szczegółowoPLAN 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ółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowo1 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ółowoFull 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ółowoTworzenie 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ółowoTemat: 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ółowoObiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody
Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,
Bardziej szczegółowoEwolucja 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ółowoPHP: 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ółowoFunkcje i instrukcje języka JavaScript
Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje
Bardziej szczegółowoProgramowanie 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ółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych
Bardziej szczegółowoAplikacje 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ółowoEPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails
EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails Plan prezentacji Framework Rails Ruby on Rails podstawowe założenia DRY: nie powtarzaj się Ruby on Rails podstawowe założenia DRY: nie powtarzaj
Bardziej szczegółowoWprowadzenie. 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ółowoInformatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java
Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny
Bardziej szczegółowoREFERAT PRACY DYPLOMOWEJ
REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany
Bardziej szczegółowoWybrane 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ółowoPROJEKTOWANIE 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 1 Konsultacje
Bardziej szczegółowoPROJEKTOWANIE 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 3 Przypomnienie
Bardziej szczegółowoPrzygotowanie 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ółowoAJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5.
AJAX Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5. Czym jest AJAX? AJAX (Asynchronous JavaScript And XML) nie jest nową technologią, ale nowym sposobem wykorzystania kombinacji istniejących technologii
Bardziej szczegółowoMateriał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ółowoBudowa aplikacji ASP.NET z wykorzystaniem wzorca MVC
Akademia MetaPack Uniwersytet Zielonogórski Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Krzysztof Blacha Microsoft Certified Professional Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Agenda:
Bardziej szczegółowoAngular, 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ółowoUwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Bardziej szczegółowoTechnologie obiektowe
WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność
Bardziej szczegółowoTworzenie 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ółowoZrą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ółowoTOPIT 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ółowoInformatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.
Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity
Bardziej szczegółowoREFERAT 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ółowoWYKŁ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ółowoNależy ściągnąć oprogramowanie Apache na platformę
Programowanie Internetowe Język PHP - wprowadzenie 1. Instalacja Oracle+Apache+PHP Instalacja Apache, PHP, Oracle Programy i ich lokalizacja Oracle Database 10g Express Edition10.2 http://www.oracle.com/technology/products/database/
Bardziej szczegółowoPlan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy
Plan Podstawy narzędzia Application Builder, 2 budowa strony, kreatory Architektura Tworzenie Tworzenie formularza tabelarycznego Budowa strony 2 Architektura Aplikacja kolekcja stron połączonych ze sobą
Bardziej szczegółowoA 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ółowoKontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do
Sesje i ciasteczka Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika podczas jednej sesji
Bardziej szczegółowoJAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Bardziej szczegółowoProjektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz
Projektowanie oprogramowania Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz 1 Wykonanie czterowarstwowej aplikacji EE z dostępem do bazy danych,
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Bardziej szczegółowoProduktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i
Program szkolenia: Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Produktywne tworzenie aplikacji webowych z
Bardziej szczegółowoPodstawy 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ółowoJęzyk programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści
Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop. 2016 Spis treści Przedmowa 1 Stosowana notacja 1 1. Wprowadzenie 3 1.1. Konsola interaktywna języka Scala 3 1.2. Zmienne 5 1.3. Wartości
Bardziej szczegółowoSpring 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ółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce
Bardziej szczegółowoZaawansowane aplikacje internetowe
Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne
Bardziej szczegółowoZaawansowane 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ółowo1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Bardziej szczegółowoProgramowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Bardziej szczegółowoTypy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone
Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa
Bardziej szczegółowoPHP 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ółowoPROE 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ółowoRys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]
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 JavaScript tak
Bardziej szczegółowoPliki 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ółowoGenerated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów
System Szablonów System szablonów System szablonów to biblioteka, która pozwala oddzielić warstwę prezentacji od warstwy logicznej. Aplikacja WWW najpierw pobiera wszystkie dane, przetwarza je i umieszcza
Bardziej szczegółowoD:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44
Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne
Bardziej szczegółowoArchitektury Usług Internetowych. Laboratorium 2. Usługi sieciowe
Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache
Bardziej szczegółowoJQuery. $('#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ółowoForum Client - Spring in Swing
Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy
Bardziej szczegółowoTEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegółowoProgramowanie 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ółowoDokumentacja 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ółowoPlan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym
1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle
Bardziej szczegółowoInformacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy
Bardziej szczegółowoJęzyki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Bardziej szczegółowoProgramowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Bardziej szczegółowoTest przykładowy 2 PAI WSB Wrocław /06/2018
Imię i Nazwisko: Student ID: Part 1: (Prawda lub Fałsz (T lub F)) 15. Która z poniższych deklaracji funkcji jest nieprawidłowa: A. function Sum(a, b, c){; B. function Sum(var a, var b); C. function Sum(a){;
Bardziej szczegółowoSzablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Bardziej szczegółowoLaboratorium 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ółowoPodstawy programowania w języku JavaScript
Podstawy programowania w języku JavaScript Część piąta AJAX Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.siminskionline.pl Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych
Bardziej szczegółowoTworzenie Stron Internetowych. odcinek 10
Tworzenie Stron Internetowych odcinek 10 JavaScript JavaScript (ECMAScript) skryptowy język programowania powszechnie używany w Internecie. Skrypty JS dodają do stron www interaktywność i funkcjonalności,
Bardziej szczegółowoWalidacja danych w ASP.NET MVC
Walidacja danych w ASP.NET MVC 1. Prosta walidacja 2. Walidacja z Data Annotation public ActionResult Edit(Person person) bool blad = false; if(person.name.trim().length == 0) ViewData["Blad1"] = "Nazwisko
Bardziej szczegółowoPrzykład połączenie z bazą danych
Instalacja BPEL... 1 Przykład połączenie z bazą danych... 2 Development... 2 Utwórz Aplikację i projekt o typie SOA... 2 Utwórz adapter do bazy danych... 4 Utwórz proces BPEL... 7 Połącz BPEL z adapterem
Bardziej szczegółowoWarstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.
Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy
Bardziej szczegółowoPrzewodnik instalacji i rozpoczynania pracy. Dla DataPage+ 2013
Przewodnik instalacji i rozpoczynania pracy Dla DataPage+ 2013 Ostatnia aktualizacja: 25 lipca 2013 Spis treści Instalowanie wymaganych wstępnie komponentów... 1 Przegląd... 1 Krok 1: Uruchamianie Setup.exe
Bardziej szczegółowoJęzyk programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści
Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia
Bardziej szczegółowoZmienne i stałe w PHP
Zmienne i stałe w PHP Zmienne Zmienne to konstrukcje programistyczne, które pozwalają na przechowywanie danych. Każda zmienna posiada swoją nazwę oraz typ. Nazwa to jednoznaczny identyfikator, dzięki któremu
Bardziej szczegółowoWykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Bardziej szczegółowoOprogramowanie i wykorzystanie stacji roboczych. Wykład 4
Wykład 4 p. 1/1 Oprogramowanie i wykorzystanie stacji roboczych Wykład 4 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Obsługa sieci Wykład
Bardziej szczegółowoProgramowanie Obiektowe i C++
Programowanie Obiektowe i C++ Smalltalk Marcin Benke 15 stycznia 2007 Marcin Benke (MIMUW) Programowanie Obiektowe i C++ 15 stycznia 2007 1 / 26 Marcin Benke (MIMUW) Programowanie Obiektowe i C++ 15 stycznia
Bardziej szczegółowoBackend 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ółowoMateriały dla studentów Informatyki WSZiB w Krakowie
Tworzenie aplikacji w języku JavaScript Przedmiot: Aplikacje internetowe Dr inż. Stanisław Polak Wyższa Szkoła Zarządzania i Bankowości w Krakowie http://artemis.wszib.edu.pl/~polak/ Materiały dla studentów
Bardziej szczegółowo10. Programowanie obiektowe w PHP5
Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE
Bardziej szczegółowoZakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi
Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi 1 Rozdział 1 Wprowadzenie do PHP i MySQL Opis: W tym rozdziale kursanci poznają szczegółową charakterystykę
Bardziej szczegółowo