Aplikacje SPA, Angular, TypeScript. dr hab. inż. Marek Wojciechowski

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

Download "Aplikacje SPA, Angular, TypeScript. dr hab. inż. Marek Wojciechowski"

Transkrypt

1 Aplikacje SPA, Angular, TypeScript dr hab. inż. Marek Wojciechowski

2 Ewolucja aplikacji webowych (pre-spa) Model 1 (pierwotny model WWW) Strony powiązane linkami (jak dokumenty WWW) Model 2 (MVC) Kontroler decyduje o nawigacji Strony nie odwołują się do siebie bezpośrednio Model 3 (MVC + komponenty) Wersja Model 2 inspirowana sposobem działaniem aplikacji desktopowych: komponenty obsługujące zdarzenia Przebudowa i przeładowanie strony w reakcji na zdarzenie (Model 2 / Model 3) + Ajax Częściowa eliminacja nawigacji i odświeżania stron Źródło: 2

3 Single Page Applications (SPA) Strona startowa aplikacji jest jedyną stroną pobieraną w całości z serwera (potem interakcje Ajax, WebSocket) Strona aplikacji nie przeładowuje się w czasie pracy z nią Nie następuje nawigacja do innych stron Zmienia się stan (i wygląd) strony w przeglądarce User Experience (UX) podobny do aplikacji desktopowych Technologie: HTML5, CSS, JavaScript, Ajax, WebSocket Frameworki: Angular, Ember.js, Meteor.js, ExtJS, React, 3

4 Single Page Interface (SPI) Czy model SPA jest odpowiedni tylko dla aplikacji webowych (web applications) czy również dla witryn (web sites)? Pytanie otwarte, różne stanowiska Głos na tak : The Single Page Interface Manifesto ( Problemy przy tworzeniu witryn mocno opartych o Ajax: Zakładki do stanu strony po jej zmianie Ajaksem, historia przeglądarki Indeksowanie przez wyszukiwarki (Search Engine Optimization (SEO)) Model biznesowy oparty o liczbę odwiedzin stron Potrzeba wyskakujących okienek (pop-up) Wolne pierwsze wyświetlenie strony 4

5 Stan aplikacji SPA/SPI W tradycyjnej aplikacji webowej sekwencja stanów aplikacji to sekwencja stron W aplikacji SPA/SPI każda częściowa zmiana strony w przeglądarce (Ajax, DOM) skutkuje zmianą stanu Stany aplikacji SPA/SPI można podzielić na: Stany fundamentalne (odpowiadałyby stronom w modelu tradycyjnym, warte tworzenia zakładek) Stany drugorzędne Przykład kategoryzacji stanów: obsługa logowania Ekran do wprowadzenia użytkownika i hasła (fundamentalny) Informacje o błędach w formularzu logowania (drugorzędny) Ekran powitalny po zalogowaniu (fundamentalny) 5

6 Zakładki i historia przeglądarki w SPA Opis problemu Dla aplikacji SPA samoistnie pojawi się tylko jeden wpis w historii przeglądarki Ewentualna zakładka będzie prowadzić do strony w wersji pobranej z serwera (stan początkowy) Programowa podmiana (JS) window.location (location.href) może spowodować odwołanie przeglądarki do serwera Rozwiązania Wykorzystanie adresów URL adresujących fragmenty stron (#) Podmiana adresu URL (przez location.href lub location.hash) na różniący się od poprzedniego treścią po znaku # nie powoduje odwołania do serwera Wykorzystanie HTML 5 History API: history.pushstate [W obu przypadkach obsługa nawigacji Back/Forward jest programowa] 6

7 Rozwiązania pozostałych problemów modelu SPA/SPI Search Engine Optimization (SEO) Specjalny tryb nawigacji dla robotów (web crawlers) <a href="url page" onclick="return false"> </a> (roboty obecnie ignorują JavaScript) Linki w formacie (Ajax-crawlable): #! (wyszukiwarka widząc taki URL zmienia go na zawierający?_escaped_fragment_ a aplikacja odpowiada snaphotem strony HTML) Zwiększanie licznika odwiedzin stron Ramka IFRAME prowadząca do pustej strony ze skryptem Okienka pop-up Problemy: brak okien modalnych w przeglądarce, współdzielenie stanu między oknami Rozwiązanie: Symulowanie okienek modalnych/niemodalnych za pomocą elementów HTML z odpowiednim pozycjonowaniem 7

8 Architektura aplikacji SPA Źródło: Cechy architektury: Write-only DOM Cały stan aplikacji w komponentach modelu Widoki obserwujące zmiany w modelu Modularyzacja z jak najmniejszymi zależnościami między modułami Jak największa izolacja od implementacji DOM w przeglądarce Brak kontrolera (znanego z MVC) 8

9 Kontrolery w aplikacjach SPA? Część pierwszych frameworków dla aplikacji SPA (np. AngularJS 1.x) przeniosło do przeglądarki wzorzec architektoniczny MVC sprawdzony i powszechny po stronie serwerowej Separacja modeli i widoków powszechnie akceptowana, ale czy spoiwem powinien być kontroler? Koncepcja Model-View-Whatever, MV* Typowe zadania przydzielane kontrolerom w SPA: Obsługa zdarzeń w modelu DOM Renderowanie szablonów widoków Synchronizacja widoków z modelami Lepiej jest powyższe zadania rozdzielić (zasada pojedynczej odpowiedzialności) 9

10 Angular (2+) / AngularJS (1.x) Front-endowy framework do tworzenia aplikacji webowych Rozwijany pod skrzydłami Google Głównie zorientowany na aplikacje SPA Od wersji 2.0 pozycjonowany jako jeden framework dla aplikacji webowych, mobilnych i desktopowych Zaimplementowany w języku JavaScript i (od wersji 2.0) TypeScript, wykorzystujący HTML i CSS Główna motywacja: HTML jest odpowiedni dla stron WWW, ale nieodpowiedni dla aplikacji webowych 10

11 AngularJS 1.x Framework oparty o wzorzec MVC po stronie klienta Obiekt scope ($scope) jako sposób współdzielenia danych między kontrolerem a widokiem Spoiwo między kontrolerem i widokiem, pełni rolę ViewModel Wiązanie danych (data binding): Interpolacje {{ }}, one-way data binding, two-way data binding Dyrektywy ng-* dodatkowe atrybuty dla elementów HTML np. ng-app, ng-model, ng-repeat Filtry filtracja, sortowanie, transformacja danych 4 rodzaje komponentów do logiki biznesowej: Factory, Service, Provider, Value Routing nawigacja między widokami aplikacji SPA Modularność (Angular modules) 11

12 AngularJS 1.x Hello World <!doctype html> <html ng-app> <head> <script src=" </script> </head> <body> <div> <label>name:</label> <input type="text" ng-model="yourname" placeholder="enter a name here"> <hr> <h1>hello {{yourname uppercase}}!</h1> </div> </body> </html> Na podstawie: 12

13 Web Components Zbiór cech dodawanych do specyfikacji HTML i DOM Częściowo wspierany przez współczesne przeglądarki Wsparcie dla starszych przeglądarek poprzez polyfille Intencja: przeniesienie komponentowego modelu tworzenia aplikacji na grunt WWW umożliwienie tworzenia reużywalnych komponentów (widgets) do wykorzystania na stronach WWW i po stronie front-endu aplikacji webowych Cechy (rodzaje Web Components) Custom Elements - APIs to definiowania nowych elementów HTML Shadow DOM enkapsulacja DOM i styli w elemencie HTML Przeglądarka renderuje DOM elementów z Shadow DOM bez umieszczania ich w DOM głównego dokumentu HTML Imports deklaratywny import dokumentów HTML do innych dokumentów HTML HTML Templates szablony fragmentów HTML 13

14 Angular 2+ na tle Angular 1.x Istotne zmiany w porównaniu z Angular 1.x Właściwie nowy framework Brak zgodności wstecz, opcja migracji i współistnienia obu wersji w obrębie jednej aplikacji Duże zmiany w czasie jego rozwoju (Alpha->Developer Preview->Beta->Final) wiele tutoriali nieaktualnych Angular 2 witany przez deweloperów z mieszanymi uczuciami Kolejne zmiany 2 -> 4 -> 5 -> 6 już ewolucyjne, a nie rewolucyjne Przyczyny radykalnych zmian: Rozwój języka JavaScript, pojawienie się języka TypeScript Rozwój przeglądarek Nowe trendy, np. Web Components Nadmierna komplikacja niektórych aspektów Angular 1.x (np. kilka rodzajów komponentów logiki biznesowej) Problemy wydajnościowe (np. gdy dużo danych w $scope) 14

15 Cechy Angular 2+ (zalety na tle 1.x) Framework również dla urządzeń mobilnych Większa modularność Wsparcie tylko współczesnych przeglądarek Uproszczenie frameworka przez brak workarounds dla starszych Orientacja na język TypeScript Choć możliwe jest programowanie w czystym JavaScript Wykorzystanie elementów ECMAScript 2015 Dynamiczne ładowanie Prostszy routing, serwisy do logiki biznesowej Poprawione wstrzykiwanie zależności Komponenty i dyrektywy zamiast kontrolerów i $scope Programowanie reaktywne (RxJs) 15

16 Angular 2 komponent Hello World import { Component } from selector: 'my-app', template: `<h1>hello {{name}}</h1>` }) export class AppComponent { name: string = 'Marek'; } Na podstawie: 16

17 TypeScript Nadzbiór języka JavaScript rozwijany przez Microsoft Ze względu na postulowaną nieodpowiedniość JS dla dużych aplikacji Powstał jako rozszerzenie ECMAScript 5, z uwzględnieniem cech przewidywanych w ECMAScript 6 Transpilowany do kodu JavaScript Najważniejsze cechy języka TypeScript: Klasy, moduły, funkcje strzałkowe, param. opcjonalne/domyślne (ES6) Składowe public (domyślnie), protected i private, przestrzenie nazw Adnotacje typu i kontrola typów na etapie kompilacji Automatyczna dedukcja typu (type inference) Interfejsy, klasy używane jako interfejsy (implements) Typy generyczne (<>), typy wyliczeniowe (enum), unie (union type), krotki (tuple) Domieszki (mixins) w części implementowane programowo Dekoratory (@) 17

18 TypeScript w Angular stan aktualny Angular od wersji 2 jest napisany w języku TypeScript TypeScript jest również zalecany w projektach opartych na Angularze W związku z rozwojem języka JavaScript (ES2015) wiele elementów składni TypeScript stało się standardową składnią JavaScript Klasy,moduły Cechy języka TypeScript niedostępne w czystym JavaScript, a fundamentalne dla Angulara: Typy dla wstrzykiwania zależności (ang. dependency injection) Dekoratory dla metadanych o modułach, komponentach, usługach 18

19 Architektura frameworka Angular Moduły (NgModule) Podstawowe klocki, z których budowana jest aplikacja Przynajmniej jeden root module (startowy) + opcjonalnie wiele feature modules Kontener na kod odpowiedzialny za pewien wycinek funkcjonalności Zawierają komponenty i dostawców usług (ang. service providers) Mogą importować funkcjonalność z / eksportować funkcjonalność dla innych modułów Rozszerzają koncepcję modułu z ES2015 (nie tylko kod) Komponenty (ang. component) Zarządzają fragmentami ekranu tzw. widokami component = directive + template + presentation logic Usługi (ang. service) Dostarczają funkcji niezwiązanych bezpośrednio z widokami Mogą być wstrzykiwane do komponentów 19

20 Anatomia NgModule declarations components, directives, pipes należące do NgModule exports deklaracje dostępne dla wzorców komponentów innych NgModules imports inne moduły, których eksporty wykorzystują wzorce komponentów w tym NgModule providers dostawcy usług, których ten moduł kontrybuuje do aplikacji bootstrap główny widok aplikacji ( root component ) tylko w root module 20

21 NgModule Przykład import { NgModule } from '@angular/core';... import { AppComponent } from declarations: [ AppComponent, StudentsComponent ], imports: [ BrowserModule, FormsModule, HttpClientModule, AppRoutingModule ], providers: [StudentService], bootstrap: [AppComponent] }) export class AppModule { } *.ts 21

22 Anatomia komponentu selector selektor CSS nakazujący Angiularowi wstawić instancję komponentu w danym miejscu we wzorcu HTML template / templateurl wzorzec HTML komponentu (inline / URL) styles / styleurls arkusze stylów CSS definiujące formatowanie komponentu (inline / URL) providers dostawcy usług, wymaganych przez komponent 22

23 Komponent Przykład import { Component, OnInit } from '@angular/core'; import { Student } from '../student'; import { StudentService } from selector: 'app-students', templateurl: './students.component.html', styleurls: ['./students.component.css'] }) export class StudentsComponent implements OnInit { students: Student[]; *.ts *.html <h2>list of students</h2> <ul class="students"> <li *ngfor="let student of students"> <button title="delete" (click)="delete(student)"> Delete </button> <a routerlink="/detail/{{student.id}}"> <span>{{student.index}}</span> </a> <span>{{student.lastname}}</span> <span>{{student.firstname}}</span> </li> </ul> constructor(private studentservice: StudentService) { }... ngoninit() { this.getstudents(); } }.students { list-style-type: none; } *.css 23

24 Usługi (ang. services) Klasy implementujące funkcje potrzebne w aplikacji Pojedyncza usługa powinna odpowiadać za konkretną funkcjonalność Podział logiki między klasy komponentów i usług Klasa komponentu powinna zawierać logikę specyficzną dla widoku Właściwości i metody do wiązania danych z widoku Pośredniczenie między widokiem a logiką biznesową (modelem) Klasy usług nie powinny zależeć od widoków Komunikacja z backendem, walidacja, obsługa logu itd. Usługi są udostępniane komponentom i innym usługom przez wstrzykiwanie zależności (ang. dependency injection) oznacza klasy będące usługami oraz klasy i komponenty zależne od usługi Wstrzykiwanie realizowane przez typowany parametr konstruktora Dostawcy usług (ang. providers), typowo klasy usług, rejestrowani na poziomie modułów lub komponentów 24

25 Usługa i wstrzykiwanie zależności Przykład Usługa import { Injectable } from '@angular/core'; import { HttpClient } from export class StudentService { constructor(private http: HttpClient) { }... } Rejestracja dostawcy usług w declarations: [ AppComponent, StudentsComponent,...], imports: [...], providers: [StudentService], bootstrap: [AppComponent] }) export class AppModule { } Wstrzyknięcie usługi w komponencie import { Component, OnInit } from '@angular/core'; import { StudentService } from selector: 'app-students', templateurl: './students.component.html', styleurls: ['./students.component.css'] }) export class StudentsComponent implements OnInit { constructor(private studentservice: StudentService) { }... } 25

26 Architektura Angular Podsumowanie Źródło: 26

27 Routing Zadaniem routera w ramach frameworka Angular jest nawigacja między widokami Jest on wydzielonym, opcjonalnym modułem Pojedyncza instancja usługi routera w aplikacji Router Angulara bazuje na modelu nawigacji przeglądarki URL wprowadzony w pasku adresu prowadzi do wskazanego widoku Kliknięcie linku w aktualnym widoku powoduje przejście do innego Adres URL może zawierać parametry dla widoku Przyciski Back i Forward w przeglądarce nawigują po historii Obszar na stronie, w którym wyświetlane mają być różne komponenty zależnie od stanu routera, wskazuje się znacznikiem <router-outlet></router-outlet> 27

28 Konfiguracja routera w module routingu import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { StudentsComponent } from './students/students.component'; import { StudentDetailComponent } from './student-detail/student-detail.component'; const routes: Routes = [ { path: '', redirectto: '/students', pathmatch: 'full' }, { path: 'students', component: StudentsComponent }, { path: 'detail/:id', component: StudentDetailComponent } imports: [ RouterModule.forRoot(routes) ], exports: [ RouterModule ] }) export class AppRoutingModule {} 28

29 Wykorzystanie routingu w aplikacji Import modułu routingu w głównym (root) module Router outlet we wzorcu HTML import { NgModule } from '@angular/core'; import { AppRoutingModule } from declarations: [...], imports: [..., AppRoutingModule], providers: [...], bootstrap: [...] }) export class AppModule { } głównego komponentu aplikacji <router-outlet></router-outlet> Linki prowadzące do komponentów (we wzorcach HTML komponentów) <nav> <a routerlink="/students">students</a> <a routerlink="/about">about</a> </nav> <a routerlink="/detail/{{student.id}}"> <span>{{student.index}}</span> </a> 29

30 Routing dostęp do bieżącej trasy Dostęp do trasy, która aktywowała bieżący komponent w elemencie <router-outlet>, np. w celu odczytania parametrów zawartych w URL import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from selector: 'app-student-detail', templateurl: './student-detail.component.html' }) export class StudentDetailComponent implements OnInit { student: Student; constructor( private route: ActivatedRoute, ) {} getstudent(): void { const id = +this.route.snapshot.parammap.get('id'); this.studentservice.getstudent(id).subscribe(student => this.student = student); } } 30

31 Klient HTTP Angulara (HttpClient) Dostarczony w celu obsługi współpracy z usługami backendowymi aplikacji dostępnym poprzez protokół HTTP Oparty na XMLHttpRequest dostępnym w przeglądarce Oferuje uproszczone API i dodatkową funkcjonalność: Typowane obiekty request i response Zgodność z interfejsem Observable Usprawniona i uproszczona obsługa błędów Wykorzystuje bibliotekę RxJS Reaktywne podejście do asynchronicznego przetwarzania Koncepcja observables Obecna również w innych obszarach funkcjonalnych Angulara 31

32 Wykorzystanie HttpClient (1/2) Odwołania do serwerowego API w klasie usługi import { Injectable } from '@angular/core'; import { Observable } from 'rxjs/observable'; import { of } from 'rxjs/observable/of'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Student } from './student'; const httpoptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) export class StudentService { private studentsapiurl = ' constructor(private http: HttpClient) { } getstudents(): Observable<Student[]> { return this.http.get<student[]>(this.studentsapiurl); } updatestudent(student: Student): Observable<any> { const url = `${this.studentsapiurl}/${student.id}`; return this.http.put(url, student, httpoptions); } } 32

33 Wykorzystanie HttpClient (2/2) Wykorzystanie usługi dostępowej do API w klasach komponentów students: Student[]; constructor(private studentservice: StudentService) { } getstudents(): void { this.studentservice.getstudents().subscribe(students => this.students = students); } student: Student; constructor(private studentservice: StudentService) { } save(): void { this.studentservice.updatestudent(this.student).subscribe(() => this.goback()); } 33

34 Angular CLI Interfejs linii komend do: Tworzenia projektów Dodawania składników aplikacji do projektu Testowania, pakowania i instalowania aplikacji Instalacja: Wymagana współczesna wersja Node.js wraz z npm npm install Przykładowe komendy: Utworzenie projektu/aplikacji: ng new my-app Uruchomienie serwera (z poziomu katalogu aplikacji): ng serve --open Utworzenie komponentu (z poziomu katalogu aplikacji): ng generate component my-comp 34

Aplikacje SPA, Angular, TypeScript. dr hab. inż. Marek Wojciechowski

Aplikacje SPA, Angular, TypeScript. dr hab. inż. Marek Wojciechowski Aplikacje SPA, Angular, TypeScript dr hab. inż. Marek Wojciechowski Ewolucja aplikacji webowych (pre-spa) Model 1 (pierwotny model WWW) Strony powiązane linkami (jak dokumenty WWW) Model 2 (MVC) Kontroler

Bardziej szczegółowo

O sobie. Adam Kowalski. Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes.

O sobie. Adam Kowalski. Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes. Wstęp do Angulara O sobie Adam Kowalski Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes adam.kowalski@synergycodes.com https://www.synergycodes.com Plan wykładu

Bardziej szczegółowo

Framework Angular4. Alicja Frankowicz Weronika Węglińska

Framework Angular4. Alicja Frankowicz Weronika Węglińska Framework Angular4 Alicja Frankowicz Weronika Węglińska Angular Pierwszym wydaniem Angulara był Angular1, zwany także AngularJS. Opierał się on na języku JavaScript oraz na wzorcu MVC wdrożonego do aplikacji

Bardziej szczegółowo

ANGULAR 2+ Waldemar Korłub. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska

ANGULAR 2+ Waldemar Korłub. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska ANGULAR 2+ Waldemar Korłub Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska 2 Architektura MVC: Model View Controller 3 Wzorzec architektoniczny modelujący przepływ sterowania w interfejsie

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

ANGULAR 2+ Waldemar Korłub. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska

ANGULAR 2+ Waldemar Korłub. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska ANGULAR 2+ Waldemar Korłub Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska 2 Architektura Architektura frameworka Angular 3 Aplikacja wykorzystuje język HTML i style CSS Poza standardowymi

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

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych Kod szkolenia: ANGULAR 4 Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest dla programistów posiadających

Bardziej szczegółowo

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH szkolenie dla webdeveloperów ze znajomością przynajmniej podstaw HTML i JavaScript INFORMACJE PODSTAWOWE AngularJS to framework JavaScript stworzony przez inżynierów

Bardziej szczegółowo

Laboratorium 4: Routing

Laboratorium 4: Routing Laboratorium 4: Routing Ćwiczenie 1. Przygotowanie routingu Czas na coś bardziej skomplikowanego. Strona główna naszej galerii gotowa, pora dodać coś bardziej złożonego. Każdy nasz album zdjęciowy powinien

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

Szkolenie wycofane z oferty

Szkolenie wycofane z oferty Szkolenie wycofane z oferty Program szkolenia: Java Server Faces 2 Informacje: Nazwa: Java Server Faces 2 Kod: Java-EE-JSF 2 Kategoria: Java EE Grupa docelowa: developerzy Czas trwania: 3 dni Forma: 50%

Bardziej szczegółowo

MOBILNE APLIKACJE HYBRYDOWE

MOBILNE APLIKACJE HYBRYDOWE MOBILNE APLIKACJE HYBRYDOWE Waldemar Korłub KASK ETI Politechnika Gdańska JavaScript 2 Początkowo wykorzystywany tylko w przeglądarce internetowej Obecnie: Przeglądarki cały czas Po stronie serwera Node.js

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

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

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski Technologie dla aplikacji klasy enterprise Wprowadzenie Marek Wojciechowski Co oznacza enterprise-ready? Bezpieczeństwo Skalowalność Stabilność Kompatybilność wstecz Wsparcie Dokumentacja Łatwość integracji

Bardziej szczegółowo

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Budowa 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ółowo

Aplikacje Internetowe

Aplikacje Internetowe Aplikacje Internetowe ITA-103 Wersja 1 Warszawa, październik 2008 Spis treści Wprowadzenie i-4 Moduł 1 Podstawy HTML 1-1 Moduł 2 Kaskadowe Arkusze Stylów CSS 2-1 Moduł 3 Podstawy JavaScript 3-1 Moduł 4

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

Architektura MVC w ASP.NET. Autor wykładu: Marek Wojciechowski

Architektura MVC w ASP.NET. Autor wykładu: Marek Wojciechowski Architektura MVC w ASP.NET Autor wykładu: Marek Wojciechowski Modele programistyczne ASP.NET Web Forms Komponentowy interfejs użytkownika (kontrolki) Programowanie wizualno-zdarzeniowe Klasyczna składnia

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

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

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE Cena szkolenia Cena szkolenia wynosi 100 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie

Bardziej szczegółowo

Program szkolenia: JavaScript Craftsmanship

Program szkolenia: JavaScript Craftsmanship Program szkolenia: JavaScript Craftsmanship Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: JavaScript Craftsmanship Craft-practices-js-craft Craftsmanship developerzy architekci

Bardziej szczegółowo

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Spring Framework - wprowadzenie i zagadnienia zaawansowane Program szkolenia: Spring Framework - wprowadzenie i zagadnienia zaawansowane Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Spring Framework - wprowadzenie i zagadnienia

Bardziej szczegółowo

REACT NATIVE. Anna Maziejuk Kamil Jankowski

REACT NATIVE. Anna Maziejuk Kamil Jankowski REACT NATIVE Anna Maziejuk Kamil Jankowski React Native Framework/biblioteka bazujący na React Pozwala na tworzenie aplikacji tylko za pomocą języka JavaScript Wspiera platformy ios i Android REACT React

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

Full Stack Developer

Full Stack Developer Regulamin szkolenia Full Stack Developer Edycja 2 Autor: Kamil Wołczyk Maj 2017 Harmonogram Sobota Niedziela Miesiąc 07 08 październik ZJAZD 14 15 październik - 21 22 październik ZJAZD 28 29 październik

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

PLAN 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 ), 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ółowo

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski ASP.NET (2) Contexts and Dependency Injection (CDI) Specyfikacja składowa Java EE 6 dotycząca współpracy warstwy prezentacji z

