SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
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
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
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
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

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
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