Çerçeve
Gelen bilgisayar programlama , bir çerçeve (olarak da bilinen yazılım altyapısı , altyapının geliştirilmesi , geliştirme ortamı , uygulamaların tabanı , uygulamalar için veya yazılım çerçevesi ) tutarlı bir kümesi anlamına yazılım bileşenleri temellerini oluşturmak için kullanılan Yapısal ve tüm ana hattını ya da bir yazılımın ( mimarinin ) parçası . Bir çerçeve , basit bir yazılım kitaplığından temel olarak şu şekilde farklılık gösterir :
- bazı kütüphanelerin aksine zayıf bir şekilde uzmanlaşmış genel karakteri; bu nedenle bir çerçeve , her biri bir alanda uzmanlaşmış birkaç kitaplıktan oluşabilir. Bir çerçeve yine de üzerinde, uzman edilebilir belirli bir dilde , bir belirli platformu : Belirli bir alanı veri iletişimi , veri haritalama , vb ;
- yazılım mimarisine rehberlik eden ve hatta geliştiricinin belirli tasarım modellerine saygı duymasına yol açan, kendi yapısıyla dayattığı çerçeve ; onu oluşturan kütüphaneler daha sonra aynı paradigmaya göre düzenlenir .
Bu nedenle çerçeveler , uygulama yazılımının , web uygulamalarının , ara katman yazılımlarının ve yazılım bileşenlerinin mimarisini şekillendirmek için tasarlanır ve kullanılır . Çerçeveler bilgisayar tarafından edinilen ve piyasada yazılım uygulamalarında dahil edilmiştir, bu nedenle nadiren satın alınan ve bir son kullanıcı tarafından ayrı ayrı monte edilir.
Açıklama
Bir çerçeve araçları ve bir dizi yazılım bileşenleri bir uyarınca düzenlenen mimari planı ve desen , bütün oluşturan ya da programın bir "iskelet" teşvik bir tuval. Genellikle bir yazılım kitaplığı biçiminde sağlanır ve çerçevenin hedef mimarisinin planı eşlik eder .
Programcılara çalışmalarında yardımcı olmak için bir çerçeve tasarlanmıştır. Çerçevenin organizasyonu, onu kullanacak programcının maksimum üretkenliğini hedefler - programın daha düşük inşaat ve bakım maliyetlerini garanti eder . Çerçevenin tam içeriği, programın türüne ve tasarlandığı hedef mimariye göre belirlenir.
Farklı çerçeve türleri vardır :
-
sistem altyapısı çerçevesi : işletim sistemleri , grafik arayüzler , iletişim araçları geliştirmek için (örnek: .Net Framework , Struts );
-
heterojen uygulamalarıbirleştirmek için tümleştirme ara yazılımı ( ara katman yazılımı ) çerçevesi . Farklı teknolojileri tek bir arayüz şeklinde sağlamak;
-
iş çerçeveleri : işin iş sektörüne özgü uygulamalar geliştirmek;
-
çerçeveler içinde içerik yönetimi : Bir temelleri olan içerik yönetim sistemi - oluşturulması, toplanması, sınıflandırılması, depolanması ve yayınlanması için "özelliği taranan."
Bu çerçevelerin temel avantajları, kodlarının yeniden kullanılması , yazılım yaşam döngüsünün standartlaştırılması (spesifikasyon, geliştirme, bakım, evrim), şirketin ihtiyaçlarına göre uyarlanmış bir mimariyi resmileştirmeye izin vermeleridir. Önceki gelişmelerin deneyimine dayanıyorlar.
Nesneler
Olarak nesne yönelimli programlama , bir çerçeve tipik olarak, oluşan ana sınıflar türetilmiş tarafından uzatılır miras kullanan her yazılımı özel ihtiyaçlarına göre çerçeve . Bir ile nesne yönelimli bir çerçeve kullanır programcı çerçevesini kullanarak, uzantısı programın ana öğelerini özelleştirme mümkün olacak miras mekanizması : Yeni oluşturmak sınıfları tüm işlevleri içeren çerçeve uygular ve ek kendi içinde programcı tarafından, programının özel ihtiyaçlarına göre oluşturulan işlevler. Kalıtım mekanizması, çerçeve sınıflarında var olan işlevselliklerin dönüştürülmesini de mümkün kılar .
Kontrolün tersine çevrilmesi
Sınıf kitaplıkları tipik olarak pasif olsa da: sınıf işlemleri, bunları kullanan program tarafından talep üzerine yürütülür, çerçeveler tipik olarak etkindir: bir programdaki işlemlerin akışı, kullandığı çerçeve tarafından, geri çağırmalar ve olaylar gibi mekanizmalar tarafından yönetilir . "Ben sizi arayacağım, deme." "
Kontrolün tersine çevrilmesi, bir çerçevenin tipik mimarisinin bir parçasıdır .
Fransızca çeviri
Gelen bilgisayar programlama terimi her ne kadar, bir çerçeve, yazılım yapısına çevirir çerçeve olduğunu hala çoğunlukla kullandı. Terimi frangilleştirmek için başka girişimlerde bulunuldu; bu nedenle bazen Fransız dili zenginleştirme Komisyonu tarafından önerilen geliştirme ortamında ve Quebec'teki Fransız dili Ofisi tarafından önerilen uygulamalar , uygulama tabanı veya yazılım çerçevesi için bulunur .
Bir sistem veya uygulama yürütme ortamını entegre etmediği sürece bir çerçevenin bir platform olarak düşünülmemesi gerektiğini lütfen unutmayın .
Örnekler
Bazı örnekler
Soyadı
|
Kullanım
|
Hedef mimari
|
Dil
|
Yazar
|
Lisans
|
---|
ActionScript Foundry
|
Web uygulaması
|
Adobe flex
|
ActionScript ve Java
|
ServeBox
|
|
---|
Apache Cocoon
|
web uygulaması - sunucu uygulaması
|
?
|
Java , XML
|
Apache Yazılımı
|
Ücretsiz yazılım
|
---|
İlkbahar
|
Web uygulaması
|
Çapraz platform
|
Java
|
Bahar Kaynağı
|
Ücretsiz yazılım
|
---|
Apache Struts
|
Web uygulaması
|
Model-Görünüm-Denetleyici
|
Java
|
Apache Yazılımı
|
Ücretsiz yazılım
|
---|
Twitter Önyükleme
|
Web uygulaması
|
Model-Görünüm-Denetleyici
|
HTML / CSS / JAVASCRIPT
|
Twitter
|
MIT lisansı
|
---|
Katalizör
|
Uygulama yazılımı
|
Model-Görünüm-Denetleyici
|
Perl
|
|
Ücretsiz yazılım
|
---|
Kakao
|
Uygulama yazılımı
|
Kakao
|
Hedef C
|
elma
|
|
---|
CubicWeb
|
Anlamsal web geliştirme platformu
|
Çapraz platform
|
Python
|
Logilab
|
LGPL
|
---|
Django
|
Web uygulaması
|
Model-Görünüm-Denetleyici
|
Python
|
Django Yazılım Vakfı
|
Ücretsiz yazılım
|
---|
Dojo
|
uygulama
|
AJAX
|
Javascript
|
Dojo Vakfı
|
---|
Eclipse Modelleme Çerçevesi (*) |
veri modelleme
|
Çapraz platform
|
(açık)
|
Eclipse Vakfı
|
Ücretsiz yazılım
|
---|
Eclipse RCP
|
Zengin İstemci Platformu
|
IDE Eclipse Platformu , Çoklu Platform
|
(açık)
|
Eclipse Vakfı
|
Ücretsiz yazılım
|
---|
eZ Publish
|
Web uygulaması
|
içerik yönetim sistemi
|
PHP
|
eZ Systems AS
|
Ücretsiz yazılım
|
---|
JavaServer Yüzleri
|
Web uygulaması
|
Bileşen
|
Java
|
|
Ücretsiz yazılım
|
---|
FxEngine Çerçevesi
|
dijital sinyal işleme , eklenti
|
Filtreler ve tüpler
|
C ++
|
SMProcess
|
|
---|
Taneler
|
Web uygulaması
|
Model-Görünüm-Denetleyici
|
Harika
|
Graeme Rocher, Guillaume Laforge, Marc Palmer, Dierk Koenig ve Steven Devijver
|
|
---|
Google Guice
|
Web uygulaması
|
Çapraz platform
|
Java
|
Bob Lee, Kevin B, Jesse Wilson, Christian Gruber
|
Ücretsiz yazılım
|
---|
Hazırda beklet
|
kalıcılık ve haritalama
|
Java Persistence API
|
Java
|
JBoss
|
Ücretsiz yazılım
|
---|
Java SE (**) |
Zengin İstemci Platformu için genel çerçeve
|
Çapraz platform
|
Java Scala JScheme , Scheme Clojure uygulaması (Lisp lehçesi) JRuby Jython Rhino (JavaScript motoru)
|
Sun Microsystems ve ardından Oracle Corporation
|
Ücretsiz yazılım
|
---|
Java EE (**) |
dağıtılmış destekli profesyonel çerçeve
|
---|
Java ME (**) |
mobil uygulama çerçevesi
|
---|
JavaFX (**) |
Zengin İnternet Uygulaması çerçevesi
|
---|
Kivy
|
mobil uygulama çerçevesi
|
Çapraz platform
|
Python Cython
|
Kivy organizasyonu
|
Ücretsiz yazılım
|
---|
Laravel
|
internet uygulamaları
|
Multiplatform , Model-Görünüm-Denetleyici
|
PHP
|
Laravel Geliştirme Ekibi
|
MIT lisansı
|
---|
MARF
|
sinyal ve dil işleme
|
boru hattı
|
Java
|
Sergei Mokhov, Stephen Sinclair
|
|
---|
Microsoft Foundation Class
|
Uygulama yazılımı
|
Model-Görünüm-Denetleyici
|
C ++
|
Microsoft
|
Sahip
|
---|
.Net (**) |
uygulama yazılımı , web uygulaması , yazılım bileşeni
|
ASP.NET
|
C # , Visual Basic .NET
|
Microsoft
|
Sahip
|
---|
raylar üzerinde yakut
|
Web uygulaması
|
Model-Görünüm-Denetleyici
|
Yakut
|
David Heinemeier Hansson ve
|
Ücretsiz yazılım
|
---|
Symfony
|
Web uygulaması
|
Model-Görünüm-Denetleyici
|
PHP
|
Sensio Labs
|
Ücretsiz yazılım
|
---|
SoJo FrameWork
|
Web uygulaması
|
Model-Görünüm-Denetleyici
|
HTML / CSS
|
InGamesStudio
|
Ücretsiz yazılım
|
---|
TopLink
|
kalıcılık ve haritalama
|
Java Persistence API
|
Java
|
Oracle Corporation
|
---|
W3.CSS
|
Web uygulaması
|
Google Materyal Tasarımı
|
CSS
|
W3Okullar
|
Ücretsiz yazılım
|
---|
Zend Çerçevesi
|
Web uygulaması
|
Model-Görünüm-Denetleyici
|
PHP
|
Zend Technologies
|
Ücretsiz yazılım
|
---|
Zope
|
içerik yönetimi
|
Zope
|
Python
|
Zope Corporation
|
Ücretsiz yazılım
|
---|
(*) Bazı çerçeveler Eclipse gibi daha meta teşkil çerçeveler veya çerçeveler içinde çerçeveler farklı BT faaliyetlerine karşı kendilerini yeniden yönlendirmek için, kendilerine yüklenen modüllerin göre onlar izin sürece,.
(**) Microsoft .NET ve Java Platformları , tek geliştirme kitaplıklarını veya yürütme ortamlarını dikkate alıp almamasına bağlı olarak çerçeveler veya yazılım platformları olarak kayıtsız olarak görülebilir .
Notlar ve referanslar
-
" Yazılım çerçevesi veya altyapısı: tanım ve çeviri ", JDN ,23 Nisan 2018( çevrimiçi okuyun , 24 Haziran 2018'de danışıldı )
-
Sandy Hacyan, " The framework: a structuring development base " , journaldunet.com , Le Journal du Net ,3 Nisan 2008(erişim tarihi 2 Mayıs 2017 )
-
Fransız dilini zenginleştirme Komisyonu , " geliştirme ortamı " , FranceTerme , Kültür Bakanlığı ( 22 Ocak 2020'de erişildi ) .
-
" framework of applications " , Le Grand Dictionnaire terminologique , Office québécois de la langue française ( 22 Ocak 2020'de erişildi ) .
-
(en) Ken Chazotte, Visual FoxPro ile Kendi Çerçevenizi Oluşturun , Hentzenwerke, 2004, ( ISBN 9781930919532 ) .
-
(in) RJ Townsend Foundation Drupal 7: Zengin Özelliklere Sahip Web Sitelerini Hızla Oluşturmak için Drupal Çerçevesini Nasıl Kullanacağınızı Öğrenin , Apress - 2010 ( ISBN 9781430228080 )
-
(in) Nicolas Guelfi, Egidio Astesiano ve Gianna Reggio Dağıtılmış Java uygulamaları için Bilimsel mühendislik , Springer - 2003 ( ISBN 9783540006794 )
-
(in) Douglas C. Schmidt ve Stephen D. Huston, C ++ Ağ Programlama: ACE ve Çerçeveler ile sistematik yeniden kullanım , Addison-Wesley - 2003 ( ISBN 9780201795257 )
-
(inç) Stephen D. Huston, James Johnson CE, Umar Syyid, ACE programcı kılavuzu: ağ ve sistem programlaması için pratik tasarım modelleri , Addison-Wesley - 2004 ( ISBN 9780201699715 )
Ayrıca görün
İlgili Makaleler
Dış bağlantı