razvoj programskih...
TRANSCRIPT
Razvoj programskih aplikacij
dr. Tomaž Rotovnik
▪ Visual C#
▪ Zunanje .NET komponente
▪ Enterprise rešitve
▪ Java (primerjava)
Poudarki
• http://vss.scv.si/moodle/
• John Sharp, “Visual C# 2013 Step by Step”, Microsoft Press, 2013
• Srečo Uranič, “Načrtovanje Programskih Aplikacij”, 2011 (http://uranic.tsckr.si/VISUAL%20C%23/Na%C4%8Drtovanje%20programskih%20aplikacij%20NPA.pdf)
• Seminarska naloga (40%)
• Domača naloga (10%)
• Izpit (50%) - pisni in ustni del
Uvod
Viri
Ocena
Seminarska naloga
• Seminarska naloga naj bo praktične narave! Teme?
- turistični portal (uporabniki, destinacije)
- pošta (storitev, sledenje)
- knjižnica (knjige, izposojevalci)
- videoteka (člani, izposoja)
- operater (osebe, naročniški paket)
- spletna trgovina (izdelki, kupci)
- banka (stranke, računi)
- šola (študenti, predmeti)
- vozni red (prevozno sredstvo, časovnica)
- kino (filmi, gledalci)
- imenik (osebe, naslovi)
- blagajna (plačilno sredstvo, zavedba plačila)
- špedicija (zabojniki, časovnica)
- parkirni avtomat (stranke, časovnica)
Vsebina
Seminarska naloga
• prijava v aplikacijo (identifikacija uporabnika)
• povezava s podatkovno bazo (uporaba ORM)
• administriranje baze (urejanje uporabniškega imena in gesla)
• vnos, spreminjanje, sortiranje in iskanje podatkov znotraj aplikacije
• vnos in izvoz podatkov (XML, csv datoteke)
• tiskanje podatkov (račun, potrdilo, izpis, ...)
• uporaba komponent za paralelno izvajanje
• lokalizacija uporabniškega vmesnika
• logiranje
• uporaba konfiguracijske datoteke
• uporabniška dokumentacija (opis, instalacija, uporaba, ...)
• uporaba komentarjev pri kodiranju
• stil kodiranja (camel Case, Pascal Case)
Priporočila
Seminarska naloga
Ocena
• Smernice: 7-10 priporočil ( <= 8)
Oddaja
• Uporabniška dokumentacija (Word, PDF) 3 dni pred zagovorom po e-pošti
• Vsebina: Naslovna stran, Opis oz. vsebina naloge, Navodila uporabe
aplikacije
Zagovor
• Zagovor naloge na izpitu.
• Izvorna koda (rešitev oz. projekt) in dokumentacija na elektronskem
nosilcu ali po e-pošti ob uspešnem zagovoru
• Prezentacija delujoče aplikacije (delovanje se preveri na zagovoru)
Domača naloga
• 4 naloge, ki se oddajo do naslednjega termina po e-pošti
• Vsebina nalog bo uporabna za seminarsko nalogo
Izpit
• Pisni del se deli na teorijo in izvedbo naloge v Visual C#
• Pozitivna ocena – doseženo vsaj polovico točk iz teorije ter vsaj polovico iz
praktičnega dela
Programiranje
• Ustvarjanje kode, ki jo je možno vzdrževati oz. nadgrajevati
Cilj
Smernice
• Preprostost – lažja čitljivost kode
• YAGNI – You Aren’t Going to Need It
• LRM – Last Responsible Moment - usklajevanje naročnika in izvajalca
• DRY – Don’t Repeat Yourself
• Eksplicitnost
• Odvisnost (Coupling)
• Testiranje (Unit testing)
.NET Okolje
Programska platforma za razvoj aplikacij, s poudarkom na:
• objektno orientiranim programiranjem
• interoperabilnosti
• prenosljivosti
• varnosti
• modularnosti
• jezikovna neodvisnost znotraj .NET (CLI)
Vsebuje pester nabor jezikov:
• C++,
• C#,
• Visual Basic, VBScript,
• J#, JScript
V osnovi sestavljena iz:
• zbirke knjižnic (.NET Framework Classs Library)
• skupnega izvajalnega okolja (CLR – Common Language Runtime)
CLR
Vsi programi pisani v .NET okolju se izvajajo v CLR:
• izbris mej med programskimi jeziki
• omejitev dostopa do sistemskih datotek in drugih pomembnih podatkov
CLR – virtualni procesni stroj (VM):
• izolirani OS znotraj gostujočega OS z omogočitvijo izvajanja programov
• ločitev programskega dela od strojnega (neodvisnost - prenosljivost)
• stabilnost delovanja
Programom zagotavlja določene lastnosti na področju:
• rokovanja s pomnilnikom (memory management)
• varnosti
• rokovanja z izjemami (exception handling)
Framework Class Library
Je objektno orientirana zbirka knjižnic, vmesnikov ter vrednostnih tipov:
• vsebuje več kot 6000 razredov iz katerih gradimo aplikacije ali ustvarimo
svoje zbirke razredov in vmesnikov
• hiarhična ureditev (namespace)
• (System.*, Microsoft.*)
• na voljo vsem CLI programskim jezikom
Zbirka omogoča razvoj naslednjih tipov aplikacij:
• aplikacije v terminalskem okolju (Console)
• aplikacije v Windows okolju (Windows Forms, Windows Services)
• aplikacije v Internet okolju (ASP.NET, XML Web Services)
C# je eden izmed Microsoftovih programskih jezikov za .NET:
• preprost, moderen, splošno namenski, objektno orientiran, visokonivojski,
komponentno usmerjen programski jezik
• standardiziran po Ecma (ECMA-334) in ISO (ISO/IEC 23270:2006)
• strong type checking, bounds checking
• prenosljiv
• namenjen tako za izdelavo aplikacij za gostujoče ali vgrajene sisteme
Verzija Datum izdaje .NET verzija Visual Studio
C# 1.0 2002 .NET 1.0 VS .NET 2002
C# 1.2 2003 .NET 1.1 VS .NET 2003
C# 2.0 2005 .NET 2.0 VS 2005
C# 3.0 2007 .NET 2.0, 3.0, 3.5 VS 2008, 2010
C# 4.0 2010 .NET 4.0 VS 2010
C# 5.0 2012 .NET 4.5 VS 2012, 2013
Programski jezik C#
Visual Studio in C#
Zagon: Start meni->Vsi Programi->
Visual Studio 2013->
Visual Studio 2013
• Solution (rešitev) je največja organizacijska enota, ki lahko vsebuje več projektov.
• Projekt lahko pripada eni ali več rešitvam.
• Projekti v rešitvi so lahko izvedeni v različnih programskih jezikih.
• Projekt vsebuje izvorne datoteke, ki jih prevajalnik (compiler) prevede v
objektne datoteke (.obj), povezovalnik (linker) pa le-te poveže v izvedbeno
datoteko (aplikacijo) s končnico .exe ali dinamično knjižnico opredeljeno s
končnico .dll. Celoten postopek se imenuje gradnja aplikacije (building).
Izbira tipa aplikacije:
-Console Application (terminalska aplikacija)
-Windows Forms Application (okenska aplikacija – z GUV)
Verzija
.NET okolja
Ime projekta
Lokacija projekta
Ime rešitve
Tip aplikacije
Orodjarna (objekti za obrazce) - Toolbox
Urejevalnik kode – Editor
Urejevalnik obrazca – Form Editor
Izhodno okno - Output,
Seznam napak – Error list,
Seznam opravil – Task list
Lastnosti objektov –
Properties
Raziskovalec – Solution Explorer
Imenski prostor
Naše aplikacije
Napoved uporabljenih imenskih prostorov (namespace)
Začetek razreda
oz. programa
Metoda/funkcija Main s poljem
argumentov tipa string
IntelliSense podpora oz. pomoč
Reference
IntelliSense
Nudi več vrst pomoči:
• List Members (Ctrl + J) prikaz seznama vseh članov (members) atributa
• Parameter info (Ctrl + Shift + Space) informacije o parametrih metode
• Quick Info (Ctrl + I) hitra pomoč
• Complete Word (Ctrl-Space) dokončnje besede
Izgradnja in zagon projekta
Samo prevajanje projekta (meni Build):
• Build Solution (F6)
• ReBuild Solution
• Clean Solution
• Build Project (Shift + F6)
V primeru napake se v oknu Error List izpiše informacija o številu in vrsti
napak (skupaj z informacijo o vrstici in stolpcu napake v urejevalniku kode).
Prevajanje in zagon projekta (meni Debug):
• Start Debuging (F5)
• Start Without Debuging (Ctrl + F5)
Dva načina gradnje projekta:
• Debug mode
• Release mode (izvršna koda ne vsebuje izvorne kode)
Struktura projekta
Izvršna koda
Izvorna koda razreda Program
Dodatni uporabljeni razredi
(imenski prostor)
Globalne lastnosti projekta
(avtor, podjetje, verzija, …)
Dodatne informacije
za razhroščevalnik
Napake
Napake delimo :
• napake pri prevajanju (Compile Time Error)
• napake pri izvajanju (Run Time Error)
• logične napake (Logical Error)
Izpis napake
(z miško čez rdeče označeno besedo)
Komentarji
Označeni deli besedila, ki niso del programske kode. Omogočajo boljšo
preglednost kode. V komentarjih je lahko podrobneje razložena izvedena
logika v opisnem načinu.
Tri načini komentiranja:
• dve poševnici // (enovrstični komentar)
• par znakov /* in */ (večvrstični komentar)
• trije znaki /// (dokumentacijski komentarji)
Komentiranje označenega
besedila
Odkomentiranje označenega
besedila
Okenske aplikacije
Orodjarna
Text
Text
Text, Multiline,
Scrollbars
Form.cs [Design]
Form.cs
Form.Designer.cs
Okenske aplikacije
Sami ne delamo sprememb!!!
Okenske aplikacije – lastnosti
Kategorizacija
Sortiranje
Lastnosti
Dogodki
Seznam elementov na obrazcu
Programsko dodajanje lastnosti
Okenske aplikacije – dogodki
Form.Designer.cs (InitializeComponent)
Form.cs
Okenske aplikacije – preimenovanje
Preimenovanje obrazca
Preimenovanje lastnih metod
Okenske aplikacije – glavne datoteke
Organizacija projektov
Nastavitve
Lastnosti projekta (verzija, avtor, …)
Izvorna koda, ki pripada obrazcu
Obrazec (vizualni izgled s komponentami)
Dodatni viri obrazca (slike, besedila ikone)
Specifične informacije za posamezni projekt
Program.cs
Okenske aplikacije – glavne datoteke
Vizualni projekt
Inicializacija
Zagon obrazca
Poimenovanje spremenljivk
• V uporabi velike in male črke, cifre ter podčrtaj,
• Prvi znak je črka,
• Ne uporabljamo podčrtajev v imenih spremenljivk,
• Imena spremenljivk naj se ne razlikujejo samo v veliki in mali začetnici,
• Začetek spremenljivke z malo črko,
• Če je ime spremenljivke sestavljeno iz več besed se vsaka naslednja prične
z veliko začetnico (camel Case)
Podatkovni tipi po vrednosti (value type)
Podatkovni tipi po referenci (reference type)
• class (razred)
• interface (vmesnik)
• string
• delegate (delegat)
• object (objekt)
Stack (sklad) Heap (kopica)
referenca –
kazalec A
B
C
BA
C
Podatkovni tipi – pretvarjanje
Uporaba razreda Convert
Casting
Podatkovni tip – string (String)
Podatkovni tip – string (String)
Formatiranje števil
Uporaba metode ToString
Formatiranje števil
Uporaba metode String.Format
Formatiranje števil - custom