JAVA &.NET JAVA VS.NET

Podobné dokumenty
Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Platformy / technologie. Jaroslav Žáček

Semináˇr Java X J2EE Semináˇr Java X p.1/23

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Technologie Java. Jaroslav Žáček

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Nové jazykové brány do Caché. Daniel Kutáč

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

(Enterprise) JavaBeans. Lekce 7

Tvorba informačních systémů

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Seznámení s prostředím dot.net Framework

Tvorba informačních systémů

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

Tvorba informačních systémů

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Architektury informačních systémů

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Architektury informačních systémů

Server-side technologie pro webové aplikace

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Platformy / technologie. Jaroslav Žáček

Technologie Java. Jaroslav Žáček

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

1 Webový server, instalace PHP a MySQL 13

Novinky ve Visual Studio Tomáš Kroupa

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

1. Webový server, instalace PHP a MySQL 13

Databázové a informační systémy

INFORMAČNÍ SYSTÉMY NA WEBU

Úvod do Web Services

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

KIV/PIA 2013 Jan Tichava

Compatibility List. GORDIC spol. s r. o. Verze

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

Softwarové komponenty a Internet

3. Základy programovacího jazyka Java

X33EJA Enterprise Java

TÉMATICKÝ OKRUH Softwarové inženýrství

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Matematika v programovacích

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Java/QE Akademie - Osnova

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Tabulka základních vlastností nástroje C++Builder dle edice

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

11. Přehled prog. jazyků

Programovací jazyky Přehled a vývoj

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

InterSystems Caché Post-Relational Database

IB111 Programování a algoritmizace. Programovací jazyky

BIOMEDICÍNSKÝ SYSTÉM PRO AGENTURY DOMÁCÍ PÉČE. Ondřej Krejcar, Dalibor Janckulík, Leona Motalová

Úvod do programování v jazyce Java

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

Stěhování aplikací. Michal Tomek, Sales Manager

Tvorba informačních systémů na platformě J2EE Petr Hetmánek Masarykova Univerzita, Fakulta Informatiky, Botanická 68a, Brno

Informační systém pro podporu řízení, správu a zjišťování aktuálního stavu rozvrhované výuky

Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB)

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

Maturitní témata Školní rok: 2015/2016

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

PA165: Úvod do Java EE. Petr Adámek

O Apache Derby detailněji. Hynek Mlnařík

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Architektura softwarových systémů

Platforma.NET 4. hodina dnes to bude ideologické

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Vladimír

Technologie ASP.NET. Martin Trněný

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Java [džava] nebo [džáva] v americkém slangu "kafe" Sun Microsystems nyní Oracle

Programovací jazyk Úvod do programování v C#

Business Intelligence

Kapitola 1 Začínáme se Silverlightem

Programovací jazyk C# Úvod do programování v C#

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Maturitní otázky z předmětu PROGRAMOVÁNÍ

[ASP].NET Core Demystified. Miroslav Holec. Konzultant a lektor [ASP].NET Core.

Internet Information Services (IIS) 6.0

Spring framework 2.0. Roman Pichlík CZJUG

Požadavky pro výběrová řízení TerraBus ESB/G2x

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Programovací jazyk C# Úvod do programování v C#

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

Stručný obsah. Část I. Část II. Část III. Úvod do vývoje v prostředí Visual Studio 25. Návrh uživatelského rozhraní 127

Transkript:

JAVA &.NET JAVA VS.NET

Java

Architektura Java Core API (základní knihovna tříd) Překladač Java Virtual Machine Správa spuštěných programů

Architektura Aplikace v programovacím jazyce Java.class /.jar / soubor V bytecode JRE Java Runtime Environment Součástí je JVM Java Virtual Machine Zpracovává bytecode Překládá jej do strojového kódu Operační systém / Procesor Strojový kód

Princip tvorby aplikace Tvorba aplikace Zdrojový kód v jazyce Java (text).java.class Zdrojový kód v Bytecode Zabalené kódy + jiné zdroje (.jar, ) Spuštění aplikace Bytecode.class/.jar JRE/JVM Překlad pro platformu Strojový kód OS

