(III) Web – Profs.Info.Uaic.Ro/~ Web Busaco

(III) Web – Profs.Info.Uaic.Ro/~ Web Busaco

Tehnologii Web / busaco ~ / programare Web (III) dezvoltarea aplicațiilor Web profs.info.uaic.ro cu limbajul și mediul PHP Dr. Sabin Sabin Buraga Dr. Dr. Sabin Corneliu Buraga – profs.info.uaic.ro/~busaco/ / busaco ~ „E mediocru ucenicul / care nu-și depășește maestrul.” profs.info.uaic.ro Leonardo da Vinci Dr. Sabin Sabin Buraga Dr. pentru a pentru Cum folosim un server de aplicații folosim un server dezvolta o aplicație Web o aplicație ? Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ server de aplicații web / busaco ~ / Scop: eficientizarea proceselor de dezvoltare a aplicațiilor Web de anvergură profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. server de aplicații web / busaco ~ / Integrat în unul/mai multe servere Web profs.info.uaic.ro de asemenea, poate oferi propriul server Web sau mediu de execuție Dr. Sabin Sabin Buraga Dr. server de aplicații web / busaco ~ / Poate încuraja sau impune o viziune arhitecturală privind dezvoltarea de aplicații Web profs.info.uaic.ro situație tipică: MVC ori variații Dr. Sabin Sabin Buraga Dr. (re)vezi prezentarea anterioară server de aplicații web / busaco ~ / Simplifică maniera de invocare de programe (script-uri) ale unei aplicații Web profs.info.uaic.ro generarea de conținut dinamic pe partea de server Dr. Sabin Sabin Buraga Dr. server de aplicații web / busaco ~ / Aspecte de interes: limbaj(e) de programare profs.info.uaic.ro API-ul de bază stocare persistentă a modelelor de date interacțiune Web cookie-uri și sesiuni medii de dezvoltare + cadre de lucru, componente,… Sabin Buraga Dr. caracteristici particulare server de aplicații web / busaco ~ / Limbaj(e) de programare oferind suport pentru una sau mai multe paradigme: profs.info.uaic.ro imperativă obiectuală funcțională reactivă concurentă Sabin Buraga Dr. paralelă … server de aplicații web / busaco ~ / Limbaj(e) de programare statice – exemple: C#, Java, Rust profs.info.uaic.ro versus dinamice – e.g., JavaScript, PHP, Python, Ruby Dr. Sabin Sabin Buraga Dr. server de aplicații web / busaco ~ / Limbaj(e) de programare procesate prin interpretare (Perl, Python, Ruby) profs.info.uaic.ro și/sau compilare (C, C++, Rust) uzual, se preferă generarea de cod intermediar: IL (Intermediate Language) – C#, Erlang, Java, Scala,… Dr. Sabin Sabin Buraga Dr. server de aplicații web / busaco ~ / Limbaj(e) de programare procesate prin interpretare (Perl, Python, Ruby) profs.info.uaic.ro și/sau compilare (C, C++, Rust) uzual, se preferă generarea de cod intermediar: IL (Intermediate Language) – C#, Erlang, Java, Scala,… Dr. Sabin Sabin Buraga Dr. mai recent, în momentul rulării: Just-in-Time (JIT) în contextul Web: JavaScript, PHP 8, TypeScript server de aplicații web / busaco ~ / API de bază contribuie la „puterea” limbajului și profs.info.uaic.ro a serverului de aplicații (via funcții/clase predefinite) Dr. Sabin Sabin Buraga Dr. server de aplicații web / busaco ~ / API de bază contribuie la „puterea” limbajului și profs.info.uaic.ro a serverului de aplicații (via funcții/clase predefinite) securitate, consistență, acces la resursele mediului de operare/rulare, Sabin Buraga Dr. asigurarea independenței de platformă etc. server de aplicații web / busaco ~ / Stocare persistentă în baze de date relaționale – folosind SQL profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. server de aplicații web / busaco ~ / Stocare persistentă în baze de date relaționale – folosind SQL profs.info.uaic.ro exemple: ADO.NET pentru ASP.NET Java – JDBC (Java DataBase Connectivity) PHP – funcții/module predefinite, plus biblioteci Sabin Buraga Dr. incorporate (SQLite + mysqli) sau diverse extensii avansat server de aplicații web / busaco ~ / Stocare persistentă în baze de date relaționale – folosind SQL profs.info.uaic.ro ORM (Object-Relational Mapping): șablonul Data Mapper Go – framework-ul Xorm Java – specificația JPA (Java Persistence API) Dr. Sabin Sabin Buraga Dr. + implementări: EclipseLink, Hibernate, OpenJPA,… Node.js – biblioteca Sequelize PHP – framework-uri: Cycle ORM, Doctrine, Propel, RedBean etc. avansat server de aplicații web / busaco ~ / Stocare persistentă în baze de date relaționale – folosind SQL profs.info.uaic.ro Active Record – șablon arhitectural utilizat în cadrul ORM pentru a încapsula într-o clasă o tabelă sau un view exemple: active_record, TypeORM (module Node.js), Castle Project (.NET), Sabin Buraga Dr. DBIx::Class (Perl), Django ORM și Orator (Python), Play Framework (Java, Scala), Rails (Ruby) server de aplicații web / busaco ~ / Stocare persistentă pe baza modelelor arborescente: XML profs.info.uaic.ro date (semi)structurate transformări în alte formate: XPath, XSLT procesări: DOM, SAX, SimpleXML etc. validări de date: DTD, XML Schema, RELAX,… Sabin Buraga Dr. interogări: XQuery cursurile viitoare avansat server de aplicații web / busaco ~ / Stocare persistentă recurgând la alte paradigme non-relaționale profs.info.uaic.ro (bazate pe grafuri și/sau cheie—valoare) distribuite la nivel de Internet, scalabile – NoSQL github.com/erictleung/awesome-nosql nosql.mypopescu.com/kb/nosql Dr. Sabin Sabin Buraga Dr. exemplificări: Cassandra, MarkLogic, MongoDB, Neo4j, OpenLink Virtuoso, Redis server de aplicații web / busaco ~ / Interacțiune Web facilitată de controale specificate profs.info.uaic.ro în cadrul codului-sursă invocat la nivel de server Dr. Sabin Sabin Buraga Dr. server de aplicații web / busaco ~ / Interacțiune Web facilitată de controale specificate profs.info.uaic.ro în cadrul codului-sursă invocat la nivel de server se pot emula câmpuri din formularele HTML și/sau oferi noi controale interactive – e.g., calendar, slideshow,… Dr. Sabin Sabin Buraga Dr. generare de cod procesabil la nivel de client (front-end) componente Web (HTML + CSS + JavaScript) executate de browser avansat server de aplicații web / busaco ~ / Interacțiune Web exemplificări: profs.info.uaic.ro ASP.NET (<asp:control> – e.g., FileUpload, ListBox, Table,...) framework-ul PRADO (PHP) formidable, form-data, forms – module Node.js platforma Java: specificația JSF (Jakarta Server Faces) Dr. Sabin Sabin Buraga Dr. server de aplicații web / busaco ~ / Interacțiune Web încurajarea folosirii de machete de vizualizare (templates) profs.info.uaic.ro pe baza unui procesor specific Web template system Dr. Sabin Sabin Buraga Dr. server de aplicații web / busaco ~ / Interacțiune Web Web template system profs.info.uaic.ro utilizând specificații de prezentare a conținutului (Web template), datele persistente (e.g., preluate dintr-o bază de date sau fișiere) sunt folosite de un procesor (template engine) Sabin Buraga Dr. pentru a genera documente HTML ori alte reprezentări în alte formate <!-- macheta HTML --> <h1 class="profile">User profile: [@username]</h1> <img src="[@photoURL]" alt="photo"/> <div class="identity">[@firstNameimplementare] [@lastName]</div> / <div class="location">[@location]</div> User profile: Tux Tuxy Pinguinesscool busaco ~ // program PHP: procesarea machetei / $profile = new Template ('templates/profile.tpl'); Romania $profile->set ('username') = 'Tux'; $profile->set ('photoURL') = 'imgs/tux.svg'; $profile->set ('firstName') = 'Tuxy'; $profile->set ('lastName') = 'Pinguinesscool'; $profile->set ('location') = 'Romania'; profs.info.uaic.ro exemplu: specificația de prezentare a conținutului (HTML template – .tpl) include nume de variabile – aici, de forma [@variabilă] – ce vor fi înlocuite cu valorile efective Sabin Buraga Dr. preluate din program în urma rulării componentei de procesare a machetelor de vizualizare server de aplicații web / busaco ~ / Interacțiune Web Web template system profs.info.uaic.ro la nivel de server Apache FreeMarker (Java), Blade (PHP), Haml (Ruby), Mustache (C++, JS, PHP, Python, Scala,…), Pug (Node.js), Sabin Buraga Dr. Razor (.NET), Smarty (PHP), Tonic (PHP), XSLT (XML) server de aplicații web / busaco ~ / Interacțiune Web Web template system profs.info.uaic.ro la nivel de client disponibile pentru JavaScript: doT, EJS, Handlebars, Mustache.js, Nunjucks,… Sabin Buraga Dr. github.com/sorrycc/awesome-javascript#templating-engines avansat server de aplicații web / busaco ~ / Interacțiune Web managementul cookie-urilor și sesiunilor profs.info.uaic.ro via structuri/tipuri de date – diverse exemplificări: clasa HttpSession (ASP.NET), interfața HttpSession (servlet-uri Java), HTTP::Session (Perl), session (Flask – framework Python), web.session (web.py), HttpFoundation (componentă Symfony – framework PHP), Sabin Buraga Dr. clasa SessionComponent (CakePHP), tabloul session (Ruby on Rails), play.mvc.Http.Cookie (Play pentru Java/Scala), sessions (Gorilla – Go) cookie-parser și express-session (module Node.js pentru Express) server de aplicații web / busaco ~ / Interacțiune Web transfer asincron de date via suita de tehnologii Ajax profs.info.uaic.ro vezi cursurile viitoare eventual, via framework-uri/module/clase adiționale Sabin Buraga Dr. avansat server de aplicații web / busaco ~ / Suport acordat ingineriei software stimularea/impunerea folosirii unor șabloane de proiectare (arhitecturale, comportamentale, structurale, profs.info.uaic.ro vizând procesările concurente și/sau distribuite și altele) AMI (asynchronous method invocation), broker, CBD (components-based development), DAO (data access object), DDD (domain-driven design), DTO (data transfer object), façade, Sabin Buraga Dr. MOM (message-oriented middleware), microservice, MV*, publish-subscribe, SOA (service-oriented architecture), singleton,… proiectare / busaco ~ / profs.info.uaic.ro exemplificare: anti-șablonul Spaghetti Code uzual, specific aplicațiilor

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    270 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us