Post on 19-Mar-2016
description
---------- 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
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)
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)
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.
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.
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).
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
.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
.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
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
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
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
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
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).
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).
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.
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.
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
.
.
.
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.
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.
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
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
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
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
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
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
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.
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.
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.
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<>
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
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
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)
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
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.
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).
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
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)
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
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: