Sunteți pe pagina 1din 24

Medii de dezvoltare curs 1- Informatic Economic, an III

Introducere in .NET Framework

Gheorghe Cosmin
Silaghi
Cluj-Napoca - 24 Noiembrie 2014

Obiective
Deprinderea principalelor concepte ale programarii in .NET
Framework 4.0
Programarea aplicatiilor Windows utilizand WPF
Programarea aplicatiilor Web utilizand ASP.NET
Programarea accesului la date

Organizare
Laborator: 418/419/420
Echipa:

Prof. Dr. Gheorghe Cosmin Silaghi,


Lect. Dr. Cristian Bologa, As. Dr. Alexandru Stan, Drd. Florina Covaci

Cluj-Napoca - 24 Noiembrie 2014

Medii de dezvoltare
Cerine, evaluare
Prob teoretic: 40% - din care

Examen scris n sesiune: 75%


2 teste scrise la finalul cursurilor: fiecare 12.5%
Testele scrise: materia predata pana la momentul
testului

Proiect: 40%, examinat prin sustinere in sesiune


Evaluarea activitii de laborator: 20%
Necesar: minim 5 la fiecare prob de examen

Cluj-Napoca - 24 Noiembrie 2014

Bibliografie
handouts la fiecare curs din Microsoft Official Curricula

Orice al material la dispozitia dvs este potrivit

Cluj-Napoca - 24 Noiembrie 2014

Cuprins
Introducere in .NET Framework 4.0
Crearea proiectelor utilizand Visual Studio
Scrierea aplicatiilor in C#
Documentarea aplicatiilor
Debugging

Cluj-Napoca - 24 Noiembrie 2014

Introducere n .NET Framework 4.0

Cluj-Napoca - 24 Noiembrie 2014

Common Language Runtime (CLR)


Mediul de executie a programelor in .NET Framework

Mediu robust si securizat

Gestioneaza executia programelor


Simplifica procesul de dezvoltare software
Furnizeaza servicii comune pentru programele
executate:

Managementul memoriei
Gestiunea tranzactiilor
Comunicarea intre procese, multithreading
Si altele

Cluj-Napoca - 24 Noiembrie 2014

CLR suport pentru mai multe


limbaje de programare
Permite scrierea programelor in mai multe limbaje de
programare echivalente
Visual Studio 20xx furnizeaz compilatoare pentru C#, C+
+, Visual Basic si F#
Modelul de compilare in 2 faze:

Codul surs este compilar intr-un limbaj intermediar MSIL


Codul MSIL este executat de ctre CLR

Cluj-Napoca - 24 Noiembrie 2014

Biblioteca de clase
Furnizeaza clase reutilizabile care pot fi folosite de ctre
programatori
Se asigura o fundatie comuna de functionaliti care pot fi
folosite
Dezvoltatorii nu trebuie sa re-inventeze logica unor unelte
clasice
Clasele din biblioteca de baza pot fi extinse prin procesul de
motenire

Cluj-Napoca - 24 Noiembrie 2014

Medii de dezvoltare suportate


ASP.NET aplicatii web server-side
Windows Presentation foundation (WPF) aplicatii client
Windows cu grafic bogat
Windows Communication foundation (WCF) aplicatii
orientate pe servicii

Vor fi abordate la disciplina Programare pe componente

Windows Workflow foundation (WWF) aplicatii bazate pe


descrieri de procese de tip workflow

Descrieri de tip workflow vor fi abordate la disciplina Sisteme


pentru modelarea proceselor de afaceri

Cluj-Napoca - 24 Noiembrie 2014

Obiectivele limbajului C#
Este limbajul de programare dedicat pentru .NET
Framework
Utilizeaza o sintax similar cu C/C++ i Java
C# este standardizat prin ECMA-334 C# Language
Specification
Visual Studio furnizeaza editor de cod, compilator,
template-uri pentru proiecte, wizards, debugger, si alte
unelte

Cluj-Napoca - 24 Noiembrie 2014

Assembly
Prin compilarea codului sursa C# se genereaz fisiere
executabile care ruleaz pe CLR => assembly
Contin cod intermediar MSIL (Microsoft intermediate language)
CLR ruleaz cod MSIL indiferent de limbajul surs in care este
scris programul
Assembly:

sunt blocurile de baz a aplicaiilor .NET Framework


Reprezinta unitatea de baz pentru deployment, controlul versiunilor
reutilizare si securitate
Colecie de tipuri si resurse care conlucreaz si formeaz o unitate logic
de functionalitate

2 tipuri de assembly:

program executabil
Librarii: pentru modularizarea dezvotrii codului si descopunerea aplicaiei
in componente

Cluj-Napoca - 24 Noiembrie 2014

Assembly (II)
Contin informaie legat de controlul versiunii
Fiecare assembly este semnat digital
Includerea informaiei legate de versiune permite realizarea
pailor necesari pentru upgrade-ul aplicaiei
Semnatura assemblyurilor asigura faptul c acestea nu vor fi
modificate sau inlocuite de o implementare alternativ
Semnatura asigura pentru fiecare assembly un strong
name
Manifest-ul assembly-ului:

Contine informatia legata de versiune si semnatur


Contine metadata care descrie obiectivul assembly-ului si referine la
alte clase si resurse
Este stocat intr-un fiier portable executable (PE)

