<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Bryant Likes - SharePoint</title>
    <link>http://bryantlikes.com/</link>
    <description>Sharing My Thoughts on Technology</description>
    <image>
      <url>http://files.bryantlikes.com/Images/channel.jpg</url>
      <title>Bryant Likes - SharePoint</title>
      <link>http://bryantlikes.com/</link>
    </image>
    <language>en-us</language>
    <copyright>Bryant Likes</copyright>
    <lastBuildDate>Mon, 18 Jan 2010 18:06:58 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>blog@bryantlikes.com</managingEditor>
    <webMaster>blog@bryantlikes.com</webMaster>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=d8f512f8-1860-49fb-9d26-234aaedacd95</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,d8f512f8-1860-49fb-9d26-234aaedacd95.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,d8f512f8-1860-49fb-9d26-234aaedacd95.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d8f512f8-1860-49fb-9d26-234aaedacd95</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of the cool features of SharePoint 2010 (currently in beta) is that you can set
it up on a Windows 7 machine. This means that as a SharePoint developer you no longer
have to run a Server OS. 
</p>
        <p>
To get started I <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=906c9f5a-6505-4eba-bf24-95e423ac1703&amp;displaylang=en">downloaded
the SharePoint 2010 Foundations beta from here</a>. You will also <a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx">need
Visual Studio 2010 which you can download from here</a>.
</p>
        <p>
To setup SharePoint 2010 on Windows 7 you need to <a href="http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx">follow
this guide which explains how to configure the setup process to run on Windows 7</a> (it
is only one change to an xml file). 
</p>
        <blockquote>
          <p>
            <em>Make sure you install all the prerequisites which I won’t list here (they are
listed in the guide). It will still install even if you don’t, but you will get errors
when you try to configure SharePoint (voice of experience here).</em>
          </p>
        </blockquote>
        <p>
Once you have everything installed and have completed the configuration tool, your
site should come up in the browser! Now you can start working with Silverlight and
SharePoint.
</p>
        <p>
          <a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb.png" width="644" height="443" />
          </a>
        </p>
        <p>
        </p>
        <blockquote>
          <p>
            <em>Tip: Install the </em>
            <a href="http://www.codeplex.com/SQL2005SrvcMngr/">
              <em>SQL
Service Manager</em>
            </a>
            <em> so that you can turn SQL Server off when you’re not doing
SharePoint development.</em>  
</p>
        </blockquote>
        <p>
A some great resources for getting started with Silverlight and SharePoint 2010 are
the PDC sessions which you can watch for free:
</p>
        <ul>
          <li>
            <a href="http://microsoftpdc.com/Sessions/P09-05">Developer Patterns to Integrate
Microsoft Silverlight 3.0 with Microsoft SharePoint 2010</a>
          </li>
          <li>
            <a href="http://microsoftpdc.com/Sessions/PR07">Developing Solutions for Microsoft
SharePoint Server 2010 Using the Client Object Model</a>
          </li>
        </ul>
        <p>
For this example we will primarily be utilizing the information in the first session
by Paul Stubbs. With SharePoint 2010, Silverlight can live just about anywhere in
the user interface, but this example will be geared toward how simple it is to publish
a Silverlight application to a SharePoint site and use it in a web part. 
</p>
        <p>
Fire up Visual Studio 2010 and create a new Silverlight Application:
</p>
        <p>
          <a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_3.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_3.png" width="644" height="404" />
          </a>
        </p>
        <p>
At the prompt asking you if you want to create a web application to host the Silverlight
application uncheck the checkbox. We don’t need to host Silverlight in a separate
web app since SharePoint will be the host. 
</p>
        <p>
In the Silverlight Application, edit the MainPage.xaml to have the following Xaml:
</p>
        <pre class="code">
          <span style="color: blue">&lt;</span>
          <span style="color: #a31515">Grid </span>
          <span style="color: red">x</span>
          <span style="color: blue">:</span>
          <span style="color: red">Name</span>
          <span style="color: blue">="LayoutRoot" </span>
          <span style="color: red">Background</span>
          <span style="color: blue">="PowderBlue"&gt;
&lt;</span>
          <span style="color: #a31515">TextBlock </span>
          <span style="color: red">Text</span>
          <span style="color: blue">="Silverlight
In SharePoint" </span>
          <span style="color: red">TextWrapping</span>
          <span style="color: blue">="Wrap" </span>
          <span style="color: red">FontSize</span>
          <span style="color: blue">="56" </span>
          <span style="color: red">FontWeight</span>
          <span style="color: blue">="Bold"
/&gt; &lt;/</span>
          <span style="color: #a31515">Grid</span>
          <span style="color: blue">&gt;</span>
        </pre>
        <p>
Now let’s add the SharePoint part of the project. Before we add the SharePoint project
though we need to be running Visual Studio as the Administrator. Save your work and
close the solution. Then right click the Visual Studio 2010 shortcut and select Run
As Administrator. Back in the solution, right click the solution and select Add -&gt;
New Project. Select SharePoint –&gt; 2010 as the project type and select an Empty
SharePoint Project:
</p>
        <p>
          <a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_4.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_4.png" width="644" height="408" />
          </a>  
</p>
        <blockquote>
          <p>
            <em>If you aren’t running as an Administrator then Visual Studio will tell you that
the project requires elevated permissions in order to run.</em>
          </p>
        </blockquote>
        <p>
The SharePoint customization Wizard dialog will pop up asking if you want to deploy
as a sandboxed solution or a farm solution. Leave the sandboxed solution checked and
click ok. Next, right click on the SharePoint project in the Solution Explorer and
select Add -&gt; New Item. Add a new Module to the project as shown below:
</p>
        <p>
          <a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_5.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_5.png" width="644" height="406" />
          </a>
        </p>
        <p>
Now right click the new Module and select Properties. In the Properties window click
in the Project Output References and then click the ellipse button (…). In the Project
Output References dialog click the Add button. Expand the deployment location property
on the new reference then change the Project Name to the Silverlight project name
and the Deployment Type to ElementFile. You should end up with something that looks
like this:
</p>
        <p>
          <a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_6.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_6.png" width="644" height="317" />
          </a>
        </p>
        <p>
        </p>
        <p>
Next expand the module we created in the SharePoint project and delete the Sample.txt
file. Then open the Elements.xml file. Edit the file to include the xap file that
will be generated from our Silverlight application:
</p>
        <pre class="code">
          <span style="color: blue">&lt;?</span>
          <span style="color: #a31515">xml </span>
          <span style="color: red">version</span>
          <span style="color: blue">=</span>"<span style="color: blue">1.0</span>" <span style="color: red">encoding</span><span style="color: blue">=</span>"<span style="color: blue">utf-8</span>"<span style="color: blue">?&gt;
&lt;</span><span style="color: #a31515">Elements </span><span style="color: red">xmlns</span><span style="color: blue">=</span>"<span style="color: blue">http://schemas.microsoft.com/sharepoint/</span>"<span style="color: blue">&gt;
&lt;</span><span style="color: #a31515">Module </span><span style="color: red">Name</span><span style="color: blue">=</span>"<span style="color: blue">SilverlightModule</span>"<span style="color: blue">&gt;
&lt;</span><span style="color: #a31515">File </span><span style="color: red">Path</span><span style="color: blue">=</span>"<span style="color: blue">SilverlightModule\SilverlightInSharePoint.xap</span>" <span style="color: red">Url</span><span style="color: blue">=</span>"<span style="color: blue">_catalogs/masterpage/SilverlightInSharePoint.xap</span>" <span style="color: blue">/&gt;
&lt;/</span><span style="color: #a31515">Module</span><span style="color: blue">&gt;
&lt;/</span><span style="color: #a31515">Elements</span><span style="color: blue">&gt; </span></pre>
        <p>
At this point your application is ready to be deployed. Right click the SharePoint
project and select Set as Startup Project and hit F5. Visual Studio will build and
deploy your project to your local SharePoint site and then open it in the browser.
However, at this point our Silverlight application isn’t active in any of the pages.
Let’s add the Silverlight application as a web part in the default page. 
</p>
        <p>
On the SharePoint site click the edit icon then the insert tab, select Web Part, and
choose the Silverlight Web Part in the Media and Content category:
</p>
        <p>
          <a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_7.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_7.png" width="644" height="390" />
          </a>
        </p>
        <p>
Click Add and in the Silverlight Web Part dialog enter the value from the Url field
in the Elements.xml file but <strong>add a leading slash</strong>. So for our example
we would enter:
</p>
        <p>
/_catalogs/masterpage/SilverlightInSharePoint.xap
</p>
        <p>
The web part will give you a message that it could not download the xap file. You
can ignore this message and just click the save icon. You will get the Silverlight
application on the web page, but it will look messed up:
</p>
        <p>
          <a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_8.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_8.png" width="467" height="484" />
          </a>
        </p>
        <p>
The problem is the default size for the Silverlight Web Part is 400x300 but our text
is bigger than 300. So we need to set the size to be 400x400. Click the drop down
arrow on the top right of the web part and select Edit Web Part. In the web part properties
dialog set the height of the web part to 400 and set the chrome type to None. Click
Ok and you should get a better looking page:
</p>
        <p>
          <a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_9.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_9.png" width="637" height="484" />
          </a>
        </p>
        <p>
Congratulations! You’ve now gotten started with Silverlight 3 and SharePoint 2010.
Silverlight development with SharePoint 2010 is much improved in this new version.
Happy SharePointing!
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=d8f512f8-1860-49fb-9d26-234aaedacd95" />
      </body>
      <title>Getting Started With Silverlight and SharePoint 2010</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,d8f512f8-1860-49fb-9d26-234aaedacd95.aspx</guid>
      <link>http://bryantlikes.com/GettingStartedWithSilverlightAndSharePoint2010.aspx</link>
      <pubDate>Mon, 18 Jan 2010 18:06:58 GMT</pubDate>
      <description>&lt;p&gt;
One of the cool features of SharePoint 2010 (currently in beta) is that you can set
it up on a Windows 7 machine. This means that as a SharePoint developer you no longer
have to run a Server OS. 
&lt;/p&gt;
&lt;p&gt;
To get started I &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=906c9f5a-6505-4eba-bf24-95e423ac1703&amp;amp;displaylang=en"&gt;downloaded
the SharePoint 2010 Foundations beta from here&lt;/a&gt;. You will also &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;need
Visual Studio 2010 which you can download from here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
To setup SharePoint 2010 on Windows 7 you need to &lt;a href="http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx"&gt;follow
this guide which explains how to configure the setup process to run on Windows 7&lt;/a&gt; (it
is only one change to an xml file). 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Make sure you install all the prerequisites which I won’t list here (they are
listed in the guide). It will still install even if you don’t, but you will get errors
when you try to configure SharePoint (voice of experience here).&lt;/em&gt; 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Once you have everything installed and have completed the configuration tool, your
site should come up in the browser! Now you can start working with Silverlight and
SharePoint.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb.png" width="644" height="443" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Tip: Install the &lt;/em&gt;&lt;a href="http://www.codeplex.com/SQL2005SrvcMngr/"&gt;&lt;em&gt;SQL
Service Manager&lt;/em&gt;&lt;/a&gt;&lt;em&gt; so that you can turn SQL Server off when you’re not doing
SharePoint development.&lt;/em&gt;&amp;#160; 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
A some great resources for getting started with Silverlight and SharePoint 2010 are
the PDC sessions which you can watch for free:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://microsoftpdc.com/Sessions/P09-05"&gt;Developer Patterns to Integrate
Microsoft Silverlight 3.0 with Microsoft SharePoint 2010&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://microsoftpdc.com/Sessions/PR07"&gt;Developing Solutions for Microsoft
SharePoint Server 2010 Using the Client Object Model&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
For this example we will primarily be utilizing the information in the first session
by Paul Stubbs. With SharePoint 2010, Silverlight can live just about anywhere in
the user interface, but this example will be geared toward how simple it is to publish
a Silverlight application to a SharePoint site and use it in a web part. 
&lt;/p&gt;
&lt;p&gt;
Fire up Visual Studio 2010 and create a new Silverlight Application:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_3.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_3.png" width="644" height="404" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
At the prompt asking you if you want to create a web application to host the Silverlight
application uncheck the checkbox. We don’t need to host Silverlight in a separate
web app since SharePoint will be the host. 
&lt;/p&gt;
&lt;p&gt;
In the Silverlight Application, edit the MainPage.xaml to have the following Xaml:
&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;LayoutRoot&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;Background&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;PowderBlue&amp;quot;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Silverlight
In SharePoint&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;TextWrapping&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Wrap&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;FontSize&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;56&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;FontWeight&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Bold&amp;quot;
/&amp;gt; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Now let’s add the SharePoint part of the project. Before we add the SharePoint project
though we need to be running Visual Studio as the Administrator. Save your work and
close the solution. Then right click the Visual Studio 2010 shortcut and select Run
As Administrator. Back in the solution, right click the solution and select Add -&amp;gt;
New Project. Select SharePoint –&amp;gt; 2010 as the project type and select an Empty
SharePoint Project:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_4.png" width="644" height="408" /&gt;&lt;/a&gt;&amp;#160; 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;If you aren’t running as an Administrator then Visual Studio will tell you that
the project requires elevated permissions in order to run.&lt;/em&gt; 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The SharePoint customization Wizard dialog will pop up asking if you want to deploy
as a sandboxed solution or a farm solution. Leave the sandboxed solution checked and
click ok. Next, right click on the SharePoint project in the Solution Explorer and
select Add -&amp;gt; New Item. Add a new Module to the project as shown below:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_5.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_5.png" width="644" height="406" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Now right click the new Module and select Properties. In the Properties window click
in the Project Output References and then click the ellipse button (…). In the Project
Output References dialog click the Add button. Expand the deployment location property
on the new reference then change the Project Name to the Silverlight project name
and the Deployment Type to ElementFile. You should end up with something that looks
like this:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_6.png" width="644" height="317" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Next expand the module we created in the SharePoint project and delete the Sample.txt
file. Then open the Elements.xml file. Edit the file to include the xap file that
will be generated from our Silverlight application:
&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515"&gt;xml &lt;/span&gt;&lt;span style="color: red"&gt;version&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;encoding&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;?&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Elements &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Module &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;SilverlightModule&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;File &lt;/span&gt;&lt;span style="color: red"&gt;Path&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;SilverlightModule\SilverlightInSharePoint.xap&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;Url&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;_catalogs/masterpage/SilverlightInSharePoint.xap&lt;/span&gt;&amp;quot; &lt;span style="color: blue"&gt;/&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Module&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Elements&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
At this point your application is ready to be deployed. Right click the SharePoint
project and select Set as Startup Project and hit F5. Visual Studio will build and
deploy your project to your local SharePoint site and then open it in the browser.
However, at this point our Silverlight application isn’t active in any of the pages.
Let’s add the Silverlight application as a web part in the default page. 
&lt;/p&gt;
&lt;p&gt;
On the SharePoint site click the edit icon then the insert tab, select Web Part, and
choose the Silverlight Web Part in the Media and Content category:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_7.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_7.png" width="644" height="390" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Click Add and in the Silverlight Web Part dialog enter the value from the Url field
in the Elements.xml file but &lt;strong&gt;add a leading slash&lt;/strong&gt;. So for our example
we would enter:
&lt;/p&gt;
&lt;p&gt;
/_catalogs/masterpage/SilverlightInSharePoint.xap
&lt;/p&gt;
&lt;p&gt;
The web part will give you a message that it could not download the xap file. You
can ignore this message and just click the save icon. You will get the Silverlight
application on the web page, but it will look messed up:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_8.png" width="467" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The problem is the default size for the Silverlight Web Part is 400x300 but our text
is bigger than 300. So we need to set the size to be 400x400. Click the drop down
arrow on the top right of the web part and select Edit Web Part. In the web part properties
dialog set the height of the web part to 400 and set the chrome type to None. Click
Ok and you should get a better looking page:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_9.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://files.bryantlikes.com/Images/GettingStartedWithSilverlightandSharePoi_1000A/image_thumb_9.png" width="637" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Congratulations! You’ve now gotten started with Silverlight 3 and SharePoint 2010.
Silverlight development with SharePoint 2010 is much improved in this new version.
Happy SharePointing!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=d8f512f8-1860-49fb-9d26-234aaedacd95" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,d8f512f8-1860-49fb-9d26-234aaedacd95.aspx</comments>
      <category>SharePoint</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=e811ff8f-c372-4e7c-8f28-4e3c742c5be1</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,e811ff8f-c372-4e7c-8f28-4e3c742c5be1.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,e811ff8f-c372-4e7c-8f28-4e3c742c5be1.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e811ff8f-c372-4e7c-8f28-4e3c742c5be1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'll be speaking on this coming Sunday at the <a href="http://socalcodecamp.com/">SoCal
Code Camp</a> at Cal State Fullerton. 
</p>
        <p>
          <a href="http://socalcodecamp.com/">
            <img height="92" src="http://socalcodecamp.com/images/socalccheader.gif" width="640" />
          </a>
        </p>
        <p>
My session is at 9:00 AM on Sunday and is titled <a href="http://socalcodecamp.com/session.aspx?sid=69ff8db0-374a-426b-8997-3932c2e04793">Bridging
the Desktop/Web Divide with WPF and Silverlight</a>. I'm hoping to demo (still working
on my code) a simple application I built in WPF and show how easy it is to port it
to XBAP and Silverlight with a few potential extras (exporting to XPS and a very short
demo of ADO.Net Data Services which is the data provider).
</p>
        <p>
My fellow Avanaut Elmer Morales will also be presenting on Sunday afternoon on <a href="http://socalcodecamp.com/session.aspx?sid=5074b8a2-edba-404b-a944-2d9144c72862">Building
Stunning Sites with SharePoint 2007</a>. Elmer has been building SharePoint 2007 sites
well before the product was released and from what I've seen of his presentation so
far it should be great. 
</p>
        <p>
I'll probably miss the Saturday presentations since I still have some work to do on
my own :)
</p>
        <p>
So see you at Code Camp! 
</p>
        <p>
 
</p>
        <div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2c55adb3-8548-47d9-bc66-1a0d8b98f4d3" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati
Tags: <a href="http://technorati.com/tags/SoCal%20Code%20Camp" rel="tag">SoCal Code
Camp</a>,<a href="http://technorati.com/tags/SharePoint" rel="tag">SharePoint</a>,<a href="http://technorati.com/tags/Silverlight" rel="tag">Silverlight</a>,<a href="http://technorati.com/tags/WPF" rel="tag">WPF</a></div>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=e811ff8f-c372-4e7c-8f28-4e3c742c5be1" />
      </body>
      <title>Speaking at SoCal Code Camp this Weekend</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,e811ff8f-c372-4e7c-8f28-4e3c742c5be1.aspx</guid>
      <link>http://bryantlikes.com/SpeakingAtSoCalCodeCampThisWeekend.aspx</link>
      <pubDate>Fri, 25 Jan 2008 12:11:52 GMT</pubDate>
      <description>&lt;p&gt;
I'll be speaking on this coming Sunday at the &lt;a href="http://socalcodecamp.com/"&gt;SoCal
Code Camp&lt;/a&gt; at Cal State Fullerton. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://socalcodecamp.com/"&gt;&lt;img height="92" src="http://socalcodecamp.com/images/socalccheader.gif" width="640" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
My session is at 9:00 AM on Sunday and is titled &lt;a href="http://socalcodecamp.com/session.aspx?sid=69ff8db0-374a-426b-8997-3932c2e04793"&gt;Bridging
the Desktop/Web Divide with WPF and Silverlight&lt;/a&gt;. I'm hoping to demo (still working
on my code) a simple application I built in WPF and show how easy it is to port it
to XBAP and Silverlight with a few potential extras (exporting to XPS and a very short
demo of ADO.Net Data Services which is the data provider).
&lt;/p&gt;
&lt;p&gt;
My fellow Avanaut Elmer Morales will also be presenting on Sunday afternoon on &lt;a href="http://socalcodecamp.com/session.aspx?sid=5074b8a2-edba-404b-a944-2d9144c72862"&gt;Building
Stunning Sites with SharePoint 2007&lt;/a&gt;. Elmer has been building SharePoint 2007 sites
well before the product was released and from what I've seen of his presentation so
far it should be great. 
&lt;/p&gt;
&lt;p&gt;
I'll probably miss the Saturday presentations since I still have some work to do on
my own :)
&lt;/p&gt;
&lt;p&gt;
So see you at Code Camp! 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2c55adb3-8548-47d9-bc66-1a0d8b98f4d3" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/SoCal%20Code%20Camp" rel="tag"&gt;SoCal Code
Camp&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SharePoint" rel="tag"&gt;SharePoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WPF" rel="tag"&gt;WPF&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=e811ff8f-c372-4e7c-8f28-4e3c742c5be1" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,e811ff8f-c372-4e7c-8f28-4e3c742c5be1.aspx</comments>
      <category>SharePoint</category>
      <category>WPF</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=17225</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,17225.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,17225.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=17225</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From <a href="http://blogs.msdn.com/sharepoint/archive/2006/12/12/announcing-the-beta-exams-for-mcts-application-development-70-542-for-office-sharepoint-server-2007-and-70-541-for-windows-sharepoint-server-3-0.aspx">LLiu
on the SharePoint Team Blog</a></p>
        <blockquote>
          <p>
You are invited to take the following exams in their beta versions. If you pass either
or both of the beta exams, the exam credit will be added to your transcript and you
will not need to take the exam in its released form. 
</p>
          <p>
·         <a href="http://www.microsoft.com/learning/exams/70-542.mspx">Exam
70-542: Microsoft Office SharePoint Server 2007 – Application Development</a></p>
          <p>
o    Counts as credit towards Microsoft Certified Technology Specialist:
Microsoft Office SharePoint Server 2007: Application Development 
</p>
          <p>
·         <a href="http://www.microsoft.com/learning/exams/70-541.mspx">Exam
70-541: Microsoft Windows SharePoint Services 3.0 - Application Development</a></p>
          <p>
o    Counts as credit towards Microsoft Certified Technology Specialist:
Microsoft Windows SharePoint Services 3.0: Application Development
</p>
        </blockquote>
        <p>
Plus I noticed that both the exams for the <a href="http://www.microsoft.com/learning/mcp/mcitp/bid/default.mspx">MCITP:
BI certification</a> are available and a few Windows Vista exams too. 
</p>
        <ul>
          <li>
071-445 - TS: Microsoft® SQL Server 2005 Business Intelligence - Implementation and
Maintenance</li>
          <li>
071-446 - PRO: Designing a Business Intelligence Infrastructure by Using Microsoft®
SQL Server 2005</li>
          <li>
071-621 - UPG: Upgrading your MCDST Certification to MCITP Enterprise Support</li>
          <li>
071-622 - PRO: Installing, Maintaining, Supporting, and Troubleshooting Applications
on the Microsoft® Windows Vista Client - Enterprise</li>
          <li>
071-624 - TS: Deploying and Maintaining Vista Client and Office 12 System Desktops
using the BDD</li>
        </ul>
        <p>
The promo code for all these exams seems to be BTA + last three digits of the exam
number (071-445 would be BTA445). If you've been working with these technologies then
the beta exams are a great deal since they are free and even if you don't pass at
least you know what you need to study. 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=17225" />
      </body>
      <title>Beta Exam Extravaganza</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,17225.aspx</guid>
      <link>http://bryantlikes.com/BetaExamExtravaganza.aspx</link>
      <pubDate>Tue, 12 Dec 2006 18:28:39 GMT</pubDate>
      <description>&lt;p&gt;
From &lt;a href="http://blogs.msdn.com/sharepoint/archive/2006/12/12/announcing-the-beta-exams-for-mcts-application-development-70-542-for-office-sharepoint-server-2007-and-70-541-for-windows-sharepoint-server-3-0.aspx"&gt;LLiu
on the SharePoint Team Blog&lt;/a&gt; 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
You are invited to take the following exams in their beta versions. If you pass either
or both of the beta exams, the exam credit will be added to your transcript and you
will not need to take the exam in its released form. 
&lt;p&gt;
·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.microsoft.com/learning/exams/70-542.mspx"&gt;Exam
70-542: Microsoft Office SharePoint Server 2007 – Application Development&lt;/a&gt; 
&lt;p&gt;
o&amp;nbsp;&amp;nbsp;&amp;nbsp; Counts as credit towards Microsoft Certified Technology Specialist:
Microsoft Office SharePoint Server 2007: Application Development 
&lt;p&gt;
·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.microsoft.com/learning/exams/70-541.mspx"&gt;Exam
70-541: Microsoft Windows SharePoint Services 3.0 - Application Development&lt;/a&gt; 
&lt;p&gt;
o&amp;nbsp;&amp;nbsp;&amp;nbsp; Counts as credit towards Microsoft Certified Technology Specialist:
Microsoft Windows SharePoint Services 3.0: Application Development
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Plus I noticed that both the exams for the &lt;a href="http://www.microsoft.com/learning/mcp/mcitp/bid/default.mspx"&gt;MCITP:
BI certification&lt;/a&gt; are available and a&amp;nbsp;few Windows Vista exams too. 
&lt;ul&gt;
&lt;li&gt;
071-445 - TS: Microsoft® SQL Server 2005 Business Intelligence - Implementation and
Maintenance&lt;/li&gt;
&lt;li&gt;
071-446 - PRO: Designing a Business Intelligence Infrastructure by Using Microsoft®
SQL Server 2005&lt;/li&gt;
&lt;li&gt;
071-621 - UPG: Upgrading your MCDST Certification to MCITP Enterprise Support&lt;/li&gt;
&lt;li&gt;
071-622 - PRO: Installing, Maintaining, Supporting, and Troubleshooting Applications
on the Microsoft® Windows Vista Client - Enterprise&lt;/li&gt;
&lt;li&gt;
071-624 - TS: Deploying and Maintaining Vista Client and Office 12 System Desktops
using the BDD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The promo code for all these exams seems to be BTA + last three digits of the exam
number (071-445 would be BTA445). If you've been working with these technologies then
the beta exams are a great deal since they are free and even if you don't pass at
least you know what you need to study. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=17225" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,17225.aspx</comments>
      <category>Sql and Xml</category>
      <category>SharePoint</category>
      <category>Certifications</category>
      <category>Vista</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=11548</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,11548.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,11548.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=11548</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>SharePoint 2007 Beta Exams Available</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,11548.aspx</guid>
      <link>http://bryantlikes.com/SharePoint2007BetaExamsAvailable.aspx</link>
      <pubDate>Thu, 02 Nov 2006 14:05:00 GMT</pubDate>
      <description>&lt;p&gt;
You can sign up for them on the &lt;a href="http://www.vue.com"&gt;Vue&lt;/a&gt; website:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
071-630&amp;nbsp;TS: Configuring Microsoft&amp;reg; Office SharePoint&amp;reg; Server 2007&lt;/li&gt;
&lt;li&gt;
071-631 TS: Configuring Microsoft&amp;reg; Windows&amp;reg; SharePoint&amp;reg; Services 3.0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The exam dates are from 11/7/06 through 11/20/06. The exam promo codes are BET630
and BET631. Good luck!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=11548" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,11548.aspx</comments>
      <category>SharePoint</category>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=4505</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,4505.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,4505.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=4505</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From <a href="http://blog.u2u.info/DottextWeb/patrick/archive/2005/11/16/11612.aspx">Patrick</a>:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
VPC images are saving my life as a trainer. Managing your VPC images however can be
a daunting task if you don't know all of its capabilities. <a href="http://andrewconnell.com/blog/articles/UseVirtualPCsDifferencingDisksToYourAdvantage.aspx"><font color="#002c99">Andrew</font></a> has
an extremely well-documented <em>process &amp; strategy for using Virtual PC and how to
optimize and manage disks to (1) maximize my disk space and (2) facilitate rapid creation
of new </em><a title="Microsoft Virtual PC 2004" href="http://www.microsoft.com/windows/virtualpc/default.mspx" target="_blank"><em><font color="#002c99">Virtual
PC</font></em></a><em>’s when needed for testing/kicking the tires</em>. Thank
you very much Andrew for sharing this with all of us. 
</p>
        </blockquote>
        <p dir="ltr">
I've been doing my development on using Virtual PC for the last six months and the
tips in this post are very useful. My setup is much simpler, but I can see some of
the advantages this type of setup can give. However, I'm curious as to the drawbacks.
</p>
        <ul dir="ltr">
          <li>
            <div>Is there a performance hit for using that many disks instead of a single disk?
If so, how much are we talking about?
</div>
          </li>
          <li>
            <div>If you need to make a change to the base OS, can you make the change on the base
disk or will this wipe out all your machines?
</div>
          </li>
        </ul>
        <p>
For my dev work I've just been creating a base VPC image with the OS and common tools
and then setting the file to read-only and making a copy of it for each VPC I need
to create. I've even been using fixed disk size in an attempt to eek out every last
bit of performance that I can get. I have to pay for it with <a href="http://www.hitachigst.com/portal/site/en/menuitem.72e3cabd3a6a384ccf1824a0eac4f0a0/">a
larger hard drive</a>, but that isn't too much of a price to pay.
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=4505" />
      </body>
      <title>Hardcore VPC Setup</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,4505.aspx</guid>
      <link>http://bryantlikes.com/HardcoreVPCSetup.aspx</link>
      <pubDate>Wed, 16 Nov 2005 15:59:00 GMT</pubDate>
      <description>&lt;p&gt;
From&amp;nbsp;&lt;a href="http://blog.u2u.info/DottextWeb/patrick/archive/2005/11/16/11612.aspx"&gt;Patrick&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
VPC images are saving my life as a trainer. Managing your VPC images however can be
a daunting task if you don't know all of its capabilities. &lt;a href="http://andrewconnell.com/blog/articles/UseVirtualPCsDifferencingDisksToYourAdvantage.aspx"&gt;&lt;font color=#002c99&gt;Andrew&lt;/font&gt;&lt;/a&gt; has
an extremely well-documented &lt;em&gt;process &amp;amp; strategy for using Virtual PC and how&amp;nbsp;to
optimize and manage disks to (1) maximize my disk space and (2) facilitate rapid creation
of new &lt;/em&gt;&lt;a title="Microsoft Virtual PC 2004" href="http://www.microsoft.com/windows/virtualpc/default.mspx" target=_blank&gt;&lt;em&gt;&lt;font color=#002c99&gt;Virtual
PC&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;#8217;s when needed for testing/kicking the tires&lt;/em&gt;. Thank
you very much Andrew for sharing this with all of us. 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
I've been doing my development on using Virtual PC for the last six months and the
tips in this post are very useful. My setup is much simpler, but I can see some of
the advantages this type of setup can give. However, I'm curious as to the drawbacks.
&lt;/p&gt;
&lt;ul dir=ltr&gt;
&lt;li&gt;
&lt;div&gt;Is there a performance hit for using that many disks instead of a single disk?
If so, how much are we talking about?
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;If you need to make a change to the base OS, can you make the change on the base
disk or will this wipe out all your machines?
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
For my dev work I've just been creating a base VPC image with the OS and common tools
and then setting the file to read-only and making a copy of it for each VPC I need
to create. I've even been using fixed disk size in an attempt to eek out every last
bit of performance that I can get. I have to pay for it with &lt;a href="http://www.hitachigst.com/portal/site/en/menuitem.72e3cabd3a6a384ccf1824a0eac4f0a0/"&gt;a
larger hard drive&lt;/a&gt;, but that isn't too much of a price to pay.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=4505" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,4505.aspx</comments>
      <category>SharePoint</category>
      <category>General</category>
      <category>Test-Driven Dev</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=4175</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,4175.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,4175.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=4175</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From <a href="http://staff.newtelligence.net/clemensv/PermaLink,guid,fdf5f8bf-199c-47c3-8cbb-838fab12f83e.aspx">Clemmens</a> talking
about technology overload:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
Enter VS2005 and the summary of trying to achieve the same knowledge density is: “Frustrating”. 
</p>
        </blockquote>
        <p dir="ltr">
I feel his frustration. I remember going to PDC 2003 and realizing that it was getting
very hard to keep up on all the new stuff coming out of Microsoft. Clemmens continues...
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p dir="ltr">
For “generalists” like me, these are hard and frustrating times if they’re
trying to stay generalists. Deep and consequent specialization is a great opportunity
for everyone and the gamble is of course to pick the right technology to dig into
and become “the expert” in. If that technology or problem space becomes
the hottest thing everyone must have – you win your bet. Otherwise you might
be in trouble. 
</p>
        </blockquote>
        <p dir="ltr">
This statement not only applies to technology in general, but also to specific technologies:
think SQL Server 2005. As <a href="http://www.sqlskills.com/blogs/kimberly/">Kimberly
Tripp</a> says, you must become a “Jack of all trades, master of some”.
The hard part, as Clemmens mentions, is chosing the some. 
</p>
        <p dir="ltr">
For me it all comes down to what I'm working with. For instance, I just found out
today that I will <strong>not</strong> be getting renewed as a Microsoft MVP for SQL
Server. I expected this because I haven't had the time to contribute much to the SQL
Server community lately. I tend to contribute based on what I'm currently working
on. I haven't been a project that used SQL Server 2005 yet, so I haven't had time
to really dig into it. If you read this blog you can probably figure out what kind
of projects I have been on recently: a SharePoint (and RS) project last year and mostly
BizTalk projects this year. I learn based on need.
</p>
        <p dir="ltr">
I'm sure at some point in the near future (at least I keep telling myself this) I'll
have time to dig into the new SQL Server 2005 and Visual Studio 2005 stuff (team system
and all), but for now I'm pretty much focused on BizTalk 2004, test-driven development,
 continuous integration, etc., since that is where I'm at. 
</p>
        <p dir="ltr">
I'll miss hanging out with the other SQL Server MVPs who are a great bunch of guys,
but it has been fun being an MVP for the last five years. 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=4175" />
      </body>
      <title>Master of Some</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,4175.aspx</guid>
      <link>http://bryantlikes.com/MasterOfSome.aspx</link>
      <pubDate>Thu, 01 Sep 2005 11:05:00 GMT</pubDate>
      <description>&lt;p&gt;
From &lt;a href="http://staff.newtelligence.net/clemensv/PermaLink,guid,fdf5f8bf-199c-47c3-8cbb-838fab12f83e.aspx"&gt;Clemmens&lt;/a&gt; talking
about technology overload:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
Enter VS2005 and the summary of trying to achieve the same knowledge density is: &amp;#8220;Frustrating&amp;#8221;. 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
I feel his frustration. I remember going to PDC 2003 and realizing that it was getting
very hard to keep up on all the new stuff coming out of Microsoft. Clemmens continues...
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p dir=ltr&gt;
For &amp;#8220;generalists&amp;#8221; like me, these are hard and frustrating times if they&amp;#8217;re
trying to stay generalists. Deep and consequent specialization is a great opportunity
for everyone and the gamble is of course to pick the right technology to dig into
and become &amp;#8220;the expert&amp;#8221; in. If that technology or problem space becomes
the hottest thing everyone must have &amp;#8211; you win your bet. Otherwise you might
be in trouble. 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
This statement not only applies to technology in general, but also to specific technologies:
think SQL Server 2005. As &lt;a href="http://www.sqlskills.com/blogs/kimberly/"&gt;Kimberly
Tripp&lt;/a&gt; says, you must become a &amp;#8220;Jack of all trades, master of some&amp;#8221;.
The hard part, as Clemmens mentions, is chosing the some. 
&lt;/p&gt;
&lt;p dir=ltr&gt;
For me it all comes down to what I'm working with. For instance, I just found out
today that I will &lt;strong&gt;not&lt;/strong&gt; be getting renewed as a Microsoft MVP for SQL
Server. I expected this because I haven't had the time to contribute much to the SQL
Server community lately. I tend to contribute based on what I'm currently working
on. I haven't been a project that used SQL Server 2005 yet, so I haven't had time
to really dig into it. If you read this blog you can probably figure out what kind
of projects I have been on recently: a SharePoint (and RS) project last year and mostly
BizTalk projects this year. I learn based on need.
&lt;/p&gt;
&lt;p dir=ltr&gt;
I'm sure at some point in the near future (at least I keep telling myself this) I'll
have time to dig into the new SQL Server 2005 and Visual Studio 2005 stuff (team system
and all), but for now I'm pretty much focused on BizTalk 2004, test-driven development,
&amp;nbsp;continuous integration, etc., since that is where I'm at. 
&lt;/p&gt;
&lt;p dir=ltr&gt;
I'll miss hanging out with the other SQL Server MVPs who are a great bunch of guys,
but it has been fun being an MVP for the last five years. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=4175" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,4175.aspx</comments>
      <category>Sql and Xml</category>
      <category>Reporting Services</category>
      <category>SharePoint</category>
      <category>BizTalk</category>
      <category>General</category>
      <category>Avanade</category>
      <category>Test-Driven Dev</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=4096</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,4096.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,4096.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=4096</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From <a href="http://weblogs.asp.net/erobillard/archive/2005/08/23/423481.aspx">Eli Robillard</a>:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
After a year and 32065 web views, I've reorganized and moved the <a href="http://weblogs.asp.net/erobillard/articles/SharePointResources.aspx">SharePoint
resource page</a> into an article. In addition to giving it a more sensible URL, the
switch reflects the fact that this is a continuously updated resource and not a one-time
posting. I've also added <a href="http://weblogs.asp.net/erobillard/archive/2005/03/17/395033.aspx">hand-tuned
searches</a>, making it easy to locate the most current information for each topic.
Don't forget to update your bookmarks and links, and as always, enjoy! 
</p>
        </blockquote>
        <p dir="ltr">
I noticed that the <a href="http://sourceforge.net/projects/rswebparts">RsWebParts</a> are
not listed in the Web Parts section, but other than that it looks like a great list
of stuff. My own <a href="http://bryantlikes.com/wiki/default.aspx/BryantLikes.SharePointResources">SharePoint
Resource Page</a> has gotten pretty stale (though that isn't entirely my own fault,
it is a wiki after all :)
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=4096" />
      </body>
      <title>Eli's SharePoint Resources Updated</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,4096.aspx</guid>
      <link>http://bryantlikes.com/ElisSharePointResourcesUpdated.aspx</link>
      <pubDate>Wed, 24 Aug 2005 13:16:00 GMT</pubDate>
      <description>&lt;p&gt;
From &lt;a href="http://weblogs.asp.net/erobillard/archive/2005/08/23/423481.aspx"&gt;Eli&amp;nbsp;Robillard&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
After a year and&amp;nbsp;32065 web views, I've reorganized and moved the &lt;a href="http://weblogs.asp.net/erobillard/articles/SharePointResources.aspx"&gt;SharePoint
resource page&lt;/a&gt; into an article. In addition to giving it a more sensible URL, the
switch reflects the fact that this is a continuously updated resource and not a one-time
posting. I've also added &lt;a href="http://weblogs.asp.net/erobillard/archive/2005/03/17/395033.aspx"&gt;hand-tuned
searches&lt;/a&gt;, making it easy to locate the most current information for each topic.
Don't forget to update your bookmarks and links, and as always, enjoy! 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
I noticed that the &lt;a href="http://sourceforge.net/projects/rswebparts"&gt;RsWebParts&lt;/a&gt; are
not listed in the Web Parts section, but other than that it looks like a great list
of stuff. My own &lt;a href="http://bryantlikes.com/wiki/default.aspx/BryantLikes.SharePointResources"&gt;SharePoint
Resource Page&lt;/a&gt; has gotten pretty stale (though that isn't entirely my own fault,
it is a wiki after all :)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=4096" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,4096.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=4095</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,4095.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,4095.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=4095</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From <a href="http://blog.u2u.info/DottextWeb/patrick/archive/2005/08/24/8132.aspx">Patrick</a>:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <a href="http://pluralsight.com/blogs/ted/archive/2005/08/23/14302.aspx">Ted Pattison</a> has
polished an old article on solving the problems developers encounter when programming
role-based security within a SharePoint Web part. Required reading material for every
SharePoint developer.<img height="1" src="http://blog.u2u.info/DottextWeb/patrick/aggbug/8132.aspx" width="1" /></p>
        </blockquote>
        <p dir="ltr">
The best part is, since Ted is no longer “writing under the fin name of
Barry Kouda”, you can now link directly to his blog posts! 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=4095" />
      </body>
      <title>Role-Based Security in Web Parts 2</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,4095.aspx</guid>
      <link>http://bryantlikes.com/RoleBasedSecurityInWebParts2.aspx</link>
      <pubDate>Wed, 24 Aug 2005 12:58:00 GMT</pubDate>
      <description>&lt;p&gt;
From&amp;nbsp;&lt;a href="http://blog.u2u.info/DottextWeb/patrick/archive/2005/08/24/8132.aspx"&gt;Patrick&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;a href="http://pluralsight.com/blogs/ted/archive/2005/08/23/14302.aspx"&gt;Ted Pattison&lt;/a&gt; has
polished an old article on solving the problems developers encounter when programming
role-based security within a SharePoint Web part. Required reading material for every
SharePoint developer.&lt;img height=1 src="http://blog.u2u.info/DottextWeb/patrick/aggbug/8132.aspx" width=1&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
The best part is, since Ted is no longer &amp;#8220;writing under&amp;nbsp;the fin name of
Barry Kouda&amp;#8221;, you can now link directly to his blog posts! 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=4095" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,4095.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=3193</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,3193.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,3193.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3193</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Unfortunately I had to cancel on Tech*Ed. I was looking forward to it and <a href="http://blogs.msdn.com/euanga/archive/2005/06/02/424120.aspx">I
didn't want to miss it</a>. However, since <a href="http://blog.hishambaz.com/">Hisham</a> and
I are both on the same project and they didn't think it would work for us both to
be gone for the same week. So even though I got my cool badge (staff even) in the
mail, I won't be there. :(
</p>
        <p>
But I will be going to <a href="http://msdn.microsoft.com/events/pdc/pricing/default.aspx">PDC05</a> which
both <a href="http://blogs.msdn.com/euanga/archive/2005/06/02/424126.aspx">Euan</a> and <a href="http://blogs.msdn.com/mikefitz/archive/2005/05/30/423281.aspx">Fitz</a> are
already promoting. I actually started this blog right before heading to PDC03 which
was a great event even though it totally overwhelmed me with tons of new stuff. Funny
how two years later 90% is still in beta so I really didn't need to be overwhelmed. 
</p>
        <p>
So if you're going to Tech*Ed have a great time and learn some stuff for me. If not,
get ready to sign up for PDC05 (5 days until the registration opens). See you in October
(or maybe in September at PASS). 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=3193" />
      </body>
      <title>Tech*Ed 2005 Cancelled</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,3193.aspx</guid>
      <link>http://bryantlikes.com/TechEd2005Cancelled.aspx</link>
      <pubDate>Fri, 03 Jun 2005 12:27:00 GMT</pubDate>
      <description>&lt;p&gt;
Unfortunately I had to cancel on Tech*Ed. I was looking forward to it and &lt;a href="http://blogs.msdn.com/euanga/archive/2005/06/02/424120.aspx"&gt;I
didn't want to miss it&lt;/a&gt;. However, since &lt;a href="http://blog.hishambaz.com/"&gt;Hisham&lt;/a&gt; and
I are both on the same project and they didn't think it would work for us both to
be gone for the same week. So even though I got my cool badge (staff even) in the
mail, I won't be there. :(
&lt;/p&gt;
&lt;p&gt;
But I will be going to &lt;a href="http://msdn.microsoft.com/events/pdc/pricing/default.aspx"&gt;PDC05&lt;/a&gt; which
both &lt;a href="http://blogs.msdn.com/euanga/archive/2005/06/02/424126.aspx"&gt;Euan&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/mikefitz/archive/2005/05/30/423281.aspx"&gt;Fitz&lt;/a&gt; are
already promoting. I actually started this blog right before heading to PDC03 which
was a great event even though it totally overwhelmed me with tons of new stuff. Funny
how two years later 90% is still in beta so I really didn't need to be overwhelmed. 
&lt;/p&gt;
&lt;p&gt;
So if you're going to Tech*Ed have a great time and learn some stuff for me. If not,
get ready to sign up for PDC05 (5 days until the registration opens). See you in October
(or maybe in September at PASS). 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=3193" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,3193.aspx</comments>
      <category>Sql and Xml</category>
      <category>SharePoint</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=3075</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,3075.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,3075.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3075</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've been working for <a href="http://www.avanade.com">Avanade</a> for about two months
now, and I really like it. I've gotten a few emails from people who are interviewing
with the company and want to know what it is like. It is a great company to work for,
especially if you like working with Microsoft technology. In fact, Gartner <a href="http://dennismulder.net/Blog/archive/2005/03/30/213.aspx">just
released a publication</a> that listed Avanade as one of the “cool” vendors
(along with three other companies). The big issue with working for Avanade is that
you will travel. How much depends on what region you work for. The region that I work
for, the west region, has a lot of work in each area so the traveling I do is
all close by (at least so far). 
</p>
        <p>
The west region is also looking to hire developers (especially in SoCal). So if you
live in the Western US, like to work with MS technologies, and don't mind some travel,
this is a great opportunity. The company is mainly looking for .NET developers with
skills in other MS products like SQL Server, BizTalk, SharePoint, Reporting Services,
etc. 
</p>
        <p>
If you're interested, send your resume to <a href="mailto:avanade-apply@bryantlikes.com">me</a> and
I'll pass it along to the right person. 
</p>
        <p>
Some of the benefits of working for Avanade include things like $1000 every six
months to spend on gadgets and a trip to one major conference per year. They want
all developers to get MCSD certified and will pay for your training materials and
exams (pass or fail). You are also allocated three weeks per year for training and
this is allocated in the same way that vacations are allocated. Plus you get to work
with a bunch of great people and have a lot of fun.
</p>
        <p>
Here is a basic job description:
</p>
        <p>
          <hr id="null" />
        </p>
        <p>
          <strong>Short Description</strong> : Join Avanade and you will be part of a premier
consulting organization focused on the Microsoft 
<br />
enterprise suite. You will help build reliable, scalable solutions. 
</p>
        <p>
          <strong>Description</strong> : Avanade is the only global technology integrator dedicated
to the Microsoft enterprise platform. Avanade helps customers use Microsoft technology
to cut costs and improve business results through standardization, consolidation,
and integration of IT infrastructure and applications. 
</p>
        <p>
As a Developer, your focus will be developing and testing mission critical enterprise
solutions. You will build management, technical and planning skills by participating
in internal development projects. You will improve your abilities to think creatively
and design solutions. 
<br /></p>
        <p>
          <strong>Responsibilities:</strong>
        </p>
        <ul>
          <li>
Participate in business requirements gathering and rules definition. 
</li>
          <li>
Participate in design of desktop and web-based application architecture. 
</li>
          <li>
Develop components/modules/scripts implementing business process rules. 
</li>
          <li>
Perform code walk-through of software components. 
</li>
          <li>
Document software components sufficient for on-going support and enhancement. 
</li>
          <li>
Effectively communicate status of tasks and projects 
</li>
        </ul>
        <p>
          <strong>Minimum Requirements:</strong>
        </p>
        <p>
You will be degree qualified with excellent communication skills and will have hands-on
experience working on component based applications in a distributed environment. Qualified
candidates should possess: 
</p>
        <ul>
          <li>
1+ year technology consulting 
</li>
          <li>
2 to 4+ years as a programmer 
</li>
          <li>
1+ years experience with C# 
</li>
          <li>
Deep MS platform Skills 
</li>
          <li>
.NET Framework 
</li>
          <li>
Full lifecycle experience developing large scale, scaleable applications 
</li>
          <li>
Willing to travel 
</li>
        </ul>
        <p>
          <strong>Preferred Requirements:</strong>
        </p>
        <ul>
          <li>
MCSD Certification 
</li>
        </ul>
        <p>
 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=3075" />
      </body>
      <title>Career Opportunity</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,3075.aspx</guid>
      <link>http://bryantlikes.com/CareerOpportunity.aspx</link>
      <pubDate>Thu, 05 May 2005 14:44:00 GMT</pubDate>
      <description>&lt;p&gt;
I've been working for &lt;a href="http://www.avanade.com"&gt;Avanade&lt;/a&gt; for about two months
now, and I really like it. I've gotten a few emails from people who are interviewing
with the company and want to know what it is like. It is a great company to work for,
especially if you like working with Microsoft technology. In fact, Gartner &lt;a href="http://dennismulder.net/Blog/archive/2005/03/30/213.aspx"&gt;just
released a publication&lt;/a&gt; that listed Avanade as one of the &amp;#8220;cool&amp;#8221; vendors
(along with three other companies). The big issue with working for Avanade is that
you will travel. How much depends on what region you work for. The region that I work
for, the west region, has&amp;nbsp;a lot of work in each area so the traveling I do is
all close by (at least so far). 
&lt;/p&gt;
&lt;p&gt;
The west region is also looking to hire developers (especially in SoCal). So if you
live in the Western US, like to work with MS technologies, and don't mind some travel,
this is a great opportunity. The company is mainly looking for .NET developers with
skills in other MS products like SQL Server, BizTalk, SharePoint, Reporting Services,
etc. 
&lt;/p&gt;
&lt;p&gt;
If you're interested, send your resume to &lt;a href="mailto:avanade-apply@bryantlikes.com"&gt;me&lt;/a&gt;&amp;nbsp;and
I'll pass it along to the right person. 
&lt;/p&gt;
&lt;p&gt;
Some of the benefits of working for Avanade include things like&amp;nbsp;$1000 every six
months to spend on gadgets and a trip to one major conference per year. They want
all developers to get MCSD certified and will pay for your training materials and
exams (pass or fail). You are also allocated three weeks per year for training and
this is allocated in the same way that vacations are allocated. Plus you get to work
with a bunch of great people and have a lot of fun.
&lt;/p&gt;
&lt;p&gt;
Here is a basic job description:
&lt;/p&gt;
&lt;p&gt;
&lt;hr id=null&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Short Description&lt;/strong&gt; : Join Avanade and you will be part of a premier
consulting organization focused on the Microsoft 
&lt;br&gt;
enterprise suite. You will help build reliable, scalable solutions. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Description&lt;/strong&gt; : Avanade is the only global technology integrator dedicated
to the Microsoft enterprise platform. Avanade helps customers use Microsoft technology
to cut costs and improve business results through standardization, consolidation,
and integration of IT infrastructure and applications. 
&lt;/p&gt;
&lt;p&gt;
As a Developer, your focus will be developing and testing mission critical enterprise
solutions. You will build management, technical and planning skills by participating
in internal development projects. You will improve your abilities to think creatively
and design solutions. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Responsibilities:&lt;/strong&gt; 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Participate in business requirements gathering and rules definition. 
&lt;/li&gt;
&lt;li&gt;
Participate in design of desktop and web-based application architecture. 
&lt;/li&gt;
&lt;li&gt;
Develop components/modules/scripts implementing business process rules. 
&lt;/li&gt;
&lt;li&gt;
Perform code walk-through of software components. 
&lt;/li&gt;
&lt;li&gt;
Document software components sufficient for on-going support and enhancement. 
&lt;/li&gt;
&lt;li&gt;
Effectively communicate status of tasks and projects 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Minimum Requirements:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
You will be degree qualified with excellent communication skills and will have hands-on
experience working on component based applications in a distributed environment. Qualified
candidates should possess: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
1+ year technology consulting 
&lt;/li&gt;
&lt;li&gt;
2 to 4+ years as a programmer 
&lt;/li&gt;
&lt;li&gt;
1+ years experience with C# 
&lt;/li&gt;
&lt;li&gt;
Deep MS platform Skills 
&lt;/li&gt;
&lt;li&gt;
.NET Framework 
&lt;/li&gt;
&lt;li&gt;
Full lifecycle experience developing large scale, scaleable applications 
&lt;/li&gt;
&lt;li&gt;
Willing to travel 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Preferred Requirements:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
MCSD Certification 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=3075" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,3075.aspx</comments>
      <category>Sql and Xml</category>
      <category>Reporting Services</category>
      <category>SharePoint</category>
      <category>BizTalk</category>
      <category>General</category>
      <category>ASP.Net/Web Services</category>
      <category>Avanade</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=3024</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,3024.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,3024.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3024</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Via <a href="http://www.tfosorcim.org/archives/000363.html">Andrew Watt</a>:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
Service Pack 2 for Reporting Services 2000 is available for download.
</p>
          <p>
Visit <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=502C0D89-1308-4662-8F58-CEC55EF1235B&amp;displaylang=en"><font color="#999966">SQL
Server 2000 Reporting Services Service Pack 2</font></a>.
</p>
          <p>
Bug fixes in SP2 are listed at <a href="http://www.microsoft.com/downloads/info.aspx?u=http%3A%2F%2Fsupport.microsoft.com%2F%3Fkbid%3D889640&amp;na=44&amp;p=0&amp;SrcDisplayLang=en&amp;SrcCategoryId=&amp;SrcFamilyId=502c0d89-1308-4662-8f58-cec55ef1235b&amp;genscs="><font color="#999966">Microsoft
Knowledge Base article 889640</font></a>.
</p>
        </blockquote>
        <p dir="ltr">
I'll be interested to hear what people think of the new web parts versus the <a href="http://sourceforge.net/projects/rswebparts">RsWebParts</a>.
The fact that they are included out-of-the-box makes a big difference in what people
use. 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=3024" />
      </body>
      <title>SQL Server Reporting Services SP2 Released</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,3024.aspx</guid>
      <link>http://bryantlikes.com/SQLServerReportingServicesSP2Released.aspx</link>
      <pubDate>Mon, 25 Apr 2005 12:57:00 GMT</pubDate>
      <description>&lt;p&gt;
Via &lt;a href="http://www.tfosorcim.org/archives/000363.html"&gt;Andrew Watt&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
Service Pack 2 for Reporting Services 2000 is available for download.
&lt;/p&gt;
&lt;p&gt;
Visit &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=502C0D89-1308-4662-8F58-CEC55EF1235B&amp;amp;displaylang=en"&gt;&lt;font color=#999966&gt;SQL
Server 2000 Reporting Services Service Pack 2&lt;/font&gt;&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Bug fixes in SP2 are listed at &lt;a href="http://www.microsoft.com/downloads/info.aspx?u=http%3A%2F%2Fsupport.microsoft.com%2F%3Fkbid%3D889640&amp;amp;na=44&amp;amp;p=0&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=502c0d89-1308-4662-8f58-cec55ef1235b&amp;amp;genscs="&gt;&lt;font color=#999966&gt;Microsoft
Knowledge Base article 889640&lt;/font&gt;&lt;/a&gt;.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
I'll be interested to hear what people think of the new web parts versus the &lt;a href="http://sourceforge.net/projects/rswebparts"&gt;RsWebParts&lt;/a&gt;.
The fact that they are included out-of-the-box makes a big difference in what people
use. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=3024" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,3024.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2886</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2886.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2886.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2886</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Since I'm starting at Avanade on Monday, I've been doing some reading and watching
to prepare myself a little for the job. Namely, I've been watching all the Enterprise
Library webcasts. 
</p>
        <ul>
          <li>
            <a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269669%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e">Enterprise
