Framework
Framework, česky aplikační rámec nebo vývojová platforma, je softwarová struktura pro podporu programování, vývoje a organizaci jiných softwarových projektů. Může obsahovat podpůrné programy, knihovny API, podporu pro návrhové vzory nebo doporučené postupy při vývoji.
Účel
[editovat | editovat zdroj]Cílem frameworku je převzetí typických problémů dané oblasti, což umožní, aby se návrháři a vývojáři mohli soustředit pouze na své zadání. Například tým, který používá Apache Struts k vývoji webových stránek pro banku, se může zaměřit na to, jak se budou provádět bankovní operace, a ne jak zajistit bezchybnou navigaci mezi jednotlivými stránkami.
Vyskytují se námitky, že použitím frameworku bude kód pomalý či jinak neefektivní a že čas, který se ušetří použitím cizího kódu, se musí věnovat nastudování frameworku. Nicméně při jeho opakovaném nasazení nebo ve velkém projektu dojde k výrazné úspoře času. Navíc některé známé a používané frameworky jsou často již vyladěné a není nutné, aby je vývojář znovu vytvářel. Při odinstalování frameworku již nebude možné některé aplikace spustit, jestliže jsou na něm závislé, což ovlivňuje architektura a struktura daného frameworku.
Architektura
[editovat | editovat zdroj]Framework se skládá z tzv. frozen spots a hot spots. Frozen spots definují celkovou architekturu softwarové struktury, její základní komponenty a vztahy mezi nimi. Tyto části se nemění při žádném použití frameworku. Naproti tomu hot spots jsou komponenty, které spolu s kódem programátora vytvářejí zcela specifickou funkcionalitu, a proto jsou skoro pokaždé jiné.
V objektově orientovaném prostředí je framework tvořen abstraktními a klasickými (neabstraktními) třídami. Frozen spots pak mohou být reprezentovány abstraktními třídami a vlastní kód (hot spots) se přidá implementací abstraktních metod.
Příklady
[editovat | editovat zdroj]- JUnit je framework sloužící k testování jednotek pro programovací jazyk Java.
- Spring je aplikační framework pro platformu Java s otevřeným zdrojovým kódem.
- Zend Framework je framework pro webové aplikace v PHP s otevřeným zdrojovým kódem.
- Vaadin je framework pro webové aplikace v Javě s otevřeným zdrojovým kódem.
- Nette Framework je framework od českého autora pro webové aplikace v PHP s otevřeným zdrojovým kódem.
- CakePHP Framework je framework pro webové aplikace v PHP s otevřeným zdrojovým kódem.
- Symfony je framework pro vývoj webových aplikací v PHP s otevřeným zdrojovým kódem.
- CodeIgniter je framework pro vývoj webových aplikací v PHP s otevřeným zdrojovým kódem.
- Apache Wicket je framework pro vývoj webových aplikací v Javě s otevřeným zdrojovým kódem.
- Ruby on Rails je framework pro webové aplikace v jazyce Ruby s otevřeným zdrojovým kódem.
- jQuery je lehký JavaScript framework s otevřeným zdrojovým kódem.
- DotVVM je open-source framework od českého autora pro vývoj webových aplikací v C#.
- .NET Framework je framework pro jazyk C# a VB.NET.
- NetBeans Platform je framework pro jazyk Java.
- Swing Application Framework je framework pro jazyk Java.
- Shopsys Framework je framework pro webové aplikace s otevřeným zdrojovým kódem.
Související články
[editovat | editovat zdroj]Externí odkazy
[editovat | editovat zdroj]- Obrázky, zvuky či videa k tématu framework na Wikimedia Commons
- Velký test PHP frameworků