<?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; Software</title>
	<atom:link href="http://blog.mindbusiness.de/blog/category/software/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>Thu, 15 Dec 2011 20:49:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Implementation of IWebPartParameters web part</title>
		<link>http://blog.mindbusiness.de/blog/2011/09/05/implementation-of-iwebpartparameters-web-part/</link>
		<comments>http://blog.mindbusiness.de/blog/2011/09/05/implementation-of-iwebpartparameters-web-part/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 16:38:18 +0000</pubDate>
		<dc:creator>Torsten Schuster</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/2011/09/05/implementation-of-iwebpartparameters-web-part/</guid>
		<description><![CDATA[<p>A client was asking for a connectable web part, sending a parameter to data form web part (dfwp) build by SharePointDesigner. </p>
<p>The first you will read on Microsoft msdn for SharePoint 2010 about this requirement should be: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.communication.iparametersoutprovider.aspx. </p>
<p>Uups, there is a bold NOTE: This API is now obsolete (IParametersOutProvider) and where is the link [...]]]></description>
			<content:encoded><![CDATA[<p>A client was asking for a connectable web part, sending a parameter to data form web part (dfwp) build by SharePointDesigner. </p>
<p>The first you will read on Microsoft msdn for SharePoint 2010 about this requirement should be: <a title="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.communication.iparametersoutprovider.aspx" href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.communication.iparametersoutprovider.aspx">http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.communication.iparametersoutprovider.aspx</a>. </p>
<p>Uups, there is a bold <strong>NOTE: This API is now obsolete (IParametersOutProvider) </strong>and where is the link to the new one?&#160; .. i was&#160; adapting the example for my test solution.</p>
<p>If i copied the complete code to my own web part class and compile this code first time, i got a message on my classname: <strong>‘Microsoft.SharePoint.WebPartPages.Communication.IParametersOutProvider’ is obsolete: ‘Use System.Web.UI.WebControls.WebParts.IWebPartParameters instead’</strong>, why it’s not written in the note?</p>
<p>Trying this code, i was running in an unhandled exception on Step #6. The PartCommunicationConnect was called, the given connectedPart was Null! The exception occurs if you connect a dfwp with parameter binding to my wp implementing IParametersOutProvider. So i realized, this should not my solution.. searching for a fully description on IWebPartParameters.. there are not so many complete stories on the net yet..</p>
<p>Now i will share working c# code like in the above link. </p>
<p>In my example, a hidden web part extracts a sequence from current web URI and send the ‘data’ parameter to a dfwp connected by parameter binding. </p>
<div class="csharpcode">
<pre class="alt"><span class="lnum">   1:  </span><span class="rem">// Common .NET required namespaces</span></pre>
<pre><span class="lnum">   2:  </span><span class="kwrd">using</span> System;</pre>
<pre class="alt"><span class="lnum">   3:  </span><span class="kwrd">using</span> System.ComponentModel;</pre>
<pre><span class="lnum">   4:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">   5:  </span><span class="rem">// WebPart required namespaces</span></pre>
<pre><span class="lnum">   6:  </span><span class="kwrd">using</span> System.Web;</pre>
<pre class="alt"><span class="lnum">   7:  </span><span class="kwrd">using</span> System.Web.UI;</pre>
<pre><span class="lnum">   8:  </span><span class="kwrd">using</span> System.Web.UI.WebControls;</pre>
<pre class="alt"><span class="lnum">   9:  </span><span class="kwrd">using</span> System.Web.UI.WebControls.WebParts;</pre>
<pre><span class="lnum">  10:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  11:  </span><span class="rem">//Step #1: Reference the SharePoint namespace.</span></pre>
<pre><span class="lnum">  12:  </span><span class="kwrd">using</span> Microsoft.SharePoint;</pre>
<pre class="alt"><span class="lnum">  13:  </span>&#160;</pre>
<pre><span class="lnum">  14:  </span><span class="kwrd">namespace</span> ConnectionCodeSamples.WebPartParametersProvider</pre>
<pre class="alt"><span class="lnum">  15:  </span>{</pre>
<pre><span class="lnum">  16:  </span>    <span class="rem">// Step #2: Inherit from the WebPart base class and implement the </span></pre>
<pre class="alt"><span class="lnum">  17:  </span>    <span class="rem">// IWebPartParameters interface.</span></pre>
<pre><span class="lnum">  18:  </span>    [ToolboxItemAttribute(<span class="kwrd">false</span>)]</pre>
<pre class="alt"><span class="lnum">  19:  </span>    <span class="kwrd">public</span> <span class="kwrd">class</span> WebPartParametersProvider : WebPart, IWebPartParameters</pre>
<pre><span class="lnum">  20:  </span>    {</pre>
<pre class="alt"><span class="lnum">  21:  </span>        <span class="rem">// Step #3: Declare private variables for configuration , handling </span></pre>
<pre><span class="lnum">  22:  </span>        <span class="rem">// and a value passed as parameter.</span></pre>
<pre class="alt"><span class="lnum">  23:  </span>        <span class="kwrd">private</span> <span class="kwrd">int</span> _strFirst;</pre>
<pre><span class="lnum">  24:  </span>        <span class="kwrd">private</span> <span class="kwrd">int</span> _strLength;</pre>
<pre class="alt"><span class="lnum">  25:  </span>        <span class="kwrd">private</span> <span class="kwrd">string</span> _myError = <span class="kwrd">string</span>.Empty;</pre>
<pre><span class="lnum">  26:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  27:  </span>        <span class="kwrd">private</span> <span class="kwrd">string</span> _urlData = <span class="str">&quot;WebPartParametersProvider url 'data' value&quot;</span>;</pre>
<pre><span class="lnum">  28:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  29:  </span>        <span class="rem">// Step #4: the provider must implement a list of property descriptors </span></pre>
<pre><span class="lnum">  30:  </span>        <span class="rem">// that the consumer is interested in </span></pre>
<pre class="alt"><span class="lnum">  31:  </span>        <span class="kwrd">private</span> PropertyDescriptorCollection _objParameters;</pre>
<pre><span class="lnum">  32:  </span>        <span class="kwrd">public</span> PropertyDescriptorCollection Parameters</pre>
<pre class="alt"><span class="lnum">  33:  </span>        {</pre>
<pre><span class="lnum">  34:  </span>            get { <span class="kwrd">return</span> _objParameters; }</pre>
<pre class="alt"><span class="lnum">  35:  </span>            set { _objParameters = <span class="kwrd">value</span>; }</pre>
<pre><span class="lnum">  36:  </span>        }</pre>
<pre class="alt"><span class="lnum">  37:  </span>&#160;</pre>
<pre><span class="lnum">  38:  </span>        <span class="rem">// Step #5: Constructor</span></pre>
<pre class="alt"><span class="lnum">  39:  </span>        <span class="kwrd">public</span> WebPartParametersProvider()</pre>
<pre><span class="lnum">  40:  </span>        {</pre>
<pre class="alt"><span class="lnum">  41:  </span>            <span class="kwrd">this</span>.ExportMode = WebPartExportMode.All;</pre>
<pre><span class="lnum">  42:  </span>            <span class="kwrd">base</span>.Hidden = <span class="kwrd">true</span>;</pre>
<pre class="alt"><span class="lnum">  43:  </span>        }</pre>
<pre><span class="lnum">  44:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  45:  </span>        <span class="rem">// Step #6: implement ConnectionInterface</span></pre>
<pre><span class="lnum">  46:  </span>        [ConnectionProvider(<span class="str">&quot;my parameters provider&quot;</span>)]</pre>
<pre class="alt"><span class="lnum">  47:  </span>        <span class="kwrd">public</span> IWebPartParameters ConnectionInterface()</pre>
<pre><span class="lnum">  48:  </span>        {</pre>
<pre class="alt"><span class="lnum">  49:  </span>            <span class="kwrd">return</span> <span class="kwrd">this</span>;</pre>
<pre><span class="lnum">  50:  </span>        }</pre>
<pre class="alt"><span class="lnum">  51:  </span>&#160;</pre>
<pre><span class="lnum">  52:  </span>        <span class="rem">// Step #7: implement a schema for the data returned by the provider</span></pre>
<pre class="alt"><span class="lnum">  53:  </span>        <span class="rem">// you need this for the IWebPart* interfaces</span></pre>
<pre><span class="lnum">  54:  </span>        <span class="kwrd">public</span> System.ComponentModel.PropertyDescriptorCollection Schema</pre>
<pre class="alt"><span class="lnum">  55:  </span>        {</pre>
<pre><span class="lnum">  56:  </span>            get</pre>
<pre class="alt"><span class="lnum">  57:  </span>            {</pre>
<pre><span class="lnum">  58:  </span>                PropertyDescriptorCollection objProperties;</pre>
<pre class="alt"><span class="lnum">  59:  </span>                PropertyDescriptor[] arrProperties =</pre>
<pre><span class="lnum">  60:  </span>                    <span class="kwrd">new</span> PropertyDescriptor[Parameters.Count];</pre>
<pre class="alt"><span class="lnum">  61:  </span>                TypeDescriptor.GetProperties(<span class="kwrd">this</span>);</pre>
<pre><span class="lnum">  62:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  63:  </span>                objProperties = TypeDescriptor.GetProperties(<span class="kwrd">this</span>);</pre>
<pre><span class="lnum">  64:  </span>                <span class="kwrd">int</span> intParameterCount = 0;</pre>
<pre class="alt"><span class="lnum">  65:  </span>                <span class="kwrd">foreach</span> (PropertyDescriptor objProperty <span class="kwrd">in</span> Parameters)</pre>
<pre><span class="lnum">  66:  </span>                {</pre>
<pre class="alt"><span class="lnum">  67:  </span>                    <span class="kwrd">if</span> (Parameters[objProperty.Name] != <span class="kwrd">null</span>)</pre>
<pre><span class="lnum">  68:  </span>                    {</pre>
<pre class="alt"><span class="lnum">  69:  </span>                        intParameterCount++;</pre>
<pre><span class="lnum">  70:  </span>                        arrProperties[intParameterCount] = objProperty;</pre>
<pre class="alt"><span class="lnum">  71:  </span>                    }</pre>
<pre><span class="lnum">  72:  </span>                }</pre>
<pre class="alt"><span class="lnum">  73:  </span>&#160;</pre>
<pre><span class="lnum">  74:  </span>                objProperties = <span class="kwrd">new</span> PropertyDescriptorCollection(arrProperties);</pre>
<pre class="alt"><span class="lnum">  75:  </span>                <span class="kwrd">return</span> objProperties;</pre>
<pre><span class="lnum">  76:  </span>            }</pre>
<pre class="alt"><span class="lnum">  77:  </span>        }</pre>
<pre><span class="lnum">  78:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  79:  </span>        <span class="rem">// Step #8: implement a method called SetConsumerSchema(), allows a consumer</span></pre>
<pre><span class="lnum">  80:  </span>        <span class="rem">// to express its interest in a set of parameters provided by provider</span></pre>
<pre class="alt"><span class="lnum">  81:  </span>        <span class="kwrd">public</span> <span class="kwrd">void</span> SetConsumerSchema(System.ComponentModel.PropertyDescriptorCollection schema)</pre>
<pre><span class="lnum">  82:  </span>        {</pre>
<pre class="alt"><span class="lnum">  83:  </span>            Parameters = schema;</pre>
<pre><span class="lnum">  84:  </span>        }</pre>
<pre class="alt"><span class="lnum">  85:  </span>&#160;</pre>
<pre><span class="lnum">  86:  </span>        <span class="rem">// Step #9: implement the GetParametersData(), this will hold a reference</span></pre>
<pre class="alt"><span class="lnum">  87:  </span>        <span class="rem">// to the parameters consumer web part after a connection is established</span></pre>
<pre><span class="lnum">  88:  </span>        <span class="kwrd">public</span> <span class="kwrd">void</span> GetParametersData(ParametersCallback callback)</pre>
<pre class="alt"><span class="lnum">  89:  </span>        {</pre>
<pre><span class="lnum">  90:  </span>            StateBag objParameters = <span class="kwrd">new</span> StateBag();</pre>
<pre class="alt"><span class="lnum">  91:  </span>&#160;</pre>
<pre><span class="lnum">  92:  </span>            <span class="kwrd">foreach</span> (PropertyDescriptor objProperty <span class="kwrd">in</span> Parameters)</pre>
<pre class="alt"><span class="lnum">  93:  </span>            {</pre>
<pre><span class="lnum">  94:  </span>                <span class="kwrd">switch</span> (objProperty.Name)</pre>
<pre class="alt"><span class="lnum">  95:  </span>                {</pre>
<pre><span class="lnum">  96:  </span>                    <span class="kwrd">case</span> <span class="str">&quot;data&quot;</span>:</pre>
<pre class="alt"><span class="lnum">  97:  </span>                        objParameters.Add(<span class="str">&quot;data&quot;</span>, UrlData);</pre>
<pre><span class="lnum">  98:  </span>                        <span class="kwrd">break</span>;</pre>
<pre class="alt"><span class="lnum">  99:  </span>                    <span class="kwrd">default</span>:</pre>
<pre><span class="lnum"> 100:  </span>                        <span class="kwrd">throw</span> <span class="kwrd">new</span> Exception(<span class="str">&quot;WebPartParametersProvider: Unknown parameter name&quot;</span>);</pre>
<pre class="alt"><span class="lnum"> 101:  </span>                }</pre>
<pre><span class="lnum"> 102:  </span>            }</pre>
<pre class="alt"><span class="lnum"> 103:  </span>&#160;</pre>
<pre><span class="lnum"> 104:  </span>            callback.Invoke(objParameters);</pre>
<pre class="alt"><span class="lnum"> 105:  </span>        }</pre>
<pre><span class="lnum"> 106:  </span>&#160;</pre>
<pre class="alt"><span class="lnum"> 107:  </span>        <span class="rem">// Step #10: implement properties for web part configuration </span></pre>
<pre><span class="lnum"> 108:  </span>        <span class="rem">// and to hold our data extracted from current url</span></pre>
<pre class="alt"><span class="lnum"> 109:  </span>        [WebBrowsable(<span class="kwrd">true</span>),</pre>
<pre><span class="lnum"> 110:  </span>        Personalizable(PersonalizationScope.Shared),</pre>
<pre class="alt"><span class="lnum"> 111:  </span>        WebDescription(<span class="str">&quot;The first char in web url to search for (0 based).&quot;</span>)]</pre>
<pre><span class="lnum"> 112:  </span>        <span class="kwrd">public</span> <span class="kwrd">int</span> UrlFirst</pre>
<pre class="alt"><span class="lnum"> 113:  </span>        {</pre>
<pre><span class="lnum"> 114:  </span>            get</pre>
<pre class="alt"><span class="lnum"> 115:  </span>            {</pre>
<pre><span class="lnum"> 116:  </span>                <span class="kwrd">return</span> <span class="kwrd">this</span>._strFirst;</pre>
<pre class="alt"><span class="lnum"> 117:  </span>            }</pre>
<pre><span class="lnum"> 118:  </span>            set</pre>
<pre class="alt"><span class="lnum"> 119:  </span>            {</pre>
<pre><span class="lnum"> 120:  </span>                <span class="kwrd">this</span>._strFirst = <span class="kwrd">value</span> &gt; 0 ? <span class="kwrd">value</span> : 0;</pre>
<pre class="alt"><span class="lnum"> 121:  </span>            }</pre>
<pre><span class="lnum"> 122:  </span>        }</pre>
<pre class="alt"><span class="lnum"> 123:  </span>&#160;</pre>
<pre><span class="lnum"> 124:  </span>        [WebBrowsable(<span class="kwrd">true</span>),</pre>
<pre class="alt"><span class="lnum"> 125:  </span>        Personalizable(PersonalizationScope.Shared),</pre>
<pre><span class="lnum"> 126:  </span>        WebDescription(<span class="str">&quot;The length of the string to extract after first char.&quot;</span>)]</pre>
<pre class="alt"><span class="lnum"> 127:  </span>        <span class="kwrd">public</span> <span class="kwrd">int</span> StrLength</pre>
<pre><span class="lnum"> 128:  </span>        {</pre>
<pre class="alt"><span class="lnum"> 129:  </span>            get</pre>
<pre><span class="lnum"> 130:  </span>            {</pre>
<pre class="alt"><span class="lnum"> 131:  </span>                <span class="kwrd">return</span> <span class="kwrd">this</span>._strLength;</pre>
<pre><span class="lnum"> 132:  </span>            }</pre>
<pre class="alt"><span class="lnum"> 133:  </span>            set</pre>
<pre><span class="lnum"> 134:  </span>            {</pre>
<pre class="alt"><span class="lnum"> 135:  </span>                <span class="kwrd">this</span>._strLength = <span class="kwrd">value</span> &gt; 0 ? <span class="kwrd">value</span> : 0;</pre>
<pre><span class="lnum"> 136:  </span>            }</pre>
<pre class="alt"><span class="lnum"> 137:  </span>        }</pre>
<pre><span class="lnum"> 138:  </span>&#160;</pre>
<pre class="alt"><span class="lnum"> 139:  </span>        <span class="kwrd">public</span> <span class="kwrd">string</span> UrlData</pre>
<pre><span class="lnum"> 140:  </span>        {</pre>
<pre class="alt"><span class="lnum"> 141:  </span>            get { <span class="kwrd">return</span> _urlData; }</pre>
<pre><span class="lnum"> 142:  </span>            set { _urlData = <span class="kwrd">value</span>; }</pre>
<pre class="alt"><span class="lnum"> 143:  </span>        }</pre>
<pre><span class="lnum"> 144:  </span>&#160;</pre>
<pre class="alt"><span class="lnum"> 145:  </span>        <span class="rem">// Step #11: init the all data</span></pre>
<pre><span class="lnum"> 146:  </span>        <span class="kwrd">protected</span> <span class="kwrd">override</span> <span class="kwrd">void</span> OnInit(EventArgs e)</pre>
<pre class="alt"><span class="lnum"> 147:  </span>        {</pre>
<pre><span class="lnum"> 148:  </span>            <span class="kwrd">base</span>.OnInit(e);</pre>
<pre class="alt"><span class="lnum"> 149:  </span>&#160;</pre>
<pre><span class="lnum"> 150:  </span>            <span class="kwrd">if</span> (UrlFirst != 0 &amp;&amp; StrLength &gt; 0)</pre>
<pre class="alt"><span class="lnum"> 151:  </span>            {</pre>
<pre><span class="lnum"> 152:  </span>                <span class="kwrd">try</span></pre>
<pre class="alt"><span class="lnum"> 153:  </span>                {</pre>
<pre><span class="lnum"> 154:  </span>                    <span class="kwrd">string</span> url = SPContext.Current.Web.Url;</pre>
<pre class="alt"><span class="lnum"> 155:  </span>                    <span class="kwrd">if</span> (url.Length &gt;= UrlFirst + StrLength)</pre>
<pre><span class="lnum"> 156:  </span>                    {</pre>
<pre class="alt"><span class="lnum"> 157:  </span>                        _urlData = url.Substring(UrlFirst, StrLength);</pre>
<pre><span class="lnum"> 158:  </span>                    }</pre>
<pre class="alt"><span class="lnum"> 159:  </span>                }</pre>
<pre><span class="lnum"> 160:  </span>                <span class="kwrd">catch</span> (Exception se)</pre>
<pre class="alt"><span class="lnum"> 161:  </span>                {</pre>
<pre><span class="lnum"> 162:  </span>                    _myError = se.Message + <span class="str">&quot;, &quot;</span> + se.InnerException;</pre>
<pre class="alt"><span class="lnum"> 163:  </span>                }</pre>
<pre><span class="lnum"> 164:  </span>            }</pre>
<pre class="alt"><span class="lnum"> 165:  </span>        }</pre>
<pre><span class="lnum"> 166:  </span>&#160;</pre>
<pre class="alt"><span class="lnum"> 167:  </span>        <span class="rem">// Step #12: create controls to show properies, </span></pre>
<pre><span class="lnum"> 168:  </span>        <span class="rem">// data and web part configuration hints in page edit mode</span></pre>
<pre class="alt"><span class="lnum"> 169:  </span>        <span class="kwrd">protected</span> <span class="kwrd">override</span> <span class="kwrd">void</span> CreateChildControls()</pre>
<pre><span class="lnum"> 170:  </span>        {</pre>
<pre class="alt"><span class="lnum"> 171:  </span>            Controls.Clear();</pre>
<pre><span class="lnum"> 172:  </span>&#160;</pre>
<pre class="alt"><span class="lnum"> 173:  </span>            <span class="kwrd">if</span> ((UrlFirst == 0 || StrLength == 0))</pre>
<pre><span class="lnum"> 174:  </span>            {</pre>
<pre class="alt"><span class="lnum"> 175:  </span>                <span class="rem">//.. show a how to configure web part</span></pre>
<pre><span class="lnum"> 176:  </span>            }</pre>
<pre class="alt"><span class="lnum"> 177:  </span>            <span class="kwrd">else</span></pre>
<pre><span class="lnum"> 178:  </span>            {</pre>
<pre class="alt"><span class="lnum"> 179:  </span>                <span class="rem">//.. show your properties and the assigned data</span></pre>
<pre><span class="lnum"> 180:  </span>            }</pre>
<pre class="alt"><span class="lnum"> 181:  </span>        }</pre>
<pre><span class="lnum"> 182:  </span>    }</pre>
<pre class="alt"><span class="lnum"> 183:  </span>}</pre>
</div>
<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>for more description, please study also on msdn the IWebPartParameters interface: <a title="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.iwebpartparameters.aspx" href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.iwebpartparameters.aspx">http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.iwebpartparameters.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2011/09/05/implementation-of-iwebpartparameters-web-part/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>Vorzeitiges Weihnachtsgeschenk von MS Press: Visual Basic 2008 &#8211; Das Entwicklerbuch</title>
		<link>http://blog.mindbusiness.de/blog/2010/01/17/vorzeitiges-weihnachtsgeschenk-von-ms-press-visual-basic-2008-das-entwicklerbuch/</link>
		<comments>http://blog.mindbusiness.de/blog/2010/01/17/vorzeitiges-weihnachtsgeschenk-von-ms-press-visual-basic-2008-das-entwicklerbuch/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 05:25:58 +0000</pubDate>
		<dc:creator>Eric Gail</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/2010/01/17/vorzeitiges-weihnachtsgeschenk-von-ms-press-visual-basic-2008-das-entwicklerbuch/</guid>
		<description><![CDATA[<p>Soeben habe ich auf www.winfuture.de entdeckt, dass MS Press wieder ein Buch verschenkt. Diesmal richtet es sich an Entwickler. </p>
<p>Visual Basic 2008 &#8211; Das Entwicklerbuch von Klaus Löffelmann kann hier kostenlos heruntergeladen werden:</p>
<p>http://www.microsoft.com/germany/msdn/aktuell/news/MicrosoftVisualBasic2008DasEntwicklerbuch.mspx</p>
]]></description>
			<content:encoded><![CDATA[<p>Soeben habe ich auf <a href="http://www.winfuture.de">www.winfuture.de</a> entdeckt, dass MS Press wieder ein Buch verschenkt. Diesmal richtet es sich an Entwickler. </p>
<p>Visual Basic 2008 &#8211; Das Entwicklerbuch von Klaus Löffelmann kann hier kostenlos heruntergeladen werden:</p>
<p><a href="http://www.microsoft.com/germany/msdn/aktuell/news/MicrosoftVisualBasic2008DasEntwicklerbuch.mspx">http://www.microsoft.com/germany/msdn/aktuell/news/MicrosoftVisualBasic2008DasEntwicklerbuch.mspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2010/01/17/vorzeitiges-weihnachtsgeschenk-von-ms-press-visual-basic-2008-das-entwicklerbuch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Designer ab sofort kostenlos</title>
		<link>http://blog.mindbusiness.de/blog/2009/04/03/sharepoint-designer-ab-sofort-kostenlos/</link>
		<comments>http://blog.mindbusiness.de/blog/2009/04/03/sharepoint-designer-ab-sofort-kostenlos/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 12:40:01 +0000</pubDate>
		<dc:creator>Bernhard Straub</dc:creator>
				<category><![CDATA[Office System]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/2009/04/03/sharepoint-designer-ab-sofort-kostenlos/</guid>
		<description><![CDATA[<p>Microsoft bietet ab sofort den Microsoft Office SharePoint Designer 2007 als kostenlosen Download an!</p>
<p>Mehr Informationen hier:    http://office.microsoft.com/en-us/sharepointdesigner/HA103607611033.aspx</p>
<p>Ein Grund mehr, sich mit diesem Tool einmal auseinanderzusetzen.</p>
<p>&#220;brigensâ€¦, nicht nur für SharePoint geeignet &#8211; die Software ist auch hervorragend für sonstige HTML und CSS-Projekte geeignet. Auch die JavaScript-Unterstützung ist passabel.</p>
<p>Wenn&#8217;s in Richtung php geht, dann [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft bietet ab sofort den Microsoft Office SharePoint Designer 2007 als kostenlosen Download an!</p>
<p>Mehr Informationen hier:    <br /><a title="http://office.microsoft.com/en-us/sharepointdesigner/HA103607611033.aspx" href="http://office.microsoft.com/en-us/sharepointdesigner/HA103607611033.aspx">http://office.microsoft.com/en-us/sharepointdesigner/HA103607611033.aspx</a></p>
<p>Ein Grund mehr, sich mit diesem Tool einmal auseinanderzusetzen.</p>
<p>&Uuml;brigensâ€¦, nicht nur für SharePoint geeignet &#8211; die Software ist auch hervorragend für sonstige HTML und CSS-Projekte geeignet. Auch die JavaScript-Unterstützung ist passabel.</p>
<p>Wenn&#8217;s in Richtung php geht, dann doch eher <a href="http://www.microsoft.com/germany/expression/products/Overview.aspx?key=web" target="_blank">Expression Web</a>. Oder ein anderes Werkzeug Ihrer Wahl.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2009/04/03/sharepoint-designer-ab-sofort-kostenlos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kostenloses Desktop Sharing</title>
		<link>http://blog.mindbusiness.de/blog/2008/09/26/kostenloses-desktop-sharing/</link>
		<comments>http://blog.mindbusiness.de/blog/2008/09/26/kostenloses-desktop-sharing/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 12:28:15 +0000</pubDate>
		<dc:creator>Florian Wolf</dc:creator>
				<category><![CDATA[Office System]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.mindbusiness.de/blog/2008/09/26/kostenloses-desktop-sharing/</guid>
		<description><![CDATA[<p>In den letzten Jahren haben wir gesehen, wie schnellere Internet-Leitungen verschiedene Optionen erm&#246;glicht haben, besonders was Kommunikation angeht. Erst kamen die Instant Messaging Programme (MSN, AOL, ICQ etc), dann VoIP (z.B. Skype) und dann kamen die ganzen M&#246;glichkeiten, sich in Real-Time auszutauschen.</p>
<p>Mit Software wie WebEx, NetViewer oder PC-Visit konnte man so genanntes Desktop-Sharing machen. So [...]]]></description>
			<content:encoded><![CDATA[<p>In den letzten Jahren haben wir gesehen, wie schnellere Internet-Leitungen verschiedene Optionen erm&ouml;glicht haben, besonders was Kommunikation angeht. Erst kamen die Instant Messaging Programme (MSN, AOL, ICQ etc), dann VoIP (z.B. Skype) und dann kamen die ganzen M&ouml;glichkeiten, sich in Real-Time auszutauschen.</p>
<p>Mit Software wie WebEx, NetViewer oder PC-Visit konnte man so genanntes Desktop-Sharing machen. So kann man seinen Bildschirm f&uuml;r andere Mitarbeiter/Kunden/Freunde freigeben: sie sehen, was ich gerade mache und k&ouml;nnen auch (mit Genehmigung) steuern.</p>
<p>Nun hat Microsoft so einen Dienst kostenlos zur Verf&uuml;gung gestellt: Microsoft SharedView</p>
<p>Die einzige Voraussetzung ist, dass man sich &uuml;ber eine Windows Live ID verf&uuml;gt. Und es k&ouml;nnen nur bis zu 15 gleichzeitig an einer Leitung teilnehmen: aber das ist ja f&uuml;r die meisten mehr als genug.</p>
<p>Mehr Informationen findet man unter: <a title="http://www.connect.microsoft.com/site/sitehome.aspx?SiteID=94" href="http://www.connect.microsoft.com/site/sitehome.aspx?SiteID=94">http://www.connect.microsoft.com/site/sitehome.aspx?SiteID=94</a></p>
<p>Die Software habe ich jetzt intern getestet und bin eigentlich durchaus zufrieden. Microsoft SharedView bietet fast alle Features der kostenpflichtigen Varianten, und ist relativ leicht, einzurichten. Und letztendlich: es ist kostenlos.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindbusiness.de/blog/2008/09/26/kostenloses-desktop-sharing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

