Documente Academic
Documente Profesional
Documente Cultură
pr5 PDF
pr5 PDF
gș e‐content
pentru învățământul superior tehnic
Instrumente pentru Dezvoltarea Programelor
p g
Integrated Development Environments
(IDEs)
IDP – Instrumente pentru Dezvoltarea Programelor 2
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Integrated Development Environments (IDEs)
IDE = workbench
IDE = workbench ‐ un set coerent de instrumente CASE
un set coerent de instrumente CASE
proiectat pentru a suporta activităţi software
Oracle Designer
Microsoft’s Visual Studio .NET
Eclipse
Furnizează o interfaţă unică utilizatorului către mai
ţ multe
instrumente CASE
Common UI: toate instrumentele pot fi invocate din şi pot
afişa rezultatele în acelaşi IDE
IDP – Instrumente pentru Dezvoltarea Programelor 3
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
I t
Integrated Development Environments
t dD l tE i t
Extensibilitate: arhitecturi bazate pe plug‐in‐uri
Plug‐in: componentă program ce poate fi integrată (“plugged”)
în sistem
De obicei are propriile ferestre de comunicare
De obicei are propriile ferestre de comunicare
Un IDE furnizează de obicei resurse comune tuturor
instrumentelor integrate (ex acces la codul sursă
instrumentelor integrate (ex. acces la codul sursă,
modele interne, …)
Avantaje şi dezavantaje
Avantaje şi dezavantaje
Integrează diverse instrumente ce asistă tot parcursul
procesului software
Fiecare IDE este diferit şi necesită învăţare şi cunoştinţe
IDP – Instrumente pentru Dezvoltarea Programelor 4
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Integrarea instrumentelor
Workbenchurile integrează mai multe instrumente în acelaşi UI
Editoare text
Compilatoare
Depanatoarea (execuţia & verificarea programului pas cu pas)
Profilere (măsurarea & verificarea timpului petrecut în execuţia unor
secvenţe de cod)
secvenţe de cod)
Diverse alte editoare (e.g. pentru diagrame)
Diverse alte instrumente (constructie, generearea/transformarea codului,
…)
Valoare dată de integrarea funcţională
Comunicaţie între instrumente, e.g.
Editor text cu senzitivitate la elementele constructive ale limbajului
j
(syntax sensitivity, auto‐completion)
Lista de erori de compilare cu navigare în codul sursă
Depanator integrat cu editorul text
Extensibilitate: arhitectura de tip plug‐in şi interfaţa cu
instrumente consolă
IDP – Instrumente pentru Dezvoltarea Programelor 5
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Vederi multiple
Vederi multiple
IDE‐urile furnizează un UI workspace conţinând câteva paneluri ce prezintă
diverse informaţii de interes pentru utilizator
Task
Task‐uri
uri diferite beneficiază de vederei
diferite beneficiază de vederei diferite asupra unor elemente
diferite asupra unor elemente
Idea: furnizarea aceleiaşi (sau măcar similare) informaţii în diferite paneluri
(sincronizate), folosind diverse reprezentări
Exemplu: lucrul cu un GUI
p
Diagrama de clase arată relaţiile statice dintre controale
Ierarhia de conţinut prezintă structura la runtime a GUI‐ului
Editorul vizual arată proiectul grafic (layout, culori, …)
Codul cursă prezintă specificaţia comportamentului dinamic
d l ă i ă ifi i l i di i
b.addActionListener(new ActionListener() {
void actionPerformed(ActionEvent e) {
System.out.println("Hello!");
} });
IDP – Instrumente pentru Dezvoltarea Programelor 6
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
IDP – Instrumente pentru Dezvoltarea Programelor 8
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Dezvoltare GUI
IDP – Instrumente pentru Dezvoltarea Programelor 9
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Dezvoltare grafică…
l f ă
IDP – Instrumente pentru Dezvoltarea Programelor 10
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Dacă vorbim cu utilizatorii de Visual Studio:
Aveţi grijă la referirile la “Java” şi “Open Source”
•Java = încet, cu multe probleme
•Open Source = bug‐uri, fără suport
O S b i fă ă t
Pentru ei Eclipse nu reprezintă centrul universului
Propria experienţă contează
Propria experienţă contează
Clientul are întotdeauna dreptate
Nu vă feriţi să semnalaţi posibile probleme pe care le vedeţi – mai târziu vă veţi mulţumi
Nu vă feriţi de a vă arăta nelămuririle legate de o soluţie impusă ‐ “Arată‐mi cum fac asta în
Vi l St di ”
Visual Studio…”
Întotdeauna veniţi cu propriile soluţii la probleme întâlnite, ceilalţi vor aprecia
IDP – Instrumente pentru Dezvoltarea Programelor 11
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Visual Studio
IDP – Instrumente pentru Dezvoltarea Programelor 12
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Vi l S di
Visual Studio
Scurtă istorie:
Visual Studio 97 (1997)
Visual Studio 97 (1997)
Visual Studio 6 (1998)
Visual Studio.NET (2002)
Visual Studio.NET 2003
Visual Studio 2005
Visual Studio 2008
IDP – Instrumente pentru Dezvoltarea Programelor 13
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
(Câteva) Caracteristici
Class Browser
Rich Debug Info
Desktop Integration
Scripting
S i i
System Search
Flexible Projects
Flexible Projects
IDP – Instrumente pentru Dezvoltarea Programelor 14
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
C
Caracteristici
i i i
Class Browser
Rich Debug Info
Desktop Integration
Scripting
System Search
Flexible Projects
Flexible Projects
IDP – Instrumente pentru Dezvoltarea Programelor 15
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
C
Caracteristici
i i i
Class Browser
Rich Debug Info
Desktop Integration
Scripting
S i i
System Search
Flexible Projects
Flexible Projects
IDP – Instrumente pentru Dezvoltarea Programelor 16
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
C
Caracteristici
i i i
Class Browser
Rich Debug Info
Desktop Integration
Scripting
S i i
System Search
Flexible Projects
Flexible Projects
IDP – Instrumente pentru Dezvoltarea Programelor 17
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Eclipse
IDP – Instrumente pentru Dezvoltarea Programelor 18
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
C
Caracteristici
i i i
Platformă universală, open‐source, ce integrează diverse instrumente de
dezvoltare a aplicaţiilor
dezvoltare a aplicaţiilor
Independenţă de limbajul de dezvoltare şi mediu de operare
Diverse tipuri de conţinut
HTML, Java, C, JSP, EJB, XML, GIF, …
Facilitează integrarea uşoară de diverse instrumente
Instrumentele pot avea acces la diverse funcţii de bază ale platformei
p ţ p
Se pot adăuga noi instrumente la produsele deja instalate
Comunitate mare de dezvoltatori
Include companii comerciale dezvoltatoare de software (IBM leader)
Include companii comerciale dezvoltatoare de software (IBM leader)
Se bazează pe popularitatea de care se bucură Java în rândul dezvoltatorilor de
aplicaţii
IDP – Instrumente pentru Dezvoltarea Programelor 19
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Elemente Eclipse
Elemente Eclipse
Workbench (Fereastra Eclipse) conţine paneluri
Editoare: un tip particular de fişier poate fi editat
Vederi: furnizează reprezentări alternative şi ajută la navigare
O vedere se deschide cu Window ‐> Show View sau ca “Fastview”
Paneluri sunt grupate în areas (zone)
Zonele pot fi minimizate/maximizate
Zonele pot fi suprapuse prin
drag & drop asupra taburilor
Panelele pot fi reordonate, mutate între
zone, ancorate lângă workbench
Separatorii dintre zone pot fi mutaţi
Perspectivele sunt configuraţii particulare al workbench‐ului
Fiecare se ocupă de un anumit task
Schimbarea perspectivei:
Schimbarea perspectivei:
Salvarea noii perspective cu Window ‐> Save Perspective As…
IDP – Instrumente pentru Dezvoltarea Programelor 20
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
IDP – Instrumente pentru Dezvoltarea Programelor 21
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Arhitectura (1)
h ( )
Another
Eclipse Platform
Tool
Plug-in Workspace
Development Debug
Environment
(PDE)
Their
Platform Runtime Tool
Eclipse Project
IDP – Instrumente pentru Dezvoltarea Programelor 22
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
A hi
Arhitectura (2)
(2)
Standard Java2
Java VM
Virtual Machine
IDP – Instrumente pentru Dezvoltarea Programelor 23
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Arhitectura bazată pe plug‐in‐uri
h b ă l
Eclipse Platform Runtime este un micro‐kernel
Toate funcţionalităţile sunt oferite de plug in uri
Toate funcţionalităţile sunt oferite de plug‐in‐uri
Eclipse Platform Runtime start up:
Descoperă plug‐in‐urile instalate local pe disc
Reali ea ă corespundenţa extensii – puncte de extensie
Realizează corespundenţa puncte de extensie
Construieşte un registry global de plug‐in‐uri
Salvează local (cache) registry‐ul
Pl
Plug‐in –
i cea mai mică unitate funcţională din Eclipse
i i ă it t f ţi lă di E li
Un exemplu mare: editor HTML
Cel mai mic exemplu: Acţiunea de creare a unui fişier zip
P
Punct de extensie
td t i – entitate identificată prin nume folosită pentru colectarea de
tit t id tifi tă i f l ită t l t d
“contribuţii”
Exemplu: punct de extensie pentru colectarea preferinţelor asupra workbench‐ului
din UI
Extensie ‐ o contribuţie
Exemplu: preferinţe specifice ale editorului HTML
IDP – Instrumente pentru Dezvoltarea Programelor 24
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
A hi
Arhitectura bazată pe plug‐in‐uri
b ă l i i
Un plug‐in
Un plug‐in
Contribuie la 1 sau mai multe puncte de extensie
Poate depinde de alte plug‐in‐uri
Poate depinde de alte plug in uri (un plug‐in poate inclusiv
(un plug in poate inclusiv
exporta un API)
Conţine
Conţine biblioteci Java şi alte fişiere
biblioteci Java şi alte fişiere
Situat în propriul director de plug‐in
IDP – Instrumente pentru Dezvoltarea Programelor 25
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
C
Componente Eclipse
E li
Platforma Eclipse reprezintă baza
Conţine câteva componente cheie
Eclipse Platform
Workbench
“UI”
UI
JFace
SWT Team Help Debug
Platform Runtime
IDP – Instrumente pentru Dezvoltarea Programelor 26
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
C
Componenta workbench
kb h
SWT (Standard Widget Toolkit) – Set generic de componente grafice de nivel scăzut şi
widget‐uri
Butoane, liste, text, meniuri, tree‐uri, text cu stil...
API independent de platformă
Foloseşte widget‐uri native atunci când e posibil
JFace – task‐uri de interacţiune UI
Registrii de imagini şi fonturi
Dialoguri, preferinţe
View‐uri personalizate: adaptoare pentru widget‐uri SWT de formă arbore, tabele, liste, etc.
Infrastructura pentru widget‐uri de
Infrastructura pentru widget‐uri formatare a textului
de formatare a textului Workbench
Gestiunea acţiunilor utilizatorilor
IDP – Instrumente pentru Dezvoltarea Programelor 27
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
De ce SWT?
De ce SWT?
IDP – Instrumente pentru Dezvoltarea Programelor 28
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
T
Terminologia de lucru Eclipse
i l i d l E li
Menu bar
Text
Tool bar editor
Perspective
and
Fast View
bar
Outline
view
Resource
Navigator
view
Bookmarks
Properties view
view
Message Editor
area Status
area
Stacked Tasks
views view
IDP – Instrumente pentru Dezvoltarea Programelor 29
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
P
Perspectiva Java
i J
Ierarhii de
tip
Membrii
selectaţi
IDP – Instrumente pentru Dezvoltarea Programelor 30
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
P
Perspectiva Java
i J
Rezultatele
căutării sunt
marcate
t îîn
stânga
Toate
rezultatele
unei căutări
IDP – Instrumente pentru Dezvoltarea Programelor 31
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Edi
Editorul Java
lJ
Help automat (Javadoc)
Lista de metode
Documentaţia
metodei
IDP – Instrumente pentru Dezvoltarea Programelor 32
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Depanarea programelor
IDP – Instrumente pentru Dezvoltarea Programelor 33
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
P
Procesul de depanare
ld d
Procesul de identificare şi corectare a erorilor software
Procesul de identificare şi corectare a erorilor software
Folosită în principal pentru găsirea erorilor la run‐time sau a rezultatelor
incorecte produse de programe
Erorile de runtime sunt mai greu de depistat decât erorile de compilare
Compilatorul poate depista erorile mai repede (sintaxă incorectă, apeluri
incorect efectuate, etc.)
Depanatoarele grafice sunt mai uşor de folosit (Eclipse, Visual Studio)
decât cele din linia de comandă (gdb)
În general se corectează o singură eroare la un moment dat şi fiecare
modificare trebuie bine documentată (se poate folosi şi un VCS precum
( p ş p
SVN)
IDP – Instrumente pentru Dezvoltarea Programelor 34
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
P fili
Profiling
Profiling‐ul reprezintă o formă de analiză dinamică a
funcţionalităţilor oferite de execuţia programului care se
concentrează pe aspecte măsurabile
p p ale sistemului
IDP – Instrumente pentru Dezvoltarea Programelor 35
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
F
Funcţionalităţi ale unui Profiler
i li ă i l i P fil
Un Profiler poate:
Măsura timpul necesar pentru rularea aplicaţiei/părţi
componente ale aplicaţiei
componente ale aplicaţiei
Furniza analize de utilizare
Prezenta
Prezenta istoria de execuţia a programului
istoria de execuţia a programului
Genera rapoarte privind utilizarea memoriei, a instanţelor de
obiecte, firelor de execuţie, etc.
Este bine când putem depista “bottleneck‐urile” pentru a putea
optimiza codul
optimiza codul
IDP – Instrumente pentru Dezvoltarea Programelor 36
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Tipuri de Profilere
Memory profilers:
Pentru analize ale memoriei native, memoriei colectate, stivei
Thread profilers:
Detectarea condiţiilor de race, deadlock‐uri, etc.
Code coverage profiles:
Determinarea segmentelor de execuţie a programului având
contexte specifice:
t t ifi
•Context: atunci când un utilizator se loghează în sistem
care sunt metodele care ajung să fie executate?
j g
IDP – Instrumente pentru Dezvoltarea Programelor 37
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
E
Exemple: Profilere Java
l P fil J
Comerciale:
Co e c a e
Profiler4J, JProfiler, JProbe, YourKit, Introscope (JEE specific) ‐
$$$, etc.
Open source:
NetBeans Profiler, Java Interactive Profiler, Eclipse TPTP, etc.
IDP – Instrumente pentru Dezvoltarea Programelor 38
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
E
Exemplu: JProfiler
l JP fil
IDP – Instrumente pentru Dezvoltarea Programelor 39
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
E
Exemplu: JProfiler
l JP fil
IDP – Instrumente pentru Dezvoltarea Programelor 40
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
E
Exemplu: JProfiler
l JP fil
IDP – Instrumente pentru Dezvoltarea Programelor 41
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
E
Exemplu: JProfiler
l JP fil
IDP – Instrumente pentru Dezvoltarea Programelor 42
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
E
Exemplu: JProfiler
l JP fil
IDP – Instrumente pentru Dezvoltarea Programelor 43
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
D
Depanarea folosind Eclipse
f l i d E li
Features:
Breakpoints
•Double‐click pe marginea din stânga
Step into – execuţia instrucţiunii următoare
•Din perspectiva Debug – F5
Step over – step into, cu salt peste execuţia unei metode
•Din perspectiva
•Din perspectiva
Step return
Step Filters
Watches
Run to line
Suspend/Resume/Terminate
/ /
IDP – Instrumente pentru Dezvoltarea Programelor 44
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
D
Depanarea folosind Eclipse
f l i d E li
Features:
Breakpoints
•Double‐click pe marginea din stânga
Step into – execuţia instrucţiunii următoare
•Din
Din perspectiva Debug
perspectiva Debug – F5
Step over – step into, cu salt peste execuţia unei metode
•Din perspectiva Debug – F6
Step return
p – execuţia instrucţiunilor rămase din metoda curentă
ţ ţ
•Din perspectiva Debug – F7
Step cu Filters – execuţia numai a anumitor metode
•Window > Preferences > Java > Debug > Step Filtering
Watches – verificarea/modificarea valorilor variabilelor
•Din perspectiva Debug fereastra “Variables”
Run to line – setarea unui breakpoint temporar
Suspend/Resume/Terminate
IDP – Instrumente pentru Dezvoltarea Programelor 45
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
E li
Eclipse Java Debugger
J D b
Local variables
Threads
and stack
frames
Editor with
Edito ith
breakpoint
marks
Console
I/O
46
IDP – Instrumente pentru Dezvoltarea Programelor 46
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Java sau .NET?
IDP – Instrumente pentru Dezvoltarea Programelor 47
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Comparaţie Java vs .NET
Java – creat de Sun în 1992
Microsoft a introdus .NET şi C# în 2000
Ambele platforme/limbaje sunt orientate‐obiect, oferă
Ambele platforme/limbaje sunt orientate‐obiect oferă
verificări ale tipurilor de date şi includ mecanisme de
automatic garbage collection
Limbaje concurente pentru dezvoltarea aplicaţiilor
În special în domeniul dezvoltării aplicaţiilor paralele şi
distribuite
Care sunt avantajele şi dezavantajele folosirii fiecăreia?
Care sunt avantajele şi dezavantajele folosirii fiecăreia?
IDP – Instrumente pentru Dezvoltarea Programelor 48
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
De ce aceste platforme? Problemele cunoscute ale
De ce aceste platforme? Problemele cunoscute ale
limbajelor C şi C++
Folosirea pointerilor
Folosirea pointerilor poate fi periculoasă
poate fi periculoasă
Memory leaks (eliberarea incorectă a memoriei)
Function pointers (saltul în locul incorect în program)
Data
Data pointers (pointeri către datele greşite)
pointers (pointeri către datele greşite)
Colectarea manuală a memoriei reprezintă un risc pentru dezvoltatorii
de proiecte
de proiecte
Moştenirea multiplă (C++) poate complica codul
Ambiguităţi precum “problema diamantului” ( ‐ “diamond of death”)
Nu sunt uşor portabile pe diverse platforme, chiar şi recompilare şi
ş p p p , ş p ş
disciplină a codului
IDP – Instrumente pentru Dezvoltarea Programelor 49
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Mai multe diferenţe: http://harbormist.com/AcmJava/topics/c2java.html
IDP – Instrumente pentru Dezvoltarea Programelor 50
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
D
Dar platforma Microsoft .NET?
l f Mi f NET?
Înainte de.NET, Microsoft avea o mare problemă
Microsoft suporta prea multe sisteme de operare
API‐urile erau implementate ca biblioteci legate dinamic (DLL‐uri)
dezvoltate folosind C++
Apelurile către API‐ul Windows era diferit pe fiecare sistem de
operare
Dezvoltatorii
Dezvoltatorii întăi
întăi trebuiau să descopere pe ce sistem de operare
trebuiau să descopere pe ce sistem de operare
rula programul dezvoltat
•şi apoi să determine dacă API‐ul dorit era şi instalat pe respectivul sistem
de operare
Toate acestea pot părea triviale la prima vedere
până
până la urmă există puţine forme diferite de Windows…
la urmă există puţine forme diferite de Windows…
…corect?
IDP – Instrumente pentru Dezvoltarea Programelor 51
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Versiuni de Windows ce nu pot rula .NET
framework v2.0
1. Windows 95
2. Windows NT® Server
3. Windows NT Workstation
4. Windows Server 2003, Enterprise Edition for Itanium‐based
Systems
5. Windows Server 2003, Datacenter Edition for Itanium‐based
Systems
IDP – Instrumente pentru Dezvoltarea Programelor 53
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
// Java
p blic class Hello {
public
public static void main(String[] args) {
System.out.println("Hello world in Java");
}
}
// C#
namespace Hello {
public class Hello {
static void Main(string[] args) {
System.Console.WriteLine ("Hello world in C#");
System.Console.ReadLine();
}
}
}
‘ VB
Module HelloWorld
Sub Main
System.Console.WriteLine(“Hello World in VB.NET”)
System.Console.ReadLine()
End Sub
End Module
IDP – Instrumente pentru Dezvoltarea Programelor 54
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Necesarul de efort pentru a produce o fereastră
grafică
IDP – Instrumente pentru Dezvoltarea Programelor 55
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
import java.awt.*;
import javax.swing.*;
}
Fereastra minimală }
IDP – Instrumente pentru Dezvoltarea Programelor 56
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
C
Comparaţie a mediului de runtime
i di l i d i
IDP – Instrumente pentru Dezvoltarea Programelor 57
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Java Development Kit (JDK)
p ( )
• NET framework 2.0
2 0 SDK
Java compiler and utilities
– C# and VB.NET compilers and utilities
•Java bytecode
• Common Intermediate Language (CIL)
integrated development env. (IDE)
integrated development env (IDE) • integrated development env.
env (IDE)
Eclipse (free ‐ IBM) – Visual Studio Express (free - Microsoft)
Netbeans (free ‐ Sun) GRATIS
IDP – Instrumente pentru Dezvoltarea Programelor 58
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
virtual machine
Caracteristici
• virtual machine
platforms (all major OS’s)
– platforms (all versions of
spec Windows))
implementations – spec
libraries – implementations
languages
g g • libraries
Java • l
languages
Jython – C#, VB.NET, J# from Microsoft
Groovy – many others from third parties
((Haskell, Lisp,
p Python,
y COBOL,
web servers (many vendors) Fortran, etc.)
platforms (Unix, Linux) • web servers (just one!)
scalability – platforms (most Windows)
cost – scalability
– cost
web capabilities
servlet
• web capabilities
– handler
JSP
– ASP (.NET)
JSF
IDP – Instrumente pentru Dezvoltarea Programelor 59
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
native code calling
Mai multe caracteristici
Mai multe caracteristici
components • native code calling
beans • components
environments – .DLL
DLL
applet (in browser) • environments
servlet (in server) – ActiveX (in browser)
Web Start
Web Start – handler (in server)
•installs from web – Smart Client
•caches on user’s PC • installs from web
• caches on user’s PC
deployment
.jar • deployment
.war – .exe (on file system)
.ear – .exe (in GAC)
.class
class – .dll ((on file system)
y )
complex, painful learning curve that – all builds and web installation
differs for each web server, is automatically handled by
container, and IDE Visual Studio (Microsoft’s
•automated via ANT IDE)
– XML, like make on Unix
IDP – Instrumente pentru Dezvoltarea Programelor 60
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
IDP – Instrumente pentru Dezvoltarea Programelor 61
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Compilatoare just
Compilatoare just‐in‐time
in time în mediile JRE (JVM) şi
în mediile JRE (JVM) şi
.NET
compilation
source bytecode
code compiler
p .class file
metadata
before installation,
execution or the first time
each method is
called
native JIT
code p
Compiler
IDP – Instrumente pentru Dezvoltarea Programelor 62
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
C
Comenzi consolă pentru compilare JAVA şi C#.NET
i lă t il JAVA i C# NET
hello.java
j hello.cs
javac csc
hello.class hello.exe
1001111010001110 1001111010001110
Java bytecode C
Common IIntermediate
t di t LLanguage (CIL)
acestea rulează în
maşini virtuale diferite
IDP – Instrumente pentru Dezvoltarea Programelor 63
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Componentele platformei .NET
download free
Software Development
Kit (SDK)
compilers
VB C++ C# J# Python
y …
IDP – Instrumente pentru Dezvoltarea Programelor 64
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Componentele platformei Java
download free
Software Development
Kit (SDK)
compilers
Java JRuby
y JPython
y …
IDP – Instrumente pentru Dezvoltarea Programelor 65
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
Comparaţie .NET vs Java
IDP – Instrumente pentru Dezvoltarea Programelor 66
Platformă de e‐learning și curriculă e‐content pentru
învățământul superior tehnic
R f i
Referinţe
http://msdn.microsoft.com/en‐us/vstudio/default.aspx
http://msdn.microsoft.com/en us/vstudio/default.aspx
http://www.eclipse.org/
http://www.ej‐technologies.com/products/jprofiler/overview.html
IDP – Instrumente pentru Dezvoltarea Programelor 67