Struktura
W programowaniu komputerowym , wykorzystując ramy (znany również jako infrastruktury oprogramowania , rozwój infrastruktury , środowiska programowania , bazy aplikacji , dla aplikacji lub ram oprogramowania ) oznacza zbiór spójnych z komponentów oprogramowania strukturalnych, wykorzystywanych do tworzenia fundamentów oraz zarys całości lub część oprogramowania ( architektura ). A ramowe różni się od zwykłej biblioteki oprogramowania głównie:
- jego ogólny charakter, słabo wyspecjalizowany, w przeciwieństwie do niektórych bibliotek; jako taka struktura może składać się z kilku bibliotek, z których każda jest wyspecjalizowana w danej domenie. Ramy mogą jednak być wyspecjalizowane, w szczególności języka , w konkretnej platformy , określonej domeny: transmisji danych , mapowanie danych , etc. ;
- ramy, które narzuca samą swoją konstrukcją, kierując architekturą oprogramowania lub nawet prowadząc programistę do przestrzegania pewnych wzorców projektowych ; Biblioteki, które ją tworzą, są wówczas zorganizowane według tego samego paradygmatu .
Te ramy są zatem zaprojektowane i wykorzystywane do kształtowania architektury w aplikacji , z aplikacji internetowych , z warstwy pośredniej i komponenty oprogramowania . Te ramy są nabywane przez komputer i włączone w aplikacji na rynku, w związku z tym są one rzadko zakupiony i zainstalowany oddzielnie przez użytkownika końcowego.
Opis
Ramy to zestaw narzędzi i komponentów programowych organizowanych zgodnie z architektonicznym planem i wzorców , cała formowania lub wspieranie „szkielet” z programu, płótno. Często jest dostarczany w formie biblioteki oprogramowania i towarzyszy mu plan docelowej architektury frameworka .
Ramy jest przeznaczony dla programistów pomóc w ich pracy. Organizacja frameworka ma na celu maksymalną produktywność programisty, który będzie z niego korzystał - gwarancję niższych kosztów budowy i utrzymania programu. Dokładna zawartość frameworka jest podyktowana typem programu i docelową architekturą, dla której został zaprojektowany.
Istnieją różne rodzaje ram :
-
ramy infrastruktury systemowej: do tworzenia systemów operacyjnych, interfejsów graficznych , narzędzi komunikacyjnych (np. .Net Framework , Struts );
-
struktura oprogramowania pośredniego integracji( oprogramowanie pośrednie ) do federowania aplikacji heterogenicznych. Udostępnianie różnych technologii w postaci jednego interfejsu;
-
ramy biznesowe: opracowywanie aplikacji specyficznych dla sektora biznesowego;
-
Ramki z zarządzania treścią : są fundamenty systemu zarządzania treścią - dla tworzenia, gromadzenia, przechowywania, klasyfikacji i publikacji „własność skanowane.”
Główne zalety tych frameworków to ponowne wykorzystanie ich kodu, standaryzacja cyklu życia oprogramowania (specyfikacja, rozwój, utrzymanie, ewolucja), pozwalają one na sformalizowanie architektury dostosowanej do potrzeb firmy. Opierają się na doświadczeniach z poprzednich opracowań.
Obiekty
W programowaniu obiektowym , o ramy jest zazwyczaj składa się z dominujących klas wywodzących się i udzielonych przez dziedziczenie , zgodnie z potrzebami konkretnych każdego oprogramowania, które wykorzystuje ramy . Dzięki frameworkowi obiektowemu programista korzystający z frameworka będzie mógł dostosować główne elementy programu poprzez rozszerzenie, korzystając z mechanizmu dziedziczenia : stworzyć nowe klasy zawierające wszystkie funkcjonalności implementowane przez framework , a dodatkowo własne funkcjonalności, tworzone przez programistę zgodnie ze specyficznymi potrzebami jego programu. Mechanizm dziedziczenia umożliwia również transformację funkcjonalności istniejących w klasach frameworka .
Odwrócenie sterowania
Podczas gdy biblioteki klas są zwykle pasywne: operacje na klasach są wykonywane na żądanie przez program, który ich używa, frameworki są zazwyczaj aktywne: przepływ operacji w programie jest kierowany przez ramy, których używa, przez mechanizmy, takie jak wywołania zwrotne i zdarzenia , oparte na „mnie nie zadzwonić, zadzwonię do ciebie.” "
Odwrócenie kontroli jest częścią typowej architektury frameworka .
francuskie tłumaczenie
W programowaniu komputerowym framework przekłada się na strukturę oprogramowania, chociaż termin framework jest nadal używany głównie. Podjęto inne próby francyzowania tego terminu; w związku z tym czasami znajduje się w środowisku programistycznym , zalecanym przez Komisję w zakresie wzbogacania języka francuskiego , a dla aplikacji , bazy aplikacji lub ram oprogramowania zalecanych przez Urząd Języka Francuskiego w Quebecu .
Należy pamiętać, że frameworku nie należy traktować jako platformy , o ile nie integruje systemu ani środowiska wykonywania aplikacji.
Przykłady
Kilka przykładów
Nazwisko
|
Posługiwać się
|
Architektura docelowa
|
Język
|
Autor
|
Licencja
|
---|
Odlewnia ActionScript
|
Aplikacja internetowa
|
Adobe flex
|
ActionScript i Java
|
ServeBox
|
|
---|
Kokon Apache
|
aplikacja internetowa - serwlet
|
?
|
Java , XML
|
Oprogramowanie Apache
|
Darmowe oprogramowanie
|
---|
Wiosna
|
Aplikacja internetowa
|
Wieloplatformowy
|
Jawa
|
Źródło wiosny
|
Darmowe oprogramowanie
|
---|
Apache Struts
|
Aplikacja internetowa
|
Kontroler widoku modelu
|
Jawa
|
Oprogramowanie Apache
|
Darmowe oprogramowanie
|
---|
Twitter Bootstrap
|
Aplikacja internetowa
|
Kontroler widoku modelu
|
HTML / CSS / JAVASCRIPT
|
Świergot
|
Licencja MIT
|
---|
Katalizator
|
oprogramowanie
|
Kontroler widoku modelu
|
Perl
|
|
Darmowe oprogramowanie
|
---|
Kakao
|
oprogramowanie
|
Kakao
|
Cel C
|
jabłko
|
|
---|
CubicWeb
|
Platforma do tworzenia sieci semantycznych
|
Wieloplatformowy
|
Pyton
|
Logilab
|
LGPL
|
---|
Django
|
Aplikacja internetowa
|
Kontroler widoku modelu
|
Pyton
|
Django Software Foundation
|
Darmowe oprogramowanie
|
---|
Dojo
|
aplet
|
AJAX
|
JavaScript
|
Fundacja Dojo
|
---|
Platforma modelowania Eclipse (*) |
modelowanie danych
|
Wieloplatformowy
|
(otwarty)
|
Fundacja Eclipse
|
Darmowe oprogramowanie
|
---|
Eclipse RCP
|
Platforma Rich Client
|
Platforma IDE Eclipse , wieloplatformowa
|
(otwarty)
|
Fundacja Eclipse
|
Darmowe oprogramowanie
|
---|
eZ Publish
|
Aplikacja internetowa
|
system zarządzania zawartością
|
PHP
|
eZ Systems AS
|
Darmowe oprogramowanie
|
---|
JavaServer Faces
|
Aplikacja internetowa
|
Składnik
|
Jawa
|
|
Darmowe oprogramowanie
|
---|
FxEngine Framework
|
cyfrowe przetwarzanie sygnału , wtyczka
|
Filtry i rurki
|
C ++
|
SMProcess
|
|
---|
Grails
|
Aplikacja internetowa
|
Kontroler widoku modelu
|
Groovy
|
Graeme Rocher, Guillaume Laforge, Marc Palmer, Dierk Koenig i Steven Devijver
|
|
---|
Google Guice
|
Aplikacja internetowa
|
Wieloplatformowy
|
Jawa
|
Bob Lee, Kevin B, Jesse Wilson, Christian Gruber
|
Darmowe oprogramowanie
|
---|
Hibernować
|
trwałość i mapowanie
|
Java Persistence API
|
Jawa
|
JBoss
|
Darmowe oprogramowanie
|
---|
Java SE (**) |
ogólne ramy dla Rich Client Platform
|
Wieloplatformowy
|
Java Scala JScheme , implementacja Scheme Clojure (dialekt Lisp) JRuby Jython Rhino (silnik JavaScript)
|
Sun Microsystems, a następnie Oracle Corporation
|
Darmowe oprogramowanie
|
---|
Java EE (**) |
profesjonalne ramy z rozproszonym wsparciem
|
---|
Java ME (**) |
framework dla aplikacji mobilnej
|
---|
JavaFX (**) |
Framework dla Rich Internet Application
|
---|
Kivy
|
framework dla aplikacji mobilnej
|
Wieloplatformowy
|
Python Cython
|
Organizacja Kivy
|
Darmowe oprogramowanie
|
---|
Laravel
|
Aplikacje internetowe
|
Wieloplatformowy , Model-View-Controller
|
PHP
|
Zespół deweloperski Laravel
|
Licencja MIT
|
---|
MARF
|
przetwarzanie sygnałów i języka
|
rurociąg
|
Jawa
|
Siergiej Mokhov, Stephen Sinclair
|
|
---|
Microsoft Foundation Class
|
oprogramowanie
|
Kontroler widoku modelu
|
C ++
|
Microsoft
|
Właściciel
|
---|
.Net (**) |
aplikacja , aplikacja internetowa , składnik oprogramowania
|
ASP.NET
|
C # , Visual Basic .NET
|
Microsoft
|
Właściciel
|
---|
Ruby on Rails
|
Aplikacja internetowa
|
Kontroler widoku modelu
|
Rubin
|
David Heinemeier Hansson i
|
Darmowe oprogramowanie
|
---|
Symfony
|
Aplikacja internetowa
|
Kontroler widoku modelu
|
PHP
|
Sensio Labs
|
Darmowe oprogramowanie
|
---|
SoJo FrameWork
|
Aplikacja internetowa
|
Kontroler widoku modelu
|
HTML / CSS
|
InGamesStudio
|
Darmowe oprogramowanie
|
---|
TopLink
|
trwałość i mapowanie
|
Java Persistence API
|
Jawa
|
Oracle Corporation
|
---|
W3.CSS
|
Aplikacja internetowa
|
Google Material Design
|
CSS
|
W3Schools
|
Darmowe oprogramowanie
|
---|
Zend Framework
|
Aplikacja internetowa
|
Kontroler widoku modelu
|
PHP
|
Technologie Zend
|
Darmowe oprogramowanie
|
---|
Zope
|
zarządzanie zawartością
|
Zope
|
Pyton
|
Zope Corporation
|
Darmowe oprogramowanie
|
---|
(*) Niektóre ramy jak Eclipse stanowią więcej meta ramy lub ramy z ram , w jakim pozwalają one, zgodnie z modułów, które są zainstalowane na nich, zmiany orientacji się do różnych czynności IT.
(**) Microsoft .NET i platformy Java mogą być postrzegane obojętnie jako frameworki lub platformy programowe, w zależności od tego, czy rozważa się ich jedyne biblioteki programistyczne, czy też środowisko wykonawcze.
Uwagi i odniesienia
-
„ Ramy lub infrastruktura oprogramowania: definicja i tłumaczenie ”, JDN ,23 kwietnia 2018 r( czytaj online , sprawdzono 24 czerwca 2018 r. )
-
Sandy Hacyan, „ The framework: a struifying development base ” , na journaldunet.com , Le Journal du Net ,3 kwietnia 2008(dostęp 2 maja 2017 )
-
Komisję do wzbogacenia języka francuskiego , „ środowisko rozwoju ” , FranceTerme , Ministerstwo Kultury (dostęp 22 stycznia 2020 ) .
-
" framework aplikacji " , Le Grand Dictionnaire terminologique , Biuro Québécois de la langue française (dostęp 22 stycznia 2020 ) .
-
(en) Ken Chazotte, Build Your Own Framework with Visual FoxPro , Hentzenwerke, 2004, ( ISBN 9781930919532 ) .
-
(w) Fundacja RJ Townsend Drupal 7: Dowiedz się, jak używać struktury Drupal do szybkiego tworzenia bogatych w funkcje witryn internetowych , Apress - 2010 ( ISBN 9781430228080 )
-
(w) Nicolas Guelfi, Egidio Astesiano i Gianna Reggio Inżynieria naukowa dla rozproszonych aplikacji Java , Springer - 2003 ( ISBN 9783540006794 )
-
(w) Douglas C. Schmidt i Stephen D. Huston, C ++ Network Programming: Systematic Reuse with ACE and Frameworks , Addison-Wesley - 2003 ( ISBN 9780201795257 )
-
(w) Stephen D.Huston, James Johnson CE, Umar Syyid, Przewodnik programisty ACE: praktyczne wzorce projektowe dla programowania sieci i systemów , Addison-Wesley - 2004 ( ISBN 9780201699715 )
Zobacz też
Powiązane artykuły
Link zewnętrzny