predavanje01

Download Report

Transcript predavanje01

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
08/04/2015
---------- Računarski praktikum 3 ---------Maja Starčević
1
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)
08/04/2015
Računarski praktikum 3
2
O kolegiju
 .NET
 Programski jezik C#
 Dizajniranje grafičkih sučelja (Windows Forms, WPF)
 Baze podataka (ADO.NET, LINQ)
08/04/2015
Računarski praktikum 3
3
Literatura (iz originalnog programa)
1.
2.
3.
4.
5.
6.
7.
08/04/2015
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
4
Dodatna literatura
1.
2.
3.
4.
08/04/2015
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
5
.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).
08/04/2015
Računarski praktikum 3
6
.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.
08/04/2015
Računarski praktikum 3
7
.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.
08/04/2015
Računarski praktikum 3
8
.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.
08/04/2015
Računarski praktikum 3
9
.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
08/04/2015
Računarski praktikum 3
10
.NET arhitektura
4.0
Parallel LINQ
Task Parallel Library
3.5.
LINQ
ASP.NET AJAX
3.0
WPF
WCF
WinForms
2.0
WF
ASP.NET
Card Space
ADO.NET
Base class Library (BCL)
Common Language Runtime (CLR)
08/04/2015
Računarski praktikum 3
11
Kompatibilnost verzija
C# verzija
08/04/2015
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
Računarski praktikum 3
12
.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
08/04/2015
3.5
Visual Studio 2008
4.0
Visual Studio 2010
Računarski praktikum 3
13
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).
08/04/2015
Računarski praktikum 3
14
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).
08/04/2015
Računarski praktikum 3
15
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() { }
}
08/04/2015
Računarski praktikum 3
16
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.
08/04/2015
Računarski praktikum 3
17
Zajednička jezična
infrastruktura
Zajednička jezična infrastruktura
C# kod
kompilator
VB.NET
kod
kompilator
Upravljani
kod (CIL)
CLR
Strojni jezik
J# kod
kompilator
.
.
.
08/04/2015
Računarski praktikum 3
18
.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.
08/04/2015
Računarski praktikum 3
19
.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.
08/04/2015
Računarski praktikum 3
20
.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
08/04/2015
Računarski praktikum 3
21
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.
08/04/2015
Računarski praktikum 3
22
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
08/04/2015
Računarski praktikum 3
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
08/04/2015
Računarski praktikum 3
24
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.
08/04/2015
Računarski praktikum 3
25
Imenički prostori
08/04/2015
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
Računarski praktikum 3
26
Imenički prostori
08/04/2015
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.
Računarski praktikum 3
27
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.
08/04/2015
Računarski praktikum 3
28
Imenički prostor System
 Text
 Exception
 Enum, Array
 Delegate
 Nullable
 Type
 DateTime, DateTimeOffset, TimeSpan
 Math, Random
 Convert, BitConverter
 IDisposable, IFormattable, IComparable
itd.
08/04/2015
Računarski praktikum 3
29
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<>
08/04/2015
Računarski praktikum 3
30
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
08/04/2015
Računarski praktikum 3
31
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
08/04/2015
Računarski praktikum 3
32
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)
08/04/2015
Računarski praktikum 3
33
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
08/04/2015
Računarski praktikum 3
34
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.
08/04/2015
Računarski praktikum 3
35
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).
08/04/2015
Računarski praktikum 3
36
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.
08/04/2015
Računarski praktikum 3
37
Tipovi aplikacija
 Server-side-only (ASP.NET)
 Thin-client (ASP.NET s AJAX-om)
 Rich interactive (Silverlight)
 Traditional desktop (WinForms)
 Rich Desktop (WPF)
08/04/2015
Računarski praktikum 3
38
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
08/04/2015
Računarski praktikum 3
39
Kompiliranje
Neke opcije kod kompiliranja:
08/04/2015
/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.
Računarski praktikum 3
40