• 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 > November 2009

JQuery oder AjaxControlToolkit: Eine klare Sache

In einem grossen SharePoint 2007 Entwicklungsprojekt haben wir uns dazumal für die Verwendung von JQuery und des AjaxControlToolkits als JavaScript-Bibliotheken entschieden. Dieser Beitrag schaut zurück auf Erfahrungen im Umgang mit diesen beiden „Ajax“-Bibliotheken und zeigt auch mein persönliches Fazit auf.

Veröffentlicht am 03.11.2009 01:03:05 von Michael Hofer mit 0 Kommentar(en)

Um moderne Benutzeroberflächen bereit zu stellen braucht es heute mehr als nur die Standard-Controls von ASP.NET. Asynchrone (Teil-)Postbacks, dynamisches Laden von Daten, komplexe modale Popups und vor allem auch Client-Seite Verarbeitung von Logik und Darstellungsänderungen sind heute längst etabliert. Im Rahmen eines grossen Entwicklungsprojektes haben wir uns deshalb dafür entschieden, die OpenSource Bibliothek JQuery sowie das von Microsoft und der Microsoft ASP.NET Community getrieben AjaxControlToolkit einzusetzen.
JQuery haben wir für Manipulationen des HTML-DOMs auf dem Client vorgesehen, die Controls und Extender des AjaxControlToolkits für die server-seitige Verwendung in WebControls. Die Wahl fiel auf das AjaxControlToolkit, weil es für ASP.NET Entwickler enorm einfach ist, die Komponenten und Extender in eigenen Controls einzusetzen: Diese können genau gleich wie „normale“ Server-Controls im Code oder im Markup eingesetzt werden und stellen sofort Ihre Funktionalität zur Verfügung. JQuery wurde am Anfang sehr spärlich eingesetzt, da dies für viele Entwickler eine ziemlich neue „Technologie“ war.
Interessant war dann allerdings die Entwicklung innerhalb des Projektes: Mit dem AjaxControlToolkit sind wir sehr schnell einmal auf offensichtliche Limiten und z.T. auch Fehler im JavaScript-Code gestossen. Was soll man aber nun tun mit einem Produkt, welches über grosse und unübersichtliche JavaScript-Bibliotheken verfügt und deren Source man nicht einfach beliebig abändern sollte um Update-Fähig zu bleiben? In der folgenden Liste möchte ich kurz zusammenfassen, auf welche Probleme wir gestossen sind:
-          Z-Index Probleme: Aufgetreten beim Kalender und beim ModulDialogPopupExtender: Gewisse Elemente der Seite wurde nicht dem Ajax-Control untergeordnet, als Entwickler hat man kaum/keinen Einfluss auf die Darstellung der Controls und wir haben maximal unelegante Workarounds im Internet gefunden.
-          Page Output Caching wird nicht unterstützt: Microsoft unterstützt gemäss unseren Recherchen im Web kein Page Output Caching für Seiten mit Controls oder Extendern des AjaxControlToolkits. Für dies kann Dank des ToolkitScriptManagers ein Workaround gemacht werden (laden der Scripts von einem anderen URL/HttpHandler).
-          Kaum Einfluss auf Scripts zur Laufzeit: Die Controls und Extender des AjaxControlToolkits werden server-seitig vorkonfiguriert, die JavaScripts, welche auf dem Client zum Einsatz kommen können aber nur sehr mühsam in Ihrer Funktionalität angepasst werden.
-          Grosse, unübersichtliche und z.T. offensichtlich fehlerhafte JavaScripts. Das AjaxControlToolkit ladet im Vergleich zur effektiven Funktionalität der einzelnen Controls und Extender sehr umfangreiche JavaScript Bibliotheken. Schlimmer noch: Diese werden in verschienen Request einzeln geladen, wenn man nicht durch Verwendung des ToolkitScriptManager und eigenem Code einen ScriptCombiner bereitstellt.
-          „Schwere“ Seiten: Der JavaScript Code, welcher die Funktionalität der einzelnen Controls ermöglicht wird direkt in die Seite geschrieben. Dies erhöht die Grösse der einzelnen Seiten beträchtlich und verschlechtert so die Ladezeiten.
Alles in allem haben wir uns bei der Verwendung der AjaxControlToolkit Controls und Extendern je länger je schwerer getan. Es war wie sehr oft mit neuen Microsoft Komponenten: Am Anfang geht es rasend schnell bis man etwas zusammen hat, aber der Teufel liegt im Detail und dem verdanken wir im Nachhinein grossen Zusatzaufwand (Fehlersuche, ScriptCombiner, PageOutputCaching Workaround) und z.T. unlösbare Probleme – welche wir schlussendlich mit JQuery fast im Handumdrehen lösen konnten.
Damit sei das Fazit meines Beitrags auch schon vorneweg genommen. JQuery kam im Laufe des Projekts immer mehr zum Einsatz: Am Anfang waren es kleine Scripts, welche etwa eine CSS-Klasse dynamisch setzten, später kamen mehr und mehr Plugins und vor allem die Verwendung der JQuery UI Bibliothek hinzu. Mehr und mehr AjaxControlToolkit Controls und Extender mussten weisen, denn nach anfänglichen Schwierigkeiten hat sie die Arbeit mit JQuery als äussert einfach und enorm produktiv herausgestellt. Dies sind die Vorteile die ich im Einsatz von JQuery sehe:
-          Schlanke (Grund-)Bibliothek mit mächtigem Funktionsumfang und kaum Fehlern
-          Unzähligen Plug-Ins und AddOns.
-          Gute Dokumentation und viele Beispiele
-          Scripts lassen sich in separate JavaScript-Dateien auslagern, komfortable Selektoren und vor allem Bindings erlauben das „Andocken“ an allen möglichen DOM-Elementen zur Laufzeit und auch nach asynchronen Postbacks.
-          Volle AJAX-Requests Unterstützung mit JSON etc.
-          Page Output Caching wird implizit unterstützt
Mit JQuery lassen sich auch komplexeste Funktionen in sehr kurzer Zeit ohne viel JavaScript-Code realisieren und Dank den Plug-Ins, z.B. der JQuery UI Bibliothek lassen sich auch komplexere „Controls“ wie ein Akkordion oder modale Popups einfachst implementieren. Der wohl grösste Vorteil von JQuery liegt aber nicht nur darin, dass die fast vollständige Kontrolle über die client-seitig ausgeführten Scripts hat, sondern dass man die Seite nicht mit zusätzlichem Overhead belasten muss und „sauberes“ HTML schreiben kann: Werden Css-Klassen und z.B. DIV-IDs richtig gesetzt kann Dank den JQuery Selektoren einfachst mit demselben Skript in einer ausgelagerten Datei Funktionalität für eine seiten-übergreifend bereitgestellt werden.
Da wir verschiedene Plub-Ins verwenden haben wir auch einige JavaScript-Dateien in den Client hochzuladen. Hierfür verwenden wir einen ScriptCombiner (und –Komprimierer), so dass immer nur eine Datei heruntergeladen und client-seitig gecached wird.
Alles in allem empfehle ich deshalb aufgrund der gemachten Erfahrungen im letzten halben Jahr, JQuery als erste Wahl auch bei der Entwicklung von SharePoint Lösungen in Betracht zu ziehen. Von der Verwendung des AjaxControlToolkits hingegen rate ich aufgrund der oben genannten Gründe eher ab.

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



 Security code
Zurück, Seite drucken