Bardziej szczegółowo

Mobilne aplikacje hybrydowe

Mobilne aplikacje hybrydowe Mobilne aplikacje hybrydowe 1. Przygotowanie środowiska pracy Praca z aplikacjami hybrydowymi wymaga instalacji kilku komponentów. Wykorzystany zostanie framework Ionic, który opiera się na menadżerze

Bardziej szczegółowo

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Programowanie komponentowe Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System Application

Bardziej szczegółowo

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap.

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap. Kod szkolenia: Tytuł szkolenia: FRONT-END Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap. Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest zarówno dla

Bardziej szczegółowo

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2 Programowanie Urządzeń Mobilnych Część II: Android Wykład 2 1 Aplikacje w systemie Android Aplikacje tworzone są w języku Java: Skompilowane pliki programów ( dex ) wraz z plikami danych umieszczane w

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

Laboratorium 2: Portfolio zdjęciowe, p.1

Laboratorium 2: Portfolio zdjęciowe, p.1 Laboratorium 2: Portfolio zdjęciowe, p.1 Ćwiczenie 1. Szablon portfolio zdjęciowego Skoro dołączyliśmy wszystko, co potrzeba, zajmijmy się najpierw stworzeniem szablonu statycznego dla naszego portfolio.

Bardziej szczegółowo

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Produktywne 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ółowo

Technologie internetowe ASP.NET Core. Paweł Rajba

Technologie internetowe ASP.NET Core. Paweł Rajba Technologie internetowe ASP.NET Core Paweł Rajba pawel@cs.uni.wroc.pl http://itcourses.eu/ Plan wykładu Wprowadzenie Podstawowa aplikacja Usługi i middleware Obsługa błędów Request, Response, ciastka i

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

Laboratorium 2: Portfolio zdjęciowe, p.1

Laboratorium 2: Portfolio zdjęciowe, p.1 Laboratorium 2: Portfolio zdjęciowe, p.1 Ćwiczenie 1. Szablon portfolio zdjęciowego Skoro dołączyliśmy wszystko, co potrzeba, zajmijmy się najpierw stworzeniem szablonu statycznego dla naszego portfolio.

Bardziej szczegółowo

Agenda. Wstęp Zmiany Co nowego dla web developerów? Nowości we front-end developingu Czego spodziewać się może końcowy użytkownik?

Agenda. Wstęp Zmiany Co nowego dla web developerów? Nowości we front-end developingu Czego spodziewać się może końcowy użytkownik? Agenda Wstęp Zmiany Co nowego dla web developerów? Nowości we front-end developingu Czego spodziewać się może końcowy użytkownik? Podsumowanie Drupal 8 w liczbach 26 nowych modułów 6 608 plików 247 597

Bardziej szczegółowo

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy

Plan. 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ółowo

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Przykłady na podstawie zadań lab. z przedmiotu Technologie internetowe

Bardziej szczegółowo

Projekt warsztatów. Full Stack Developer. Autor: Kamil Wołczyk

