09/11/2015

Krenite u svet programiranja, sa C# programskim jezikom

Programski jezik C# ( C - Sharp ) je jedan od najboljih programski jezika, potpuno baziran na principima OOP – Object Oriented Programming – objektno orjentisanog programiranja i familijaran je sa C i C++ programskim jezicima. Nastao je zahvaljujući Anders Hejlsberg-u, Scott Wiltamuth-u i Peter Golde-u u julu 2000 godine kao deo .NET projekta, ali prvi put je predstavljen javnosti 2002 godine od strane korporacije Microsoft. Najbolji je pre svega zbog svoje jednostavnosti, čitljivosti, lakoći učenja i neverovatnim mogućnostima šta sve možete da isprogramirate sa ovim programskim jezikom. O samom jeziku C# kad naučite neke osnove, pogledajte i međunarodni ISO standard ISO/IEC 23270:2006(E) iz 2006 godine, ali obratite pažnju i na najnovije promene koje donose nevojije verzije. 


( C# programski jezik - jedan od najboljih programskih jezika )

Microsoft je od 2014 godine menjajući kompajler u C# programski jezik; znači danas C# programski jezik kompajlira kompajler za C# programski jezik; omogućio programerima da kompajler kodnog imena „Roslyn“ kao kompajler nije više zatvorena crna kutija, već je open-source kod. Ali je isto tako time omogućio da se prave još bolje promene na samom programskom jeziku. Tako danas imate male promene u kodu koje prave velike promene i umanjuju pisanje koda ali će ih biti sve više. Već sad možete izguglati mnogobrojne promene koje Microsoft već najavljuje unapred pored mnogobrojnih promena koje su već uvedene. Ono bitno što želim da napomenem, C# programski jezik je takođe moja lična preporuka svakom programeru i onom ko želi da uči programiranje. Ukoliko vam programiranje nije najača strana, preporučujem vam C# programski jezik kao prioritet za programiranje, učenje i profesiju jer će te sami sebi na taj način mnogostruko olakšati posao i biti mnogo produktivniji nego u bilo kom drugom programskom jeziku. Naravno učite i druge programske jezike jer ne možete sebe zvati profesionalnim programerom ako znate samo jedan programski jezik; ali C# programski jezik treba da vam bude prioritet što se tiče učenja i mnogobrojni stvari koje ovaj programski jezik ima sptram drugih programskih jezika; kako ne bi ste zaostajali sa svim novim stvarima koje konstantno dolaze sa njim. C# programski jezik je do sada prošao dug put, više od dve decenije i zajedno sa .Net Framework-om promenio je mnogobrojna kodiranja i procese programiranja programskim jezicima pre njega. C# programski jezik nije poput C++ programskog jezika. On je mnogo jednostavniji i lakši za programiranje ali je rezultat toga da je C# jedno sa .NET okruženjem i bez tog okruženja, ne može da ni postoji ni da funkcioniše, što ga za nijansu čini sporijim.

Kakav je C# programski jezik u poređenju sa drugim programskim jezicima?

Za razliku od C# programskog jezika, C++ programski jezik se smatra nešto bržim što danas i nije toliko relevantno s obzirom da su kompjuteri danas mnogo brži, osim možda u nekim segmentima kad su u pitanju programiranje igrica, ali ništa toliko zastrašujuće što se ne može nadomestiti. Sa C++ programskim jezikom možete da programirate i na Linux operativnom sistemu i na OS X platformi jer C++ programski jezik komunicira direktno sa operativnim sistemom i kompajlira odmah mašinski kod, dok je C# zavisan od Microsoft .Net Framework-a koji je posrednik između vaše aplikacije i operativnog sistema. Međutim vi u C++ ne možete da programirate na primer WPF – Windows Presentation Foundation aplikacije dok je danas programirati Windows Forms zastarela tehnologija i pored toga što se treba znati radi vas samih. Sa C# programskim jezikom možete definitivno da uradite više i da kodirate mnogo jednostavnije i lakše nego sa C++ programskim jezikom i to uvek imajte na umu.


( Pad desktop aplikacija i prelazak na veb programiranje zadnjih decenija se odrazio i na poziciju C# programskog jezika, slika predstavlja pozicije programskih jezika u 2023 godini )

Za razliku od Visual Basic programskog jezika i pored toga što se Visual Basic smatrao ravnopravnim sa C# programskim jezikom, postoje neke razlike i Visual Basic definitivno nije mnogo zastupljen u poslovnom svetu kao C# programski jezik. U 2023 godine on se retko i spominje! Tačno je da je Swift programski jezik, koji se može učiti jedino na OS X operativnom sistemu; najavljivan kao revolucija u programiranju kad je nastao, ali se definitivno ne može porediti sa C#. Tačnije Swift je preuzeo mnogo stvari od C# programskog jezika. Java i PHP su vam programski jezici ukoliko želite praviti isključivo aplikacije za Internet, sa Java-om se takođe najbolje prave aplikacije za Android operativni sistem i ovi programski jezici su na tržištu rada često traženiji. Uvesti Microsoft tehnologiju u poslovanje kompanije i pored raznih mogućnosti licenci nije ni približno jeftino, i to je najčešći razlog što C# programski jezik nećete videti prvog na top listama programski jezika. Za učenje C# programskog jezika, Microsoft Visual Community Studio i Microsoft SQL Express Edition vam je besplatan i neophodno je da imate ove stvari isprogramirane na vašem računaru. 

Šta je .NET Framework?

Ako bi ste operativni sistem Windows zamislili kao biblioteku, tj. skup svih funkcijskih poziva u interfejsu Windows API-ja koje koristite u svojim programima, poput prikazivanja okvira za dijalog, prozora za interfejse višestrukih ili pojedinačnih dokumenata, bezbednosni funkcija, funkcija za pristup bazama podataka ili servisa; Onda uloga .NET Framework-a je da vam pruži svoje .NET runtime okruženje, upravlja nitima, obezbeđuje različite pozadinske usluge i jednostavno vam pruža izvestan nivo samostalnosti od operativnog sistema iako .NET Framework nije operativni sistem. On je jedan sloj između Windows-a i vaše aplikacije. Takođe uloga .NET Framework-a vam je da vam obezbedi savremeno, objektno orjentrisano jednostavno okruženje za sve jednostavnije programiranje i izvršavanje programa. Danas je .NET Framework toliko napredovao da on pruža i okruženja koja vam omogućavaju emulatore za programiranje mobilnih aplikacija.


( Arhitektura  .NET Framework-a )

Kad vi napravite program, on koristi određenu verziju .NET Framework-a; i da bi vaš program radio na nekom drugom računaru, taj drugi računar mora da ima takođe istu verziju .NET Framework-a instaliranu kako bi vaša aplikacija radila. Glavna osobina .NET Framework-a je zapravo njegova međujezičnost jer sadrži više programski jezika. Vama ne treba poseban ..NET Framework za svaki programski jezik, čak je svejedno u kom programskom jeziku ste napravili *.dll  datoteku; nju mogu da koriste svi jezici u svojim projektima, ali postoji razlika između 32 i 64 bit-nog .NET Framework-a i bolje će te proći ako imate 64-bit-ni operativni sistem. Za razliku na primer od C++ programskog jezika, vaš kod se ne prevodi odmah u mašinski kod već CLR - Common Language Runtime vaš program prevodi u CIL - Common Intermediate Language  koga formalno zovemo MSIL - Microsoft Intermediate Language kako se često naziva samo IL - Intermediate Language. To je zapravo Microsoft-ov posrednički jezik niskog nivoa. Zato svi .NET  izvršni programi i sve *.dll datoteke mogu da rade zajedno, štedeći vas starih komplikacija koje smo zvali *.dll hell. JIT - Just-in-time compilation zatim prevodi  IL - Intermediate Language u prirodni binarni kod.

Kako je napredovao razvoj C# programskog jezika?

Samom pojavom .NET tehnologije 2002 godine, C# je sa sobom doneo revoluciju u programiranju. Do tada je recimo postojao Visual Basic 6.0 koje je postao Visual Basic .Net  i doneo je sa sobom čak 90% promena. Da nebi bilo zabune, danas se Visual Basic .Net opet zove Visual Basic jer Visual Basic 6.0 je odavno otišao sa scene. C# programski jezik je jednostavno se pojavio kao sasvim novi programski jezik familijaran sa C i C++ programskim jezicima. Od 2002 godine i svoje prve verzije C# 1.0 je pružio punu podršku za klase i OOP – Object Oriented Programming – objektno orjentisanog programiranja , nasleđivanje i od interfejsa i od drugih klasa, virtualne funkcije i preopterećenje operatora; dosledan i dobro definisan skup osnovnih tipova. Zatim došao je sa ugrađenom podrškom za automatsko generisanje XML - Extensible Markup Language dokumentacije, automatsko čišćenje dinamičke dodeljene memorije, mogućnost markiranja klasa atributima koje je odredio korisnik, pun pristup biblioteci baznih klasa ali i jednostavan pristup interfejsu Windows API-ja; ukoliko je nekom baš trebao pa sve do mogućnosti pisanja ASP .net dinamičkih aplikacija. U to vreme to jest bila programerska revolucija i skoro sve se u programiranju promenilo što ste do tada znali. Posle su dolazile manje promene ali izuzetno značajne. Na primer, 2003 godine su se prvi put pojavili auto propertiji. Već od 2005 godine, C# programski jezik je postao bogatiji za iteratore, generički koncept i anonimne metode. U 2008 godini je više dat akcenat na radu sa bazama podataka i onda su se prvi put pojavili lambda izrazi, ekstezione metode ali i celi LINQ – Language Integrated Query jezik, tačnije upite sa integrisanim jezikom. Od 2012 godine C# programski jezik ima podršku za imenovane i opcione argumente, pojavio se tip dynamic, kasno povezivanje za neki objekat. TPL – Task Parallel Library omogućava da potpuno iskoristite prednost procesora sa više jezgara. Posebno je stavljen akcenat na modifikatore metoda async i operatora await.

( C# programski jezik pruža punu podršku za OOP )

Vi možete da koristite operator await u try catch exception i finally sklopu. Try catch exception sad ima čak i filter izraze. Pojavili su se i auto propertiji samo za get iskaz i to nije sve. Vi sad možete inicijalizovati vaše propertije direktno u jednoj liniji koda. Tu je i novi ?. – Elvis operator koji će vas poštediti mnoštva Null i drugih sklopova uslova. String interpolacija; u prevodu umetanje string-a je olakšano sa iskazom karakterom za dolar, $ . Sad se na primer JObject inicijalizira u samo jednom izrazu. Ne morate više da navodite nameof operator, on se podrazumeva ili telo metode možete sada da prosledite lambda izrazom = > i mnoštvom drugih novih stvari uključujući i nova poboljšanja na kojima se trenutno u korporaciji Microsoft-u konstantno radi. 

Da, da… vi danas možete izguglati i videti na kojim promenama u C# programskom jeziku Microsoft korporacija upravo sad radi i unapred videti šta će tek biti u C# programskom jeziku pored svega novog.

Ja razumem ukoliko ste početnik ili nemate iskustva sa C# programskim jezikom da vam sve ovo što sam naveo može zvuči kofuzno, velika je istorija ovog programskog jezika; ali vremenom će te razumeti. C# programski jezik i svaki drugi programski jezik se najbolje uči kodiranjem, pa tek onda teorijom. Jer sve što sam naveo, primeniti u kodu je to mnogo jednostavnije.

Kako da napišem svoj prvi program u C# programskom jeziku?

Da bi ste počeli sa pisanjem C# programskog jezika, neophodno je da imate instaliranu neku od verzija Microsoft Visual Studio-a. Ja vam preporučujem da instalirate Microsoft Visual Studio Community; ediciju koja je besplatna. Pogledajte u video-u kako se to radi:


( Windows - 4. How to install Microsoft Visual Studio Community? ) 

Pokrenite Microsoft Visual Studio; kliknite na New; zatim Project… izaberite Console Application šablon. Ali obratite pažnju da ćemo prvo kodirati aplikaciju za Console Aplication i .Net. Znači konzolna aplikacija samo za Windows operativni sitem. Unesite naziv programa i podesite direktorijum u kom želite da snimite vaš program. Program nazovite „hello_world_01“ zatim pritisnite „OK“. Zatim unesite sve linije koda da vaš kod izgleda identično dole navedenom: 

/*

using System;

using static System.Console;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

*/


// This is one-line comment


/*

 *  This is multi-line comment

 */

namespace manuel // The namespace is used to declare a scope that contains a set of related objects

{

    internal class Program // The class is only accessible to other classes which are in the same assembly

    {

        static void Main(string[] args) // The first method wich gets invoked whenever an appplication

                                        // started and it is present in every c# executable files

        {

            System.Console.WriteLine("Hello World");

            // Console.WriteLine("Hello World");

            // WriteLine("Hello World");

            System.Console.ReadLine(); // keeps the terminal screen open until the user type anything 

        }

    }

}

Pokrenite program, pritisnite dugme “Start” i pokrenuće se Commmand Prompt ukoliko niste napravili ni jednu grešku tokom kucanja. Vaš program će se kompajlirati; izvršiti i dobiće te ovakav rezultat.

Hello World

Pritisnite bilo koju tipku na tastaturi i vaš program će se zatvoriti. Kao što možete videti celi vaš mali jednostavan program se sastoji od nekoliko imenskih referenci i nekoliko linija koda. Prvi blok koda predstavlja samo imenski prostor čiji se naziv može menjati. Drugi blog predstavlja klasu, znači vaš program je u suštini klasa i u njoj se nalazi funkcija. Funkcije u C# programskom jeziku uvek zovemo metoda zato što se nalaze u klasama. Naziv metode Main() ne možemo menjati, ali njene atribute u ovom programu možemo totalno i izbrisati jer za izvršenje ovakvog prostog koda vam ne trebaju nikakvi ulazni argumenti. Kad smo kod mogućnosti, ispis prethodnog koda možete napisati na više načina. Ukoliko pogledate u editor koda u Visual Studio-u, primetiće te da su neki imenski prostori zatamljene boje, što znači da aplikacija ne koristi iste. Takođe prva stvar o C# programskom jeziku koju trebate znati da je C# case sensitive programski jezik; npr. ne možete napisati main(). To nije isto kao Main(). Kad uvozite imenske prostore, tada manje kucate. Po defaultu vaš namespace ima isti naziv kao i vaš program. To vam služi kao kontajner za vaše projekte. Tako u slučaju da neko nazove svoj projekat isto kao naziv vašeg projekta, razlikovaće se po namespace-u. Inače, vi ne morate uopšte koristiti namespace, ali to je pogrešno i nije praksa. Obratite pažnju na komentare. U C# programskom jeziku imate jednolinijske i višelinijske komentare. Pogledajte u kodu kako se pišu i kako se korsite da opišu ili da neki deo koda zakomentarišete. Sad napravite drugi projekat ali za konzolnu aplikaciju koja može da radi i na drugim operativnim sistemima i nazovite je „hello_world_02“. Pogledajte kako vaš mali program sad izgleda dok prikazuje isti rezultat. Tokom ovog tutoriala koristićemo ovu drugu varijantu.  

using static System.Console;

WriteLine("Hello World");


Ovde imamo sao dve linije koda iako smo sve to mogli staviti i u jednu. Poenta je ovde da su ostale stvari ovde skrivene poput imenski prostora koji se postavljaju po defaultu. Kako se ovaj mali program kodira najbolje da pogledate na video-u:


( C# - Fundamentals - 1. Hello World )

















1 komentar: