<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="windows-1250" %> SEMINAR-C#
U prevođenju na: German Spanish Italian French Greek Hungarian
Krapanj Spužvari Gdje smo O samostanu Zar je to kraj
 

C# jezik opće namjene
Seminarski rad:
Marin Jaram

UVOD

U seminaru će biti riječ o predstavljanju MS .NET platforme kroz sastavne dijelove, kao neizostavnu potporu novom i modernom programskom jeziku. Ponajviše će se opisivati okruženje u kojem bi C# morao poslužiti kao važan alat. Naglasak će biti kroz implementaciju na Web-u. Primjer za upoznavanje usluge web servisa će nam poslužiti kao ilustracija integriranosti mrežnih tehnologija i kakvu podršku ima C# za implementaciju istih.

 

.NET Platforma

U 6. mjesecu 2000. Microsoft predstavlja novo razvojno okruženje, MS Visual Studio sad izlazi pod novim  tržišnim imenom MS Visual Studio .NET. Promjen u imenu proizvoda je pokazatelj tržišne orijentacije i ciljane publike. Nova strategija je privući čim više mrežnih programera . Kao pogodnos i olakšan prijelaz sa ostalih jezika (npr. one and only Java ) nudi novi i moderan objektno orijentiran programski jezik C#. Programski jezik koji je u mnogočemu sličan Java sintaksi, između ostalog bi trebao biti i brži u izvođenju instrukcija.

Razvoj je temeljen na pojednostavljenju uspješnih programskih jezika npr. C++ ili oplemenjivanju nekih manje hvaljenih kao što je Visual Basic.

Doseg i mogućnosti .NET su velike . Sam .NET tehnologija se sastoji od nekoliko odvojenih cjelina. To su:

  • Set programskih jezika, uključujući C# i Visual Basic .NET ; set razvojnih alata, uključujući Visual studio .NET; gotovo sve razrede biblioteka za implementiranje web servisa kao i web i Windows-e aplikacija; tu je i nezaobilazni novi proizvod Common Language Runtime (CLR) za izvršavanje objekata nastalih sa ovim alatom
  • Zamjenu za SQL Servers, Exchange 2000, BizTalk 2000, u vidu .NET Entrprise Servera koji omogućavaju specijalizirane funkcije za relacijske baze podataka, email, B2B poslovanje itd.
  • Nudi komercijalne web servise, poznate pod imenom Project Hailstorm, besplatno.
  • Podršku ne samo PC već i uređajima kao što su mobilni aparati , igrače konzole ...

 

Slika 1. .NET Framework arhitektura

.NET Framework

MS .NET ne samo da je prevlada razlike među jezicima već ih je na elengatan način integrirao. U praksi to bi značilo da možete pristupiti već kompajliranim aplikacijam i koristiti njihove objekte, naslijeđene razrede i rukovati sa iznimkama (eng. exceptions) istih..NET Framework to omogućava tako što sve .NET komponente moraju zadovoljavati uvjete specifikacije nazvane Common Type System (CTS).Kao dodatak .NET sadrži Common Language Specification (CLS), koje nudu niz pravila kako zadovoljiti međujezičnu integraciju. CLS također propisuje minimalne zahtijeve da bi programski jezik bio dio .NET obitelji. Kompajleri koji poštuju pravila CLS mogu stavarati objekte koji se međusobno mogu nadopunjavati i integrirati.

  • .NET Framework, gledano logički, je sučelje prema operativnom sustavu. Sastoji se od nekoliko komponenti:
  • Četiri programska jezika: C#, VB .NET, Managed C++, Jscript .NET,
  • Comon Language Runtime (CLR), objektno-orijentirana platforma za Windows i web razvoj, koju navedeni jezici dijele,
  • Veliki broj pripadajućih razreda biblioteka, znanu kao još Framework Class Library (FCL) .

Najvažnija komponenta .NET Frameworka je CLR, koja osigurava okolinu u kojoj se programi izvršavaju. CLR se sastoji od virtal machine, usporediva po mnogo čemu sa Java virtal machine. Njezino djelovanje je da stvara objekte,radi sigurnosne provjere nad njima, osigurava memoriju za izvršavanje, izvodi ih i kasnije oslobađa memoriju ako se objekti smatraju izvršenima.

Slijedeći slojevi iznad CLR, Framework Base Classes, Podaci i XML razredi , uz sloj razreda namjenjenih za web servise, web obrazce i windowse obrazce grupno su poznati kao Framework Class Library ( FCL).

 

Slika 2. FCL 

 

FCL je jedna od najvećih ako ne i najveća biblioteka razreda u povijesti. Sastoji se oko 5000razreda. Sa FCL se mogu jako brzo razvijati desktop aplikacije, klijent/poslužitelj i drugi web servisi i aplikacije.Set framework base razreda, najniži sloj FCL, je sličan setu razreda u Javi. Ovi razredi omogućavaju osnovnu komunikaciju ulaz/izlaz, rad sa stringovima, sigurnosne protokole, mrežnu komunikaciju, rukovanje sa iznimkama, tekstom i sl.Sloj koji se brine o podacima i XML razredima obuhvaća podršku za relacijske baze podataka ( SQL ) , dodatni paket ADO.NET se brine o stalnim podacima, a XML razred vode računa o prevođenju podataka u XML i XML pretraživanje.

Zadnji sloj prikazuje podršku za tri različite tehnologije:

  • Web Servisi
  • Web obrazci
  • Windowse obrazce.

Web servisi sadrže podršku za distribuirane komponente i distribuirane informacijske servise koje se nalaze sve češće kao jedan model poslovanja na mreži. U ključena je podrška za HTTP i za SOAP protokole.Web i Windowse obrazci omogućavaju još brži razvoj web i windowse aplikacija. Jednostavno posložite koje komanede želite i pridjelite im kakvu radnju pokreću.

 C#

U .NET-u programi se ne kompajliraju u izvršne datoteke već u, nazovimo to među stadij,Microsoft Intermediate Language (MSIL) datoteke, koje CLR onda izvršava. MSIL datoteke koje C# stvara su potpuno jednake ostalim .NET jezicima. Ključ je u tome što je CLR zajednička okoline za izvođenje rutina pisanih bilo u C# ili u VB.NET-u.C# kod se prevodi u IL (skraćemo od MSIL) i sprema na disk. Prilikom izvođenja programa IL datoteka se kompajlira sa Just in Time (JIT) kompajlerom, a kod nastao kompajliranjem je razumljiv i izvršava se na procesoru.Standardni JIT kompajleri pokreću se na zahtijev. Također prepoznaju ako je kod u IL datotekam prekompajliran i kompajlranje pokreću samo kad je potrebno. Ako je kod kompajliran tada aplikacije koje ga koriste su brže.C# sastoji se od 80 ključnih riječi. Osim velike biblioteke razreda C# ispunjava većinu zahtijeva koji se pred njega stavljaju i koje može ispuniti jedan moderan objektno orijentiran programski jezik. 

C# i WEB

 

Razvoj poslovnih aplikacija na mreži je jedan vid kako ikoristiti C#. C# je u tom slučaju samo onaj koji se brine o dimamičkom sadržaju na webu. To i nije neka novost koju nam pruža C# međutim uporabljivost i razvoj mrežnih aplikacija bi trebala biti jača strana jer kod koji se izvršava već je kompajliran i posluživaču manje treba da odgovori na upit..NET tehnologija koja omogućuje razradu i razvoj web aplikacija je ASP.NET.Interakciju korisnika sa web aplikacijom omogućavaju web obrazci. Web obrazci se izvode kao HTML stranica, a C# stvara dinamički sadržaj koji se integrira u HTML stranicu i prikazuje na korisničkoj strani. Web obrazci sastoje se od korisničkog dijela ( user interface UI ) i logike koja stoji iza toga. Logika u pozadini (eng. code-behind) reagira kada se nešto promijeni na korisničkoj strani.

Slika 3. Korisnički zahtijev

Unos šifre da bi pristupili do e-maila, biranje datuma kada bi rezervirali putničku kartu, klik miša ili prijelaz miša preko selektiranog sadržaja na stranici je nekakav događaj. Taj događaj ima svoje argumente i pridruženu logiku za obradu podataka. Potreba za logikom koja se aktivira na događaj dolazi do izražaja i kada se pokušamo vratiti i vidjet podatke koje smo poslali serveru, ako nismo vodili računa da se ti podaci sačuvaju vama oni nisu dostupni.

Web aplikacija

  • Izvršava se na serveru i na klijentu
  • Korisnik može biti bilo tko s pristupom Internetu
  • Klijentski dio mora biti napisan u nekom od jezika koji Web preglednik podržava (HTML, JavaScript, Java).
  • Ograničen pristup resursima na strani klijenta (npr. JavaScript koji se izvršava unutar preglednika ne može čitati s korisnikovog diska)
  • Samim “surfanjem” po Internetu ne možemo računalo zaraziti virusom (paziti na programe koje se žele instalirati na računalo, sigurnosne rupe u pregledniku)

Zašto Web aplikacije (a ne stand-alone aplikacije)?

  • 30% aplikacija koje se danas izrađuju čine Web aplikacije
  • Jednostavno održavanje i nadogradnja na novu verziju
  • Nema instalacijske procedure na strani klijenta
  • Istovremena dostupnost korisnicima širom svijeta (Internet)
  • Ogromno tržište za prodaju preko Interneta (24/7)
  • Izvršavaju se na bilo kojem OS-u