Versiunea contine: major version, minor version, build


number i revision number
Cluj-Napoca - 24 Noiembrie 2014

Semnatura assembly-ului
Protejeaza assembly-ul de modificari neautorizate
Permite includerea unui assembly semnat in Global
Assembly Cache

Se pot partaja assemblyuri intre mai multe aplicaii

Se garanteaza un nume unic unui assembly


Pentru semnare, se foloseste Sign Tool (furnizat de Visual
Studio)

Cluj-Napoca - 24 Noiembrie 2014

Executia assemblyurilor
CLR incarc acele assemblyuri referite de ctre aplicaie

ClassLoader: pentru localizarea si incarcarea assemblyurilor

Verific i compileaz assemblyurile in cod masin

MSIL-to-native compiler
Just-in-time compilation: codul MSIL este compilat in executabil
chiar inainte de execuie

Ruleaz executabilul

CodeManager: incarca executabilul si executa metoda Main


Garbage Collector: elibereaz memoria obiectelor care nu mai sunt
utilizate de ctre aplicaie
Exception Manager: furnizeaz gestiunea excepiilor

Cluj-Napoca - 24 Noiembrie 2014

Unelte furnizate de ctre .NET Framework


Code Access Security Policy Tool (Caspol.exe)

Permite utilizatorilor s modifice politicile de securitate la


nivel de utilizator, masin sau enterprise

Certificate Creation Tool (Makecert.exe)

Permite utilizatorilor s creeze certificate X.509


Aceste certificate sunt folosite pentru semnarea assemblyurilor si
definirea conexiunilor SSL

Global Assembly Cache Tool (Gacutil.exe)

Permite (dez/)instalarea assemblyurilor din GAC

Native Image generator (Ngen.exe)

Creste performanta aplicaiilor .NET.


Se precompileaz assembly in cod masina
CLR pot executa acest cod precompilat in locul compilarii Just-intime

Cluj-Napoca - 24 Noiembrie 2014

Visual Studio 20xx


IDE care permite dezvoltarea rapid a aplicaiilor (RAD)

Se pot crea interfete GUI complexe in mod rapid

Access la servere si date:

Permite conectarea la serverele de date i explorarea acestora

Debug:

Furnizeaz unealt pentru executie pas-cu-pas, breakpoints, urmarirea


executiei

Gestiunea erorilor

Fereastr de erori, acestea sunt produse pe msura scrierii codului si la


build

Facilitai pentru help si documentare

VS are help integrat


Intellisense, Code snippets

Cluj-Napoca - 24 Noiembrie 2014

Template-uri de baz in VS
Furnizeaza cod de star de la
care se poate crea in mod rapid
o aplicaie
Include pentru utilizare
componentele si controalele
relevante tipului de proiect
Configureaza IDE-ul pentru
dezvoltarea tipului de aplicaie
Adaug referintele ctre
assemblyurile relevante

Console application
WPF application
Class Library
Windows Forms
Application
ASP.NET Web application
ASP.NET MVC 2
Application
Silverlight Application
WCF Service application

Cluj-Napoca - 24 Noiembrie 2014

Solutia VS
Reprezinta wrapper pentru proiectele .NET
O solutie VS poate contine mai multe proiecte .NET
O solutie VS poate contine tipuri diferite de proiecte .NET
Fisier .sln: punct de access pentru proiectele din solutie
Fisier .suo: user option file: setrile utilizatorului pentru solutia VS

Cluj-Napoca - 24 Noiembrie 2014

Clase si namespace-uri
.NET Framework respect paragidma obiectual: clase
O clas defineste caracteristica i funcionalitatea unei
entiti
Un namespace reprezinta o colecie logic de clase

Namespace-ul este echivalentul packageului

Cluj-Napoca - 24 Noiembrie 2014

Structura unei aplicaii consol

Cluj-Napoca - 24 Noiembrie 2014

Comentarea aplicaiilor
Incepei procedurile prin blocuri de comentarii
Spargeti procedurile lungi in unitti de munc prin
blocuri de comentarii
La declararea variabilelor folositi comentarii pentru a
descrie utilizarea acestor variabile
La utilizarea structurilor de decizie indicai (prin
comentarii) modul de luare a deciziei si logica acesteia

Cluj-Napoca - 24 Noiembrie 2014

Documentarea aplicaiilor
Se folosesc comentarii XML pentru a genera documentatie
HELP pentru aplicaii

Cluj-Napoca - 24 Noiembrie 2014

Taguri pentru documentare


<summary></summary>: furnizeaz o descriere scurt
<remark></remark>: furnizeaz o descriere lung
<example></example>: furnizeaz un exemplu de utilizare pentru
metod, proprietare, sau alt membru al bibliotecii
<code></code>: indic faptul c avem un cod surs
<returns></returns>: documenteaz valoarea sau tipul de return al
unei metode
Csc.exe cu parametrul /doc: genereaz un fisier XML care are codul
XML pentru documentare inclus
In fereastra properties a proiectului (in Solution Explorer) pe tabul
Build se bifeaz XML documentation
Sandcastle Help File Builder -> se folosesc sursele XML pentru a
genera fisiere help .chm

Cluj-Napoca - 24 Noiembrie 2014