<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>DotNetKicks.com : Stories kicked by schalkvanwyk</title>
    <description>Stories kicked by schalkvanwyk</description>
    <link>http://www.dotnetkicks.com/</link>
    <language>en-us</language>
    <copyright>Atweb Publishing Ltd.</copyright>
    <docs>http://backend.userland.com/rss</docs>
    <generator>DotNetKicks.com - .NET links, community driven</generator>
    <ttl>30</ttl>
    <item>
      <title>.NET - IP Address Location In ASP.NET</title>
      <description>Get client's ip address from a free online web query. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.dotnetcurry.com%2fShowArticle.aspx%3fID%3d325"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.dotnetcurry.com%2fShowArticle.aspx%3fID%3d325" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/aspnet/NET_IP_Address_Location_In_ASP_NET</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/aspnet/NET_IP_Address_Location_In_ASP_NET</guid>
      <pubDate>Thu, 25 Jun 2009 19:45:02 GMT</pubDate>
    </item>
    <item>
      <title>Fabulous Adventures In Coding : Representation and Identity</title>
      <description>Questions about the C# cast operator, the most frequent question I get is:

short sss = 123;
object ooo = sss;            // Box the short.
int iii = (int) sss;         // Perfectly legal.
int jjj = (int) (short) ooo; // Perfectly legal
int kkk = (int) ooo;         // Invalid cast exception?! Why?

Why? Because a boxed T can only be unboxed to T. (*) Once it is unboxed, it's just a value that can be cast as usual, so the double cast works just fine. 

Many people find this restriction grating; they expect to be able to cast a boxed thing to anything that the unboxed thing could have been cast to. There are ways to do that, as we'll see, but there are good reasons why the cast operator does what it does. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2fericlippert%2farchive%2f2009%2f03%2f19%2frepresentation-and-identity.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2fericlippert%2farchive%2f2009%2f03%2f19%2frepresentation-and-identity.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Fabulous_Adventures_In_Coding_Representation_and_Identity</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Fabulous_Adventures_In_Coding_Representation_and_Identity</guid>
      <pubDate>Fri, 17 Apr 2009 20:41:30 GMT</pubDate>
    </item>
    <item>
      <title>How to: Combine LINQ Queries with Regular Expressions</title>
      <description>This example shows how to use the Regex class to create a regular expression for more complex matching in text strings. The LINQ query makes it easy to filter on exactly the files that you want to search with the regular expression, and to shape the results.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fmsdn.microsoft.com%2fen-au%2flibrary%2fbb882639.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmsdn.microsoft.com%2fen-au%2flibrary%2fbb882639.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/linq/How_to_Combine_LINQ_Queries_with_Regular_Expressions</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/linq/How_to_Combine_LINQ_Queries_with_Regular_Expressions</guid>
      <pubDate>Fri, 17 Apr 2009 20:40:10 GMT</pubDate>
    </item>
    <item>
      <title>Making Unity work more like the others</title>
      <description>I love MS Unity as an IoC container, it has some great features. Though I found it to function incorrectly at two points (it's not that the path chosen by the Unity team is incorrect, I just want/excpect it to act differently).

The first thing that bothered me was the fact that Unity throws an exception when Resolve&amp;lt;T&amp;gt; is not able to resolve the given type: I'd prefer it to return null instead, hence most containers do that. The second, even more irritating point, was that ResolveAll&amp;lt;T&amp;gt; only returned the named instances/types instead of all registered types &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.chrisvandesteeg.nl%2f2009%2f04%2f16%2fmaking-unity-work-more-like-the-others%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.chrisvandesteeg.nl%2f2009%2f04%2f16%2fmaking-unity-work-more-like-the-others%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Making_Unity_work_more_like_the_others</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Making_Unity_work_more_like_the_others</guid>
      <pubDate>Sat, 18 Apr 2009 00:16:14 GMT</pubDate>
    </item>
    <item>
      <title>Designing .NET Class Libraries</title>
      <description>The Designing .NET Class Libraries series presents design guidelines for developing classes and components that extend the .NET Framework. The goal of the Designing .NET Class Libraries series is to encourage consistency and predictability in public APIs while enabling Web and cross-language integration. The guidelines presented in Designing .NET Class Libraries are intended to help class library designers understand the trade-offs between different solutions. There might be situations where good library design requires that you violate these design guidelines. Such cases should be rare, however it is important that you provide a solid justification for your decision. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2fnetframework%2faa497250.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2fnetframework%2faa497250.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/architecture/Designing_NET_Class_Libraries</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/architecture/Designing_NET_Class_Libraries</guid>
      <pubDate>Thu, 09 Apr 2009 09:16:02 GMT</pubDate>
    </item>
    <item>
      <title>Case Switching on CLR Types</title>
      <description>As most .NET developers know, you cannot do case/switch on CLR types and one of the reasons for it was explained pretty well years ago by Peter Hallam on the C# team.

But there are many cases where you would like to iterate through a list of objects if mixed types and do specific things depending on it's type. For fun I started to try out different ways to do it, some are better than others but they all do the same thing, more or less. I'm also exploring method extensions, method chaining and lambdas and some of the samples almost started to become fluent and DLS like. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblog.irm.se%2fblogs%2fjohan%2farchive%2f2009%2f03%2f19%2fCase-Switching-on-CLR-Types.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblog.irm.se%2fblogs%2fjohan%2farchive%2f2009%2f03%2f19%2fCase-Switching-on-CLR-Types.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Case_Switching_on_CLR_Types</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Case_Switching_on_CLR_Types</guid>
      <pubDate>Sun, 05 Apr 2009 09:16:00 GMT</pubDate>
    </item>
    <item>
      <title>Dependency injection in real world</title>
      <description>Most of the blog posts I've seen present an ideal "perfect day" situation setup  for writing the test which is not always the case in real world.

In this kind of "not-so-perfect" situations, service locator based solution I've presented in that blog post allowed me to increase testability and introduce TDD into existing code bases and environments not so much interested in the TDD. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblog.vuscode.com%2fmalovicn%2farchive%2f2008%2f12%2f23%2fdependency-injection-in-real-world.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblog.vuscode.com%2fmalovicn%2farchive%2f2008%2f12%2f23%2fdependency-injection-in-real-world.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/patterns/Dependency_injection_in_real_world</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/patterns/Dependency_injection_in_real_world</guid>
      <pubDate>Sun, 05 Apr 2009 09:02:59 GMT</pubDate>
    </item>
    <item>
      <title>Using a Form in Place of a Control</title>
      <description>When you have developed a Windows Forms control, you may find that it would be helpful to have it behave as a control. This would allow you to use the form within another form, potentially including it several times and promoting reuse. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.blackwasp.co.uk%2fFormAsControl.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.blackwasp.co.uk%2fFormAsControl.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/winforms/Using_a_Form_in_Place_of_a_Control</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/winforms/Using_a_Form_in_Place_of_a_Control</guid>
      <pubDate>Sun, 05 Apr 2009 02:46:48 GMT</pubDate>
    </item>
    <item>
      <title>Data See, Data Do : ICommand is like a chocolate cake</title>
      <description>ICommand in WPF is a pretty simple thing at its core.  But it gets more interesting and complicated as you build up functionality on top of it, and integrate it into the higher layers of the UI.  So it's either like a layer cake, or layers of an onion.  But onion is an outside-in metaphor, and layer cake is a bottom-up metaphor, and ICommand is easier to think of bottom up, so I'm declaring ICommand to be a layer cake.

For example, commands provide a mechanism to abstract input (so "navigate back" means "navigate back", whether it came from the keyboard's back button or the mouse's X1 button or anywhere else).  And commands provide a mechanism for the View to update the Model in a Model/View separated application.  And commands provide a way to search the element tree for a command handler, as well as a way for a command handler to say that it doesn't want to be executed at the moment. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2fmikehillberg%2farchive%2f2009%2f03%2f20%2ficommand-is-like-a-chocolate-cake.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2fmikehillberg%2farchive%2f2009%2f03%2f20%2ficommand-is-like-a-chocolate-cake.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/wpf/Data_See_Data_Do_ICommand_is_like_a_chocolate_cake</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/wpf/Data_See_Data_Do_ICommand_is_like_a_chocolate_cake</guid>
      <pubDate>Mon, 23 Mar 2009 17:33:51 GMT</pubDate>
    </item>
    <item>
      <title>Convert a Number to an Ordinal Number</title>
      <description>Ordinal numbers represent the rank of a cardinal number, such as 1st, 2nd and 3rd. These numbers define the position or rank of a value, rather than just the size or quantity. In this article we will convert integers into English ordinal numbers.
 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.blackwasp.co.uk%2fOrdinalNumbers.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.blackwasp.co.uk%2fOrdinalNumbers.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Convert_a_Number_to_an_Ordinal_Number</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Convert_a_Number_to_an_Ordinal_Number</guid>
      <pubDate>Sun, 22 Mar 2009 17:25:58 GMT</pubDate>
    </item>
    <item>
      <title>TDD Design Starter Kit - Dependency Inversion Principle </title>
      <description>In the last episode of the TDD Design Starter Kit, I talked about the need to build cohesive classes, and make the relationships between classes loosely coupled. The specific benefit for TDD is to truly isolate the functionality of a class under the microscope of a unit test. But we've done all we can to isolate our classes, and we still have some interaction with dependencies. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fcodebetter.com%2fblogs%2fjeremy.miller%2fpages%2f129543.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fcodebetter.com%2fblogs%2fjeremy.miller%2fpages%2f129543.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/architecture/TDD_Design_Starter_Kit_Dependency_Inversion_Principle</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/architecture/TDD_Design_Starter_Kit_Dependency_Inversion_Principle</guid>
      <pubDate>Sat, 21 Mar 2009 07:06:03 GMT</pubDate>
    </item>
    <item>
      <title>Playing Around with Anonymous Type, Extension Method, LINQ &amp;amp; Generics</title>
      <description>How to create a anonymous type using LINQ and cast it to a specified type. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fnetindonesia.net%2fblogs%2fjimmy%2farchive%2f2008%2f01%2f20%2fplaying-around-with-anonymous-type-extension-method-linq-and-generic.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fnetindonesia.net%2fblogs%2fjimmy%2farchive%2f2008%2f01%2f20%2fplaying-around-with-anonymous-type-extension-method-linq-and-generic.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/linq/Playing_Around_with_Anonymous_Type_Extension_Method_LINQ_Generics</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/linq/Playing_Around_with_Anonymous_Type_Extension_Method_LINQ_Generics</guid>
      <pubDate>Sat, 14 Mar 2009 15:04:20 GMT</pubDate>
    </item>
    <item>
      <title>Optimize ASP.NET Membership Stored Procedures for greater speed and sc</title>
      <description>ASP.NET Membership stored proc are not fine tuned for high load. So, under heavy load - the major tables like aspnet_Users and aspnet_Membership produces lock contention and transaction deadlocks. Learn how to solve this. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fmsmvps.com%2fblogs%2fomar%2farchive%2f2009%2f03%2f14%2foptimize-asp-net-membership-stored-procedures-for-greater-speed-and-scalability.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmsmvps.com%2fblogs%2fomar%2farchive%2f2009%2f03%2f14%2foptimize-asp-net-membership-stored-procedures-for-greater-speed-and-scalability.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/aspnet/Optimize_ASP_NET_Membership_Stored_Procedures_for_greater_speed_and_sc</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/aspnet/Optimize_ASP_NET_Membership_Stored_Procedures_for_greater_speed_and_sc</guid>
      <pubDate>Sun, 15 Mar 2009 00:16:02 GMT</pubDate>
    </item>
    <item>
      <title>WSS, ADAM, and Building a Custom Authentication Provider</title>
      <description>The point of this post is to demonstrate that creating your own provider for ADAM isn't as daunting as it might first seem. I implemented the shell of one (code included below) in a few hours.

Using WSS 3.0 with ADAM features and licensing:
1. The ability to use the ASP.NET pluggable membership provider model is supported by WSS without MOSS components. 
2. The LDAPMembershipProvider and LDAPRoleProvider classes that are part of the Microsoft.Office.Server assembly are licensed as part of MOSS

So what do you do if you're not running MOSS? You have two options:
1. Buy a third-party utility (e.g. LDAP Client.NET - though I haven't tried this one personally). 
2. Write your own. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.pointbridge.com%2fBlogs%2fmorse_matt%2fPages%2fPost.aspx%3f_ID%3d23"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.pointbridge.com%2fBlogs%2fmorse_matt%2fPages%2fPost.aspx%3f_ID%3d23" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/aspnet/WSS_ADAM_and_Building_a_Custom_Authentication_Provider</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/aspnet/WSS_ADAM_and_Building_a_Custom_Authentication_Provider</guid>
      <pubDate>Thu, 12 Mar 2009 06:52:12 GMT</pubDate>
    </item>
    <item>
      <title>ADAM (Active Directory In Application Mode) Custom Role Provider</title>
      <description>ADAM (Active Directory on Application Mode) has become increasingly common for companies that want to implement a featherweight directory protocol to use within their SharePoint environment. With ADAM, setting up role based security principles is common because it is an extendable architecture that provides the benefits of Active Directory without the management and implementation overhead, and also allows the concept of binding roles to operations which is a very helpful function since beyond acting as a role and user data store, the ADAM instance can become an engine by which to run an mixed, integrated SharePoint and miscellaneous application environment. The AzMan role provider limits the users that you can integrate with the LDAP pluggable provider to those that resolve to a tangible windows identity (it must be a domain account), which of course is a problem for people that wish to use ADAM only users. With increased support for ADAM in SharePoint 2007, the requirement from customers has become even more prevalent and for some, the lack of role support has become a cause for concern. 

Also download ADAM Role Provider - Version 2.12.343.234 - Tested On SharePoint 2007 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.sharepointsecurity.com%2fcontent-183.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.sharepointsecurity.com%2fcontent-183.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/aspnet/ADAM_Active_Directory_In_Application_Mode_Custom_Role_Provider</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/aspnet/ADAM_Active_Directory_In_Application_Mode_Custom_Role_Provider</guid>
      <pubDate>Thu, 12 Mar 2009 06:48:15 GMT</pubDate>
    </item>
    <item>
      <title>How to use WSS v3 with ADAM for user authentication</title>
      <description>One of the powerful new features of Windows SharePoint Services v3 (and MOSS, as by extension) is its ability to use authentication providers other than Active Directory. Because it's built on .NET 2.0, it can take advantage of the provider model for membership.
...
One possible membership database is Active Directory Application Mode (ADAM). ADAM allows for an application to take advantage of the user-management features of AD without all of its overhead (no DC required, etc.). It exposes its information via LDAP, and runs as a service on Windows Server 2003 or Windows XP.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.pointbridge.com%2fblogs%2fmorse_matt%2fPages%2fPost.aspx%3f_ID%3d2"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.pointbridge.com%2fblogs%2fmorse_matt%2fPages%2fPost.aspx%3f_ID%3d2" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/aspnet/How_to_use_WSS_v3_with_ADAM_for_user_authentication</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/aspnet/How_to_use_WSS_v3_with_ADAM_for_user_authentication</guid>
      <pubDate>Thu, 12 Mar 2009 06:42:53 GMT</pubDate>
    </item>
    <item>
      <title>TDD in SharePoint - Introduction to common vocabulary</title>
      <description>This post is part of a series on Test Driven Development - Using Dependency Injection.

There are a number of terms that you are likely to hear very early on in your journey to Test Driven Development, these terms generally refer to specific patterns of coding that have developed to support particular problems.  You should be familiar with terms like Singleton and Factory which are used as a common vocabulary and help developers to communicate their design.

In order to complete the refactoring of our project we will introduce some new terms Loosely Coupled, Dependency Inversion, Dependency Injection and Inversion of Control to help us describe the changes and the reasoning behind them. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.21apps.com%2fsharepoint%2ftdd-with-di-vocabulary%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.21apps.com%2fsharepoint%2ftdd-with-di-vocabulary%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/architecture/TDD_in_SharePoint_Introduction_to_common_vocabulary</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/architecture/TDD_in_SharePoint_Introduction_to_common_vocabulary</guid>
      <pubDate>Wed, 11 Mar 2009 05:30:58 GMT</pubDate>
    </item>
    <item>
      <title>Using the Proxy Pattern to Write to Multiple TextWriters</title>
      <description>I actually use this all the time now.  It's a good use of the proxy pattern. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fdpatrickcaldwell.blogspot.com%2f2008%2f12%2fusing-proxy-pattern-to-write-to.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fdpatrickcaldwell.blogspot.com%2f2008%2f12%2fusing-proxy-pattern-to-write-to.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Using_the_Proxy_Pattern_to_Write_to_Multiple_TextWriters</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Using_the_Proxy_Pattern_to_Write_to_Multiple_TextWriters</guid>
      <pubDate>Sat, 28 Feb 2009 01:19:21 GMT</pubDate>
    </item>
    <item>
      <title>Deploying WCF EndPoints as solutions in SharePoint 2007</title>
      <description>How to deploy WCF EndPoints as solutions packages to SharePoint 2007  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblah.winsmarts.com%2f2008-9-Deploying_WCF_EndPoints_as_solutions_in_SharePoint_2007.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblah.winsmarts.com%2f2008-9-Deploying_WCF_EndPoints_as_solutions_in_SharePoint_2007.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Deploying_WCF_EndPoints_as_solutions_in_SharePoint_2007</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Deploying_WCF_EndPoints_as_solutions_in_SharePoint_2007</guid>
      <pubDate>Thu, 19 Feb 2009 14:54:31 GMT</pubDate>
    </item>
    <item>
      <title>Windows Services and WSS Timed Jobs</title>
      <description>Windows Services utilize their own Windows sessions and security context, isolating them from other processes and users working on the same server. Although Windows Services has no user interface, there is an administrator function to start, pause, restart, and realize the necessary configurations. SharePoint also has an infrastructure to operate this type of process in the form of &amp;quot;SharePoint Timed Jobs.&amp;quot; Jobs perform actions at predefined intervals (in minutes) or during an allocated period of time (hour, day, week, month, or year). Among other functions, SharePoint utilizes Timed Jobs for installing Solutions, indexing, and with its search engine.

One disadvantage of Timed Jobs is that the time structure is organized in defined slots (hour, days, and so forth). If a task requires a specified time configuration, for example, to run each second Saturday of the month, the Jobs framework falls short. Another drawback is that Timed Jobs are SharePoint-dependent; imagine, for instance, a system that needs to track the availability of the Portal. In this scenario, if SharePoint is down, the Jobs infrastructurealso is unavailable for use. A Windows Service that runs autonomously is able to check the accessibility every few minutes, and if necessary, create a log. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.sharepointbriefing.com%2fspcode%2farticle.php%2f52271_3729561_1%2fProgram-and-Employ-Windows-Services-for-Microsoft-SharePoint-2007.htm"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.sharepointbriefing.com%2fspcode%2farticle.php%2f52271_3729561_1%2fProgram-and-Employ-Windows-Services-for-Microsoft-SharePoint-2007.htm" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Windows_Services_and_WSS_Timed_Jobs</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Windows_Services_and_WSS_Timed_Jobs</guid>
      <pubDate>Thu, 19 Feb 2009 14:50:20 GMT</pubDate>
    </item>
    <item>
      <title>Lookup Fields to the Same List - Defined as a Site Column</title>
      <description>Defining lookup fields that lookup in the same list can be quite useful. They are also easy to define when you add a field at the list level. Just select the type for the field to be "Lookup" and then for the "Get information from" list choose the same list as the one you are going to add the field into.

However you can't do that if you want to define your field as a site column because the field is not added to any list at the time it is being defined and therefore your can't lookup into a list that doesn't exist yet. It would be useful though if somehow you could use some sort of "late binding" and choose the list later but when you are creating the site column from the UI you will have to pick up a concrete lookup list.

But there is antoher way. You indeed can define a reusable "late bindable" lookup field as a site column which will lookup into the same list as the list it is added to.
 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fhristopavlov.wordpress.com%2f2008%2f05%2f15%2flookup-fields-to-the-same-list-defined-as-a-site-column%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fhristopavlov.wordpress.com%2f2008%2f05%2f15%2flookup-fields-to-the-same-list-defined-as-a-site-column%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Lookup_Fields_to_the_Same_List_Defined_as_a_Site_Column</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Lookup_Fields_to_the_Same_List_Defined_as_a_Site_Column</guid>
      <pubDate>Tue, 20 Jan 2009 12:12:07 GMT</pubDate>
    </item>
    <item>
      <title>Using the SPPropertyBag with Custom Admin Pages in SharePoint</title>
      <description>A couple of months ago, I started a MOSS 2007 project which was intended as a collaborative environment. In some cases, we wanted to read data from other data sources, one of them being a DB2 UDB, and display it in SharePoint. In order to successfully connect to a database you need a connection string, and you need to store it securely since it usually contains the required credentials to access the DB.

In this post I will explain how we can use SharePoint's SPPropertyBag to securely store strings of information and how we can use admin pages to interact with the data from within the SharePoint 2007 web interface. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fgraegert.com%2f%3fp%3d505"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fgraegert.com%2f%3fp%3d505" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Using_the_SPPropertyBag_with_Custom_Admin_Pages_in_SharePoint</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Using_the_SPPropertyBag_with_Custom_Admin_Pages_in_SharePoint</guid>
      <pubDate>Mon, 19 Jan 2009 21:08:14 GMT</pubDate>
    </item>
    <item>
      <title>Properly Populating and Retrieving SharePoint Field Data</title>
      <description>SharePoint uses a lot of field types that have different underlying schemas, delimiters and formats. I see a lot of people reverse engineer the field information and &amp;quot;hack&amp;quot; the data into the list using a string such as &amp;quot;1;#Title&amp;quot; for a lookup field. Well this isn't exactly best practice so I've put together a reference table below to assist in using the correct data types for populating or retrieving information from a SharePoint list.

 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fsharepointcodeblock.blogspot.com%2f2008%2f07%2fproperly-populating-and-retrieving.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fsharepointcodeblock.blogspot.com%2f2008%2f07%2fproperly-populating-and-retrieving.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Properly_Populating_and_Retrieving_SharePoint_Field_Data</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Properly_Populating_and_Retrieving_SharePoint_Field_Data</guid>
      <pubDate>Mon, 12 Jan 2009 07:30:14 GMT</pubDate>
    </item>
    <item>
      <title>Developing Workflow Solutions with SharePoint Server 2007 and WF</title>
      <description>This article describes best practices for developing workflows for Microsoft Office SharePoint Server 2007 by using Microsoft Visual Studio
 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fcc514224(printer).aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fcc514224(printer).aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Developing_Workflow_Solutions_with_SharePoint_Server_2007_and_WF</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Developing_Workflow_Solutions_with_SharePoint_Server_2007_and_WF</guid>
      <pubDate>Wed, 07 Jan 2009 14:19:14 GMT</pubDate>
    </item>
    <item>
      <title>Form Services and SPD Workflows.</title>
      <description>This post is about forms services and SharePoint Designer workflow, but I had to dabble into this world to solve my problem. A word of warning though, this is a workaround but it's not that clever.
 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.cleverworkarounds.com%2f2008%2f02%2f06%2fform-services-and-spd-workflows%2f"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.cleverworkarounds.com%2f2008%2f02%2f06%2fform-services-and-spd-workflows%2f" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/other/Form_Services_and_SPD_Workflows</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/other/Form_Services_and_SPD_Workflows</guid>
      <pubDate>Wed, 07 Jan 2009 14:01:52 GMT</pubDate>
    </item>
  </channel>
</rss>