Sunteți pe pagina 1din 137

© Alexandra Carp, catedra Informatică I

© Alexandra Carp, catedra Informatică I


© Alexandra Carp, catedra Informatică I
© Alexandra Carp, catedra Informatică I
Model

View Controller

© Alexandra Carp, catedra Informatică I


Rutarea în ASP.NET

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.

• Rutarea ne permite să definim un model URL care se mapează la handler-ul de


solicitare. Acest handler de solicitare poate fi un fișier sau o clasă. În aplicația
ASP.NET Webform, handlerul de solicitare este fișierul .aspx, iar în MVC, este clasa
Controller și metoda Action.

• De exemplu, http://domain/students poate fi mapat la http://domain/studentsinfo.aspx


în ASP.NET Webforms, iar aceeași adresă URL poate fi mapată la Student Controller și
metoda de acțiune Index în MVC
Ce este ruta?
• Ruta definește modelul URL și informațiile despre handler. Toate rutele configurate ale
unei aplicații stocate în RouteTable și vor fi utilizate de motorul de rutare pentru a
determina clasa sau fișierul de gestionare adecvat pentru o solicitare primită.
Figura următoare ilustrează procesul de rutare.
Fiecare aplicație MVC trebuie să configureze (înregistrează) cel puțin o rută configurată de
cadrul MVC în mod implicit. Puteți înregistra o rută în clasa RouteConfig, care se află în
RouteConfig.cs în folderul App_Start. Următoarea figură ilustrează cum să configurați o
rută în clasa RouteConfig.
Configurarea unei rute
• După cum puteți vedea în figura de mai sus, ruta este configurată folosind metoda de
extensie MapRoute() a RouteCollection, unde numele este „Default”, modelul URL
este „{controller}/{action}/{id}” și parametrul implicit pentru controler, metoda de
acțiune și parametrul id. Valorile implicite specifică ce controler, metoda de acțiune sau
valoarea parametrului id ar trebui utilizate dacă nu există în adresa URL a cererii de
intrare.

• Î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.

• Dacă adresa URL nu conține nimic după numele domeniului, atunci


controlerul implicit și metoda de acțiune vor gestiona cererea. De exemplu,
http://localhost:1234 ar fi gestionat de HomeController și metoda Index()
așa cum este configurată în parametrul implicit.
Multiple Routes
• De asemenea, puteți configura o rută personalizată folosind metoda extensiei
MapRoute. Trebuie să furnizați cel puțin doi parametri în MapRoute, numele rutei și
modelul URL. Parametrul Defaults este opțional.

• 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.

public class MvcApplication : System.Web.HttpApplication


