3-.net.ppt - compatibility mode...vasiona? namespace vasiona {//kod u imenovanom prostoru vasiona...

Post on 07-Jul-2020

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Osnove programiranja

.NET okruženje

Sadržaj .NET okruženje Šta se nalazi unutar .NET okruženja? Kompajliranje koda Imenovani prostor Konzolne aplikacije Osnove strukture C# konzolne aplikacije Objašnjenje koda – prostor imena System, klasa

Program i metoda Main Komanda Write i WriteLine Izlazna sekvenca (string literali)

Šta je .NET okruženje? .NET okruženje je platforma za razvoj aplikacija čiji je

tvorac Microsoft. Ključni razlog za razvoj ove tehnologije – sredstvo

kojim se vrši integracija različitih operativnih sistema. .NET okruženje dizajnirano je tako da se može koristiti

iz bilo kog jezika: C#, C++, Visual Basic, JavaScript, pa čak i starije jezike kao što je COBOL.

Da bi sve to funkcionisalo, pojavile su se i posebneverzije ovih jezika za .NET.

.NET Framework

.NET Framework je razvojno okruženje kojeomogućava kreiranje .NET aplikacija

Predstavlja osnovu .NET platforme Sastoji se iz dve komponente:

Common Language Runtime (CLR) – virtualna mašina odgovorna za izvršavanje koda

.NET framework biblioteka klasa, biblioteka koja omogućava kreiranje windows, veb aplikacija i veb servisa

Struktura .NET Frameworka

Prednosti .NET platforme

Jezička nezavisnost Ovo je postignuto postojanjem međujezika, IL

(Intermediate Language, ili MSIL), tj. kôd napisan na bilo kom jeziku koji ima podršku za .NET prevodise u kôd razumljiv tom međujeziku

Pristup za zajedničko korišćenje koda Umesto tradicionalnih dll biblioteka, uvodi se

koncept sklopova (assembly)

Zajednički sistem tipova Common Type System - CTS

Jedan deo biblioteke .NET okruženja definišesamo osnovne tipove podataka.

Tip je u stvari način na koji se predstavljapodatak, a definicijom fundamentalnih tipovapodataka olakšava se interoperatibilnost između jezika koji koriste .NET okruženje. Na primer u Visual Basic .NET-u koristi neka

metoda koja vraća tip „Integer“, a u C#-u se koristi tip „int“.

Izvršno jezičko okruženje Common Language Runtime

Odgovorno za izvršavanje svih aplikacijarazvijenih uz pomoć .NET biblioteke. CLR izvršava kôd koji je kompajliran na .NET

platformi. CLR specifikacija je otvorena za sve platforme,

uključujući i ne-Windows.

Kako napisati aplikaciju koristeći .NET okruženje?

Pisanje aplikacija unutar .NET okruženja znači pisanje koda (bilo koji jezik koji podržava ovo okruženje) uz pomoć .NET biblioteke koda.

Da bi se C# kod izvršio neophodno ga je prevesti u jezik koji operativni sistem na kome jeaplikacija razume.

Ovo prevođenje se još naziva i kompajliranjekoda, funkcija koju obavlja kompajler.

Unutar .NET okruženja ta operacija ima dve faze.

Kompajliranje koda

Izvorni kod se kompajlira u Microsoftov posredni jezikkod (Microsoft Intermediate Language - MSIL). MSIL kod se smešta u posebne sklopove (engl. assembly).

Zatim, JIT kompajler (Just-In-Time - JIT), prevodiMSIL kod u prirodni specificiran od strane operativnogsistema i arhitekture same mašine na kojoj se programizvodi.

Tek tada operativni sistem može izvršiti program. Pojam „u pravo vreme" označava da se MSIL kod

kompajlira samo kada je to potrebno.

Kartice glavnog prozora

Solution Explorer prozor prikazuje informacije o trenutnoučitanim rešenjima. Rešenje je po terminologiji VS-a jedan ili više projekata zajedno sa njihovom konfiguracijom.

Toolbox paleta sa alatkama koja pruža mogućnost pristupakorisničkom interfejsu za izradu elemenata Windows aplikacija.

Properties prozor omogućava detaljniji pogled na sadržinuprojekta i dozvoljava dodatno konfigurisanje pojedinihelemenata.

Output prozor prikazuje informacije prilikom kompajliranjaprojekta.

Imenovani prostor

Imenovani prostor - metod .NET okruženja kojim se obezbeđuje kontejner koji sadrži aplikacioni kod i to tako da i kod i njegov sadržaj mogu biti jedinstveno identifikovani.

Imenovani prostori se takođe koriste i prikategorisanju objekata .NET okruženja.

Najveći deo tih objekata su definicije tipova, kaošto su recimo prosti tipovi.

Pristup imenovanom prostoru C# kod se podrazumevano sadrži u globalnim

imenovanim prostorima. Tom kodu se može pristupiti iz nekog drugog

koda koji je unutar globalnih imenovanihprostora, tako što se navede njegovo ime.

Može se koristiti i ključna reč namespace, da bise eksplicitno definisao imenovani prostor u bloku koda oivičenom vitičastim zagradama.

Takva imena moraju biti kvalifikovana, ukolikoće ih koristiti kod izvan imenovanog prostora.

Kvalifikovana imena

Kvalifikovano ime je ono koje sadrži sveinformacije o svojoj hijerarhiji.

To znači da ukoliko imamo kod u jednomimenovanom prostoru, koji treba da koristi imedefinisano u nekom drugom imenovanomprostoru, moramo uključiti referencu na ovajimenovani prostor.

Kvalifikovana imena koriste znak(.) između nivoa imenovanog prostora.

Primernamespace PrviNivo{

//kod u imenovanom prostoru PrviNivo//ime “PrvoIme” definisano

}//kod u globalnom imenovanom prostoru

Ovaj kod definiše jedan imenovani prostor, PrviNivo, kao ijedno ime u njemu, PrvoIme.

Kod napisan unutar PrviNivo imenovanog prostora, poziva ovoime upotrebom “PrvoIme” - nije potrebna nikakva drugaklasifikacija.

Kod u globalnom imenovanom prostoru mora pozivati ovo imena sledeći način: “PrviNivo.PrvoIme”.

Ugnježdeni prostor imena

U okviru imenovanih prostora možemo definisati ugnježdene imenovane prostore, korišćenjem ključne reči namespace.

Ugnježdeni imenovani prostori se pozivajupreko svoje hijerarhije, opet koristeći tačku da bi naveli svaki nivo unutar hijerarhije.

Primernamespace PrviNivo{

//kod u imenovanom prostoru PrviNivonamespace DrugiNivo

{//kod u imenovanom prostoru PrviNivo. DrugiNivo//ime “DrugoIme” definisano}

}//kod u globalnom imenovanom prostoru

Objašnjenje

Ovde se DrugoIme mora pozivati kao“PrviNivo.DrugiNivo.DrugoIme” iz globalnogimenovanog prostora;

ili kao “DrugiNivo.DrugoIme” iz imenovanogprostora PrviNivo;

ili kao “DrugoIme” iz imenovanog prostoraPrviNivo.DrugiNivo.

Analogija sa hijerarhijom foldera i datoteka

Name space Systemusing System;namespace PrviProgram{.....} Prvi red koristi using da definiše imenovani prostor System kojiće biti korišćen u ovom C# kodu

Njemu se može pristupiti iz svih imenovanih prostora koji su u ovoj datoteci, bez klasifikacije.

System imenovani prostor je koreni imenovani prostor zaaplikacije .NET okruženja i sadrži sve osnovne funkcionalnosti neophodne za konzolne aplikacije.

Primer Kako pozvati ime Venera iz koda unutar imenovanog prostora

Vasiona?namespace Vasiona{

//kod u imenovanom prostoru Vasionanamespace MlecniPut{

namespace SuncevSistem{

// definisano ime Venera}

}

}

Konzolne aplikacije

Konzolna aplikacija je aplikacija koja se pokrećeu komandnom prozoru, ali nema grafičkikorisnički interfejs.

Komunikacija se odvija isključivo sa komandnelinije.

Za unošenje i prikazivanje podataka u konzolikoriste se metode klase Console.

Izbor konzolne aplikacije Visual Studio .NET

Primer 1

Napisati C# kod koji će na ekranu ispisati:Moj prvi c# kod

Solution Explorer

Pogled preko Solution Explorer-a prikazujedatoteke od kojih se sastoji projekatPrviProgram.

Datoteka koja sadrži kod je Program.csprikazana zajedno sa još jednom kod datotekom, AssemblyInfo.cs. Sve datoteke sa C# kodom imaju nastavak cs.

Solution Explorer

Lista References sadrži spisak.NET biblioteka koji se koriste u projektu.

Drugi pogled istog prozora, Class View, predstavlja način da se pogleda projekat kroznapravljenu strukturu koda.

Prozor Properties

Ovaj prozor pokazuje dodatne informacije o onome šta je odabrano u prozoru iznad njega.

Npr. kada se izabere Program.cs sadržaj ovog prozora dat je na slici

Svojstvima ovog prozora bavićemo se kod kreiranja Windows aplikacija.

Prozor Output

U ovom prozoru daje se izveštaj o statusudatoteka koje se kompajliraju.

Ovde se dobija i izveštaj o greškama koje se mogu dogoditi tokom kompajliranja.

Npr. Šta će se desiti ako se obriše tačka-zarez iznekog reda ?

Osnove strukture C# konzolne aplikacije

using System;namespace PrviProgram{

class Program{

static void Main(string [] args){/* Dodaj kod – ovde startuje aplikacija */

Console.WriteLine ("Moj prvi C# kod");}

}}

Kada se konzolnaaplikacija startuje izvršavase oivičen blok. Jedini red koda koji ćenešto uraditi jeste onaj kojije dodat generisanomkodu, a nije komentar.

Izlazna metoda

WriteLine metoda je jedna od izlaznih metodau Console klasi.

Ona prikazuje string koji je zadat kao parametarna standardni izlazni tok

System.Console.WriteLine();

Objašnjenje koda – System

Na samom vrhu koda nalazi se linija using System; Ova naredba omogućava da se nadalje u kodu koriste

sve metode iz prostora imena System, a da se eksplicitno ne navede reč System.

Tako se klasa Console sa metodama za rad sa konzolom, koja pripada prostoru imena System, može pozvati Console.WriteLine(“….”)

Umesto System.Console.WriteLine(“….”) tzv. punakvalifikacija imena.

Objašnjenje koda – namespace

namespace predstavlja .NET način da se kod i njegov sadržaj jedinstveno identifikuju.

Koristi za kategorizaciju elemenata u .NET okruženju.

namespace je deklarisan za kod aplikacije koja se u ovom slučaju naziva PrviProgram.

Objašnjenje koda – klasa

C# je objektno orijentisan programski jezik i sve naredbe moraju stajati u klasama.

Početak klase počinje sa otvorenom vitičastom zagradom { i završava se sa }.

Klasa u kojoj je ceo kôd ovog primera zove se “Program” (class Program) i ima jednu jedinu naredbu:

Console.WriteLine( “Ovo je moj prvi C# kod” ); WriteLine() je funkcija koja kao rezultat vraća string

koji joj je prosleđen.

Objašnjenje koda – metod Main

U klasi Program nalazi se metoda Main. Funkcija Main() je ulazna tačka (entry point) za

konzolnu aplikaciju. Program može imati samo jednu ulaznu tačku i ona se

ostvaruje upravo preko ove metode. Kada se C# aplikacija izvršava, poziva se funkcija koja

sadrži ulaznu tačku. Kada se ta funkcija izvrši, aplikacija se završava. Ova metoda počinje sa static, što znači da je statička i

void - ne vraća vrednost.

Osnove C# sintakse

C# kod je sastavljen od niza iskaza, a svaki odnjih se završava tačkom-zarezom.

Beli (prazan) prostor se ignoriše, pa je moguće u jedan red staviti više iskaza.

Zbog čitljivosti uobičajeno je preći u novi red nakon tačke-zareza.

Prihvatljivo je (čak i normalno) da se jedan iskazunese u više redova.

Osnove C# sintakse

C# spada u jezike sa blokovskom strukturom, što značida su svi iskazi delovi bloka unutar koda.

Ovi blokovi, koji su oivičeni vitičastom zagradom ({i}), mogu da sadrže bilo koju vrstu iskaza, a i ne moraju nijednu.

Blokovi mogu biti i ugnježdeni jedan u drugi Zapamtite da vitičaste zagrade ne zahtevaju tačku-zarez

iza sebe. {<red koda 1, iskaz 1 >;<red koda 2, iskaz 2 >

<red koda 3, iskaz 2 (nastavak)>;}

C# case sensitive

C# pravi razliku između malih i velikih slova -case-sensitive.

Ako bi u prethodnom primeru napisali“console” (malim početnim slovom) umesto“Console” program se ne bi preveo, a prevodilacbi prijavio grešku.

Komentari // Ova vrsta

komentara je korisnaza dokumentovanjeiskaza, jer može bitipostavljena u istomredu kao i iskaz:

<Iskaz>; // Objašnjenje iskaza

/// Poseban komentarDozvoljava da se dokumentuje kod.

WriteLine i izlazna sekvenca

Console.WriteLine ("Moj prvi C# kod ");

Console.WriteLine ("Moj prvi C# kod \n");

Console.WriteLine ("\t Moj prvi C# kod \n");

String literaliEscape sekvenca Znak koji pravi

\’ Jednostruki navodnik\” Dvostruki navodnik\\ Obrnuta kosa crta\0 Nula \a Alarm (zvučni signal)\b Unazad za jedan znak\f Prelazak na sledeću stranu\n Novi red\r Prenos u novi red\t Horizontalni tabulator\v Vertikalni tabulator

Ulazna metoda

ReadLine metoda je jedna od ulaznih metodaklase Console.

Koristi se za dobijanje vrednosti iz korisnikovogunosa u konzoli.

System.Console.ReadLine(); ili Console.ReadLine();

Metod ReadKey() čeka da korisnik pritisne taster na tastaturi.

Bez nje bi se otvorio prozor komandne linije, ispisao tekst i prozor bi se odmah zatvorio

ReadKey() - funkcija za unos nekog znaka sa tastature

Vežbanja

Ukoliko nemate instaliran Visual Studio vežbajte kod preko sledećeg linka:

https://code.sololearn.com/#cs

top related