Zoals is te lezen ben ik onlangs overgestapt naar Orchard als blogging platform. Qua interface en beleving bevalt het me tot nu toe prima. Het is een redelijk snel platform en laat zich eenvoudig installeren, mede dankzij het WebMatrix platform van Microsoft.

Hoewel de installatie redelijk goed ging, waren er toch enkele haken en ogen die ik tegen kwam. Om deze reden beschrijf ik de genomen stappen even stuk voor stuk.

Ten eerste moet WeMatrix worden opgestart. Op het startscherm kan dan worden gekozen voor de optie Site From Web Gallery, we willen immers een Orchard site maken en dat is een type site dat door WebMatrix wordt ondersteund. Uiteraard kan er ook voor een Joomla, WordPress, Umbraco of ander systeem worden gekozen.

image

Zodra het vervolgscherm is geladen zoeken we naar het Orchard template.

image

Na het invullen van de site naam kan er op Next worden gedrukt. Door in het vervolgscherm op I Accept te drukken zal het template worden gedownload en de site worden aangemaakt. Dit wordt bevestigd in nog een vervolgscherm.

image

Uiteindelijk zul je in een WebMatrix scherm verschijnen waar eigenlijk alles in kan worden beheerd. De interface biedt (nog) niet enorm veel opties, maar op zich voldoende om mee uit de voeten te kunnen.

image

Wanneer je op de link klikt van de aangemaakte site zul je in een soort startscherm verschijnen waar de initiele configuratie plaats kan vinden.

image

Behalve de site een naam te geven en het administrator account aan te maken, dient hier ook het type SQL database te worden gekozen. Hier kan standaard een SQL Server Compact of een ‘echte’ SQL Server worden gekozen.

Omdat SQL Server Compact nieuw en hip is wilde ik m’n weblog eerst daarmee draaien. Het biedt ook gelijk als voordeel dat je dan bij iedereen de site kunt hosten, omdat ze geen MS SQL (Express) ondersteuning hoeven te installeren.
Tijdens de installatie en configuratie van het weblog werkte alles prima en snel. Echter toen ik de site bij m’n hoster had geplaatst begonnen de problemen. Er kwamen continu Yellow Screens of Death tevoorschijn welke te maken hadden met het feit dat het bestand van SQL Server Compact reeds in gebruik was, waardoor er niet nogmaals een connectie naar kon worden gemaakt. Dat is natuurlijk niet de bedoeling bij een database, zeker niet een van een website. Dit heeft waarschijnlijk meer te maken met de opzet van de servers bij de hosting partij en niet iets met SQL Server Compact, maar was voor mij toch de reden waarom ik ben overgestapt naar MS SQL Express. Ik zou dan ook aan iedereen aan willen raden om een gewone SQL Server te gebruiken en niet de compact versie, tenzij daar een goede reden voor is.

Mocht je later toch besluiten om over te stappen naar een andere database, dan kan dit ook redelijk eenvoudig. In de map App_Data\Sites\Default van je website is een bestand te vinden genaamd Settings.txt. Wanneer je gebruik maakt van SQL Compact, dan staat hier iets in als:

Name: Default
DataProvider: SqlCe
DataConnectionString: null
DataPrefix: null
RequestUrlHost: null
RequestUrlPrefix: null
State: Running
EncryptionAlgorithm: AES
EncryptionKey: 22222222222222222222222222222222222222222222222222222222222222222
HashAlgorithm: ACSHA256
HashKey:22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

Wanneer je overstapt naar een SQL Server, dan kan de tekst SqlCe worden vervangen met SqlServer en moet de null bij DataConnectionString worden vervangen met een valide connectiestring naar de Orchard database.

Wat wel vervelend is bij een migratie van SQL Server Compact naar SQL Server (Express) is dat zowel Management Studio als Visual Studio 2010 momenteel nog geen ondersteuning bieden voor de Compact variant. Dit wordt hopelijk met Servicepack 1 opgelost. Gelukkig zijn er wel anderen die hier een oplossing voor hebben gemaakt. Zo is er tegenwoordig de SQL Server Compact Toolbox te vinden op CodePlex. Deze heb ik dan ook gebruikt om scripts te genereren tussen een gevulde Orchard en een lege database. Nadat ik die synchronisatie had uitgevoerd heb ik de connectiestring in de Settings.txt aangepast.

Wanneer alles echter gelijk goed werkt, dan heb je al een website die redelijk netjes oogt.

image

In de Dashboard kan redelijk veel worden aangepast. Tijdens het gebruik mis ik toch wel het een en ander en vind het zelf ook enorm lastig dat er meerdere malen dezelfde term in het menu wordt gebruikt (onder een ander kopje), maar dat zal er alles mee te maken hebben dat het een relatief nieuw product is en nog volop in ontwikkeling.

image

Zodra de website eenmaal klaar is om te worden gepubliceerd, dan kan er via de WebMatrix manager (zo noem ik het maar) voor worden gekozen om dit te doen.

image

Er kunnen dan 2 methoden worden gekozen, Web Deploy en FTP, vergelijkbaar als in Visual Studio. De deployment via Visual Studio is echter wel een stuk geavanceerder. Bij WebMatrix betekend een publish gewoon het copy-pasten van de lokale map naar de remote locatie. Zelf had ik toch verwacht dat er nog enige encryptie zou plaatsvinden in de web.config, de pdb-bestanden zouden worden uitgeruimd, de web.config op debug=false worden gezet en allerlei van dit soort kleine acties. Dit is jammergenoeg niet het geval.

Omdat ik eerst had gekozen om gebruik te maken van een SQL Compact database, moest ik de schrijfrechten in de App_Data map binnen de website aan zetten. Blijkbaar staat dit standaard uit bij m’n hoster. Nadat ik dat had gedaan kon ik in ieder geval lezen en schrijven in de database, ware het niet dat ik eerst nog enkele andere problemen op moest lossen.

Het eerste scherm dat ik zag toen ik de website had gedeployed was dat er een dll niet kon worden gevonden. Dit waren er niet 1 of 2, maar een stuk of 8. Blijkbaar konden die lokaal wel ergens worden gevonden, maar niet bij de hoster.
Uiteindelijk heb ik de broncode van Orchard maar van CodePlex gedownload en de volledige bin en App_Data map gekopieerd naar de remote locatie. Daarna had ik in ieder geval geen problemen meer met het vinden van de juiste dll’s.

Het volgende probleem kwam toen naar voren:

image

Een Access is Denied melding bij het bezoeken van de website. Dit blijkt voort te komen uit het feit dat Orchard gebruik maakt van dynamic coupling van assemblies die binnen de App_Data map staan. De reden die ik hiervoor had gevonden is dat er dan gebruik gemaakt kan worden van verschillende versies van een assembly binnen dezelfde site. Wanneer je de dll’s in de bin-map stopt wordt er altijd met die versie gewerkt.
De reden voor de Access is Denied melding zou zijn dat er geen voldoende (schrijf)rechten zouden zijn binnen de App_Data map. Dit vond ik nogal raar, aangezien ik dat al aan had gezet voor de database. Aangezien het ook zo zou kunnen zijn dat er problemen waren bij de hoster heb ik een ‘tijdelijke’ oplossing gevonden.

Alle bestanden die in de map App_Data\Dependencies staan heb ik gekopieerd naar de bin-map. Daarna werkte de site weer prima en nog redelijk snel ook.

Dit waren de bevindingen tot nu toe. Hopelijk heeft iemand er wat aan.

comments powered by Disqus