Visual Component Library

Biblioteca de programari visual From Wikipedia, the free encyclopedia

Remove ads

La Visual Component Library (VCL) és un marc de treball orientat a objectes basat en components visuals per desenvolupar la interfície d'usuari de les aplicacions de Microsoft Windows. Està escrit en Object Pascal.[1]

Dades ràpides Tipus, Versió inicial ...
Remove ads

Història

La VCL va ser desenvolupada per Borland per al seu ús en, i està estretament integrada amb, les seves eines RAD Delphi i C++Builder.

El 1995, Borland va llançar Delphi, el seu primer llançament d'un IDE i llenguatge Object Pascal. Fins a aquell moment, el Turbo Pascal de Borland per a DOS i Windows era principalment un llenguatge procedimental, amb funcions mínimes orientades a objectes, i que creava marcs d'interfície d'usuari amb el llenguatge requerit mitjançant marcs com Turbo Vision i Object Windows Library. OWL, un marc similar a MFC, requeria escriure codi per crear objectes d'interfície d'usuari.

Un objectiu clau de la VCL combinada amb el llenguatge Delphi era canviar els requisits de la construcció d'una interfície d'usuari. (Per contextualitzar, la variant Delphi de Pascal tenia diverses característiques innovadores orientades a objectes, com ara propietats i informació de tipus en temps d'execució, inspirades en Modula i Smalltalk.) En aquell moment, gran part del treball de codi d'IU requeria la creació de classes que heretaven d'altres classes, i els objectes personalitzats sovint no eren reutilitzables (per exemple, un botó que realitza una acció específica no es pot reutilitzar en una aplicació diferent.) El codi d'IU també era complicat, obligant el programador a entendre i utilitzar l'API de Windows, gestionar els recursos GDI, etc. Finalment, es podria dir que una interfície d'usuari visual s'hauria de dissenyar visualment, i tot i així la majoria de les eines per fer-ho (en aquell moment, principalment Visual Basic) ho feien en termes del dissenyador que generava codi, creant una situació fràgil i no editable manualment, un problema que encara persisteix avui dia amb molts marcs d'IU, especialment els basats en C++ com ara Qt.[2]

La combinació del llenguatge Delphi i el marc de treball VCL escrit en aquest llenguatge va abordar aquests problemes mitjançant:

  • Un marc de treball de streaming que permet transmetre un objecte i subobjectes a format de text o binari: TComponent, la classe arrel del marc de treball VCL.
  • Un dissenyador de formularis que desava en un flux, desant la descripció dels objectes i no el codi necessari per crear-los, amb objectes capaços d'autocreació en transmetre la descripció de nou.
  • Característiques del llenguatge que permetien personalitzar instàncies d'una classe sense subclassificar, de dues maneres: primer, mitjançant l'ús de propietats, permetent que les instàncies d'un objecte tinguessin els seus propis camps (com ara un títol) fàcilment canviats a través de la transmissió en temps real; segon, permetent que els esdeveniments (punters de mètode cridats en llocs específics del codi) fossin gestionats per un altre objecte; és a dir, els punters de mètode s'adjuntaven a una instància d'objecte.[3] En altres paraules, això crea "comportaments personalitzats mitjançant la delegació en lloc de l'herència".
  • Controls que incloïen controls nadius de Windows, en un marc de treball que gestionava recursos.[4]

La combinació d'aquests elements va donar lloc a un dissenyador visual que transmetia una descripció; un formulari (finestra) que es construïa a partir d'aquesta descripció, incloent-hi la creació de tots els altres components del formulari; i codi escrit en un sol lloc (mètodes del formulari) que podia ser cridat pels elements de la interfície d'usuari en resposta a determinades accions, com ara fer clic a un botó que cridava un controlador d'esdeveniments OnClick implementat al codi del formulari. En aquell moment, això va ser revolucionari, mentre que avui dia és un enfocament utilitzat per diversos altres frameworks, com ara WinForms i Cocoa.

Això també va permetre escriure fàcilment nous components (noves classes visuals o no visuals). La VCL està basada en Windows i les seves implementacions de controls comuns són contenidors de l'API de Windows, per tant és pràctica i totalment nativa. Els nous controls es poden implementar des de zero o poden utilitzar controls de Windows existents.

Amb el llançament de C++ Builder, el compilador de Delphi podia emetre fitxers d'encapçalament de C++ per a les unitats compilades en llenguatge Delphi, i així la flexibilitat del marc de treball de la interfície d'usuari dissenyat visualment en temps real va quedar disponible per a C++. Els components VCL es poden escriure en C++, però en última instància hereten dels avantpassats de Delphi, ja que el compilador i l'enllaçador de C++Builder poden consumir fitxers d'objecte i d'encapçalament produïts per Delphi. Aquest va ser un dels primers exemples de compatibilitat entre idiomes, una cosa mai vista fins a.Net.

Avui dia, la VCL inclou diversos centenars de components visuals i no visuals, utilitzables tant en els llenguatges Delphi com C++.

Remove ads

Tecnologia

La VCL forma una jerarquia de classes amb un avantpassat comú, la classe TComponent (que hereta de TObject, la classe arrel del Delphi Object Pascal). Aquest és un enfocament comú compartit pel llenguatge de programació Java, Smalltalk, C# i molts altres llenguatges de programació orientats a objectes.

Els components VCL cobreixen controls de Windows com ara finestres (classe TForm), controls (per exemple, classes TButton, TCheckBox, TLabel), així com accés a bases de dades (per exemple, components ADO o IBX) o connexions a Internet (components Indy). L'enfocament per components permet als programadors ampliar la VCL amb molts components addicionals visuals i no visuals. Hi ha un gran nombre de paquets de components gratuïts i comercials. Entre ells hi ha JEDI, TMS, Developer Express, Mitov Software, Raize Software, TurboPower, IOComp, SDL, DA-SOFT Technologies i molts altres.

Tot i que no tots els components de VCL són segurs per a fils, VCL també admet la multifunció. Un exemple és la compatibilitat multifunció integrada de la biblioteca OpenWire VCL.

VCL proporciona suport natiu per al model PME (propietats, mètodes i esdeveniments) a nivell de.NET.

Gran part del disseny de.NET, especialment WinForms, està modelat a partir de la VCL. Un dels principals arquitectes de les primeres versions de Delphi, Anders Hejlsberg, va ser contractat per Microsoft i es va convertir en un dels principals arquitectes de.NET. Això va ser objecte d'una demanda: en aquell moment (1996), "Borland va al·legar que Microsoft havia contractat 34 empleats de Borland durant els darrers 30 mesos per robar secrets comercials de Borland. Borland també va afirmar que Microsoft oferia i lliurava esquers cars als treballadors de Borland. En dos casos, es van involucrar incentius superiors al milió de dòlars." Segons Zarko Gajic, la bonificació va ser de tres milions de dòlars en el cas d'Anders. Molts desenvolupadors de Delphi troben C# força familiar, a causa de les similituds de disseny.

Remove ads

Referències

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads