računarski praktikum 3

40
---------- Računarski praktikum 3 ---------- Maja Starčević 1 09/06/22 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

Upload: annona

Post on 19-Mar-2016

84 views

Category:

Documents


1 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Računarski praktikum 3

---------- 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

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

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

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

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

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

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

.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

.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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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: