400 likes | 553 Views
Računarski praktikum 3. Predavanja: predavač: Maja Starčević termin predavanja: petak, 8-10 (110) e-mail: mstarcev(at)math.hr web.math.hr/~mstarcev/rp3 Vježbe: asistent: Vinko Petričević termin vježbi: petak, 13-16 (Pr1) e-mail: vpetrice(at)math.hr web.math.hr/~vpetrice/rp3.
E N D
Računarski praktikum 3 Predavanja: • predavač: Maja Starčević • termin predavanja: petak, 8-10 (110) • e-mail: mstarcev(at)math.hr • web.math.hr/~mstarcev/rp3 Vježbe: • asistent: Vinko Petričević • termin vježbi: petak, 13-16 (Pr1) • e-mail: vpetrice(at)math.hr • web.math.hr/~vpetrice/rp3 ---------- Računarski praktikum 3 ---------- Maja Starčević
Pravila ocjenjivanja Kroz semestar se može sakupiti najviše 100 bodova: 1. Dva kolokvija po 25 bodova (minimum = 20) 2. Domaća zadaća od 10 bodova (minimum = 5) 3. Završni ispit (obrana projektnog zadatka + usmeni ispit) – najviše 40 bodova (minimum = 15) Popravni kolokvij donosi najviše 40 bodova, a minimum je 20. Ocjene: 50-59 (2), 60-74 (3), 75-87 (4), 88-100 (5) Računarski praktikum 3
O kolegiju • .NET • Programski jezik C# • Dizajniranje grafičkih sučelja (Windows Forms, WPF) • Baze podataka (ADO.NET, LINQ) Računarski praktikum 3
Literatura (iz originalnog programa) • B. Albahari, P. Drayton, B. Merrill, C# Essentials, 2nd edition, O’Reilly, 2002. • D. Box, Essential .NET, Addison-Wesley, 2002. • J. Prosise, Programming Microsoft .NET, Microsoft Press, 2002. • I. Rammer, Advanced .NET Remoting, Apress, 2002. • C. Sells, Windows Forms Programming in C#, 1st edition, Addison-Wesley Professional, 2003. • C. Rojas, F. Guerrero, SQL Server 2000 Programming by Example, Que, Bk & CD-ROM edition, 2001. • C. Petzold, Programming Windows, 5th edition, Microsoft Press, Bk & CD-ROM edition, 1998. Računarski praktikum 3
Dodatna literatura • J. Albahari, B. Albahari, C# 3.0, O’Reilly, 2008. • J. Albahari, B. Albahari, C# 3.0 in a Nutshell, O’Reilley, 2008. • J. Liberty, D. Xie, Programming C# 3.0, O’Reilly, 2008. • J. Liberty, A. Horovitz, Programming .NET 3.5, O’Reilley, 2008. Računarski praktikum 3
.NET Framework Microsoft .Net Framework je softversko okruženje za MS Windows operacijski sustav. Podržava programiranje u više programskih jezika (program pisan u jednom jeziku može koristiti i kod pisan u drugom jeziku). Osnovna Microsoftova arhitektura .NET-a izdana je 2001. (sredinom 2002. izdan je .NET Framework 1.0 i Microsoft Visual Studio 2002). Računarski praktikum 3
.NET Framework .NET je prvotno zamišljen kao okruženje za izradu Internet aplikacija i Web servisa. Moguća je izrada XML Web servisa, Web formi, Windows aplikacija s grafičkim sučeljem (GUI), Windows konzolnih aplikacija (CUI), Windows servisa. Podržane platforme su u prvom redu MS Windows te Linux i MacOS (djelomično putem pomoćnog third-party MONO sustava). .NET je standardiziran od strane ECMA i ISO. v Računarski praktikum 3
.NET Framework Programi se izvršavaju u softverskom okruženju, tj. u virtualnom stroju, neovisno o specifičnostima određenog CPU-a. CLR je zadužen i za sigurnost, organizaciju memorije, tretiranje iznimki. Računarski praktikum 3
.NET Framework .NET Framework uključuje i Common TypeSystem (CTS) - specifikaciju koja definira sve moguće tipove podataka koje CLR podržava te interakciju koja je moguća među njima u skladu s Common Language Infrastructure(CLI) specifikacijom. Ovaj princip i omogućava izmjenu objekata i tipova pisanih u različitim jezicima. (Moguće je pisati i dijelove koda koji ne odgovaraju CTS specifikaciji). BCL biblioteke klasa su dostupne svim jezicima. Računarski praktikum 3
.NET arhitektura • .NET sadržava veliku količinu tipova u hijerarhijski organiziranim imeničkim prostorima (namespace) koji su upakirani u asemblije. • Drugi važan dio je Zajednička izvršna okolina (Common Language Runtime - CLR). • Treći dio su APIs (Application Programming Interface) koji pokrivaju: • Tehnologiju korisničkog sučelja • Backend tehnologiju • Tehnologiju distribuiranih sistema Računarski praktikum 3
.NET arhitektura 4.0 ParallelLINQ Task Parallel Library 3.5. LINQ ASP.NETAJAX 3.0 WPF WCF WF Card Space 2.0 WinForms ASP.NET ADO.NET Base class Library (BCL) Common Language Runtime (CLR) Računarski praktikum 3
Kompatibilnost verzija Računarski praktikum 3
.NET i Visual Studio Računarski praktikum 3
Programski jezici u .NET-u Microsoft je izdao IL-kompilatore za programske jezike C++, Visual Basic, J#, C#, JScript (postoje i za Perl, Python, Cobol, Eiffel...). Detalji na http://dotnetpowered.com/languages.aspx Programski jezik C# je razvijen u Microsoftovom timu pod vodstvom Andersa Hejlsberga i Scotta Wiltamutha (Turbo Pascal, Borland Delphi). C# je odigrao značajnu ulogu u razvoju biblioteka koje se nalaze u .NET-u. Programi pisani u C#-u koriste i klase pisane u drugim jezicima, zahvaljujući zajedničkoj jezičnoj specifikaciji (CLS). Računarski praktikum 3
CLI Zajednička jezična infrastruktura (CLI) uključuje • Zajednički tipski sustav (CTS) – podržava tipove podataka zajedničke različitim programskim jezicima, • Zajedničku jezičnu specifikaciju (CLS) - cijela biblioteka temeljnih klasa (BCL) je CLS kompatibilna • Metapodatke – pomoću njih kod opisuje sam sebe • Virtualni izvršni sustav (VES) – upravlja izvršavanjem i sigurnošću koda i radi na zajedničkom prijelaznom jeziku (CIL). Računarski praktikum 3
CLI Primjer: klasa C nije kreirana po CLS pravilima. Imamo dvije metode s “jednakim” imenom (razlikuju se samo po malom i velikom slovu) i uint tip koji nije u skladu s CTS-om. Pomoću atributa CLSCompliant dobivamo upozorenje. using System; [assembly:CLSCompliant(true)] public class C { public uint i; public int _i; // nedopušten početak identifikatora public void Print() { } public void print() { } } Računarski praktikum 3
Zadatak Napravite biblioteku s jednom klasom u VB.net-u (.dll) te ju uključite u neki C# project (dodajte .dll u References u Solution Exploreru). Kreirajte objekt klase iz spomenute biblioteke i testirajte pripadne funkcije. Računarski praktikum 3
Zajednička jezična infrastruktura Zajednička jezična infrastruktura C# kod kompilator VB.NET kod Upravljani kod (CIL) CLR Strojni jezik kompilator J# kod kompilator . . . Računarski praktikum 3
.NET i JIT kompilatori Kod pisan za .NET platformu izvršava .NET runtime ili preciznije Common Language Runtime (CLR). Kod kojeg generira .NET kompilator nije u strojnom jeziku već je to Common Intermediate Language (CIL), tzv. upravljani kod (Managed Code). IL kod se može pregledavati u Visual Studiu preko programa Ildasm (namješta se pomoću Tools– External tools). Program se distribuira u upravljanom kodu te se na odredišnom računalu taj međukod prilikom pokretanja aplikacije prevodi u matični strojni kod. Računarski praktikum 3
.NET i JIT kompilatori Tijekom izvršavanja .NET JIT (Just in Time) kompilatori konvertiraju taj kod u matični strojni kod koji se napokon izvodi u procesoru. .NET kompilator također proizvodi i metapodatke koji opisuju kod. Njima je opisan svaki tip i član definiran i referiran u kodu. .NET runtime učitava metapodatke pri rješavanju poziva funkcija, učitavanju različitih zavisnih modula, usmjeravanju podataka iz jedne komponente u drugu. Računarski praktikum 3
.NET compiler i JIT Kod poput Win32 DLLs ne mora prolaziti kroz sve te korake već je on odmah u strojnom jeziku. Nije potreban dodatni JIT kompilator. Ovakvu vrstu koda zovemoneupravljani kod (engl. Unmanaged Code). Moguće je pristupati i takvom kodu iz .NET koda i obratno. Pritom koristimo interoperativne servisekoje pruža .NET platforma. Takve klase nalaze se u prostorima System.Runtime.InteropServices i System.EnterpriseServices Računarski praktikum 3
Karakteristike .NET-a • Dosljedan objektno-orijentirani model programiranja - sav kod je pisan unutar klasa • Poboljšana usklađenost verzija - vrši se verzioniranje, aplikacije se razvijaju za točno određenu verziju dll-a, prilikom nadogradnje dll-a nova verzija ne prepisuje staru. • Pojednostavljena distribucija - za instalaciju jednostavnih aplikacija nije potrebna posebna instalacijska procedura. Računarski praktikum 3
Karakteristike .NET-a • Povezivanje različitih programskih jezika • Automatsko skupljanje otpada • Provjera sigurnosti tipova • Dosljedan pristup prijavi pogrešaka • Poboljšana sigurnost • Združivost s postojećim kodom Računarski praktikum 3
Base Class Library (BCL) Biblioteka osnovnih klasa je dio cijele biblioteke klasa – Framework Class Library (FCL). Klase iz BCL-a nalaze se u asembilijima (bibliotekama) mscorlib.dll, System.dlliSystem.Core.dll. Klase iz BCL-a se nalaze u imeničkim prostorima: System, System.CodeDom, System.Collections, System.Diagnostics, System.Globalization, System.IO, System.Resources, System.Text, System.Text.RegularExpressions Računarski praktikum 3
Imenički prostori FCL sadrži mnogo klasa koje su također organizirane hijerarhijski, u imeničkim prostorima. Većina prostora kao najviše rangirani prostor ima prostore System, MS,Microsoft. Slijedi opis nekih od visoko rangiranih prostora, odnosno njihovih tipova. Računarski praktikum 3
Imenički prostori Računarski praktikum 3
Imenički prostori Računarski praktikum 3
Imenički prostori Računarski praktikum 3
Imenički prostor System • Text • Exception • Enum, Array • Delegate • Nullable • Type • DateTime, DateTimeOffset, TimeSpan • Math, Random • Convert, BitConverter • IDisposable, IFormattable, IComparable itd. Računarski praktikum 3
Kolekcije .NET Framework sadrži mnoštvo klasa koje upravljaju kolekcijama podataka. Nalaze se u prostorima: • System.Collections.Generic • System.Collections.Specialized • System.Collections.ObjectModel Klase iz tih prostora djeluju u suradnji sa sučeljima poput: • IEnumerable<> • ICollection<> • Ilist<> • IDictionary<> Računarski praktikum 3
Tehnologije u .NET-u Tehnologije korisničkih sučelja: Windows Forms, WPF, ASP.NET Backend tehnologije: ADO.NET, WF, COM+, MSMQ Tehnologije distribuiranih sistema: WCF, Remoting Services, ASMX Web Services, CardSpace Računarski praktikum 3
Tehnologije u .NET-u WF- System.WorkFlow COM+ - System.EnterpriseService WCF – System.ServiceModel Remoting – System.Runtime.Remoting Web Services – System.Web.Services CardSpace – System.IdentityModel.Claim, System.IdentityModel.Policy Računarski praktikum 3
Tehnologije korisničkih sučelja .NET Framework sadrži tri tehnologije za izradu aplikacija s korisničkim sučeljima: • ASP.NET (klase su u prostoru System.Web.UI u biblioteci klasa System.Web.dll) • Windows PresentationFoundation (System.Windows i potprostori) • Windows.Forms (System. Windows.Forms, System.Windows.Forms.dll) Računarski praktikum 3
Windows Forms Rich-client tehnologija koja je također stara kao i .NET Framework. Jednostavnija tehnologija od WPF-a. Ima važnost u sačuvanju “legacy” aplikacija. Tipovi su smješteni u System.Windows.Forms i System.Drawing Računarski praktikum 3
Windows Presentation Foundation WPF je rich-client tehnologija. Podržava sofisticiranu grafiku (razne vrste transformacija, animacije, 3D grafika, transparentnost). Aplikacije se prikazuju korektno pri svakom DPI. Tipovi se nalaze u System.Windows i svim imeničkim potprostorima osim System.Windows.Forms. Izvršava se na Windows 7, Windows Vista, Windows XP s Framework 3.0. WPF aplikacije kreiraju se pomoću markup XAML-a (eXtensible Application Markup Language) i koda u pozadini. Računarski praktikum 3
ADO.NET, LINQ Rad s relacijskim bazama podataka može se ostvariti pomoću LINQ-a, ADO.NET-a ili ADO.NET-a i LINQ-a zajedno. Svrha LINQ-a (Language Integrated Query) je ubacivanje mogućnosti SQL upita u programski jezik C# (ADO.NET nije integriran u C#, a SQL nije objektno orijentiran). Računarski praktikum 3
Alternativne implementacije DLR – podržava dinamičke jezike kao što su ManagedJscript, IronRuby i IronPython. .NET Compact Framework– softversko okruženje koje omogućava kreiranje i izvršavanje upravljanih aplikacija na računalnim uređajima s ograničenim resursima.Nasljeđuje cijelu .NET Framework arhitekturu, ali samo dio .NET FCL klasate sadrži i klase specijalno dizajnirane za to okruženje. .NET Micro Framework– pruža podršku za manje uređaje. Računarski praktikum 3
Tipovi aplikacija • Server-side-only (ASP.NET) • Thin-client (ASP.NET s AJAX-om) • Rich interactive (Silverlight) • Traditional desktop (WinForms) • Rich Desktop (WPF) Računarski praktikum 3
Konzolna aplikacija Konzolna aplikacija nema grafičko korisničko sučelje. Unos i izlaz podataka vrši se preko komandnog prozora. Standardni izlaz se obavlja preko statičke klase Console i njezine metode WriteLine. Primjer (stvaranje .exe datoteke) csc/reference:UnmanagedServer_net_wrapper.dll /out:ManagedClient.exeManagedClient.cs Računarski praktikum 3
Kompiliranje Neke opcije kod kompiliranja: Računarski praktikum 3