Library Overview</a>
          </li>
          <li>
            <a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269438%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e">Enterprise
Library Configuration Application Block</a>
          </li>
          <li>
            <a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269687%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e">Enterprise
Library Data Access Application Block</a>
          </li>
          <li>
            <a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269440%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e">Enterprise
Library Caching Application Block</a>
          </li>
          <li>
            <a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269733%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e">Enterprise
Library Logging and Instrumentation Application Block</a>
          </li>
          <li>
            <a href="http://dennismulder.net/Blog/archive/2005/03/04/197.aspx">Dennis Mulder's
EntLib Slide Deck</a> (w/ ACA.Net info) [via <a href="http://blog.hishambaz.com/archive/2005/03/04/381.aspx">Baz</a>]</li>
        </ul>
        <p>
I also wanted to make sure I find time in the near future to read and watch:
</p>
        <ul>
          <li>
            <a href="http://www.theserverside.net/articles/showarticle.tss?id=WebParts1">WebParts:
From SharePoint to ASP.NET 2.0</a> [via <a href="http://weblogs.asp.net/jan/archive/2005/03/15/394730.aspx">Jan</a>] 
</li>
          <li>
            <a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269616%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e">Best
Practices for Developing and Deploying Web Parts</a>
          </li>
          <li>
            <a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%22938049A9-CCD6-4844-BB62-2DD3C1069C8A%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%2222410041-8480-4EDD-8B25-D25ACEA82169%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e">The
.Net Show: SQL Server 2005</a>
          </li>
          <li>
            <a href="http://winfx.msdn.microsoft.com/library/default.asp?url=/library/en-us/indigo_con/html/503fae4b-014c-44df-a9c7-c76ec4ed4229.asp">Indigo
CTP docs</a> [via <a href="http://pluralsight.com/blogs/dbox/archive/2005/03/15/6737.aspx">Don
Box</a>] 
</li>
          <li>
            <a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269748%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e">Enterprise
Library Exception Handling Application Block</a> [Mar 17] 
</li>
          <li>
            <a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;EventID=1032269874&amp;EventCategory=2">Enterprise
Library Cryptography Application Block</a> [Mar 22] 
</li>
          <li>
            <a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;EventID=1032270004&amp;EventCategory=2">Enterprise
Library Security Application Block</a> [Mar 24] 
</li>
          <li>
            <a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;EventID=1032269455&amp;EventCategory=4">Enterprise
Library Building Your Own Application Block</a> [Mar 28] 
</li>
          <li>
            <a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;EventID=1032269884&amp;EventCategory=2">Enterprise
Library Applied</a> [Mar 31]</li>
        </ul>
        <p>
So this is a reminder for myself so that I can find all these later on...
</p>
        <p>
          <strong>Update: </strong>There are also hands-on labs for that go with the Enterprise
Library webcasts <a href="http://www.ronjacobs.com/pnplive/Default.htm">here</a> [via <a href="http://blogs.msdn.com/scottdensmore/archive/2005/03/15/396370.aspx">Scott
Densmore</a>]. After watching the Logging Application Block webcast I decided to add
it into an existing application so that some of the other developers could get emails
when the processed failed. It took me about five minutes to add it. Watching the webcast
made the job easy for me.
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2886" />
      </body>
      <title>Things to Read and Watch</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2886.aspx</guid>
      <link>http://bryantlikes.com/ThingsToReadAndWatch.aspx</link>
      <pubDate>Tue, 15 Mar 2005 14:33:00 GMT</pubDate>
      <description>&lt;p&gt;
Since I'm starting at Avanade on Monday, I've been doing some reading and watching
to prepare myself a little for the job. Namely, I've been watching all the Enterprise
Library webcasts. 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269669%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;Enterprise
Library Overview&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269438%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;Enterprise
Library Configuration Application Block&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269687%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;Enterprise
Library Data Access Application Block&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269440%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;Enterprise
Library Caching Application Block&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269733%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;Enterprise
Library Logging and Instrumentation Application Block&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://dennismulder.net/Blog/archive/2005/03/04/197.aspx"&gt;Dennis Mulder's
EntLib Slide Deck&lt;/a&gt; (w/ ACA.Net info) [via &lt;a href="http://blog.hishambaz.com/archive/2005/03/04/381.aspx"&gt;Baz&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I also wanted to make sure I find time in the near future to read and watch:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.theserverside.net/articles/showarticle.tss?id=WebParts1"&gt;WebParts:
From SharePoint to ASP.NET 2.0&lt;/a&gt;&amp;nbsp;[via &lt;a href="http://weblogs.asp.net/jan/archive/2005/03/15/394730.aspx"&gt;Jan&lt;/a&gt;] 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269616%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;Best
Practices for Developing and Deploying Web Parts&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%22938049A9-CCD6-4844-BB62-2DD3C1069C8A%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%2222410041-8480-4EDD-8B25-D25ACEA82169%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;The
.Net Show: SQL Server 2005&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://winfx.msdn.microsoft.com/library/default.asp?url=/library/en-us/indigo_con/html/503fae4b-014c-44df-a9c7-c76ec4ed4229.asp"&gt;Indigo
CTP docs&lt;/a&gt; [via &lt;a href="http://pluralsight.com/blogs/dbox/archive/2005/03/15/6737.aspx"&gt;Don
Box&lt;/a&gt;] 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032269748%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;Enterprise
Library Exception Handling Application Block&lt;/a&gt;&amp;nbsp;[Mar 17] 
&lt;li&gt;
&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032269874&amp;amp;EventCategory=2"&gt;Enterprise
Library Cryptography Application Block&lt;/a&gt; [Mar 22] 
&lt;li&gt;
&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032270004&amp;amp;EventCategory=2"&gt;Enterprise
Library Security Application Block&lt;/a&gt; [Mar 24] 
&lt;li&gt;
&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032269455&amp;amp;EventCategory=4"&gt;Enterprise
Library Building Your Own Application Block&lt;/a&gt; [Mar 28] 
&lt;li&gt;
&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032269884&amp;amp;EventCategory=2"&gt;Enterprise
Library Applied&lt;/a&gt; [Mar 31]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
So this is a reminder for myself so that I can find all these later on...
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update: &lt;/strong&gt;There are also hands-on labs for that go with the Enterprise
Library webcasts &lt;a href="http://www.ronjacobs.com/pnplive/Default.htm"&gt;here&lt;/a&gt;&amp;nbsp;[via &lt;a href="http://blogs.msdn.com/scottdensmore/archive/2005/03/15/396370.aspx"&gt;Scott
Densmore&lt;/a&gt;]. After watching the Logging Application Block webcast I decided to add
it into an existing application so that some of the other developers could get emails
when the processed failed. It took me about five minutes to add it. Watching the webcast
made the job easy for me.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2886" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2886.aspx</comments>
      <category>Sql and Xml</category>
      <category>SharePoint</category>
      <category>General</category>
      <category>Avanade</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2817</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2817.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2817.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2817</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From <a href="http://timheuer.com/blog/">Tim Heuer</a>'s blog (via <a href="http://blogs.3sharp.com/Blog/tonyd/archive/2005/02/24/247.aspx">Tony
Dowler</a>):
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
inspired by scott hanselmen's post about What Great .NET Developers Ought to Know,
as well as the rush of interviews i've been conducting lately to fill <a title="SharePoint" href="http://msdn.microsoft.com/sharepoint" target="_blank">sharepoint</a> positions,
i started compiling a list of questions for what a sharepoint consultant ought to
know...here it is...
</p>
        </blockquote>
        <p>
Go <a href="http://timheuer.com/blog/archive/2005/02/24/1691.aspx">read it</a> to
see how you measure up. Some good questions in there that will help you see what areas
of SharePoint you're weak in (if any). It seems like a pretty well-rounded list
of questions.
</p>
        <p>
If you do really well on the SharePoint questions and feeling like you know everything
go read Scott's <a href="http://www.hanselman.com/blog/PermaLink,guid,d835178f-a649-45f5-907f-28ad1177d8d5.aspx">What
Great .NET Developers Ought to Know</a> and it will probably bring you back down
to earth :)
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2817" />
      </body>
      <title>What do you know</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2817.aspx</guid>
      <link>http://bryantlikes.com/WhatDoYouKnow.aspx</link>
      <pubDate>Thu, 24 Feb 2005 13:36:00 GMT</pubDate>
      <description>&lt;p&gt;
From &lt;a href="http://timheuer.com/blog/"&gt;Tim Heuer&lt;/a&gt;'s blog (via &lt;a href="http://blogs.3sharp.com/Blog/tonyd/archive/2005/02/24/247.aspx"&gt;Tony
Dowler&lt;/a&gt;):
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
inspired by scott hanselmen's post about What Great .NET Developers Ought to Know,
as well as the rush of interviews i've been conducting lately to fill &lt;a title=SharePoint href="http://msdn.microsoft.com/sharepoint" target=_blank&gt;sharepoint&lt;/a&gt; positions,
i started compiling a list of questions for what a sharepoint consultant ought to
know...here it is...
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Go &lt;a href="http://timheuer.com/blog/archive/2005/02/24/1691.aspx"&gt;read it&lt;/a&gt; to
see how you measure up. Some good questions in there that will help you see what areas
of SharePoint you're weak in (if any).&amp;nbsp;It seems like a pretty well-rounded list
of questions.
&lt;/p&gt;
&lt;p&gt;
If you do really well on the SharePoint questions and feeling like you know everything
go read Scott's&amp;nbsp;&lt;a href="http://www.hanselman.com/blog/PermaLink,guid,d835178f-a649-45f5-907f-28ad1177d8d5.aspx"&gt;What
Great .NET Developers Ought to Know&lt;/a&gt;&amp;nbsp;and it will probably bring you back down
to earth :)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2817" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2817.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2814</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2814.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2814.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2814</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This morning I came across this article: <a href="http://blogs.msdn.com/edhild/articles/377362.aspx">Impersonation,
Single Sign-on, and SPS</a>. It is a very interesting article that lays out how to
use Single Sign-on with impersonation. So the first thing I did was to get Single
Sign-On setup using <a href="http://www.microsoft.com/technet/prodtechnol/sppt/reskit/c2661881x.mspx#EDAA">this
MSDN article</a> which was linked in the article. Wow! That was pretty easy. I actually
have SSO working for the first time and now it seems pretty simple.
</p>
        <p>
The next step for me was to take the sample code and try it out. I created a new WebPart
library and created my new SSO sample webpart. Everything was setup just like the
article (I think) but when I ran it I got the dreaded:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
Login failed for user '(null)'. Reason: Not associated with a trusted SQL Server connection.
</p>
        </blockquote>
        <p dir="ltr">
Ok. So why doesn't this work. Well after doing some testing myself (using Page.User.Identity
and WindowsIdentity.GetCurrent().Name) I came to the conclusion that something doesn't
work, although I'm not sure what it is. It must work in some situations because Jay
Nathan has done a lot of work on this (<a href="http://www.15seconds.com/issue/040511.htm">here</a> and <a href="http://jaynathan.com/blog/archive/2004/06/25/156.aspx">here</a>),
this article references it, and so does Barry's Blog <a href="http://barracuda.net/barrysblog.aspx">here</a> on
January 24, 2005 (could we get a permalink Barry?). So these guys must be using it
and it must be working.
</p>
        <p dir="ltr">
Patrick seems to come to a different conclusion <a href="http://blog.u2u.info/DottextWeb/patrick/archive/2004/10/20/235.aspx">here</a>.
He seems to be saying that impersonation <strong>doesn't</strong> work and that it
is easier to just use COM+ instead. A third example of impersonation can be found
at <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemsecurityprincipalwindowsimpersonationcontextclasstopic.asp">this
MSDN article</a>. All three of these examples do the same thing, and in all three
cases I get the same error message above when I try to connect to the database using
a trusted connection.
</p>
        <p dir="ltr">
I can solve Patrick's problem by creating a new WindowsPrincipal object and assigning
it to the current context (after making a copy of the current IPrincipal in order
to return things on undo). Here is an example of how to do this.
</p>
        <p dir="ltr">
1) First you will need to change the Impersonate method on the Impersonator class:
</p>
        <style type="text/css">
.csharpcode
{
 font-size: 10pt;
 color: black;
 font-family: Courier New , Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0px; }