{
protected void Application_Start()
{
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
Figura următoare ilustrează procesul de
înregistrare a rutei.
De reținut:
• Rutarea joacă un rol important în cadrul MVC. Rutarea mapează adresa URL către
fișierul fizic sau clasă (clasa de controler în MVC)

• Ruta conține modelul URL și informații despre handler. Modelul URL începe după
numele domeniului.

• Rutele pot fi configurate în clasa RouteConfig. De asemenea, pot fi configurate mai


multe rute personalizate.

• Constrângerile rutei aplică restricții asupra valorii parametrilor.

• Ruta trebuie înregistrată în evenimentul Application_Start din fișierul


Global.ascx.cs.
The END!
1.
2.

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).

2 Biblioteca de securizare a aplicației ASP.NET - Microsoft Web Protection Library.

3 Vulnerabilitatea SQL Injection.

4 Metode de securizare împotriva SQL Injection.

5 Vulnerabilitatea Cross-Site Request Forgery (CSRF).

6 Metode de securizare împotriva CSRF.


Vulnerabilitatea
Cross-Site
Scripting (XSS).
Cross-site Scripting (XSS) se referă la atacul de
injectare de cod pe site-ul client, în care un
atacator poate executa scripturi rău intenționate
într-o aplicație web. Practic, atacatorul reușește
să încarce cod de script rău intenționat pe site-ul
web, care va fi mai târziu oferit utilizatorilor și
executat în browser-ul lor.
Este adesea folosit pentru a fura intrările de
formulare, valorile cookie-urilor, pentru a
schimba aspectul paginii sau pentru a
redirecționa către site-ul atacatorilor.
ASP.NET are încorporat validarea cererii care
protejează foarte eficient de orice tip de date
suspecte trimise într-o solicitare.
Partea rămasă este protejarea de partea clientului,
așa că, chiar dacă ați injectat script în site-ul dvs. de
la un atac, sfârșitul utilizat este încă protejat de
browser, dar mai întâi trebuie să spuneți browserului
ce politică să aplice. Acest lucru asigură protecția
XSS atât din partea serverului, cât și a clientului.
Tipuri de atacuri
Există câteva metode prin care XSS poate fi manipulat:

Tipul Stored Reflected DOM-based Mutated

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.

Originea Server Server Client


Medii afectate
Următoarele medii sunt susceptibile la un atac XSS:
Servere web
Servere de aplicații
Medii de aplicații web
Cum să previi?
Această secțiune descrie cele mai bune practici de top concepute pentru a vă
proteja în mod specific codul:
Dezinfectați datele introduse într-o solicitare HTTP înainte de a le reflecta
înapoi, asigurându-vă că toate datele sunt validate, filtrate sau evadate
înainte de a trimite ceva înapoi utilizatorului, cum ar fi valorile parametrilor
de interogare în timpul căutărilor.
Convertiți caractere speciale, cum ar fi ?, &, /, <, > și spații în
echivalentele lor codificate HTML sau URL.
Oferiți utilizatorilor opțiunea de a dezactiva scripturile de la parte client.
Redirecționează solicitările nevalide.
Detectați conectările simultane, inclusiv cele de la două adrese IP separate
și invalidați acele sesiuni.
Utilizați și aplicați o Politică de securitate a conținutului (sursa: Wikipedia)
pentru a dezactiva orice caracteristică care ar putea fi manipulată pentru
un atac XSS.
Citiți documentația pentru oricare dintre bibliotecile la care se face referire
în codul dvs. pentru a înțelege ce elemente permit HTML încorporat.
Ce este
Microsoft Web
Protection
Library (WPL)?
WPL este un set de ansambluri .NET puse
împreună pentru protecție împotriva celor mai
obișnuiți vectori de atac. WPL cuprinde Anti-XSS,
care este o mulțime de funcții de codificare
pentru intrarea utilizatorului, care include atribute
JavaScript, XML, CSS, HTML și HTML. WPL are,
de asemenea, un Security Runtime Engine care
funcționează ca un scut care protejează aplicațiile
web de vectorii de atac obișnuiți.
Un atac cu scripturi încrucișate (XSS) este un atac foarte frecvent
care implică introducerea unui utilizator rău intenționat (de
exemplu, sub formă de scripturi) de la atacatori care utilizează
câmpuri de formular prost validate pe aplicațiile web. Anti-XSS
oferă o clasă care poate fi utilizată pentru a codifica toate intrările
utilizatorului pe formulare din MVC, pagini web și aplicații de
formulare web. Utilizează o abordare de tip listă albă care implică
verificarea intrării așteptate de la utilizatori și, dacă nu este
recunoscută, clasifică acea intrare ca un posibil pericol sau posibil
rău. Acesta cuprinde codificatoare pentru:
HTML
Atribute HTML
CSS
XML
JavaScript
WPL Architecture
Următoarea este o
diagramă care arată
modelul arhitectural
al WPL.
Vulnerabilitatea
SQl Injection
Se stie ca astazi majoritatea aplicatiilor-web îsi pastreaza datele în baza de
date, deoarece acest fapt permite de a genera dinamic pagini. Aplicatia-
web primeste de la utilizatori date, ulterior aceste date sunt folosite de
aplicatie/script pentru generarea unei cereri la baza de date. Evident ca în
majoritatea cazurilor pentru a genera cereri la baza de date se utilizeaza
limbajul SQL (Structured Query Language).
SQL Injection este o vulnerabilitate ce apare în cazurile cînd datele primite
de la utilizatori nu se prelucreaza corect. Ca consecinta – raufacatorul
potential poate schimba cererea la baza de date, asfel fiind posibil furtul
datelor private.
Aceasta lucrare reflecta tehnicile simple si avansate ce sunt folosite de
raufacatori în procesul de exploatare a vulnerabilitatii SQL Injection. Aceste
tehnici demonstreaza cum pot fi cu usurinta obtinut continutul bazelor de
date, datele private, realizarea atacului DoS, obtinerea privilegiilor maxime
etc. Lucrarea e un studiu care este în primul rînd destinat web-
programmerilor si expertilor în securitate, pentru a-i atrage atentia la
seriozitatea si actualitatea temei abordate.
În lucrare ma voi referi mai mul la aplicatiile ce lucreaza cu SGBD MySQL,
MS SQL Server, Oracle deoarece acestea sunt cele mai raspîndite. Aceasta
nu înseamna ca celelalte SGBD sunt mai securizate.
Care este impactul
unui atac de succes
cu injecție SQL?
Un atac de injecție SQL de succes poate duce
la acces neautorizat la date sensibile, cum ar fi
parole, detalii despre cardul de credit sau
informații personale despre utilizator. Multe
încălcări de date importante din ultimii ani au
fost rezultatul atacurilor cu injecție SQL, care
au dus la daune reputației și amenzi de
reglementare. În unele cazuri, un atacator
poate obține o ușă în spate persistentă în
sistemele unei organizații, ceea ce duce la un
compromis pe termen lung care poate trece
neobservat pentru o perioadă lungă de timp.
Exemple de injectare SQL
Există o mare varietate de vulnerabilități, atacuri și tehnici de
injectare SQL, care apar în diferite situații. Câteva exemple
comune de injecție SQL includ:
Preluarea datelor ascunse, unde puteți modifica o interogare
SQL pentru a returna rezultate suplimentare.
Subvertirea logicii aplicației, unde puteți modifica o interogare
pentru a interfera cu logica aplicației.
Atacuri UNION, unde puteți prelua date din diferite tabele de
baze de date.
Examinarea bazei de date, de unde puteți extrage informații
despre versiunea și structura bazei de date.
Injecție SQL oarbă, în care rezultatele unei interogări pe care o
controlați nu sunt returnate în răspunsurile aplicației.
Trimiterea caracterului ghilimele simple ' şi căutarea

Cum să detectați erorilor sau a altor anomalii.


Trimiterea unei sintaxe specifice SQL care evaluează la

vulnerabilitățile de valoarea de bază (originală) a punctului de intrare și la o


valoare diferită și căutând diferențe sistematice în

injectare SQL? răspunsurile aplicației rezultate.


Trimiterea unor condiții booleene, cum ar fi OR 1=1 și OR
Majoritatea vulnerabilităților de injectare 1=2, și căutarea diferențelor în răspunsurile aplicației.
SQL pot fi găsite rapid și fiabil folosind
Trimiterea sarcinilor utile concepute pentru a declanșa
scanerul de vulnerabilități web al Burp Suite.
întârzieri atunci când sunt executate într-o interogare SQL și
căutarea diferențelor în timpul necesar pentru a răspunde.
Injecția SQL poate fi detectată manual prin
utilizarea unui set sistematic de teste pentru Trimiterea sarcinilor utile OAST concepute pentru a

fiecare punct de intrare în aplicație. Aceasta declanșa o interacțiune de rețea în afara bandă atunci când

implică de obicei: este executată în cadrul unei interogări SQL și monitorizarea


oricăror interacțiuni rezultate.
Tutorial de atac Cross Site Scripting (XSS) cu exemple, tipuri și
prevenire:
01
https://ro.myservername.com/cross-site-scripting-attack-

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ă

Entity Framework (EF) este un mapper obiect-relațional care permite


dezvoltatorilor .NET să lucreze cu date relaționale folosind obiecte specifice
domeniului. Elimină necesitatea majorității codului de acces la date pe care
dezvoltatorii trebuie să îl scrie de obicei.
Cu alte cuvinte, Entity Framework este un cadru ORM open-source pentru
aplicațiile .NET/ASP.NET ale Microsoft. Permite dezvoltatorilor să lucreze cu
date utilizând obiecte din clase specifice domeniului, fără a se concentra pe
tabelele și coloanele bazei de date subiacente în care sunt stocate aceste date.
Cu Entity Framework, dezvoltatorii pot lucra la un nivel mai ridicat de
abstractizare atunci când se ocupă de date și pot crea și menține aplicații
orientate către date cu mai puțin cod în comparație cu aplicațiile tradiționale.
Următoarea figură ilustrează unde se încadrează
Entity Framework în aplicația dvs.
Caracteristicile Entity Framework
Caracteristicile Entity Framework

• 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

• Convenții încorporate: EF respectă convențiile asupra modelului de programare a


configurației și include un set de reguli implicite care configurează automat modelul
EF.
• Configurații: EF ne permite să configuram modelul EF utilizând atribute de
adnotare a datelor sau Fluent API pentru a înlocui convențiile implicite.
• Migrații: EF furnizează un set de comenzi de migrare care pot fi executate pe
consola NuGet Package Manager sau pe interfața de linie de comandă pentru a crea
sau gestiona Schema bazei de date subiacente.
Cele Mai Recente Versiuni Ale Entity Framework
Microsoft a introdus Entity Framework în 2008 cu .NET Framework
3.5. De atunci, a lansat multe versiuni de Entity Framework. În prezent, există
două versiuni recente de Entity Framework: EF 6 și EF Core. Următorul tabel
listează diferențele importante dintre EF 6 și EF Core.
Principiul Code First În Entity Framework
Ce Este Code-first?
Entity Framework a introdus abordarea Code-First cu Entity
Framework 4.1. Code-First este util în principal în Domain Driven Design. În
abordarea Code-First, vă concentrați pe domeniul aplicației dvs. și începeți să
creați clase pentru entitatea de domeniu, mai degrabă decât să vă proiectați mai
întâi baza de date și apoi să creați clasele care se potrivesc cu designul bazei de
date. Următoarea figură ilustrează abordarea prin cod.
După cum puteți vedea în figura de mai sus, EF API va crea baza de
date pe baza claselor și configurației domeniului dvs. Aceasta înseamnă că
trebuie să începeți mai întâi să codificați în C# sau VB.NET și apoi EF va crea
baza de date din codul dvs.
CODE-FIRST WORKFLOW

Figura de mai jos ilustrează fluxul de lucru de dezvoltare a principiului


CodeFirst.
Fluxul de lucru în dezvoltare utilizând abordarea CodeFirst ar fi:
Creați sau modificați clasele de domeniu -> Configurați aceste clase de
domenii folosind Fluent-API sau atributele de adnotare a datelor -> Creați sau
actualizați schema bazei de date utilizând migrarea automată sau migrarea
bazată pe cod.
BIBLIOGRAFIE

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.

2. Interfața mediului de dezvoltare.

3. Facilitățile mediului de dezvoltare.

4. Structura proiectului MVC.

5. Convențiile denumirii componentelor proiectului.

6. Mecanismul de vizualizare.
Inițiere în tehnologia ASP.NET. Platformele
tehnologice web: Web Forms, MVC.

ASP.NET este un cadru web dezvoltat de Microsoft. Oferă modelul de


programare, instrumentele și diverse servicii pentru a construi aplicații web. De
asemenea, face parte din platforma .NET. Programatorii pot scrie aceste aplicații
utilizând limbi de programare precum C #, Visual Basic și JavaScript. În plus,
există diferite stiluri de dezvoltare disponibile în ASP.NET pentru a crea aplicații.
Web Form și MVC sunt două dintre ele. Webformul are built-in controale de date
cu acces puternic de date. Pe de altă parte, MVC este ușor și oferă multe
caracteristici care permit dezvoltarea rapidă și agilă.
Ce este Webform?
Webform este construit pe server și generează ieșire în browser. Este
compatibil cu orice browser și un limbaj de programare care este compatibil cu
.NET Common Language Runtime (CLR). Programatorul poate crea formulare
web ASP.NET folosind Visual Studio. De asemenea, el poate trage și fixa cu
ușurință comenzile serverului pe formularul web pentru a crea interfața. În plus,
pot fi implementate evenimente și metode pentru acele controale. Logica de
afaceri poate fi scrisă folosind un limbaj de programare, cum ar fi C # sau Visual
Basic.
• În plus, formularul web constă în mai multe controale de server. Există
casete de text, butoane, hyperlink-uri de etichete, butoane radio, casete de
selectare etc. De asemenea, există comenzi pentru conectarea la sursele de
date și afișarea datelor, cum ar fi DataGrids și DataLists. În plus, pagina
principală poate fi aplicată tuturor paginilor. Aceasta ajută la crearea
tuturor paginilor web la fel. În plus, ajută la menținerea unui aspect
consistent în întreaga aplicație web. De asemenea, este posibil să se utilizeze
script-uri client pentru a construi interfețe utilizator receptive.

• 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

Principala diferență 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, model de control.

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

Gestionarea de stat contribuie la o altă diferență între Webform și MVC. Asp.Net


Webform are tehnici de management de stat. Dar, MVC nu are tehnici automate de
gestionare a statului.
Sintaxă

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.

Să înțelegem arhitectura MVC suportată în ASP.NET C#.

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.

■ Modelul reprezintă forma datelor.


■ O clasă în C# este folosită pentru a descrie un model.
■ Obiectele model stochează date preluate din baza de date.
View-ul este interfața cu utilizatorul.

■ View în MVC este o interfață de utilizator.


■ View-ul afișează datele modeului utilizatorului și, de asemenea, îi permite să le
modifice.
■ Vizualizarea în ASP.NET MVC este compus/ creat de HTML, CSS și o sintaxă specială
(sintaxa Razor) ceea ce facilitează comunicarea cu modelul și controlerul.
Controller-ul este operatorul ce
gestionează solicitările utilizatorului.
■ Controlerul gestionează cererea utilizatorului.
■ De obicei, utilizatorul folosește View-ul și lansează / transmite o solicitare HTTP, care
va fi gestionată de controler.
■ Controlorul procesează cererea și returnează View-ul corespunzător ca răspuns.
Figura de mai jos ilustrează interacțiunea
dintre Model, View și Controller.
Figura de mai jos ilustrează flow-ul
requestului / solicitării utilizatorului în
ASP.NET MVC.
Conform figurii de mai sus, atunci când un utilizator introduce o adresă URL în browser,
aceasta merge la serverul web și este direcționată / rutată către un controler. Un controler
execută vizualizarea și modelele asociate pentru acea cerere, creează răspunsul și îl trimite
înapoi la browser.
1. Ce optiune veti selecta pentru a crea un proiect ASP.NET, utilizand .NET Framework, pe
c#, utilizand sablon de MVC?

2. Reconstruiti maparea implicita a unei rute in MVC


http://{controller}/{action}/{id}
3. Selectati din lista de mai jos care sunt cerintele ce trebuie sa fie indeplinite de catre un
action a unui controller(a unei metode de actiune)
a. Trebuie sa fie o metoda privata
b. Nu poate fi o metoda statica
c. Trebuie sa fie o metoda publica
d. Nu poate fi supraincarcata
e. Poate fi o metoda statica
f. Nu poate fi suprascrisa
4. In cadrul MVC, cererile utilizatorului sunt prelucrate de catre un Controller. (Adevarat)
5. ASP.NET este un framework web Open-Source pentru construirea de aplicatii si servicii
web rapide si sigure cu .NET.
6. Metoda action poate fi o metoda statica intr-o clasa controller.(Fals)
7. Indicati componentele pattern-ului URL prezent in imaginea de mai jos.

8. Modelul este Forma datelor.


9.
10. Constrangerile rutei aplica restrictii asupra valorii parametrilor.(Adevarat)

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>.

Există multe metode de extensie pentru clasa HtmlHelper, care creează


diferite controale HTML.
URMĂTORUL TABEL LISTEAZĂ METODELE
HTMLHELPER ȘI CONTROLUL HTML PE CARE
FIECARE METODĂ LE REDĂ.
Extension Method Strongly Typed Method Html Control
Html.ActionLink() NA <a></a>
Html.TextBox() Html.TextBoxFor() <input type="textbox">
Html.TextArea() Html.TextAreaFor() <input type="textarea">
Html.CheckBox() Html.CheckBoxFor() <input type="checkbox">
Html.RadioButton() Html.RadioButtonFor() <input type="radio">
Html.DropDownList() Html.DropDownListFor() <select>
<option>
</select>
Html.ListBox() Html.ListBoxFor() multi-select list box: <select>
Html.Hidden() Html.HiddenFor() <input type="hidden">
Html.Password() Html.PasswordFor() <input type="password">
Html.Display() Html.DisplayFor() HTML text: ""
Html.Label() Html.LabelFor() <label>
Html.Editor() Html.EditorFor() Generates Html controls based on data
type of specified model property e.g.
textbox for string property, numeric
field for int, double or other numeric
type.
Diferența dintre apelarea metodelor HtmlHelper și utilizarea etichetelor HTML este
că metoda HtmlHelper este concepută pentru a facilita legarea pentru vizualizarea datelor sau
a datelor modelului.
The End!

S-ar putea să vă placă și