Projekt warsztatów. Full Stack Developer. Autor: Kamil Wołczyk Projekt warsztatów Full Stack Developer Autor: Kamil Wołczyk Styczeń 2017 Harmonogram Sobota Niedziela Miesiąc 04 05 marzec - 11 12 marzec ZJAZD 18 19 marzec - 25 26 marzec ZJAZD 01 02 kwiecień - 08 09

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

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

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół

Bardziej szczegółowo

JAX-RS czyli REST w Javie. Adam Kędziora

JAX-RS czyli REST w Javie. Adam Kędziora JAX-RS czyli REST w Javie Adam Kędziora Webservice Usługa sieciowa (ang. web service) komponent programowy niezależny od platformy i implementacji, dostarczający określonej funkcjonalności. SOAP,UDDI,XML,WSDL

Bardziej szczegółowo

Django : praktyczne tworzenie aplikacji sieciowych / Antonio Mele. Gliwice, cop Spis treści

Django : praktyczne tworzenie aplikacji sieciowych / Antonio Mele. Gliwice, cop Spis treści Django : praktyczne tworzenie aplikacji sieciowych / Antonio Mele. Gliwice, cop. 2016 Spis treści O autorze 13 O recenzentach technicznych 14 Wprowadzenie 17 Rozdział 1. Utworzenie aplikacji bloga 21 Instalacja

Bardziej szczegółowo

Programowanie zorientowane obiektowo. Mateusz Kołecki

Programowanie zorientowane obiektowo. Mateusz Kołecki Programowanie zorientowane obiektowo Mateusz Kołecki Plan MVC Wstęp Separacja odpowiedzialnośći Antyprzykład Dobry przykład Wady/zalety MVC MVC to tylko początek - wzorce projektowe Dlaczego chcemy używać

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

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Aplikacje WWW. Statyczne oraz dynamiczne strony WWW. Skrypty po stronie klienta. dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki

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

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,

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

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka 1 Omówienie wzorców wykorzystywanych w Prism 5.0 Dominika Różycka Czym jest wzorzec projektowy? 2 3 Wzorzec projektowy 1. Uniwersalne i sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych

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

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Aplikacje WWW. Statyczne oraz dynamiczne strony WWW. Skrypty po stronie klienta. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki

Bardziej szczegółowo

Szczegółowy opis zamówienia:

