Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
2008 11 Sdn Magazine 99 Nick Boumans
1. SOFTWARE DEVELOPMENT NETWORK
MAGAZINE
IN DIT NUMMER O.A.:
MP3 Tags in Delphi 2009 <
Peer to Peer Applicaties met .NET Framework 3.5 <
Zeven Windows Communication Foundation Best Practices <
Portaltechnologie: SharePoint of DotNetNuke? <
The Best of Both Worlds: Modernizing Core Sytems <
Nummer 99 November 2008 SDN Magazine verschijnt elk kwartaal en is een uitgave van Software Development Network
99 www.sdn.nl
2. DOT
NET Nick Boumans
NUKE
Portaltechnologie:
SharePoint of DotNetNuke?
De keuze voor portaltechnologie is vaak snel Central Admin en Host Account
SharePoint gebruikt de Central Administration voor Farm-level
gemaakt. De keuze of men gebruik gaat
beheertaken. De “Central Admin” is een aparte webapplicatie die apart
maken van Microsoft SharePoint of DotNet- te benaderen is. DotnetNuke kent het “Host” -account waarmee extra
Nuke (DNN) ligt vaak minder voor de hand. Is privileges worden verkregen na het authenticatieproces. Inloggen kan
echter direct op de portal.
de keuze eenmaal gemaakt, dan twijfelt men
later vaak of wellicht toch het andere product
het voordeel van de twijfel had moeten krijgen.
Of men kiest deels uit onwetendheid: men kent
of SharePoint of DNN. Als SharePoint specia-
list heb ik recent kennis gemaakt met de
mogelijkheden van DotNetNuke. De kennis die
ik hierbij heb opgedaan is voor mij van cruciale
waarde om keuzes in de toekomst beter te
verantwoorden. In dit artikel zal een aantal
overeenkomsten c.q. verschillen van beide
producten in kaart worden gebracht. Doel hier-
van is het verbreden van uw inzichten in deze
producten die u kunnen helpen bij het Fig. 1: SharePoint Central Administration
beantwoorden van de veelgestelde vraag:
Toevoegen van Custom WebParts en Modules
SharePoint of DotNetNuke? SharePoint kent een tool die Stsadm.exe heet. Met deze command-
line tool is het o.a. mogelijk om custom WebParts te deployen en
Een Portal is een Gateway beschikbaar te maken op een website. Dergelijke deployment gebeurt
doorgaans middels een Windows Solution Package (.WSP). Een
waarmee leden toegang solution package is een gecomprimeerd bestand met daarin de
functionaliteiten. Een of meer XML bestanden beschrijven waar de
hebben tot bedrijfsinformatie bestanden uit de .WSP file geplaatst dienen te worden. Het maken en
deployen van een solution file vereist redelijke SharePoint kennis.
SQL Server Database Deployment is voor veel developers en bedrijven dan ook een bottle-
Beide producten maken gebruik van intuïtieve Microsoft technologie en neck. De solution package dient gedeployed te worden naar de
beide gebruiken SQL Server als database. DotNetNuke kan overigens webserver(s). Bij gebruik van stsadm.exe kan dit niet gedaan worden
ook op een andere database werken, maar alleen SQL Server wordt via de webbrowser. In een organisatie betekent dit vaak het
standaard ondersteund. Tevens kunnen zowel SharePoint als DNN inschakelen van een beheerder met voldoende rechten.
uitgebreid worden door gebruik te maken van .NET-development.
Zowel SharePoint als DotNetNuke gebruiken dus SQL Server voor de Modules voor DotNetNuke kunnen via de webbrowser worden
opslag van data. Een belangrijk verschil is echter dat we de Share- toegevoegd. Voor het bouwen hiervan is uiteraard DNN-kennis
Point contentdatabase enkel en alleen mogen benaderen via het vereist. Het packagen van een module (.zip-file) vraagt over het
SharePoint interface (een site) of via het objectmodel (door te algemeen echter minder expertise dan het maken van een Solution
programmeren). DotNetNuke heeft een datamodel dat eventueel direct Package voor SharePoint.
benaderbaar is. Zo kan men vrij snel in DotNetNuke direct in de Het nadeel van DotNetNuke ten opzichte van SharePoint op dit vlak
database een portal-url aanpassen. In SharePoint is dit “helaas” niet
FULL-COLOUR is, dat DNN-modules alleen binnen DNN gebruikt kunnen worden.
mogelijk. SharePoint WebParts kunnen gebruik maken van twee base classes:
50 cyaan 50 zwart
100 geel 15 cyaan
SOFTWARE DEVELOPMENT NETWORK BEELDMERK
Tevens is het met beide producten mogelijk om door middel van maat- SharePoint WebPart of ASP.NET WebPart. WebParts gebaseerd op
werk SOFTWARE DEVELOPMENT NETWORK een andere database. Dit hoeft dan ook
gebruik te maken van de ASP.NET base class kunnen ook in ASP.NET-sites worden gebruikt.
niet per definitie SQL Server te zijn. Deze “extra” database kan echter SharePoint specifieke WebParts kunnen gebruikt worden in systemen
niet gebruikt worden als vervanging voor de installatie database!
SOFTWARE DEVELOPMENT NETWORK
SOFTWARE DEVELOPMENT NETWORK
die gebruik maken van Windows SharePoint Services. Hierbij kan men
SOFTWARE DEVELOPMENT NETWORK DIVISIES
SOFTWARE DEVELOPMENT NETWORK
CONFERENCE
42 SOFTWARE DEVELOPMENT NETWORK
MAGAZINE
EVENTS
3. DOT
NET
NUKE
bijvoorbeeld denken aan Project Server. manier. Bij SharePoint is dit niet standaard. Het is uiteraard wel
Een ASP.NET WebPart is weliswaar niet direct in DotNetNuke te mogelijk om meerdere talen te installeren.
gebruiken, het is wel mogelijk een module te maken waarin een
WebPart wordt “gehost”. Doorlooptijd en kosten
Over het algemeen is de tijdsduur voor het up-and-running krijgen van
een out-of-the-box DotNetNuke portal (installatie en configuratie)
korter dan die van SharePoint. Dit geldt niet alleen voor interne
hosting maar ook voor externe hosting. Wil men bij SharePoint even-
eens toegang hebben tot de stsadm.exe tool dan zal men eveneens
Fig. 2: DNN - Toevoegen van een module remote desktop toegang moeten hebben tot de webserver.
Aangezien DotNetNuke Open Source is, en een zeer liberaal
Visibility licentiemodel kent, vallen de kosten van DotNetNuke al snel lager uit.
In SharePoint kan men gebruik maken van Audience Targeting en Sharepoint heeft ook de WSS variant die gratis verkrijgbaar is bij
Security Features om bepaalde data zichtbaar te maken of juist te Windows 2003, maar deze is enigszins beperkt in functionaliteit ten
verbergen. Vaak komt het voor (vooral in WSS) dat de gebruiker meer opzichte van de grote broer MOSS 2007. Het is echter te kort door de
te zien krijgt dan hij of zij eigenlijk mag zien. bocht om te stellen dat DotNetNuke altijd goedkoper is. Deze
Bij DNN is het mogelijk om instanties van modules (dus een module die afweging kan alleen per situatie apart worden gemaakt.
op een pagina is geplaatst) te koppelen aan één of meer rollen. Per rol
kan worden aangegeven welke rechten (View, Edit, …) van toepas- Intranet v.s. extranet
sing zijn op de betreffende module. Standaard worden de rechten op Met beide pakketten is het mogelijk om zowel een intranet- als
een module geërfd van de pagina, zodat gebruikers die de pagina internetportal op te zetten. Men kan hierbij gebruik maken van
mogen zien, ook de module mogen zien. Daarnaast kunnen aan ge- verschillende authenticatiemechanismen. Of de oplossing een inter-
bruikers individuele rechten worden toegekend. Deze rechten komen net- of intranetapplicatie moet worden kan een belangrijke factor zijn
dan wel altijd bovenop de rechten die de gebruiker vanuit de aan hem bij de bepaling van de keuze voor DotNetNuke of SharePoint.
toegekende rollen heeft.
Praktijk: WebPart development vs. Module development
Scalability In de volgende paragrafen zal dieper ingegaan worden op het
DNN kan geïnstalleerd worden op één webserver en één SQL Server. development aspect van een WebPart c.q. Module. Hierbij is het
Wanneer men DotNetNuke in een webfarm of –garden zouden willen nadrukkelijk niet de bedoeling om een complete tutorial te beschrijven
laten draaien, dient men daarvoor een en ander handmatig te voor de development hiervan, maar wil ik alleen enkele verschillen of
configureren. Concreet heeft iedere DNN-installatie dus één enkele overeenkomsten schetsen. Tevens dient opgemerkt te worden dat
“DNN-database”. Wel is het mogelijk DNN meerdere malen te instal- zowel bij WebPart- als Module development meerdere wegen bestaan
leren op een server. Dit in tegenstelling tot SharePoint. SharePoint is die naar Rome leiden.
echt een serverproduct waarvan maar één instantie op een server
geïnstalleerd kan worden. Het beste kan men SharePoint dan ook zien
als een serverproduct en DNN als een ASP.NET applicatie.
WebParts en Modules voegen
In SharePoint is het mogelijk de scalability te beheren vanuit de functionaliteit toe om te voorzien
Central Administration. Het is zelfs mogelijk om bijvoorbeeld per Site
Collection een aparte contentdatabase te hebben. Tevens kent in de bedrijfsbehoefte
SharePoint Features als Enterprise Search en Single Sign-on.
We kunnen zelfs gebruik maken van een aparte Search en Indexing SharePoint: WebPart Development
server. Hierbij kan men gebruik maken van uitgebreide indexeeropties. De eenvoudigste manier om een WebPart te ontwikkelen is door
DotNetNuke stelt hier tegenover dat veel performance gerelateerde gebruik te maken van “WSS extensions for Visual Studio”. Deze
instellingen via het Host-menu kunnen worden geconfigureerd en dat extensies voor Visual Studio zijn zowel voor Visual Studio 2005 als
standaard onderdelen zoals de zoek- en indexeermogelijkheden met 2008 beschikbaar als download op de site van Microsoft.
maatwerk of software van derden kunnen worden aangepast. Na het installeren van deze extensies hebben we binnen Visual Studio
de beschikbaarheid over een aantal extra project templates. Een hier-
Office-Integratie en Multi-Language van is het SharePoint WebPart.
SharePoint is heel sterk in Office integratie (MOSS 2007: Microsoft
Office SharePoint Server 2007). Bij DotNetNuke ontbreekt dit eigenlijk.
Zo is het met Infopath Forms Services mogelijk om in een handom-
draai een professioneel formulier te maken wat ingevuld kan worden
door de gebruiker. De data kan opgeslagen worden in o.a. een
SharePoint lijst.
Een ander voorbeeld is integratie met Outlook. Bij gebruik maken van
een workflow kan een taak gecreëerd worden in een takenlijst. Deze
taak kan zichtbaar worden in de Outlook-takenlijkst van de gebruiker.
Hier staat tegenover dat Multi-Language standaard is bij DotNetNuke.
Dit is al sinds begin 2005 geïmplementeerd op de standaard ASP.NET
SharePoint is heel sterk in Office inte-
gratie; hier staat tegenover dat Multi- Fig. 3: De beschikbare templates in VS2008 na installatie van WSS
Language standaard is bij DotNetNuke Extensions for Visual Studio
magazine voor software development 43
4. DOT
NET
NUKE
Na de keuze voor “WebPart” ziet ons Visual Studio project er als volgt
uit:
Bij de referenties in het project kan
men zien dat een referentie is toege-
voegd naar de Microsoft.Share-
Point.dll. Dit is slechts een van de
vele dll’s die gebruikt kunnen worden
voor SharePoint development. Sha-
rePoint objecten beginnen met “SP”
(SharePoint). Een lijst heet dus binnen
SharePoint een SPList, dit in vergelij-
king met een generic list. Door de
toevoeging van SP voor een object-
naam zijn objecten voor .NET deve-
lopers eenvoudiger te herkennen. Fig. 5: Bij DotNetNuke worden diverse projecttemplates
Door een naamconventiefout zorgen meegeleverd in de starterkit
de SPSite- en SPWeb objecten
echter vaak voor verwarring: Conclusie
• SPSite geeft toegang tot de top-level site (dit is een collection) Aangezien iedere oplossing andere requirements heeft, zal steeds
• SPWeb geeft toegang tot de pagina (hier zou men wellicht SPSite overwogen moeten worden voor welk product we kiezen. Veel
verwachten) mensen neigen bij bijvoorbeeld een webshop meer naar DotNetNuke,
terwijl bij een enterprise intranet, waarbij Office-integratie een grote rol
Binnen een webpart kan men op de volgende manier toegang krijgen speelt, SharePoint de voorkeur verdient.
tot de pagina (SPWeb): Scalability kan een belangrijk kwaliteitsaspect zijn. Door de huidige
situatie te bekijken waar de applicatie aan dient te voldoen en wat de
SPSite siteCollection = SPContext.Current.Site; verwachting is over 5 jaar (bijv. omvang gebruikers- en site-toename)
SPWeb site = SPContext.Current.Web; kan men een goed beeld krijgen van de vereiste scalability. Hierbij dient
men te voorkomen dat de huidige keuze DNN is en over 5 jaar
Listing 1: Het benaderen van een webpagina (SPWeb) vanuit een SharePoint (of vice versa).
WebPart Een valkuil die men vaak ziet is dat een definitieve keuze gemaakt is
voor DotNetNuke of SharePoint binnen een organisatie en dat men
Door in de Project Properties de juiste url op te geven bij “Start Brow- met dit product “alle” problemen probeert op te lossen. Heel
ser With Url” kan met één druk op F5 gedeployed worden naar een geforceerd tracht men oude applicaties in dit product te verweven.
development server. Als het goed is, is het WebPart nu beschikbaar in Uiteraard kan het allemaal wel, maar men moet zich wellicht de vraag
de WebPart Gallery en klaar voor gebruik. Het maken van een stellen: “is dit de beste oplossing voor deze situatie?”.
uitgebreider Solution Package en deployment binnen bijvoorbeeld een
OTAP omgeving vergt uiteraard meer kennis en kunde dan enkel en Links:
alleen een druk op F5. Debuggen is mogelijk door de debugger te • Blog Nick Boumans: www.SharePointDevelopment.nl
attachen aan het juiste W3WP proces. • WSS Extensions for Visual Studio: www.microsoft.com/
Naast de WSS Extensions gebruiken developers vaak tools van downloads/details.aspx?FamilyID=7bf65b28-06e2-4e87-9bad-
CodePlex om WebParts en Windows Solution Files te maken. Veel 086e32185e68&displaylang=en
gebruikte tools zijn: STSDEV, WSPBuilder en SharePoint Solution • Microsoft Office SharePoint Server 2007 VHD: http://www.
Installer. microsoft.com/downloads/details.aspx?FamilyID=67f93dcb-
ada8-4db5-a47b-df17e14b2c74&DisplayLang=en
DotNetNuke: Module Development • www.codeplex.com/sharepointinstaller
Om een DotNetNuke Module te ontwikkelen kan men als vergelijkbare • www.codeplex.com/wspbuilder
stap met de WSS Extensions for Visual Studio gebruik maken van de • www.codeplex.com/stsdev •
starterkit van DotNetNuke. Deze bevat eveneens een aantal project
templates. Hiermee is een ontwikkelaar snel op het juiste spoor gezet.
Aangezien DotNetNuke “gewoon” een ASP.NET applicatie is, kan het Nick Boumans
maatwerk worden gedebugged vanuit Visual Studio en zijn er op de
ontwikkelmachine geen extra installaties nodig. Met DotNetNuke kan Nick Boumans is MOSS 2007
een ontwikkelaar al aan de slag met louter de (gratis) Express-edition Technology Specialist en Enterprise
producten van Microsoft. Application Developer bij Giraffe IT.
Een belangrijke keuze bij het maken is of men een module wenst te
maken die gecompileerde bestanden bevat of een dynamic module.
Bij een dynamic module worden de bronbestanden als het ware
gecompileerd op de server: dat laten we dan over aan ASP.NET.
In tegenstelling tot een WebPart die meestal als Windows Solution File
gedeployed zal worden, is de module file een .zip-bestand. Vanuit onze
FULL-COLOUR
DNN development omgeving kunnen we deze .zip-file laten genereren
50 cyaan 50 zwart
100 geel 15 cyaan
SOFTWARE DEVELOPMENT NETWORK BEELDMERK
inclusief een configuratiefile. Hierbij is er de keuze voor het maken van
een module met of NETWORK bronbestanden. Het gecrëeerde zip-
SOFTWARE DEVELOPMENT
zonder
bestand kan vervolgens direct toegevoegd worden aan een DotNet-
Nuke site. SOFTWARE DEVELOPMENT NETWORK
SOFTWARE DEVELOPMENT NETWORK
SOFTWARE DEVELOPMENT NETWORK DIVISIES
SOFTWARE DEVELOPMENT NETWORK
CONFERENCE
44 SOFTWARE DEVELOPMENT NETWORK
MAGAZINE
EVENTS