Nedostatci Web aplikacija

  • Kompliciranija i skuplja izrada od običnih stand-alone aplikacija
  • Sigurnosni problemi (neovlašten pristup aplikaciji te samom računalu serveru, zatrpavanje prometom - DDOS)
  • Potreba za posebno designiranim sučeljem (Web design)
  • Korisnici sa starijim verzijama preglednika mogu imati problema pri korištenju aplikacije ukoliko ona koristi najnovije tehnologije
  • Potrebna prilagodba regionalnim posebnostima korisnika
  • Zahtjevaju poznavanje mrežnih protokola i procesa koji se odvijaju u Internet okruženju

Svaka Web aplikacija nasljeđuje klasu System.Web.HttpApplication

System.Web.HttpApplication sadrži između ostalog:

  • Application - stanje Web aplikacije
  • Request – HTTP zahtjev
  • Response – odgovor na HTTP zahtjev
  • Server – računalo poslužitelj
  • Session – posjet Web aplikaciji od strane istog korisnika
  • User – podaci o korisniku

Važniji događaji:

  • Application_Start – kada se dohvati prva stranica Web aplikacije
  • Application_End – kada se Web server zaustavi
  • Session_OnStart – kada korisnik prvi puta pristupi Web aplikaciji
  • Session_End – kada se korisnik odjavi ili istekne dodijeljeno mu vrijeme aktivnosti

 

Web servisi ili XML web servisi

Web servisi su vrsta softverske komponente koja se može koristiti sa udaljenog web servera, služeći se Internetom kao medijem za dvostruku komunikaciju. Koristimo usluge komponenti i gradimo distribuirane informacijske sustave. Komunikacij se ostvaruje sa SOAP protokolom ili HTTP-GET i HTTP- POST metodom. SOAP ( Simple Object Access Protocol )  je komunikacijski protokol koji se između konzumenata web servisa i web servisa prenose podaci. Podaci su u XML (Extensibile Markup Language) formatu i omogućava prijenos kompleksnih struktura podataka. Pronaći servis koji nam odgovara je lako uz pomoć UDDI registra (Universal Description, Discoveri and Integration ), unutar kojega pojedinci i kompanije registriraju svoje web servise. WSDL (Web Services Description Language ), je poseban metajezik, baziran na XML-u, a cilj mu je opisati lokaciju, funkcionalnost i komunikacijski protokol pojedinog web servisa u obliku standardnog proxy objekta, kako bi ga programer mogao lako imlementirati i koristiti unutar svoje aplikacije. DISCO (discovery)je lista WSDL dokumenata koja grupira pojedine web servise, također je standardizirana u XML-u.

                             

 

 

                                                         

 

Slika 4. Primjer distribuiranog informacijskog servisa

 

<?xml version="1.0" encoding="utf-8"?>

<string xmlns="ZaPrezentaciju">Točno vrijeme: 18.1.2004 18:30:04</string>

Slika 5. Testiranje Web servisa i odgovor u XML-u

Proxy class

Budući da .NET izvrsno razumije SOAP, to mu omogućuje da na transparentan način, u pozadini, rezultirajuće podatke spremi u odgovarajuće tipove podataka unutar .NET aplikacije koja troši web servis. Prijenos podataka se vrši pomoću SOAP-a, a proces XML serijalizacije omogućuje nam da pomoću proxy klase u kodu host aplikacije instanciramo web servis kao objekt, te da pozivamo njegove metode i property-e. Rezultat možemo spremiti u lokalne varijable te ih dalje u kodu koristiti i prema potrebi prikazati. Proxy klasa (proxy objekt) je lokalna klasa koja pruža isti interface kao i web servis.

.NET razvojna okolina

Ako nakon svega postoji želja za .NET programiranjem (kreiranje i testiranje web servis, obrazaca i windowse obrazaca) potrebno je imati barem Windowse 2000 ili XP Profesional sa instaliranim Internet Information Serverom ( IIS ). .NET Framework ( po mogućnosti SDK)može se besplatno 'skinuti' sa MS sita (http//:www.microsoft.com/downloads) za rad sa podacima potrebno je još i MS SQL 2000 server ili MSDE. MSDE je data engine koji koristi i sam SQL Server, ali bez administracijskih alata i sučelja. Bez IIS i SQL Servera se može besplatno raditi i sa alternativom, WebMatrix. To je Microsoftovo potpuno besplatno razvojno okruženje za ASP.NET aplikacije i XML web servise (www.asp.net/webmatrix). 

Zaključak

Gdje tu sam C# dolazi do izražaja vidljivo je u odvajanju programske logike iz sadržaja web stranice (programski kod se ne interpretira već izvršava ), veliko integriranje sa ostalim jezicima .NET obitelji i odlično nadopunjavanje između različitih zahtijeva.

Literatura

http://msdn.microsoft.com/downloads/default.aspx

http://www.csharphelp.com/books.html

http://www.dotnetjunkies.com/about.aspx

Dodatak: primjer za seminar

©MARIN JARAM 2003/2004