Szczegółowy opis zamówienia: Szczegółowy opis zamówienia: Rok 2016 budowa stron w html5 (8h v + 4h ćw) 8 szt. html5 - zaawans. (7h v + 5h ćw) 8 szt. programowania w java script (9h v + 7h ćw) 8 szt. java script zaawans (8h v + 4h

Bardziej szczegółowo

Oracle Application Express -

Oracle Application Express - Oracle Application Express - Wprowadzenie Wprowadzenie Oracle Application Express (dawniej: HTML DB) to narzędzie do szybkiego tworzenia aplikacji Web owych korzystających z bazy danych Oracle. Od użytkownika

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

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1. Widżety KIWIPortal tworzenie umieszczanie na stronach internetowych opcje zaawansowane Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.3 Strona 1 z 17 1 SPIS TREŚCI 2 Metody osadzania widżetów... 3 2.1

Bardziej szczegółowo

Aplikacje Internetowe

Aplikacje Internetowe Aplikacje Internetowe ITA-103 Wersja 1 Warszawa, październik 2008 2008 Piotr Bubacz. Autor udziela prawa do bezpłatnego kopiowania i dystrybuowania wśród pracowników uczelni oraz studentów objętych programem

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię usług sieciowych (ang. Web Services).

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

ZAAWANSOWANE PROGRAMOWANIE W JĘZYKU SKRYPTOWYM

ZAAWANSOWANE PROGRAMOWANIE W JĘZYKU SKRYPTOWYM ZAAWANSOWANE PROGRAMOWANIE W JĘZYKU SKRYPTOWYM Waldemar Korłub Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska Agenda 2 Zaawansowane programowanie w przeglądarce Bogate aplikacje klienckie

Bardziej szczegółowo

Pico. Wstęp do kontenerów IoC.

Pico. Wstęp do kontenerów IoC. Pico Wstęp do kontenerów IoC Michal.Malecki@man.poznan.pl Plan prezentacji Wzorzec Inversion of Control (IoC) Wyszukiwanie zależności (Dependency Injection) PicoContainer Case Study Podsumowanie Inversion

Bardziej szczegółowo

Programowanie obiektowe

Programowanie 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ół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

Programowanie komponentowe 5

Programowanie komponentowe 5 Budowa warstwy klienta w architekturze typu klient-serwer zbudowanych z komponentów typu EE - klient desktopowy i internetowy. Zastosowanie komponentów opartych na technologii EJB 3.2. na podstawie https://docs.oracle.com/javaee/7/jeett.pdf

Bardziej szczegółowo

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Czym jest Spring Boot? Spring Boot jest szkieletem aplikacji, opiera się o Spring Framework czyli Framework szeroko

Bardziej szczegółowo

Program szkolenia: Symfony, nowoczesny framework PHP

Program szkolenia: Symfony, nowoczesny framework PHP Program szkolenia: Symfony, nowoczesny framework PHP Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Symfony, nowoczesny framework PHP PHP-frameworki PHP developerzy 3 dni 40% wykłady

Bardziej szczegółowo

REFERAT PRACY DYPLMOWEJ. Temat pracy: Projekt i realizacja warstwy serwerowej gry internetowej

REFERAT PRACY DYPLMOWEJ. Temat pracy: Projekt i realizacja warstwy serwerowej gry internetowej REFERAT PRACY DYPLMOWEJ Temat pracy: Projekt i realizacja warstwy serwerowej gry internetowej Autor: Maciej Zajączkowski Promotor: dr inż. Romana Simińskiego Kategorie: platforma do obsługi gry internetowej

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

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

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

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

Program szkolenia: REST i Microservices w PHP

Program szkolenia: REST i Microservices w PHP Program szkolenia: REST i Microservices w PHP Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: REST i Microservices w PHP PHP-rest PHP developerzy 4 dni 50% wykłady / 50% warsztaty

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

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

Wzorce prezentacji internetowych

Wzorce prezentacji internetowych Wzorce prezentacji internetowych 1. Model kontrolera widoku (Model View Controller). 2. Kontroler strony (Page Controller). 3. Kontroler fasady (Front Controller). 4. Szablon widoku (Template View). 5.

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

MVVM Light Toolkit. Julita Borkowska

MVVM Light Toolkit. Julita Borkowska MVVM Light Toolkit Julita Borkowska Czym jest MVVM Light Toolkit? MVVM Light Toolkit został stworzony w 2009 roku przez Laurenta Bugnion. Jest to biblioteka dostarczająca zestaw komponentów pomocnych podczas

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

WICKET VS. DJANGO. Leszek Gawron vs. Michał Leszczyński

WICKET VS. DJANGO. Leszek Gawron vs. Michał Leszczyński WICKET VS. DJANGO Leszek Gawron vs. Michał Leszczyński 0. Główne ficze 1. Środowisko developerskie AGENDA 2. Uruchomienie projektów 3. Warstwa DAO/serwisów 4. Tworzenie UI 5. Templating 7. i18n 8. Reusability

Bardziej szczegółowo

Java Server Faces narzędzie do implementacji w wy prezentacji

Java Server Faces narzędzie do implementacji w wy prezentacji Java Server Faces narzędzie do implementacji w wy prezentacji pojęcie komponentu powiązanie z modelem danych widok (View) jako drzewo komponentów obiekty pomocnicze: konwertery, walidatory, obsługa zdarzeń

Bardziej szczegółowo

Zastosowanie komponentów EJB typu Session

Zastosowanie komponentów EJB typu Session Zastosowanie komponentów EJB typu Session na podstawie https://docs.oracle.com/javaee/7/jeett.pdf Programowanie komponentowe Lab1 1 1. Refaktoryzacja kodu programu Sklep_6 z lab5, TINT 1.1. Należy wykonać

Bardziej szczegółowo

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz Budowa aplikacji wielowarstwowych zastosowanie szablonów Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz Przykład 1 Zastosowanie szablonów Tworzenie kopii projektu typu Web Application o nazwie

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

Serwery aplikacji. dr Radosław Matusik. radmat

Serwery aplikacji. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat EL - Expression Language Załóżmy, że mamy klasę Pracownik, której atrybutem jest PESEL. Załóżmy dalej, że w atrybucie sesji zalogowany przechowujemy obiekt aktualnie zalogowanego

Bardziej szczegółowo

AJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5.

AJAX. 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ółowo

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008 Flex 3 Piotr Strzelczyk Wydział EAIiE Katedra Automatyki Kraków, 2008 Flex 3 czyli co to jest? RIA (Rich Internet Application) Jest to aplikacja webowa posiadająca moŝliwości aplikacji desktopowej. UmoŜliwia

Bardziej szczegółowo

HTML, Javascript, CSS oraz Bootstrap

HTML, Javascript, CSS oraz Bootstrap HTML, Javascript, CSS oraz Bootstrap Adresaci szkolenia: Kurs przeznaczony jest dla programistów pragnących poszerzyć swoje kompetencje w zakresie tworzenia aplikacji webowych. W ramach szkolenia zostaną

Bardziej szczegółowo

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname=mainregion /> 1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism

Bardziej szczegółowo