Rammer

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 20. februar 2022; checks kræver 7 redigeringer .

Framework (nogle gange framework ; anglicisme , neologisme fra framework  - skelet , frame, frame, struktur) - en softwareplatform, der bestemmer strukturen af ​​et softwaresystem; software , der letter udvikling og integration af forskellige komponenter i et stort softwareprojekt.

Ordet "framework" bruges også, og nogle forfattere bruger det som det vigtigste, herunder slet ikke baseret på den engelske analog [1] [2] [3] . Du kan også tale om rammemetoden [3] som en tilgang til at bygge programmer, hvor enhver programkonfiguration er bygget op af to dele:

  1. Den permanente del er en ramme, der ikke ændrer sig fra konfiguration til konfiguration og bærer reder, hvori den anden, variable del er placeret;
  2. Pluggbare moduler (eller udvidelsespunkter).

Forskelle fra biblioteket

"Framework" adskiller sig fra konceptet med et bibliotek ved, at et bibliotek kan bruges i et softwareprodukt blot som et sæt af subrutiner med lignende funktionalitet, uden at det påvirker softwareproduktets arkitektur og uden at pålægge det nogen begrænsninger. Mens "rammen" dikterer reglerne for opbygning af applikationsarkitekturen, indstiller standardadfærden i det indledende udviklingstrin - "rammen", som skal udvides og ændres i henhold til de specificerede krav. Et eksempel på softwareramme er CMF ( Content Management Framework ), og et eksempelbibliotek er et e -mail- modul .

I modsætning til et bibliotek, der kombinerer et sæt af lignende funktionalitet, kan et "rammeværk" også indeholde et stort antal biblioteker med forskellige emner.

Nøgleforskellen mellem en "ramme" og et bibliotek er inversion af kontrol : brugerkoden kalder biblioteksfunktioner (eller klasser) og overtager kontrollen efter opkaldet. I "rammen" kan brugerkoden implementere specifik adfærd, der er indlejret i rammens mere generelle - "abstrakte" kode. I dette tilfælde kalder "rammen" funktionerne ( klasser ) af brugerkoden [4] .

Softwaresystemramme

Dette er rammen for et softwaresystem (eller undersystem). Kan omfatte: hjælpeprogrammer, kodebiblioteker, scriptsprog og anden software , der letter udviklingen og integrationen af ​​forskellige komponenter i et stort softwareprojekt. Normalt sker tilknytningen ved brug af en enkelt API .

Eksempler: web frameworks som Zend Framework, Laravel eller Symfony PHP frameworks eller Django skrevet i Python .

Application framework

En af de vigtigste fordele ved at bruge "wireframe" applikationer er applikationens "standard" struktur. "Frames" blev populær med fremkomsten af ​​grafiske brugergrænseflader , som havde en tendens til at implementere en standardramme for applikationer. Med deres brug blev det meget lettere at skabe værktøjer til automatisk oprettelse af grafiske grænseflader, da strukturen af ​​den interne implementering af applikationskoden blev kendt på forhånd. Objektorienterede programmeringsteknikker bruges typisk til at tilvejebringe et framework (for eksempel kan dele af en applikation arves fra framework-basisklasser).

En af de første kommercielle applikationsrammer var MacApp , skrevet af Apple til " Macintosh ". Oprindeligt oprettet med en udvidet (objektorienteret) version af " Object Pascal "-sproget, blev det efterfølgende omskrevet i " C++ ". Andre populære "Macintosh" rammer inkluderede:

I varierende grad er applikationsrammer " Cocoa " til Mac OS X , såvel som gratis rammer, der findes som en del af Mozilla , OpenOffice.org , GNOME og KDE- projekterne .

Microsoft har skabt et lignende produkt til " Windows " kaldet Microsoft Foundation Classes (MFC). I øjeblikket er Microsofts flagskibsprodukt til softwareudvikling " .NET ".

På tværs af platforme applikationsrammer (til Linux , Macintosh og Windows-operativsystemer) er for eksempel widget toolkit , wxWidgets , Qt , .NET , MyCoRe eller FOX toolkit .

Conceptual Model Framework

Et abstrakt begreb om struktur, der bruges i forskning til at identificere mulige måder at løse et problem på eller repræsentere en idé.

Implementering af rammen

En "ramme" er defineret som et sæt konkrete og abstrakte klasser og definitioner af, hvordan de interagerer. Konkrete klasser implementerer normalt gensidige relationer mellem klasser. Abstrakte klasser er udvidelsespunkter, hvor rammer kan bruges eller tilpasses.

Et udvidelsespunkt  er den "del" af rammen, som der ikke er givet nogen implementering for. Følgelig består rammen af ​​en konceptuel model af konceptuelle klasser , og rammen af ​​et softwaresystem består af klasser af et alment programmeringssprog.

Processen med at skabe en ramme er at vælge en delmængde af opgaverne i problemet og deres implementeringer. I løbet af implementeringer er generelle problemløsningsværktøjer indeholdt i konkrete klasser, og mutable værktøjer flyttes til udvidelsespunkter.

Se også

Noter

  1. V. Faronov. Oprettelse af applikationer med C#, Moscow, EKSMO, 2008, s. 12
  2. Metoder og teknologier til IS reengineering. K. V. Akhtyrchenko, T. P. Sorokvasha Arkiveret 3. august 2009 på Wayback Machine , Institute for System Programming RAS
  3. 1 2 Gorbunov-Posadov M. M. Udvidelige programmer . - M . : Polyptykon, 1999. - 336 s. — ISBN 5-901-11801-4 . Arkiveret 20. september 2012 på Wayback Machine
  4. Martin Fowler. InversionOfControl  . _ Hentet 5. november 2013. Arkiveret fra originalen 23. januar 2011.