• home
    • news & events
    • blog
  • über uns
    • projekte und referenzen
    • partner
    • produkte & technologien
    • offene jobs / stellen
    • veröffentlichungen
  • dienstleistungen & services
    • software design & architektur
    • software entwicklung
    • beratung / consulting
    • training, kurse und workshops
  • angebote
    • quick-starts
    • trainings und kurse
    • modulare sharepoint 2010 workshops
  • kontakt
Wir bieten SharePoint und .NET
Kompetenz, Erfahrung und Know-How:
"1stQuad guaranteed."
Diesen Blog abonnieren
Subscribe in NewsGator Online Add to My AOL
Add to Google Reader or Homepage Add to netvibes

Aktuelle Posts

Quick-Tipp: Publishing Site Settings
Update: Dynamisches Wiki Inhaltsverzeichnis
Chart Part für SharePoint 2010
SharePoint Content DB Migration -> Access denied
Konfigurieren von „Gefällt mir“ und Kategorien und Notizen

Archiv

Januar 2012 (4)
Dezember 2011 (2)
November 2011 (10)
September 2011 (3)
August 2011 (7)
Juli 2011 (1)
Juni 2011 (3)
Mai 2011 (6)
April 2011 (5)
März 2011 (8)
Februar 2011 (8)
Januar 2011 (4)
Dezember 2010 (5)
November 2010 (7)
September 2010 (6)
August 2010 (2)
Juli 2010 (11)
Juni 2010 (13)
Mai 2010 (11)
April 2010 (4)
März 2010 (6)
Februar 2010 (2)
Januar 2010 (6)
Dezember 2009 (4)
November 2009 (13)
Oktober 2009 (17)
September 2009 (2)
Juli 2009 (2)
März 2009 (2)
Januar 2009 (1)

1stQuad ist Microsoft Certified Gold Partner und bietet SharePoint und .NET Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist MatchPoint Partner und bietet MatchPoint Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist Nintex Partner und bietet Nintext SharePoint Workflows Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist Balesio Gold Partner und bietet SharePoint FILEMinimizer Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad Solutions ist Kentico Certified Solution Partner und bietet Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
© 2011 1stQuad Solutions
Alle Rechte vorbehalten
> Impressum
Wir bieten Microsoft SharePoint und .NET Projekt- und Produkt-Know-how, Kompetenz und Erfahrung für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Zürich, Bern, Basel, Schweiz sowie Deutschland und Östereich.

Blog > Oktober 2009

Tip für Produktivitätssteigerung für SharePoint Entwicklung

Entwicklung unter SharePoint kann bisweilen recht mühsam sein: Eigenheiten des Objekt- oder Sicherheitsmodells, CAML Queries und vieles mehr können einem das (Entwickler-)Leben schwer machen, speziell wenn man in grösseren Projekten arbeiten und jeweils umfangreiche Assemblies oder sogar Solutions deployen muss um zu testen. Mit diesem Beitrag möchte ich einen Weg aufzeigen, wie ich mittels HttpHandler schnell und pragmatisch Funktionen teste um sie dann in mein Projekt einzubauen.

Veröffentlicht am 19.10.2009 01:47:48 von Michael Hofer mit 0 Kommentar(en)

In den seltensten Fälle habe ich Probleme mit der Implementation meiner Klassen. Nicht weil ich so guten Code schreiben würde, aber meist ist es doch einfach so, dass gerade die SharePoint API Aufrufe nicht immer genau so reagieren, wie ich mir das wünschen würde. Um diese aber testen zu können, brauche ich die SharePoint-Umgebung und meist muss diese auch genau so vorkonfiguriert oder mit Daten gefüllt sein wie die Zielumgebung. Also muss das Testsystem gebraucht werden - und die Fehlersuche gestaltet sich dann meist in einer eher mühsamen "deploy - wait - debug - change - deploy etc." Orgie.

In letzter Zeit habe ich aber immer öfter mit einem kleinen "Trick" gearbeitet: Ich teste meine Funktionen mittels eines HttpHandlers. Das ist recht einfach zu machen, bedingt aber dass ich Remote-Zugriff auf den FrontEnd-Server habe und ich sicherstellen kann, dass meine Test-Aufrufe immer auf diesen Server kommen (im Falle von Load Balancing in grösseren Farmen). Dann baue ich mir einfach einen kleinen HttpHandler nach folgendem Muster: Gehe ins entsprechende Verzeichnis unter 12\TEMPLATE\LAYOUTS und mache ein "Custom" oder "Test" Unterverzeichnis und lege eine neue Datei an, z.B. "Test.ashx". Der Inhalt der Datei sieht im Skellet folgendermassen aus:

<%@ WebHandler Language="C#" Class="CustomFormHandler" %>    
<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>  
<%@ Assembly Name="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>  
 
using System;
using System.Collections.ObjectModel;
using System.Web;
using System.Collections.Generic;
using System.Net;
using System.Data;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Publishing;
 
public class CustomFormHandler : IHttpHandler
{
  
    public void ProcessRequest(HttpContext context)
    {
        SPWeb web = SPContext.Current.Web;
        // Test:
       context.Response.Write(web.Title);
    }
 
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}
 
Der Code ist sehr einfach zu erklären: mit der <%@ Assembly Seiten-Direktive kann ich beliebige Assemblies einbinden und dann mit den usings oder direkt im Code verwenden. Da der Code "inline" geschrieben wird, brauche ich nicht zu kompilieren und eine DLL zu deployen. Und wenn auf dem Test-FrontEnd sogar Visual Studio installiert sein sollte habe ich das volle Intellisense zur Verfügung.

Nun kann ich meinen HttpHandler bereits aufrufen - und zwar von jedem beliebigen SharePoint-Web, in welche ich testen möchte über http://<pfad-zum-web>/_layouts/custom/test.ashx. Jedesmal, wenn ich eine Code-Änderung on-the-fly vornehme, zeigt mir der Handler sofort die Änderung an - kein kompilieren, kein Warten auf den ApplicationPool nach einem Recycling - einfach nur schnelle Resultate um ein Problem zu lösen oder auf die Schnelle einen SharePoint API-Aufruf zu testen und dann später in die grosse Lösung einzubauen.

Natürlich kann das selbe Verfahren auch mittels WebUserControl oder sogar mit einer ASP.NET Seite gemacht werden. Ich aber ziehe aufgrund der Unabhängigkeit und Performanz des HttpHandlers diese Variante vor.

Kommentar
Dieser Blog-Eintrag wurde noch nicht kommentiert.
Kommentar hinterlassen



 Security code
Zurück, Seite drucken