Uvod
Početkom devedesetih godina prošlog stoljeća, točnije 1992. godine, svoj je razvoj započeo World Wide Web, danas najpoznatiji i najkorišteniji dio Interneta. Svojim ubrzanim razvojem uvelike je pridonio ogromnoj popularnosti Interneta u svijetu te je kod većine ljudi postao njegovim sinonimom. Tako danas većina ljudi govoreći o Internetu, zapravo govori o Webu i Web stranicama.
Paralelno s razvojem Weba, tekao je i razvoj tehnologija koje su omogućavale njegovu implementaciju u sva područja kompjuterskog svijeta, ali i šire. Povijesno gledano, na scenu su stupali CGI (Common Gateway Interface) - prvi u nizu tzv. Web programskih jezika, PHP (Hypertext PreProcesor) - stvoren 1995., a populariziran tek u trećoj verziji (1997.)
Nešto malo prije popularizacije PHP-a, na Web scenu stupa Microsoft, izdavanjem Option Packa za Windows NT Server, u kojem unutar IIS-a 4.0 (Internet Information Services) uvodi značajnu novost - prvu verziju svojeg Web programskog jezika nazvanog Active Server Pages ili skraćeno ASP. Dvije godine kasnije, izlaskom Windowsa 2000, izlazi i IIS 5.0 s ASP-om 3.0 što će, budućnost će pokazati, biti ujedno i posljednja inačica "klasičnog" ASP-a.
Već tada Microsoftov ASP po svojim mogućnostima uvelike zaostaje za PHP-om koji je još k tome pod Open Source licencom i vrti se na Linux/Unix-based operativnim sustavima (besplatna platforma). Upravo zbog toga Microsoft prestaje razvijati staru tehnologiju i okreće se izradi nove, koja će, vrijeme će pokazati, predstavljati revoluciju i svijetu Web-a, ali i informatičkom svijetu uopće.
Negdje početkom 2001. godine, Microsoft objavljuje osnovnu arhitekturu svoje nove tehnologije nazvanu .NET. Sredinom 2002. godine finaliziran je .NET Framework 1.0 i MS Visual Studio 2002. Od tog vremena potječe sveopća opčinjenost .NET-om koja traje i danas.
Arhitektura .NET-a
Osnovu .NET-a predstavlja svakako .NET Framework. Najjednostavnije rečeno, to je sustav koji nadograđuje mogućnosti samog operativnog sustava. Radi se o posebnoj infrastrukturi koja programerima nudi gotova rješenja i funkcionalnosti da bi ubrzala i pojednostavila razvoj aplikacija svih vrsta i oblika.
Najvažnija sastavnica .NET Frameworka zove se Common Language Runtime ili skraćeno CLR. CLR je softverski sustav u kojem se kôd izvršava. Kada korisnik pokrene aplikaciju pisanu za .NET Platformu, CLR ju izvršava kako bi joj osigurao stabilnost i funkcionalnost. Instrukcije u programu se u realnom vremenu prevode u izvorni strojni kôd koji razumije računalo. Za taj je posao zaslužan JIT-kompajler (eng. Just In Time). Upravo prevođenje u izvorni strojni kôd računala, omogućilo je .NET-u prelazak na druge operativne sustave kao što su Linux ili MacOS (putem pomoćnog third-party MONO sustava).
Kako kompajliranje zasigurno usporava izvršavanje aplikacija, ono će se izvršavati samo jednom, a njegov će se rezultat spremiti kako bi se kasnije mogao koristiti bez ponovnog kompajliranja.
Aplikacije za .NET platformu mogu se pisati u raznim programskim jezicima, gotovo svim poznatijim. CLR, međutim, ne poznaje niti jedan taj jezik - on dobiva naredbe isključivo u jeziku nazvanom Microsoft Intermediate Language (skraćeno MSIL), temeljen na pravilima koja se nazivaju Common Language Specifications (CLS). Stoga je jasno da mora postojati kompajler koji će programski jezik u kojem programer piše kôd prevesti u MSIL kako bi ga CLR razumio. Ovi kompajleri nazivaju se IL-kompajleri te su dostupni za velik broj programskih jezika. Microsoft je izdao kompajlere za pet jezika: C#, J#, C++, Visual Basic i JScript, dok su se ostali proizvođači softvera potrudili oko brojnih drugih kao što su: Perl, Python, Cobol, Eiffel…
Kako se svi ovi jezici prvo pretvaraju u MSIL, sasvim je svejedno u kojem ćete od njih pisati aplikacije. Iz ovoga također proizlazi i druga velika mogućnost .NET-a - višejezično pisanje aplikacija. Tako sada više nije nužno da svi programeri koji rade na određenom projektu poznaju isti programski jezik, važno je samo da je podrška za njihov jezik dostupna u .NET-u, odnosno da postoji IL-kompajler za njihov jezik.
Mogućnosti koje CLR nudi su izuzetne, no same po sebi nisu dovoljno uporabljive iz ljudskog aspekta. Upravo zbog toga u .NET Frameworku postoje setovi klasa koje omogućavaju brzo i jednostavno korištenje mogućnosti koje CLR nudi.
Osnovne klase
Prva i osnovna skupina klasa zove se Base Class Library ili skraćeno BCL te sadrži osnovne funkcionalnosti koje se koriste u programiranju (funkcije za transformaciju teksta, mrežnu komunikaciju, provjeravanje sigurnosnih prava, hvatanje unosa s tipkovnice…)
Svojevrsna nadogradnja osnovne biblioteke sadrži set klasa zaduženih za komunikaciju s bazama podataka (ADO.NET) te XML-om. One omogućuju povezivanje aplikacija s bazama podataka (kao MS Access, SQL Server, Oracle…), kao i manipulaciju podacima u XML-dokumentima.
Web Forms
Web Forms je dio skupa klasa nazvanog ASP.NET i zadužen je za razvoj web aplikacija. ASP.NET nasljednik je ASP-a, ali definitivno nije njegova nova inačica. Sam ASP.NET svakako predstavlja budućnost web programiranja. Tzv. Web forme u sebi sadrže sve objekte potrebne za objektno-orijentirani pristup generiranju HTML sadržaja, koji predstavljaju konačni produkt ovakvog tipa web aplikacija.
Web Servisi
.NET donosi novost u programiranju na području web-servisa. Radi se o prihvaćenom standardu za komunikaciju između aplikacija pomoću SOAP poruka prenošenih Webom. Pravu snagu web servisa predstavlja mogućnost integracije različitih sustava i aplikacija putem standardiziranog načina komunikacije. Web servisi zapravo predstavljaju web aplikacije koje pružaju određenu funkcionalnost udaljenim programima.
Njihovo korištenje (konzumiranje, eng. consuming) u aplikacijama relativno je jednostavno: u svojoj aplikaciji dodate web referencu na željeni web servis, upišete njegovu adresu i možete ga pozivati iz svoje aplikacije kao da se radi o bilo kojoj drugoj klasi koja se nalazi unutar Vaše aplikacije, a ne negdje na Internetu. Naravno, aplikacija u trenutku korištenja funkcionalnosti web servisa mora imati pristup Internetu.
Windows Forms
Windows Forme predstavljaju standardne klase za rad s Windows okruženjem. Microsoft je nanovo izradio (skoro) sve objekte standardnog Windows sučelja (Tree View i List View je ostao isti, napravljeni su samo "omotači" koji omogućuju njihovo korištenje u .NET-u) te im dodao novije opcije.
Svakako je velika novost i GDI+ tehnologija (ne toliko karakteristična za same WinForms) koja omogućuje napredni rad s grafikom te puno jednostavnije iscrtavanje OwnerDrawn kontrola nego dosad.