Historie Oak 1996 První verze má release 1.0.2 1.1 1997 Vnitřní třídy JavaBeans JDBC Reflexe 1.2 1998 SE/EE/ME JIT kompilace Kolekce 1.4 1.5 5.0 2004 Generika Autoboxing Výčtové typy Cyklus for-each

Historie 6.0 2006 Vydávány updaty Java 6 update 30 7.0 2011 Nyní update 2 Virtuální stroj podporuje dynamické jazyky Částečná podpora lambda výrazů 8.0 Léto 2013? Další rozšíření podpory funkcionálních operací jazyka

Požadavky Tvorba aplikací JDK / SDK JRE + JVM Další knihovny Podpora pro tvorbu aplikací Kompilátor a debugger Univerzální přes všechny edice +/- 80 MB Vývojové prostředí Jcreator BlueJ NetBeans Eclipse Spuštění aplikací JRE JRE + JVM Pouze běhové prostředí a základní knihovny Typicky konkrétní edice +/- 20 MB

Java platformy Java SE Java Standard Edition Pro tvorbu běžných (desktopových) aplikací + API knihovny pro vytváření klientských desktopových aplikací (AWT, Swing)

Java platformy Java ME Java Micro edition Vývoj pro malá zařízení a zařízení s omezenými prostředky, dvě varianty zařízení CLDC 160 kb ROM, 32 kb RAM Mobilní telefony Kilobyte Virtual Machine CDC 32bitový procesor, >512 kb ROM, >256 kb RAM PDA, set-top-boxy

Java platformy Java EE Java Enterprise Edition Pro vývoj a provoz rozsáhlých programů a informačních systémů

Java platformy Java Card Pro čipové karty Smart-Cards Fingerprint issues

.NET

Architektura Base Class Library (BCL) Základní knihovna tříd Překladač z konkrétního jazyka.net jazyka Common Language Runtime (CLR) Správa spuštěných programů

Architektura Tvorba aplikace Programátorův kód kompilátor jazyka.net Intermediate language V ý v o j S p o u š t ě n í kompilátor Just-In-Time Strojový kód

.NET Verze.NET 1.0 první verze, únor 2002 Microsoft Visual Studio 2002 / 7 Rainier jazyky C#, VB.NET, J# + ASP.NET základní vlastnosti

.NET Verze.NET 1.0 1.1 první verze, únor 2002 Microsoft velký update, Visual duben Studio 2003 2002 / 7 Rainier jazyky Microsoft C#, VB.NET, Visual Studio J# + ASP.NET 2003 / 7.1 Everett základní mobile vlastnosti ASP.NET zabezpečení code access security ODBC + Oracle DB.NET Compact Framework IPv6

.NET Verze.NET 1.0 1.1 2.0 první verze, únor 2002 Microsoft velký update, Visual duben Studio 2003 2002 / 7 Rainier jazyky Microsoft radikální C#, VB.NET, Visual vylepšení, Studio počátek J# + ASP.NET 2003 / 7.1 roku Everett 2006 základní mobile Microsoft vlastnosti ASP.NET Visual Studio 2005 / 8 Whidbey zabezpečení podpora pro code tvorbu access 64bit security aplikací ODBC podpora + Oracle Generického DB programování.net deklarativní Compact databinding Framework IPv6 vylepšení ASP.NET + personalizace, webparts,

.NET Verze.NET 1.0 1.1 2.0 3.0 první verze, únor 2002 Microsoft velký update, Visual duben Studio 2003 2002 / 7 Rainier jazyky Microsoft radikální C#, VB.NET, Visual vylepšení, Studio počátek J# + ASP.NET 2003 / 7.1 roku Everett 2006 základní mobile Microsoft spíše pouze vlastnosti ASP.NET Visual upgrade Studio z 2005 verze / 8 2.0, Whidbey 2007 zabezpečení podpora stále Microsoft pro code tvorbu Visual access 64bit Studio security aplikací 2005 ODBC podpora rozšíření + Oracle Generického potřebná pro DB programování (beta) 3.5.NET deklarativní Windows Presentation Compact databinding Foundation Framework IPv6 vylepšení Windows ASP.NET Communication + Foundation Windows Workflow personalizace, Foundation webparts, Windows CardSpace

.NET Verze.NET 1.0 1.1 2.0 3.0 3.5 první verze, únor 2002 Microsoft velký update, Visual duben Studio 2003 2002 / 7 Rainier jazyky Microsoft radikální C#, VB.NET, Visual vylepšení, Studio počátek J# + ASP.NET 2003 / 7.1 roku Everett 2006 základní mobile Microsoft spíše pouze vlastnosti ASP.NET Visual upgrade Studio z 2005 verze / 8 2.0, Whidbey 2007 opět (tentokrát zásadní) rozšíření, zabezpečení podpora stále Microsoft pro code tvorbu Visual access 64bit Studio security aplikací 2005 začátek roku 2008 ODBC podpora rozšíření + Oracle Generického potřebná pro DB programování (beta) 3.5 Microsoft Visual Studio 2008 / 9 Orcas.NET deklarativní Windows Presentation Compact databinding Foundation nové vlastnosti Framework jazyků C# a VB.NET IPv6 vylepšení Windows ASP.NET Communication + Foundation expression trees a lambda výrazy Windows Workflow personalizace, Foundation extensions methods webparts, Windows CardSpace anonymní typy LINQ,

.NET Verze.NET 1.0 1.1 2.0 3.0 3.5 4.0 první verze, únor 2002 Microsoft velký update, Visual duben Studio 2003 2002 / 7 Rainier jazyky Microsoft radikální C#, VB.NET, Visual vylepšení, Studio počátek J# + ASP.NET 2003 / 7.1 roku Everett 2006 základní mobile Microsoft spíše pouze vlastnosti ASP.NET Visual upgrade Studio z 2005 verze / 8 2.0, Whidbey 2007 opět (tentokrát zásadní) rozšíření, zabezpečení podpora stále Microsoft pro code tvorbu Visual access 64bit Studio security aplikací 2005 začátek hlavně roku využití 2008 technologií WPF/XAML ODBC podpora rozšíření + Oracle Generického potřebná pro DB programování (beta) 3.5 Microsoft 2010 Visual Studio 2008 / 9 Orcas.NET deklarativní Windows Presentation Compact databinding Foundation nové Microsoft vlastnosti Visual Framework jazyků Studio C# 2010 a VB.NET / 10 Orcas IPv6 vylepšení Windows ASP.NET Communication + Foundation expression paralelní programování, trees a lambda lepší výrazy threading Windows Workflow personalizace, Foundation extensions WCF a WF methods podpora webparts, pro Web 2.0 Windows CardSpace anonymní (REST, POX, typy ATOM, ) LINQ, tvorba grafy MVC framework pro ASP.NET

Požadavky Tvorba aplikací.net FW + CLR Odpovídající verze Typicky umožňuje vývoj všech typů aplikací Některé věci se doinstalovávají bokem +/- 300 MB Vývojové prostředí Visual Studio Borland, Spuštění aplikací CLR.NET FW Redistributable package Dříve.NET FW Client Profile Dnes +/- 50 MB Nebo plný FW Je typicky v OS

.NET - Architektura C# VB.NET další Common Language Specification WinForms ASP.NET ADO.NET: Data & XML Base Class Library Common Language Runtime VES JIT GC, CLS CTS Operační systém

.NET - Architektura Zdrojový kód WinForms ASP.NET Knihovny ADO.NET: Data & XML Base Class Library C# VB.NET další Common Language Specification MSIL Strojový kód Common Language Runtime VES JIT GC, CLS CTS Operační systém

.NET platformy.net Pro tvorbu běžných (desktopových) aplikací Základní balík všech "výchozích" knihoven + API knihovny pro vytváření klientských desktopových aplikací

.NET platformy.net Compact Edition Pro malá zařízení S Windows Mobile, Windows CE.NET Micro Framework >320 kb RAM Podporuje podmnožinu funkcí.net Vlastní UI (WPF)

.NET platformy ASP.NET Není čistě platforma Rozšíření.NET pro tvorbu webových aplikací

.NET potřebné bloky Pro spuštění aplikací.net Redistributable Package Řádově desítky MB (4.0 = cca 60MB) Nevychází vždy Pro tvorbu aplikací.net Framework Plná verze, řádově stovky MB (3.5 SP1 = cca 350MB)

Programovací jazyky Java "Hlavní jazyk" Java (2) Od 6 podpora skriptovacích jazyků Visual Basic Od 7 "univerzální" virtuální stroj Tvorba vlastních jazyků.net Jedna obecná specifikace celé platformy Libovolný jazyk podporující tuto platformu Hlavní jazyky C# a Visual Basic.NET Spousta dalších (PHP.NET, Delphi.NET, J#, JavaScript.NET, )

Tvorba programu Java Zdrojový kód v Javě.NET Zdrojový kód v libovolném jazyce.net Přeložený kód v ByteCode Implementovaný "strojový" kód JVM Přeložený kód v Intermediate Language Implementovaný "strojový" kód CLR

Tvorba programu Java - Bytecode Samopopisný Optimalizovaný Nečitelný Nutný.NET Intermediate language Samopopisný Neoptimalizovaný Čitelný Text Nebo překompilovaný Do x86, Nikam nepřipojitelný Připojitelný (např. do C++, Javy, Delphi)

Programovací jazyky Oba plně objektově orientované Nejvyšší typ "Object Oba syntakticky vycházejí z C++ a inspirují se jinými OOP jazyky (LISP, Smalltalk, Simula) Dědičnost Jednoduchá Rozhranní Garbage collector Stejné základní datové typy Obdobné principy Téměř stejná syntaxe

Programovací jazyky Java Programátor tvoří pouze třídy Primitivní typy nejsou třídy Implicitní virtualizace Generika se "mažou" při překladu Nemá "unsigned" typy Má checked-exceptions Výjimky je nutné zachytit nebo předat dál.net Podporuje struktury I ty jsou obecným typem Např. primitivní typy Všechny typy jsou objektové Explicitní virtualizace Generické typy jsou skutečně existují Má i unsigned typy Typy jsou o jeden řád větší Výjimky jsou volné Některé jazyky výjimky nemusí používat

Programovací jazyky Java Nativně pouze procedurální a OOP paradigma.net Procedurální, OOP, funkcionální Enum je "vlastní třída" Nemá nativně maticová pole HQL/apod. jsou součástí knihoven Enum je "potomek" intu Má 3 základní typy polí klasická pole polí pravoúhlá pole LINQ je součástí jazyka.

Programovací jazyky Java Odlišné chování vnitřních tříd Vidí obsah svého nadřazeného typu Implementace více rozhranní Wrapping funkcionalit.net Vnitřní třídy jsou normální třídy Explicitní implementace rozhranní

Programovací jazyky.net Podmíněné překlady Uzávěry Má Java od 7 Anonymní třídy a metody Dlouho měla pouze Java Lambda výrazy Měla mít Java7, má mít Java8 Má parciální třídy Má hodnotové / referenční / výstupní parametry Checked/unchecked bloky pro testování "overflow" Vlastnosti Obecně spousta různých členů tříd Goto, Switch, Using, Yield; Delegáti Podpora funkcionálního paradigmatu Událostní model Přetěžování (všeho)

Programovací jazyky Java Lepší podpora a užití návrhových vzorů Hlavně MVC Lepší struktura implementovaných objektů Dědění, rozhranní Public podpora vývoje Pomocí Java Specification Request Lepší reakce a podpora opravy chyb Lépe vytvořené principy pro desktop aplikace AWT / Swing Podpora MVC Více standardizovaných mohutných rozšíření (EE)

Programovací jazyky Verze V.NET Oproti Javě vycházejí zvlášť Ne tak časté updaty Ale zase pak to stojí za to (i stovky MB) FW je nativně v OS Windows (dle verze) Není zpětná kompatibilita / Java průběžné updaty Malá velikost Zpětná kompatibilita /

Připojení k DB Java JDBC Java DataBaseConnectivity 4 druhy Zapouzdření nad ODBC Čisté JDBC Vytvoření připojení Nalezení ovladače class.forname(<ovladač>); Otevření připojení Práce s příkazy Uzavření připojení.net ADO.NET Active data objects 1 druh Pro libovolné DB (včetně ODBC) Vytvoření připojení Připojení knihovny Vytvoření instance připojení práce s příkazy Ukončení připojení

Připojení k DB Příkazy DDL, DML, DQL Volání uložených procedur Java Statement PreparedStatement Ochrana proti SQL injection CallableStatement.NET SQLCommand (typ rozlišuje parametr) Ochrana proti SQL injection

Připojení k DB Navrácení hodnoty pomocí "recordsetu"/"resultsetu" Přímé propojení do databáze V Javě Jednosměrný, obousměrný, citlivý na změny V.NET Typicky pouze dopředný V obou jazycích podpora "metadat"

Připojení k DB Java V reálu FW pro připojení k db a zapouzdření ukládání Hibernate Java Persistence API Definice XML Nyní anotace.net V reálu dříve frameworky Nhibernate Dnes LINQ Univerzální nad obecným zdrojem LINQ to SQL LINQ to Entities Definice Parciální třídy

Aplikační vrstva Java Java Enterprise Edition Ucelený blok prostředků pro tvorbu výkonné automatizované aplikační logiky.net Drobné nástroje, ale žádný ucelený Některé požadavky jsou automatizované v.net Správa stavů / sessions Zasílání správ Na něco jsou externí nástroje Entitybeans vs. DataSet, deklarativní databinding, adaptéry

Prezen(ta)ční vrstva Java Pro desktop AWT / Swing / Nebude dále podporován Nutné lokální řešení Pro web Servlety JSP JSF // třídy doplněné bokem.net WinForms XAML Pro web Existuje "univerzální" implementace Pro obecná zařízení Silverlight ASP.NET // uvnitř jádra.net vlastní kompilátor,

Prezen(ta)ční vrstva V obou jazycích kompilace po dotazu Při spuštěném běhu se kompilace neprovádí Webové řešení V javě request response V.NETu událostní model Klient click na tlačítko (data na server) metoda button_clicked( ) (nový formulář na klienta)

XML Java JAXP (Java API for XML Processing) analyzátor dokumentů XML v Javě, aplikační rozhraní, umožňuje analýza ověření validity transformace 2 různé standardy SAX DOM.NET Jmenný prostor System.XML Nově System.Linq.XML Automatická práce x XML dokumenty Základní přístup přes DOM VB.NET má XML literáry!!!

Java (další) stavební bloky

Servlety Alternativa k CGI skriptům pro generování dynamických webových stránek Běží na straně serveru Request/response + cache, session Server řeší Připojení (network connections) Správu a dohodnutí protokolu (protocol negotiations) Nahrávání tříd (class loading) a další

Servlety Podporuje základní protokoly HTTP, SMTP, POP3, FTP Běží uvnitř servletového kontaineru Základní metody Init () při prvním volání servletu, slouží pro inicializaci Destroy () opak Service() vlastní obsloužení požadavku Pomocí objektu servletrequest, servletresponse

Servlet

JSP Java Server Pages Dynamické generované webové stránky pomocí Javy spolupracují s "javabeans" (ne enterprise beans) a servlety Obdobné HTML jiné tagy vlastní tagy

JSP Opačný pohled oproti servletům Servlety generují ze zdrojáku HTML JSP generují do HTML pomocí zdrojáků bloky V praxi se kompilují do servletů

JSP

JSF Webový aplikační framework Založený na komponentách (ne requestdriven) JSF používají pro zobrazení JSP, lze však použít také XUL apod. Před zavoláním requestu na novou stránku je stav UI komponenty uložen a obnoven po vrácení odpovědi

JSF http://exadel.com/web/portal/jsftutorial-kickstart

EJB Enterprise Java Beans framework pro tvorbu enterprise aplikací == obecně pro podporu podnikových procesů podpora tvorby aplikační vrstvy bussines logika informačního systému Distribuovaná komponentní architektura Entity bean / Entities (Java Persistence API) Session bean Message-driven bean

EJB Komponentní architektura pro serverové komponenty v Javě na straně serveru EJB reprezentují byznys logiku aplikace Kontrakt mezi komponentou a aplikačním serverem Aplikační server slouží jako prostředí pro spouštění EJB a poskytuje tzv. kontejner Odpovědnost za správu a zabezpečení komponenty

EJB Výhody Přenositelnost Standard nejen pro psaní EJB, ale také pro kontejner Jednoduché vzít EJB a přenést do jiného kontejneru jiného výrobce Silná podpora kontejneru Kontejnery již podle specifikace musí poskytovat velké množství služeb, které ulehčují samotný vývoj aplikace. Mnoho výrobců kontejnerů přidává ještě své nestandardní funkce.

EJB Základní typy EJB Session Stateless jednorázové akce, umožňují konkurenční přístup, vyžadují méně zdrojů (nemusí si pamatovat) Statefull v případě že je třeba pracovat se sessions (po přihlášení do e-shopu), pracuji s více kroky Entity (Container managed persistency Bean managed persistency) Message driven bean nové od v2.0, integrace JMS a EJB (pro zpracování asynchronních JMS zpráv)

Další prvky Logování událostí při běhu aplikace Log4j Logger / Appender / Layout (Anonymní vnitřní třídy, formátování datových typů) Aspektově orientované programování roztříštěná funkcionalita AspectJ Podpora moderních technik TDD, XP,

.NET (další) stavební bloky

ASP.NET Podpora pro tvorbu webových aplikací Velmi obdobné tvorbě desktopových aplikací Událostní model Definice stránek pomocí formulářů Webové služby Uživatelské prvky Odlišení zdrojového kódu od "HTML" Dva soubory Odlišení generovaného od programátorova kódu 3 soubory

ASP.NET Volné i automatizované řešení Cookies, stavy, sessions, applications Integrované zabezpečení, přihlašování, role, Automatická kompilace, sledování změn Žádné sestavování projektu Cachování Konfigurační XML soubory Podpora MVC Nativní podpora AJAXu IIS, funguje i nad Apache

ASP.NET

ASP.NET

Windows presentation foundation / XAML Definice rozhranní ne pomocí tříd Ale pomocí XML Tlačítko už není "instance" objektu formuláři Tvorba formuláře se blíží tvorbě webové stránky Animace Nezávislé na OS (funguje pod.net Micro Ed.) Různá (i naprosto hloupá) zařízení

WPF / XAML

Windows Communication Foundation Tvorba distribuovaných aplikací včetně webových služeb Jedno/oboustranné spojení Zabezpečené / nezabezpečené

Windows Workflow foundation Programování pomocí UML Zatím pomocí sekvenčních diagramů a diagramů tříd Automatické generování zdrojového kódu Bližší k modelování procesu v organizaci/podniku

LINQ Typové dotazování do databáze Obecné datové zdroje ODBC, SQL, kolekce, XML, SELECT x FROM Zamestnanec WHERE plat="nikde nic"

XNA Pro tvorbu her a grafických aplikací Lepší než jednoduché a horší než profi Zapouzdření DirectX

Silverlight Obdoba Flashe Dynamické (grafické) realizace na stránce Využívá.NET + XAML + Nutná instalace u klienta (cca 3MB)

Kritika Javy Generika pomocí type-erasure Nemá neznaménkové typy Nemá hodnotové typy Omezená velikost pole Chybějící možnosti přetěžování Uzávěry funkcí Nejsou delegáti Je v JSR FP aritmetika Výkonnost Bezpečnost

Kritika.NETu Ne vždy povedená implementace OO Velké balíčky pro update Nekompatibilní verze Nezabezpečené výjimky Unchecked exceptions Menší podpora EE knihoven Větší závislost na dodavateli

Výhody javy Vyspělá Multiplatformní Podpora několika firem Nejmenší distribuční jednotka je "třída" Univerzálnost SWINGu JSR

Výhody.NET Common Language Runtime Bezkonkurenční pro desktopové aplikace Dobrá podpora nad OS Win Generika v.net Uzávěry Funkcionální programování Struktury (hodnotové typy) Explicitní přetěžování