TurboGears

S Vikipedije, slobodne enciklopedije
TurboGears
Logo
Logo
Programer(i)Kevin Dangur (originalni kreator), Mark Ram (TG2 vođa)
Prvo izdanje09.2005.
Stabilno izdanje
2.3.7[1] / 13.10.2015.
Repozitorijum Uredi na Vikipodacima
Napisan uPajton
PlatformaCross-platform
TipFrejmvork Veb Aplikacije
LicencaMIT licenca, LGPL
Veb-sajtwww.turbogears.org

TurboGears je frejmvork veb aplikacije u Pajtonu koji sadrži nekoliko WSGI komponenti kao što su WebOb, SQLAlchemy, Genshi i Repoze.

TurboGears je dizajniran u MVC arhitekturi, skoro kao Struts ili Ruby on Rails, dizajniran da pravi rapidno brz razvoj veb aplikacija u Pajtonu lakšim i bolje održavanim. Od verzije 2.3 frejmvorku je takođe dodeljen "minimalistički mod" koju mu omogućava da se ponaša kao Mikrofrejmvork za korišćenje u okruženjima gde ceo stek nije zahtevan niti potreban.

TurboGears komponente[uredi | uredi izvor]

TurboGears je napravljen preko brojnih različitih biblioteka i midlvera. Podrazumevane alatke su se menjale između verzija 1.x, 2.x i 2.3+ serija, ali većina ovih komponenata mogu biti korišćene u bilo kojoj od ovih verzija zbog postojanja podrške za mnoge alternativne konfiguracije. Sledeće su glavne komponente sa kojima bi programer upravljao.

TurboGears 2.x komponente[uredi | uredi izvor]

  • SQLAlchemy (model) - definiše strukturu tabele korisničke baze podataka i kako da ih poveže sa Pajton objektima sa kojima korisnici mogu da interaguju.
  • Ming (model) - omogućava pristup slojevima podataka za MongoDB, skoro kao što SQLAlchemy definiše povezivanje MongoDB kolekcija na Pajtonove objekte sa kojima korisnici mogu da interaguju.
  • Genshi (MVC) - definiše šablone za HTML ili XHTML koje će korisnik generisati. Ovde je mesto gde korisnik definiše prednji deo sa kojim će klijent interagovati.
  • Repoze - Repoze.who je korišćen za bezbednost (identifikacija i autentifikacija). Korisnici mogu definisati pravila autorizacije na predikatima koji su povezani na kontrolorima, frejmvork već doprinosi neke ugrađene preditake, ali one ručne mogu biti napisane posebno.
  • ToscaWidgets - je primarna biblioteka dodataka za pravljenje formi i kompleksnih grafičkih korisničkih interfejsa. Tosca po podrazumevanim podešavanjima će generistai jednostavne HTML forme, ali takođe može biti korišćen za pravljenje midlvera da se poveže na višenapredne dodatke JavaScript-e i alata. Nasuprot TurboGears 1.x, više ne postoji preferirana/integrisana JavaScript biblioteka.[2]
  • Gearbox - je alatka korišćena od strane TurboGears-a da upravlja projektima, pravi nove i služi TurboGears aplikacijama, ali korisnik se može takođe povezati na Apache, Nginx, ili bilo koji  WSGI-kompatibilni veb server.

Verzije pre 2.3 bi takođe koristile:

  • Pylons (MVC) - ovaj midlver snosi sve bek-end logike korisnika i povezuje se na korisnički veb server da ponudi podatke na veb.
  • Paster je bio komandna alatka i veb server korišćen umesto Gearbox-a.
  • Repoze.what - korišćen da snosi autorizaciju respektivno. Prilikom definisanja elemenata korisničkih kontrolora da budu izloženi na vebu, repoze.what predikati definišu ko im može pristupiti i pod kojim uslovima.

TurboGears 1.x komponente[uredi | uredi izvor]

  • SQLObject (model) - bek-end podatak koji može napraviti bazu podataka ili interfejs sa već postojećim podacima na višebrojim serverima baze podataka.
    • SQLAlchemy je spreman da postane podrazumevan u TurboGears >= 1.1.
  • Kid (pregled) - XHTML šabloniranje prednjeg dela gde su svi šabloni validni XHTML oli XML fajlovi koji su obično napravljeni na taj način da omogućavaju otvaranje ovih šablonao kao jednostavne XHTML fajlove da se proveri dizajn. U isto vreme mogućnosti su omogućene da uključe delove Pajtona u XML obliku.
    • Genshi je naslednik Kid-a i zameniće ga kao podrazumevanog šabloniranja u TurboGears >= 1.1. Skoro je 100% sintaksno-kompatibilan prema Kid-u.
  • CherryPy (kontrolor) - midlver koji dozvoljava veb aplikacijama da budu programirane pisanjem događaja koja vraćaju vrednosti u (u TurboGears slučaju) šablone. Isti podaci mogu biti primljeni u Ajax stilu kao JSON strim podataka.
  • MochiKit je preferirana, ali opciona JavaScript biblioteka za TurboGears 1.x. Dizajnirana je da napravi programiranje u JavaScript-i više pajtonski. Najviše se koristi za implementiranje Ajax mogućnosti i dodataka jer omogućava interfejs kojem se dobijaju JSON strimovi podataka u asinhronom načinu.

Dodaci šablonima[uredi | uredi izvor]

Jezici šabloniranja pored Genshi mogu biti korišćeni kroz konfiguracioni fajl korisničke aplikacije. Dodaci trenutno podržani u 2.1 su Myghty, Jinja2, Mako, Cheetah, i Kajiki. Kid podrška trenutno nije planirana jer je Genshi virtuelno identičan. Ova lista će se možda menjati na dalje dok budu izlazile novije verzije.

Istorija projekta[uredi | uredi izvor]

TurboGears je originalno napravljen tokom 2005. od strane Kevina Dangora. Kada ga je izbacio kao frejmvork otvorenog koda krajem septembra 2005, primio je više od 30,000 screencast preuzimanja u prva 3 meseca.[traži se izvor]

Januara 2007. Kevin Dangor se povukao kao vođa projekta i Alberto Valverde je preuzeo njegov rad kao naslednik,[3] ali se zatim i on povukao zvog privatnih obaveza. Alberto je i dalje umešan u TurboGears zajednici kroz njegov ToscaWidgets projekat. TurboGears projekat je sada održavan od strane grupe od 6 programera pod vođstvom Marka Rama (kao TurboGears 2 razvojnog vođe) i Florent Ajd (kao Turbogears 1.x menadžer izdanja).

Tokom juna 2007. zajednica je počela sa eksperimentisanjem da postavi TurboGears API na vrh komponenti i protokola korišćenih u Pylons-u i bile su spekulacije da će se ta dva frejmvorka konačno spojiti.[4] Kakogod, zvanična TurboGears 2 dokumentacija kaže da to toga verovatno neće doći, zbog "različitih, ali kompatiblnih prioriteta"[5] oba projekta. Pylons je hteo da se fokusira na proširujući dizajn, niskog nivoa, dok je TurboGears bio fokusiran na nuenje potpune, korisničko prijateljske pakete, tako da ova dva rade zajedno skoro isto kao što Debian i Ubuntu rade sada. Nova 2.x grana je imala svoje prvo stabilno izdanje u 2009.

Od jeseni 2008, TurboGears ima veliku i zdravu zajednicu sa preko 3000 korisnika na TurboGears poštanskoj listi, knjigu od Prentis Hola objavljene 6. novembra, i mnogobrojne TurboGears aplikacije otvorenog koda objavljene celom svetu. Razvoj se nastavlja srednjom ali stabilnom brzinom i skorije je dopunjen uspešnom participacijom projekta kao Google Summer of Code mentorstvom tokom 2008. i 2009. TurboGears 1.1, je ciljao na pomaganje starijim sajtovima da pređu 2.x, izbačen je u oktobru 2009. Nova verzija knjige je u radu da bude osvežena sa novim promenama koje je TurboGears 2 doneo.

Tokom 2010, projekat je posrnuo donekle. Glavne vođe programera su se povukle zbog privatnih problema u životima. Do kraja januara 2011, ipak, projekat je počeo da bude reorganizovan i da se vraća na svoj put. Posle nekoliko meseci popravljajući instrastrukturu i probleme u kodovima, TurboGears je uspeo da izbaci nove verzije (2.0.4 i 2.1.2).

Tokom 2013. dok se održavala kompatibilnost sa prethodnim verzijama, projekat se udaljio od baze koda Pylons-a da podrži Pajton 3, omogući ubrzanja i lakši proces instalacije. Ovo je dovelo do izbacivanja verzije 2.3.0 u avgustu 2013. Takođe je najavljeno brže izbacivanje verzija što bi obuhvatalo nova izdanja sa ispravkama na svaka ~3 meseca.

Budućnost TurboGears-a[uredi | uredi izvor]

TurboGears razvoj je sada fokusiran primarno na 2.x granu, sa verzijom 2.3 koja je sada primarna traka sa Pajton 3 podrškom.

Put prelaska sa 1.x grane na 2.x granu je omogućen kroz 1.1 i 1.5 izdanja koja su pomerila podrazumevane ORM i jezike šabloniranja da se uklapaju sa onom koja je korišćena u seriji 2.x. TurboGears tim je jasno stavio do znanja novim korisnicima da je 2.x budućnost, i da je 1.x samo održavan zbog pogodnosti postojećih korisnika.

Tokom 2011. glavne vođe programera TurboGears-a su razgovarale sa projektom Pylons-a da udruže snage sa njima i sa Repoze.BFG programerima oko novog ujedinjenog projekta nazvan Pyramid. Zbog nekompatibilnosti sa prethodnim verzijama kojim bi ovaj korak izazvao, i garantovanog TurboGears da će biti pouzdana platforma na duže staze, trenutni tim je odlučio da sarađuje sa Pylons projektom na svemu mogućem samo da TurboGears jezgro ne bude bazirano Pyramid-i.[6]

Budući razvoj, Pajton 3 podrška i unapređenja brzine su se dogodile u grani 2.3 koju je doživela potpunu prepisku TurboGears jezgra zadržavajući kompatibilnost prethodnih verzija sa postojećim aplikacijama, od tog izdanja TurboGears je imao svoje jezgro umesto činjenice da je bio baziran na Pylons frejmvorku.[7]

Tokom 2.3 serije frejmvork je eksperimentisao sa takozvanim "minimalističkim modom" koji mu omogućava da deluje kao mikrofrejmvork de fakto smanjujući zavisnosti od desetina do samo 3 i pozicioniranje TurboGears-a između Flask-a i Django-a u ruži Pajton frejmforkova za njegove ciljeve, jer cilja da bude sposoban da skalira od mikro-frejmvorka do punog frejmvork steka zaviseći samo od činjenice da je TurboGears2 ili tg.devtools paket korišćen.

Vidi još[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ „Project Status”. 
  2. ^ „TurboGears2 Cookbook - Creating and Validating Forms”. Arhivirano iz originala 1. 10. 2015. g. Pristupljeno 15. 11. 2015. 
  3. ^ „TurboGears has a new leader”. Kevin Dangoor. 3. 01. 2007. Pristupljeno 12. 04. 2007. 
  4. ^ „Pylons Merge”. Arhivirano iz originala 4. 07. 2012. g. Pristupljeno 27. 06. 2007. 
  5. ^ „What’s new in TurboGears 2”. Pristupljeno 16. 09. 2008. 
  6. ^ „State of the Gears”. Michael Pedersen. 1. 03. 2012. Pristupljeno 18. 03. 2013. 
  7. ^ „TurboGears 2.3 unstable release”. Alessandro Molina. 23. 01. 2013. Pristupljeno 18. 03. 2013. 

Literatura[uredi | uredi izvor]

Spoljašnje veze[uredi | uredi izvor]