Modul 1 - Lekcija 1.2
Razumijevanje konfiguracije aplikacije i kako MVC obrađuje HTTP zahtjeve
📚 Nivo: Početni | 🎯 Praktični primjeri: 5
Global.asax je poseban fajl koji nasljeđuje HttpApplication. Definiše
događaje na nivou cijele aplikacije.
Application_Start() - Samo jednom kada aplikacija startuje. Idealno za
registraciju ruta i konfiguracija (App_Start).Application_BeginRequest() - Prije svakog HTTP zahtjeva (Logovanje, default
Auth).Application_Error() - Neobrađene greške (Preusmjeravanje na Error Page).Application_End() - Gašenje aplikacije.Sadrži klase koje konfigurišu različite aspekte aplikacije prilikom pokretanja.
Definira obrasce URL-ova i njihovo mapiranje na Controller/Action (npr.
{controller}/{action}/{id}).
Spajanje (Bundling) i smanjivanje (Minification) CSS/JS fajlova. Povećava brzinu aplikacije.
Registruje globalne filtere, poput HandleErrorAttribute ili globalne
autorizacije.
XML fajl koji sadrži srž sistemskih postavki MVC okruženja.
Omogućava aplikaciji pristup podacima.
<connectionStrings>
<!-- Preporuka za produkciju -->
<add name="StateAuthDB"
connectionString="Server=sql-prod;Database=DB;Integrated Security=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>
Integrated Security=True) u
produkciji!Definiranje Key-Value parova, poput email parametara, API ključeva i postavki sistema.
<appSettings>
<add key="InstitutionName" value="Ministarstvo Finansija" />
<add key="EnableAuditLog" value="true" />
</appSettings>
// U C# Kodu
string naziv = ConfigurationManager.AppSettings["InstitutionName"];
bool isAudit = bool.Parse(ConfigurationManager.AppSettings["EnableAuditLog"]);
Najbolja praksa: Koristiti Helper klase (npr. ConfigHelper.GetBool) za
null-safe čitanje.
| Sekcija | Značenje |
|---|---|
<compilation debug="true"> |
Prikazuje detaljne greške. MORA biti "false" u produkciji! |
<customErrors mode="RemoteOnly"> |
Preusmjerava na prilagođene error (404/500) stranice za vanjske korisnike. |
<sessionState mode="InProc"> |
Čuva session. "SQLServer" ili "StateServer" mode je obavezan za Load Balancere! |
<httpRuntime enableVersionHeader="false"> |
Krije verziju servera. Sigurnosna praksa! |
<pages validateRequest="true"> |
Sprečava jednostavne XSS napade presretanjem rizičnih HTML unosa. |
Application_BeginRequest u Global.asax se izvršava.Application_EndRequest se izvršava.Naspram WebForms: Ovaj ciklus je strogo lineran. Nema zamršenih postback eventova i lifecycle problema!
U ovoj lekciji naučeno je:
Global.asax rukuje sistemskim HTTP zahtjevima i početkom/krajem aplikacije.App_Start konfiguriše uvezivanje skripti, rute, i filtere.Web.config je srž sa posebnim akcentom na sigurnosne "Production" prakse.U Modulu 2 prelazimo na rad sa podacima korištenjem Entity Framework 6 - Upoznaćemo se sa Code-First i Database-First pristupima!