Deployment Aplikacije u IIS

Modul 10 - Lekcija 2 (ZAVRŠNA)

Izbacivanje "Release" kodova u Internet Informacijske Servise i GitHub BackUp CodeBase-a

⏱️ Trajanje: ~3 časa | 📚 Nivo: Finaliziranje Softwera | 🎯 Završni korak

📖 Pripreme za Puštanje Aplikacije u Javni Web Eter ("Release")

Kao programer vi razvijate aplikaciju u "DEBUG" modu (Vaš vizuelni studio trči na svom serveru "IIS Express", sa uključenim greškama i ogromnim ispisima Exception linija u Žutoj Boji).

Prebacivanja Loptice na RELEASE Okruženje

Za pustanje rjesenja na stvarni web server institucije i pravi Windows IIS server Vi mijenajte Build Ociju na "Release". Visual Studio tada vrši finalnu kompresiju koda ignorisući i uklanjajuce usputne pauze za testiranja (BreakPoints)!

📤 GIT: Pohranjivanje Sigurnosne Kode Baze (Verzioniranje)

Prije prelaska na server, moramo smjestii naš radni direktoriji na stabilan i siguran GitHub udaljeni (Remore) repozitoriji u cloudu, kako jedan kvar SSD PC Diska usljed udara groma nebi ugasio vaš posao od 6 mjeseci na e-Upravi!

// Otvori "Package Manager Console" ili CMD Terminal unutar Vasaoj Root foldera e-Uprave
1. git init // Paljenje verizonisanja u samom folderu
2. git add . // Zabiljezi APSOLUTNO SVE IZMJENE svih C# Viewova i Modela!
3. git commit -m "Finalno zavrsio aplikaciju e-uprave za deployment" // Udaranje Pecata
4. git branch -M main 
5. git remote add origin https://github.com/vladaba/e-uprava.git // POveznica vaseg PC-a sa OBLAKOM
6. git push -u origin main // SLANJE

⚙️ Web.config Transformacija Baza Podataka

Vaša aplikacija do malo ranije spajala se na neku testnu PC Bazu (npr: "SQLEXPRESS (localdb)"). Server koji ugosti vaš publish naravno nema taj lokalni db. Treba nam pametni prekidač koji zna mjenjati Web.Config OVISNO jel radite za svojim CPU Strojem, ili se on nalazi na mreži (Release):

Web.Release.config datoteka

ASP.NET automatski izvršava ove transformaciju pri Publishu!

<!-- Ovaj Kod mijenja String od baze unutar default web Configa prilikom PUSHLIShA! -->
<configuration>
  <connectionStrings>
    <add name="DefaultConnection" 
         connectionString="Data Source=192.162.2.1;Initial Catalog=Produkcija;Integrated Security=True"
         xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
</configuration>

🌐 Windows IIS (Internet Information Services) Web Server

Proces objavljivanja fajlova:

  • Desni klik na Glavni Web Projekt u C# Solution Exploreru -> Publish
  • Odabir opcije "Target Location: Folder" (npr: C:\Publish_Vlada)
  • Ovaj publish napraviti ce Binarni DLL od Vaseg C# Koda i preslikati css html foldere!
  • Prekopirati (USB ili FTP Mrežom) taj komplet fascikl na Window's IIS Server Računar Vaše institucije na mreznom disku C:\inetpub\wwwroot\
  • Pokrenuti upravnik IIS Manager program na tom serveru PC i dodati "New Web Site" spajajući ga na Vaš zalijepljeni direktorij. Aplikacija se diže Online na port 80!

⚠️ Globalno gašenje opisa o sistemskim greškama (Hardening)

Ukoliko produkcijska databaza neočekivano stane s radom! Žuti ekrani smrt donose detalje našeg koda napadačima sa otvorenim Query kodovima! Ovo zakonsi UVIJEK iskljucujemo u konfigu!

<system.web>
  <!-- Preusmjerava na nase kontrolerske Stranice "U Izradi / Ne radi"! Da niko nikad ne vidi kod Exceptiona! -->
  <customErrors mode="On" defaultRedirect="~/Error/Index">
    <error statusCode="404" redirect="~/Error/NemaEkrana" />
    <error statusCode="500" redirect="~/Error/ServerStanicaDolje" />
  </customErrors>
</system.web>

🏁 KONAČNI ZAKLJUČAK KURSA

  • Git Deployment sa stalnim commitovima štiti od gubitka na projektima na kom radite stotinama besanih noći, omogućavajući povratak koda kroz mašinu vremena git-history linije!
  • ✅ Web aplikacija za ASP.NET framework može primati saobraćaj i iscrtavati podatke korisnicima bez prestanka - ukoliko IIS server ima nesmetan uptime i stabilan mrezni port i javnu IP adresu.
  • ✅ Implementacija ASP.NET, EntityFrameworka, jQuerya i Bootstrapa daje mogućnosti dizajniranja samostalnog full-stack softwerskog rješenja za široku lepezu poslovnih potreba !