Documente Academic
Documente Profesional
Documente Cultură
View Controller
Alexandra Carp
Catedra Informatică I
Ce reprezintă rutarea?
• În aplicația ASP.NET Web Forms, fiecare URL trebuie să se potrivească cu un anumit
fișier .aspx. De exemplu, o adresă URL http://domain/studentsinfo.aspx trebuie să se
potrivească cu fișierul studentsinfo.aspx care conține cod și markup pentru redarea unui
răspuns către browser.
Ce reprezintă rutarea?
• ASP.NET a introdus rutarea pentru a elimina nevoile de a mapa fiecare URL cu un
fișier fizic.
• În același mod, puteți configura alte rute folosind metoda MapRoute() a clasei
RouteCollection. Această RouteCollection este de fapt o proprietate a clasei
RouteTable.
URL Pattern
• Modelul URL este luat în considerare numai după partea de nume de
domeniu din URL. De exemplu, modelul URL „{controller}/{action}/{id}” ar
arăta ca localhost:1234/{controller}/{action}/{id}. Orice lucru după
„localhost:1234/” ar fi considerat ca un nume de controler. În același mod,
orice după numele controlerului ar fi considerat ca nume de acțiune și apoi
valoarea parametrului id.
• Puteți înregistra mai multe rute personalizate cu nume diferite. Luați în considerare
următorul exemplu în care înregistrăm traseul „Student”.
• După cum se arată în codul de mai sus, modelul URL pentru ruta Student este
student/{id}, care specifică că orice URL care începe cu domainName/students, trebuie
să fie gestionată de StudentController. Observați că nu am specificat {acțiune} în
modelul URL deoarece dorim ca fiecare adresă URL care începe cu studenți să
folosească întotdeauna acțiunea Index() a clasei StudentController. Am specificat
controlerul implicit și acțiunea pentru a gestiona orice solicitare URL, care pornește de
la nume de domeniu/studenti.
• Cadrul MVC evaluează fiecare rută în secvență. Începe cu prima rută configurată, iar
dacă URL-ul de intrare nu satisface modelul URL al rutei, atunci va evalua a doua rută
și așa mai departe. În exemplul de mai sus, motorul de rutare va evalua mai întâi ruta
Student și dacă URL-ul de intrare nu începe cu /students, atunci va lua în considerare
doar a doua rută, care este ruta implicită.
Route Constraints
• De asemenea, puteți aplica restricții asupra valorii parametrului prin configurarea
constrângerilor de rută. De exemplu, următorul traseu aplică o limitare asupra
parametrului id, conform căreia valoarea id-ului trebuie să fie numerică.
routes.MapRoute(
name: "Student",
url: "student/{id}/{name}/{standardId}",
defaults: new { controller = "Student", action = "Index", id = UrlParameter.Optional, name = UrlParameter.Optional, standardId = UrlParameter.Optional },
constraints: new { id = @"\d+" }
);
• Deci, dacă dați o valoare nenumerică pentru parametrul id, atunci acea cerere va fi
gestionată de o altă rută sau, dacă nu există rute care se potrivesc, atunci va fi afișată
eroarea „Resursa nu a putut fi găsită”.
Register Routes
• Acum, după configurarea tuturor rutelor din clasa RouteConfig, trebuie să o înregistrați
în evenimentul Application_Start() din Global.asax, astfel încât să includă toate rutele
dvs. în RouteTable.
• Ruta conține modelul URL și informații despre handler. Modelul URL începe după
numele domeniului.
3.
4.
5.
6.
7.
1.
2.
3.
4.
5.
6.
7.
1.
2.
I.P. CEITI
Securizarea
aplicațiilor în
ASP.NET MVC
Carp Alexandra
Catedra Informatică I
Cuprins
1 Vulnerabilitatea Cross-Site Scripting (XSS).
Codul rău intenționat este Atacatorul oferă un link Atacatorul forțează Atacatorul injectează
inserat în aplicație (de obicei ca rău intenționat în browserul utilizatorului cod care pare sigur,
link) de către atacator. Codul exterior de la aplicația să redea o pagină rău dar este apoi rescris și
Descrierea
este activat de fiecare dată când vulnerabilă a site-ului intenționată. Datele din modificat de browser,
un utilizator face clic pe link. web către un utilizator. pagină în sine în timp ce analizează
Când se face clic, codul furnizează datele de marcajul. Un exemplu
rău intenționat este scriptare între site-uri. este reechilibrarea
trimis către site-ul web ghilimelelor neînchise
vulnerabil, care reflectă sau chiar adăugarea de
atacul înapoi către ghilimele la parametrii
browserul utilizatorului. neîntrețiți.
fiecare punct de intrare în aplicație. Aceasta declanșa o interacțiune de rețea în afara bandă atunci când
Link-uri utile
tutorial-with-examples
https://dejanstojanovic.net/aspnet/2018/march/handling-
02
cross-site-scripting-xss-in-aspnet-mvc/
https://security.snyk.io/vuln/SNYK-DOTNET-
03
MICROSOFTASPNETMVC-60000
https://www.codeguru.com/dotnet/preventing-cross-site-
04
scripting-attacks-in-asp-net-mvc-4/
05
06
https://security.snyk.io/vuln/SNYK-DOTNET-
01
MICROSOFTASPNETMVC-60000
Webografie 02
https://www.c-sharpcorner.com/article/web-protection-
library-wpl/
03 http://www.security.ase.md/publ/ro/pubro32/
04 https://portswigger.net/web-security/sql-injection
05
06
EntityFramework
CARP ALEXANDRA
CATEDRA INFORMATICĂ I
CENTRUL DE EXCELENȚĂ ÎN INFORMATICĂ ȘI TEHNOLOGII INFORMAȚIONALE
DEFINIȚIA
Definiția Oficială
• Multiplatformă: EF Core este un cadru multiplatformă care poate rula pe Windows, Linux și
Mac.
• Modelare: EF (Entity Framework) creează un EDM (Entity Data Model) bazat pe entități
POCO (Plain Old CLR Object) cu proprietăți get/set ale diferitelor tipuri de date. Utilizează
acest model atunci când interogează sau salvează datele entității în baza de date de bază.
• Interogare: EF ne permite să folosim interogări LINQ (C#/VB.NET) pentru a prelua date din
baza de date de bază. Furnizorul bazei de date va traduce aceste interogări LINQ în limbajul
de interogare specific bazei de date (de exemplu, SQL pentru o bază de date relațională). EF
ne permite, de asemenea, să executăm interogări SQL brute direct în baza de date.
Caracteristicile Entity Framework
• Urmărirea modificărilor: EF ține evidența modificărilor survenite în instanțe ale entităților dvs. (valori
proprietăți) care trebuie trimise în baza de date.
• Salvare: EF execută comenzile INSERT, UPDATE și DELETE în baza de date pe baza modificărilor
survenite la entitățile tale când apelezi metoda SaveChanges(). EF oferă, de asemenea, metoda asincronă
SaveChangesAsync().
• Concurență: EF utilizează în mod implicit Concurența optimistă pentru a proteja modificările de suprascriere
făcute de un alt utilizator, deoarece datele au fost preluate din baza de date.
• Tranzacții: EF efectuează gestionarea automată a tranzacțiilor în timp ce interogează sau salvează date. De
asemenea, oferă opțiuni de personalizare a gestionării tranzacțiilor.
• Memorarea în cache: EF include primul nivel de stocare în cache din cutie. Deci, interogările repetate vor
returna date din cache în loc să lovească baza de date.
Caracteristicile Entity Framework
1. https://www.entityframeworktutorial.net/what-is-entityframework.aspx
2. https://www.entityframeworktutorial.net/code-first/what-is-code-first.aspx
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
Introducere
ASP.NET. MVC și
Web FormS
Carp Alexandra
Catedra Informatica I
Unităţi de conţinut:
1. Inițiere în tehnologia ASP.NET. Platformele tehnologice web: Web Forms, MVC.
6. Mecanismul de vizualizare.
Inițiere în tehnologia ASP.NET. Platformele
tehnologice web: Web Forms, MVC.
• Mai mult decât cele de mai sus, formularele web ASP.NET oferă
managementul statului. Acesta include opțiuni care ajută la păstrarea
datelor atât pe bază de pagină, cât și pe bază de aplicații. De asemenea,
securitatea este un factor considerabil când vine vorba de aplicațiile web.
Prin urmare, formele web permit adăugarea de puncte de extensibilitate și
opțiuni de configurare care permit personalizarea diferitelor comportamente
de securitate în aplicație. În plus, există depanare și gestionarea erorilor
care ajută la identificarea problemelor din cod.
Ce este MVC?
ASP.NET MVC oferă un model numit Vizualizarea controlerului
modelului pentru a construi aplicația prin separarea aplicației web în trei secțiuni
principale. Ele sunt modelul, vizualizarea și controlerul. Modelul este utilizat
pentru implementarea logicii de afaceri a aplicației. Întrucât, vizualizarea este
componenta care conține interfețele utilizatorului; cu alte cuvinte, afișează
informații. Și, controlerul este componenta care gestionează interacțiunile
utilizatorului. Acesta gestionează datele de intrare și cererile utilizatorului.
În plus, MVC ajută la împărțirea complexității aplicației. Acesta împarte
sarcina de lucru și îmbunătățește mentenabilitatea codului. De asemenea, MVC
oferă control complet asupra comportamentului unei aplicații. Oferă, de
asemenea, un suport mai bun pentru dezvoltarea bazată pe teste. În plus,
facilitează controlul comportamentului aplicației oferind în același timp mediu
pentru a construi aplicații web mari, complexe și scalabile.
Diferența dintre
formularul Web și MVC
Definiție
MVC sau ASP.NET MVC este un cadru de aplicații web dezvoltat de Microsoft, care
implementează modelul model-view-controller (MVC). ASP.NET Web Forms este un
cadru de aplicații web și unul dintre mai multe modele de programare susținute de
tehnologia Microsoft ASP.NET.
Model
Controale
De asemenea, Webform are controale de server, dar MVC are ajutorul HTML. Aceasta
este o altă diferență majoră între Webform și MVC.
Managementul statului
Mai mult, în timp ce Webform urmează sintaxa Webforms, MVC urmează sintaxa personalizabilă
(Razor implicit).
Consecvență
Mai mult decât atât, Webform are Pagini Master pentru a face toate paginile web consistente, în timp
ce MVC are Layouts pentru a face paginile web mai coerente.
Vizualizări
Putem observa o diferență între Webform și MVC și în opiniile lor. În Webform, vizualizările sunt
strâns legate de cod. În MVC, vederile și logica sunt separate.
Mentenabilitatea codului
O altă diferență între Webform și MVC este că MVC oferă mai multă mentenabilitate a codurilor
decât Webforms.
Principala diferență între Webform și MVC este că Formularul web
urmează un model tradițional de dezvoltare bazat pe evenimente, în timp ce
MVC urmează un model de dezvoltare bazat pe model, vizualizare și model de
control.
Concluzie
ASP.NET este un cadru care face parte din platforma .NET pentru construirea,
implementarea și rularea aplicațiilor web. Formularele web sunt MVC sunt două stiluri de
dezvoltare disponibile în ASP.NET. Diferența dintre Webform și MVC este că Webformul
urmează un model tradițional de dezvoltare bazat pe evenimente, în timp ce MVC
urmărește un model de dezvoltare bazat pe model, vizualizare și control.
Bibliografie
• https://ro.sawakinome.com/articles/technology/what-is-the-difference-
between-webform-and-mvc.html#Webform
• https://www.javatpoint.com/
ARHITECTURA
ASP.NET MVC
Carp Alexandra
Catedra Informatică I
Arhitectura MVC există de mult timp în ingineria software. Majoritatea limbajelor de
programare folosesc MVC cu ușoare variații, dar conceptual rămâne același.
MVC vine drep abreviatură la Model, View și Controller. Respectiv, MVC separă o aplicație
în trei componente - Model, View(Vederea) și Controller.
Modelul reprezintă datele.
11.
12.
13. Specificati supraincarcarile metodei-ajutatoare View().
a. Atat un view cat si un model.
b. Un controller de transmis catre un View.
c. Atat un controller cat si un model.
d. Un model de transmis catre un View.
e. Un view anumit de returnat.
14. Un view poate fi utilizat de un singur controller.(Fals)
15.
16.
17. View discovery este procesul de:
a. “despachetare” a view-ului dupa ce acesta a fost apelat de catre controller.
b. “despachetare” a bibliotecii pentru view-urile existente in foldertul Views al
aplicatii MVC
c. ‘’depistare’’ a view care urmeaza a fi generat.
d. ‘’generare’’ a unui view nou ca raspuns la un request al browser-ului nostru.
18. Sablonul arhitectural MVC (Model-View-Connection) separa o aplicatie in trei categorii
principale de componente: Models, Views, Connections.(FALS)
19. Daca, la crearea controllerului, vom allege optiunea MVC 5 Controller Empty, vor fi
create o serie de View-uri corespunzatoare operatiilor de tip CRUD (Create, Read,
Update, Delete) asupra componentei Model associate.(FALS)
20. ?????????? (View si Index invers)
Carp Alexandra
FORMULARE ȘI HELPER-E Catedra Informatică I
IP Centrul de Excelență în
HTML. Informatică și tehnologii
informaționale
În aplicațiile web, principalul mod în care putem obține date de la un
utilizator este prin intermediul formularelor, deoarece în ele putem defini
câmpuri cu etichete și să le facem complete și apoi să folosim informațiile
respective pentru a ne îndeplini obiectivele. În ASP.NET MVC construcția
formularelor este destul de simplă, deoarece există multe metode și utilități
care ne ajută în generarea HTML, astfel încât lucrăm mai puțin și unind
formularul cu acțiunile controlerului putem genera foarte rapid o
funcționalitate . construirea formularului după cum știm că conceptul de
formă a existat pe web încă de la înființare, este una dintre cele mai primitive
forme de HTML pentru a capta date, dar acest lucru nu înseamnă că acestea
sunt învechite sau ineficiente; odată cu noile modificări și standarde, formele
au căpătat funcționalitate, combinația lor cu javascript permite validări live și
le putem oferi stiluri astfel încât să arate așa cum ne dorim
SĂ VEDEM ÎN IMAGINEA
URMĂTOARE UN FORMULAR FĂRĂ
STILURI:
ASP.NET MVC are o preferință pentru că ne facem propriile formulare, de aceea oferă instrumente
numite ajutoare care ne ajută să construim HTML repetitive într-un mod mai simplu, avem metode
precum Html.TextBox, Html.Password și altele care ne ajută generați câmpurile pe care le vom avea
în interiorul formularelor.
HELPER-E HTML
DEFINIȚIE
Clasa HtmlHelper redă controale HTML în vizualizarea Razor. Leagă
obiectul model de controale HTML pentru a afișa valoarea proprietăților modelului în
aceste controale și, de asemenea, atribuie valoarea controalelor proprietăților
modelului în timp ce trimiteți un formular web. Deci, utilizați întotdeauna clasa
HtmlHelper în vizualizarea razor în loc să scrieți manual etichete HTML.
URMĂTOAREA FIGURĂ ARATĂ UTILIZAREA
CLASEI HTMLHELPER ÎN VIZUALIZAREA RAS.
În figura de mai sus, @Html este un obiect al clasei HtmlHelper.
Simbolul (@ este folosit pentru a accesa obiectul de pe partea serverului în
sintaxa razor). Html este o proprietate a clasei HtmlHelper inclusă în clasa de
bază a Razor View WebViewPage. ActionLink() și DisplayNameFor() sunt
metode de extensie incluse în clasa HtmlHelper.
Clasa HtmlHelper generează elemente HTML. De exemplu,
@Html.ActionLink(„Creați nou”, „Creați”) ar genera eticheta de ancorare <a
href="/Student/Create">Creați nou</a>.