<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Communardo Techblog</title>
	<atom:link href="http://www.communardo.de/home/techblog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.communardo.de/home/techblog</link>
	<description></description>
	<lastBuildDate>Wed, 10 Mar 2010 18:30:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Eindr&#252;cke vom dotnetpro CCD-Powerday</title>
		<link>http://www.communardo.de/home/techblog/2010/03/10/eindruecke-vo-ccd-powerday/</link>
		<comments>http://www.communardo.de/home/techblog/2010/03/10/eindruecke-vo-ccd-powerday/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 18:20:31 +0000</pubDate>
		<dc:creator>Martin Hey</dc:creator>
				<category><![CDATA[Unsortiert]]></category>
		<category><![CDATA[CCD]]></category>
		<category><![CDATA[München]]></category>
		<category><![CDATA[PowerDay]]></category>
		<category><![CDATA[Termin]]></category>

		<guid isPermaLink="false">http://www.communardo.de/home/techblog/?p=3354</guid>
		<description><![CDATA[<img alt="mhy" src="http://www.gravatar.com/avatar.php/b2628bda407a7ae43f62dd191beb6335/?s=76" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/mhy/" title="Artikel von Martin Hey">Martin Hey</a><p>Was macht eigentlich einen professionellen Software-Entwickler aus? Mit dieser Frage starten <a href="http://www.ralfw.de" target="_blank">Ralf Westphal</a> und <a href="http://www.lieser-online.de/" target="_blank">Stefan Lieser</a> gern, wenn sie erkl&#228;ren, worum es bei der <a href="http://www.clean-code-developer.de/" target="_blank">Clean-Code-Developer-Initiative</a> eigentlich geht. Und auch genau mit dieser Frage startete die Keynote des dotnetpro Powerdays zum Thema CCD, der am 09.03.2010 in M&#252;nchen die Einleitung zu einem dreit&#228;gigen Workshop bot. Und die Antworten aus dem Publikum sind sehr reichhaltig: &#8220;Man hat Spa&#223; daran, guten Code zu schreiben&#8221; und &#8220;Man hat Erfahrung.&#8221; h&#246;rt man aus der einen Richtung, &#8220;Jemand ist bereit, einem f&#252;r ein Programm Geld zu geben&#8221; und &#8220;Man schreibt Code den andere verstehen&#8221; aus der anderen Richtung. Letztenendes ist klar: Dies sind nicht die Kriterien f&#252;r einen professionellen Softwareentwickler, sondern Professionalit&#228;t aus dem Blickwinkel von CCD ist eine Mischung aus Bewusstheit und Prinzipien. Mit viel Witz und mehren verschenkten Mausmatten als Belohnung f&#252;r interessante Antworten f&#252;hren die beiden durch die Keynote und bringen so jedem das Thema n&#228;her.</p>
<p>Mit einem kleinen Ausflug in die Softwarearchitektur und einer Betrachtung von Test Driven Development geht der Tag weiter. Klar ist, die beiden wissen was sie r&#252;berbringen wollen und vertreten da auch ihre Meinung recht konsequent. Aussagen wie &#8220;Wozu brauche ich einen Debugger &#8211; meine Tests zeigen mir doch, wo der Fehler ist&#8221;, &#8220;Zum Erstellen einer Softwarearchitektur braucht man keine Tools &#8211; nur ein Flipchart&#8221; sorgen daf&#252;r, dass selbst langj&#228;hrige und erfahrene Entwickler das Problem mal aus einer anderen Richtung betrachten &#8211; und wenn uns jemand nach einer Software-Architektur f&#252;r ein Warenwirtschaftssystem gefragt hat, haben wir dann nicht alle mit einem einzigen &#8220;gro&#223;en Kreis mit Bubbel in der Mitte&#8221; auf dem Flipchartpapier geantwortet?</p>
<p>Nach einem Abstecher in Richtung Event Based Programming mit den Hauptakteuren &#8220;Paula Portal&#8221;, &#8220;Anton Adapter&#8221;, &#8220;Frieda Filter&#8221; und &#8220;Zacharias Z&#228;hler&#8221; bestand der Nachmittag darin, eine &#8220;Brownfield-Anwendung&#8221; im Sinne von CCD sauber zu machen. Leider musste ich nach der Ermittlung der guten und schlechten Eigenschaften der Anwendung die Veranstaltung verlassen, weil sonst mein Flieger ohne mich gestartet w&#228;re, aber ich denke das anschlie&#223;ende Refactoring der Anwendung war auch noch sehr interessant.</p>
<p>Zusammenfassend: Ja, ich mag diese Art von Stefan und Ralf, wie sie solche Veranstaltungen durchf&#252;hren, unabh&#228;ngig davon ob sie kostenfrei auf Usergroups sind oder ob sie Workshops durchf&#252;hren. Denn so wird man abseits vom t&#228;glichen Gesch&#228;ft dazu animiert, mal neue Wege einzuschlagen oder anders an ein Thema heranzugehen. Schade ist, dass es im Tagungsraum im Untergeschoss kein WLAN oder UMTS gab, denn sonst w&#228;ren einige der Spr&#252;che der beiden sicher sofort per Twitter in der virtuellen Welt gelandet.</p>
<p>Und der Ausspruch eines Teilnehmers &#8220;Ich bin der, der unbedingt hierher wollte, weil es interessant ist; mein Kollege h&#228;tte es aber eigentlich n&#246;tig gehabt, das mal mitzumachen.&#8221; zeigt, dass das Thema durchaus interessant ist, aber noch nicht alle die Notwendigkeit gesehen haben, wirklich professionell zu arbeiten.</p>
<p><a href="http://dotnet-kicks.de/kick/?url=http%3a%2f%2fwww.communardo.de%2fhome%2ftechblog%2f2010%2f03%2f10%2feindruecke-vo-ccd-powerday%2f"><img src="http://dotnet-kicks.de/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.communardo.de%2fhome%2ftechblog%2f2010%2f03%2f10%2feindruecke-vo-ccd-powerday%2f" border="0" alt="kick it on dotnet-kicks.de" /></a></p>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2010/03/10/eindruecke-vo-ccd-powerday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>February Cumulative Update (CU) 2010 f&#252;r Windows SharePoint Services 3.0 und Office SharePoint Server 2007</title>
		<link>http://www.communardo.de/home/techblog/2010/03/10/february-cumulative-update-cu-2010-fuer-windows-sharepoint-services-3-0-und-office-sharepoint-server-2007/</link>
		<comments>http://www.communardo.de/home/techblog/2010/03/10/february-cumulative-update-cu-2010-fuer-windows-sharepoint-services-3-0-und-office-sharepoint-server-2007/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 08:05:21 +0000</pubDate>
		<dc:creator>Lars Kreller</dc:creator>
				<category><![CDATA[Microsoft Sharepoint]]></category>
		<category><![CDATA[Cumulative Update]]></category>
		<category><![CDATA[Microsoft Office SharePoint Server 2007]]></category>
		<category><![CDATA[moss2007]]></category>
		<category><![CDATA[Windows SharePoint Services 3.0]]></category>
		<category><![CDATA[WSS]]></category>

		<guid isPermaLink="false">http://www.communardo.de/home/techblog/?p=3350</guid>
		<description><![CDATA[<img alt="lke" src="http://www.gravatar.com/avatar.php/197088ab20ec096e61e5009f548c454e/?s=76" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/lke/" title="Artikel von Lars Kreller">Lars Kreller</a><p>Seit dem 23.02.2010 steht das Cumulative Update Februar 2010 f&#252;r Windows SharePoint Services 3.0 und  Microsoft  Office SharePoint Server 2007 zum download bereit.<span id="more-3350"></span></p>
<p>Build#: 12.0000.6529.5000</p>
<p><span style="text-decoration: underline"><strong>WSS 3.0</strong></span></p>
<p>Hotfix Download: <a href="http://support.microsoft.com/kb/978396" target="_blank">http://support.microsoft.com/kb/978396</a></p>
<p>Folgende Hotfixes sind in diesem Paket enthalten:</p>
<ul>
<li><a href="http://support.microsoft.com/kb/978389/">978389</a> (http://support.microsoft.com/kb/978389/ ) Description of the  Windows SharePoint Services 3.0 Cumulative Update server hotfix package  (Sts-x-none.msp): February 23, 2010</li>
<li><a href="http://support.microsoft.com/kb/977731/">977731</a> (http://support.microsoft.com/kb/977731/ ) Description of the  Windows SharePoint Services 3.0 hotfix package (Sts-x-none.msp,  Wssmui-en-us.msp): December 15, 2009</li>
</ul>
<p><span style="text-decoration: underline"><strong>MOSS 2007</strong></span></p>
<p>Hotfix Download: <a href="http://support.microsoft.com/kb/978395" target="_blank">http://support.microsoft.com/kb/978395</a></p>
<p>Folgende Hotfixes sind in diesem Paket enthalten:</p>
<ul>
<li><a href="http://support.microsoft.com/kb/978392/">978392</a> (http://support.microsoft.com/kb/978392/ ) Description of the  Office SharePoint Server 2007 Cumulative Update server hotfix package  (Coreserver-x-none.msp): February 23, 2010</li>
<li><a href="http://support.microsoft.com/kb/978391/">978391</a> (http://support.microsoft.com/kb/978391/ ) Description of the  Office SharePoint Server 2007 Cumulative Update server hotfix package  (Coreserver-x-none.msp, Spswfe-x-none.msp): February 23, 2010</li>
<li><a href="http://support.microsoft.com/kb/978397/">978397</a> (http://support.microsoft.com/kb/978397/ ) Description of the  Office Project Server 2007 hotfix package (Pjsrvapp-x-none.msp,  Pjsrvwfe-x-none.msp): February 23, 2010</li>
<li><a href="http://support.microsoft.com/kb/978394/">978394</a> (http://support.microsoft.com/kb/978394/ ) Description of the  Office SharePoint Server 2007 Cumulative Update server hotfix package  (Coreserver-x-none.msp, Coreservermui-en-us.msp): February 23, 2010</li>
<li><a href="http://support.microsoft.com/kb/979180/">979180</a> (http://support.microsoft.com/kb/979180/ ) Description of the  Office SharePoint Server 2007 Cumulative Update server hotfix package  (Dlc-x-none.msp): February 23, 2010</li>
<li><a href="http://support.microsoft.com/kb/979377/">979377</a> (http://support.microsoft.com/kb/979377/ ) Description of the  Office Forms Server 2007 hotfix package (Ifswfe-x-none.msp): February 23, 2010</li>
<li><a href="http://support.microsoft.com/kb/979179/">979179</a> (http://support.microsoft.com/kb/979179/ ) Description of the  Office SharePoint Server 2007 Cumulative Update server hotfix package (MOSS  server-package): February 23, 2010</li>
</ul>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2010/03/10/february-cumulative-update-cu-2010-fuer-windows-sharepoint-services-3-0-und-office-sharepoint-server-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Balsamiq Mockups &#8211; Kritzeln mal anders oder &#8220;So freaking good&#8221;</title>
		<link>http://www.communardo.de/home/techblog/2010/03/03/balsamiq-mockups-kritzeln-mal-anders-oder-so-freaking-good/</link>
		<comments>http://www.communardo.de/home/techblog/2010/03/03/balsamiq-mockups-kritzeln-mal-anders-oder-so-freaking-good/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 16:09:18 +0000</pubDate>
		<dc:creator>Torsten Hufsky</dc:creator>
				<category><![CDATA[Microsoft Sharepoint]]></category>
		<category><![CDATA[Balsamiq]]></category>
		<category><![CDATA[Mockups]]></category>
		<category><![CDATA[Skizze]]></category>
		<category><![CDATA[Wireframe]]></category>

		<guid isPermaLink="false">http://www.communardo.de/home/techblog/?p=3323</guid>
		<description><![CDATA[<img alt="thu" src="http://www.gravatar.com/avatar.php/8743398aa3c764388e375dd2cab2b092/?s=76" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/thu/" title="Artikel von Torsten Hufsky">Torsten Hufsky</a><p>Wie werden nun diese  Sharepoint Listen gezeichnet? Wie k&#246;nnte nun der neu zu entwickeltende, spektakul&#228;re Cover Flow f&#252;r Sharepoint aussehen, den man sich gerade noch im Kopf zurecht ger&#252;ckt hat? Irgendwie muss dieser im Kopf entwickelte Prototyp nun in das Konzept &#252;bertragen werden. Sp&#228;testens an diesem Punkt steigen die meisten Consultants oder Artgenossen aus. Einige versuchen sich noch hartn&#228;ckig mit ihren Copy &amp; Paste F&#228;higkeiten (Photoshop und Co.) das gew&#252;nschte Bild zusammen zu montieren. Aber sind wir doch mal ehrlich: sch&#246;n ist das nicht.</p>
<p>Wer &#246;fters mal eine Dokumentation oder aber auch ein Fachkonzept schreibt, wird dieses Szenario wahrscheinlich nur zu gut kennen.</p>
<p>Die kleine italienisch/amerikanische Firma Balsamiq Studios hat sich auf die Flagge geschrieben, uns genau in dieser schweren Zeit der &#8220;Ideen-Illustration&#8221; zu unterst&#252;tzen. Gegr&#252;ndet und geleitet wird die kleine Firma von Giacomo &#8216;Peldi&#8217; Guilizzoni, einem Ex &#8211; Adobe Software Lead. Mehr &#252;ber die Gr&#252;ndungsgeschichte von Balsamiq kann in diesem (empfehlenswerten) <a href="http://www.balsamiq.com/blog/2008/10/14/personal-whats-your-story-why-start-balsamiq/" target="_blank">Blogpost</a> gefunden werden.</p>
<p>Wie sieht so eine &#8220;Skizze&#8221;, welche mit Balsamiq entworfen werden kann, denn nun aus?</p>
<p>[filebase:file:file=10:tpl=image_thumbnail]</p>
<p>Genau so!</p>
<p><span id="more-3323"></span>Auf den ersten Blick zu erkennen ist die liebevolle Scribble oder Kritzeloptik der erstellten Mockups (auch als WireFrames bezeichnet). Der Vorteil dieser Scribble Optik ist, dass kein Kunde auf die Idee kommen k&#246;nnte, &#8220;Sie haben das doch schon fertig&#8221; zu sagen.</p>
<p>Da der Gr&#252;nder von Balsamiq ja bekanntlich aus dem Hause Adobe stammt, ist es nicht verwunderlich, dass die Balsamiq Technologie auf Flash basiert. Das Desktop Pendant basiert dementsprechend auf Adobe AIR. Insoweit k&#246;nnte Balsamiq als plattformunabh&#228;ngig bezeichnet werden.</p>
<p><strong>Bedienung:</strong></p>
<p>[filebase:file:file=11:tpl=image_thumbnail]</p>
<p>Die Bedienung und die Oberfl&#228;che von Balsamiq sind &#228;u&#223;erst intuitiv. Die Lernkurve ist somit sehr niedrig bis vernachl&#228;ssigbar. Selbst Tastatur Shortcuts wie STRG+C oder STRG+V wurden ber&#252;cksichtigt.</p>
<p>Balsamiq verf&#252;gt &#252;ber eine gro&#223;e Bibiliothek an mitgelieferten Controls. Diese sehen durch die Bank sehr gut aus. Selbst iPhone Mockups lassen sich mit der Standard Version realisieren.</p>
<p>Wem die mitgelieferten Mockup Elemente nicht ausreichen, kann diese erweitern: Die Webseite <a href="http://mockupstogo.net" target="_blank">Mockupstogo</a> beispielsweise bietet hierf&#252;r eine F&#252;lle an Add-ons wie etwa Controls f&#252;r Sharepoint, Windows Mobile oder Facebook. Diese Erweiterungen liegen im BMML Format vor und k&#246;nnnen nur in die Desktop Variante von Balsamiq integriert bzw. ge&#246;ffnet werden.</p>
<p>Die fertigen Zeichnungen k&#246;nnen in das XML, PNG sowie PDF Format exportiert werden. In der Try-out Version sind diese noch mit einem Copyright versehen (nicht aufdringlich).</p>
<p>Die exportierten Dateien k&#246;nnen selbstverst&#228;ndlich auch wieder im Format BMML sowie XML importiert und weiter verarbeitet werden.</p>
<p>Undo sowie Redo sind m&#246;glich.</p>
<p><strong>Kompatibilit&#228;t:</strong></p>
<p>&#220;ber die Kompatibilit&#228;t von Balsamiq wurde bereits gesagt, dass es durch die Verwendung des AIR Frameworks nahezu plattformunabh&#228;ngig ist.</p>
<p>Wer Giacomo &#8216;Peldi&#8217; Guilizzoni kennt, wei&#223;, dass er ein bekennender Confluence Liebhaber ist. Deshalb darf Confluence auch auf der Liste der unterst&#252;tzten Systeme nicht fehlen.</p>
<p>Hier ein kleiner Auszug:</p>
<ul>
<li>Confluence</li>
<li>JIRA</li>
<li>FogBugz</li>
<li>XWiki</li>
<li>und die Desktop Variante</li>
</ul>
<p><strong>Preismodell und Lizenzierung:</strong></p>
<p>F&#252;r die Desktopversion von Balsamiqu werden 79$ f&#228;llig. F&#252;r mehr als einen Benutzer gelten spezielle Discountpreise, welche <a href="http://www.balsamiq.com/products/mockups/desktop#buy" target="_blank">hier </a>eingesehen werden k&#246;nnen.</p>
<ul>
<li>5 Versionen f&#252;r $ 379</li>
<li>15 f&#252;r $ 999</li>
</ul>
<p>Auf der Webseite von Balsamiq kann eine Webdemo getestet werden. Mit dieser k&#246;nnen durchaus einige tolle Mockups erstellt werden. Einzigster Wermutstropfen: Alle 5 Minuten wieder muss eine Meldung akzeptiert werden.</p>
<p><strong>Fazit:</strong></p>
<p>+ Balsamiq spitze f&#252;r die  intuitive Erstellung schneller Layouts f&#252;r z.B. Fachkonzepte oder  &#228;hnliches.<br />
+ sehr flache Lernkurve<br />
+ alles abbildbar, durch Komponenten erweiterbar<br />
+ super Kompatibilit&#228;t und Plattformunabh&#228;ngigkeit</p>
<p>- keine Animationen m&#246;glich<br />
- keine Navigation realisierbar<br />
- nicht f&#252;r Click Dummies geeignet (out of the box)</p>
<p>Was mit Balsamiq &#8220;noch&#8221; nicht m&#246;glich ist, sind  verschiedene Screens und deren Verbindung zueinander darzustellen. Hier  hat Microsofts <a href="http://www.microsoft.com/expression/products/SketchFlow_OverView.aspx" target="_blank">SketchFlow</a> in  allen Belangen die Nase vorn.</p>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2010/03/03/balsamiq-mockups-kritzeln-mal-anders-oder-so-freaking-good/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Content Query WP und nicht interpretiertes HTML in Sharepoint 2010</title>
		<link>http://www.communardo.de/home/techblog/2010/03/02/content-query-wp-und-nicht-interpretiertes-html-in-sharepoint-2010/</link>
		<comments>http://www.communardo.de/home/techblog/2010/03/02/content-query-wp-und-nicht-interpretiertes-html-in-sharepoint-2010/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 16:34:01 +0000</pubDate>
		<dc:creator>Anne Rüger</dc:creator>
				<category><![CDATA[Microsoft Sharepoint]]></category>
		<category><![CDATA[CQWP]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://www.communardo.de/home/techblog/?p=3293</guid>
		<description><![CDATA[<img alt="aru" src="http://www.gravatar.com/avatar.php/97bdd3bf3d48cd4622f292ba1f05e65d/?s=76" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/aru/" title="Artikel von Anne Rüger">Anne Rüger</a><p>Das Content Query WebPart bietet dem Nutzer die M&#246;glichkeit &#8220;mal schnell&#8221; Inhalte aus einer bestimmten Site oder Liste auf einer Seite zu publizieren. Dabei besteht die M&#246;glichkeit aus diversen Anzeige-Modi zu w&#228;hlen. Sollen allerdings Inhalte aus einer Richtext-HTML-Spalte angezeigt werden, beispielsweise die Description einer Posts Liste, wird das HTML nicht aufgel&#246;st.</p>
<p><span id="more-3293"></span></p>
<p>[filebase:file:file=6:tpl=image_center] Die L&#246;sung dieses Problems ist die Anpassung der Itemstyle.xsl, die sich in der StyleLibrary/Formatbibliothek befindet. Um im Edit-Mode des CQWPs einen zus&#228;tzlichen Item Style zu haben, der HTML nicht als Text interpretiert, muss in der Itemstyle.xsl ein Template (zum Beispiel LargeTitle) kopiert und angepasst werden.</p>
<pre>&lt;xsl:template name="LargeTitle" match="Row[@Style='LargeTitle']" mode="itemstyle"&gt;
...
&lt;/xsl:template&gt;</pre>
<p>Hier sollten nun die Attribute name und match entsprechend ver&#228;ndert werden (zum Beispiel LargeTitle durch NewLargeTitle ersetzen). Damit das HTML des Blogeintrags, also der Description Spalte, interpretiert wird und nicht als Text ausgegeben wird, muss nun noch die Ausgabe des Description Values von</p>
<pre>&lt;div&gt;
&lt;xsl:value-of select="@Description" /&gt;
&lt;/div&gt;</pre>
<p>in</p>
<pre>&lt;div style="padding-left:5px; color:#333333;"&gt;
&lt;xsl:value-of select="@Description" disable-output-escaping="yes"/&gt;
&lt;/div&gt;</pre>
<p>ge&#228;ndert werden. Dabei ist vorallem das Attribut <strong>disable-output-escaping=&#8221;yes&#8221;</strong> wichtig, welches eine Escape-freie Ausgabe liefert, also die RichHtml-Tags interpretiert und nicht einfach ausgibt. (mehr Informationen <a href="http://www.w3.org/TR/xslt">hier</a>)</p>
<p>Die Ausgabe des Content Query WebParts sollte nun ungef&#228;hr so aussehen. [filebase:file:file=8:tpl=image_center]</p>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2010/03/02/content-query-wp-und-nicht-interpretiertes-html-in-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neues aus der .Net und SharePoint-Welt von der Basta! Spring (3. Tag)</title>
		<link>http://www.communardo.de/home/techblog/2010/02/27/neues-aus-der-net-und-sharepoint-welt-von-der-basta-spring-3-tag/</link>
		<comments>http://www.communardo.de/home/techblog/2010/02/27/neues-aus-der-net-und-sharepoint-welt-von-der-basta-spring-3-tag/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 22:08:54 +0000</pubDate>
		<dc:creator>Dorrit Riemenschneider</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Microsoft Sharepoint]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[konferenz]]></category>
		<category><![CDATA[ORMapper]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://www.communardo.de/techblog/?p=3270</guid>
		<description><![CDATA[<img alt="dri" src="http://www.gravatar.com/avatar.php/787c944feb23a1f3f8e2bd4d150fa67d/?s=76" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/dri/" title="Artikel von Dorrit Riemenschneider">Dorrit Riemenschneider</a><p>Den Auftakt zum letzten Tag auf der Basta! macht f&#252;r mich <strong><em>Custom Field Types &#8211; Entwicklung und Einsatzm&#246;glichkeiten</em></strong> mit Oliver Wirkus. Die Entwicklung eines Custom Field Type f&#252;r SharePoint ist eher unspektakul&#228;r und wer das schon einmal gemacht hat, wird dazu hier nicht viel Neues erfahren. Einen Tipp m&#246;chte ich noch weitergeben: F&#252;r die Festlegung von Konfigurationseinstellungen bieten sich die <em>Custom Properties</em> in der <em>fldtype_xxx.xml</em> an &#8211; allerdings sollte man bedenken, dass diese bei einem Update immer wieder &#8220;&#252;berb&#252;gelt&#8221; wird (dennoch sind die Daten dort allemal besser aufgehoben als &#8220;hard coded&#8221;). Folgende &#8220;Unsch&#246;nheiten&#8221; bzgl. Custom Field Types sollte man bei deren Verwendung bedenken:<span id="more-3270"></span></p>
<ul>
<li>Office (bis incl. 2007) unterst&#252;tzt keine Custom Field Types -&gt; diese werden beim Speichern in einer DocLib z.B. aus Word heraus nicht ber&#252;cksichtigt.</li>
<li>Custom Field Types werden beim Export einer Liste nach Excel nicht mit &#252;bernommen.</li>
<li>Custom Field Types werden in der Datenblattansicht nicht angezeigt.</li>
</ul>
<p>Zum Schluss noch ein paar Anwendungsbeispiele f&#252;r Custom Field Types:</p>
<ul>
<li>Implementierung von Validierungsregeln (Anmerkung: geht mit SharePoint 2010 out-of-the-box)</li>
<li>Implementierung von Field Level Permissions</li>
<li>Anbindung externer Sytems (z.B. Stammdaten f&#252;r Lookups aus SAP) &#8211; Anmerkung: die Anbindung externer Listen &#252;ber die BDS in SharePoint 2010 d&#252;rfte auch hier in etlichen F&#228;llen mit Bordmitteln Abhilfe schaffen</li>
<li>Lookups auf Listen in einer anderen SharePoint Website</li>
<li>Lookups mit besserer GUI als im SharePoint-Standard (z.B. f&#252;r sehr viele Eintr&#228;ge)</li>
</ul>
<p><em><strong>SharePoint Deluxe mit Silverlight Dynamic Data</strong></em> mit Stephan Kitzler-Walli ist zur Abwechslung mal eine etwas anspruchsvollere Session zu SharePoint-Entwicklung. Es geht um die Erstellung eines dynamischen Listeninhaltseditors (Webpart) auf der Basis von Silverlight. Die Idee ist ebenso einfach wie bestechend: (generischer) C#-Code sorgt f&#252;r das Einlesen der Daten, die interne Umwandlung der SharePoint-Datentypen in .Net-Datentypen (welche von Silverlight verarbeitet werden k&#246;nnen) und das Speichern des ListItems. Das Rendern wird dann &#252;ber XAML gesteuert &#8211; spezifisch f&#252;r die jeweilige Liste bzw. den Content Type, auf dem der Listeneintrag basiert. Es gibt jede Menge Code und das Ergebnis kann sich blicken lassen.</p>
<p>Nun die letzte Keynote dieser Konferenz: <strong><em>Why does functional code matter?</em></strong> mit Ted Neward, der sich darum bem&#252;ht, die funktionale Programmierung aus der Ecke f&#252;r akademische Sonderf&#228;lle herauszubringen. Der Einstieg gelingt provozierend mit &#8220;<em>In the beginning god created objects&#8230;</em>&#8221; &#8211; und er sah, dass es gut war, m&#246;chte man erg&#228;nzen. Warum um alles in der Welt sollte man sich davon jetzt wieder abwenden? Man soll gar nicht. Die Botschaft der Keynote ist: Funktionale Programmierung wird die objektorientierte nicht verdr&#228;ngen, sondern erg&#228;nzen. Sie ist mit objektorientierten Konzepten kombiniert besonders m&#228;chtig und sollte einfach als &#8220;zus&#228;tzliches Tool in der Toolbox&#8221; gesehen werden.</p>
<p><strong><em>Datengetriebene Applikationen mit NHibernate und Spring.NET</em></strong> mit Manfred Steyer gibt eine gute Einf&#252;hrung in den OpenSource-O/R-Mapper, der als starke Alternative zum Entity Framework gilt. NHibernate zeichnet sich durch folgende Features aus:</p>
<ul>
<li>Beziehungen aller m&#246;glicher Kardinalit&#228;ten (1:n, n:1, 1:1, n:m)</li>
<li>Wahlweise Lazy oder Eager Loading</li>
<li>viele verschiedene Fetch-Strategien</li>
<li>Implementierung von Kaskaden (z.B. L&#246;schweiterleitung)</li>
<li>Implementierung von Vererbung mit verschiedenen Strategien</li>
<li>Concurrency (wahlweise Lockmechanismen aus der zugrunde liegenden Datenbank oder eigene)</li>
</ul>
<p>Nat&#252;rlich gibt es auch Codebeispiele &#8220;am lebenden Objekt&#8221;. Fazit: Nhibernate ist sehr m&#228;chtig, es geht fast alles, was in der Datenbank geht&#8230;</p>
<p>Das Applikationsframework Spring.NET unterst&#252;tzt dar&#252;ber hinaus bei immer wieder anfallenden Aufgaben. Insbesondere sei hier das Testing datenbank-lastiger Anwendungen aufgef&#252;hrt. Zusammen mit NHibernate kann sich Spring.Net zu voller Gr&#246;&#223;e entfalten, um z.B. das Transaktionsmanagement zu &#252;bernehmen oder das Testen noch einfacher zu gestalten. Die Vorteile der beiden Frameworks liegen auf der Hand. Dennoch sollte man auch die Nachteile nicht au&#223;er Acht lassen, z.B. die relativ hohe Einstiegsh&#252;rde, die komplexe Konfiguration und das teilweise etwas schwierige Versionsmanagement (insbesondere zwischen Spring.Net und NHibernate).</p>
<p>Last but not least gibt es mit<strong><em> 10 spannende Sachen, die man mit der SQL-Server-CLR-Integration machen kann</em></strong> mit Thorsten Kansy ein Angebot an Anwendungsbeispielen f&#252;r CLR Funktionen &#8211; nat&#252;rlich mit Codebeispielen. Einsatzm&#246;glichkeiten sind z.B.</p>
<ul>
<li>Validierungen (E-Mail-Adressen, ISBN, &#8230;) mittels regul&#228;rer Ausdr&#252;cke</li>
<li>Datumsformatierung</li>
<li>Konkatenation von Zeichenketten</li>
<li>Verschl&#252;sselung</li>
<li>Dublettensuche (hier mit <a href="http://de.wikipedia.org/wiki/Levenshtein-Distanz#Damerau-Levenshtein-Distanz">Damerau-Levenshtein-Distanz</a>)</li>
<li>E-Mail-Versand mit SMTP</li>
<li>Abfragen von W&#228;hrungskursen mittels Webservice</li>
</ul>
<p>Und so geht sie also dem Ende entgegen, die BASTA! Spring 2010. Nach 3 Tagen Konferenz f&#252;hlt der Kopf sich ungef&#228;hr genauso voll an wie der Magen, nun gilt es, das Geh&#246;rte weiterzutragen und, wo m&#246;glich, in der t&#228;glichen Arbeit anzuwenden&#8230;</p>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2010/02/27/neues-aus-der-net-und-sharepoint-welt-von-der-basta-spring-3-tag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Language-Pool mit Confluence</title>
		<link>http://www.communardo.de/home/techblog/2010/02/26/language-pool-mit-confluence/</link>
		<comments>http://www.communardo.de/home/techblog/2010/02/26/language-pool-mit-confluence/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 08:10:28 +0000</pubDate>
		<dc:creator>Andreas Reif</dc:creator>
				<category><![CDATA[Confluence]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://www.communardo.de/techblog/?p=3275</guid>
		<description><![CDATA[<img alt="are" src="http://www.communardo.de/home/wp-content/filebase/defaults/default_gravatar.jpg" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/are/" title="Artikel von Andreas Reif">Andreas Reif</a><h2 style="margin-bottom: 10px">Problembeschreibung</h2>
<p>Bei der Entwicklung von mehreren Plugins kann es vorkommen, dass Texte mehrfach &#252;bersetzt werden m&#252;ssen, wodurch somit Redundanzen entstehen. Der Ursprung liegt dann bei Atlassian Confluence, welches das Sharen von i18n-keys &#252;ber die verschiedenen Plugins hinweg nicht erm&#246;glicht.</p>
<div style="background-color: #ffffce;border: 1px solid black;margin: 10px;padding: 5px"><strong>Beispielhaft soll dies am folgendem Szenario erl&#228;utert werden:</strong></p>
<p>Angenommen man hat ein Plugin X entwickelt und in ihm den i18n-key <tt>manager.user.email</tt> definiert. Zus&#228;tzlich existiert ein Plugin Y, dass Plugin X um weitere Funktionalit&#228;t erg&#228;nzt und eine neue <tt>vm</tt> anlegt, die eben auch den i18n-key <tt>manager.user.email</tt> verwenden soll. Nun gibt es das Plugin-Konzept von Confluence nicht her auf die in den <tt>properties</tt> definierten Texte von Plugin X zuzugreifen. Dies bedeutet, dass der Key auch im Plugin Y hinterlegt werden muss. Folglich ergibt sich ein erh&#246;hter Pflegeaufwand.</p>
</div>
<div style="background-color: #d8e4f1;border: 1px solid black;margin: 10px;padding: 5px"><strong>Info!</strong><br />
Die harte Trennung von Atlassian Confluence ist einleuchtend, da die Plugins untereinander autark funktionieren sollen. Es gibt aber auch F&#228;lle, in denen dies hinderlich ist.</div>
<h2 style="margin: 20px 0">Probleml&#246;sung</h2>
<div style="background-color: #d8e4f1;border: 1px solid black;margin: 10px;padding: 5px"><strong>Info!</strong><br />
Die folgende Erkl&#228;rung zielt auf die Nutzung eines einzelnen Plugins ab. Es ist nat&#252;rlich auch m&#246;glich f&#252;r die einzelnen Sprachen separate Plugins (wie Confluence Standard) zu f&#252;hren.</div>
<p>Damit Redundanzen beseitigt werden k&#246;nnen, m&#252;ssen die <tt>i18n-keys</tt> zentral abgelegt werden. Dazu kann man einen bestimmten Plugintyp von Confluence – das Sprachplugin – nutzen.</p>
<div style="background-color: #ffcccc;border: 1px solid black;margin: 10px;padding: 5px"><strong>Achtung!</strong><br />
Das Sprachplugin kann mehrere Sprachen repr&#228;sentieren. Wichtig ist, dass die in der <tt>atlassian-plugin.xml</tt> konfigurierten Sprachen (Kombination aus language und country) nur einmal im System auftreten.</div>
<p>Diese Erkenntnis ist wichtig, da f&#252;r die L&#246;sung des oben genannten Problems, es notwendig ist, die Standard Sprachplugins von Confluence zu deinstallieren und die darin enthaltenen <tt>property</tt> Dateien in das neue SprachPlugin zu &#252;berf&#252;hren.</p>
<p>Au&#223;erdem muss die <tt>atlassian-plugin.xml</tt> des Sprachplugins, wie folgt angepasst werden.</p>
<div style="border: 1px dashed #CCCCCC;padding: 0px 10px;margin: 10px 0">
<pre>&lt;language name="German" key="de_DE" language="de" country="DE"&gt;

   &lt;resource name="de_DE.png" type="download"
      location="templates/languages/de_DE/de_DE.png"&gt;
      &lt;property key="content-type" value="image/png"/&gt;
   &lt;/resource&gt;
 &lt;/language&gt;

&lt;language name="Spain" key="es_ES" language="es" country="ES"&gt;
   &lt;resource name="es_ES.png" type="download"
       location="templates/languages/es_ES/es_ES.png"&gt;

       &lt;property key="content-type" value="image/png"/&gt;
   &lt;/resource&gt;
&lt;/language&gt;

&lt;resource name="i18n" name="i18n_my_plugin" type="i18n" location="/my_plugin"/&gt;

&lt;!-- Important entry, because you have to add the default
          i18n files to this new plugin --&gt;

&lt;resource name="i18n" name="i18n_default" type="i18n"
     location="/ConfluenceActionSupport"/&gt;</pre>
</div>
<h2 style="margin: 20px 0">Vielseitige L&#246;sung</h2>
<p>Diese L&#246;sungsansatz beseitigt nicht nur Redundanzen, sondern bietet auch in Kombination mit Maven, eine M&#246;glichkeit mehrere Varianten einer Pluginl&#246;sung textuell abzugrenzen.</p>
<div style="background-color: #ffffce;border: 1px solid black;margin: 10px;padding: 5px"><strong>Beispielhaft soll dies am folgendem Szenario erl&#228;utert werden:</strong><br />
Man stelle sich die Situation vor, es existiert ein Plugin X, welches durch einen eingebauten Schalter unterschiedliche Workflows abdeckt. M&#246;chte man nun innerhalb dieses Plugins in Abh&#228;ngigkeit des aktuellen Modus andere Texte verwenden, m&#252;ssen die Keys dupliziert oder die vm-Dateien angepasst werden.</div>
<p>F&#252;r diesen Fall kann man mittels Maven tricksen. Wichtig hierbei ist eine eindeutige Namenskonvention f&#252;r die Unterteilung der <tt>properties</tt> vorzunehmen. Beispielsweise kann man die <tt>properties</tt> wie folgt namentlich abgrenzen:</p>
<ul>
<li><tt>my_plugin.properties</tt></li>
<li><tt>my_plugin_typex.properties</tt></li>
<li><tt>my_plugin_typey.properties</tt></li>
<li><tt>my_plugin_de_DE.properties</tt></li>
<li><tt>my_plugin_typex_de_DE.properties</tt></li>
<li><tt>my_plugin_typey_de_DE.properties</tt></li>
</ul>
<p>Ist das geschehen, definiert man in der <tt>atlassian-plugin.xml</tt> des <tt>LanguagePool</tt>-Plugins folgende Zeilen:</p>
<div style="border: 1px dashed #CCCCCC;padding: 0px 10px;margin: 10px 0">
<pre>&lt;resource name="i18n" name="i18n_my_plugin_general" type="i18n"
     location="/my_plugin"/&gt;

&lt;resource name="i18n" name="i18n_my_plugin_specific" type="i18n"
     location="/my_plugin_${TYPE}"/&gt;</pre>
</div>
<p>Letztlich m&#252;ssen im Eclipse zwei neue <tt>Maven Run-Configurations</tt> erstellt werden, die das entsprechende Goal (Bsp.: <tt>package</tt>, <tt>install</tt> oder <tt>atlassian-pdk:install</tt>) verwendet und im <tt>Environment</tt>-Tab die Variable <tt>TYPE</tt> auf <tt>typex</tt> oder auf <tt>typey</tt> setzt.</p>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2010/02/26/language-pool-mit-confluence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>R&#252;ckblick zum Treffen der .NET Usergroup Dresden am 24.02.2010</title>
		<link>http://www.communardo.de/home/techblog/2010/02/25/rueckblick-zum-treffen-der-net-usergroup-dresden-am-24-02-2010/</link>
		<comments>http://www.communardo.de/home/techblog/2010/02/25/rueckblick-zum-treffen-der-net-usergroup-dresden-am-24-02-2010/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 09:19:59 +0000</pubDate>
		<dc:creator>Torsten Hufsky</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Dresden]]></category>
		<category><![CDATA[Resümee]]></category>
		<category><![CDATA[Rückblick]]></category>
		<category><![CDATA[UserGroup]]></category>

		<guid isPermaLink="false">http://www.communardo.de/techblog/?p=3259</guid>
		<description><![CDATA[<img alt="thu" src="http://www.gravatar.com/avatar.php/8743398aa3c764388e375dd2cab2b092/?s=76" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/thu/" title="Artikel von Torsten Hufsky">Torsten Hufsky</a><p>Am 24.02.2010 haben sich die .NET Freaks aus Dresden und Umgebung zur .NET Usergroup bei uns im Hause zusammen gefunden. Diesmal wurde es gruselig. <a href="https://www.xing.com/profile/Alexander_Gross7" target="_blank">Alexander  Gro&#223;</a> f&#252;hrte uns durch ein aktuelles Projekt, welches sich rund um die  Bestattung und Ein&#228;scherung dreht. Die Idee des Vortrages, welcher eigentlich kein Vortrag im engeren Sinne darstellte, war die gemeinsame Betrachtung eines aktuellen Projektes und deren verwendeten Techniken.</p>
<p>Schon nach einigen Minuten kam es zu interessanten Diskussionen.</p>
<p>Alexander zeigte beispielswei&#223;e wie in seinem Projekt Rake verwendet wird um auf einfache Weise Konfigurationen leicht wartbar zu halten. Au&#223;erdem wie Rake und MSDeploy zusammen ein super Team darstellen um Anwendungen zu deployen.</p>
<p><span id="more-3277"></span>Weiter ging es mit IOC Containern (Inversion of Control Containers and the Dependency Injection pattern) und deren M&#246;glichkeiten der Verwendung.  Aufbauend darauf entfachte eine Diskussion &#252;ber das Prinzip des ServiceLocators und deren Gefahren.</p>
<p>Weitere gezeigte Techniken und Frameworks waren:</p>
<ul>
<li>FubuMVC</li>
<li>NHibernate</li>
<li>AutoMapper</li>
<li>ReSharper</li>
<li>Rake und MSDeploy</li>
<li>IOC</li>
</ul>
<p>Ein gelungener Abend aus dem jeder mit etwas mehr Wissen heraus gehen konnte. Der Ein oder Andere wahrscheinlich auch etwas gepl&#228;ttet von der F&#252;lle und Qualit&#228;t der gebotenen Themen. Bleibt nur zu sagen: Vielen Dank Alexander f&#252;r diesen tollen Einblick.</p>
<p>Wir werden uns alle auf dem <a href="http://netopenspace.de/2010/" target="_blank">.NET Open Space 2010</a> wiedersehen, bei dem die eine oder andere Diskussion bestimmt weiter gef&#252;hrt werden kann.</p>
<div style="width: 1px;height: 1px;overflow: hidden">
<h2 style="padding-bottom: 4px"><a title="Permalink zu Einladung zum Treffen der .NET  Usergroup Dresden am 24.02.2010" rel="bookmark" href="../2010/02/19/einladung-zum-treffen-der-net-usergroup-dresden-am-24-02-2010/">Treffen der .NET Usergroup Dresden am  24.02.2010</a></h2>
</div>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2010/02/25/rueckblick-zum-treffen-der-net-usergroup-dresden-am-24-02-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Neues aus der SharePoint-Welt von der Basta! Spring (2. Tag)</title>
		<link>http://www.communardo.de/home/techblog/2010/02/24/neues-aus-der-sharepoint-welt-von-der-basta-spring-2-tag/</link>
		<comments>http://www.communardo.de/home/techblog/2010/02/24/neues-aus-der-sharepoint-welt-von-der-basta-spring-2-tag/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 21:28:58 +0000</pubDate>
		<dc:creator>Dorrit Riemenschneider</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Microsoft Sharepoint]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET 4.0]]></category>
		<category><![CDATA[konferenz]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://www.communardo.de/techblog/?p=3241</guid>
		<description><![CDATA[<img alt="dri" src="http://www.gravatar.com/avatar.php/787c944feb23a1f3f8e2bd4d150fa67d/?s=76" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/dri/" title="Artikel von Dorrit Riemenschneider">Dorrit Riemenschneider</a><p>Auf zum 2. Tag der Basta! Hauptkonferenz &#8211; und damit dem ersten der beiden SharePoint Days. Heute gibt es keine morgendliche Keynote, sondern es geht gleich in die Sessions &#8211; f&#252;r mich ist das als erstes <strong><em>Sehenswertes aus SharePoint 2010</em></strong> mit Tom Wendel. Erstaunlich f&#252;r mich, dass nur ca. ein Drittel der anwesenden Entwickler Sharepoint 2010 &#252;berhaupt schon gesehen hat. Dementsprechend &#8220;basic&#8221; f&#228;llt die Vorstellung der Neuerungen aus &#8211; weshalb ich hier auch auf eine detaillierte Auflistung verzichte. Trotzdem ein paar &#8220;Bruchst&#252;cke&#8221;, die mir nennenswert erscheinen:<span id="more-3276"></span></p>
<ul>
<li>Obwohl Firefox 3.5 als First-Level-Browser f&#252;r SharePoint 2010 unterst&#252;tzt wird, funktionieren einige Features, die ActiveX verwenden (z. B. die Datenblattansicht f&#252;r Listen oder die Office-Integration), nicht mit Firefox.</li>
<li>Custom Actions (z.B. um einer Liste zus&#228;tzliche Men&#252;eintr&#228;ge incl. dahinterliegender Funktionialit&#228;t  hinzuzuf&#252;gen) m&#252;ssen nicht mehr zwingend programmiert werden, sondern k&#246;nnen (mit begrenztem Funktionsumfang) auch mittels SharePoint Designer erstellt werden.</li>
<li>In Listen k&#246;nnen sowohl auf Spalten- als auch auf Listenebene Validierungsregeln hinterlegt werden (&#8220;Spalte <em>Geburtsdatum</em> darf nicht in der Zukunft liegen&#8221;, &#8220;wenn bei Spalte X &#8220;Ja&#8221; ausgew&#228;hlt ist, darf Spalte Y nicht leer sein&#8221;). Der Umfang der f&#252;r die Regeln verf&#252;gbaren Funktionen ist herauszufinden &#8211; wahrscheinlich &#228;hnlich Excel&#8230;</li>
<li>Business Connectivity Services sind (anders als der BDC in MOSS 2007) Bestandteil der SharePoint Foundation.</li>
</ul>
<p>Als n&#228;chstes schere ich mit <strong><em>ASP.NET 4.0 &#8211; Was ist neu?</em></strong> mit Holger Schwichtenberg (zumindest im strengen Sinne) aus der SharePoint-Schiene aus. Hier wird Schlag auf Schlag eine Vielzahl kleiner und gr&#246;&#223;erer Verbesserungen pr&#228;sentiert &#8211; nachfolgend eine Auswahl:</p>
<ul>
<li>Die web.config ist (im Standard) deutlich kleiner/&#252;bersichtlicher geworden.</li>
<li>Auto-Start f&#252;r Webanwendungen konfigurierbar (bei Start des Application Pools) -&gt; Zeit f&#252;r erstes Laden wird verk&#252;rzt. Es ist auch m&#246;glich, einen eigenen Autostart-Provider zu schreiben.</li>
<li><a href="http://weblogs.asp.net/scottgu/archive/2010/01/27/extensible-output-caching-with-asp-net-4-vs-2010-and-net-4-0-series.aspx">Extensible Output Caching</a>: Damit ist jetzt steuerbar, was mit dem @OutputCache passiert (muss nicht mehr zwingend im RAM gehalten werden, sondern z.B. im Dateisystem oder auch gem&#228;&#223; einem selbst erstellten OutputCache-Provider&#8230;)</li>
<li>Query Extender Control: f&#252;r das vereinfachte deklarative Filtern im Backend. F&#252;r weitere Infos gibt es <a href="http://www.codedigest.com/Articles/ASPNET/289_Building_Efficient_Search_Page_Using_QueryExtender_control_in_ASPNet_40.aspx">hier</a> einen Blogpost dazu.</li>
<li>ClientIdMode-Property: Damit kann die ClientId eines Controls endlich gezielt beeinflusst werden (ClientIdMode=static bewirkt, dass die ClientId gleich der Id auf dem Server ist &#8211; auch wenn die Seite im SharePoint l&#228;uft&#8230; <img src='http://www.communardo.de/home/techblog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</li>
<li>Verbesserung beim Rendering von Menu Controls: anstelle von Tabellen werden jetzt &lt;ul&gt; und &lt;li&gt; Elemente verwendet</li>
<li>ASP.NET AJAX 4.0 ist nicht Bestandteil von ASP.NET 4.0, sondern es ist die ASP.NET AJAX Library (verf&#252;gbar via Codeplex, aber voll supported durch Microsoft) erforderlich. Diese enth&#228;lt
<ul>
<li>die MS AJAX Library</li>
<li>das AJAX Control Toolkit</li>
</ul>
</li>
<li>in Visual Studio 2010 wurde nicht nur die Intellisense-Unterst&#252;tzung f&#252;r JavaScript verbessert, sondern es gibt jetzt auch Code Snippets f&#252;r JavaScript und HTML.</li>
</ul>
<p>Nun geht es wieder zur&#252;ck zu SharePoint: <strong><em>SharePoint 2010 &#8211; endlich richtig programmieren</em></strong> mit J&#246;rg Krause. Den Einstieg mach eine coole Folie zur Evolution eines SharePoint-Entwicklers. Die einzelnen Entwicklungsstadien sind (sinngem&#228;&#223;):</p>
<ol>
<li>Ablehnung (&#8220;Das geht doch &#252;berhaupt nicht!&#8221;)</li>
<li>&#196;rger (&#8220;Wieso gerade ich?&#8221;)</li>
<li>Gesch&#228;ftst&#252;chtigkeit (&#8220;Das ist mein Job, also werde ich ihn machen!&#8221;)</li>
<li>Depression (&#8220;Es geht nicht, es ist nicht hinzukriegen &#8211; es geht einfach nicht!&#8221;)</li>
<li>Akzeptanz (&#8220;Es geht, wenn es auch nicht einfach ist.&#8221;)</li>
</ol>
<p>Es ist den anwesenden Entwicklern im Raum anzumerken, dass sie wissen, wor&#252;ber hier gesprochen wird&#8230; Der Vortrag selbst behandelt viele Fragen, mit denen ein SharePoint-Entwickler sich im Laufe seines Entwicklerdaseins auseinandersetzen muss - hier sollen noch die Tools aufgelistet werden, die f&#252;r die Entwicklung f&#252;r SharePoint 2010 unverzichtbar sind:</p>
<ul>
<li>Visual Studio 2010</li>
<li>SharePoint Designer 2010</li>
<li>Fiddler</li>
<li>IE Developer Bar (Anm.: ich w&#252;rde Firebug fast noch vorziehen)</li>
<li>Reflector</li>
<li>SDK Tools: psconfig (Power Shell), stsadm, SPMetal</li>
</ul>
<p>Das Ende der Mittagspause wird durch eine eingeschobene <strong><em>Keynote zu Windows Phones</em></strong> mit Frank Prengel ersetzt. Beeindruckend f&#252;r mich ist die neue Erkenntnis von Microsoft : &#8220;&#8230; a phone is just not a PC&#8221;!</p>
<p>Und weiter geht es mit SharePoint: <strong><em>SharePoint Object Model – From SPFarm to SPListItem</em></strong> mit J&#246;rg Krause. Auch hier wieder etliches schon Bekanntes, erfreulich die Arbeitserleichterungen mit SharePoint 2010 bzw. Visual Studio 2010:</p>
<ul>
<li>neue Templates in Visual Studio</li>
<li>neue EventReceiver f&#252;r Listen, Workflows und Webs</li>
<li>F5 Debugging Experience</li>
</ul>
<p>Last not least noch ein paar wichtige (und vor allem hilfreiche! <img src='http://www.communardo.de/home/techblog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) Hilfsklassen, die jeder Entwickler benutzen sollte, anstatt &#8220;das Rad neu zu erfinden&#8221;</p>
<ul>
<li>SPUtility</li>
<li>SPUrlUtility</li>
<li>DateOptions</li>
<li>SPHttpUtility</li>
<li>(SPDiffUtility)</li>
</ul>
<p>Nach dem Abendbrot kommt noch ein richtiges Bonbon in Form einer weiteren Keynote: <strong><em>Why Software sucks &#8211; and what you can do about it</em></strong> mit David S. Platt.</p>
<p>Eigentlich ist es ganz simpel, was der Nutzer will: &#8220;I just want it to work!&#8221;. Warum tun wir&#8217;s nicht einfach?!</p>
<p>Laut David gilt es genau ein, unumst&#246;&#223;liches, Prinzip zu beachten: KNOW THY USER, FOR HE IS NOT THEE. Dies belegt er uns eindrucksvoll (und unter vielen Heiterkeitsausbr&#252;chen) an diversen Beispielen. Und es ist ja wirklich wahr: der Durchschnittsnutzer von Software (speziell im Internet!) ist nun mal kein m&#228;nnlicher, zumeist studierter, Programmierer, welcher ein Auto ohne Automatikschaltung f&#228;hrt.</p>
<p>Nachdem er uns einige abschreckende und auch gelungene Beispiele aus dem Leben gezeigt hat (hier sei nur so viel verraten: Google schneidet besser ab als Microsoft &#8211; aber es gibt auch noch Schlimmeres&#8230;), gibt David uns noch ein paar Tipps mit, um dem Problem beizukommen:</p>
<ol>
<li>Add a virgin to the design team (&#8220;Blindness improves your vision&#8221;).</li>
<li>Break convention when needed.</li>
<li>Don&#8217;t let edgecases complicate the mainstream.</li>
<li>Instrument &#8212; carefully.</li>
<li>Allways ask: Is this individual design decision bringung us  closer to &#8220;just working&#8221; or farther?</li>
</ol>
<p><strong>So: Make it just work!</strong></p>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2010/02/24/neues-aus-der-sharepoint-welt-von-der-basta-spring-2-tag/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Visual Studio is waiting for an operation oder &quot;Warum Copy &amp; Paste schlecht ist&quot;</title>
		<link>http://www.communardo.de/home/techblog/2010/02/24/visual-studio-is-waiting-for-an-operation-oder-warum-copy-paste-schlecht-ist/</link>
		<comments>http://www.communardo.de/home/techblog/2010/02/24/visual-studio-is-waiting-for-an-operation-oder-warum-copy-paste-schlecht-ist/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 15:43:34 +0000</pubDate>
		<dc:creator>Torsten Hufsky</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Microsoft Sharepoint]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[continue waiting]]></category>
		<category><![CDATA[Copy]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[Paste switch to]]></category>
		<category><![CDATA[RDPclip.exe]]></category>
		<category><![CDATA[Visual-Studio]]></category>
		<category><![CDATA[waiting for operation]]></category>
		<category><![CDATA[Workaround]]></category>

		<guid isPermaLink="false">http://www.communardo.de/techblog/?p=3251</guid>
		<description><![CDATA[<img alt="thu" src="http://www.gravatar.com/avatar.php/8743398aa3c764388e375dd2cab2b092/?s=76" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/thu/" title="Artikel von Torsten Hufsky">Torsten Hufsky</a><p>Dem Einen oder Anderen hat Visual Studio wahrscheinlich schon einmal mit dieser leicht dominierenden Bildschirmausgabe &#252;berrascht. Wahrscheinlich aber haben es die Meisten noch nie zu Gesicht bekommen, denn wir sind ja keine Copy &amp; Paste Entwickler. <img src='http://www.communardo.de/home/techblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Das ist der besagte Hinweis:</p>
<div id="attachment_3249" class="wp-caption aligncenter" style="width: 375px"><a href="http://www.communardo.de/home/techblog/files/2010/02/rdclip.jpg"><img class="size-full wp-image-3249" src="http://www.communardo.de/home/techblog/files/2010/02/rdclip.jpg" alt="Here you can see the error message thrown by visual studio" width="365" height="275" /></a><p class="wp-caption-text">RDClip</p></div>
<p><strong>Randbedingungen:</strong><br />
Ich verwende eine virtuelle Maschine(Windows Server 2003) unter Microsoft Virtual Server 2005 R2.</p>
<p>Das Problem tritt gelegentlich auf, wenn innerhalb der Host Maschine etwas kopiert wird und anschlie&#223;end versucht wird, das soeben kopierte, in Visual Studio, auf der Entwicklungsmaschine, einzuf&#252;gen.</p>
<p><strong>L&#246;sung:</strong></p>
<p>Wie kann dieses Problem nun gel&#246;st werden? Anfangs dachte ich, der &#220;belt&#228;ter w&#228;re Visual Studio, und beendete einfach den devenv.exe Prozess. Irgendwann irritierte es mich aber, dass sobald diese Meldung auftauchte &#252;berhaupt kein Copy &amp; Paste mehr funktionierte. Zu diesem Zeitpunkt fand ich heraus, dass der eigentliche, anfangs nicht verd&#228;chtige, Prozess rdpclip.exe der Schuldige war.</p>
<p>Um also in Visual Studio weiter arbeiten zu k&#246;nnen, muss einfach der Prozess rdclip.exe beendet werden. Dies kann leicht &#252;ber den  Task Manager vollf&#252;hrt werden.</p>
<p><a href="http://www.communardo.de/home/techblog/files/2010/02/task.png"><img class="aligncenter size-full wp-image-3254" src="http://www.communardo.de/home/techblog/files/2010/02/task.png" alt="" width="399" height="403" /></a></p>
<p>Falls anschlie&#223;end wieder Copy &amp; Paste verwendet werden soll, nicht vergessen den RdpClip.exe Prozess wieder zu starten. Gefunden werden kann dieser im Verzeichnis C:\Windows\System32</p>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2010/02/24/visual-studio-is-waiting-for-an-operation-oder-warum-copy-paste-schlecht-ist/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zugriff auf Listeninhalte mit LINQ to SharePoint</title>
		<link>http://www.communardo.de/home/techblog/2010/02/24/zugriff-auf-listeninhalte-mit-linq-to-sharepoint/</link>
		<comments>http://www.communardo.de/home/techblog/2010/02/24/zugriff-auf-listeninhalte-mit-linq-to-sharepoint/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 14:57:12 +0000</pubDate>
		<dc:creator>Martin Hey</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Microsoft Sharepoint]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[LinqToSharePoint]]></category>
		<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.communardo.de/techblog/?p=3243</guid>
		<description><![CDATA[<img alt="mhy" src="http://www.gravatar.com/avatar.php/b2628bda407a7ae43f62dd191beb6335/?s=76" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/mhy/" title="Artikel von Martin Hey">Martin Hey</a><p>SharePoint 2010 bietet mit der Assembly Microsoft.SharePoint.Linq.dll (zu finden im Ordner 14\ISAPI) die M&#246;glichkeit, recht einfach Listeninhalte abzufragen. Wenn man sich etwas n&#228;her damit besch&#228;ftigt, kann man sehr viele Parallelelen zu LINQ to Objects und Linq to SQL entdecken.</p>
<p>Erster Schritt ist, eine Referenz auf die genannte Assembly hinzuzuf&#252;gen. Ab diesem Zeitpunkt steht der Namespace Microsoft.SharePoint.Linq zur Verf&#252;gung. Dieser beinhaltet die Klasse DataContext, &#252;ber die &#228;hnlich wie bei LINQ to SQL auf die Inhalte zugegriffen werden kann. Die Initialisierung des Kontexts ist recht einfach &#8211; hierzu wird einfach im Konstruktor des Objekts die Url der zu verwendenden Site &#252;bergeben.</p>
<p>Vor dem Erfolg steht aber ein wenig Arbeit, denn der Zugriff ist typsicher und so m&#252;ssen f&#252;r die verwendeten Inhaltstypen Klassen angelegt werden. Auch hier zeigen sich wieder Parallelen zu bereits Bekanntem: Mit Hilfe des Tools SPMetal (zu finden im Ordner 14\BIN) k&#246;nnen die Klassen auf Basis einer bestehenden Site automatisch erstellt werden.</p>
<p>Ab diesem Zeitpunkt ist es recht einfach, wie das folgende Beispiel zeigt:</p>
<pre>DataContext data = new DataContext("http://mysite/");

EntityList&lt;Page&gt; wikiPages = data.GetList&lt;Page&gt;("Pages");
var filteredPages = from wikiPage in wikiPages
            where wikiPage.Name == "Inline-Process-Editor.aspx"
            select wikiPage;

foreach (var filteredPage in filteredPages)
{
    Console.WriteLine(filteredPage.Path);
}</pre>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2010/02/24/zugriff-auf-listeninhalte-mit-linq-to-sharepoint/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
