Računarski praktikum 3
description
Transcript of Računarski praktikum 3
![Page 1: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/1.jpg)
---------- Računarski praktikum 3 ----------Maja Starčević
124/04/23
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
![Page 2: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/2.jpg)
Računarski praktikum 3 224/04/23
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)
![Page 3: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/3.jpg)
Računarski praktikum 3 324/04/23
O kolegiju
.NET Programski jezik C# Dizajniranje grafičkih sučelja (Windows Forms, WPF) Baze podataka (ADO.NET, LINQ)
![Page 4: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/4.jpg)
Računarski praktikum 3 424/04/23
Literatura (iz originalnog programa)
1. B. Albahari, P. Drayton, B. Merrill, C# Essentials, 2nd edition, O’Reilly, 2002.
2. D. Box, Essential .NET, Addison-Wesley, 2002.3. J. Prosise, Programming Microsoft .NET, Microsoft Press,
2002.4. I. Rammer, Advanced .NET Remoting, Apress, 2002.5. C. Sells, Windows Forms Programming in C#, 1st edition,
Addison-Wesley Professional, 2003.6. C. Rojas, F. Guerrero, SQL Server 2000 Programming by
Example, Que, Bk & CD-ROM edition, 2001.7. C. Petzold, Programming Windows, 5th edition, Microsoft
Press, Bk & CD-ROM edition, 1998.
![Page 5: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/5.jpg)
Računarski praktikum 3 524/04/23
Dodatna literatura
1. J. Albahari, B. Albahari, C# 3.0, O’Reilly, 2008.2. J. Albahari, B. Albahari, C# 3.0 in a Nutshell, O’Reilley, 2008.3. J. Liberty, D. Xie, Programming C# 3.0, O’Reilly, 2008.4. J. Liberty, A. Horovitz, Programming .NET 3.5, O’Reilley,
2008.
![Page 6: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/6.jpg)
Računarski praktikum 3 624/04/23
.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).
![Page 7: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/7.jpg)
Računarski praktikum 3 724/04/23
.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
![Page 8: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/8.jpg)
.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 824/04/23
![Page 9: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/9.jpg)
.NET Framework
.NET Framework uključuje i Common Type System (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 924/04/23
![Page 10: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/10.jpg)
Računarski praktikum 3 1024/04/23
.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
![Page 11: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/11.jpg)
Računarski praktikum 3 1124/04/23
.NET arhitektura
Common Language Runtime (CLR)
Base class Library (BCL)
WinForms ASP.NET ADO.NET
WPF WCF WF Card Space
LINQ ASP.NET AJAX
Parallel LINQ Task Parallel Library
2.0
3.0
3.5.
4.0
![Page 12: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/12.jpg)
Računarski praktikum 3 1224/04/23
Kompatibilnost verzija
C# verzija CLR verzija .NET verzija
1.0 1.0 1.0
1.1 1.1 1.1
2.0 2.0 2.0, 3.0
3.0 2.0 (updated) 3.5
4.0 4.0 4.0
![Page 13: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/13.jpg)
Računarski praktikum 3 1324/04/23
.NET i Visual Studio
.NET verzija Visual Studio
1.0 Visual Studio .NET
1.1. Visual Studio .NET 2003
2.0 Visual Studio 2005
3.0
3.5 Visual Studio 2008
4.0 Visual Studio 2010
![Page 14: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/14.jpg)
Računarski praktikum 3 1424/04/23
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).
![Page 15: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/15.jpg)
Računarski praktikum 3 1524/04/23
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).
![Page 16: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/16.jpg)
Računarski praktikum 3 1624/04/23
CLI
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() { } }
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.
![Page 17: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/17.jpg)
Računarski praktikum 3 1724/04/23
Zadatak
Napravite biblioteku s jednom klasom u VB.net-u (.dll) te ju uključiteu neki C# project (dodajte .dll u References u Solution Exploreru).
Kreirajte objekt klase iz spomenute biblioteke i testirajte pripadne funkcije.
![Page 18: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/18.jpg)
Zajednička jezična infrastruktura
Računarski praktikum 3 1824/04/23
C# kod
J# kod
VB.NETkod
kompilator
kompilator
kompilator
Zajednička jezična infrastruktura
Upravljani kod (CIL)
CLR Strojni jezik
.
.
.
![Page 19: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/19.jpg)
Računarski praktikum 3 1924/04/23
.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.
![Page 20: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/20.jpg)
Računarski praktikum 3 2024/04/23
.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.
![Page 21: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/21.jpg)
Računarski praktikum 3 2124/04/23
.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 zovemo neupravljani kod (engl. Unmanaged Code).
Moguće je pristupati i takvom kodu iz .NET koda i obratno. Pritom koristimo interoperativne servise koje pruža .NET platforma.
Takve klase nalaze se u prostorima System.Runtime.InteropServices i System.EnterpriseServices
![Page 22: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/22.jpg)
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 2224/04/23
![Page 23: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/23.jpg)
Računarski praktikum 3 2324/04/23
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
![Page 24: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/24.jpg)
Računarski praktikum 3 2424/04/23
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.dll i System.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
![Page 25: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/25.jpg)
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 2524/04/23
![Page 26: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/26.jpg)
Računarski praktikum 3 2624/04/23
Imenički prostori
System.Collections Sučelja i klase koje definiraju kolekcije objekata
System.ComponentModel Pomaže u upravljanju ponašanjem komponenti za vrijeme izrade i izvršavanja
System.Data ADO.NET klase
System.Drawing Temeljna GDI+ grafička biblioteka
![Page 27: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/27.jpg)
Računarski praktikum 3 2724/04/23
Imenički prostori
System.Globalization Definiranje regionalnih podataka, poput jezika, države, formata zapisa datuma, novčarskih iznosa.
System.IO Učitavanje i zapis tokova podataka i datoteka.
System.Management Rukovođenje sustavom, uređajima i aplikacijama.
System.Net Komunikacija preko mreže.
![Page 28: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/28.jpg)
Računarski praktikum 3 2824/04/23
Imenički prostori
System.Reflection Uvid u metapodatke te dinamičko kreiranje i pozivanje tipova.
System.Security Temeljne klase za .NET sustav sigurnosti
System.Web Osnovne klase za Web pretraživač/server komunikaciju
System.Xml Temeljna klasa za XML podršku
itd.
![Page 29: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/29.jpg)
Računarski praktikum 3 2924/04/23
Imenički prostor System
Text Exception Enum, Array Delegate Nullable Type DateTime, DateTimeOffset, TimeSpan Math, Random Convert, BitConverter IDisposable, IFormattable, IComparable itd.
![Page 30: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/30.jpg)
Računarski praktikum 3 3024/04/23
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<>
![Page 31: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/31.jpg)
Računarski praktikum 3 3124/04/23
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
![Page 32: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/32.jpg)
Računarski praktikum 3 3224/04/23
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
![Page 33: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/33.jpg)
Računarski praktikum 3 3324/04/23
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 Presentation Foundation (System.Windows i potprostori) Windows.Forms (System. Windows.Forms, System.Windows.Forms.dll)
![Page 34: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/34.jpg)
Računarski praktikum 3 3424/04/23
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
![Page 35: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/35.jpg)
Računarski praktikum 3 3524/04/23
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.
![Page 36: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/36.jpg)
Računarski praktikum 3 3624/04/23
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).
![Page 37: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/37.jpg)
Alternativne implementacije
DLR – podržava dinamičke jezike kao što su Managed Jscript, 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 klasa te 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 3724/04/23
![Page 38: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/38.jpg)
Računarski praktikum 3 3824/04/23
Tipovi aplikacija
Server-side-only (ASP.NET) Thin-client (ASP.NET s AJAX-om) Rich interactive (Silverlight) Traditional desktop (WinForms) Rich Desktop (WPF)
![Page 39: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/39.jpg)
Računarski praktikum 3 3924/04/23
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.exe ManagedClient.cs
![Page 40: Računarski praktikum 3](https://reader033.fdocuments.net/reader033/viewer/2022061519/56814beb550346895db8c7db/html5/thumbnails/40.jpg)
Računarski praktikum 3 4024/04/23
Kompiliranje
/out:<file> Određuje ime konačne datoteke.
/target:<type> ili /t:<type> Određuje tip kreiranog programa. Moguće vrijednosti za <type> su exe, winexe, library i module.
/doc:<file> Zadaje kreiranje XML dokumentacije.
/reference:<file list> ili /r:<file list>
Uključuje reference na metapodatke iz navedenih asemblija.
Neke opcije kod kompiliranja: