<feed version="0.3" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://purl.org/atom/ns#" xml:lang="en-US"><title>Teun.ToString()</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/default.aspx" /><tagline type="text/html">by Teun Duynstee [Macaw]</tagline><id>http://dotnetjunkies.com/WebLog/teund/default.aspx</id><author><url>http://dotnetjunkies.com/WebLog/teund/default.aspx</url></author><generator url="http://communityserver.org" version="1.0.1.50214">Community Server</generator><modified>2005-06-10T15:40:00Z</modified><entry><title>Enhanced version of Reporting Services Extension for Sharepoint</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2006/03/03/135730.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:135730</id><created>2006-03-03T10:20:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;This is a reminder: I post my blog postings on a new location. My latest post is &lt;A href="http://www.teuntostring.net/blog/2006/03/update-reporting-over-sharepoint-lists.html"&gt;about the reporting services extension for Sharepoint that I previously wrote about&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I have moved my weblog. The new location is: &lt;A href="http://www.teuntostring.net/blog/index.html"&gt;http://www.teuntostring.net&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;You can point your feed readers to &lt;A href="http://www.teuntostring.net/blog/atom.xml"&gt;http://www.teuntostring.net/blog/atom.xml&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=135730" width="1" height="1"&gt;</content><slash:comments>4</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=135730</wfw:commentRss></entry><entry><title>New version Gantt chart web part</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2006/02/01/134989.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:134989</id><created>2006-02-01T04:35:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;This is a reminder: I post my blog postings on a new location. My latest post is about &lt;A href="http://www.teuntostring.net/blog/2006/02/new-version-of-gantt-part-group-by-and.html"&gt;the new version of the Gantt chart web part I just released&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I have moved my weblog. The new location is: &lt;A href="http://www.teuntostring.net/blog/index.html"&gt;http://www.teuntostring.net&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;You can point your feed readers to &lt;A href="http://www.teuntostring.net/blog/atom.xml"&gt;http://www.teuntostring.net/blog/atom.xml&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or to &lt;A href="http://www.2rss.com/atom2rss.php?atom=http://www.teuntostring.net/blog/atom.xml"&gt;http://www.2rss.com/atom2rss.php?atom=http://www.teuntostring.net/blog/atom.xml&lt;/A&gt;&amp;nbsp;if your reader does not support Atom feeds.&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=134989" width="1" height="1"&gt;</content><slash:comments>117</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=134989</wfw:commentRss></entry><entry><title>This weblog has been moved</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2006/01/17/134763.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:134763</id><created>2006-01-16T20:26:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;I have moved my weblog. The new location is: &lt;A href="http://www.teuntostring.net/blog/index.html"&gt;http://www.teuntostring.net&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;You can point your feed readers to &lt;A href="http://www.teuntostring.net/blog/atom.xml"&gt;http://www.teuntostring.net/blog/atom.xml&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or to &lt;A href="http://www.2rss.com/atom2rss.php?atom=http://www.teuntostring.net/blog/atom.xml"&gt;http://www.2rss.com/atom2rss.php?atom=http://www.teuntostring.net/blog/atom.xml&lt;/A&gt;&amp;nbsp;if your reader does not support Atom feeds.&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=134763" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=134763</wfw:commentRss></entry><entry><title>Why I decided to move my weblog away from DotNetJunkies</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2006/01/17/Goodbye.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:134761</id><created>2006-01-16T20:05:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;It's about a year and a half&amp;nbsp;ago now that I started my blog. Back then, I chose for hosting it at DotNetJunkies for a number of reasons:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;I wanted my blog to be part of a larger community of development oriented blogs 
&lt;LI&gt;I wanted a full blown weblog engine, but not host my own Windows web server 
&lt;LI&gt;I liked the .Text engine&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Lately, I became more and more uneasy with the services of DotNetJunkies. I have always really appreciated the free service and I understand that the bills must be paid, but I feel that the advertisements that they insert in my weblog pages are too intrusive and (this is the most important point) they slow down the pages considerably. &lt;/P&gt;
&lt;P&gt;Since the .Text engine was replaced by CommunityServer, the deal for me as a content provider has become worse. In the migration, most of the comments on my pages where lost. The usability of the admin pages has decreased, the engine rips my HTML apart and removes a lot of extra mark-up that I wanted to add. What bothered me most was that there is &lt;a href="http://dotnetjunkies.com/WebLog/teund/archive/2005/08/15/131953.aspx"&gt;no good way left to show source code&lt;/A&gt; (especially source code containing many angle brackets as do HTML and XML). The final push came from &lt;A href="http://www.useit.com/alertbox/weblogs.html"&gt;this article by Jacob Nielsen&lt;/A&gt;. Especially point number ten about owning your own domain name. I decided that I really want to own the domain name of my blog. Most visitors come in via Google anyway, so being part of the DotNetJunkies community is not that valuable after all.&lt;/P&gt;
&lt;P&gt;Soooo, I registered the &lt;A href="http://www.teuntostring.net"&gt;TeunToString.net &lt;/A&gt;domain and am now using Blogger to post my messages there and I must say: Blogger has come a long way. It is very mature and now provides most of the functionalities of a PHP or ASP.NET based engine, but using only static HTML on your page (which rocks performance-wise). I will keep all of the content in the DotNetJunkies blog online so people who made bookmarks can still use them. I will also keep posting small reminders to the blog when I post a new article on the new one.&lt;/P&gt;
&lt;P&gt;Lots of thanks to DotNetJunkies for the provided free service. I really appreciated it and I am sure that you did the .NET development community a big favor. I'm moving on now and have to pay for my hosting. &amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=134761" width="1" height="1"&gt;</content><slash:comments>3</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=134761</wfw:commentRss></entry><entry><title>A web part for rendering Gantt charts</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2006/01/10/Gantt_chart_webpart.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:134664</id><created>2006-01-10T01:07:00Z</created><content type="text/html" mode="escaped">&lt;blockquote&gt;&lt;strong&gt;Notice: a newer version of this web part has been published. &lt;A href="http://www.teuntostring.net/blog/2006/02/new-version-of-gantt-part-group-by-and.html"&gt;Read and download here&lt;/A&gt;.&lt;/strong&gt;&lt;/blockquote&gt;
&lt;P&gt;&lt;a href="http://dotnetjunkies.com/WebLog/teund/archive/2005/12/08/134212.aspx"&gt;I&amp;nbsp;promised a month ago&lt;/A&gt; that I would post a web part for charting WSS data into a Gantt chart. Well, here it is. It looks somewhat like this:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://www.xs4all.nl/~teund/weblogs/images/gantt-view.jpg"&gt;&lt;/P&gt;
&lt;P&gt;The part allows you to specify a list and view to render. You select the fields from the view that will indicate the start and end date of an item. The third required field is the title field. Because the part works with view fields, you can also use calculated fields to specify the start date, end date or title of the item.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://www.xs4all.nl/~teund/weblogs/images/gantt-edit.png"&gt; &lt;/P&gt;
&lt;P&gt;Because I was too lazy to create a custom designer, you have to enter the names of the list, view and fields in a textbox. When you specify incorrect values, the part will show you the available options in it's error message.&lt;/P&gt;
&lt;P&gt;So you want to use it? I put up a zip file containing both the sources and binaries. I haven't made an installer, but I suppose that most of you know what to do with a dll and dwp file. In your web.config you'll have to add a line for trusting the part like this:&lt;/P&gt;&lt;FONT face="Courier New"&gt;‹SafeControl Assembly="Duynstee.GanttChart.WebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9a66e9ace203d5f7" Namespace="Duynstee.GanttChart.WebPart" TypeName="*" Safe="True" /&amp;gt; &lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;The web part is actually more of a sample of using the underlying GanttCharting library. This will render VML that can be directly included into the HTML (IE only!). The charting library has some features that are not used by the web part, but that you may want to build on: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;aggregation: each GanttItem can have a collection of sub-items. Items with sub-items will be rendered accordingly (&lt;a href="http://dotnetjunkies.com/WebLog/teund/archive/2005/12/08/134212.aspx"&gt;see sample in this post&lt;/A&gt;) 
&lt;LI&gt;links: each item has a LinkUrl property that will be placed on the item. You could have the item link to the edit page of the item 
&lt;LI&gt;color: you can color each item as you wish&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://www.xs4all.nl/~teund/weblogs/vml/Duynstee.GanttChart.WebPart.zip"&gt;Download here&lt;/A&gt;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=134664" width="1" height="1"&gt;</content><slash:comments>232</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=134664</wfw:commentRss></entry><entry><title>Work in progress: rendering WSS lists to a VML based Gantt chart</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2005/12/08/134212.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:134212</id><created>2005-12-08T04:03:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;It has been a long time since my last posting. It has been a busy period and the stuff I was working on wasn't suitable or ready enough to blog about. But I'm back now!&lt;/P&gt;
&lt;P&gt;This post presents a sample solution for rendering a list of items with start dates and end dates into a Gantt chart format using only HTML and VML. VML is the vector based graphics language supported by MS Internet Explorer. I know: not cross-browser, but it suited my needs. Once SVG is well supported, minor changes would be necessary to port it to SVG.&lt;/P&gt;
&lt;P&gt;I am working on a web part that can render the contents of a WSS list as a Gantt chart more or less like this (click the image for a real VML sample). &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.xs4all.nl/~teund/weblogs/vml/VmlGantt.htm"&gt;&lt;IMG src="http://www.xs4all.nl/~teund/weblogs/vml/samplegantt.gif"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The part is not yet fully functional, but it will allow you to specify a list and view from your team site. Then by specifying which fields represent the start and end dates of tasks, the part has all necessary iformation for rendering the chart. The part that I haven't figured out yet is the grouping and nesting of tasks. As you can see in the sample, the rendering of hierarchical tasks is working, but the nasty part is to follow the groupings as specified in the WSS view.&lt;/P&gt;
&lt;P&gt;Example: If you have a list with tasks, it should be possible to define a view that sorts the items and groups them first by project phase, then by assigned team member. The Gantt chart should be able to follow these groupings and display them in the chart. The grouping bar could then be used to toggle the visibility of underlying taks.&lt;/P&gt;
&lt;P&gt;The part is not mature enough to post the code, but I will do so within a few weeks. I might even write an article about the inner workings.&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=134212" width="1" height="1"&gt;</content><slash:comments>170</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=134212</wfw:commentRss></entry><entry><title>Aaaargh, I just want to include some VML in my webpart, but I can't set the namespace!</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2005/10/18/133290.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:133290</id><created>2005-10-18T04:00:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;I'm trying to create a web part that will display some data in a nice graphic way and I figured that &lt;A href="http://www.w3.org/TR/1998/NOTE-VML-19980513"&gt;VML&lt;/A&gt; would fit my bill. It's not cross-browser, but so is SharePoint, so what the heck. After all, &lt;A href="http://en.wikipedia.org/wiki/Google_Maps"&gt;Google Maps&lt;/A&gt; does the same, so I guess &lt;A href="http://en.wikipedia.org/wiki/VML"&gt;it's not off-limits anymore&lt;/A&gt; :).&lt;/P&gt;
&lt;P&gt;VML is just a little bit of XML in the namespace &lt;FONT face="Courier New"&gt;urn:schemas-microsoft-com:vml&lt;/FONT&gt;. Along the lines of HTML extensibility as suggested in the XHTML recommendations. Problem here is that the namespace must be declared. In all of the VML samples, the VML namespace is declared on the HTML tag. If you do that, it works fine. But as I am building a web part and not the whole page, I cannot change the HTML tag of the page. So I thought I would just set the xmlns:v attribute on the container element for my shapes, but this doesn't seem to work. It requires the &lt;FONT face="Courier New"&gt;xmlns&lt;/FONT&gt; attribute to be on the HTML tag and nowhere else. I also tried setting the namespace from script, but without success. &lt;/P&gt;
&lt;P&gt;Anyone has any suggestions/tips on how to tackle this? I am pretty sure that I've seen web parts using VML before.&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=133290" width="1" height="1"&gt;</content><slash:comments>4</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=133290</wfw:commentRss></entry><entry><title>Watch out for the ‹ and the &amp;lt;</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2005/08/15/131953.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:131953</id><created>2005-08-15T03:52:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;In some of my postings, I present you out there with code. Until recently, I used a very nifty client-side code formatting solution to make it look really pretty. Some time ago, this stopped working, because the good people at DotNetJunkies.com upgraded from .Text to CommunityServer. I can see why this is necessary, but it makes my life a lot more complicated in certain ways. The syntax coloring solution uses TEXTAREA tags and client-side script. To prevent Cross-Site-Scripting attacks, CS allows only certain HTML tags in postings and strips all unexpected attributes as well. Exit code. &lt;/P&gt;
&lt;P&gt;So, I decided to go the official XHTML way and place my code inside ‹XMP&amp;gt; tags. This works fine, but when I want to show XML code to you, the reader, it was still stripped away, because CS decides that it might be malicious HTML. Again, I see why, but still... what a pain. &lt;a href="http://dotnetjunkies.com/WebLog/teund/articles/ReportingSharePointLists.aspx"&gt;So my latest trick&lt;/A&gt; for showing you code is basically a canonicalisation attack: I change the [first character of an XML tag] in the code for a ‹. It is Unicode 2039 (Alt + 0139) and looks like an angle bracket, but isn't. now when you copy code from my page, it will not work, because it may look like XML, but it isn't. Sorry for that.&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=131953" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=131953</wfw:commentRss></entry><entry><title>Found it: IField has become IWebPartField</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2005/08/03/131712.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:131712</id><created>2005-08-02T23:51:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;&lt;A href="http://dotnetjunkies.com/WebLog/teund/archive/2005/07/26/IFieldRemoved.aspx"&gt;Recently, I posted a question&lt;/A&gt; about what happened to the IField, IRow and ITable interfaces that were available in the System.Web.UI.WebControls.WebParts namespace in .NET beta1 and the CTPs. I found it: IField has become &lt;A href="http://msdn2.microsoft.com/library/ms156977(en-us,vs.80).aspx"&gt;IWebPartField&lt;/A&gt;, IRow became IWebPartRow, etc...&lt;/P&gt;
&lt;P&gt;Interestingly, you are now supposed to pass in a &lt;A href="http://msdn2.microsoft.com/library/ms156949(en-us,vs.80).aspx"&gt;delegate&lt;/A&gt; when you retrieve the value from the connection provider. I suppose that this is a mechanism to alert the consumer of changes occurring after the retrieval of the value? Documentation is not available yet.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=131712" width="1" height="1"&gt;</content><slash:comments>64</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=131712</wfw:commentRss></entry><entry><title>On converting strings to numeric in French (or Dutch for that matter)</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2005/07/26/131498.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:131498</id><created>2005-07-26T04:45:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;&lt;SPAN&gt;I received some feedback on the &lt;a href="http://dotnetjunkies.com/WebLog/teund/articles/ReportingSharePointLists.aspx"&gt;Sharepoint extension article&lt;/A&gt; that I would like to share (I had to change &amp;lt; to [ in the code to get CommunityServer to display it):&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Hi, &lt;BR&gt;Thanks for sharing this great code. I encountered 2 problems and could find some workaround: &lt;BR&gt;1) Columns with a number data type would throw an exception on a French Machine due to the impossibility to convert xml number automatically because of the decimal sign (which is "," in french). I guess it may also be the case in other languages. I used this workaround : &lt;BR&gt;&lt;XMP&gt;if ( col.DataType == typeof(Single) ) 
  newRow[col] = XmlConvert.ToSingle(val); 
else 
  newRow[col] = val; 
&lt;/XMP&gt;2) GetListItems return data base on the default view if no view is specified. If the default view has some filter, you will collect a filtered list of items. I used this workaround: &lt;BR&gt;&lt;XMP&gt;XmlElement query = ListInfoNode.OwnerDocument.CreateElement("Query");
query.InnerXml ="[WHERE&gt;[GT&gt;[FIELDREF Name='\"ID\"' /&gt;[VALUE Type='\"Counter\"'&gt;0[/VALUE&gt;[/GT&gt;[/WHERE&gt;"; 
&lt;/XMP&gt;
&lt;P&gt;&lt;/P&gt;Frédéric LATOUR &lt;/BLOCKQUOTE&gt;
&lt;P&gt;About the second remark: that is a great trick, Frédéric! Thanks for sharing. &lt;/P&gt;
&lt;P&gt;Now about the converting of numerics in non-english cultures. I think that the XML returned by the Sharepoint web service is not using English or American formatting, but rather the InvariantCulture. Now rather than making different conversions for different types (have you considered Double, DateTime, etc...), I would prefer to let the framework do the figuring. I think that everything will work out fine if you set the CurrentCulture of the thread to CultureInfo.InvariantCulture while copying data from the XML to the DataRow. I haven't had the time to test yet, but give it a try:&lt;/P&gt;&lt;XMP&gt;System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; &lt;/XMP&gt;
&lt;P&gt;Don't forget to set your culture back to it's original setting.&lt;/P&gt;
&lt;P&gt;POSTSCRIPT:&lt;BR&gt;I have tested this situation now and it seems indeed to be solved by setting the current culture to InvariantCulture. Before the foreach loop (the one that copies fields from XML to the datatable), you insert this code:&lt;/P&gt;&lt;XMP&gt;System.Globalization.CultureInfo oldCulture = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
&lt;/XMP&gt;
&lt;P&gt;and after the loop, you set you preferred culture back:&lt;/P&gt;&lt;XMP&gt;System.Threading.Thread.CurrentThread.CurrentCulture = oldCulture;&lt;/XMP&gt;
&lt;P&gt;Ready!&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=131498" width="1" height="1"&gt;</content><slash:comments>3</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=131498</wfw:commentRss></entry><entry><title>Whatever happened to IField, IParameters, IRow, ITable?</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2005/07/26/IFieldRemoved.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:131497</id><created>2005-07-26T04:16:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;When you want to create connectable web parts in ASP.NET 2.0, the preferred way to pass information is by specifying an interface with one or more properties. You can read up on how it works in &lt;A href="http://www.carlosag.net/Articles/WebParts/connectionsTutorial.aspx"&gt;this article by Carlos Aguilar Mares&lt;/A&gt; (based on beta 1). The nice thing of using interfaces is that you can have an IStringValue interface that just returns a string value and have an IZipCode interface deriving from IStringValue without adding or overriding any members. Of course, a zip code is a string, but a string is not always a zip code. This way, you can use zip code providers to feed both zip code consumers and consumers of string values.&lt;/P&gt;
&lt;P&gt;To allow my connection providers to be connected to your connection consumers, they must be based upon the same interface for passing information. To make it easy for third party developers to connect to each others web parts, in beta 1 Microsoft&amp;nbsp;included a small number of very simple interfaces. The most basic of them all was IField, which allowed you to pass an object (any object).&amp;nbsp;They also included IParameters (set of name-value pairs), IRow (collecion of objects) and ITable (collection of isomorphic IRows). If your part does something very specific, you should specify your own interfaces, to make sure that only parts providing the right kind of info can connect to yours. But if you want your part to work with as many other parts as possible, you want to settle on a widely known interface, preferably from the framework.&lt;/P&gt;
&lt;P&gt;Now in beta 2, all of these basic interfaces seem to have disappeared. Why is that? You can easily create these interface yourself, of course, but my interface would then be different from yours and parts from different vendors could never connect (well, you could start writing connection&amp;nbsp;transformers for every combination, but that's &lt;A href="http://www.carlosag.net/Articles/WebParts/webPartsTransformers.aspx"&gt;another story&lt;/A&gt;).&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=131497" width="1" height="1"&gt;</content><slash:comments>2</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=131497</wfw:commentRss></entry><entry><title>How to filter the results from WSS in your report</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2005/06/15/121308.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:121308</id><created>2005-06-15T06:17:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;I received a question from a reader asking how you can set a filter on the items returned from a list. Suppose you want to show only the Defects with status Active or Issues with Impact &amp;gt; 3? We cannot set the where clause, as we don't have a SQL statement. The data extension presented in the article always returns all rows.&lt;/P&gt;
&lt;P&gt;Luckily, the Report Designer offers features to sort and filter the data returned before inserting it into the report. This is how to do it:&lt;/P&gt;
&lt;P&gt;1. In Report Designer (in VS.NET) open your report on the Data tab. Select the ... button next to the list of datasets:&lt;/P&gt;&lt;IMG src="http://www.xs4all.nl/~teund/weblogs/images/WSS_RS_Article/Filter_select1.png"&gt; 
&lt;P&gt;2. This will open the DataSet dialog. On the Filter tab, you can build expressions to filter the data. You can enter fixed values, but the expression builder will also help you to use global settings and passed parameters from the user in your filter.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://www.xs4all.nl/~teund/weblogs/images/WSS_RS_Article/Filter_select2.png"&gt; &lt;/P&gt;
&lt;P&gt;This dialog allows you to do many more things to your data, like adding calculated columns. &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rscreate/htm/rcr_creating_structure_data_v1_8jj5.asp"&gt;Check here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=121308" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=121308</wfw:commentRss></entry><entry><title>Setting CAS to use our Reporting Services data extension</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2005/06/14/121258.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:121258</id><created>2005-06-14T12:34:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;&lt;FONT size=2&gt;This post refers to my article on &lt;/FONT&gt;&lt;A href="http://dotnetjunkies.com/WebLog/teund/articles/ReportingSharePointLists.aspx"&gt;&lt;FONT size=2&gt;reporting with Reporting Services over WSS Lists&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The extension presented in the article works fine in the Report Designer in Visual Studio, but it turns out that deploying it to the server requires some extra work. A problem you will encounter is that when you try to access your report through the Reporting Services website, it will give you an error like this:&lt;/P&gt;
&lt;H1&gt;Reporting Services Error 
&lt;HR width="100%" color=silver SIZE=1&gt;
&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;An error has occurred during report processing. (rsProcessingAborted) &lt;A href="http://go.microsoft.com/fwlink/?LinkId=20476&amp;amp;EvtSrc=Microsoft.ReportingServices.Diagnostics.Utilities.ErrorStrings.resources.Strings&amp;amp;EvtID=rsProcessingAborted&amp;amp;ProdName=Microsoft%20SQL%20Server%20Reporting%20Services&amp;amp;ProdVer=8.00" target=_blank&gt;&lt;FONT color=#3366cc&gt;Get Online Help&lt;/FONT&gt;&lt;/A&gt; 
&lt;UL&gt;
&lt;LI&gt;Query execution failed for data set 'dataset_name'. (rsErrorExecutingCommand) &lt;A href="http://go.microsoft.com/fwlink/?LinkId=20476&amp;amp;EvtSrc=Microsoft.ReportingServices.Diagnostics.Utilities.ErrorStrings.resources.Strings&amp;amp;EvtID=rsErrorExecutingCommand&amp;amp;ProdName=Microsoft%20SQL%20Server%20Reporting%20Services&amp;amp;ProdVer=8.00" target=_blank&gt;&lt;FONT color=#3366cc&gt;Get Online Help&lt;/FONT&gt;&lt;/A&gt; 
&lt;UL&gt;
&lt;LI&gt;Request for the permission of type System.Net.WebPermission, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 failed. &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The problem here is that the Reporting Services engine does not trust our extension code. For more on Code Access Security in .NET, check out &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconIntroductionToCodeAccessSecurity.asp"&gt;this MSDN article&lt;/A&gt;. We can tell it to trust our dll by editing the file rssrvpolicy.config that you will find in the C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer directory. It contains XML defining a number of CodeGroups and their corresponding trust levels. We just add this code snippet at the end of the list of CodeGroups:&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA language=xml name=code&gt;  &amp;lt;!-- Give FullTrust to our extension  --&amp;gt;
  &amp;lt;CodeGroup
       class="UnionCodeGroup"
       version="1"
       PermissionSetName="FullTrust"&amp;gt;
    &amp;lt;IMembershipCondition 
         class="UrlMembershipCondition"
         version="1"
          Url="$AppDirUrl$/bin/Macaw.ReportingServices.SharepointListExtension.dll"
    /&amp;gt;
  &amp;lt;/CodeGroup&amp;gt;
&lt;/TEXTAREA&gt; &lt;/P&gt;
&lt;P&gt;Note that we specifiy our exact dll to be trusted. For new extensions you may add, you'll have to add these to the list of CodeGroups as well. &lt;/P&gt;
&lt;P&gt;The FullTrust level is rather crude of course. You could define another named permission set that has exactly the required permissions for this extension (network access). &lt;/P&gt;
&lt;P&gt;Also: I chose to specify which code to trust using the file location (UrlMembershipCondition). Some people say you'd better sign your assembly with a strong name and trust the strong name (StrongNameMembershipCondition). I am not a very big fan of strong naming and I would suggest resorting to this way only if you really need it. After all: people who can replace your dll in the bin directory can probably also tamper with the rssrvpolicy.config file. &lt;A href="http://pluralsight.com/blogs/craig/archive/2005/03/11/6653.aspx"&gt;More on what's wrong with strong naming&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=121258" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=121258</wfw:commentRss></entry><entry><title>An easy way to delete lot's of comments for dotText, anyone?</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2005/06/10/119912.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:119912</id><created>2005-06-10T15:57:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;&lt;A href="http://en.wikipedia.org/wiki/Link_spam"&gt;Comment spam&lt;/A&gt; is getting worse. I'm getting really annoyed. And I cannot really do much, as my blog is hosted by dotnetjunkies.com. I've been tinkering on a small tool that would at least allow me to select a whole batch of comments and then delete them all. Finding all comments of your blog and presenting them in a selectable form is easy.&amp;nbsp;Problem is that it is so ___ing hard to remove comments over HTTP. &lt;/P&gt;
&lt;P&gt;The SOAP interfaces do not seem to support this, so I thought of just automating Internet Explorer from a tool. Event that is really hard with dotText. The Feedback.aspx page works with complex postbacks. In the old times where all applications would be passing ID's on the querystring, it would have been peanuts to emulate a user deleting a long list of comments by ID, but postbacks are a lot harder to emulate.&lt;/P&gt;
&lt;P&gt;DotnetJunkies.com, pleeeease &lt;A href="http://blogs.clearscreen.com/migs/archive/2005/04/05/1270.aspx"&gt;implement a simple CAPTCHA&lt;/A&gt; on the comment forms?&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=119912" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=119912</wfw:commentRss></entry><entry><title>Sources for the Reporting Services/SharePoint article</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/teund/archive/2005/06/10/119802.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:119802</id><created>2005-06-10T15:40:00Z</created><content type="text/html" mode="escaped">I haven't got a clue what's taking Microsoft so long putting up the sample code for &lt;A href="http://dotnetjunkies.com/WebLog/teund/articles/ReportingSharePointLists.aspx"&gt;my article on Reporting over SharePoint lists&lt;/A&gt;. For the time being, you can download it from my site. &lt;A href="http://www.xs4all.nl/~teund/weblogs/extension%20sources.zip"&gt;Check it out&lt;/A&gt;.&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=119802" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/teund/commentrss.aspx?PostID=119802</wfw:commentRss></entry></feed>