.rem { color: #008000; }
.kwrd { color: #0000ff; }
.str { color: #006080; }
.op { color: #0000c0; }
.preproc { color: #cc6633; }
.asp { background-color: #ffff00; }
.html { color: #800000; }
.attr { color: #ff0000; }
.alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0px;
}
.lnum { color: #606060; }
</style>
        <pre class="csharpcode">
          <span class="kwrd">public</span> WindowsIdentity Impersonate()
{ <span class="rem">// authenticates the domain user account and begins impersonating
it</span> WindowsIdentity id = <span class="kwrd">this</span>.Logon(); <span class="kwrd">this</span>.impersonationContext
= id.Impersonate(); <span class="kwrd">return</span> id; }</pre>
        <p dir="ltr">
2) Next you will need to store the current Principal and then set the new one.
</p>
        <pre class="csharpcode">IPrincipal p = <span class="kwrd">base</span>.Context.User;</pre>.... <pre class="csharpcode">WindowsPrincipal wp = <span class="kwrd">new</span> WindowsPrincipal(Impersonater.Impersonate()); <span class="kwrd">base</span>.Context.User
= wp;</pre><p dir="ltr">
3) You can then do stuff using the SharePoint object model since the Context.User
has now been replaced with the impersonated user. When you're done you put back the
orginal user.
</p><pre class="csharpcode">Impersonater.Undo();
<span class="kwrd">base</span>.Context.User
= p;</pre><p dir="ltr">
Using this code both the WindowsIdentity.GetCurrent().Name and Context.User.Identity.Name
return the name of the impersonated user. 
</p><p dir="ltr">
All this to say that it still doesn't seem to accomplish what I need to accomplish.
I still get that error and I'm really not sure why. Any ideas?
</p><img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2814" /></body>
      <title>Single Sign-On, Impersonation, and SqlConnections</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2814.aspx</guid>
      <link>http://bryantlikes.com/SingleSignOnImpersonationAndSqlConnections.aspx</link>
      <pubDate>Wed, 23 Feb 2005 18:14:00 GMT</pubDate>
      <description>&lt;p&gt;
This morning I came across this article: &lt;a href="http://blogs.msdn.com/edhild/articles/377362.aspx"&gt;Impersonation,
Single Sign-on, and SPS&lt;/a&gt;. It is a very interesting article that lays out how to
use Single Sign-on with impersonation. So the first thing I did was to get Single
Sign-On setup using &lt;a href="http://www.microsoft.com/technet/prodtechnol/sppt/reskit/c2661881x.mspx#EDAA"&gt;this
MSDN article&lt;/a&gt; which was linked in the article. Wow! That was pretty easy. I actually
have SSO working for the first time and now it seems pretty simple.
&lt;/p&gt;
&lt;p&gt;
The next step for me was to take the sample code and try it out. I created a new WebPart
library and created my new SSO sample webpart. Everything was setup just like the
article (I think) but when I ran it I got the dreaded:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
Login failed for user '(null)'. Reason: Not associated with a trusted SQL Server connection.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
Ok. So why doesn't this work. Well after doing some testing myself (using Page.User.Identity
and WindowsIdentity.GetCurrent().Name) I came to the conclusion that something doesn't
work, although I'm not sure what it is. It must work in some situations because Jay
Nathan has done a lot of work on this (&lt;a href="http://www.15seconds.com/issue/040511.htm"&gt;here&lt;/a&gt; and &lt;a href="http://jaynathan.com/blog/archive/2004/06/25/156.aspx"&gt;here&lt;/a&gt;),
this article references it, and so does Barry's Blog &lt;a href="http://barracuda.net/barrysblog.aspx"&gt;here&lt;/a&gt; on
January 24, 2005 (could we get a permalink Barry?). So these guys must be using it
and it must be working.
&lt;/p&gt;
&lt;p dir=ltr&gt;
Patrick seems to come to a different conclusion &lt;a href="http://blog.u2u.info/DottextWeb/patrick/archive/2004/10/20/235.aspx"&gt;here&lt;/a&gt;.
He seems to be saying that impersonation &lt;strong&gt;doesn't&lt;/strong&gt; work and that it
is easier to just use COM+ instead. A third example of impersonation can be found
at &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemsecurityprincipalwindowsimpersonationcontextclasstopic.asp"&gt;this
MSDN article&lt;/a&gt;. All three of these examples do the same thing, and in all three
cases I get the same error message above when I try to connect to the database using
a trusted connection.
&lt;/p&gt;
&lt;p dir=ltr&gt;
I can solve Patrick's problem by creating a new WindowsPrincipal object and assigning
it to the current context (after making a copy of the current IPrincipal in order
to return things on undo). Here is an example of how to do this.
&lt;/p&gt;
&lt;p dir=ltr&gt;
1) First you will need to change the Impersonate method on the Impersonator class:
&lt;/p&gt;
&lt;style type=text/css&gt;
.csharpcode
{
 font-size: 10pt;
 color: black;
 font-family: Courier New , Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0px; }
.rem { color: #008000; }
.kwrd { color: #0000ff; }
.str { color: #006080; }
.op { color: #0000c0; }
.preproc { color: #cc6633; }
.asp { background-color: #ffff00; }
.html { color: #800000; }
.attr { color: #ff0000; }
.alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0px;
}
.lnum { color: #606060; }
&lt;/style&gt;
&lt;pre class=csharpcode&gt;&lt;span class=kwrd&gt;public&lt;/span&gt; WindowsIdentity Impersonate()
{ &lt;span class=rem&gt;// authenticates the domain user account and begins impersonating
it&lt;/span&gt; WindowsIdentity id = &lt;span class=kwrd&gt;this&lt;/span&gt;.Logon(); &lt;span class=kwrd&gt;this&lt;/span&gt;.impersonationContext
= id.Impersonate(); &lt;span class=kwrd&gt;return&lt;/span&gt; id; }&lt;/pre&gt;
&lt;p dir=ltr&gt;
2) Next you will need to store the current Principal and then set the new one.
&lt;/p&gt;
&lt;pre class=csharpcode&gt;IPrincipal p = &lt;span class=kwrd&gt;base&lt;/span&gt;.Context.User;&lt;/pre&gt;.... &lt;pre class=csharpcode&gt;WindowsPrincipal wp = &lt;span class=kwrd&gt;new&lt;/span&gt; WindowsPrincipal(Impersonater.Impersonate()); &lt;span class=kwrd&gt;base&lt;/span&gt;.Context.User
= wp;&lt;/pre&gt;
&lt;p dir=ltr&gt;
3) You can then do stuff using the SharePoint object model since the Context.User
has now been replaced with the impersonated user. When you're done you put back the
orginal user.
&lt;/p&gt;
&lt;pre class=csharpcode&gt;Impersonater.Undo();
&lt;span class=kwrd&gt;base&lt;/span&gt;.Context.User
= p;&lt;/pre&gt;
&lt;p dir=ltr&gt;
Using this code both the WindowsIdentity.GetCurrent().Name and Context.User.Identity.Name
return the name of the impersonated user. 
&lt;/p&gt;
&lt;p dir=ltr&gt;
All this to say that it still doesn't seem to accomplish what I need to accomplish.
I still get that error and I'm really not sure why. Any ideas?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2814" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2814.aspx</comments>
      <category>SharePoint</category>
      <category>ASP.Net/Web Services</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2812</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2812.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2812.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2812</wfw:commentRss>
      <slash:comments>9</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Just finished uploading the RsWebParts 1.3 package to the <a href="http://sf.net/projects/rswebparts">project
site</a>. I added in a quick fix for the parameters issue. The fix is that you can
now include the standard Reporting Services toolbar and parameters which should fix
the problem. It isn't as flexible and it takes up some of the report view space, but
it works until I come up with something better.
</p>
        <p>
Thanks to everyone for all the great feedback, especially David Korn for testing out
the new version.
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2812" />
      </body>
      <title>RsWebParts 1.3</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2812.aspx</guid>
      <link>http://bryantlikes.com/RsWebParts13.aspx</link>
      <pubDate>Tue, 22 Feb 2005 22:03:00 GMT</pubDate>
      <description>&lt;p&gt;
Just finished uploading the RsWebParts 1.3 package to the &lt;a href="http://sf.net/projects/rswebparts"&gt;project
site&lt;/a&gt;. I added in a quick fix for the parameters issue. The fix is that you can
now include the standard Reporting Services toolbar and parameters which should fix
the problem. It isn't as flexible and it takes up some of the report view space, but
it works until I come up with something better.
&lt;/p&gt;
&lt;p&gt;
Thanks to everyone for all the great feedback, especially David Korn for testing out
the new version.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2812" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2812.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2800</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2800.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2800.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2800</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Not a very exciting release. You can get the installer and the source code (and the
DwpGenerator binary and source) at the <a href="http://sf.net/projects/rswebparts">RsWebParts
SourceForge Project</a>.
</p>
        <p>
I'm still working on resolving the parameters issue. I think I'm close on a solution
but there were several people who needed the source files ASAP so I went with a much
simplier release for now. 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2800" />
      </body>
      <title>RsWebParts 1.2</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2800.aspx</guid>
      <link>http://bryantlikes.com/RsWebParts12.aspx</link>
      <pubDate>Fri, 18 Feb 2005 13:19:00 GMT</pubDate>
      <description>&lt;p&gt;
Not a very exciting release. You can get the installer and the source code (and the
DwpGenerator binary and source) at the &lt;a href="http://sf.net/projects/rswebparts"&gt;RsWebParts
SourceForge Project&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I'm still working on resolving the parameters issue. I think I'm close on a solution
but there were several people who needed the source files ASAP so I went with a much
simplier release for now. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2800" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2800.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2799</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2799.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2799.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2799</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>Automating WebPart Library Builds</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2799.aspx</guid>
      <link>http://bryantlikes.com/AutomatingWebPartLibraryBuilds.aspx</link>
      <pubDate>Fri, 18 Feb 2005 11:55:00 GMT</pubDate>
      <description>&lt;p&gt;
Back when I was working on version 1.1 of the RsWebParts I setup a build script for
my project which I think is pretty useful. It automates the process of creating &lt;a href="http://msdn.microsoft.com/library/en-us/pjsdk/html/pjsdkWebpInstallAndSPS_HV01100335.asp?frame=true#modify"&gt;DWP&lt;/a&gt; files
and packaging the project using the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0FDA5912-C136-4B44-911A-011ADFCC66E3&amp;amp;displaylang=en"&gt;WP
Packager tool&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
The first step in automating this process was to create a console application that
I called the DwpGenerator. I did this because I grew tired of forgetting to change
version numbers or trying to look up the public key token of an assembly. The DwpGenerator
is a simple application that takes a web part assembly and generates a dwp file for
each web part it finds in the assembly. It uses &lt;a href="http://www.ondotnet.com/pub/a/dotnet/excerpt/vbnut_8/index1.html"&gt;.Net
Attributes&lt;/a&gt;&amp;nbsp;to gather other information such as title and description. These
are set in the web part assembly. For example, here is the RsExplorer web part's class
declaration:
&lt;/p&gt;
&lt;style type=text/css&gt;
.csharpcode
{
 font-size: 10pt;
 color: black;
 font-family: Courier New , Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0px; }
.rem { color: #008000; }
.kwrd { color: #0000ff; }
.str { color: #006080; }
.op { color: #0000c0; }
.preproc { color: #cc6633; }
.asp { background-color: #ffff00; }
.html { color: #800000; }
.attr { color: #ff0000; }
.alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0px;
}
.lnum { color: #606060; }
&lt;/style&gt;
&lt;pre class=csharpcode&gt;[DefaultProperty(&lt;span class=str&gt;"ServerUrl"&lt;/span&gt;), ToolboxData(&lt;span class=str&gt;"&amp;lt;{0}:RsExplorer
runat=server&amp;gt;"&lt;/span&gt;), XmlRoot(Namespace=&lt;span class=str&gt;"Bml.RsWebParts"&lt;/span&gt;),
Description(&lt;span class=str&gt;"Explore a Reporting Services Server."&lt;/span&gt;), Title(&lt;span class=str&gt;"RS
Explorer"&lt;/span&gt;), PartImage(&lt;span class=str&gt;"_WPR_/ReportExplorer.gif"&lt;/span&gt;)] &lt;span class=kwrd&gt;public&lt;/span&gt; &lt;span class=kwrd&gt;class&lt;/span&gt; RsExplorer
: RsBasePart, IRowProvider, IPostBackEventHandler, IDesignTimeHtmlProvider { ....
}&lt;/pre&gt;
&lt;br&gt;
&lt;p&gt;
The DwpGenerator picks up the title and description from these attributes. The generator
doesn't look for any specific class of attributes, so you can create your own. It
only looks at the name of the attribute to determine if it should use it. So for the
above web part the dwp that gets generated looks like:
&lt;/p&gt;
&lt;style type=text/css&gt;
.csharpcode
{
 font-size: 10pt;
 color: black;
 font-family: Courier New , Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0px; }
.rem { color: #008000; }
.kwrd { color: #0000ff; }
.str { color: #006080; }
.op { color: #0000c0; }
.preproc { color: #cc6633; }
.asp { background-color: #ffff00; }
.html { color: #800000; }
.attr { color: #ff0000; }
.alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0px;
}
.lnum { color: #606060; }
&lt;/style&gt;
&lt;pre class=csharpcode&gt;&lt;span class=rem&gt;
&lt;!--Autogenerated by DwpGenerator on 2/18/2005 11:32:26 AM--&gt;&lt;/span&gt; &lt;span class=kwrd&gt;&amp;lt;&lt;/span&gt;&lt;span class=html&gt;WebPart&lt;/span&gt; &lt;span class=attr&gt;xmlns&lt;/span&gt;&lt;span class=kwrd&gt;="http://schemas.microsoft.com/WebPart/v2"&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt; &lt;span class=kwrd&gt;&amp;lt;&lt;/span&gt;&lt;span class=html&gt;Title&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt;RS
Explorer&lt;span class=kwrd&gt;&lt; SPAN&gt;&lt;span class=html&gt;Title&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt; &lt;span class=kwrd&gt;&amp;lt;&lt;/span&gt;&lt;span class=html&gt;Description&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt;Explore
a Reporting Services Server.&lt;span class=kwrd&gt;&lt; SPAN&gt;&lt;span class=html&gt;Description&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt; &lt;span class=kwrd&gt;&amp;lt;&lt;/span&gt;&lt;span class=html&gt;Assembly&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt;Bml.RsWebParts,
Version=1.2.0.0,&lt;/span&gt;&lt;/span&gt;&lt;span class=kwrd&gt;&lt;span class=kwrd&gt;Culture=neutral, PublicKeyToken=4fafef280eaa1b9c&lt;span class=kwrd&gt;&lt; SPAN&gt;&lt;span class=html&gt;Assembly&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt; &lt;span class=kwrd&gt;&amp;lt;&lt;/span&gt;&lt;span class=html&gt;TypeName&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt;Bml.RsWebParts.RsExplorer&lt;span class=kwrd&gt;&lt; SPAN&gt;&lt;span class=html&gt;TypeName&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt; &lt;span class=kwrd&gt;&amp;lt;&lt;/span&gt;&lt;span class=html&gt;PartImageLarge&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt;_WPR_/ReportExplorer.gif&lt;span class=kwrd&gt;&lt; SPAN&gt;&lt;span class=html&gt;PartImageLarge&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt; &lt;span class=kwrd&gt;&lt; SPAN&gt;&lt;span class=html&gt;WebPart&lt;/span&gt;&lt;span class=kwrd&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;br&gt;
&lt;p&gt;
The next part of the automation involves the wppackager tool. This tool is great for
generating an installer program for web parts. The only drawback is that you need
to copy every file into the same folder for the tool to work. However, it is pretty
easy to automate copying files. So here is my post build event command line process
for the &lt;a href="http://sf.net/projects/RsWebParts"&gt;Bml.RsWebParts&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
c:\temp\DwpGenerator.exe "$(TargetPath)" "$(ProjectDir)"&lt;br&gt;
copy "$(ProjectDir)\manifest.xml" "$(TargetDir)"&lt;br&gt;
copy "$(ProjectDir)\*.dwp" "$(TargetDir)"&lt;br&gt;
copy "$(ProjectDir)\images\*.gif" "$(TargetDir)"&lt;br&gt;
copy "$(ProjectDir)\xsl\*.xsl" "$(TargetDir)"&lt;br&gt;
copy "$(ProjectDir)\scripts\*.js" "$(TargetDir)"&lt;br&gt;
"c:\program files\wppackager\wppackager.exe" "$(ProjectDir)\wppackager.xml"&lt;br&gt;
del&amp;nbsp; "$(TargetDir)\*.xml"&lt;br&gt;
del&amp;nbsp; "$(TargetDir)\*.gif"&lt;br&gt;
del&amp;nbsp; "$(TargetDir)\*.dwp"&lt;br&gt;
del&amp;nbsp; "$(TargetDir)\*.xsl"&lt;br&gt;
del&amp;nbsp; "$(TargetDir)\*.js"
&lt;/p&gt;
&lt;p&gt;
That is all there is to it. Now I can make changes to my project and when I build
it everything is updated. 
&lt;/p&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2799" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2799.aspx</comments>
      <category>SharePoint</category>
      <category>ASP.Net/Web Services</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2784</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2784.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2784.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2784</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Just ran across this today: the <a href="http://www.google.com/enterprise/mini/" mce_href="http://www.google.com/enterprise/mini/">Google
Mini</a>. 
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <font size="-1">Meet the Google Mini. Designed to help small and medium-sized businesses
make the most of their digital assets, the Mini is a hardware and software search
appliance that delivers the power and productivity of Google search across your organization’s
documents and websites. </font>
          </p>
          <p>
            <font size="-1">The Google Mini:</font>
          </p>
          <ul>
            <li style="MARGIN-BOTTOM: 5px">
              <font size="-1">Indexes and searches up to 50,000 documents.</font>
            </li>
            <li style="MARGIN-BOTTOM: 5px">
              <font size="-1">Works with over 220 different file formats, including HTML, PDF and
Microsoft Office. </font>
            </li>
            <li style="MARGIN-BOTTOM: 5px">
              <font size="-1">Can be set up in under an hour and requires minimal ongoing administration.</font>
            </li>
            <li style="MARGIN-BOTTOM: 5px">
              <font size="-1">Costs $4,995 for all hardware and software, including a year of support
and hardware replacement coverage.</font>
            </li>
          </ul>
        </blockquote>
        <p dir="ltr" style="MARGIN-BOTTOM: 5px">
          <img style="PADDING-BOTTOM: 8px" height="90" alt="The Google Mini" src="http://www.google.com/enterprise/images/googlemini.jpg" width="250" border="0" mce_src="http://www.google.com/enterprise/images/googlemini.jpg" /> 
</p>
        <p dir="ltr" style="MARGIN-BOTTOM: 5px">
This has some interesting implications for SharePoint. While it isn't as feature rich
as SharePoint, it is definately a competitor in the information aggregation space.
</p>
        <p dir="ltr" style="MARGIN-BOTTOM: 5px">
          <strong>Update: </strong>
          <font color="#223355">Sahil Malik</font>  asks how this
relates to SharePoint. Perhaps I should have clarified and said SharePoint Portal
Server. In order to see the relation take a look at Microsoft's <a href="http://www.microsoft.com/office/sharepoint/prodinfo/topten.mspx" mce_href="http://www.microsoft.com/office/sharepoint/prodinfo/topten.mspx">Top
10 Benefits of SharePoint Portal Server 2003</a>. 
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p dir="ltr" style="MARGIN-BOTTOM: 5px">
            <strong>Find</strong> and reuse timely and relevant information from systems and reports,
and <strong>quickly locate</strong> and access documents, projects, and best practices
by <strong>searching</strong> or browsing—all through the portal.
</p>
          <p dir="ltr" style="MARGIN-BOTTOM: 5px">
...<br /></p>
          <p dir="ltr" style="MARGIN-BOTTOM: 5px">
The <strong>industry-leading search technology</strong> in SharePoint Portal Server
2003 enables you to <strong>locate</strong> files, project plans, and best practices
in file shares, Web sites, Microsoft Exchange Public Folders, Lotus Notes, Windows
SharePoint Services sites, and databases instead of re-creating the wheel.
</p>
        </blockquote>
        <p style="MARGIN-BOTTOM: 5px">
Now I'm not saying that the Google Mini is a direct competitor to SharePoint since
SP offers much more than search. However, when it comes to information aggregation
the Google Mini is clearly a competitor. I've no idea if it can search Lotus Notes
or Exchange, but you could probably figure out a way to make it work. 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2784" />
      </body>
      <title>Google's Mini</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2784.aspx</guid>
      <link>http://bryantlikes.com/GooglesMini.aspx</link>
      <pubDate>Tue, 15 Feb 2005 12:11:00 GMT</pubDate>
      <description>&lt;p&gt;
Just ran across this today: the &lt;a href="http://www.google.com/enterprise/mini/" mce_href="http://www.google.com/enterprise/mini/"&gt;Google
Mini&lt;/a&gt;. 
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font size=-1&gt;Meet the Google Mini. Designed to help small and medium-sized businesses
make the most of their digital assets, the Mini is a hardware and software search
appliance that delivers the power and productivity of Google search across your organization’s
documents and websites. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=-1&gt;The Google Mini:&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li style="MARGIN-BOTTOM: 5px"&gt;
&lt;font size=-1&gt;Indexes and searches up to 50,000 documents.&lt;/font&gt; 
&lt;li style="MARGIN-BOTTOM: 5px"&gt;
&lt;font size=-1&gt;Works with over 220 different file formats, including HTML, PDF and
Microsoft Office. &lt;/font&gt; 
&lt;li style="MARGIN-BOTTOM: 5px"&gt;
&lt;font size=-1&gt;Can be set up in under an hour and requires minimal ongoing administration.&lt;/font&gt; 
&lt;li style="MARGIN-BOTTOM: 5px"&gt;
&lt;font size=-1&gt;Costs $4,995 for all hardware and software, including a year of support
and hardware replacement coverage.&lt;/font&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr style="MARGIN-BOTTOM: 5px"&gt;
&lt;img style="PADDING-BOTTOM: 8px" height=90 alt="The Google Mini" src="http://www.google.com/enterprise/images/googlemini.jpg" width=250 border=0 mce_src="http://www.google.com/enterprise/images/googlemini.jpg"&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p dir=ltr style="MARGIN-BOTTOM: 5px"&gt;
This has some interesting implications for SharePoint. While it isn't as feature rich
as SharePoint, it is definately a competitor in the information aggregation space.
&lt;/p&gt;
&lt;p dir=ltr style="MARGIN-BOTTOM: 5px"&gt;
&lt;strong&gt;Update: &lt;/strong&gt;&lt;font color=#223355&gt;Sahil Malik&lt;/font&gt;&amp;nbsp; asks how this
relates to SharePoint. Perhaps I should have clarified and said SharePoint Portal
Server. In order to see the relation take a look at Microsoft's &lt;a href="http://www.microsoft.com/office/sharepoint/prodinfo/topten.mspx" mce_href="http://www.microsoft.com/office/sharepoint/prodinfo/topten.mspx"&gt;Top
10 Benefits of SharePoint Portal Server 2003&lt;/a&gt;. 
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p dir=ltr style="MARGIN-BOTTOM: 5px"&gt;
&lt;strong&gt;Find&lt;/strong&gt; and reuse timely and relevant information from systems and reports,
and &lt;strong&gt;quickly locate&lt;/strong&gt; and access documents, projects, and best practices
by &lt;strong&gt;searching&lt;/strong&gt; or browsing—all through the portal.
&lt;/p&gt;
&lt;p dir=ltr style="MARGIN-BOTTOM: 5px"&gt;
...&lt;br&gt;
&lt;/p&gt;
&lt;p dir=ltr style="MARGIN-BOTTOM: 5px"&gt;
The &lt;strong&gt;industry-leading search technology&lt;/strong&gt; in SharePoint Portal Server
2003 enables you to &lt;strong&gt;locate&lt;/strong&gt; files, project plans, and best practices
in file shares, Web sites, Microsoft Exchange Public Folders, Lotus Notes, Windows
SharePoint Services sites, and databases instead of re-creating the wheel.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p style="MARGIN-BOTTOM: 5px"&gt;
Now I'm not saying that the Google Mini is a direct competitor to SharePoint since
SP offers much more than search. However, when it comes to information aggregation
the Google Mini is clearly a competitor. I've no idea if it can search Lotus Notes
or Exchange, but you could probably figure out a way to make it work. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2784" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2784.aspx</comments>
      <category>SharePoint</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2776</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2776.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2776.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2776</wfw:commentRss>
      <slash:comments>23</slash:comments>
      <title>SharePoint Recycle Bins</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2776.aspx</guid>
      <link>http://bryantlikes.com/SharePointRecycleBins.aspx</link>
      <pubDate>Mon, 14 Feb 2005 18:41:00 GMT</pubDate>
      <description>&lt;p&gt;
I recently read the MSDN article &lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/02/RecycleBinforWSS/default.aspx"&gt;Add
a Recycle Bin to Windows SharePoint Services for Easy Document Recovery&lt;/a&gt; by &lt;a href="http://ipattern.com/simpleblog/"&gt;Maxim
V. Karpov&lt;/a&gt; and &lt;a href="http://capdes.typepad.com/capdes/"&gt;Eric Schoonover&lt;/a&gt;.
It was an interesting read, but I was pretty amazed at the lengths they had to go
to in order to get something as simple as a recycle bin. Obviously, this biggest setback
was the fact that
&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
events are processed asynchronously. As a result, a registered event sink will only
be notified about the document deletion after that document has already been deleted
from the SQL Server&lt;sup class="clsSmall"&gt;&amp;trade;&lt;/sup&gt; backend database. As a result,
the event sink can't simply copy the document to the recycle bin library because the
deleted document no longer exists.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir="ltr"&gt;
Sounds like a&amp;nbsp;&lt;a href="/bryantlikes/archive/2005/01/05/2215.aspx"&gt;YASPQ&lt;/a&gt; (or &lt;a href="http://weblogs.asp.net/mnissen/archive/2005/02/08/369010.aspx"&gt;YASQ&lt;/a&gt; if
you prefer) to me. So in order to create the recycle bin they Maxim and Eric end up
mirroring the document libraries in order to add the recycle bin functionality. While
reading the article my mind couldn't help of trying to come up with a simplier method.
Here is my own version of a SharePoint recycle bin (note: don't play around with your
SharePoint databases if you don't know what you're getting yourself into. I always
build and test my scripts out on test servers and sites and this is what I would call
a pre-alpha release). 
&lt;/p&gt;
&lt;p dir="ltr"&gt;
Connect to the _SITE database using Query Analyzer and run the following SQL Scripts.
&lt;/p&gt;
&lt;p dir="ltr"&gt;
1) Create the RecycledDocs table which is basically a copy of the Docs table:
&lt;/p&gt;
&lt;p&gt;
&lt;style type="text/css"&gt;&lt;/style&gt;
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;-- create the RecycledDocs table&lt;/span&gt; select
* into RecycledDocs from Docs where 1 = 0&lt;/pre&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
2) Create an instead of trigger on the docs table that will redirects requests to
delete documents.
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;create trigger doc_recycle on docs instead of delete
&lt;span class="kwrd"&gt;as&lt;/span&gt; delete
RecycledDocs where id &lt;span class="kwrd"&gt;in&lt;/span&gt; (select id from deleted) insert
into RecycledDocs select id, siteid, dirname, leafname, webid, listid, doclibrowid,
type, size, metainfosize, version, uiversion, dirty, cacheparseid, docflags, thicketflag,
charset, timecreated, timelastmodified, nexttolasttimemodified, metainfotimelastmodified,
timelastwritten, setuppath, checkoutuserid, checkoutdate, checkoutexpires, checkoutsize,
versioncreatedsincestcheckout, ltcheckoutuserid, virusvendorid, virusstatus, virusinfo,
metainfo, content, checkoutcontent from Docs where type = 0 and Id &lt;span class="kwrd"&gt;in&lt;/span&gt; (select
Id from deleted) delete docs where id &lt;span class="kwrd"&gt;in&lt;/span&gt; (select id from
deleted)&lt;/pre&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p dir="ltr"&gt;
That is basically it. Of course, there is a lot of functionality that needs to be
added from a user perspective, but as an admin you can now restore any document that
gets deleted. 
&lt;/p&gt;
&lt;p dir="ltr"&gt;
I'm not sure how this would affect Microsoft's support of a SharePoint installation,
it may or may not. Your RecycledDocs table will also fill up (much like the Windows
Recycle Bin) until you manually empty it. I'm hoping to do a longer write up on this
along with either a web part or an ASPX page that can manage it. 
&lt;/p&gt;
&lt;p dir="ltr"&gt;
So there is my simple method of creating a Recycle Bin in SharePoint. It isn't very
fancy, but it works. :)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2776" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2776.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2761</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2761.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2761.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2761</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I looked into backing up SharePoint awhile back and didn't come away with a good solution.
Recently MSDN published a new articled on <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_SP2003_ta/html/Office_SharePointBackupRestore.asp">How
to Write a Back Up and Restore Application for SharePoint Portal Server 2003</a>.
The first time I looked at the article I skimmed it and didn't find it very useful
and wrote it off. However, <a href="http://brianecooper.com/coop/">Brian E. Cooper</a> blogged
that it was <a href="http://brianecooper.com/coop/archive/2005/02/07/268.aspx">Worth
a Read!</a></p>
        <p>
So I went back and downloaded the sample and went though the article and I must admit,
it was worth a read. There were several things I did like and some that I did not.
</p>
        <p>
First, I liked the fact that I was able to do a full backup and restore of a SharePoint
Portal. I built a Portal on a Virtual Server, backed it up, messed it up, and
then restored it. It worked pretty well. Everything was restored except for the WebPart
packages. For some reason I had to uninstall/reinstall my web part packages to get
them to work. However, this isn't too much of an issue. The main thing was that the
content and structure was restored successfully.
</p>
        <p>
Second, the application that comes with the article is a sample application (as referenced
by the application name SPSBackupSample). So, what is a SharePoint junkie to do with
a sample application except to create a full blown application. I spent much of the
day yesterday building my own version of the application written in C#. Everything
was going well until I hit the section that backs up the indexes using the CSPSBackupClass.
This class is used to backup the indexes to a stream using a method BackupToStream. 
</p>
        <p>
In the sample application (which is written in C++) you pass in an IStream pointer.
In C# you should be able to do this (if I understand things correctly) by passing
the pointer to a UCOMIStream object (using Marshal.GetIUnknownForObject). However,
it doesn't seem to matter what I do, I get an exception from the CSPSBackupClass object.
So I'm stuck at this point.
</p>
        <p>
I could use the BackupToFile option but I was hoping to keep my sample compatible
with the original sample. Any ideas?
</p>
        <p>
          <strong>Update: </strong>In case anyone is interested, here is the exception details
that I'm getting:
</p>
        <p>
System.UnauthorizedAccessException: Access is denied.<br />
   at mssctlbm.CSPSBackupClass.BackupToStream(String bstrHostName, Object
pStream, String bstrPassword, String bstrSite)<br />
   at BackupSPS.BackupSite.Backup(String location, String backupName)
</p>
        <p>
          <strong>Update: </strong>Ok I was able to get this to work. I ended up writing a C++
console application that calls my C# class library. The problem was that I needed
to make these two calls when my program started up:
</p>
        <style type="text/css">
.csharpcode
{
 font-size: 10pt;
 color: black;
 font-family: Courier New , Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0px; }
.rem { color: #008000; }
.kwrd { color: #0000ff; }
.str { color: #006080; }
.op { color: #0000c0; }
.preproc { color: #cc6633; }
.asp { background-color: #ffff00; }
.html { color: #800000; }
.attr { color: #ff0000; }
.alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0px;
}
.lnum { color: #606060; }
</style>
        <pre class="csharpcode">    CoInitializeEx(NULL,COINIT_MULTITHREADED);
    
    HRESULT hr = CoInitializeSecurity(NULL, -1, NULL, NULL, 
                                      RPC_C_AUTHN_LEVEL_DEFAULT,
                                      RPC_C_IMP_LEVEL_IMPERSONATE,
                                      NULL, 
                                      EOAC_NONE, 
                                      NULL);</pre>
        <pre class="csharpcode"> </pre>
        <p>
According to <a href="http://pinvoke.net/default.aspx/ole32.CoInitializeSecurity">PInvoke.net</a> you
shouldn't call CoInitializeSecurity from managed code:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
That's because the CLR will almost always call CoInitialize upon startup before execution
enters your main method, and CoInitialize will implicitly call CoInitializeSecurity
if it hasn't already been called.  Therefore, calling this from managed code
will usually return RPC_E_TOO_LATE.
</p>
        </blockquote>
        <p dir="ltr">
Once I switched to using a C++ app that called my class library everything started
working. Once I get this completed I will probably post it up to a new project on
source forge in case anyone is interested.
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2761" />
      </body>
      <title>Backing up SharePoint</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2761.aspx</guid>
      <link>http://bryantlikes.com/BackingUpSharePoint.aspx</link>
      <pubDate>Wed, 09 Feb 2005 15:10:00 GMT</pubDate>
      <description>&lt;p&gt;
I looked into backing up SharePoint awhile back and didn't come away with a good solution.
Recently MSDN published a new articled on &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_SP2003_ta/html/Office_SharePointBackupRestore.asp"&gt;How
to Write a Back Up and Restore Application for SharePoint Portal Server 2003&lt;/a&gt;.
The first time I looked at the article I skimmed it and didn't find it very useful
and wrote it off. However, &lt;a href="http://brianecooper.com/coop/"&gt;Brian E. Cooper&lt;/a&gt; blogged
that it was &lt;a href="http://brianecooper.com/coop/archive/2005/02/07/268.aspx"&gt;Worth
a Read!&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
So I went back and downloaded the sample and went though the article and I must admit,
it was worth a read. There were several things I did like and some that I did not.
&lt;/p&gt;
&lt;p&gt;
First, I liked the fact that I was able to do a full backup and restore of a SharePoint
Portal. I built a Portal on a&amp;nbsp;Virtual Server, backed it up, messed it up, and
then restored it. It worked pretty well. Everything was restored except for the WebPart
packages. For some reason I had to uninstall/reinstall my web part packages to get
them to work. However, this isn't too much of an issue. The main thing was that the
content and structure was restored successfully.
&lt;/p&gt;
&lt;p&gt;
Second, the application that comes with the article is a sample application (as referenced
by the application name SPSBackupSample). So, what is a SharePoint junkie to do with
a sample application except to create a full blown application. I spent much of the
day yesterday building my own version of the application written in C#. Everything
was going well until I hit the section that backs up the indexes using the CSPSBackupClass.
This class is used to backup the indexes to a stream using a method BackupToStream. 
&lt;/p&gt;
&lt;p&gt;
In the sample application (which is written in C++) you pass in an IStream pointer.
In C# you should be able to do this (if I understand things correctly) by passing
the pointer to a UCOMIStream object (using Marshal.GetIUnknownForObject). However,
it doesn't seem to matter what I do, I get an exception from the CSPSBackupClass object.
So I'm stuck at this point.
&lt;/p&gt;
&lt;p&gt;
I could use the BackupToFile option but I was hoping to keep my sample compatible
with the original sample. Any ideas?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update: &lt;/strong&gt;In case anyone is interested, here is the exception details
that I'm getting:
&lt;/p&gt;
&lt;p&gt;
System.UnauthorizedAccessException: Access is denied.&lt;br&gt;
&amp;nbsp;&amp;nbsp; at mssctlbm.CSPSBackupClass.BackupToStream(String bstrHostName, Object
pStream, String bstrPassword, String bstrSite)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at BackupSPS.BackupSite.Backup(String location, String backupName)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update: &lt;/strong&gt;Ok I was able to get this to work. I ended up writing a C++
console application that calls my C# class library. The problem was that I needed
to make these two calls when my program started up:
&lt;/p&gt;
&lt;style type=text/css&gt;
.csharpcode
{
 font-size: 10pt;
 color: black;
 font-family: Courier New , Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0px; }
.rem { color: #008000; }
.kwrd { color: #0000ff; }
.str { color: #006080; }
.op { color: #0000c0; }
.preproc { color: #cc6633; }
.asp { background-color: #ffff00; }
.html { color: #800000; }
.attr { color: #ff0000; }
.alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0px;
}
.lnum { color: #606060; }
&lt;/style&gt;
&lt;pre class=csharpcode&gt;    CoInitializeEx(NULL,COINIT_MULTITHREADED);
    
    HRESULT hr = CoInitializeSecurity(NULL, -1, NULL, NULL, 
                                      RPC_C_AUTHN_LEVEL_DEFAULT,
                                      RPC_C_IMP_LEVEL_IMPERSONATE,
                                      NULL, 
                                      EOAC_NONE, 
                                      NULL);&lt;/pre&gt;&lt;pre class=csharpcode&gt;&amp;nbsp;&lt;/pre&gt;
&lt;p&gt;
According to &lt;a href="http://pinvoke.net/default.aspx/ole32.CoInitializeSecurity"&gt;PInvoke.net&lt;/a&gt; you
shouldn't call CoInitializeSecurity from managed code:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
That's because the CLR will almost always call CoInitialize upon startup before execution
enters your main method, and CoInitialize will implicitly call CoInitializeSecurity
if it hasn't already been called.&amp;nbsp; Therefore, calling this from managed code
will usually return RPC_E_TOO_LATE.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
Once I switched to using a C++ app that called my class library everything started
working. Once I get this completed I will probably post it up to a new project on
source forge in case anyone is interested.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2761" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2761.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2760</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2760.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2760.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2760</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://weblogs.asp.net/bowerm/">Mark Bower</a>
          <a href="http://weblogs.asp.net/bowerm/archive/2005/02/09/370066.aspx">notes</a>:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
Gates went on to add more detail: InfoPath ‘with rich controls, on top of the
Avalon runtime’, but also with the ability to ‘project onto classic HTML’.<span style="mso-spacerun: yes">  </span>So
InfoPath is likely to evolve into a Forms package that can target thin-client HTML
delivery and rich client Avalon delivery.<span style="mso-spacerun: yes">  </span>Look
forward to it.
</p>
        </blockquote>
        <p dir="ltr">
I watched the keynote as well and I thought Bill's response on this “it has
taken us awhile to get forms right” was interesting. I didn't pick up on the
Infopath connection like Mark did which is an interesting take. A good forms package
with thin and rich client delivery would be a good thing. The other interesting thing
that stood out to me was that <a href="http://blogs.tamtam.nl/mart/PermaLink,guid,7355c0f7-82c2-4ebb-abfd-2d968abb9e7a.aspx">Bill
likes SharePoint</a> as noted by <a href="http://blogs.tamtam.nl/mart/default.aspx">Mark
Muller</a>: 
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
He also mentioned that he was a big fan of Sharepoint 2003 and the solutions
build around it. According to him, Sharepoint provides a foundation for Office
applications and system integration. Good to hear this from him ;). Seems like Sharepoint
developers won't have to fear to get bored.
</p>
        </blockquote>
        <p dir="ltr">
For some reason I have this idea in my head that something was said about WinFS and
SharePoint merging, but I don't remember if I heard it directly in the keynote or
if I just munged some ideas together from all the blogs I read. Anyhow, the keynote
is worth watching (hopefully they will post it up in the webcast archive).
</p>
        <p dir="ltr">
 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2760" />
      </body>
      <title>Bill Gates on SharePoint and Infopath</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2760.aspx</guid>
      <link>http://bryantlikes.com/BillGatesOnSharePointAndInfopath.aspx</link>
      <pubDate>Wed, 09 Feb 2005 14:56:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://weblogs.asp.net/bowerm/"&gt;Mark Bower&lt;/a&gt; &lt;a href="http://weblogs.asp.net/bowerm/archive/2005/02/09/370066.aspx"&gt;notes&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
Gates went on to add more detail: InfoPath &amp;#8216;with rich controls, on top of the
Avalon runtime&amp;#8217;, but also with the ability to &amp;#8216;project onto classic HTML&amp;#8217;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So
InfoPath is likely to evolve into a Forms package that can target thin-client HTML
delivery and rich client Avalon delivery.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Look
forward to it.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
I watched the keynote as well and I thought Bill's response on this &amp;#8220;it has
taken us awhile to get forms right&amp;#8221; was interesting. I didn't pick up on the
Infopath connection like Mark did which is an interesting take. A good forms package
with thin and rich client delivery would be a good thing. The other interesting thing
that stood out to me was that &lt;a href="http://blogs.tamtam.nl/mart/PermaLink,guid,7355c0f7-82c2-4ebb-abfd-2d968abb9e7a.aspx"&gt;Bill
likes SharePoint&lt;/a&gt; as noted by &lt;a href="http://blogs.tamtam.nl/mart/default.aspx"&gt;Mark
Muller&lt;/a&gt;: 
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
He also mentioned that he was a big fan of Sharepoint&amp;nbsp;2003 and&amp;nbsp;the solutions
build around it. According to him, Sharepoint provides a&amp;nbsp;foundation for&amp;nbsp;Office
applications and system integration. Good to hear this from him ;). Seems like Sharepoint
developers won't have to fear to get bored.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
For some reason I have this idea in my head that something was said about WinFS and
SharePoint merging, but I don't remember if I heard it directly in the keynote or
if I just munged some ideas together from all the blogs I read. Anyhow, the keynote
is worth watching (hopefully they will post it up in the webcast archive).
&lt;/p&gt;
&lt;p dir=ltr&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2760" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2760.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2734</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2734.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2734.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2734</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://weblogs.asp.net/mnissen/">Mads</a> created a <a href="http://weblogs.asp.net/mnissen/archive/2005/02/07/368331.aspx">GotDotNet
workspace</a> for tracking issues with SharePoint and non-IE browsers. I installed
Firefox some time ago but but it aside since I didn't appear to do NTLM authentication
which is needed for SharePoint access. One of the first posts in the form there is <a href="http://www.gotdotnet.com/workspaces/messageboard/thread.aspx?id=170faa18-efc9-44c7-954b-6c467c795241&amp;threadid=278c70f1-93b3-4b57-8c27-e266900883a4">TIP:
Use current Windows credentials in Firefox</a> (warning: we are talking about
GotDotNet so the link to the post may be unusable about 50% of the time while the
GotDotNet crew does some “maintenance“). The tip explains how to enable
NTLM in Firefox. However, it didn't work for me and after some googling I found <a href="http://www.testingreflections.com/node/view/1365?PHPSESSID=41d01b2a98dbd60990d448537f32716f">this
post</a> which adds another setting to the mix but didn't solve the problem for me
either. Turns out I had to add the server names to the bypass proxy list for it to
work.
</p>
        <p>
SharePoint seems to work except for ActiveX controls, which I see Mads already <a href="http://www.gotdotnet.com/workspaces/messageboard/thread.aspx?id=170faa18-efc9-44c7-954b-6c467c795241&amp;threadid=57d8c237-0a24-4d25-b25c-31ed253a2784">posted</a> about.
The most interesting thing to me though was checking out Reporting Services from Firefox
which is pretty much unusable. Very ugly. I will have to look into seeing if I can
make them work using the RsWebParts (which I'm still working on version 1.2 (parameters
are a pain)).
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2734" />
      </body>
      <title>SharePoint, Reporting Services, and Firefox</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2734.aspx</guid>
      <link>http://bryantlikes.com/SharePointReportingServicesAndFirefox.aspx</link>
      <pubDate>Mon, 07 Feb 2005 12:46:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://weblogs.asp.net/mnissen/"&gt;Mads&lt;/a&gt; created a &lt;a href="http://weblogs.asp.net/mnissen/archive/2005/02/07/368331.aspx"&gt;GotDotNet
workspace&lt;/a&gt; for tracking issues with SharePoint and non-IE browsers. I installed
Firefox some time ago but but it aside since I didn't appear to do NTLM authentication
which is needed for SharePoint access. One of the first posts in the form there is &lt;a href="http://www.gotdotnet.com/workspaces/messageboard/thread.aspx?id=170faa18-efc9-44c7-954b-6c467c795241&amp;amp;threadid=278c70f1-93b3-4b57-8c27-e266900883a4"&gt;TIP:
Use current Windows credentials in Firefox&lt;/a&gt;&amp;nbsp;(warning: we are talking about
GotDotNet so the link to the post may be unusable about 50% of the time while the
GotDotNet crew does some &amp;#8220;maintenance&amp;#8220;). The tip explains how to enable
NTLM in Firefox. However, it didn't work for me and after some googling I found &lt;a href="http://www.testingreflections.com/node/view/1365?PHPSESSID=41d01b2a98dbd60990d448537f32716f"&gt;this
post&lt;/a&gt; which adds another setting to the mix but didn't solve the problem for me
either. Turns out I had to add the server names to the bypass proxy list for it to
work.
&lt;/p&gt;
&lt;p&gt;
SharePoint seems to work except for ActiveX controls, which I see Mads already &lt;a href="http://www.gotdotnet.com/workspaces/messageboard/thread.aspx?id=170faa18-efc9-44c7-954b-6c467c795241&amp;amp;threadid=57d8c237-0a24-4d25-b25c-31ed253a2784"&gt;posted&lt;/a&gt; about.
The most interesting thing to me though was checking out Reporting Services from Firefox
which is pretty much unusable. Very ugly. I will have to look into seeing if I can
make them work&amp;nbsp;using the RsWebParts (which I'm still working on version 1.2 (parameters
are a pain)).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2734" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2734.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2717</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2717.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2717.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2717</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Note to self:
</p>
        <p>
The Page.RegisterStartupScript just outputs the text you pass to the method and doesn't
add script tags. If you don't add script tags your text will be output at the bottom
of every page (which is embarrassing). Why can't I remember this....
</p>
        <p>
P.S. - In case you were wondering, I just discovered this is a bug in the RsWebParts
version 1.1 which will be fixed in 1.2.
</p>
        <p>
P.S.S. - I hear this is “fixed” in ASP.Net 2.0...
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2717" />
      </body>
      <title>Page.RegisterStartupScript</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2717.aspx</guid>
      <link>http://bryantlikes.com/PageRegisterStartupScript.aspx</link>
      <pubDate>Thu, 03 Feb 2005 11:46:00 GMT</pubDate>
      <description>&lt;p&gt;
Note to self:
&lt;/p&gt;
&lt;p&gt;
The Page.RegisterStartupScript just outputs the text you pass to the method and doesn't
add script tags. If you don't add script tags your text will be output at the bottom
of every page (which is embarrassing). Why can't I remember this....
&lt;/p&gt;
&lt;p&gt;
P.S. - In case you were wondering, I just discovered this is a bug in the RsWebParts
version 1.1 which will be fixed in 1.2.
&lt;/p&gt;
&lt;p&gt;
P.S.S. - I hear this is &amp;#8220;fixed&amp;#8221; in ASP.Net 2.0...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2717" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2717.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
      <category>ASP.Net/Web Services</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2708</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2708.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2708.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2708</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From <a href="http://www.barracuda.net/barrysblog.aspx?Date=10/22/2004">Barry's Blog</a> via <a href="http://weblogs.asp.net/soever/archive/2005/01/29/362860.aspx">Serge
van den Oever</a> on RenderWebPart:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
When things go the way you expect, you want to render an entire batch of HTML. However,
you don't want to render any of that HTML in the case of an exception when the logic
in your Web Part determines that it should display an error message instead. Things
can really get ugly if you render the opening tags for an HTML table and do not properly
close them due to an exception. This can upset the high-level rendering logic of the
page as well as other Web Parts.
</p>
          <p>
The solution to this problem is to use some technique that allows you to write HTML
into a buffer and then send it all in a single batch once you know that all the rendering
logic has executed successfully. You can create a string buffer using an instance
of the <b>System.Text.StringBuffer</b> class. You can then create an instance of the <b>HtmlTextWriter</b> class
and use that to render HTML into the buffer.
</p>
        </blockquote>
        <p dir="ltr">
Barry then gives some code that will allow you to buffer your HTML output which lets
you manage your exceptions gracefully. I liked the idea so much that I've already
added it to the latest version of the RsWebParts (version 1.2 which I'm still trying
to tidy up for release on sf.net). Since the RsWebParts all inherit from the RsBasePart
I simply did this:
</p>
        <style type="text/css">
.csharpcode
{
 font-size: 10pt;
 color: black;
 font-family: Courier New , Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0px; }
.rem { color: #008000; }
.kwrd { color: #0000ff; }
.str { color: #006080; }
.op { color: #0000c0; }
.preproc { color: #cc6633; }
.asp { background-color: #ffff00; }
.html { color: #800000; }
.attr { color: #ff0000; }
.alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0px;
}
.lnum { color: #606060; }
</style>
        <pre class="csharpcode">
          <span class="rem">/// 
<SUMMARY></SUMMARY></span>
          <span class="rem">/// Renders the HTML contents of the webpart. </span>
          <span class="rem">///
The base webparts calls this and buffers the output in order to </span>
          <span class="rem">///
prevent the webpart causing the SharePoint page to fail. This code</span>
          <span class="rem">///
was take from Barry's Blog (http://www.barracuda.net/barrysblog.aspx?Date=10/22/2004)</span>
          <span class="rem">/// 
</span>
          <span class="rem">/// 
<param name="output" />
HtmlTextWriter to writer content with.</span>
          <span class="kwrd">protected</span>
          <span class="kwrd">override</span>
          <span class="kwrd">void</span> RenderWebPart(HtmlTextWriter
output) { <span class="rem">// create buffer for output </span> StringBuilder buffer
= <span class="kwrd">new</span> StringBuilder(10240); StringWriter InnerWriter = <span class="kwrd">new</span> StringWriter(buffer);
HtmlTextWriter BufferWriter = <span class="kwrd">new</span> HtmlTextWriter(InnerWriter); <span class="kwrd">try</span> { <span class="rem">//
call method to write HTML to buffer</span> WriteWebPartContent(BufferWriter); <span class="rem">//
write HTML btach back to browser</span> output.Write(buffer); } <span class="kwrd">catch</span>(Exception
ex) { output.Write(<span class="str">"<font color="red">Web Part Error</font>: "</span> +
ex.Message); } } <span class="rem">/// 
<SUMMARY></SUMMARY></span><span class="rem">/// The webpart must call this method to render
its content instead of</span><span class="rem">/// overriding RenderWebPart.</span><span class="rem">/// 
</span><span class="rem">/// 
<param name="output" />
HtmlTextWriter to writer content with.</span><span class="kwrd">protected</span><span class="kwrd">abstract</span><span class="kwrd">void</span> WriteWebPartContent(HtmlTextWriter
output);</pre>
        <br />
        <p dir="ltr">
Next I just renamed the RenderWebPart methods of each web part to WriteWebPartContent
and now I have buffered output! Very cool.
</p>
        <p dir="ltr">
Barry has some other great articles on his <a href="http://www.barracuda.net/barrysblog.aspx">blog</a> and
his company offers <a href="http://www.barracuda.net/training.aspx">SharePoint training</a>.
My boss and one of my coworkers took the class and both learned quite a bit (I didn't
take the class because I'm not really the SharePoint admin, just a web part developer).
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2708" />
      </body>
      <title>Rendering Regret</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2708.aspx</guid>
      <link>http://bryantlikes.com/RenderingRegret.aspx</link>
      <pubDate>Tue, 01 Feb 2005 10:42:00 GMT</pubDate>
      <description>&lt;p&gt;
From &lt;a href="http://www.barracuda.net/barrysblog.aspx?Date=10/22/2004"&gt;Barry's Blog&lt;/a&gt; via &lt;a href="http://weblogs.asp.net/soever/archive/2005/01/29/362860.aspx"&gt;Serge
van den Oever&lt;/a&gt;&amp;nbsp;on RenderWebPart:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
When things go the way you expect, you want to render an entire batch of HTML. However,
you don't want to render any of that HTML in the case of an exception when the logic
in your Web Part determines that it should display an error message instead. Things
can really get ugly if you render the opening tags for an HTML table and do not properly
close them due to an exception. This can upset the high-level rendering logic of the
page as well as other Web Parts.
&lt;/p&gt;
&lt;p&gt;
The solution to this problem is to use some technique that allows you to write HTML
into a buffer and then send it all in a single batch once you know that all the rendering
logic has executed successfully. You can create a string buffer using an instance
of the &lt;b&gt;System.Text.StringBuffer&lt;/b&gt; class. You can then create an instance of the &lt;b&gt;HtmlTextWriter&lt;/b&gt; class
and use that to render HTML into the buffer.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
Barry then gives some code that will allow you to buffer your HTML output which lets
you manage your exceptions gracefully. I liked the idea so much that I've already
added it to the latest version of the RsWebParts (version 1.2 which I'm still trying
to tidy up for release on sf.net). Since the RsWebParts all inherit from the RsBasePart
I simply did this:
&lt;/p&gt;
&lt;style type=text/css&gt;
.csharpcode
{
 font-size: 10pt;
 color: black;
 font-family: Courier New , Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0px; }
.rem { color: #008000; }
.kwrd { color: #0000ff; }
.str { color: #006080; }
.op { color: #0000c0; }
.preproc { color: #cc6633; }
.asp { background-color: #ffff00; }
.html { color: #800000; }
.attr { color: #ff0000; }
.alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0px;
}
.lnum { color: #606060; }
&lt;/style&gt;
&lt;pre class=csharpcode&gt;        &lt;span class=rem&gt;/// 
&lt;SUMMARY&gt;
&lt;/span&gt; &lt;span class=rem&gt;/// Renders the HTML contents of the webpart. &lt;/span&gt; &lt;span class=rem&gt;///
The base webparts calls this and buffers the output in order to &lt;/span&gt; &lt;span class=rem&gt;///
prevent the webpart causing the SharePoint page to fail. This code&lt;/span&gt; &lt;span class=rem&gt;///
was take from Barry's Blog (http://www.barracuda.net/barrysblog.aspx?Date=10/22/2004)&lt;/span&gt; &lt;span class=rem&gt;/// &gt;
&lt;/span&gt; &lt;span class=rem&gt;/// 
&lt;param name="output"&gt;
HtmlTextWriter to writer content with.&gt;&lt;/span&gt; &lt;span class=kwrd&gt;protected&lt;/span&gt; &lt;span class=kwrd&gt;override&lt;/span&gt; &lt;span class=kwrd&gt;void&lt;/span&gt; RenderWebPart(HtmlTextWriter
output) { &lt;span class=rem&gt;// create buffer for output &lt;/span&gt; StringBuilder buffer
= &lt;span class=kwrd&gt;new&lt;/span&gt; StringBuilder(10240); StringWriter InnerWriter = &lt;span class=kwrd&gt;new&lt;/span&gt; StringWriter(buffer);
HtmlTextWriter BufferWriter = &lt;span class=kwrd&gt;new&lt;/span&gt; HtmlTextWriter(InnerWriter); &lt;span class=kwrd&gt;try&lt;/span&gt; { &lt;span class=rem&gt;//
call method to write HTML to buffer&lt;/span&gt; WriteWebPartContent(BufferWriter); &lt;span class=rem&gt;//
write HTML btach back to browser&lt;/span&gt; output.Write(buffer); } &lt;span class=kwrd&gt;catch&lt;/span&gt;(Exception
ex) { output.Write(&lt;span class=str&gt;"&lt;font color=red&gt;Web Part Error&lt;/font&gt;: "&lt;/span&gt; +
ex.Message); } } &lt;span class=rem&gt;/// 
&lt;SUMMARY&gt;
&lt;/span&gt; &lt;span class=rem&gt;/// The webpart must call this method to render its content
instead of&lt;/span&gt; &lt;span class=rem&gt;/// overriding RenderWebPart.&lt;/span&gt; &lt;span class=rem&gt;/// &gt;
&lt;/span&gt; &lt;span class=rem&gt;/// 
&lt;param name="output"&gt;
HtmlTextWriter to writer content with.&gt;&lt;/span&gt; &lt;span class=kwrd&gt;protected&lt;/span&gt; &lt;span class=kwrd&gt;abstract&lt;/span&gt; &lt;span class=kwrd&gt;void&lt;/span&gt; WriteWebPartContent(HtmlTextWriter
output);&lt;/pre&gt;
&lt;br&gt;
&lt;p dir=ltr&gt;
Next I just renamed the RenderWebPart methods of each web part to WriteWebPartContent
and now I have buffered output! Very cool.
&lt;/p&gt;
&lt;p dir=ltr&gt;
Barry has some other great articles on his &lt;a href="http://www.barracuda.net/barrysblog.aspx"&gt;blog&lt;/a&gt; and
his company offers &lt;a href="http://www.barracuda.net/training.aspx"&gt;SharePoint training&lt;/a&gt;.
My boss and one of my coworkers took the class and both learned quite a bit (I didn't
take the class because I'm not really the SharePoint admin, just&amp;nbsp;a web part developer).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2708" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2708.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2688</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2688.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2688.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2688</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ok, I've created a new project site at SourceForge.net which you can find <a href="http://sourceforge.net/projects/rswebparts">here</a>.
Everytime I try to figure out the CVS stuff I end up feeling dumb because I can't
figure it out. So hopefully I'll “get it” this weekend so that I can put
some files up there. For now the project site is just an empty shell. 
</p>
        <p>
In the meantime I would really like to figure out this <a href="http://blogs.sqlxml.org/bryantlikes/archive/2005/01/24/2638.aspx#2687">reported
bug</a> about a security issue with the web parts. I'm not really sure if I understand
what the problem is but I don't think it is really an issue with the web parts but
rather a configuration issue. 
</p>
        <p>
The reason I think it is a configuration issue is because the main web part (the
report viewer) is basically just an iframe that loads a report services report. The
machine that I test my web parts on  is a different machine than the
reporting services server so that shouldn't be an issue. I'm just wondering if the
problem is that the user viewing the web parts doesn't have access to the reporting
server. But I don't really know so let's talk more about this problem either here
in the comments or in the <a href="http://sourceforge.net/forum/forum.php?forum_id=440205">forms</a>. 
</p>
        <p>
While we're at it, please post any other bugs you've run into at the project site.
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2688" />
      </body>
      <title>RsWebParts Update</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2688.aspx</guid>
      <link>http://bryantlikes.com/RsWebPartsUpdate.aspx</link>
      <pubDate>Fri, 28 Jan 2005 15:42:00 GMT</pubDate>
      <description>&lt;p&gt;
Ok, I've created a new project site at SourceForge.net which you can find &lt;a href="http://sourceforge.net/projects/rswebparts"&gt;here&lt;/a&gt;.
Everytime I try to figure out the CVS stuff I end up feeling dumb because I can't
figure it out. So hopefully I'll &amp;#8220;get it&amp;#8221; this weekend so that I can put
some files up there. For now the project site is just an empty shell. 
&lt;/p&gt;
&lt;p&gt;
In the meantime I would really like to figure out this &lt;a href="http://blogs.sqlxml.org/bryantlikes/archive/2005/01/24/2638.aspx#2687"&gt;reported
bug&lt;/a&gt;&amp;nbsp;about a security issue with the web parts. I'm not really sure if I&amp;nbsp;understand
what the problem is but I don't think it is really an issue with the web parts but
rather a configuration issue. 
&lt;/p&gt;
&lt;p&gt;
The reason I think it is a configuration issue is because&amp;nbsp;the main web part (the
report viewer) is basically just an iframe that loads a report services report.&amp;nbsp;The
machine that I&amp;nbsp;test&amp;nbsp;my web parts on &amp;nbsp;is a different machine than the
reporting services server so that shouldn't be an issue. I'm just wondering if the
problem is that the user viewing the web parts doesn't have access to the reporting
server. But I don't really know so let's talk more about this problem either here
in the comments or in the &lt;a href="http://sourceforge.net/forum/forum.php?forum_id=440205"&gt;forms&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
While we're at it, please post any other bugs you've run into at the project site.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2688" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2688.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2638</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2638.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2638.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2638</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I haven't done much with the RsWebParts for since I released the last beta version
(sorry if you've sent me email or posted questions in the comments, I've been too
busy), but it looks like they are getting <a href="http://weblogs.asp.net/jan/archive/2005/01/21/358073.aspx">some</a><a href="http://blog.u2u.info/DottextWeb/patrick/archive/2005/01/22/894.aspx">more</a><a href="http://weblogs.asp.net/soever/archive/2005/01/24/359135.aspx">attention</a> with
the <a href="http://sqljunkies.com/WebLog/sqlbi/archive/2004/11/09/5018.aspx">release
of Reporting Services SP2 beta</a>. 
</p>
        <p>
One thing that seems to have gone unnoticed is that the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=3d11925e-1ed6-43b0-bb94-fe69170ccf82&amp;displaylang=en">new
version of BI Portal has been released</a> [via <a href="http://duncanlamb.blogspot.com/2005/01/business-intelligence-portal-sample.html">Duncan</a> and <a href="http://blog.u2u.info/DottextWeb/patrick/archive/2005/01/23/911.aspx">Patrick</a>].
What does BIP have to do with Reporting Services WebParts? Well the BIP viewer can
view Reporting Services Reports (and the BIP Viewer is a WebPart). It also has a Report
Browser. In fact, the BIP viewer was the inspiration for the RsWebParts and you will
even see that I borrowed some of my client side scripting from the BIP viewer. 
</p>
        <p>
So now there are 4 Reporting Services WebPart Packages (that I know of) so it will
be intereting to see what happens next. I would expect the MS WebParts to come out
on top unless they don't provide the functionality that people need. I would really
like to continue working on the RsWebParts or at least get it out as an open source
community project (especially since GotDotNet is so pathetic, right now the workspaces
are down and there is no message explaining why or when things will be back). 
</p>
        <p>
What would you suggest? Should I create some kind of open source project for the SharePoint/Reporting
Services community to extend? If so, how should I go about this? 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2638" />
      </body>
      <title>Reporting Services WebParts Space Heats Up</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2638.aspx</guid>
      <link>http://bryantlikes.com/ReportingServicesWebPartsSpaceHeatsUp.aspx</link>
      <pubDate>Mon, 24 Jan 2005 10:17:00 GMT</pubDate>
      <description>&lt;p&gt;
I haven't done much with the RsWebParts for since I released the last beta version
(sorry if you've sent me email or posted questions in the comments, I've been too
busy), but it looks like they are getting &lt;a href="http://weblogs.asp.net/jan/archive/2005/01/21/358073.aspx"&gt;some&lt;/a&gt; &lt;a href="http://blog.u2u.info/DottextWeb/patrick/archive/2005/01/22/894.aspx"&gt;more&lt;/a&gt; &lt;a href="http://weblogs.asp.net/soever/archive/2005/01/24/359135.aspx"&gt;attention&lt;/a&gt; with
the &lt;a href="http://sqljunkies.com/WebLog/sqlbi/archive/2004/11/09/5018.aspx"&gt;release
of Reporting Services SP2 beta&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
One thing that seems to have gone unnoticed is that the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=3d11925e-1ed6-43b0-bb94-fe69170ccf82&amp;amp;displaylang=en"&gt;new
version of BI Portal has been released&lt;/a&gt;&amp;nbsp;[via &lt;a href="http://duncanlamb.blogspot.com/2005/01/business-intelligence-portal-sample.html"&gt;Duncan&lt;/a&gt;&amp;nbsp;and &lt;a href="http://blog.u2u.info/DottextWeb/patrick/archive/2005/01/23/911.aspx"&gt;Patrick&lt;/a&gt;].
What does BIP have to do with Reporting Services WebParts? Well the BIP viewer can
view Reporting Services Reports (and the BIP Viewer is a WebPart). It also has a Report
Browser. In fact, the BIP viewer was the inspiration for the RsWebParts and you will
even see that I borrowed some of my client side scripting from the BIP viewer. 
&lt;/p&gt;
&lt;p&gt;
So now there are 4 Reporting Services WebPart Packages (that I know of) so it will
be intereting to see what happens next. I would expect the MS WebParts to come out
on top unless they don't provide the functionality that people need. I would really
like to continue working on the RsWebParts or at least get it out as an open source
community project (especially since GotDotNet is so pathetic, right now the workspaces
are down and there is no message explaining why or when things will be back). 
&lt;/p&gt;
&lt;p&gt;
What would you suggest? Should I create some kind of open source project for the SharePoint/Reporting
Services community to extend? If so, how should I go about this? 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2638" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2638.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2242</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2242.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2242.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2242</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of my recent projects was to develop a new menu system for our SharePoint portal to
replace our old menu system (which was a custom menu as well). I decided to create
an ASP.Net server control to do this. I created my control, signed it, deployed it
to the GAC, added it to the safe control list, and then our web master put it
into production after we did some basic testing. So far, so good.
</p>
        <p>
However, today our web guy hit a snag when he put the menu on the SharePoint
administrator pages (located in the  layouts/1033 folder). When the menu was
put into these pages the menu would display but the scripting didn't work. I looked
into the problem and quickly realized that my client side script was not being rendered
into the page, basically my RegisterClientScriptBlock calls were being ignored (or
so it seemed). 
</p>
        <p>
After some doing some googling and running some tests I finally realized that the
SharePoint admin pages have no form tags (mark this down as <a href="http://blogs.sqlxml.org/bryantlikes/archive/2005/01/05/2215.aspx">YASPQ</a>).
So the problem I was running into was that since there were no form tags, the client
side script blocks were not rendered as decribed <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebUIPageClassVerifyRenderingInServerFormTopic.asp">here</a>:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
Server controls that post back or use client-side script will not work if they are
not enclosed in the <b>HtmlForm</b> server control ( 
</p>
          <form runat="server">
). These controls can call this method when they render to provide a clear error message
when they are not enclosed in the <b>HtmlForm</b> control.
</form>
        </blockquote>
        <p dir="ltr">
The method referred to here is Page.VerifyRenderingInServerForm. I could call this
method in the Render method of my menu control, but this just throws an HttpException
(which in this case is clearly not beneficial). Instead of allowing the exception
to bubble up I simply trapped for the exception and if it was thrown I added an HtmlForm
control to my menu's controls collection and then rendered it after my menu was built.
</p>
        <p dir="ltr">
This allowed the client script to be rendered even if the form tag was missing. So
if you're developing a control and run into this problem this is a quick work-a-round.
If your control has other controls that need to be posted back you could add them
as child controls to the HtmlForm control and it should work as expected. 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2242" />
      </body>
      <title>ASPX Pages Without a Form</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2242.aspx</guid>
      <link>http://bryantlikes.com/ASPXPagesWithoutAForm.aspx</link>
      <pubDate>Thu, 06 Jan 2005 17:34:00 GMT</pubDate>
      <description>&lt;p&gt;
One of my recent projects was to develop a new menu system for our SharePoint portal&amp;nbsp;to
replace our old menu system (which was a custom menu as well). I decided to&amp;nbsp;create
an ASP.Net server control to do this. I created my control, signed it, deployed it
to the GAC, added it to the safe control list, and then&amp;nbsp;our web master put it
into production after we did some basic testing. So far, so good.
&lt;/p&gt;
&lt;p&gt;
However, today our web guy hit a snag when he&amp;nbsp;put the menu on the SharePoint
administrator pages (located in the &amp;nbsp;layouts/1033 folder). When the menu was
put into these pages the menu would display but the scripting didn't work. I looked
into the problem and quickly realized that my client side script was not being rendered
into the page, basically my RegisterClientScriptBlock calls were being ignored (or
so it seemed). 
&lt;/p&gt;
&lt;p&gt;
After some doing some googling and running some tests I finally realized that the
SharePoint admin pages have no form tags (mark this down as &lt;a href="http://blogs.sqlxml.org/bryantlikes/archive/2005/01/05/2215.aspx"&gt;YASPQ&lt;/a&gt;).
So the problem I was running into was that since there were no form tags, the client
side script blocks were not rendered as decribed &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebUIPageClassVerifyRenderingInServerFormTopic.asp"&gt;here&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
Server controls that post back or use client-side script will not work if they are
not enclosed in the &lt;b&gt;HtmlForm&lt;/b&gt; server control ( 
&lt;form runat="server"&gt;
). These controls can call this method when they render to provide a clear error message
when they are not enclosed in the &lt;b&gt;HtmlForm&lt;/b&gt; control.&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
The method referred to here is Page.VerifyRenderingInServerForm. I could call this
method in the Render method of my menu control, but this just throws an HttpException
(which in this case is clearly not beneficial). Instead of allowing the exception
to bubble up I simply trapped for the exception and if it was thrown I added an HtmlForm
control to my menu's controls collection and then rendered it after my menu was built.
&lt;/p&gt;
&lt;p dir=ltr&gt;
This allowed the client script to be rendered even if the form tag was missing. So
if you're developing a control and run into this problem this is a quick work-a-round.
If your control has other controls that need to be posted back you could add them
as child controls to the HtmlForm control and it should work as expected. 
&lt;/p&gt;
&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2242" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2242.aspx</comments>
      <category>SharePoint</category>
      <category>ASP.Net/Web Services</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=2215</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,2215.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,2215.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2215</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Scott <a href="http://www.hanselman.com/blog/PermaLink.aspx?guid=1c79ccea-5dd1-4301-b22f-d90352716aa5">posted
a cool trick</a> to map a WebDAV or FontPage website to a drive letter. Since I do
a lot of SharePoint work I immediately started thinking of all the cool things I could
do with this once I had a folder mapping to my SharePoint portal site (like start
using VisualStudio to edit pages, easy backup, etc.). However, I was disappointed
that it didn't seem to work with SharePoint. YASPQ!*
</p>
        <p>
* Yet Another SharePoint Quirk
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2215" />
      </body>
      <title>YASPQ</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,2215.aspx</guid>
      <link>http://bryantlikes.com/YASPQ.aspx</link>
      <pubDate>Wed, 05 Jan 2005 15:03:00 GMT</pubDate>
      <description>&lt;p&gt;
Scott &lt;a href="http://www.hanselman.com/blog/PermaLink.aspx?guid=1c79ccea-5dd1-4301-b22f-d90352716aa5"&gt;posted
a cool trick&lt;/a&gt; to map a WebDAV or FontPage website to a drive letter. Since I do
a lot of SharePoint work I immediately started thinking of all the cool things I could
do with this once I had a folder mapping to my SharePoint portal site (like start
using VisualStudio to edit pages, easy backup, etc.). However, I was disappointed
that it didn't seem to work with SharePoint. YASPQ!*
&lt;/p&gt;
&lt;p&gt;
* Yet Another SharePoint Quirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=2215" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,2215.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=1817</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,1817.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,1817.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1817</wfw:commentRss>
      <slash:comments>10</slash:comments>
      <title>Test Driven SmartPart Development</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,1817.aspx</guid>
      <link>http://bryantlikes.com/TestDrivenSmartPartDevelopment.aspx</link>
      <pubDate>Wed, 08 Dec 2004 11:02:00 GMT</pubDate>
      <description>&lt;p&gt;
A couple of weeks ago &lt;a href="http://weblogs.asp.net/jan/"&gt;Jan Tielens&lt;/a&gt; released
the &lt;a href="http://weblogs.asp.net/jan/archive/2004/11/23/268644.aspx"&gt;SmartPart
version 1.0.0.0&lt;/a&gt;. The SmartPart is a very cool WebPart that will host ASP.Net user
controls in a SharePoint environment. This means you can use Visual Studio to edit
the user controls and use the WYSIWYG editor instead of building the HTML via code.
Additionally, &lt;a href="http://ipattern.com/simpleblog/"&gt;Maxim Karpov&lt;/a&gt; helped out
with the &lt;a href="http://ipattern.com/simpleblog/PermLink.aspx?entryId=68"&gt;CAS aspect
of the SmartPart&lt;/a&gt; which can be a confusing topic if you're not Maxim. Maxim does
a great job of explaining the CAS issues and even though I've worked with CAS for
things like custom code in reporting services, I still feel it is something foriegn
(I think CAS knowledge seeps out of the brain). 
&lt;/p&gt;
&lt;p&gt;
So the SmartPart allows you do quickly create SharePoint WebParts and you can even &lt;a href="http://weblogs.asp.net/jan/archive/2004/12/06/275873.aspx"&gt;debug
those WebParts&lt;/a&gt; in a normal ASP.Net application, but what about using Test Driven
Development (TDD)?
&lt;/p&gt;
&lt;p&gt;
Well &lt;a href="http://www.hanselman.com/blog/default.aspx"&gt;Scott Hanselman&lt;/a&gt; gave
me an &lt;a href="http://www.hanselman.com/blog/PermaLink.aspx?guid=944a5284-6b8d-4366-81e8-2e241401e1b3"&gt;idea&lt;/a&gt; that
I thought would be worth trying out. Scott detailed how to use TDD for normal ASP.Net
development using Cassini, an idea I found to be very cool. So could I use the same
technique to use TDD for SmartParts? The answer is you can.
&lt;/p&gt;
&lt;p&gt;
First I created a SmartPart project to build my sample SmartPart. To do this I used
a regular class library project since this will give me everything I need without
having to use a web server. You will need to add references to System.Web, Microsoft.SharePoint,
and SmartPart. For my simple SmartPart I created one ASCX file and one CS file. In
my user control I added a Label and in the Page_Load event handler I set the Text
property to &amp;#8220;This is a simple smart part.&amp;#8221;. 
&lt;/p&gt;
&lt;p&gt;
The next step is to create your testing project. Again I created a class library project
and this time added references to the &lt;a href="http://asp.net/Projects/Cassini/Download/download.aspx?tabindex=0&amp;tabid=1"&gt;Cassini&lt;/a&gt; (using
the cassini.dll) and NUnit.Framework (I'm using &lt;a href="http://www.nunit.org"&gt;NUnit
2.2&lt;/a&gt;). I had to make some modifications to Scott's code in order to make things
work since my approach is slightly different. He is testing ASPX pages while I'm testing
a user control that needs to be loaded in an ASPX page. 
&lt;/p&gt;
&lt;p&gt;
The first test was just to start the cassini server and open an ASPX page that had
no control to make sure everything worked. That was fairly easy thanks to Scott. The
next step was a little more involved since I had to copy the user control and the
dll from my other project and reference the ASCX in the ASPX page. However, after
some trial and error I got that working as well. The real fun came when I went to
set the SPWeb property of my SmartPart as shown by Jan in his debugging post. 
&lt;/p&gt;
&lt;p&gt;
The SPGlobalAdmin class requires the Microsoft.SharePointLibrary.dll in order to function
(which exists only in the GAC) [&lt;strong&gt;Update:&lt;/strong&gt; I made a change here since
I made a mistake in the original post. The SPGlobalAdmin is in the Microsoft.SharePoint.Administration &lt;strong&gt;namespace&lt;/strong&gt;,
not library.]. I remembered seeing a post about how to extract this from the GAC so
after a little googling I came across &lt;a href="http://www.sharepointu.com/forums/HELP!_I_need_Microsoft%25Sharepoint%25dll_!!!/m_8713/tm.htm"&gt;this
example&lt;/a&gt; which allowed me to extract the dll and add it to the bin folder of my
cassini project. Once I had this dll accessible to cassini things started to work
except for a security exception: Failure decoding embedded permission set object.
Hmmm.
&lt;/p&gt;
&lt;p&gt;
This one kept me baffled for quite some time until I got the bright idea this morning
(after reading some of Maxim's CAS articles again) to take a look at the constructor
for the SPGlobalAdmin class using &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Reflector&lt;/a&gt;.
Using Reflector I noticed that the contructor demanded the permission &lt;font color=#800000&gt;Microsoft.SharePoint.Security.SharePointPermission.&lt;/font&gt; Ahhh.
So back to the GAC again to get Microsoft.SharePoint.Security.dll. 
&lt;/p&gt;
&lt;p&gt;
Once I had that everything worked. All my tests passed and I'm able to start developing
my SmartParts using TDD. Now I'm off to see if I can figure out how to test creating
and using connections. If people are interested I can write a short article with the
code I used to do this.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update: &lt;/strong&gt;I ended up running into issues when setting the SPWeb property.
I was able to get the SPGlobalAdmin but nothing past that. But at this point I'm not
sure how much that matters. I did get some very simple connections working just by
using Part1.SetConsumerData(Part2.GetProviderData()). 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1817" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,1817.aspx</comments>
      <category>SharePoint</category>
      <category>ASP.Net/Web Services</category>
      <category>Test-Driven Dev</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=1795</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,1795.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,1795.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1795</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
That is all I can say, <a href="http://www.sqlserveranalysisservices.com/cellsetgrid/CellSetGridIntro.htm">wow</a>. 
</p>
        <p>
This is the coolest thing I've seen in a long time. A zero footprint cube browser
that is built using <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=790d631b-bff9-4f4a-b648-e9209e6ac8ad&amp;DisplayLang=en">Adomd.net</a> and
ASP.net. <a href="http://blogs.sqlxml.org/bryantlikes/archive/2004/03/01/415.aspx">I've
been looking for this for a long time</a>. But not only is it everything I've wanted,
it is free and you can download the source. 
</p>
        <p>
My next project will be to convert this into a web part for SharePoint and add save
state. Then life will be good and I will drop the Office Web Components (and all the
problems we've had with them). 
</p>
        <p>
Thanks to <a href="http://sqljunkies.com/WebLog/mosha/">Mosha Pasumansky</a> for <a href="http://sqljunkies.com/WebLog/mosha/archive/2004/11/01/4908.aspx">linking
to this</a> and to <a href="http://duncanlamb.blogspot.com/">Duncan Lamb</a> for <a href="http://duncanlamb.blogspot.com/2004/11/how-analysis-services-works.html">linking
to Mosha</a>. (In case you don't do much with Analysis Services, Mosha is the
development lead on the AS engine team and is the MDX/OLAP/AS guru (see
his <a href="http://www.mosha.com/msolap/">website</a> and books)). I'm now subscribed
to Mosha's blog and already learning quite a bit...
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1795" />
      </body>
      <title>Wow...</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,1795.aspx</guid>
      <link>http://bryantlikes.com/Wow.aspx</link>
      <pubDate>Tue, 30 Nov 2004 10:14:00 GMT</pubDate>
      <description>&lt;p&gt;
That is all I can say, &lt;a href="http://www.sqlserveranalysisservices.com/cellsetgrid/CellSetGridIntro.htm"&gt;wow&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
This is the coolest thing I've seen in a long time. A zero footprint cube browser
that is built using &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=790d631b-bff9-4f4a-b648-e9209e6ac8ad&amp;amp;DisplayLang=en"&gt;Adomd.net&lt;/a&gt; and
ASP.net. &lt;a href="http://blogs.sqlxml.org/bryantlikes/archive/2004/03/01/415.aspx"&gt;I've
been looking for this for a long time&lt;/a&gt;. But not only is it everything I've wanted,
it is free and you can download the source. 
&lt;/p&gt;
&lt;p&gt;
My next project will be to convert this into a web part for SharePoint and add save
state. Then life will be good and I will drop the Office Web Components (and all the
problems we've had with them). 
&lt;/p&gt;
&lt;p&gt;
Thanks to &lt;a href="http://sqljunkies.com/WebLog/mosha/"&gt;Mosha&amp;nbsp;Pasumansky&lt;/a&gt; for &lt;a href="http://sqljunkies.com/WebLog/mosha/archive/2004/11/01/4908.aspx"&gt;linking
to this&lt;/a&gt;&amp;nbsp;and to &lt;a href="http://duncanlamb.blogspot.com/"&gt;Duncan Lamb&lt;/a&gt; for &lt;a href="http://duncanlamb.blogspot.com/2004/11/how-analysis-services-works.html"&gt;linking
to Mosha&lt;/a&gt;. (In case you don't do much with Analysis Services, Mosha&amp;nbsp;is the
development lead&amp;nbsp;on the AS engine team and is&amp;nbsp;the MDX/OLAP/AS guru (see
his &lt;a href="http://www.mosha.com/msolap/"&gt;website&lt;/a&gt; and books)). I'm now subscribed
to Mosha's blog and already learning quite a bit...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1795" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,1795.aspx</comments>
      <category>Sql and Xml</category>
      <category>SharePoint</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=1122</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,1122.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,1122.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1122</wfw:commentRss>
      <slash:comments>8</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you're interested in the RsWebParts I just uploaded the installer for the beta
of the next version.
</p>
        <p>
          <a href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1">RsWebPart
Workspace</a>
        </p>
        <p>
See the <a href="http://www.gotdotnet.com/workspaces/news/newsitem.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1&amp;newsId=8438f3f1-188b-47ae-8782-a034877f149c">news</a> for
the list of fixes and enhancements. This is a beta and so what I'm really looking
for is feedback, suggestions, and most of all: bug reports. I'm sure there are going
to be some since I put this together pretty quickly.
</p>
        <p>
          <strong>Update: </strong>Post any feedback you have <a href="http://www.gotdotnet.com/workspaces/messageboard/thread.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1&amp;threadid=59a65bd1-50bf-4363-a8ac-cccc59f1486b">here</a> (or
just reply to this post).
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1122" />
      </body>
      <title>RsWebParts 1.1 BETA</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,1122.aspx</guid>
      <link>http://bryantlikes.com/RsWebParts11BETA.aspx</link>
      <pubDate>Wed, 20 Oct 2004 18:13:00 GMT</pubDate>
      <description>&lt;p&gt;
If you're interested in the RsWebParts I just uploaded the installer for the beta
of the next version.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1"&gt;RsWebPart
Workspace&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
See the &lt;a href="http://www.gotdotnet.com/workspaces/news/newsitem.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1&amp;amp;newsId=8438f3f1-188b-47ae-8782-a034877f149c"&gt;news&lt;/a&gt; for
the list of fixes and enhancements. This is a beta and so what I'm really looking
for is feedback, suggestions, and most of all: bug reports. I'm sure there are going
to be some since I put this together pretty quickly.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update: &lt;/strong&gt;Post any feedback you have &lt;a href="http://www.gotdotnet.com/workspaces/messageboard/thread.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1&amp;amp;threadid=59a65bd1-50bf-4363-a8ac-cccc59f1486b"&gt;here&lt;/a&gt;&amp;nbsp;(or
just reply to this post).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1122" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,1122.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=1119</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,1119.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,1119.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1119</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you do web development you may find these tools invaluable:
</p>
        <p>
          <a href="http://www.thundermain.com/code/ToggleBorders.aspx">Toggle Borders</a>
        </p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
The accepted way to debug complex table-based HTML pages is to add a border="1" attribute
to the &lt;TABLE&gt; element. Toggle Borders is a utility which automates this and
more. It is accessed from the context menu in Internet Explorer and will color-code
tables, spans and divs for you to see how your website, or a third party website has
been layed out. Select Toggle Borders again and the color-coding is removed. 
</p>
        </blockquote>
        <p>
          <a href="http://www.thundermain.com/code/FullSource.aspx">Full Source</a>
        </p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
Full Source is an Internet Explorer menu extension which displays the source Internet
Explorer is displaying, directly from the Internet Explorer object model. This is
useful wherever javascript is dynamically writing HTML into the DOM, or where XSLT
has been used to generate HTML.
</p>
        </blockquote>
        <p dir="ltr">
I use both of these tools, and while they aren't something you use every day, when
you need them they come in very handy.
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1119" />
      </body>
      <title>Cool IE Tools</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,1119.aspx</guid>
      <link>http://bryantlikes.com/CoolIETools.aspx</link>
      <pubDate>Tue, 19 Oct 2004 15:42:00 GMT</pubDate>
      <description>&lt;p&gt;
If you do web development you may find these tools invaluable:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.thundermain.com/code/ToggleBorders.aspx"&gt;Toggle Borders&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
The accepted way to debug complex table-based HTML pages is to add a border="1" attribute
to the &amp;lt;TABLE&amp;gt; element. Toggle Borders is a utility which automates this and
more. It is accessed from the context menu in Internet Explorer and will color-code
tables, spans and divs for you to see how your website, or a third party website has
been layed out. Select Toggle Borders again and the color-coding is removed. 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;a href="http://www.thundermain.com/code/FullSource.aspx"&gt;Full Source&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
Full Source is an Internet Explorer menu extension which displays the source Internet
Explorer is displaying, directly from the Internet Explorer object model. This is
useful wherever javascript is dynamically writing HTML into the DOM, or where XSLT
has been used to generate HTML.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
I use both of these tools, and while they aren't something you use every day, when
you need them they come in very handy.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1119" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,1119.aspx</comments>
      <category>SharePoint</category>
      <category>ASP.Net/Web Services</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=1114</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,1114.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,1114.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1114</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
[via <a href="http://duncanlamb.blogspot.com/2004/10/databeacon-makes-net-olap-front-end.html">Duncan
Lamb</a>]
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
Finally after 2 ½ years – I can talk about the work we’ve been doing
in .NET. I work for <a href="http://www.databeacon.com/">Databeacon</a> and we produce
"Web Reporting and Data Analysis" software. Last week we <a href="http://www.databeacon.com/PressReleaseOct142.cfm">launched</a> what
we believe to be the world's first commercial No Touch Deployment application with
.NET.
</p>
        </blockquote>
        <p>
More <a href="http://dotnetjunkies.com/WebLog/mlevison/archive/2004/10/18/28961.aspx">here</a>.
</p>
        <p>
Duncan <a href="http://dotnetjunkies.com/WebLog/mlevison/archive/2004/10/18/28961.aspx#29054">asks</a> the
first question that came to my mind: Does it support Analysis Services? I would hope
it does since the product would only be useful if I can connect it to the work we've
already done (and plan to do with SQL 2005). I'm hoping this might be zero-footprint
analysis client that we could use to replace Office Web Components, which leads to
my second question:
</p>
        <p>
Is the product extensible enough that I can somehow create SharePoint web parts with
it?
</p>
        <p>
I'm still looking for <a href="http://blogs.sqlxml.org/bryantlikes/archive/2004/03/01/415.aspx">the
perfect cube browser web part</a>...
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1114" />
      </body>
      <title>No Touch Analysis Front-End</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,1114.aspx</guid>
      <link>http://bryantlikes.com/NoTouchAnalysisFrontEnd.aspx</link>
      <pubDate>Tue, 19 Oct 2004 11:13:00 GMT</pubDate>
      <description>&lt;p&gt;
[via &lt;a href="http://duncanlamb.blogspot.com/2004/10/databeacon-makes-net-olap-front-end.html"&gt;Duncan
Lamb&lt;/a&gt;]
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
Finally after 2 &amp;#189; years &amp;#8211; I can talk about the work we&amp;#8217;ve been doing
in .NET. I work for &lt;a href="http://www.databeacon.com/"&gt;Databeacon&lt;/a&gt; and we produce
"Web Reporting and Data Analysis" software. Last week we &lt;a href="http://www.databeacon.com/PressReleaseOct142.cfm"&gt;launched&lt;/a&gt; what
we believe to be the world's first commercial No Touch Deployment application with
.NET.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
More &lt;a href="http://dotnetjunkies.com/WebLog/mlevison/archive/2004/10/18/28961.aspx"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Duncan &lt;a href="http://dotnetjunkies.com/WebLog/mlevison/archive/2004/10/18/28961.aspx#29054"&gt;asks&lt;/a&gt; the
first question that came to my mind: Does it support Analysis Services? I would hope
it does since the product would only be useful if I can connect it to the work we've
already done (and plan to do with SQL 2005). I'm hoping this might be zero-footprint
analysis client that we could use to replace Office Web Components, which leads to
my second question:
&lt;/p&gt;
&lt;p&gt;
Is the product extensible enough that I can somehow create SharePoint web parts with
it?
&lt;/p&gt;
&lt;p&gt;
I'm still looking for &lt;a href="http://blogs.sqlxml.org/bryantlikes/archive/2004/03/01/415.aspx"&gt;the
perfect cube browser web part&lt;/a&gt;...
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1114" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,1114.aspx</comments>
      <category>Sql and Xml</category>
      <category>SharePoint</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=1112</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,1112.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,1112.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1112</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As I mentioned in my last post I'm upgrading some web parts. More notably, I'm moving
from an unsigned assembly to a signed assembly. This presented me with an interesting
problem.
</p>
        <p>
If you upgrade a web part assembly, and the assembly is signed, you can force all
the existing web parts that use that assembly to use the new version via the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfruntime.asp">runtime
element</a> of the web.config file. You simply change the version number of your assembly,
add it to SharePoint, and all your web parts get upgraded to the new version. Easy.
</p>
        <p>
Okay, so what if your assembly was not signed and now it is? Good question. As far
as I can tell the answer is that you are SOL. I tried every combination that I could
think of and couldn't get it to work. Of course, since <a href="http://blogs.sqlxml.org/bryantlikes/articles/583.aspx#1027">I'm
an idiot</a> so this doesn't mean much (as you can see this also isn't my first
SharePoint hack :). 
</p>
        <p>
So what's a SharePoint hack to do? Hack, of course. First I put a couple of the old
webparts onto a page, then ran a SQL trace and opened the page. From that trace I
was able to figure out that there is a table called webparts (how original) that contained
all the webparts for the page and what database this was in. I was also able to figure
out the tp_webparttypeid for each of my old web parts. Next I added the new webparts
to the page and went through the same process to get the tp_webparttypeid for each
of my new webparts. 
</p>
        <p>
*** DISCLAIMER: DO NOT TRY THIS ***
</p>
        <p>
Once I had the old and the new tp_webparttypeid I simple ran an update on the webparts
table. I updated all the tp_webparttypeid to the new tp_webparttypeid where the webpart
had the old id (that matched part for part in the assemblies). I really didn't expect
it to work so I was very surprised when it did. It worked perfectly.
</p>
        <p>
*** END DISCLAIMER ***
</p>
        <p>
Okay so I've told you not to do this so don't blame if you try it and you break something.
So far I've only tried it on my test machine which doesn't mean much. Tomorrow I'm
planning on backing up our production database and then seeing if I can make this
work on the production site. It will save us tons of time because as far as I can
tell this is the only way to do this upgrade. 
</p>
        <p>
Now you can add one more hack to my list of SharePoint “resources” :) 
</p>
        <p>
          <strong>Update:</strong> Well the upgrade went pretty smooth. There was one little
glitch with the Xml Serialization namespace which I had somehow changed on a couple
of the web parts. This meant the settings weren't showing up. So I changed them back,
recompiled, uninstalled/installed the web parts and everything worked. Pretty cool!
Not sure how else you could do this.
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1112" />
      </body>
      <title>Hacking SharePoint</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,1112.aspx</guid>
      <link>http://bryantlikes.com/HackingSharePoint.aspx</link>
      <pubDate>Mon, 18 Oct 2004 18:00:00 GMT</pubDate>
      <description>&lt;p&gt;
As I mentioned in my last post I'm upgrading some web parts. More notably, I'm moving
from an unsigned assembly to a signed assembly. This presented me with an interesting
problem.
&lt;/p&gt;
&lt;p&gt;
If you upgrade a web part assembly, and the assembly is signed, you can force all
the existing web parts that use that assembly to use the new version via the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfruntime.asp"&gt;runtime
element&lt;/a&gt; of the web.config file. You simply change the version number of your assembly,
add it to SharePoint, and all your web parts get upgraded to the new version. Easy.
&lt;/p&gt;
&lt;p&gt;
Okay, so what if your assembly was not signed and now it is? Good question. As far
as I can tell the answer is that you are SOL. I tried every combination that I could
think of and couldn't get it to work. Of course, since &lt;a href="http://blogs.sqlxml.org/bryantlikes/articles/583.aspx#1027"&gt;I'm
an idiot&lt;/a&gt; so this doesn't mean much (as you can see this also&amp;nbsp;isn't my first
SharePoint hack :). 
&lt;/p&gt;
&lt;p&gt;
So what's a SharePoint hack to do? Hack, of course. First I put a couple of the old
webparts onto a page, then ran a SQL trace and opened the page. From that trace I
was able to figure out that there is a table called webparts (how original) that contained
all the webparts for the page and what database this was in. I was also able to figure
out the tp_webparttypeid for each of my old web parts. Next I added the new webparts
to the page and went through the same process to get the tp_webparttypeid for each
of my new webparts. 
&lt;/p&gt;
&lt;p&gt;
*** DISCLAIMER: DO NOT TRY THIS ***
&lt;/p&gt;
&lt;p&gt;
Once I had the old and the new tp_webparttypeid I simple ran an update on the webparts
table. I updated all the tp_webparttypeid to the new tp_webparttypeid where the webpart
had the old id (that matched part for part in the assemblies). I really didn't expect
it to work so I was very surprised when it did. It worked perfectly.
&lt;/p&gt;
&lt;p&gt;
*** END DISCLAIMER ***
&lt;/p&gt;
&lt;p&gt;
Okay so I've told you not to do this so don't blame if you try it and you break something.
So far I've only tried it on my test machine which doesn't mean much. Tomorrow I'm
planning on backing up our production database and then seeing if I can make this
work on the production site. It will save us tons of time because as far as I can
tell this is the only way to do this upgrade. 
&lt;/p&gt;
&lt;p&gt;
Now you can add one more hack to my list of SharePoint &amp;#8220;resources&amp;#8221; :) 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; Well the upgrade went pretty smooth. There was one little
glitch with the Xml Serialization namespace which I had somehow changed on a couple
of the web parts. This meant the settings weren't showing up. So I changed them back,
recompiled, uninstalled/installed the web parts and everything worked. Pretty cool!
Not sure how else you could do this.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1112" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,1112.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=1111</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,1111.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,1111.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1111</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I spent the whole day working on upgrading some web parts to fix some bugs and to
make sure they meet some new web part standards that we have at my work. One of those
standards is that the assembly must be signed. If you've built web parts then you
probably know about the PartImageLarge element in the DWP file (if you don't, the
rest of this post probably won't be too interesting). In the PartImageLarge element
you specify the path to the image for the web part which shows up in the Add Web Part
dialog. 
</p>
        <p>
Now, if an assembly is not signed, your resource path will look like: 
</p>
        <p>
/wpresources/[AssemblyName]/. 
</p>
        <p>
This is pretty simple so my DWP files had this hard coded in them for each image.
However, once you sign a web part assembly your resource path suddenly changes to
something much more cryptic:
</p>
        <p>
/_wpresources/[AssemblyName]/[AssemblyVersion]__[PublicKeyToken]/
</p>
        <p>
Okay, so it isn't terribly cryptic, but enough to make me want to figure out a better
way than to hard code it. So, I do what I usually do when I need to figure out something
like this: I look at what MS did in their web parts. After a quick look at the Office
2003 web part DWP files I found my answer. It is actually very simple. Just replace
the path with _WPR_ and SharePoint will work its magic. So the PartImageLarge element
get changed to:
</p>
        <p>
_WPR_/someimage.gif
</p>
        <p>
Wow! The cool thing is that this works no matter what your path is. 
</p>
        <p>
Update: BTW, I forgot to add you can get this same coolness when you're programming
webparts. It is the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/smppWebPartClassResourcePath.asp">ClassResourcePath</a> property
of the WebPart class (you can reference it in your class via base.ClassResourcePath).
Somehow I missed this cool property so I wanted to pass this along so you didn't.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1111" />
      </body>
      <title>WebPart Resources</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,1111.aspx</guid>
      <link>http://bryantlikes.com/WebPartResources.aspx</link>
      <pubDate>Mon, 18 Oct 2004 17:44:00 GMT</pubDate>
      <description>&lt;p&gt;
I spent the whole day working on upgrading some web parts to fix some bugs and to
make sure they meet some new web part standards that we have at my work. One of those
standards is that the assembly must be signed. If you've built web parts then you
probably know about the PartImageLarge element in the DWP file (if you don't, the
rest of this post probably won't be too interesting). In the PartImageLarge element
you specify the path to the image for the web part which shows up in the Add Web Part
dialog. 
&lt;/p&gt;
&lt;p&gt;
Now, if an assembly is not signed, your resource path will look like: 
&lt;/p&gt;
&lt;p&gt;
/wpresources/[AssemblyName]/. 
&lt;/p&gt;
&lt;p&gt;
This is pretty simple so my DWP files had this hard coded in them for each image.
However, once you sign a web part assembly your resource path suddenly changes to
something much more cryptic:
&lt;/p&gt;
&lt;p&gt;
/_wpresources/[AssemblyName]/[AssemblyVersion]__[PublicKeyToken]/
&lt;/p&gt;
&lt;p&gt;
Okay, so it isn't terribly cryptic, but enough to make me want to figure out a better
way than to hard code it. So, I do what I usually do when I need to figure out something
like this: I look at what MS did in their web parts. After a quick look at the Office
2003 web part DWP files I found my answer. It is actually very simple. Just replace
the path with _WPR_ and SharePoint will work its magic. So the PartImageLarge&amp;nbsp;element
get changed to:
&lt;/p&gt;
&lt;p&gt;
_WPR_/someimage.gif
&lt;/p&gt;
&lt;p&gt;
Wow! The cool thing is that this works no matter what your path is. 
&lt;/p&gt;
&lt;p&gt;
Update: BTW, I forgot to add you can get this same coolness when you're programming
webparts. It is the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/smppWebPartClassResourcePath.asp"&gt;ClassResourcePath&lt;/a&gt; property
of the WebPart class (you can reference it in your class via base.ClassResourcePath).
Somehow I missed this cool property so I wanted to pass this along so you didn't.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=1111" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,1111.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=906</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,906.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,906.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=906</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Back in March I collected a bunch of SharePoint resources and stuck them in an <a href="http://blogs.sqlxml.org/bryantlikes/articles/485.aspx">article</a>.
Of course, the article became quickly outdated. Soon to follow were other resource
lists <a href="http://dotnetjunkies.com/WebLog/lamont_harrington/articles/12068.aspx">here</a>, <a href="http://weblogs.asp.net/erobillard/archive/2004/06/17/158311.aspx">here</a>, <a href="http://www.sharepointblogs.com/bmixon/archive/2004/07/26/662.aspx">here</a>,
and <a href="http://blogs.officezealot.com/legault/archive/2004/08/08/2238.aspx">here</a>.
(all of which are much more comprehensive than my list).
</p>
        <p>
So I've added a wiki (running <a href="http://www.flexwiki.com">FlexWiki</a>) to my
personal homepage (which I really need to redo) and on my wiki I've added a <a href="http://bryantlikes.com/wiki/default.aspx/BryantLikes.SharePointResources">SharePoint
Resource Page</a>. This is a collaboration experiment to see if maybe a list that
anyone can edit will be more effective than a list that one person maintains (I know
it will work better for me since I'm terrible at keeping sites up-to-date).
</p>
        <p>
I've added most of the resources from my resource page and I'll soon add the rest.
If you have a resource you like please add it to the page as well. (And it would be
really cool if some of the other resource lists were to add some of their resources
but I'll probably just have to copy them)
</p>
        <p>
It will be interesting to see if this gets used at all. If it gets a lot of use then
it might be worth setting this up somewhere more central like the WSSFAQ site.
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=906" />
      </body>
      <title>SharePoint Resources and Wiki</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,906.aspx</guid>
      <link>http://bryantlikes.com/SharePointResourcesAndWiki.aspx</link>
      <pubDate>Mon, 16 Aug 2004 14:41:00 GMT</pubDate>
      <description>&lt;p&gt;
Back in March I collected a bunch of SharePoint resources and stuck them in an &lt;a href="http://blogs.sqlxml.org/bryantlikes/articles/485.aspx"&gt;article&lt;/a&gt;.
Of course, the article became quickly outdated. Soon to follow were other resource
lists &lt;a href="http://dotnetjunkies.com/WebLog/lamont_harrington/articles/12068.aspx"&gt;here&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/erobillard/archive/2004/06/17/158311.aspx"&gt;here&lt;/a&gt;, &lt;a href="http://www.sharepointblogs.com/bmixon/archive/2004/07/26/662.aspx"&gt;here&lt;/a&gt;,
and &lt;a href="http://blogs.officezealot.com/legault/archive/2004/08/08/2238.aspx"&gt;here&lt;/a&gt;.
(all of which are much more comprehensive than my list).
&lt;/p&gt;
&lt;p&gt;
So I've added a wiki (running &lt;a href="http://www.flexwiki.com"&gt;FlexWiki&lt;/a&gt;) to my
personal homepage (which I really need to redo) and on my wiki I've added a &lt;a href="http://bryantlikes.com/wiki/default.aspx/BryantLikes.SharePointResources"&gt;SharePoint
Resource Page&lt;/a&gt;. This is a collaboration experiment to see if maybe a list that
anyone can edit will be more effective than a list that one person maintains (I know
it will work better for me since I'm terrible at keeping sites up-to-date).
&lt;/p&gt;
&lt;p&gt;
I've added most of the resources from my resource page and I'll soon add the rest.
If you have a resource you like please add it to the page as well. (And it would be
really cool if some of the other resource lists were to add some of their resources
but I'll probably just have to copy them)
&lt;/p&gt;
&lt;p&gt;
It will be interesting to see if this gets used at all. If it gets a lot of use then
it might be worth setting this up somewhere more central like the WSSFAQ site.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=906" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,906.aspx</comments>
      <category>SharePoint</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=814</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,814.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,814.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=814</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Is GDN the worlds slowest website or is it just me? If you were Microsoft, wouldn't
you want to at least put a bandaid on it? Sheesh. 
</p>
        <p>
I'm digging into <a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=6dea32c2-ef79-42e1-b574-97b273163fbb">FABRIQ</a> and
wanted to ask a couple of questions about it so I figured I would hit the workspace.
However, it seems that the GDN is having some major issues so I can't access the <a href="http://workspaces.gotdotnet.com/fabriq">workspace</a>.
</p>
        <p>
          <img src="http://files.bryantlikes.com/Images/o_GotDotNightmare.gif" />
        </p>
        <p>
I was already planning on moving the RsWebParts off GDN because it is just too slow.
You spend at least 75% of your time waiting for things to load. I'm sure that it is
a very complicated application so it must not be an easy fix, but there must be a
better way.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=814" />
      </body>
      <title>GotDotNightmare</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,814.aspx</guid>
      <link>http://bryantlikes.com/GotDotNightmare.aspx</link>
      <pubDate>Tue, 13 Jul 2004 10:46:00 GMT</pubDate>
      <description>&lt;p&gt;
Is GDN the worlds slowest website or is it just me? If you were Microsoft, wouldn't
you want to at least put a bandaid on it? Sheesh. 
&lt;/p&gt;
&lt;p&gt;
I'm digging into &lt;a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=6dea32c2-ef79-42e1-b574-97b273163fbb"&gt;FABRIQ&lt;/a&gt; and
wanted to ask a couple of questions about it so I figured I would hit the workspace.
However, it seems that the GDN is having some major issues so I can't access the &lt;a href="http://workspaces.gotdotnet.com/fabriq"&gt;workspace&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://files.bryantlikes.com/Images/o_GotDotNightmare.gif" /&gt;
&lt;/p&gt;
&lt;p&gt;
I was already planning on moving the RsWebParts off GDN because it is just too slow.
You spend at least 75% of your time waiting for things to load. I'm sure that it is
a very complicated application so it must not be an easy fix, but there must be a
better way.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=814" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,814.aspx</comments>
      <category>SharePoint</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=753</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,753.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,753.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=753</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
First an insensitive validator and next an <a href="http://jaynathan.com/blog/archive/2004/06/25/156.aspx">Impersonating
WebPart</a>. What is web development coming too? :)
</p>
        <p>
          <a href="http://jaynathan.com/blog/">Jay Nathan</a> now has a .Text blog! After you
subscribe you should read <a href="http://www.15seconds.com/issue/040511.htm">his
article on the Impersonating WebPart</a>. It covers the basics of how to use the WebPart
to impersonate users along with an overview of things like CAS. 
</p>
        <p>
If you're new to SharePoint development and you don't know what <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_sp2003_ta/html/sharepoint_wsscodeaccesssecurity.asp">CAS</a> stands
for then you really need to read <a href="http://ipattern.com/simpleblog/PermLink.aspx?entryid=43">Maxim
Karpov's article</a> on the subject. Jan also talks about it in reference to
the SmartPart <a href="http://weblogs.asp.net/jan/archive/2004/06/14/155165.aspx">here</a>.
While CAS is not something I really enjoy, it is essential to understand. If you don't
at least understand the theory then you're going to run into real trouble the first
time you get a security exception in the web part you're developing.
</p>
        <p>
But back to the article. One thing that caught my attention since it is something
that I've struggled with before:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <pre>Impersonator i = new Impersonator("SharePointRead", "MARINER", 
"password123").Impersonate();

// Code requiring higher permissions...

i.Undo();
</pre>
          <p>
Note: Instead of hard-coding the account credentials, they should probably be stored
in the SharePoint's web.config file or a SQL Server table. 
</p>
        </blockquote>
        <p dir="ltr">
I really don't want to put the username and password in the code (as noted), but I
also really don't want to put them in a database or a web.config file either. What
I really want to do is figure out how to make this work with <a href="http://www.microsoft.com/technet/prodtechnol/sppt/reskit/c2661881x.mspx">single
sign-on</a>. Unfortunately I haven't even got single sign-on running so I haven't
looked at if this is possible.
</p>
        <p dir="ltr">
Overall I think the Impersonating WebPart is a great idea and will probably
cover 99% of what you would use it for. However, there are some cases (like Reporting
Services) where I think you might need to have something like single sign-on
in order to deal with who sees what data. 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=753" />
      </body>
      <title>Impersonating WebPart</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,753.aspx</guid>
      <link>http://bryantlikes.com/ImpersonatingWebPart.aspx</link>
      <pubDate>Wed, 30 Jun 2004 17:07:00 GMT</pubDate>
      <description>&lt;p&gt;
First an insensitive validator and next an &lt;a href="http://jaynathan.com/blog/archive/2004/06/25/156.aspx"&gt;Impersonating
WebPart&lt;/a&gt;. What is web development coming too? :)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://jaynathan.com/blog/"&gt;Jay Nathan&lt;/a&gt; now has a .Text blog! After you
subscribe you should read &lt;a href="http://www.15seconds.com/issue/040511.htm"&gt;his
article on the Impersonating WebPart&lt;/a&gt;. It covers the basics of how to use the WebPart
to impersonate users along with an overview of things like CAS. 
&lt;/p&gt;
&lt;p&gt;
If you're new to SharePoint development and you don't know what &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_sp2003_ta/html/sharepoint_wsscodeaccesssecurity.asp"&gt;CAS&lt;/a&gt; stands
for then you really need to read &lt;a href="http://ipattern.com/simpleblog/PermLink.aspx?entryid=43"&gt;Maxim
Karpov's article&lt;/a&gt;&amp;nbsp;on the subject. Jan also talks about it in reference to
the SmartPart &lt;a href="http://weblogs.asp.net/jan/archive/2004/06/14/155165.aspx"&gt;here&lt;/a&gt;.
While CAS is not something I really enjoy, it is essential to understand. If you don't
at least understand the theory then you're going to run into real trouble the first
time you get a security exception in the web part you're developing.
&lt;/p&gt;
&lt;p&gt;
But back to the article. One thing that caught my attention since it is something
that I've struggled with before:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;pre&gt;Impersonator i = new Impersonator("SharePointRead", "MARINER", 
"password123").Impersonate();

// Code requiring higher permissions...

i.Undo();
&lt;/pre&gt;
&lt;p&gt;
Note: Instead of hard-coding the account credentials, they should probably be stored
in the SharePoint's web.config file or a SQL Server table. 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
I really don't want to put the username and password in the code (as noted), but I
also really don't want to put them in a database or a web.config file either. What
I really want to do is figure out how to make this work with &lt;a href="http://www.microsoft.com/technet/prodtechnol/sppt/reskit/c2661881x.mspx"&gt;single
sign-on&lt;/a&gt;. Unfortunately I haven't even got single sign-on running so I haven't
looked at if this is possible.
&lt;/p&gt;
&lt;p dir=ltr&gt;
Overall I think the Impersonating WebPart&amp;nbsp;is a great idea and&amp;nbsp;will probably
cover&amp;nbsp;99% of what you would use it for. However, there are some cases (like Reporting
Services) where I think you&amp;nbsp;might need to have something like single sign-on
in order to deal with who sees what data. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=753" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,753.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=708</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,708.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,708.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=708</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://weblogs.asp.net/erobillard/">Eli
Robillard</a> has posted <a href="http://weblogs.asp.net/erobillard/archive/2004/06/17/158311.aspx">a
resource list for SharePoint</a>. <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=708" /></body>
      <title>Eli's SharePoint Resources</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,708.aspx</guid>
      <link>http://bryantlikes.com/ElisSharePointResources.aspx</link>
      <pubDate>Thu, 17 Jun 2004 10:53:00 GMT</pubDate>
      <description>&lt;a href="http://weblogs.asp.net/erobillard/"&gt;Eli Robillard&lt;/a&gt; has posted &lt;a href="http://weblogs.asp.net/erobillard/archive/2004/06/17/158311.aspx"&gt;a
resource list for SharePoint&lt;/a&gt;. &lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=708" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,708.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=698</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,698.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,698.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=698</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
RsWebParts made the <a href="http://www.greghughes.net/rant/PermaLink,guid,ebdaf00c-3215-4d44-a73b-34ab73df0e7a.aspx">Cool
SharePoint Stuff</a> list on <a href="http://www.greghughes.net/rant/default.aspx">Greg
Hughes</a> blog. There is some very cool stuff on that list that I'm hoping to have
time to dig into myself. Here are some cool things from that list plus a bunch of
my own:
</p>
        <ul>
          <li>
            <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_SP2003_ta/html/ODC_SPPTBuildingCustomChannelsSPPT.asp">Building
Custom Alert Result Channels in SharePoint Portal Server 2003</a> by <a href="http://radio.weblogs.com/0126624/2004/06/15.html#a190">Patrick
Tisseghem</a>.</li>
          <li>
            <a href="http://weblogs.asp.net/jan/archive/2004/06/02/146932.aspx">Workflow Lite
for SharePoint RC1</a> by <a href="http://weblogs.asp.net/jan/">Jan Tielen</a></li>
          <li>
            <a href="http://man.unice.net/Works/DocLibTV/">SPS Document Library Treeview</a>
          </li>
          <li>
            <a href="http://weblogs.asp.net/jan/archive/2004/06/10/152932.aspx">The “SmartPart
for SharePoint“</a> also by <a href="http://weblogs.asp.net/jan/">Jan</a> and
with a <a href="http://workspaces.gotdotnet.com/smartpart">GotDotNet Workspace</a>.</li>
          <li>
            <a href="http://www.blogs.jpworks.be/Tom/PermaLink.aspx?guid=3b81e46a-a471-4234-98ff-692459faf26e">Treeview
navigation webpart for Sharepoint</a> by <a href="http://www.blogs.jpworks.be/Tom/default.aspx">Tom
van de Kerhof</a></li>
          <li>
            <a href="http://msdn.microsoft.com/library/?url=/library/en-us/odc_SP2003_ta/html/ODC_WSSAddingCustomViewStyle.asp">Adding
a Custom View Style to Windows SharePoint Services</a> via <a href="http://blog.markharrison.co.uk/posts/423.aspx">Mark
Harrison</a></li>
          <li>
            <a href="http://blog.markharrison.co.uk/posts/416.aspx">17 White Papers from the SharePoint
Products and Technologies Resource Kit</a> also via Mark</li>
          <li>
            <a href="http://weblogs.asp.net/soever/archive/2004/06/01/145831.aspx">Alternate Header
Magic to Style Your SharePoint Pages</a> by <a href="http://weblogs.asp.net/soever/">Serge
van den Oever</a></li>
        </ul>
        <p>
Wow. That should keep you busy for awhile! I'm sure there is more that and this
doesn't include all kinds of interesting SharePoint discussions such as <a id="viewpost.ascx_TitleUrl" href="http://blogs.msdn.com/jonathanh/archive/2004/06/14/155807.aspx">Sharing
your bookmarks: http://del.icio.us, wikis, and the zen of SharePoint</a>. Enjoy!
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=698" />
      </body>
      <title>Cool SharePoint Stuff</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,698.aspx</guid>
      <link>http://bryantlikes.com/CoolSharePointStuff.aspx</link>
      <pubDate>Wed, 16 Jun 2004 07:10:00 GMT</pubDate>
      <description>&lt;p&gt;
RsWebParts made the &lt;a href="http://www.greghughes.net/rant/PermaLink,guid,ebdaf00c-3215-4d44-a73b-34ab73df0e7a.aspx"&gt;Cool
SharePoint Stuff&lt;/a&gt; list on &lt;a href="http://www.greghughes.net/rant/default.aspx"&gt;Greg
Hughes&lt;/a&gt; blog. There is some very cool stuff on that list that I'm hoping to have
time to dig into myself. Here are some cool things from that list plus a bunch of
my own:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_SP2003_ta/html/ODC_SPPTBuildingCustomChannelsSPPT.asp"&gt;Building
Custom Alert Result Channels in SharePoint Portal Server 2003&lt;/a&gt;&amp;nbsp;by &lt;a href="http://radio.weblogs.com/0126624/2004/06/15.html#a190"&gt;Patrick
Tisseghem&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/jan/archive/2004/06/02/146932.aspx"&gt;Workflow Lite
for SharePoint RC1&lt;/a&gt;&amp;nbsp;by &lt;a href="http://weblogs.asp.net/jan/"&gt;Jan Tielen&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://man.unice.net/Works/DocLibTV/"&gt;SPS Document Library Treeview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/jan/archive/2004/06/10/152932.aspx"&gt;The &amp;#8220;SmartPart
for SharePoint&amp;#8220;&lt;/a&gt;&amp;nbsp;also by &lt;a href="http://weblogs.asp.net/jan/"&gt;Jan&lt;/a&gt; and
with a &lt;a href="http://workspaces.gotdotnet.com/smartpart"&gt;GotDotNet Workspace&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.blogs.jpworks.be/Tom/PermaLink.aspx?guid=3b81e46a-a471-4234-98ff-692459faf26e"&gt;Treeview
navigation webpart for Sharepoint&lt;/a&gt;&amp;nbsp;by &lt;a href="http://www.blogs.jpworks.be/Tom/default.aspx"&gt;Tom
van de Kerhof&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://msdn.microsoft.com/library/?url=/library/en-us/odc_SP2003_ta/html/ODC_WSSAddingCustomViewStyle.asp"&gt;Adding
a Custom View Style to Windows SharePoint Services&lt;/a&gt; via &lt;a href="http://blog.markharrison.co.uk/posts/423.aspx"&gt;Mark
Harrison&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blog.markharrison.co.uk/posts/416.aspx"&gt;17 White Papers from the SharePoint
Products and Technologies Resource Kit&lt;/a&gt;&amp;nbsp;also via Mark&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/soever/archive/2004/06/01/145831.aspx"&gt;Alternate Header
Magic to Style Your SharePoint Pages&lt;/a&gt;&amp;nbsp;by &lt;a href="http://weblogs.asp.net/soever/"&gt;Serge
van den Oever&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Wow. That&amp;nbsp;should keep you busy for awhile! I'm sure there is more that and this
doesn't include all kinds of interesting SharePoint discussions such as &lt;a id=viewpost.ascx_TitleUrl href="http://blogs.msdn.com/jonathanh/archive/2004/06/14/155807.aspx"&gt;Sharing
your bookmarks: http://del.icio.us, wikis, and the zen of SharePoint&lt;/a&gt;. Enjoy!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=698" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,698.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=697</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,697.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,697.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=697</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">The RsWebParts that I posted last month
has generated more interest than I expected. I'm glad that everyone is excited about
these WebParts. However, prepare to be even more excited soon. No, there is not a
new release of the RsWebParts, rather there is <a href="http://jaynathan.blogspot.com/2004/06/reporting-services-web-parts-screen.html">a
new set of Report Service Web Parts</a> developed by <a href="http://jaynathan.blogspot.com/">Jay
Nathan</a>. Jay hasn't posted any code yet but the screenshots look very promising.
I will be looking forward to their release and Jay's <a href="http://www.jaynathan.com/">new
website</a> both of which are coming soon.<img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=697" /></body>
      <title>Reporting Services Web Parts</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,697.aspx</guid>
      <link>http://bryantlikes.com/ReportingServicesWebParts.aspx</link>
      <pubDate>Wed, 16 Jun 2004 06:41:00 GMT</pubDate>
      <description>The RsWebParts that I posted last month has generated more interest than I expected. I'm glad that everyone is excited about these WebParts. However, prepare to be even more excited soon. No, there is not a new release of the RsWebParts, rather there is &lt;a href="http://jaynathan.blogspot.com/2004/06/reporting-services-web-parts-screen.html"&gt;a
new set of Report Service Web Parts&lt;/a&gt; developed by &lt;a href="http://jaynathan.blogspot.com/"&gt;Jay
Nathan&lt;/a&gt;. Jay hasn't posted any code yet but the screenshots look very promising.
I will be looking forward to their release and Jay's &lt;a href="http://www.jaynathan.com/"&gt;new
website&lt;/a&gt;&amp;nbsp;both of which are coming soon.&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=697" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,697.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=635</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,635.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,635.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=635</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've updated my <a href="http://blogs.sqlxml.org/bryantlikes/articles/485.aspx">SharePoint
resources page</a> to include some more blogs and webcasts. I've also added a
link to <a href="http://dotnetjunkies.com/WebLog/lamont_harrington/articles/12068.aspx">Lamont
Harrington's SharePoint resource page</a> which has a ton more resources that the
page I created. Take a look.
</p>
        <p>
Also I spoke with the WebCast guys at Tech-Ed and it sounds like there is an RSS feed
in the works for webcasts (and it will probably have categories). So hopefully keeping
a list of SharePoint webcasts will get much easier soon. 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=635" />
      </body>
      <title>SharePoint Resources Updated</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,635.aspx</guid>
      <link>http://bryantlikes.com/SharePointResourcesUpdated.aspx</link>
      <pubDate>Thu, 27 May 2004 17:41:00 GMT</pubDate>
      <description>&lt;p&gt;
I've updated my &lt;a href="http://blogs.sqlxml.org/bryantlikes/articles/485.aspx"&gt;SharePoint
resources page&lt;/a&gt; to include some more blogs and&amp;nbsp;webcasts. I've also added a
link to &lt;a href="http://dotnetjunkies.com/WebLog/lamont_harrington/articles/12068.aspx"&gt;Lamont
Harrington's SharePoint resource page&lt;/a&gt; which has a ton more resources that the
page I created. Take a look.
&lt;/p&gt;
&lt;p&gt;
Also I spoke with the WebCast guys at Tech-Ed and it sounds like there is an RSS feed
in the works for webcasts (and it will probably have categories). So hopefully keeping
a list of SharePoint webcasts will get much easier soon. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=635" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,635.aspx</comments>
      <category>SharePoint</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=629</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,629.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,629.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=629</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've just posted a walkthrough that explains how to install and configure the RsWebParts. 
</p>
        <p>
          <a href="http://blogs.sqlxml.org/bryantlikes/articles/628.aspx">Reporting Services
WebParts - Walkthrough</a>
        </p>
        <p>
I've also just released the CAB file for the first version of the RsWebParts on the <a href="http://workspaces.gotdotnet.com/rswebparts">RsWebParts
workspace</a>. Please check them out and let me know what you think. 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=629" />
      </body>
      <title>Reporting Services WebParts Released</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,629.aspx</guid>
      <link>http://bryantlikes.com/ReportingServicesWebPartsReleased.aspx</link>
      <pubDate>Thu, 27 May 2004 16:44:00 GMT</pubDate>
      <description>&lt;p&gt;
I've just posted a walkthrough that explains how to install and configure the RsWebParts. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.sqlxml.org/bryantlikes/articles/628.aspx"&gt;Reporting Services
WebParts - Walkthrough&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I've also just released the CAB file for the first version of the RsWebParts on the &lt;a href="http://workspaces.gotdotnet.com/rswebparts"&gt;RsWebParts
workspace&lt;/a&gt;. Please check them out and let me know what you think. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=629" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,629.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=628</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,628.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,628.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=628</wfw:commentRss>
      <slash:comments>98</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In this article I'm going to walk you through how to setup the RsWebParts with SharePoint.
The first thing you will need to do is download the CAB file from the <a href="http://www.gotdotnet.com/Community/Workspaces/workspace.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1">RsWebParts
workspace</a>. The current version is 1.0.0.0. Next you will need to install the CAB
file on your SharePoint server. <strong>NOTE:</strong> please test these on a development
box first. Below are the step-by-step instructions to install the WebParts.
</p>
        <p>
1) Save the CAB file to your SharePoint server in a place that is easy to find (I
use c:\temp).
</p>
        <p>
2) On the server, open a command prompt. If you haven't added the STSADM tool to your
path environment variable, then you will need to navigate to [c]:\Program Files\Common
Files\Microsoft Shared\web server extensions\60\BIN in the command window (by using
&gt;cd program files, &gt;cd common files, etc). 
</p>
        <p>
3) At the command prompt type stsadm -o addwppack -filename c:\temp\bml.rswebparts.setup.cab
(changing c:\temp\ to the directory where you saved the cab file). 
</p>
        <p>
4) You should get a message telling you the wppack was successfully installed.
</p>
        <p>
The next step is to start adding the parts to a page and then connecting them together.
To do this you will need a WebPartPage in SharePoint. In the site menu click the create
button and scroll down to the WebPartPage option. Create a new WebPartPage. I would
suggest the layout that has three zones: header, left column, body. Now you can start
adding the parts to your page.
</p>
        <p>
You have a few options for how to put the parts on the page (they are under the Virtual
Server Gallery). I would suggest starting with the RsExplorer WebPart since it allows
you to explore all the folders and reports on your report server. But you can also
start with the RsFolder view, which allows you to browse all the reports in a single
folder, or the RsStaticReportView, which connects to a single report. You should use
one of these three webparts on your page (note: you can use the other webparts without
these, but it makes it more difficult to change the report). 
</p>
        <p>
Once you have one of these on the page you will need to set some properties to allow
it to work. On the RsExplorer you will need to set the Server URL and the Folder Path.
To do this click the down arrow on the RsExplorer WebPart and select Modify Shared
Web Part (see image below).
</p>
        <p>
          <img src="http://files.bryantlikes.com/Images/o_Set%20Properties.gif" />
        </p>
        <p>
 
</p>
        <p>
In the Server Url box put the URL to your report server. For example, if your server
was named ReportServerA then you would set this URL to http://reportservera/reportserver.
The Folder Path is just the root path where the explorer will start at. The RsFolderView
and RsStaticReportView have similar properties (FolderPath and ReportPath) which do
the same thing. Once you click OK the WebPart should load up the list of reports and
you should be able to browse around your report server. 
</p>
        <p>
The next step is to add some of the other RsWebParts. You can add the RsReportView
(for viewing reports), RsReportExport (for exporting reports), RsReportInfo (for getting
report details), and RsParameters (for setting report parameters). After you added
these items to the page you will need to setup their connections before you can start
using them. The steps to make these connections are outlined below.
</p>
        <p>
1) Put the page into design mode by clicking the dropdown at the top and selecting
design this page (see image below).
</p>
        <p>
          <img src="http://files.bryantlikes.com/Images/o_Design%20this%20page.gif" />
        </p>
        <p>
2) Click the down arrow on the Rs Report View web part and under connections select
Connections, Consumes a row from, Rs Explorer (see image below). This connetion is
what sets the report that the viewer will display.
</p>
        <p>
          <img src="http://files.bryantlikes.com/Images/o_Consumes%20a%20row%20from.gif" />
        </p>
        <p>
3) Click the same down arrow on Rs Report View but this time choose Consumes a row
from Rs Report Parameters. This connection determines what parameters the report will
use to render the report.
</p>
        <p>
4) Click the same down arrow once more, but this choose Provides a cell to and select
Rs Report Export. This provides the Url that the viewer is currently using so that
the export webpart can export it. 
</p>
        <p>
5) Click the down arrow on the Rs Report Parameters and select Connections, Consumes
a row from, and select Rs Explorer. This allows the parameters to get the right parameters
based on the report you've selected. 
</p>
        <p>
6) Finally click the down arrow on the Rs Report Info and select Connections, Consumes
a row from, and select Rs Explorer. This allows the web part to display the report
information.
</p>
        <p>
You should now be able to select a report and have all the other parts display the
correct information. Changing the parameter should change the report. You should also
be able to export the report using the export webpart. 
</p>
        <p>
          <img src="http://files.bryantlikes.com/Images/o_connected.gif" />
        </p>
        <p>
I hope you like the web parts! If you find bugs please <a href="http://www.gotdotnet.com/community/workspaces/BugList.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1">report
them</a> on the workspace and if you would like to add features to the project please <a href="http://www.gotdotnet.com/community/workspaces/applyjoin.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1">apply
to join</a> the workspace. 
</p>
        <p>
Cheers!
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=628" />
      </body>
      <title>Reporting Services WebParts - Walkthrough</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,628.aspx</guid>
      <link>http://bryantlikes.com/ReportingServicesWebPartsWalkthrough.aspx</link>
      <pubDate>Thu, 27 May 2004 16:40:00 GMT</pubDate>
      <description>&lt;p&gt;
In this article I'm going to walk you through how to setup the RsWebParts with SharePoint.
The first thing you will need to do is download the CAB file from the &lt;a href="http://www.gotdotnet.com/Community/Workspaces/workspace.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1"&gt;RsWebParts
workspace&lt;/a&gt;. The current version is 1.0.0.0. Next you will need to install the CAB
file on your SharePoint server. &lt;strong&gt;NOTE:&lt;/strong&gt; please test these on a development
box first. Below are the step-by-step instructions to install the WebParts.
&lt;/p&gt;
&lt;p&gt;
1) Save the CAB file to your SharePoint server in a place that is easy to find (I
use c:\temp).
&lt;/p&gt;
&lt;p&gt;
2) On the server, open a command prompt. If you haven't added the STSADM tool to your
path environment variable, then you will need to navigate to [c]:\Program Files\Common
Files\Microsoft Shared\web server extensions\60\BIN in the command window (by using
&amp;gt;cd program files, &amp;gt;cd common files, etc). 
&lt;/p&gt;
&lt;p&gt;
3) At the command prompt type stsadm -o addwppack -filename c:\temp\bml.rswebparts.setup.cab
(changing c:\temp\ to the directory where you saved the cab file). 
&lt;/p&gt;
&lt;p&gt;
4) You should get a message telling you the wppack was successfully installed.
&lt;/p&gt;
&lt;p&gt;
The next step is to start adding the parts to a page and then connecting them together.
To do this you will need a WebPartPage in SharePoint. In the site menu click the create
button and scroll down to the WebPartPage option. Create a new WebPartPage. I would
suggest the layout that has three zones: header, left column, body. Now you can start
adding the parts to your page.
&lt;/p&gt;
&lt;p&gt;
You have a few options for how to put the parts on the page (they are under the Virtual
Server Gallery). I would suggest starting with the RsExplorer WebPart since it allows
you to explore all the folders and reports on your report server. But you can also
start with the RsFolder view, which allows you to browse all the reports in a single
folder, or the RsStaticReportView, which connects to a single report. You should use
one of these three webparts on your page (note: you can use the other webparts without
these, but it makes it more difficult to change the report). 
&lt;/p&gt;
&lt;p&gt;
Once you have one of these on the page you will need to set some properties to allow
it to work. On the RsExplorer you will need to set the Server URL and the Folder Path.
To do this click the down arrow on the RsExplorer WebPart and select Modify Shared
Web Part (see image below).
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://files.bryantlikes.com/Images/o_Set%20Properties.gif" /&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
In the Server Url box put the URL to your report server. For example, if your server
was named ReportServerA then you would set this URL to http://reportservera/reportserver.
The&amp;nbsp;Folder Path is just the root path where the explorer will start at. The RsFolderView
and RsStaticReportView have similar properties (FolderPath and ReportPath) which do
the same thing. Once you click OK the WebPart should load up the list of reports and
you should be able to browse around your report server. 
&lt;/p&gt;
&lt;p&gt;
The next step is to add some of the other RsWebParts. You can add the RsReportView
(for viewing reports), RsReportExport (for exporting reports), RsReportInfo (for getting
report details), and RsParameters (for setting report parameters). After you added
these items to the page you will need to setup their connections before you can start
using them. The steps to make these connections are outlined below.
&lt;/p&gt;
&lt;p&gt;
1) Put the page into design mode by clicking the dropdown at the top and selecting
design this page (see image below).
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://files.bryantlikes.com/Images/o_Design%20this%20page.gif" /&gt;
&lt;/p&gt;
&lt;p&gt;
2) Click the down arrow on the Rs Report View web part and under connections select
Connections, Consumes a row from, Rs Explorer (see image below). This connetion is
what sets the report that the viewer will display.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://files.bryantlikes.com/Images/o_Consumes%20a%20row%20from.gif" /&gt;
&lt;/p&gt;
&lt;p&gt;
3) Click the same down arrow on Rs Report View but this time choose Consumes a row
from Rs Report Parameters. This connection determines what parameters the report will
use to render the report.
&lt;/p&gt;
&lt;p&gt;
4) Click the same down arrow once more, but this choose Provides a cell to and select
Rs Report Export. This provides the Url that the viewer is currently using so that
the export webpart can export it. 
&lt;/p&gt;
&lt;p&gt;
5) Click the down arrow on the Rs Report Parameters and select Connections, Consumes
a row from, and select Rs Explorer. This allows the parameters to get the right parameters
based on the report you've selected. 
&lt;/p&gt;
&lt;p&gt;
6) Finally click the down arrow on the Rs Report Info and select Connections, Consumes
a row from, and select Rs Explorer. This allows the web part to display the report
information.
&lt;/p&gt;
&lt;p&gt;
You should now be able to select a report and have all the other parts display the
correct information. Changing the parameter should change the report. You should also
be able to export the report using the export webpart. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://files.bryantlikes.com/Images/o_connected.gif" /&gt;
&lt;/p&gt;
&lt;p&gt;
I hope you like the web parts! If you find bugs please &lt;a href="http://www.gotdotnet.com/community/workspaces/BugList.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1"&gt;report
them&lt;/a&gt; on the workspace and if you would like to add features to the project please &lt;a href="http://www.gotdotnet.com/community/workspaces/applyjoin.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1"&gt;apply
to join&lt;/a&gt; the workspace. 
&lt;/p&gt;
&lt;p&gt;
Cheers!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=628" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,628.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=627</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,627.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,627.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=627</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just posted the CAB file that is from the RsReportInfo WebPart that I demonstrated
in the first Report Services WebParts article to the <a href="http://workspaces.gotdotnet.com/rswebparts">RsWebParts
workspace</a>. If you read the article but didn't feel like writing out all the code
you can now download and install the CAB file to try it out. I'll be posted most of
the code for the other parts during this week and I will post the full CAB file once
I get that done.
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=627" />
      </body>
      <title>Reporting Services WebParts CAB File </title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,627.aspx</guid>
      <link>http://bryantlikes.com/ReportingServicesWebPartsCABFile.aspx</link>
      <pubDate>Wed, 26 May 2004 17:49:00 GMT</pubDate>
      <description>&lt;p&gt;
I just posted the CAB file that is from the RsReportInfo WebPart that I demonstrated
in the first Report Services WebParts article to the &lt;a href="http://workspaces.gotdotnet.com/rswebparts"&gt;RsWebParts
workspace&lt;/a&gt;. If you read the article but didn't feel like writing out all the code
you can now download and install the CAB file to try it out. I'll be posted most of
the code for the other parts during this week and I will post the full CAB file once
I get that done.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=627" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,627.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=623</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,623.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,623.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=623</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well I'm back from Tech-Ed USA (already). My work only gave me the first two days
off since I'm currently pretty busy. It was great to meet everyone. I spent a lot
of time in the Data Cabana and that was by far the best part of the conference. I'm
always amazed at how easy it is to talk to all the SQL Server/Data Access people (MVPs
and MS). They are more than happy to answer any and every question and they do a great
job at it. I'll post more about some of the things I learned at Tech-Ed later this
week.
</p>
        <p>
There is a new <a href="http://msdn.microsoft.com/xml/default.aspx?pull=/library/en-us/dnsql90/html/sql2k5xml.asp">SQL
Server 2005 XML article</a> up on the <a href="http://msdn.microsoft.com/XML/">XML
Developer Center</a>. Take a look. It is worth a read. [via <a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=b4b7ae44-6e6e-4393-a91a-e0b17ff9715e">Dare</a>]. 
</p>
        <p>
While driving home from San Diego (I live in Los Angeles) I was thinking about my
Reporting Services WebParts articles that I'm working on. I decided that I would probably
get more done by sharing the code with a GotDotNet Workspace. So this morning I created
the <a href="http://www.gotdotnet.com/Community/Workspaces/workspace.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1">RsWebParts
workspace</a> and I'm planning on adding the source files this week. Hopefully the
parts and the next article about them will be available by this weekend. If you want
to collaborate on them with me apply to join the workspace and I'll be happy to add
you.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=623" />
      </body>
      <title>Back from Tech-Ed, SQL Server 2005 XML, and the RsWebParts Workspace</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,623.aspx</guid>
      <link>http://bryantlikes.com/BackFromTechEdSQLServer2005XMLAndTheRsWebPartsWorkspace.aspx</link>
      <pubDate>Wed, 26 May 2004 09:59:00 GMT</pubDate>
      <description>&lt;p&gt;
Well I'm back from Tech-Ed USA (already). My work only gave me the first two days
off since I'm currently pretty busy. It was great to meet everyone. I spent a lot
of time in the Data Cabana and that was by far the best part of the conference. I'm
always amazed at how easy it is to talk to all the SQL Server/Data Access people (MVPs
and MS). They are more than happy to answer any and every question and they do a great
job at it. I'll post more about some of the things I learned at Tech-Ed later this
week.
&lt;/p&gt;
&lt;p&gt;
There is a new &lt;a href="http://msdn.microsoft.com/xml/default.aspx?pull=/library/en-us/dnsql90/html/sql2k5xml.asp"&gt;SQL
Server 2005 XML article&lt;/a&gt; up on the &lt;a href="http://msdn.microsoft.com/XML/"&gt;XML
Developer Center&lt;/a&gt;. Take a look. It is worth a read. [via &lt;a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=b4b7ae44-6e6e-4393-a91a-e0b17ff9715e"&gt;Dare&lt;/a&gt;]. 
&lt;/p&gt;
&lt;p&gt;
While driving home from San Diego (I live in Los Angeles) I was thinking about my
Reporting Services WebParts articles that I'm working on. I decided that I would probably
get more done by sharing the code with a GotDotNet Workspace. So this morning I created
the &lt;a href="http://www.gotdotnet.com/Community/Workspaces/workspace.aspx?id=176e78a1-4d90-4860-9bd8-da93dffa8fd1"&gt;RsWebParts
workspace&lt;/a&gt; and I'm planning on adding the source files this week. Hopefully the
parts and the next article about them will be available by this weekend. If you want
to collaborate on them with me apply to join the workspace and I'll be happy to add
you.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=623" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,623.aspx</comments>
      <category>Sql and Xml</category>
      <category>Reporting Services</category>
      <category>SharePoint</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=594</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,594.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,594.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=594</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just posted another article that details how to futher extend SharePoint using the
global.asax file. This article shows how to create a who's online webpart using the
methods from the first article.
</p>
        <p>
          <a href="http://blogs.sqlxml.org/bryantlikes/articles/592.aspx">Extending SharePoint
using Global.asax - Who's Online</a>
        </p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=594" />
      </body>
      <title>Who's Online</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,594.aspx</guid>
      <link>http://bryantlikes.com/WhosOnline.aspx</link>
      <pubDate>Thu, 13 May 2004 14:31:00 GMT</pubDate>
      <description>&lt;p&gt;
I just posted another article that details how to futher extend SharePoint using the
global.asax file. This article shows how to create a who's online webpart using the
methods from the first article.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.sqlxml.org/bryantlikes/articles/592.aspx"&gt;Extending SharePoint
using Global.asax - Who's Online&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=594" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,594.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=592</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,592.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,592.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=592</wfw:commentRss>
      <slash:comments>32</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In my <a href="/bryantlikes/articles/583.aspx">last article</a> on this subject I
explained how to add some basic page tracking to SharePoint. In this article I will
expand on this by adding a Who's Online WebPart. This WebPart will show who is currently
online.
</p>
        <p>
First we need to create the ActiveUsers table which will keep track of the users that
are currently online. We also need to modify the Hit_Add stored procedure to update
the ActiveUsers table. Finally, we need to create a very simple stored procedure to
get the list of users that are currently online. Below is the SQL script for these
tasks.
</p>
        <p>
          <divre>
          </divre>
create table ActiveUsers ( UserID varchar(50) not null, LastHit datetime not null,
LastUrl varchar(256) not null, constraint PK_ActiveSessions primary key clustered
( UserID ) ) go alter proc Hit_Add ( @Url varchar(256), @UserID varchar(50) ) as --
this needs to be changed to the userID -- that your site runs as if (@UserID = 'DOMAIN\PROCESSID')
return insert into Hits values (@Url, @UserID, getdate()) delete ActiveUsers where
UserID = @UserID or datediff(mi, LastHit, getdate()) &gt; 30 -- minutes insert into
ActiveUsers values (@UserID, getdate(), @Url) go create proc ActiveUsers_Get as select
UserID, LastHit, LastUrl, datediff(mi, LastHit, getdate()) Age from ActiveUsers go 
</p>
        <pre>
        </pre>
        <p>
That is all there is to tracking the users that are currently online. You can adjust
the time by changing the minutes in the delete statement. Next we need to create our
WebPart. The WebPart I'm going to show you is somewhat simple and just displays a
list of users. You can easily add more functionality to it if you want. Below is the
code for the Who's Online WebPart. 
</p>
        <p>
          <divre>
          </divre>
using System; using System.ComponentModel; using System.Data; using System.Data.SqlClient;
using System.Web.UI; using System.Web.UI.WebControls; using System.Xml.Serialization;
using Microsoft.SharePoint; using Microsoft.SharePoint.Utilities; using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages; namespace Bml.Stats.WebParts { /// 
<summary></summary>
/// Description for ActiveUsers. /// [ToolboxData("&lt;{0}:ActiveUsers runat=server&gt;"),
XmlRoot(Namespace="SPSStats")] public class ActiveUsers : Microsoft.SharePoint.WebPartPages.WebPart
{ protected override void RenderWebPart(HtmlTextWriter output) { output.AddAttribute(HtmlTextWriterAttribute.Width,
"100%"); output.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0"); output.AddAttribute(HtmlTextWriterAttribute.Cellspacing,
"0"); output.RenderBeginTag(HtmlTextWriterTag.Table); output.RenderBeginTag(HtmlTextWriterTag.Tr);
output.AddAttribute(HtmlTextWriterAttribute.Width, "100%"); output.AddAttribute(HtmlTextWriterAttribute.Valign,
"top"); output.RenderBeginTag(HtmlTextWriterTag.Td); output.AddAttribute(HtmlTextWriterAttribute.Class,
"ms-ls"); output.RenderBeginTag(HtmlTextWriterTag.Table); AddUserRows(output); output.RenderEndTag();
// table output.RenderEndTag(); // td output.RenderEndTag(); // tr output.RenderEndTag();
// table } private void AddUserRows(HtmlTextWriter output) { try { SPWeb web = SPControl.GetContextWeb(Context);
using (SqlConnection cn = new SqlConnection("[Your Connection]")) { cn.Open(); SqlCommand
cmd = new SqlCommand(); cmd.Connection = cn; cmd.CommandText = "ActiveUsers_Get";
cmd.CommandType = CommandType.StoredProcedure; SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (dr.Read()) { string userName = (string)dr["UserID"]; output.RenderBeginTag(HtmlTextWriterTag.Tr);
output.AddAttribute(HtmlTextWriterAttribute.Class, "ms-lsmin ms-vb"); output.AddAttribute(HtmlTextWriterAttribute.Valign,
"top"); output.RenderBeginTag(HtmlTextWriterTag.Td); output.AddAttribute(HtmlTextWriterAttribute.Align,
"absbottom"); output.AddAttribute(HtmlTextWriterAttribute.Src, "/_layouts/images/perusr.gif");
output.RenderBeginTag(HtmlTextWriterTag.Img); output.RenderEndTag(); // img output.Write(" {0}",
SPUtility.GetFullNameFromLogin(web.Site, userName)); output.RenderEndTag(); // td
output.RenderEndTag(); // tr } dr.Close(); cn.Close(); } } catch (Exception exc) {
output.Write(exc.Message); } } } } 
</p>
        <pre>
        </pre>
        <p>
Once you've compiled the WebPart and added it to the server you will need to make
one change to your web.config file before the part will work. You will need to change
the trust level from WSS_Minimal to WSS_Medium. This will allow the part to use the
SQL Connection which isn't allowed in the minimal trust scheme. After you add it to
a page you should see something very much like the following image.
</p>
        <p>
          <img height="60" width="217" src="http://files.bryantlikes.com/Images/o_WhosOnline.gif" />
        </p>
        <p>
As I wrote this WebPart I thought of a lot of other uses for the hits data such as
a Favorites list (based on urls with the most hits), recently viewed pages, and others.
There seems to be a lot you can do once you start collecting this data.
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=592" />
      </body>
      <title>Extending SharePoint using Global.asax - Who's Online</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,592.aspx</guid>
      <link>http://bryantlikes.com/ExtendingSharePointUsingGlobalasaxWhosOnline.aspx</link>
      <pubDate>Thu, 13 May 2004 14:28:00 GMT</pubDate>
      <description>&lt;p&gt;
In my &lt;a href="/bryantlikes/articles/583.aspx"&gt;last article&lt;/a&gt; on this subject I
explained how to add some basic page tracking to SharePoint. In this article I will
expand on this by adding a Who's Online WebPart. This WebPart will show who is currently
online.
&lt;/p&gt;
&lt;p&gt;
First we need to create the ActiveUsers table which will keep track of the users that
are currently online. We also need to modify the Hit_Add stored procedure to update
the ActiveUsers table. Finally, we need to create a very simple stored procedure to
get the list of users that are currently online. Below is the SQL script for these
tasks.
&lt;/p&gt;
&lt;p&gt;
&lt;divre&gt;
&lt;/divre&gt;
create table ActiveUsers ( UserID varchar(50) not null, LastHit datetime not null,
LastUrl varchar(256) not null, constraint PK_ActiveSessions primary key clustered
( UserID ) ) go alter proc Hit_Add ( @Url varchar(256), @UserID varchar(50) ) as --
this needs to be changed to the userID -- that your site runs as if (@UserID = 'DOMAIN\PROCESSID')
return insert into Hits values (@Url, @UserID, getdate()) delete ActiveUsers where
UserID = @UserID or datediff(mi, LastHit, getdate()) &amp;gt; 30 -- minutes insert into
ActiveUsers values (@UserID, getdate(), @Url) go create proc ActiveUsers_Get as select
UserID, LastHit, LastUrl, datediff(mi, LastHit, getdate()) Age from ActiveUsers go &lt;pre&gt;&lt;/pre&gt;
&gt;
&lt;p&gt;
That is all there is to tracking the users that are currently online. You can adjust
the time by changing the minutes in the delete statement. Next we need to create our
WebPart. The WebPart I'm going to show you is somewhat simple and just displays a
list of users. You can easily add more functionality to it if you want. Below is the
code for the Who's Online WebPart. 
&lt;/p&gt;
&lt;p&gt;
&lt;divre&gt;
&lt;/divre&gt;
using System; using System.ComponentModel; using System.Data; using System.Data.SqlClient;
using System.Web.UI; using System.Web.UI.WebControls; using System.Xml.Serialization;
using Microsoft.SharePoint; using Microsoft.SharePoint.Utilities; using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages; namespace Bml.Stats.WebParts { /// 
&lt;summary&gt;
&lt;/summary&gt;
/// Description for ActiveUsers. /// [ToolboxData("&amp;lt;{0}:ActiveUsers runat=server&amp;gt;"),
XmlRoot(Namespace="SPSStats")] public class ActiveUsers : Microsoft.SharePoint.WebPartPages.WebPart
{ protected override void RenderWebPart(HtmlTextWriter output) { output.AddAttribute(HtmlTextWriterAttribute.Width,
"100%"); output.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0"); output.AddAttribute(HtmlTextWriterAttribute.Cellspacing,
"0"); output.RenderBeginTag(HtmlTextWriterTag.Table); output.RenderBeginTag(HtmlTextWriterTag.Tr);
output.AddAttribute(HtmlTextWriterAttribute.Width, "100%"); output.AddAttribute(HtmlTextWriterAttribute.Valign,
"top"); output.RenderBeginTag(HtmlTextWriterTag.Td); output.AddAttribute(HtmlTextWriterAttribute.Class,
"ms-ls"); output.RenderBeginTag(HtmlTextWriterTag.Table); AddUserRows(output); output.RenderEndTag();
// table output.RenderEndTag(); // td output.RenderEndTag(); // tr output.RenderEndTag();
// table } private void AddUserRows(HtmlTextWriter output) { try { SPWeb web = SPControl.GetContextWeb(Context);
using (SqlConnection cn = new SqlConnection("[Your Connection]")) { cn.Open(); SqlCommand
cmd = new SqlCommand(); cmd.Connection = cn; cmd.CommandText = "ActiveUsers_Get";
cmd.CommandType = CommandType.StoredProcedure; SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (dr.Read()) { string userName = (string)dr["UserID"]; output.RenderBeginTag(HtmlTextWriterTag.Tr);
output.AddAttribute(HtmlTextWriterAttribute.Class, "ms-lsmin ms-vb"); output.AddAttribute(HtmlTextWriterAttribute.Valign,
"top"); output.RenderBeginTag(HtmlTextWriterTag.Td); output.AddAttribute(HtmlTextWriterAttribute.Align,
"absbottom"); output.AddAttribute(HtmlTextWriterAttribute.Src, "/_layouts/images/perusr.gif");
output.RenderBeginTag(HtmlTextWriterTag.Img); output.RenderEndTag(); // img output.Write("&amp;nbsp;{0}",
SPUtility.GetFullNameFromLogin(web.Site, userName)); output.RenderEndTag(); // td
output.RenderEndTag(); // tr } dr.Close(); cn.Close(); } } catch (Exception exc) {
output.Write(exc.Message); } } } } &lt;pre&gt;&lt;/pre&gt;
&gt;
&lt;p&gt;
Once you've compiled the WebPart and added it to the server you will need to make
one change to your web.config file before the part will work. You will need to change
the trust level from WSS_Minimal to WSS_Medium. This will allow the part to use the
SQL Connection which isn't allowed in the minimal trust scheme. After you add it to
a page you should see something very much like the following image.
&lt;/p&gt;
&lt;p&gt;
&lt;img height="60" width="217" src="http://files.bryantlikes.com/Images/o_WhosOnline.gif" /&gt;
&lt;/p&gt;
&lt;p&gt;
As I wrote this WebPart I thought of a lot of other uses for the hits data such as
a Favorites list (based on urls with the most hits), recently viewed pages, and others.
There seems to be a lot you can do once you start collecting this data.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=592" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,592.aspx</comments>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=590</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,590.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,590.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=590</wfw:commentRss>
      <title>Reporting Services WebParts - Part II</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,590.aspx</guid>
      <link>http://bryantlikes.com/ReportingServicesWebPartsPartII.aspx</link>
      <pubDate>Wed, 12 May 2004 11:12:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;i&gt;This articles builds on &lt;a href="http://blogs.sqlxml.org/bryantlikes/articles/549.aspx"&gt;Part
I&lt;/a&gt; of the series where we developed a simple Reporting Services (RS) WebPart that
displayed information about a RS Report. In this article we will look at building
two more WebParts: the RS Server Explorer and the RS Report Viewer. We will also explore
how to connect these parts together.&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
Before we create the first webparts, we should really create a new base class that
we can use to put all the common functionality in. This will allow us to not repeat
the same sections of code over and over. Below is the C# code for the RsBasePart.cs
that you should add to your project. For now it just uses the ToolPart code to show
the ToolPart on the top and it loads the common rs.js script file.
&lt;/p&gt;
&lt;p&gt;
&lt;pre&gt;
namespace Bml.RsWebParts
{
 &lt;font color=#0000ff&gt;public abstract class&lt;/font&gt; RsBasePart
: WebPart { &lt;font color=#0000ff&gt;public override&lt;/font&gt; ToolPart[] GetToolParts() {
ToolPart[] toolparts = &lt;font color=#0000ff&gt;new&lt;/font&gt; ToolPart[2]; WebPartToolPart
wptp = &lt;font color=#0000ff&gt;new&lt;/font&gt; WebPartToolPart(); CustomPropertyToolPart custom
= &lt;font color=#0000ff&gt;new&lt;/font&gt; CustomPropertyToolPart(); toolparts[1] = wptp; toolparts[0]
= custom; custom.Expand(0); &lt;font color=#0000ff&gt;return&lt;/font&gt; toolparts; } &lt;font color=#0000ff&gt;protected
override void&lt;/font&gt; OnLoad(EventArgs e) { Page.RegisterClientScriptBlock("rs", Globals.GetResourceScriptTags("rs.js")); &lt;font color=#0000ff&gt;base&lt;/font&gt;.OnLoad
(e); } } } &lt;/pre&gt;
&gt;
&lt;p&gt;
You can now change the RsReportInfo WebPart to inherit from this base class by changing
the class declaration line to read:
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#0000ff&gt;public class&lt;/font&gt; RsReportInfo : RsBasePart 
&lt;/p&gt;
&lt;p&gt;
The first WebPart we will create is what I call the RS Server Explorer WebPart. This
WebPart can be used to browse the RS Server and select a Report to display in the
RS Report Viewer WebPart (which we will create next). Just like the first WebPart
we created, this WebPart will use a mixture of client side and server side programming.
To get started, open your project and select Add New WebPart and name it RsExplorer.cs.
Next delete all the code in the body of the RsExplorer class. The first thing we need
to do is a property that we will use to configure this WebPart. This is shown below
along with the class declaration:
&lt;/p&gt;
&lt;p&gt;
&lt;pre&gt;&lt;{0}:RsExplorer runat=server&gt;{0}:RsExplorer&gt;
namespace Bml.RsWebParts
{
 [DefaultProperty("Text"),
  ToolboxData(""),
  XmlRoot(Namespace="Bml.RsWebParts")]
 &lt;font color=#0000ff&gt;public
class&lt;/font&gt; RsExplorer : RsBasePart { &lt;font color=#0000ff&gt;string&lt;/font&gt; _serverUrl
= String.Empty; [Browsable(true), Category("Reporting Services"), DefaultValue(""),
WebPartStorage(Storage.Shared), FriendlyName("Server URL"), Description("Server url
such as http://localhost/reportserver")] &lt;font color=#0000ff&gt;public&lt;/font&gt; string
ServerUrl { &lt;font color=#0000ff&gt;get&lt;/font&gt; {&lt;font color=#0000ff&gt;return&lt;/font&gt; _serverUrl;} &lt;font color=#0000ff&gt;set&lt;/font&gt; {_serverUrl
= &lt;font color=#0000ff&gt;value&lt;/font&gt;;} } } } &lt;/pre&gt;
&gt;
&lt;p&gt;
So now we can set the server url of the server that we want to explore. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=590" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,590.aspx</comments>
      <category>Reporting Services</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://bryantlikes.com/Trackback.aspx?guid=587</trackback:ping>
      <pingback:server>http://bryantlikes.com/pingback.aspx</pingback:server>
      <pingback:target>http://bryantlikes.com/PermaLink,guid,587.aspx</pingback:target>
      <dc:creator>Bryant Likes</dc:creator>
      <wfw:comment>http://bryantlikes.com/CommentView,guid,587.aspx</wfw:comment>
      <wfw:commentRss>http://bryantlikes.com/SyndicationService.asmx/GetEntryCommentsRss?guid=587</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just posted a short article on <a href="http://blogs.sqlxml.org/bryantlikes/articles/583.aspx">Extending
SharePoint using Global.asax</a>. I'm very excited about using this technique in order
to accomplish some things that I was unable to accomplish with WebParts and Custom
pages. Take a look and let me know what you think!
</p>
        <img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=587" />
      </body>
      <title>Global.asax and SharePoint</title>
      <guid isPermaLink="false">http://bryantlikes.com/PermaLink,guid,587.aspx</guid>
      <link>http://bryantlikes.com/GlobalasaxAndSharePoint.aspx</link>
      <pubDate>Wed, 12 May 2004 10:19:00 GMT</pubDate>
      <description>&lt;p&gt;
I just posted a short article on &lt;a href="http://blogs.sqlxml.org/bryantlikes/articles/583.aspx"&gt;Extending
SharePoint using Global.asax&lt;/a&gt;. I'm very excited about using this technique in order
to accomplish some things that I was unable to accomplish with WebParts and Custom
pages. Take a look and let me know what you think!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bryantlikes.com/aggbug.ashx?id=587" /&gt;</description>
      <comments>http://bryantlikes.com/CommentView,guid,587.aspx</comments>
      <category>SharePoint</category>
    </item>
  </channel>
</rss>