<?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>MindBusiness Blog &#187; SharePoint</title>
	<atom:link href="http://blog.mindbusiness.de/blog/tag/sharepoint/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mindbusiness.de/blog</link>
	<description>MindBusiness - Produkte, Neuigkeiten, Tipps und Tricks aus der MindBusiness-Ideenwerkstatt rund um Microsoft SharePoint, InfoPath, Office, Mindjet MindManager</description>
	<lastBuildDate>Tue, 15 May 2012 07:10:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Workshop: ImageMaps zur Navigation in SharePoint</title>
		<link>http://blog.mindbusiness.de/blog/2012/02/29/workshop-imagemaps-zur-navigation-in-sharepoint/</link>
		<comments>http://blog.mindbusiness.de/blog/2012/02/29/workshop-imagemaps-zur-navigation-in-sharepoint/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 14:23:00 +0000</pubDate>
		<dc:creator>Bernhard Straub</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[content editor]]></category>
		<category><![CDATA[gimp]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[imagemap]]></category>
		<category><![CDATA[inhalts-editor]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://blog.mindbusiness.de/blog/2012/02/29/workshop-imagemaps-zur-navigation-in-sharepoint/</guid>
		<description><![CDATA[<p>Wenn SharePoint-Seiten und Navigation ansprechend gestaltet werden sollen, bietet sich häufig die Verwendung von Image Maps an. Das ist eine Grafik, die mehrere anklickbare Bereiche enthält. Hier ein kleiner Workshop, wie man solche Image Maps erstellen kann. Wir verwenden hier PowerPoint 2010, um die Grafik zu erstellen und das Grafikprogramm GIMP. Letzteres stellen wir vor, [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn SharePoint-Seiten und Navigation ansprechend gestaltet werden sollen, bietet sich häufig die Verwendung von Image Maps an. Das ist eine Grafik, die mehrere anklickbare Bereiche enthält. Hier ein kleiner Workshop, wie man solche Image Maps erstellen kann. Wir verwenden hier PowerPoint 2010, um die Grafik zu erstellen und das Grafikprogramm GIMP. Letzteres stellen wir vor, da diese kostenlos ist und auch ohne Installation ausgeführt werden kann. </p>
<p>Wir setzen voraus, dass Sie die grundsätzliche Bedienung von SharePoint kennen (Bibliotheken, Webpartseiten bearbeiten)</p>
<h2>GIMP</h2>
<p>Das Grafikprogramm GIMP kann hier heruntergeladen werden: <a title="http://www.gimp.org/" href="http://www.gimp.org/">http://www.gimp.org/</a></p>
<p>Alternativ dazu bietet sich der Download als Portable App an: <a title="http://portableapps.com/apps/graphics_pictures/gimp_portable" href="http://portableapps.com/apps/graphics_pictures/gimp_portable">http://portableapps.com/apps/graphics_pictures/gimp_portable</a>     <br />In diesem Fall laden Sie zuerst die &quot;Portable Apps&quot; herunter (<a title="http://portableapps.com/" href="http://portableapps.com/">http://portableapps.com/</a>) und fügen GIMP als App hinzu. Alle Portable Apps können z.B. direkt von einem USB-Stick gestartet werden, ohne dass auf dem Rechner ein Setup ausgeführt werden muss.</p>
<h2>Erstellen einer Grafik mit Microsoft PowerPoint 2010 (oder 2007)</h2>
<p>Hier können Sie folgendermaßen vorgehen:</p>
<ul>
<li>Öffnen Sie PowerPoint 2010 und erstellen eine neue leere Präsentation </li>
<li>Wählen Sie als Folienlayout &quot;Leer&quot; </li>
<li>Wählen Sie im Menüband &quot;Einfügen&quot; die SmartArts </li>
<li>Wählen Sie im Dialogfenster links &quot;Grafik&quot; und dann z.B. die &quot;Radialbildliste&quot;      <br /><a href="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image_thumb.png" width="644" height="315" /></a> </li>
<li>Bestätigen Sie mit &quot;OK&quot; </li>
<li>Geben Sie nun die gewünschten Begriffe in die SmartArt ein und wählen die Grafiken für die Formen. Das Ergebnis kann nun z.B. so aussehen:      <br /><a href="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image_thumb1.png" width="244" height="190" /></a> </li>
</ul>
<p>Diese SmartArt muss nun als Grafikdatei gespeichert werden:</p>
<ul>
<li>Klicken Sie in PowerPoint mit der rechten Maustaste auf die SmartArt und wählen &quot;Als Grafik speichern&quot;. Wählen Sie einen Speicherort und Dateinamen aus. </li>
</ul>
<p>Natürlich können Sie Grafiken mit anderen Werkzeugen erstellen, die SmartArts in PowerPoint sind jedenfalls ein guter Tipp für schöne und professionelle Grafiken.</p>
<h2>Grafik mit GIMP bearbeiten</h2>
<p>Zuerst muss u.U. die Größe der Grafik bearbeitet werden. Die Größe sollte nun so gewählt werden, wie die Grafik später auf der SharePoint-Seite erscheinen soll.</p>
<ul>
<li>Starten Sie GIMP (nicht über die vielen kleinen Fenster wundern) und klicken auf &quot;Datei – Öffnen&quot; </li>
<li>Wählen Sie die soeben erstelle Grafik (oder eine andere Grafik, die Sie verwenden möchten) </li>
<li>Klicken Sie im Menü &quot;Bild&quot; auf &quot;Bild skalieren&quot; und wählen dort die gewünschten Breite oder Höhe (der jeweils andere Wert wird automatisch ermittelt). Klicken Sie anschließend auf &quot;Skalieren&quot;      <br /><a href="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/SNAGHTML1a7d6f6.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML1a7d6f6" border="0" alt="SNAGHTML1a7d6f6" src="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/SNAGHTML1a7d6f6_thumb.png" width="244" height="204" /></a> </li>
</ul>
<p>Nun wird die Grafik so bearbeitet, dass die anklickbaren Zonen vorbereitet werden:</p>
<ul>
<li>Klicken Sie auf Menü &quot;Filter – Web – ImageMap&quot;, ein neues Fenster wird angezeigt. </li>
<li>Wählen Sie nun links das Rechteck-Symbol aus und ziehen mit der Maus in der Grafik einen Bereich, hinter den ein Link gelegt werden soll:      <br /><a href="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/SNAGHTML1ab7d90.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML1ab7d90" border="0" alt="SNAGHTML1ab7d90" src="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/SNAGHTML1ab7d90_thumb.png" width="644" height="355" /></a> </li>
<li>Anschließend geht ein neues Dialogfenster auf, in dem Sie den Link zur gewünschten Seite definieren, bestätigen Sie anschließend mit &quot;Anwenden&quot;:      <br /><a href="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/SNAGHTML1ac8ea0.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML1ac8ea0" border="0" alt="SNAGHTML1ac8ea0" src="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/SNAGHTML1ac8ea0_thumb.png" width="425" height="436" /></a> </li>
<li>Wiederholen Sie die Schritte für alle anklickbaren Bereiche </li>
<li>Klicken Sie abschließend auf &quot;Datei – Speichern unter&quot;, wobei Sie am besten die Dateiendung .txt selbst vergeben </li>
</ul>
<p>Hier finden Sie dazu noch eine detailiertere Beschreibung: <a title="http://www.gimp-werkstatt.de/imagemap.php" href="http://www.gimp-werkstatt.de/imagemap.php">http://www.gimp-werkstatt.de/imagemap.php</a></p>
<h2>Bilddatei nach SharePoint hochladen</h2>
<p>Nun muss die zuvor erstelle Datei ins SharePoint hochgeladen werden. Verwenden Sie dazu eine Dokumentbibliothek oder besser (falls vorhanden), die Bibliothek &quot;Websiteobjekte&quot;. Nachdem die Datei hochgeladen wurde klicken Sie mit der rechten Maustaste auf den Namen der Datei und wählen &quot;Verknüpfung kopieren&quot; im Kontextmenü:</p>
<p><a href="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image_thumb2.png" width="466" height="91" /></a></p>
<p>Nun haben Sie den Pfad in der Zwischenablage.</p>
<h2>ImageMap-Code vorbereiten</h2>
<p>Sie haben vorher in GIMP die ImageMap-Datei gespeichert. Öffnen Sie diese z.B. in Notepad, sie sieht in etwa so aus:</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">img</span> <span class="attr">src</span><span class="kwrd">=&quot;imagemap.png&quot;</span> <span class="attr">width</span><span class="kwrd">=&quot;500&quot;</span> <span class="attr">height</span><span class="kwrd">=&quot;334&quot;</span> <span class="attr">border</span><span class="kwrd">=&quot;0&quot;</span> <span class="attr">usemap</span><span class="kwrd">=&quot;#map&quot;</span> <span class="kwrd">/&gt;</span>

<span class="kwrd">&lt;</span><span class="html">map</span> <span class="attr">name</span><span class="kwrd">=&quot;map&quot;</span><span class="kwrd">&gt;</span>
<span class="rem">&lt;!-- #$-:Image map file created by GIMP Image Map plug-in --&gt;</span>
<span class="rem">&lt;!-- #$-:GIMP Image Map plug-in by Maurits Rijk --&gt;</span>
<span class="rem">&lt;!-- #$-:Please do not edit lines starting with &quot;#$&quot; --&gt;</span>
<span class="rem">&lt;!-- #$VERSION:2.3 --&gt;</span>
<span class="rem">&lt;!-- #$AUTHOR:berstr --&gt;</span>
<span class="kwrd">&lt;</span><span class="html">area</span> <span class="attr">shape</span><span class="kwrd">=&quot;rect&quot;</span> <span class="attr">coords</span><span class="kwrd">=&quot;243,22,433,115&quot;</span> <span class="attr">href</span><span class="kwrd">=&quot;http://intranet/sites/wissen&quot;</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">area</span> <span class="attr">shape</span><span class="kwrd">=&quot;rect&quot;</span> <span class="attr">coords</span><span class="kwrd">=&quot;282,130,493,214&quot;</span> <span class="attr">href</span><span class="kwrd">=&quot;http://intranet/sites/organisation&quot;</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">area</span> <span class="attr">shape</span><span class="kwrd">=&quot;rect&quot;</span> <span class="attr">coords</span><span class="kwrd">=&quot;243,222,467,290&quot;</span> <span class="attr">href</span><span class="kwrd">=&quot;http://intranet/sites/suche&quot;</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">map</span><span class="kwrd">&gt;</span></pre>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Nun müssen Sie die erste Zeile dieser Datei ändern – Sie finden dort den Namen der Datei zwischen zwei Anführungszeichen. Dieser Eintrag muss ersetzt werden durch den Pfad, den Sie im vorigen Schritt in die Zwischenablage kopiert haben. Diese Zeile kann nun so aussehen:</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">img</span> <span class="attr">src</span><span class="kwrd">=&quot;http://intranet/SiteAssets/imagemap.png&quot;</span> <span class="attr">width</span><span class="kwrd">=&quot;500&quot;</span> <span class="attr">height</span><span class="kwrd">=&quot;334&quot;</span> <span class="attr">border</span><span class="kwrd">=&quot;0&quot;</span> <span class="attr">usemap</span><span class="kwrd">=&quot;#map&quot;</span> <span class="kwrd">/&gt;</span></pre>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Speichern Sie am besten jetzt noch einmal die geänderte Datei.</p>
<h2>ImageMap in SharePoint einbinden</h2>
<p>Nun sind alle Vorbereitungen abgeschlossen, nun muss nur noch die Grafik auf der gewünschten Seite eingebunden werden:</p>
<ul>
<li>Öffnen Sie die Seite in SharePoint </li>
<li>Wählen Sie im Menüband &quot;Seite&quot; den Punkt &quot;Seite bearbeiten&quot; (dazu benötigen Sie natürlich die entsprechenden Berechtigungen) </li>
<li>Klicken Sie an die gewünschte Stelle, an der die ImageMap erscheinen soll und wählen nun im Menüband &quot;Einfügen&quot; den Punkt &quot;Webpart&quot; </li>
<li>Wählen Sie hier die Kategorie &quot;Medien und Inhalt&quot; und dann den &quot;Inhalts-Editor&quot; und klicken anschließend auf &quot;Hinzufügen&quot;<br />
    <br /><a href="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image3.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image_thumb3.png" width="644" height="211" /></a> </li>
<li>Klicken Sie im neu hinzugefügten Webpart auf &quot;Webpart bearbeiten&quot; </li>
<li>Im Webpart erscheint ein Text &quot;Klicken Sie hier, um neuen In halt hinzuzufügen&quot;, klicken Sie diesen Text an </li>
<li>Wählen Sie nun im Menüband &quot;Text formatieren&quot; den Punkt &quot;HTML-Quelle bearbeiten&quot;<br />
    <br /><a href="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image4.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image_thumb4.png" width="179" height="76" /></a> </li>
<li>Ein Fenster öffnet sich, fügen Sie nun über die Zwischenablage den kompletten Inhalt aus Ihrer zuvor modifizierten ImageMap-Datei ein und bestätigen mit OK </li>
<li>Ändern Sie nun auf Wunsch noch den Titel des Webparts oder blenden diesen aus </li>
</ul>
<p>Gratuliere – nun haben Sie eine grafische Navigation für Ihr SharePoint erstellt – probieren Sie es aus wie komfortabel Sie und Ihre Anwender nun zu den Inhalten gelangen:</p>
<p><a href="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image5.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.mindbusiness.de/blog/wp-content/uploads/2012/02/image_thumb5.png" width="534" height="484" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2012/02/29/workshop-imagemaps-zur-navigation-in-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vergleich Objekt- und Bildbibliothek in SharePoint 2010</title>
		<link>http://blog.mindbusiness.de/blog/2011/11/25/vergleich-objekt-und-bildbibliothek-in-sharepoint-2010/</link>
		<comments>http://blog.mindbusiness.de/blog/2011/11/25/vergleich-objekt-und-bildbibliothek-in-sharepoint-2010/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 15:04:21 +0000</pubDate>
		<dc:creator>Bernhard Straub</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[bildbibliothek]]></category>
		<category><![CDATA[objektbibliothek]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://blog.mindbusiness.de/blog/2011/11/25/vergleich-objekt-und-bildbibliothek-in-sharepoint-2010/</guid>
		<description><![CDATA[<p>In SharePoint gibt es schon seit mehreren Versionen die Bildbibliothek. In SharePoint 2010 dazugekommen ist die Objektbibliothek, die sich u.a. auch für Bilder eignet. Häufig wird noch aus Gewohnheit (oder wegen der griffigeren Bezeichnung) die Bildbibliothek verwendet, dabei hat die Objektbibliothek einige interessante Funktionalitäten. Hier im Artikel sind einige Infos dazu zusammengefasst.</p>
Bildbibliotheken (Image Libraries)
<p>Bildbibliotheken dienen [...]]]></description>
			<content:encoded><![CDATA[<p>In SharePoint gibt es schon seit mehreren Versionen die Bildbibliothek. In SharePoint 2010 dazugekommen ist die Objektbibliothek, die sich u.a. auch für Bilder eignet. Häufig wird noch aus Gewohnheit (oder wegen der griffigeren Bezeichnung) die Bildbibliothek verwendet, dabei hat die Objektbibliothek einige interessante Funktionalitäten. Hier im Artikel sind einige Infos dazu zusammengefasst.</p>
<h4>Bildbibliotheken (Image Libraries)</h4>
<p>Bildbibliotheken dienen als Ablage für Bitmap- bzw. Rastergrafiken. Sie bieten folgende Funktionalitäten bzw. Eigenschaften:</p>
<ul>
<li>Es werden folgende Formate unterstützt: BMP, GIF, ICO, JPEG, PNG und TIFF </li>
<li>Es stehen drei Ansichtsformate zur Verfügung:      <br />- Details (Listenansicht)       <br />- Miniaturansicht (mit Bildvorschau)       <br />- Filmstreifen (mit größerer Bildvorschau des selektierten Bildes) </li>
<li>Eine Bildschirmpräsentation (Diashow) kann über das Aktionen-Menü gestartet werden </li>
<li>Für das Hochladen mehrerer Bilder auf einmal wird der Microsoft Picture Manager verwendet. Damit kann ein Anwender nicht einfach den Computer/das Netzwerk nach Bildern durchsuchen sondern muss sich erst eine Bildverknüpfung anlegen. Dafür bietet der Picture Manager grundlegende Werkzeuge zur Bildbearbeitung (Größe ändern, Zurechtschneiden&#8230;). </li>
<li>Bilder können aus der Bibliothek heraus mit dem Picture Manager bearbeitet werden </li>
<li>Ausgewählte Bilder können heruntergeladen und ggf. in ein anderes Dateiformat konvertiert werden (volle Größe, Vorschau, Miniaturansicht, benutzerdefinierte Größe) </li>
<li>Beim Hochladen werden manche Metadaten automatisch übernommen (Bilderstellungsdatum, Autor&#8230;) </li>
<li>In Suchergebnissen werden Bilder in Bildbibliotheken als Miniaturansicht angezeigt </li>
<li>Bildbibliotheken unterstützen <strong>keine </strong>Datenblattansicht, d.h. die Mehrfachbearbeitung von Metadaten ist nicht möglich </li>
<li>Es wird <strong>keine </strong>Vorschau mit weiteren Eigenschaften/Funktionen angezeigt beim Berühren einer Miniaturansicht mit der Maus </li>
<li>Die Bildbibliothek wird <strong>nicht</strong> mit der aktuelle Benutzeroberfläche (Menüband) angezeigt </li>
</ul>
<p><em>Hinweis: Wenn Dateien in anderen Formaten hochgeladen werden, wird u.a. keine Vorschau angezeigt. Dies gilt ebenfalls für Grafiken im Vektorvormat (PSD, EPS&#8230;) wie für PDF-Dateien.</em></p>
<h4>Objektbibliothek (Asset Libraries)</h4>
<p>In Medienbibliotheken können ebenfalls Bilder sowie zusätzlich Audio- und Videodateien abgespeichert werden. Hier die Funktionalitäten und Eigenschaften:</p>
<ul>
<li>
<p>Es werden folgende Bildformate unterstützt: BMP, GIF, ICO, JPEG, PNG und TIFF</p>
</li>
<li>
<p>Weiterhin werden diverse Video- (MPEG4, WMV) und Audioformate (MP3, WMA, WAV) unterstützt. Die vollständige Auflistung hier:        <br /><a href="http://msdn.microsoft.com/en-us/library/cc189080(VS.95).aspx">http://msdn.microsoft.com/en-us/library/cc189080(VS.95).aspx</a></p>
</li>
<li>
<p>Es stehen zwei Ansichtsformate zur Verfügung:        <br />- Miniaturansicht (Bilder werden direkt angezeigt, für Videos und Audiodateien werden entsprechende Standardgrafiken angezeigt, die über die Eigenschaften angepasst werden können)         <br />- Details (Listenansicht)</p>
</li>
<li>
<p>Das Hochladen mehrerer Dateien gleichzeitig funktioniert wie bei Dokumentenbibliotheken per Drag &amp; Drop</p>
</li>
<li>
<p>Beim Hochladen werden manche Metadaten automatisch übernommen, falls erweiterte Bilddaten ebenfalls übernommen werden sollen (Kamera, GPS-Daten&#8230;), können zusätzliche Spalten eingerichtet werden wie hier beschrieben: <a href="http://blogs.msdn.com/b/michaelp/archive/2011/05/13/automatic-metadata-extraction-of-digital-assets-in-sharepoint-2010.aspx">http://blogs.msdn.com/b/michaelp/archive/2011/05/13/automatic-metadata-extraction-of-digital-assets-in-sharepoint-2010.aspx</a></p>
</li>
<li>
<p>Die Datenblattansicht wird unterstützt, d.h. Mehrfachbearbeitung von Metadaten ist möglich</p>
</li>
<li>
<p>In der Miniaturansicht wird beim Berühren mit der Maus eine Vorschau der Datei angezeigt, von dort aus können weitere Aktionen gestartet werden (Video abspielen&#8230;)</p>
</li>
<li>
<p>Die Medienbibliothek unterstützt die grafische Benutzeroberfläche (Menüband)</p>
</li>
<li>
<p>Bilder in Objektbibliotheken werden in Suchergebnissen <strong>nicht</strong> als Miniaturansicht angezeigt, hier ein möglicher Workaround, der jedoch in der Zentraladministration von SharePoint eingerichtet werden muss:         <br /><a href="http://www.sharepointblog.com/2010/11/image-content-type-thumbnails-in-2010.html">http://www.sharepointblog.com/2010/11/image-content-type-thumbnails-in-2010.html</a></p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2011/11/25/vergleich-objekt-und-bildbibliothek-in-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fehler beim Einf&#252;gen einer Spalte vom Typ Verwaltete Metadaten</title>
		<link>http://blog.mindbusiness.de/blog/2011/08/17/fehler-beim-einfgen-einer-spalte-vom-typ-verwaltete-metadaten/</link>
		<comments>http://blog.mindbusiness.de/blog/2011/08/17/fehler-beim-einfgen-einer-spalte-vom-typ-verwaltete-metadaten/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 07:08:32 +0000</pubDate>
		<dc:creator>Bernhard Straub</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[metadaten]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[taxonomie]]></category>
		<category><![CDATA[zentraladministration]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/2011/08/17/fehler-beim-einfgen-einer-spalte-vom-typ-verwaltete-metadaten/</guid>
		<description><![CDATA[<p>Wer in einer Liste oder Bibliothek eine Spalte vom Typ &#34;Verwaltete Metadaten&#34; hinzufügen möchte und dort die Option &#34;Ausdruckssatz anpassen&#34; wählt, erhält möglicherweise die Fehlermeldung &#34;Der Standardterminologiespeicher für diese Website kann nicht identifiziert werden&#34;:</p>
<p></p>
<p>Hier muss eine Einstellung in der Zentraladministration von SharePoint 2010 erfolgen, und zwar unter Anwendungsverwaltung – Dienstanwendungen verwalten. Selektieren Sie dort den [...]]]></description>
			<content:encoded><![CDATA[<p>Wer in einer Liste oder Bibliothek eine Spalte vom Typ &quot;Verwaltete Metadaten&quot; hinzufügen möchte und dort die Option &quot;Ausdruckssatz anpassen&quot; wählt, erhält möglicherweise die Fehlermeldung &quot;Der Standardterminologiespeicher für diese Website kann nicht identifiziert werden&quot;:</p>
<p><a href="http://www.mindbusiness.de/blog/wp-content/uploads/2011/08/SNAGHTML2b49eb.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML2b49eb" border="0" alt="SNAGHTML2b49eb" src="http://www.mindbusiness.de/blog/wp-content/uploads/2011/08/SNAGHTML2b49eb_thumb.png" width="458" height="175" /></a></p>
<p>Hier muss eine Einstellung in der Zentraladministration von SharePoint 2010 erfolgen, und zwar unter <em>Anwendungsverwaltung – Dienstanwendungen verwalten</em>. Selektieren Sie dort den gewünschten Managed Metadata Service, d.h. die dazugehörige Verbindung…</p>
<p><a href="http://www.mindbusiness.de/blog/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.mindbusiness.de/blog/wp-content/uploads/2011/08/image_thumb.png" width="386" height="69" /></a></p>
<p>… und wählen dann im Menüband die Eigenschaften. Aktivieren Sie nun im Fenster die Option &quot;Diese Dienstanwendung ist der Standardspeicherort für spaltenspezifische Ausdruckssätze.</p>
<p><a href="http://www.mindbusiness.de/blog/wp-content/uploads/2011/08/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.mindbusiness.de/blog/wp-content/uploads/2011/08/image_thumb1.png" width="758" height="125" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2011/08/17/fehler-beim-einfgen-einer-spalte-vom-typ-verwaltete-metadaten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight und Web Services &#8211; Wie viele Items wurden aus einer SharePoint Liste gelesen</title>
		<link>http://blog.mindbusiness.de/blog/2011/02/13/silverlight-und-webservices-wieviele-items-wurden-aus-einer-sharepointliste-gelesen/</link>
		<comments>http://blog.mindbusiness.de/blog/2011/02/13/silverlight-und-webservices-wieviele-items-wurden-aus-einer-sharepointliste-gelesen/#comments</comments>
		<pubDate>Sun, 13 Feb 2011 10:45:00 +0000</pubDate>
		<dc:creator>Albrecht Darimont</dc:creator>
				<category><![CDATA[MindBusiness]]></category>
		<category><![CDATA[BPOS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/2011/02/13/silverlight-und-webservices-wieviele-items-wurden-aus-einer-sharepointliste-gelesen/</guid>
		<description><![CDATA[<p>In diesem Beispiel möchte ich zeigen, wie man die Anzahl der gelesenen Items ermitteln kann, die aus einer SharePoint Liste via Web Services ausgelesen wurden.</p>
Der Ausdruck sieht so aus.
<p>Int32.Parse(e.Result.Elements().First().Attribute(&#34;ItemCount&#34;).Value)</p>
<p>Dabei ist e ein Object vom Typ GetListItemsCompletedEventArgs</p>
<p>Um zum Beispiel Null-Pointer Exceptions zu vermeiden, kann man vor dem ersten Lesen eines Items folgende Zeile voranstellen:</p>
<p>if (Int32.Parse(e.Result.Elements().First().Attribute(&#34;ItemCount&#34;).Value) == [...]]]></description>
			<content:encoded><![CDATA[<p><font size="3">In diesem Beispiel möchte ich zeigen, wie man die Anzahl der gelesenen Items ermitteln kann, die aus einer SharePoint Liste via Web Services ausgelesen wurden.</font></p>
<h3><font size="3">Der Ausdruck sieht so aus.</font></h3>
<p><font size="3" face="Courier New"><font color="#4f81bd">Int32</font>.Parse(e.Result.Elements().First().Attribute(&quot;<font color="#ff0000">ItemCount</font>&quot;).Value)</font></p>
<p><font size="3">Dabei ist <font color="#0000ff" face="Courier New">e</font> ein Object vom Typ <font color="#0000ff" face="Courier New">GetListItemsCompletedEventArgs</font></font></p>
<p><font color="#000000" size="3">Um zum Beispiel Null-Pointer Exceptions zu vermeiden, kann man vor dem ersten Lesen eines Items folgende Zeile voranstellen:</font></p>
<p><font size="3" face="Courier New"><font color="#0000ff">if</font> (<font color="#4f81bd">Int32</font>.Parse(e.Result.Elements().First().Attribute(&quot;<font color="#ff0000">ItemCount</font>&quot;).Value) == 0) <font color="#0000ff">return</font>;</font></p>
<p><font size="3"><strong>Voraussetzung</strong></font>:</p>
<p><font color="#000000" size="3">einbinden der Bibliothek</font></p>
<p><font size="3" face="Courier New"><font color="#0000ff">using</font> System.Linq; </font></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2011/02/13/silverlight-und-webservices-wieviele-items-wurden-aus-einer-sharepointliste-gelesen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Was kann SharePoint 2010? Funktionen &amp; Webparts im Überblick!</title>
		<link>http://blog.mindbusiness.de/blog/2010/08/31/was-kann-sharepoint-2010-funktionen-webparts-im-uberblick/</link>
		<comments>http://blog.mindbusiness.de/blog/2010/08/31/was-kann-sharepoint-2010-funktionen-webparts-im-uberblick/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 08:50:54 +0000</pubDate>
		<dc:creator>Sara Unverhau</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Webparts 2010]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/2010/08/31/was-kann-sharepoint-2010-funktionen-webparts-im-uberblick/</guid>
		<description><![CDATA[<p>SharePoint 2010 bietet viele Möglichkeiten und Funktionalitäten. Des Weiteren glänzt SharePoint durch seine Vielzahl an Webparts.</p>
<p>In dieser PDF-Datei finden Sie alle Funktionalitäten und Webparts nach SharePoint-Version und –Bereich!</p>
<p>Für Fragen kontaktieren Sie uns – wir freuen uns auf Sie.</p>
]]></description>
			<content:encoded><![CDATA[<p>SharePoint 2010 bietet viele Möglichkeiten und Funktionalitäten. Des Weiteren glänzt SharePoint durch seine Vielzahl an Webparts.</p>
<p>In dieser <a href="http://www.mindbusiness.de/blog/wp-content/uploads/2010/08/SharePoint2010-FunktionalitaetenImUerblick.pdf" target="_blank">PDF-Datei </a>finden Sie alle Funktionalitäten und Webparts nach SharePoint-Version und –Bereich!</p>
<p>Für Fragen <a href="http://www.mindbusiness.de/index.php?2009_KONTAKT&amp;ni=209&amp;ni=209" target="_blank">kontaktieren Sie uns</a> – wir freuen uns auf Sie.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2010/08/31/was-kann-sharepoint-2010-funktionen-webparts-im-uberblick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 Solution Installer</title>
		<link>http://blog.mindbusiness.de/blog/2010/07/08/sharepoint-2010-solution-installer/</link>
		<comments>http://blog.mindbusiness.de/blog/2010/07/08/sharepoint-2010-solution-installer/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 19:59:27 +0000</pubDate>
		<dc:creator>Torsten Schuster</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/2010/07/08/sharepoint-2010-solution-installer/</guid>
		<description><![CDATA[<p>Eine neu überarbeitete Version des allseits beliebten SharePoint Solution Installers ist auf http://sharepointberater.de ab sofort verfügbar. </p>

der Installer ist mit einer Demo Solution in eimem zip Kontainer verpackt 
die Demo Solution enthält das bekannte Demo Farm feature 
die enthaltene unveränderte Solution lässt sich mit dem Installer auf WSS &#38;&#38; MOSS, SharePoint Foundation &#38;&#38; natuerlich auch [...]]]></description>
			<content:encoded><![CDATA[<p>Eine neu überarbeitete Version des allseits beliebten <a href="http://sharepointinstaller.codeplex.com/" target="_blank">SharePoint Solution Installers</a> ist auf <a href="http://sharepointberater.de">http://sharepointberater.de</a> ab sofort <a href="http://spberater.mindbusiness.org/Documents/_SP_Solution_Installer_for_v3_v4.zip_" target="_blank">verfügbar</a>. </p>
<ul>
<li>der Installer ist mit einer Demo Solution in eimem zip Kontainer verpackt </li>
<li>die Demo Solution enthält das bekannte Demo Farm feature </li>
<li>die enthaltene unveränderte Solution lässt sich mit dem Installer auf WSS &amp;&amp; MOSS, SharePoint Foundation &amp;&amp; natuerlich auch auf SharPoint Sever 2010 gleichermaßen für Demo Zwecke bereitstellen </li>
<li>gleiches gilt fuer das, ebenfalls im zip verpackte aktuelle, Gantt Eval Web Part (<a href="http://www.share4suite.de/index.php?SOFTWARE_SP_TOOLS_SHARE4GANTT" target="_blank">ausführliche Beschreibung hier</a>) </li>
</ul>
<p>[<strong><em>Update</em></strong> mit dem Installer lassen sich alle Solutions unter SP2010 installieren, welche in ihrem manifest keine nicht mehr unterstützten Attribute enhalten und/oder in deren Ablaufkode keine SP-Objekte referenzieren, welche nicht mehr implementiert sind :-(]</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2010/07/08/sharepoint-2010-solution-installer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 Service Manager auf CodePlex</title>
		<link>http://blog.mindbusiness.de/blog/2010/06/28/sp2010servicemanager/</link>
		<comments>http://blog.mindbusiness.de/blog/2010/06/28/sp2010servicemanager/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 06:00:36 +0000</pubDate>
		<dc:creator>Dirk Grasekamp</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/?p=876</guid>
		<description><![CDATA[<p>Ein PC oder Laptop mit einer 2-Kern-CPU und 4 GB RAM mit Windows 7 oder Windows Vista SP2 64-Bit reichen aus, um eine Entwickler-, Evaluierungs- oder Demoumgebung mit SharePoint 2010 (Foundation oder Server) einzurichten. Ist so eine Maschine eingerichtet, stellt man unweigerlich fest, dass SharePoint 2010 Ressourcen in Anspruch nimmt und sogar schnellere Maschinen für [...]]]></description>
			<content:encoded><![CDATA[<p>Ein PC oder Laptop mit einer 2-Kern-CPU und 4 GB RAM mit Windows 7 oder Windows Vista SP2 64-Bit reichen aus, um eine Entwickler-, Evaluierungs- oder Demoumgebung mit SharePoint 2010 (Foundation oder Server) einzurichten. Ist so eine Maschine eingerichtet, stellt man unweigerlich fest, dass SharePoint 2010 Ressourcen in Anspruch nimmt und sogar schnellere Maschinen für das Starten länger brauchen. Gerade bei „Unterwegs-Maschinen“, die nicht nur für die o.g. SharePoint-Zwecke eingerichtet wurden, ist das hier und da kein Vorteil.</p>
<p>Mit dem Tool SharePoint 2010 Service Manager können die für SharePoint 2010 benötigten Dienste einfach gestoppt werden. Das gibt Ressourcen frei.</p>
<p>SharePoint 2010 Service Manager auf der CodePlex-Seite (spät gefunden): <a title="SharePoint 2010 Service Manager" href="http://sharepointserviceman.codeplex.com/" target="_blank">http://sharepointserviceman.codeplex.com/</a></p>
<div id="attachment_877" class="wp-caption alignnone" style="width: 310px"><a title="SharePoint 2010 Service Manager" href="http://www.mindbusiness.de/blog/wp-content/uploads/2010/06/SharePoint2010_Service_Manager.png" target="_blank"><img class="size-medium wp-image-877" title="SharePoint 2010 Service Manager" src="http://www.mindbusiness.de/blog/wp-content/uploads/2010/06/SharePoint2010_Service_Manager-300x282.png" alt="SharePoint 2010 Service Manager" width="300" height="282" /></a><p class="wp-caption-text">SharePoint 2010 Service Manager</p></div>
<p><strong>Achtung:</strong> Das Tool verfügt über die unübersehbare Schaltfläche <em>Stop SharePoint 2010 from starting automatically when Windows starts</em>, die eben beim Start verhindert, dass die Dienste für SharePoint 2010 gestartet werden und kümmert sich dabei auch um SQL Server. Dabei wird offenbar nicht unterschieden, ob SQL Server noch für weitere Zwecke eingesetzt wird. Zum einen ist die Funktion prima, um Windows zu einem schnelleren Start zu bewegen, und zum anderen verhindert sie, dass vielleicht benötigte SQL Server-Dienste gestartet werden. Grundsätzlich ist das Tool eine feine Sache.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2010/06/28/sp2010servicemanager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint ListItems mit Silverlight updaten &#8211; was tun bei leeren Felder</title>
		<link>http://blog.mindbusiness.de/blog/2010/03/25/sharepoint-listitems-mit-silverlight-updaten-was-tun-bei-leeren-felder/</link>
		<comments>http://blog.mindbusiness.de/blog/2010/03/25/sharepoint-listitems-mit-silverlight-updaten-was-tun-bei-leeren-felder/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 18:26:28 +0000</pubDate>
		<dc:creator>Albrecht Darimont</dc:creator>
				<category><![CDATA[MindBusiness]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[BPOS]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/2010/03/25/sharepoint-listitems-mit-silverlight-updaten-was-tun-bei-leeren-felder/</guid>
		<description><![CDATA[<p>Dieser Blog beschreibt, wie man mit einer Silverlight-Anwendung ein BPOS-ListItem updaten kann, das&#160; eventuell leere Felder hat. Das Grundproblem besteht darin, dass man zuerst das Item laden muss, bevor es aktualisiert werden kann. Aus verständlichen Performance-Gründen sendet der Web Service aber nur Felder mit Inhalt. </p>
<p>Diese werden auf Attribute gemappt. Wenn ein Attribut fehlt, weil [...]]]></description>
			<content:encoded><![CDATA[<p>Dieser Blog beschreibt, wie man mit einer Silverlight-Anwendung ein BPOS-ListItem updaten kann, das&#160; eventuell leere Felder hat. Das Grundproblem besteht darin, dass man zuerst das Item laden muss, bevor es aktualisiert werden kann. Aus verständlichen Performance-Gründen sendet der Web Service aber nur Felder mit Inhalt. </p>
<p>Diese werden auf Attribute gemappt. Wenn ein Attribut fehlt, weil es im Item keinen Inhalt hat, dann laufen wir auf einen Fehler wenn wir auf das Attribut zugreifen um es in unsere Eingabemaske zu schreiben.</p>
<h3>Zwei Lösungsansätze – Attribute hinzufügen oder vor jedem Zugriff testen</h3>
<h5>Attribute hinzufügen</h5>
<p>In der beschriebenen BPOS-Lösung wurde eine interaktive Eingabemaske erstellt, die sowohl zum Anlegen als auch zum Aktualisieren eines Items verwendet wird. </p>
<p>Die zugrundeliegende Tabelle sieht in diesem Beispiel so aus:</p>
<p><a href="http://www.mindbusiness.de/blog/wp-content/uploads/2010/03/image1.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image" src="http://www.mindbusiness.de/blog/wp-content/uploads/2010/03/image_thumb1.png" width="872" height="468" /></a> </p>
<p>&#160;</p>
<p>Dabei wird das zu aktualisierende Item über den Namen gesucht, der in einem AutoComplete-Feld eingeben wird.</p>
<p><a href="http://www.mindbusiness.de/blog/wp-content/uploads/2010/03/image2.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image" src="http://www.mindbusiness.de/blog/wp-content/uploads/2010/03/image_thumb2.png" width="349" height="270" /></a> </p>
<p>&#160;</p>
<p>Ich habe dabei folgende Abfrage entwickelt, die eine Helpermethode zum erzeugen der Query verwendet.Die Enumeration <strong><em>ClubListen</em></strong> dient dazu, die verschiedenen asynchronen Requests zu identifizieren.</p>
<blockquote><p>XElement query = XDocument.Parse(this.makeCamelID(this.AutoNamen.Text)).Element(&quot;Query&quot;);</p>
<p>this.flagListe = ClubListen.MITGLIED_EINFUEGEN;      <br />proxy.GetListItemsAsync(ListenGUID.Mitglieder, null, query, null, null, null, null);</p>
</blockquote>
<p><a href="http://www.mindbusiness.de/blog/wp-content/uploads/2010/03/image3.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image" src="http://www.mindbusiness.de/blog/wp-content/uploads/2010/03/image_thumb3.png" width="360" height="276" /></a> </p>
<p>Die Methode wird beim Klick auf den Button <strong><em>Einfügen</em></strong> ausgelöst.</p>
<p>&#160;</p>
<p>Die registrierte Callback-Methode sieht dann so aus:</p>
<blockquote><p>void proxy_GetListItemsCompleted(object sender, GetListItemsCompletedEventArgs e)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ….. // Code ausgelassen&#160;&#160; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160; if (flagListe == ClubListen.MITGLIED_EINFUEGEN)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.populateMaske(e); </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160; …… // Code ausgelassen</p>
<p>&#160;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</p>
</blockquote>
<p>Ich rufe die Helpermethode <strong><em>populateMaske(e)</em></strong> auf, der als Parameter das Ergebnis des asynchronen Request übergeben wird. Und in dieser Methode wird dann das eingangs beschriebene Problem gelöst.</p>
<p>Die Methode ist relativ lang. Deshalb wird sie hier in kleinen Modulen beschrieben.</p>
<p>In einem ersten Schritt sorge ich dafür, dass fehlende Attribute erzeugt und mit einem Standardwert belegt werden. Dazu brauche ich einen String, der alle Attribute, die ich erwarten muss, enthält. Dieser String mappt in gewisser Weise die&#160; Eingabemaske.</p>
<blockquote><p>String suchString = &quot;ows_Title;ows_FirstName;ows_WorkAddress;ows_WorkZip;ows_WorkCity;ows_HomePhone;&quot;;      <br />suchString += &quot;ows_Email;ows_Geburtstag;ows_Abteilung;ows_Posten;ows_Mitglied_seit;ows_ID&quot;;</p>
</blockquote>
<p>Als nächste erzeuge ich ein XElement, welches das für die Maske relevante Element aus dem XML des asynchronen Requests extrahiert. Dazu muss man natürlich den Aufbau des Response kennen. Dieser wird aber noch an anderer Stelle in einem Blogbeitrag beschrieben werden.</p>
<blockquote><p>XElement element = e.Result.Elements().First().Elements().First();</p>
</blockquote>
<p>In diesem Element finde ich aber <strong>nur die Attribute der Felder des Items, die nicht leer sind</strong>.</p>
<p>Deshalb müssen wir nun schauen, welche Attribute fehlen.</p>
<blockquote><p>IEnumerable&lt;XAttribute&gt; attribute = element.Attributes();      <br />String[] myAttribute = new String[attribute.Count()]; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; int i = 0;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (XAttribute attribut in attribute)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; myAttribute[i] = attribut.Name.ToString();       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; i++;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (String s in suchString.Split(&#8216;;&#8217;))      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (!myAttribute.Contains(s))       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; XAttribute x = new XAttribute(s, &quot;&quot;);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; element.Add(x);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</p>
</blockquote>
<p>Als erstes erzeugen ich&#160; eine iterierbare Attribut-Collection. Deren Anzahl dient zur dynamischen Erzeugen eines String-Arrays, in das ich den Namen der Attribute schreiben. </p>
<p>&#160;</p>
<blockquote><p>&#160; int i = 0;    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (XAttribute attribut in attribute)     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; myAttribute[i] = attribut.Name.ToString();     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; i++;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p></blockquote>
<p>&#160;</p>
<p>Jetzt weis ich, welche Attribute, sprich Felder, übertragen wurden.</p>
<p>Im nächsten Schritt lege ich alle Attribute an, die nicht übertragen wurden, weil die Felder im SharePoint-Item leer waren.</p>
<blockquote><p>foreach (String s in suchString.Split(&#8216;;&#8217;))      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (!myAttribute.Contains(s))       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; XAttribute x = new XAttribute(s, &quot;&quot;);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; element.Add(x);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</p>
</blockquote>
<p>Finde ich das Attribut, genauer seinen Namen nicht, weil es nicht im String enthalten ist, dann erzeuge ich das Attribut und füge es dem XElement zu.</p>
<p>Jetzt kann ich alle meine Maskenfelder füllen. Sollten zukünftig weitere Felder hinzukommen, muss ich lediglich den Suchstring erweitern.</p>
<h5>Vor jedem Zugriff Testen, ob das Attribute vorhanden ist</h5>
<p>Bei diesem Ansatz habe ich ein Array mit allen möglichen Attributen erstellt, die ich in die Eingabemaske schreiben möchten. Ein Ausschnitt des Arrays sieht dann so aus:</p>
<blockquote><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.mAttribute[1] = &quot;ows_FirstName&quot;;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.mAttribute[2] = &quot;ows_Title&quot;;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.mAttribute[3] = &quot;ows_Strasse&quot;;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.mAttribute[4] = &quot;ows_WorkZip&quot;;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.mAttribute[5] = &quot;ows_WorkCity&quot;;</p>
</blockquote>
<p>Beim Befüllen der Maske überprüfe ich vor jedem Zugriff, ob es das Attribut gibt. Wenn ja, schreibe ich seinen Inhalt, Value, in das entsprechende Eingabefeld.</p>
<blockquote><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (myAttribute.Contains(mAttribute[1])) this.txtName.Text = element.Attribute(mAttribute[1]).Value;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (myAttribute.Contains(mAttribute[2])) this.txtNachname.Text = element.Attribute(mAttribute[2]).Value;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (myAttribute.Contains(mAttribute[3])) this.txtStrasse.Text = element.Attribute(mAttribute[3]).Value;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (myAttribute.Contains(mAttribute[4])) this.txtPLZ.Text = element.Attribute(mAttribute[4]).Value;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (myAttribute.Contains(mAttribute[5])) this.txtOrt.Text = element.Attribute(mAttribute[5]).Value;</p>
</blockquote>
<p>Bei entsprechendem Aufbau der Eingabemaske kann mit wenig Aufwand die Eingabemaske um weiteren Feldern erweitert werden. Dazu muss dann lediglich das Array erweitert werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2010/03/25/sharepoint-listitems-mit-silverlight-updaten-was-tun-bei-leeren-felder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AutoComplete Box aus einer BPOS-Liste f&#252;llen</title>
		<link>http://blog.mindbusiness.de/blog/2010/03/14/autocomplete-box-aus-einer-bpos-liste-fllen/</link>
		<comments>http://blog.mindbusiness.de/blog/2010/03/14/autocomplete-box-aus-einer-bpos-liste-fllen/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 18:07:34 +0000</pubDate>
		<dc:creator>Albrecht Darimont</dc:creator>
				<category><![CDATA[MindBusiness]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/2010/03/14/autocomplete-box-aus-einer-bpos-liste-fllen/</guid>
		<description><![CDATA[<p>Dieser Beitrag beschreibt, wie man eine Silverlight AutoComplete Box mit dem Inhalt einer BPOS-Liste füllen kann. In diesem Blog beschreibe ich nur diese Funktion und gehe davon aus, dass die Liste asynchron über den Web Service Lists.asmx ausgelesen wurde. Das Ergebnis steht dann in e.Result (eine XML-Auflistung von Datensätzen).</p>
<p>Ich selektieren über einen  XML.Linq Ausdruck alle [...]]]></description>
			<content:encoded><![CDATA[<p>Dieser Beitrag beschreibt, wie man eine Silverlight <strong><em>AutoComplete Box</em></strong> mit dem Inhalt einer BPOS-Liste füllen kann. In diesem Blog beschreibe ich nur diese Funktion und gehe davon aus, dass die Liste asynchron über den Web Service <strong><em>Lists.asmx</em></strong> ausgelesen wurde. Das Ergebnis steht dann in <strong><em>e.Result</em></strong> (eine XML-Auflistung von Datensätzen).</p>
<p>Ich selektieren über einen  XML.Linq Ausdruck alle Elemente des ersten Elements unterhalb des Root-Elements. Hier gibt es das Attribut <strong><em>“ows_FullName”,</em></strong> dessen Value als String in eine typisierte Liste geschrieben wird.<strong><em> </em></strong></p>
<blockquote><p>var dieListe = (from x in e.Result.Elements().First().Elements()<br />
                           select x.Attribute(&#8220;ows_FullName&#8221;).Value);<br />
this.AutoFamilie.ItemsSource = dieListe;</p></blockquote>
<p>In unserer Silverlight-Anwendung habe ich eine AutoComplete Box definiert.</p>
<p><a href="http://www.mindbusiness.de/blog/wp-content/uploads/2010/03/image.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" src="http://www.mindbusiness.de/blog/wp-content/uploads/2010/03/image_thumb.png" border="0" alt="image" width="446" height="84" /></a></p>
<p>Der Box wird als ItemSource-Eigenschaft die Liste <strong><em>dieListe</em></strong> zugewiesen. Fertig ist ein typisches Ajax-Element. Für eigene Anwendung muss man lediglich den Namen des<strong><em> x.Attribute</em></strong> anpassen.</p>
<p>Die beschriebene Logik funktioniert mit jeder Liste, die das Interface<strong><em> IEnumerable</em></strong>  implementiert.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2010/03/14/autocomplete-box-aus-einer-bpos-liste-fllen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML-Request-Parameter in Silverlight-Anwendungen &#252;bernehmen</title>
		<link>http://blog.mindbusiness.de/blog/2010/03/14/html-request-parameter-in-silverlight-anwendungen-bernehmen/</link>
		<comments>http://blog.mindbusiness.de/blog/2010/03/14/html-request-parameter-in-silverlight-anwendungen-bernehmen/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 17:17:51 +0000</pubDate>
		<dc:creator>Albrecht Darimont</dc:creator>
				<category><![CDATA[MindBusiness]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/2010/03/14/html-request-parameter-in-silverlight-anwendungen-bernehmen/</guid>
		<description><![CDATA[<p>Dieser Beitrag beschreibt die Lösung der folgenden Aufgabenstellung, die sich immer wieder ergibt.</p>
In einer Silverlight-Anwendung soll ein Parameter aus dem HTML-Request übernommen werden. 
<p>Ich gehe von folgendem Request aus:</p>
<p>%URI%?Mitgliedsnummer=4&#38;x=y&#38;Item=test</p>
<p>Der Wert der Mitgliedsnummer soll in eine Textbox übernommen werden. Dies geschieht sinnvoller Weise, indem im Konstruktor für das Event Loaded ein Event-Handler registriert wird.</p>
<p>Loaded += new [...]]]></description>
			<content:encoded><![CDATA[<p>Dieser Beitrag beschreibt die Lösung der folgenden Aufgabenstellung, die sich immer wieder ergibt.</p>
<h4><strong><em>In einer Silverlight-Anwendung soll ein Parameter aus dem HTML-Request übernommen werden. </em></strong></h4>
<p>Ich gehe von folgendem Request aus:</p>
<p><strong><em><span style="color: #0000ff">%URI%?Mitgliedsnummer=4&amp;x=y&amp;Item=test</span></em></strong></p>
<p>Der Wert der <strong><em>Mitgliedsnummer</em></strong> soll in eine <strong><em>Textbox</em></strong> übernommen werden. Dies geschieht sinnvoller Weise, indem im Konstruktor für das Event <strong><em>Loaded </em></strong>ein<strong><em> </em></strong>Event-Handler registriert wird.</p>
<blockquote><p>Loaded += new RoutedEventHandler(MainPage_Loaded);</p></blockquote>
<p> </p>
<p>Die Implementierung wird im folgenden Listing gezeigt. Wichtig ist, dass man über Silverlight auf das Objektmodell des Browsers zugreifen kann.</p>
<blockquote><p><span style="font-size: x-small">void MainPage_Loaded(object sender, RoutedEventArgs e)<br />
        {</span></p>
<p><span style="font-size: x-small">            bool pFlag = false;</span></p>
<p><span style="font-size: x-small">            String nummer = &#8220;&#8221;;</span></p>
<p><span style="font-size: x-small">            foreach (String myKey in  HtmlPage.Document.QueryString.Keys) {</span></p>
<p><span style="font-size: x-small">                   if (myKey == &#8220;Mitgliedsnummer&#8221;) {</span></p>
<p><span style="font-size: x-small">                       pFlag = HtmlPage.Document.QueryString.TryGetValue(myKey,out nummer);</span></p>
<p><span style="font-size: x-small">                      break;</span></p>
<p><span style="font-size: x-small">                   }</span></p>
<p><span style="font-size: x-small">            }</span></p>
<p><span style="font-size: x-small">            if (pFlag) {</span></p>
<p><span style="font-size: x-small">                this.txtMitgliedsnummer.Text = nummer;</span></p>
<p><span style="font-size: x-small">            }</span></p>
<p><span style="font-size: x-small">        }</span></p></blockquote>
<p>An der Lösung sind drei Objekte beteiligt:</p>
<ul>
<li>Die Verwendung des <strong><em>HTMLPage</em></strong> Objektes aus dem Namespace <strong><em>System.Windows.Browser</em></strong>.</li>
<li>Hier finden ich das <strong><em>Document</em></strong> Objekt und dieses hat wiederum ein <strong><em>QueryString</em></strong> Objekt. Damit kann ich den HTML-Request darstellen.</li>
</ul>
<p>Auf der Basis dieses Objektmodells ist die Umsetzung relativ einfach.</p>
<ol>
<li>Mit Hilfe von foreach werden <strong><em>Keys</em></strong> des <strong><em>QueryString</em></strong>-Objektes durchlaufen (ich weis nicht, ob noch weitere Parameter übergeben werden)</li>
<li>Wenn ich den Key finden, dann lesen ich über <strong><em>TryGetValue(string key, out string</em></strong>) den zum Key gehörenden Wert aus. Die Funktion liefert war oder falsch.</li>
<li>Danach schreiben ich, wenn es denn einen Übergabeparameter <strong><em>Mitgliedsnummer</em></strong> gegeben hat, diesen Wert in die TextBox <strong><em>txtMitgliednummer</em></strong>.</li>
</ol>
<p>Die Funktion kann auch noch kürzer geschrieben werden:</p>
<blockquote><p>String nummer = &#8220;&#8221;;<br />
            foreach (String myKey in HtmlPage.Document.QueryString.Keys)<br />
            {<br />
                if (myKey == &#8220;Mitgliedsnummer&#8221;)<br />
                {<br />
                    if (HtmlPage.Document.QueryString.TryGetValue(myKey, out nummer))<br />
                        this.txtMitgliedsnummer.Text = nummer;<br />
                        break;<br />
                }<br />
            }</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2010/03/14/html-request-parameter-in-silverlight-anwendungen-bernehmen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

