Az Orchard Magyarország fejlesztési tapasztalatai
Az alábbiakban pár tapasztalatot szeretnénk megosztani, melyeket kis fejlesztőcsapatunk az Orchard Magyarország fejlesztése során szerzett.
- Amikor több fejlesztő dolgozik egy Orchard projekten, a source control legjobb módja az, ha letöltjük az Orchard forráskódot (azaz nem klónozzuk az Orchard repót) és az egész forrást (saját modulokkal, témákkal és az App_Data-val együtt, persze a megfelelő ignore filterekkel) verziókövetés alá helyezzük. Így egyszerűen lehet együtt dolgozni az egész installáción. Fontos itt megjegyezni, hogy SQL Server Compact adatbázist használunk egyelőre (csak viszonylag kevés adatunk van), így még maga az adatbázis is verziókövethető.
- Az SQL Server Compact súlyosan akadályozza az egyidejű tartalomszerkesztést, mivel az adatbázis-változtatásokat nem lehet a szöveges fájlokhoz hasonlóan összefésülni (ezt nagyrészt kiküszöböltük a tartalmak szövegfájlokba történő "bufferelésével"). Mivel ezt az adatbázis-típust egyéb okokból választottuk, le kellett nyelni a békát. Az egész probléma egyébként nem állt volna fenn, ha a fejlesztés kezdetekor rendelkeztünk volna már központi tárhellyel, de az csak később lett meg, így mindenki localhoston dolgozott.
- Lefejlesztettük a QnA modult (http://gallery.orchardproject.net/List/Modules/Orchard.Module.OrchardHUN.QnA), ami egy, a beépített Comments modult és a Taxonomies modult felhasználó, kisméretű fórum-szerűség. Egy szimpla, adminfelületről összedobott tartalomtípusként kezdődött, aztán modullá fejlődött, ahol a felhasználók is indíthatnak témákat és azokat címkékkel lehet ellátni. Később a Tags modul jogosultság-kezelési korlátai miatt átírtuk a modult, hogy a Taxonomies képességeit felhasználva lehessen a témákat kategorizálni. A BBCode modul segítségével lehetővé tettük a BBCode-ok használatát a hozzászólásokban.
- Lefejlesztettünk egy üzenőfal modult is (http://gallery.orchardproject.net/List/Modules/Orchard.Module.OrchardHUN.Shoutbox).
- A következő, harmadik féltől származó (azaz nem az egész csapat által fejlesztett) modulokat használtuk, használjuk fel:
- Advanced Menu (alap és Breadcrumbs)
- BBCode
- Combinator
- Content Widgets
- Facebook Suite (és Facebook Suite Connect), valamint a függőségei: Profile, Helpful Libraries és Avatars
- oForms
- Target: Blank
- Vandelay Industries (Meta és Translation Manager)
- Az Orchard Magyarország oldal lefejlesztése, beleértve az összes alább felsorolt mellékprojektet, néhány száz órás munkabefektetést jelentett háromfős csapatunknak. Megjegyzendő, hogy korábban csak kevés közös munkát végeztünk (az is egy Wordpress oldal volt egy versenyre) és kevés csapatban elvégzett munkatapasztalattal rendelkeztünk. Az egyik csapattagnak csak kevés Orchard-os tapasztalata volt, egy másiknak egyáltalán nem volt webfejlesztési tapasztalata, bár mindannyian megfelelő C# alapokkal rendelkeztünk. Ez a projekt volt mindannyiunk számára az első igazi Orchard projekt.
- E projekt nyomán...
- Több bugot találtunk az Orchardban és funkció-ötletet írtunk (Language attribute burnt into Document shape, Problem with adding culture and installing localization files, Containable content items not showing up in admin list, Overridden shape not getting statically typed model as Model, User name in comments is escaped twice, Admin container editor title gets escaped twice, Admin menu item's name gets escaped twice, The list of actually used, overridden stylesheets is not accessible, Autocomplete tags, Make Comments module dynamically build editors and displays, Token configuration of title generation, Only show Dashboard link in User.cshtml if the user has permission to access it, Admin menu item's name gets escaped twice, When libs get updated the Dependencies folder can get outdated, 1.4 source contains repo metafiles)
- A fentiek közül a "Language attribute burnt into Document shape", "Autocomplete tags", "The list of actually used, overridden stylesheets is not accessible", "User name in comments is escaped twice" és "Containable content items not showing up in admin list" issue-khoz patchet is beküldtünk.
- A Vandelay Industries modul Tag Cloud feature-ében találtunk hibát (InvalidOperationException if there are no tags) és be is küldtünk hozzá patchet.
- A Taxonomies modulban találtunk bugot (NullReferenceException when creating term).
- Funkció-ötleteket írtunk az Advanced Menu modulhoz (Make "show on ... menu" checkbox unchecked by default; Indent submenu list items in the admin for better overview; Replacing shadow image with CSS)
- Egy új téma készült (Pretty Good Base Theme) az oldal saját témáján kívül (amit a Bertrand Le Roy által számunkra megküldött Orchardproject.net témára alapoztunk).
- Több új modul készült (Target: Blank, QnA, Shoutbox, BBCode filter/flavor, Confirm Leave...)
- Az OrchardPo (az online fordításkezelő modul) modult forkoltuk és implementáltuk a tegező és magázó fordítások kezelésének lehetőségét (a patch még elbírálás alatt van)