﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Blog</title>
    <description>Blog</description>
    <link>http://it.tmod.pl/Home/BlogId/4.aspx</link>
    <language>en-US</language>
    <webMaster>Modelski.Tomasz@gmail.com</webMaster>
    <pubDate>Wed, 10 Mar 2010 15:13:55 GMT</pubDate>
    <lastBuildDate>Wed, 10 Mar 2010 15:13:55 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 3.5.1.31129</generator>
    <item>
      <title>Sharepoint – what’s wrong ?</title>
      <description>&lt;p&gt;I’m trying to do some Sharepoint (WSS/MOSS) 2007 development, mostly advanced custom forms …. .    &lt;br /&gt;I’m little bit flustrated and right now I think (feel) that SHAREPOINT SUCKS. &lt;/p&gt;  &lt;p&gt;It’s so … overcomplicated … unclear … strange.    &lt;br /&gt;Sharepoint Designer is so unfriendly tool. &lt;/p&gt;  &lt;p&gt;I’m … angry and typed ‘Sharepoint sucks’ into google: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://furuknap.blogspot.com/2009/10/sharepoint-sucks-and-heres-why-part-1.html" href="http://furuknap.blogspot.com/2009/10/sharepoint-sucks-and-heres-why-part-1.html"&gt;http://furuknap.blogspot.com/2009/10/sharepoint-sucks-and-heres-why-part-1.html&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://furuknap.blogspot.com/2009/10/sharepoint-sucks-and-heres-why-part-2.html" href="http://furuknap.blogspot.com/2009/10/sharepoint-sucks-and-heres-why-part-2.html"&gt;http://furuknap.blogspot.com/2009/10/sharepoint-sucks-and-heres-why-part-2.html&lt;/a&gt;  &lt;p&gt;Customers are easily impressed and sold when a salesperson, whether that person is a consultant or a bone-fide seller, demonstrate how easy it is to hack together a working proof-of-concept.        &lt;br /&gt;When a real architect or developer enters the project,         &lt;br /&gt;customers are shocked to learn that &lt;strong&gt;developing a&lt;/strong&gt; &lt;strong&gt;SharePoint solution is nothing different from any other software development project and is a lot more expensive than the impression left by the sales process&lt;/strong&gt;. &lt;/p&gt;      &lt;p&gt;When shit hits the fan, blame is easily placed, but the customer is still left without what they want. So, the customer is asked, again, to adjust their requirements to meet the solution. &lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.realsoftwaredevelopment.com/why-sharepoint-portal-server-is-terrible/" href="http://www.realsoftwaredevelopment.com/why-sharepoint-portal-server-is-terrible/"&gt;http://www.realsoftwaredevelopment.com/why-sharepoint-portal-server-is-terrible/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://sheehantu.wordpress.com/2008/02/01/sharepoint-sucks/" href="http://sheehantu.wordpress.com/2008/02/01/sharepoint-sucks/"&gt;http://sheehantu.wordpress.com/2008/02/01/sharepoint-sucks/&lt;/a&gt; – &amp; comments &lt;/li&gt;    &lt;li&gt;And finally post from &lt;strong&gt;2005&lt;/strong&gt; about SPS 2003. It’s like a prophet :-):       &lt;br /&gt;Five Things wrong with Sharepoint: &lt;a title="http://www.informit.com/articles/article.aspx?p=391848" href="http://www.informit.com/articles/article.aspx?p=391848"&gt;http://www.informit.com/articles/article.aspx?p=391848&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;AND FINALLY: &lt;/strong&gt;&lt;a title="http://vtimashkov.wordpress.com/sharepoint-disadvantages/" href="http://vtimashkov.wordpress.com/sharepoint-disadvantages/"&gt;&lt;strong&gt;http://vtimashkov.wordpress.com/sharepoint-disadvantages/&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;  - good technical list of SPS bugs &amp; stupidity. &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;AND FINAL FINAL FINAL &lt;/strong&gt;(&lt;a href="http://weblogs.asp.net/bsimser/archive/2007/10/15/another-sharepoint-sucks-post-released-into-the-wild.aspx" target="_blank"&gt;comment from here&lt;/a&gt;)&lt;strong&gt;: Heh :-)        &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;Let me just say this, as primarily a BI guy who has become responsible for essentially a sharepoint frontend of reporting services.  I have spent the better part of a week trying to migrate our current production environment to a different dev server with a fresh sharepoint install.  I have run into more errors then I can count, and tried multiple sharepoint tools to try to accomplish this.  I have posted multiple times to the Sharepoint MSDN message boards with not even a single response other than myself practically begging for some advice.  For probably the first time in my life in IT I am looking at a situation where I have no clue how to successfully do what seems like a pretty typical task, and I see no hope in sight.  Hence my frustration and typing in Sharepoint sucks into google just for fun, and I stumble upon this.        &lt;br /&gt;&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;!!!! sharepoint-not-the-social-answer !!!!!!  &lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;a title="http://www.jimgoings.com/2008/03/sharepoint-not-the-social-answer/" href="http://www.jimgoings.com/2008/03/sharepoint-not-the-social-answer/"&gt;&lt;em&gt;&lt;strong&gt;http://www.jimgoings.com/2008/03/sharepoint-not-the-social-answer/&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;       &lt;br /&gt;When we migrated from SharePoint 2003 to 2007 ……..       &lt;br /&gt;&lt;strong&gt;…… You know what we had in the end? A freakin’ glorified file server. ……&lt;/strong&gt;       &lt;br /&gt;…………       &lt;br /&gt;One of the comments:       &lt;p&gt;&lt;em&gt;I know one guy (and I know people in 20+ contries that work with IT), that can handle all the needed aspects of running and developing Sharepoint. The list of knowledge you must have to develop and maintain this application, without stepping on a “land mine” is huge! This means you will have to have more IT personnel to end up with something that in the end, will not resolve anything. Cost goes up, frustration goes up, and resolutions does not exist.&lt;/em&gt;&lt;/p&gt;      &lt;p&gt;&lt;em&gt;Instead of Sharepoint, build custom applications for the processes you can not cover with “out of the shelf” software, and instead put up a couple wiki pages, and a good search engine along with a good document handling system. Yes, you will end up with more than one application, but at least you will not end up with cahos.          &lt;br /&gt;&lt;/em&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;a title="http://enterknowl.blogspot.com/2008/10/sharepoint-summit.html" href="http://enterknowl.blogspot.com/2008/10/sharepoint-summit.html"&gt;http://enterknowl.blogspot.com/2008/10/sharepoint-summit.html&lt;/a&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;--------------------------&lt;/p&gt;  &lt;p&gt;And Opposing voice: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://weblogs.asp.net/bsimser/archive/2009/09/29/sharepoint-fud-spreading-far-wide-and-fast.aspx" href="http://weblogs.asp.net/bsimser/archive/2009/09/29/sharepoint-fud-spreading-far-wide-and-fast.aspx"&gt;http://weblogs.asp.net/bsimser/archive/2009/09/29/sharepoint-fud-spreading-far-wide-and-fast.aspx&lt;/a&gt;  &lt;/li&gt; &lt;/ul&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/218/Sharepoint-what-s-wrong.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/218/Sharepoint-what-s-wrong.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/218/Sharepoint-what-s-wrong.aspx</guid>
      <pubDate>Tue, 02 Feb 2010 00:21:26 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=218</trackback:ping>
    </item>
    <item>
      <title>C# ref vs out</title>
      <description>&lt;p&gt;Ref tells the compiler that the object is initialized before entering the function, while out tells the compiler that the object will be intialized inside the function. &lt;/p&gt;  &lt;p&gt;So while ref is two-ways, out is out-only.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://stackoverflow.com/questions/388464/c-whats-the-difference-between-the-ref-and-out-keywords/388467#388467" href="http://stackoverflow.com/questions/388464/c-whats-the-difference-between-the-ref-and-out-keywords/388467#388467"&gt;http://stackoverflow.com/questions/388464/c-whats-the-difference-between-the-ref-and-out-keywords/388467#388467&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://stackoverflow.com/questions/388464/c-whats-the-difference-between-the-ref-and-out-keywords" href="http://stackoverflow.com/questions/388464/c-whats-the-difference-between-the-ref-and-out-keywords"&gt;http://stackoverflow.com/questions/388464/c-whats-the-difference-between-the-ref-and-out-keywords&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/216/C-ref-vs-out.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/216/C-ref-vs-out.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/216/C-ref-vs-out.aspx</guid>
      <pubDate>Mon, 01 Feb 2010 14:44:30 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=216</trackback:ping>
    </item>
    <item>
      <title>CQS patterns &amp; articles</title>
      <description>&lt;p&gt;Some resources about CQS – Command Query Separation pattern&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://martinfowler.com/bliki/CommandQuerySeparation.html" href="http://martinfowler.com/bliki/CommandQuerySeparation.html"&gt;http://martinfowler.com/bliki/CommandQuerySeparation.html&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/" href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/"&gt;http://elegantcode.com/2009/11/11/cqrs-la-greg-young/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://codebetter.com/blogs/gregyoung/" href="http://codebetter.com/blogs/gregyoung/"&gt;http://codebetter.com/blogs/gregyoung/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://codebetter.com/blogs/gregyoung/archive/2009/08/13/command-query-separation.aspx" href="http://codebetter.com/blogs/gregyoung/archive/2009/08/13/command-query-separation.aspx"&gt;http://codebetter.com/blogs/gregyoung/archive/2009/08/13/command-query-separation.aspx&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://dddstepbystep.com/wikis/ddd/blogged-command-query-separation-as-an-architectural-concept.aspx" href="http://dddstepbystep.com/wikis/ddd/blogged-command-query-separation-as-an-architectural-concept.aspx"&gt;http://dddstepbystep.com/wikis/ddd/blogged-command-query-separation-as-an-architectural-concept.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://ayende.com/Blog/archive/2010/01/25/encapsulation-is-the-enemy-of-the-user-interface.aspx" href="http://ayende.com/Blog/archive/2010/01/25/encapsulation-is-the-enemy-of-the-user-interface.aspx"&gt;http://ayende.com/Blog/archive/2010/01/25/encapsulation-is-the-enemy-of-the-user-interface.aspx&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp; Domain Driven Design learning website: &lt;a title="http://dddstepbystep.com/" href="http://dddstepbystep.com/"&gt;http://dddstepbystep.com/&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/215/CQS-patterns-articles.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/215/CQS-patterns-articles.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/215/CQS-patterns-articles.aspx</guid>
      <pubDate>Thu, 28 Jan 2010 14:30:54 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=215</trackback:ping>
    </item>
    <item>
      <title>Script to drop all tables, foreign key, … , in MS SQL database</title>
      <description>&lt;p&gt;Found on : &lt;a title="http://www.eggheadcafe.com/software/aspnet/29145230/easiest-way-to-drop-all-t.aspx" href="http://www.eggheadcafe.com/software/aspnet/29145230/easiest-way-to-drop-all-t.aspx" target="_blank"&gt;http://www.eggheadcafe.com/software/aspnet/29145230/easiest-way-to-drop-all-t.aspx&lt;/a&gt; by ‘Damien’     &lt;br /&gt;It works :-) &lt;/p&gt;  &lt;p&gt;I’m using it in our project with NHibernate, to recreate database schema.    &lt;br /&gt;There are some situation when NHibernate with Hbm2ddl.Auto = "create" won’t delete all old tables from db, and won’t create new schema. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;pre class="brush: sql; "&gt;declare boris cursor for
select
'alter table [' + USER_NAME(so.uid) + '].[' + OBJECT_NAME(sfk.fkeyid)
+ '] drop constraint [' + OBJECT_NAME(sfk.constid) + ']'
from
sysforeignkeys sfk
inner join
sysobjects so
on
sfk.fkeyid = so.id
where
OBJECTPROPERTY(so.ID,N'IsMSShipped') = 0 and
OBJECTPROPERTY(so.ID,N'IsTable') = 1

declare @sql varchar(8000)

open boris

fetch next from boris into @sql
while @@FETCH_STATUS = 0
begin
exec(@sql)

fetch next from boris into @sql
end

close boris
deallocate boris

declare boris cursor for
select
'drop table [' + USER_NAME(uid) + '].[' + OBJECT_NAME(ID) + ']'
from
sysobjects
where
OBJECTPROPERTY(ID,N'IsMSShipped') = 0 and
OBJECTPROPERTY(ID,N'IsTable') = 1

open boris

fetch next from boris into @sql
while @@FETCH_STATUS = 0
begin
exec(@sql)

fetch next from boris into @sql
end

close boris
deallocate boris&lt;/pre&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/212/Script-to-drop-all-tables-foreign-key-in-MS-SQL-database.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/212/Script-to-drop-all-tables-foreign-key-in-MS-SQL-database.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/212/Script-to-drop-all-tables-foreign-key-in-MS-SQL-database.aspx</guid>
      <pubDate>Mon, 04 Jan 2010 16:11:33 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=212</trackback:ping>
    </item>
    <item>
      <title>Enterprise Application Architecture Patterns</title>
      <description>&lt;p&gt;Today I looked a little bit into Architecture Patterns. I’ll post it for my future reference.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://martinfowler.com/eaaCatalog/" href="http://martinfowler.com/eaaCatalog/"&gt;http://martinfowler.com/eaaCatalog/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;Data Access Object:      &lt;br /&gt;&lt;a title="http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html" href="http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html"&gt;http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html&lt;/a&gt;       &lt;br /&gt;&lt;a title="http://en.wikipedia.org/wiki/Data_access_object" href="http://en.wikipedia.org/wiki/Data_access_object"&gt;http://en.wikipedia.org/wiki/Data_access_object&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;Data Transfer Object:      &lt;br /&gt;&lt;a title="http://en.wikipedia.org/wiki/Data_transfer_object" href="http://en.wikipedia.org/wiki/Data_transfer_object"&gt;http://en.wikipedia.org/wiki/Data_transfer_object&lt;/a&gt;  &lt;br /&gt;&lt;a title="http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.html" href="http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.html"&gt;http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.html&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.mattwoodward.com/blog/index.cfm?event=showEntry&amp;entryId=08492A7A-E4A1-1E42-FF9FB2C22097A947" href="http://www.mattwoodward.com/blog/index.cfm?event=showEntry&amp;entryId=08492A7A-E4A1-1E42-FF9FB2C22097A947"&gt;http://www.mattwoodward.com/blog/index.cfm?event=showEntry&amp;entryId=08492A7A-E4A1-1E42-FF9FB2C22097A947&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Onion Architecture:      &lt;br /&gt;&lt;a title="http://jeffreypalermo.com/blog/the-onion-architecture-part-1/" href="http://jeffreypalermo.com/blog/the-onion-architecture-part-1/"&gt;http://jeffreypalermo.com/blog/the-onion-architecture-part-1/&lt;/a&gt;  &lt;br /&gt;&lt;a title="http://jeffreypalermo.com/blog/the-onion-architecture-part-2/" href="http://jeffreypalermo.com/blog/the-onion-architecture-part-2/"&gt;http://jeffreypalermo.com/blog/the-onion-architecture-part-2/&lt;/a&gt;       &lt;br /&gt;&lt;a title="http://jeffreypalermo.com/blog/the-onion-architecture-part-3/" href="http://jeffreypalermo.com/blog/the-onion-architecture-part-3/"&gt;http://jeffreypalermo.com/blog/the-onion-architecture-part-3/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Ayende: Concept &amp; Features      &lt;br /&gt;&lt;a title="http://ayende.com/Blog/archive/2009/03/06/application-structure-concepts-amp-features.aspx" href="http://ayende.com/Blog/archive/2009/03/06/application-structure-concepts-amp-features.aspx"&gt;http://ayende.com/Blog/archive/2009/03/06/application-structure-concepts-amp-features.aspx&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;Hexagonal architecture     &lt;br /&gt;&lt;a title="http://alistair.cockburn.us/Hexagonal+architecture" href="http://alistair.cockburn.us/Hexagonal+architecture"&gt;http://alistair.cockburn.us/Hexagonal+architecture&lt;/a&gt;      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/211/Enterprise-Application-Architecture-Patterns.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/211/Enterprise-Application-Architecture-Patterns.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/211/Enterprise-Application-Architecture-Patterns.aspx</guid>
      <pubDate>Tue, 22 Dec 2009 22:45:58 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=211</trackback:ping>
    </item>
    <item>
      <title>URL Escape Codes</title>
      <description>&lt;p&gt;&lt;a title="http://www.december.com/html/spec/esccodes.html" href="http://www.december.com/html/spec/esccodes.html"&gt;http://www.december.com/html/spec/esccodes.html&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/208/URL-Escape-Codes.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/208/URL-Escape-Codes.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/208/URL-Escape-Codes.aspx</guid>
      <pubDate>Fri, 18 Dec 2009 16:41:25 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=208</trackback:ping>
    </item>
    <item>
      <title>NHibernate vs Entity Framework</title>
      <description>&lt;p&gt;We are setting up architecture in new project and it’s not easy to decide which DAL / ORM technology use in it.    &lt;br /&gt;NHibernate or Entity Framework ?     &lt;br /&gt;I’m determined to use NHibernate, but 2 of team members are familiar with EF and don’t now NH at all. &lt;/p&gt;  &lt;p&gt;I was looking for post about NH vs EF, there are many (most of them are 1 year old) but only a few are recent , those recent ones are here: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://mattias-jakobsson.net/Item/32/Entity%20Framework%20vs%20NHibernate" href="http://mattias-jakobsson.net/Item/32/Entity%20Framework%20vs%20NHibernate"&gt;http://mattias-jakobsson.net/Item/32/Entity%20Framework%20vs%20NHibernate&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://gregdoesit.com/2009/08/nhibernate-vs-entity-framework-a-performance-test/" href="http://gregdoesit.com/2009/08/nhibernate-vs-entity-framework-a-performance-test/"&gt;http://gregdoesit.com/2009/08/nhibernate-vs-entity-framework-a-performance-test/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://gregdoesit.com/2009/08/nhibernate-vs-entity-framework-%E2%80%93-a-revised-performance-comparison/" href="http://gregdoesit.com/2009/08/nhibernate-vs-entity-framework-%E2%80%93-a-revised-performance-comparison/"&gt;http://gregdoesit.com/2009/08/nhibernate-vs-entity-framework-%E2%80%93-a-revised-performance-comparison/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.ilovenet.com.ar/2009-08-20/orm-performance-comparison/" href="http://www.ilovenet.com.ar/2009-08-20/orm-performance-comparison/"&gt;http://www.ilovenet.com.ar/2009-08-20/orm-performance-comparison/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.ormbattle.net/" href="http://www.ormbattle.net/"&gt;http://www.ormbattle.net/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.reddit.com/r/programming/comments/aeaos/nhibernate_vs_entity_framework_40_for_data/" href="http://www.reddit.com/r/programming/comments/aeaos/nhibernate_vs_entity_framework_40_for_data/"&gt;http://www.reddit.com/r/programming/comments/aeaos/nhibernate_vs_entity_framework_40_for_data/&lt;/a&gt;  &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;     &lt;br /&gt;UPDATE&lt;/strong&gt; (05-01-2010): &lt;/p&gt;  &lt;p&gt;First, we decided to use Entity Framework. After 2 weeks, we swiched back to NHibernate.    &lt;br /&gt;I’ll explain it in further posts, but main reason was buggy EF Designer in Visual Studio. It was hard &amp; time consuming to build model. &lt;/p&gt;  &lt;p&gt;Especially updating model from database was painful and buggy process. &lt;/p&gt;  &lt;p&gt;Some few additional links: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ADO.NET Entity Framework: Update Wizard will not add tables     &lt;br /&gt;&lt;a title="http://stackoverflow.com/questions/543971/ado-net-entity-framework-update-wizard-will-not-add-tables" href="http://stackoverflow.com/questions/543971/ado-net-entity-framework-update-wizard-will-not-add-tables"&gt;http://stackoverflow.com/questions/543971/ado-net-entity-framework-update-wizard-will-not-add-tables&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;What is the best practice when the database schema changes in entity framework?     &lt;br /&gt;&lt;a title="http://stackoverflow.com/questions/1900461/what-is-the-best-practice-when-the-database-schema-changes-in-entity-framework" href="http://stackoverflow.com/questions/1900461/what-is-the-best-practice-when-the-database-schema-changes-in-entity-framework"&gt;http://stackoverflow.com/questions/1900461/what-is-the-best-practice-when-the-database-schema-changes-in-entity-framework&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;My advice is: If you are creating enterprise application, don’t touch EF. Use NHibernate.      &lt;br /&gt;I’ve tested it. &lt;/strong&gt;&lt;/p&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/207/NHibernate-vs-Entity-Framework.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/207/NHibernate-vs-Entity-Framework.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/207/NHibernate-vs-Entity-Framework.aspx</guid>
      <pubDate>Mon, 14 Dec 2009 23:07:43 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=207</trackback:ping>
    </item>
    <item>
      <title>Tagged Content FAQ</title>
      <description>&lt;p&gt;I’ve created &lt;a href="http://it.tmod.pl/Projects/DNN/Tagged-Content/FAQ.aspx" target="_blank"&gt;FAQ page&lt;/a&gt; for DNN Tagged Content solution.     &lt;br /&gt;Dear customer, feel free to ask questions if you have doubts or you don’t know how to achieve Tagged Content functionality you can see on my website. &lt;/p&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/206/Tagged-Content-FAQ.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/206/Tagged-Content-FAQ.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/206/Tagged-Content-FAQ.aspx</guid>
      <pubDate>Fri, 11 Dec 2009 13:56:38 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=206</trackback:ping>
    </item>
    <item>
      <title>ListUnique-generic List with unique values in .Net C# part 2</title>
      <description>&lt;p&gt;Few months ago I’ve &lt;a href="http://it.tmod.pl/Blog/EntryId/55.aspx" target="_blank"&gt;published&lt;/a&gt; first version of my ListUnique.     &lt;br /&gt;ListUnique is .Net C# generic list which keeps insertion order, you can iterate through it and it has only unique values, with IListUnique interface. &lt;/p&gt;  &lt;p&gt;Below is next version, with unit tests.    &lt;br /&gt;What’s new :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;new methods AddUniqueOnly &amp; AddRangeUniqueOnly – those methods will add only unique values, won’t throw exception if value is already in list.      &lt;br /&gt;Just add unique values and omit existing ones. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This post is also online test of &lt;a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter" target="_blank"&gt;SyntaxHighlighter&lt;/a&gt;.     &lt;br /&gt;I’ve integrated it with DotNetNuke Blog module.     &lt;br /&gt;Within few days I’ll release this module (called BlogPlus) – it contains fixes &amp; modifications &amp; new features for core Blog module, SyntaxHighlighter is one of new features. &lt;/p&gt;  &lt;pre class="brush: c-sharp; "&gt;
using System;
using System.Collections.Generic;


namespace TM.Common.Collections
{
	/// &lt;summary&gt;
	/// List that allows only unique values
	/// &lt;/summary&gt;
	/// &lt;typeparam name="T"&gt;Must implement IComparable T &lt;/typeparam&gt;
	public class ListUnique&lt;T&gt; : List&lt;T&gt;, IListUnique&lt;T&gt; where T : IComparable&lt;T&gt;
	{
		
		public new void Add(T item)
		{	
			if( Exists(itemList =&gt; itemList.CompareTo(item) == 0) )
			{
				throw new ArgumentException("Cannot add not unique value to collection");
			}
			
			base.Add(item);
		}
		
		/// &lt;summary&gt;
		/// Adds element only if is unique
		/// &lt;/summary&gt;
		/// &lt;param name="item"&gt;&lt;/param&gt;
		/// &lt;returns&gt;Return added or not&lt;/returns&gt;
		public bool AddUniqueOnly(T item)
		{
			if( Exists(itemList =&gt; itemList.CompareTo(item) == 0) )
				return false;
			
			base.Add(item);
			return true;
		}

		/// &lt;summary&gt;
		/// Adds elements of the specified collection to the end of the list
		/// &lt;/summary&gt;
		/// &lt;param name="coll"&gt;&lt;/param&gt;
		public new void AddRange(IEnumerable&lt;T&gt; coll)
		{
			foreach (T item in coll)
			{
				Add(item);
			}
		}

		/// &lt;summary&gt;
		/// Adds only unique elements of the specified collection to the end of the list
		/// &lt;/summary&gt;
		/// &lt;param name="coll"&gt;&lt;/param&gt;
		public void AddRangeUnique(IEnumerable&lt;T&gt; coll)
		{
			foreach (T item in coll)
			{
				try
				{
					Add(item);
				}
				catch (ArgumentException)
				{  }
			}
		}

		public List&lt;T&gt; ToList()
		{
			return this;
		}

		public ListUnique(IEnumerable&lt;T&gt; collection)
		{
			foreach (T t in collection)
			{
				Add(t);
			}
		}

		public ListUnique(int capacity): base(capacity)
		{
		}

		public ListUnique()
		{
		}
	}

	/// &lt;summary&gt;
	/// IList that allows only unique values
	/// &lt;/summary&gt;
	/// &lt;typeparam name="T"&gt;Must implement IComparable T &lt;/typeparam&gt;
	public interface IListUnique&lt;T&gt; : IList&lt;T&gt; where T : IComparable&lt;T&gt;
	{
		List&lt;T&gt; ToList();

		bool AddUniqueOnly(T item);

		/// &lt;summary&gt;
		/// Adds elements of the specified collection to the end of the list, throws exception on unique violation
		/// &lt;/summary&gt;
		/// &lt;param name="coll"&gt;&lt;/param&gt;
		void AddRange(IEnumerable&lt;T&gt; coll);

		/// &lt;summary&gt;
		/// Adds only unique elements of the specified collection to the end of the list
		/// &lt;/summary&gt;
		/// &lt;param name="coll"&gt;&lt;/param&gt;
		void AddRangeUnique(IEnumerable&lt;T&gt; coll);
	}
}
&lt;/pre&gt;

&lt;p&gt;And Unit tests:&lt;/p&gt;

&lt;pre class="brush: c-sharp;"&gt;
using System;
using System.Collections.Generic;
using NUnit.Framework;

namespace TM.Common.Collections.Tests
{
	[TestFixture]
	public class ListUnique_Test
	{
		[Test]
		public void CreateNew()
		{
			IListUnique&lt;string&gt; listUnique = new ListUnique&lt;string&gt;();
		}
		
		[Test]
		public void AddUniqueValues()
		{
			IListUnique&lt;string&gt; listUnique = new ListUnique&lt;string&gt;();
			
			listUnique.Add("a");
			listUnique.Add("b");
			listUnique.Add("c");
			listUnique.Add("d");
			
			Assert.AreEqual(4,listUnique.Count);
			Assert.AreEqual("a",listUnique[0]);
			Assert.AreEqual("d", listUnique[3]);
		}
		
		[Test]
		public void AddUniqueOnly_Basic()
		{
			IListUnique&lt;int&gt; listUnique = new ListUnique&lt;int&gt;();
			
			listUnique.AddUniqueOnly(1);
			listUnique.AddUniqueOnly(2);
			listUnique.AddUniqueOnly(3);
			listUnique.AddUniqueOnly(4);

			bool addStatus;
			
			addStatus=listUnique.AddUniqueOnly(3);
			Assert.IsFalse(addStatus);
			
			Assert.AreEqual(4,listUnique.Count);
		}
		
		[Test]
		public void AddRangeUnique()
		{
			List&lt;string&gt; list = new List&lt;string&gt;();
			list.Add("a");
			list.Add("b");
			list.Add("c");
			list.Add("d");
			
			IListUnique&lt;string&gt; listUnique = new ListUnique&lt;string&gt;();

			listUnique.AddRange(list);

			Assert.AreEqual(4, listUnique.Count);
			Assert.AreEqual("a", listUnique[0]);
			Assert.AreEqual("d", listUnique[3]);
		}

		[Test]
		[ExpectedException(typeof(ArgumentException))]
		public void AddRangeNotUnique_ExceptionExpected()
		{
			List&lt;string&gt; list;
			
			list = new List&lt;string&gt;();
			list.Add("a");
			list.Add("b");
			list.Add("c");
			list.Add("d");

			IListUnique&lt;string&gt; listUnique = new ListUnique&lt;string&gt;();

			listUnique.AddRange(list);

			list = new List&lt;string&gt;();
			list.Add("e");
			list.Add("f");
			list.Add("a");	// &lt;- not unique
			list.Add("h");

			listUnique.AddRange(list); // &lt;- exception expected
		}

		[Test]
		public void AddRangeUnique_NotUnique()
		{
			List&lt;string&gt; list;

			list = new List&lt;string&gt;();
			list.Add("a");
			list.Add("b");
			list.Add("c");
			list.Add("d");

			IListUnique&lt;string&gt; listUnique = new ListUnique&lt;string&gt;();

			listUnique.AddRange(list);

			list = new List&lt;string&gt;();
			list.Add("e");
			list.Add("f");
			list.Add("a");	// &lt;- not unique
			list.Add("h");

			listUnique.AddRangeUnique(list);
			
			Assert.AreEqual( 7 ,listUnique.Count);
			Assert.AreEqual("a", listUnique[0]);
			Assert.AreEqual("d", listUnique[3]);
			Assert.AreEqual("h", listUnique[6]);
		}
		
		[Test]
		public void CreateFromUniqueList()
		{
			List&lt;string&gt; list=new List&lt;string&gt;();
			list.Add("a");
			list.Add("b");
			list.Add("c");
			list.Add("d");

			IListUnique&lt;string&gt; listUnique = new ListUnique&lt;string&gt;(list);

			Assert.AreEqual(4, listUnique.Count);
			Assert.AreEqual("a", listUnique[0]);
			Assert.AreEqual("d", listUnique[3]);
		}
		
		[Test]
		[ExpectedException(typeof(ArgumentException))]
		public void AddNonUnique()
		{
			IListUnique&lt;string&gt; listUnique = new ListUnique&lt;string&gt;();

			listUnique.Add("a");
			listUnique.Add("b");
			listUnique.Add("b");
			listUnique.Add("d");

			Assert.AreEqual(3, listUnique.Count);
			Assert.AreEqual("a", listUnique[0]);
			Assert.AreEqual("d", listUnique[2]);
		}

		[Test]
		[ExpectedException(typeof(ArgumentException))]
		public void CreateFromNotUniqueList()
		{
			List&lt;string&gt; list = new List&lt;string&gt;();
			list.Add("a");
			list.Add("b");
			list.Add("b");
			list.Add("d");

			IListUnique&lt;string&gt; listUnique = new ListUnique&lt;string&gt;(list);

			Assert.AreEqual(3, listUnique.Count);
			Assert.AreEqual("a", listUnique[0]);
			Assert.AreEqual("d", listUnique[2]);
		}
	}
}
&lt;/pre&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/201/ListUnique-generic-List-with-unique-values-in-Net-C-part-2.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/201/ListUnique-generic-List-with-unique-values-in-Net-C-part-2.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/201/ListUnique-generic-List-with-unique-values-in-Net-C-part-2.aspx</guid>
      <pubDate>Fri, 23 Oct 2009 14:41:12 GMT</pubDate>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=201</trackback:ping>
    </item>
    <item>
      <title>31 Days of Refactoring</title>
      <description>&lt;p&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/07/31/31-days-of-refactoring.aspx" target="_blank"&gt;31 Days of Refactoring&lt;/a&gt; is a serie of refactoring tips and producing good quality code by &lt;a href="http://www.lostechies.com/blogs/sean_chambers/default.aspx" target="_blank"&gt;Sean Chambers&lt;/a&gt; from Los Techies.     &lt;br /&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/10/20/31-days-of-refactoring-ebook.aspx" target="_blank"&gt;It’s also available&lt;/a&gt; as &lt;a href="http://www.lostechies.com/media/p/27197/download.aspx" target="_blank"&gt;ebook&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Below is index of those refactoring tips (copy from original index): &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/02/refactoring-day-1-encapsulate-collection.aspx"&gt;Refactoring Day 1 : Encapsulate Collection&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/02/refactoring-day-2-move-method.aspx"&gt;Refactoring Day 2 : Move Method&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/03/refactoring-day-3-pull-up-method.aspx"&gt;Refactoring Day 3 : Pull Up Method&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/04/refactoring-day-4-push-down-method.aspx"&gt;Refactoring Day 4 : Push Down Method&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/05/refactoring-day-5-pull-up-field.aspx"&gt;Refactoring Day 5 : Pull Up Field&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/06/refactoring-day-6-push-down-field.aspx"&gt;Refactoring Day 6 : Push Down Field&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/07/refactoring-day-7-rename-method-class-parameter.aspx"&gt;Refactoring Day 7 : Rename (method, class, parameter)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/07/refactoring-day-8-replace-inheritance-with-delegation.aspx"&gt;Refactoring Day 8 : Replace Inheritance with Delegation&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/07/refactoring-day-9-extract-interface.aspx"&gt;Refactoring Day 9 : Extract Interface&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/10/refactoring-day-10-extract-method.aspx"&gt;Refactoring Day 10 : Extract Method&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/11/refactoring-day-11-switch-to-strategy.aspx"&gt;Refactoring Day 11 : Switch to Strategy&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/12/refactoring-day-12-break-dependencies.aspx"&gt;Refactoring Day 12 : Break Dependencies&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/13/refactoring-day-13-extract-method-object.aspx"&gt;Refactoring Day 13 : Extract Method Object&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/14/refactoring-day-14-break-responsibilities.aspx"&gt;Refactoring Day 14 : Break Responsibilities&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/15/refactoring-day-15-remove-duplication.aspx"&gt;Refactoring Day 15 : Remove Duplication&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/16/refactoring-day-16-encapsulate-conditional.aspx"&gt;Refactoring Day 16 : Encapsulate Conditional&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/17/refactoring-day-17-extract-superclass.aspx"&gt;Refactoring Day 17 : Extract Superclass&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/18/refactoring-day-18-replace-exception-with-conditional.aspx"&gt;Refactoring Day 18 : Replace exception with conditional&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/19/refactoring-day-19-extract-factory-class.aspx"&gt;Refactoring Day 19 : Extract Factory Class&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/20/refactoring-day-20-extract-subclass.aspx"&gt;Refactoring Day 20 : Extract Subclass&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/21/refactoring-day-21-collapse-hierarchy.aspx"&gt;Refactoring Day 21 : Collapse Hierarchy&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/22/refactoring-day-22-break-method.aspx"&gt;Refactoring Day 22 : Break Method&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/23/refactoring-day-23-introduce-parameter-object.aspx"&gt;Refactoring Day 23 : Introduce Parameter Object&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/24/refactoring-day-24-remove-arrowhead-antipattern.aspx"&gt;Refactoring Day 24 : Remove Arrowhead Antipattern&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/25/refactoring-day-25-introduce-design-by-contract-checks.aspx"&gt;Refactoring Day 25 : Introduce Design By Contract Checks&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/26/refactoring-day-26-remove-double-negative.aspx"&gt;Refactoring Day 26 : Remove Double Negative&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/27/refactoring-day-27-remove-god-classes.aspx"&gt;Refactoring Day 27 : Remove God Classes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/28/refactoring-day-28-rename-boolean-method.aspx"&gt;Refactoring Day 28 : Rename boolean methods&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/28/refactoring-day-29-remove-middle-man.aspx"&gt;Refactoring Day 29 : Remove Middle Man&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/28/refactoring-day-30-return-asap.aspx"&gt;Refactoring Day 30 : Return ASAP&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/28/refactoring-day-31-replace-conditional-with-polymorphism.aspx"&gt;Refactoring Day 31 : Replace Conditional with Polymorphism&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/200/31-Days-of-Refactoring.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/200/31-Days-of-Refactoring.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/200/31-Days-of-Refactoring.aspx</guid>
      <pubDate>Wed, 21 Oct 2009 12:28:03 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=200</trackback:ping>
    </item>
    <item>
      <title>Guard class</title>
      <description>&lt;p&gt;MockHttpContext (&lt;a href="http://it.tmod.pl/Blog/EntryId/198/Mock-HttpContext.aspx"&gt;previous post&lt;/a&gt;) uses Guard class (not included) in 2 lines.     &lt;br /&gt;I used &lt;a href="http://ajdotnet.wordpress.com/2009/08/01/posting-guards-guard-classes-explained/" target="_blank"&gt;Guard class&lt;/a&gt; (&lt;a title="http://ajdotnet.wordpress.com/guard-class/" href="http://ajdotnet.wordpress.com/guard-class/"&gt;http://ajdotnet.wordpress.com/guard-class/&lt;/a&gt;) by &lt;a href="http://ajdotnet.wordpress.com/" target="_blank"&gt;AJ&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;MockHttpContext is not worth to use Guard class (you can easily change those 2 lines of codes), but it’s interesting topic – Guard class. &lt;/p&gt;  &lt;p&gt;Some links &amp; resources that I found about Guard classes idea: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://stackoverflow.com/questions/299439/net-guard-class-library" href="http://stackoverflow.com/questions/299439/net-guard-class-library"&gt;http://stackoverflow.com/questions/299439/net-guard-class-library&lt;/a&gt; &lt;/li&gt;    &lt;li&gt; &lt;a href="http://ajdotnet.wordpress.com/2009/08/01/posting-guards-guard-classes-explained/" target="_blank"&gt;Guard class&lt;/a&gt; (&lt;a title="http://ajdotnet.wordpress.com/guard-class/" href="http://ajdotnet.wordpress.com/guard-class/"&gt;http://ajdotnet.wordpress.com/guard-class/&lt;/a&gt;) by &lt;a href="http://ajdotnet.wordpress.com/" target="_blank"&gt;AJ&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://blueonionsoftware.com/Blog.aspx?p=b5b9e553-3e10-40ae-9f59-e38f1c50e2d6" href="http://blueonionsoftware.com/Blog.aspx?p=b5b9e553-3e10-40ae-9f59-e38f1c50e2d6"&gt;http://blueonionsoftware.com/Blog.aspx?p=b5b9e553-3e10-40ae-9f59-e38f1c50e2d6&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://aabs.wordpress.com/2008/01/18/c-by-contract-using-expression-trees/" href="http://aabs.wordpress.com/2008/01/18/c-by-contract-using-expression-trees/"&gt;http://aabs.wordpress.com/2008/01/18/c-by-contract-using-expression-trees/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://research.microsoft.com/en-us/projects/contracts/" href="http://research.microsoft.com/en-us/projects/contracts/"&gt;http://research.microsoft.com/en-us/projects/contracts/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://blueonionsoftware.com/blog.aspx?p=ca49cb62-7ea2-43c5-96aa-91d11774fb48" href="http://blueonionsoftware.com/blog.aspx?p=ca49cb62-7ea2-43c5-96aa-91d11774fb48"&gt;http://blueonionsoftware.com/blog.aspx?p=ca49cb62-7ea2-43c5-96aa-91d11774fb48&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://commonlibrarynet.codeplex.com/" href="http://commonlibrarynet.codeplex.com/"&gt;http://commonlibrarynet.codeplex.com/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://ncommon.codeplex.com/" href="http://ncommon.codeplex.com/"&gt;http://ncommon.codeplex.com/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://conditions.codeplex.com/" href="http://conditions.codeplex.com/"&gt;http://conditions.codeplex.com/&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/199/Guard-class.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/199/Guard-class.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/199/Guard-class.aspx</guid>
      <pubDate>Tue, 20 Oct 2009 09:34:03 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=199</trackback:ping>
    </item>
    <item>
      <title>Mock HttpContext</title>
      <description>&lt;p&gt;I needed to ‘TDD’ class which uses HttpContext. &lt;/p&gt;  &lt;p&gt;Easiest solution that I found working is to use &lt;a href="http://www.distributethis.com/?p=18" target="_blank"&gt;MockHttpContext class&lt;/a&gt; by Michael Primeaux - &lt;a title="http://www.distributethis.com/" href="http://www.distributethis.com/"&gt;http://www.distributethis.com/&lt;/a&gt; . &lt;/p&gt;  &lt;p&gt;The concept is when you create    &lt;br /&gt;&lt;/p&gt; MockHttpContext context = new MockHttpContext(@"C:\Intepub\wwwroot\", "/MyVirtualDirectoryName")   &lt;p&gt;in ex. unit test TestFixtureSetUp than    &lt;br /&gt;HttpContext.Current is not null in unit tests. Nice, it works. &lt;/p&gt;  &lt;p&gt;I have bad feeling that it’s not ideal solution, the best is to inject mocked HttpContext to tested class, I think.    &lt;br /&gt;But above solution works for now. &lt;/p&gt;  &lt;p&gt;Other links about mocking HttpContext: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://fehaar.blogspot.com/2007/12/mocking-httpcontext-for-mvc-route.html" href="http://fehaar.blogspot.com/2007/12/mocking-httpcontext-for-mvc-route.html"&gt;http://fehaar.blogspot.com/2007/12/mocking-httpcontext-for-mvc-route.html&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.eioba.com/a75370/how_duck_typing_benefits_c_developers" href="http://www.eioba.com/a75370/how_duck_typing_benefits_c_developers"&gt;http://www.eioba.com/a75370/how_duck_typing_benefits_c_developers&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://haacked.com/archive/2007/08/19/why-duck-typing-matters-to-c-developers.aspx" href="http://haacked.com/archive/2007/08/19/why-duck-typing-matters-to-c-developers.aspx"&gt;http://haacked.com/archive/2007/08/19/why-duck-typing-matters-to-c-developers.aspx&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/198/Mock-HttpContext.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/198/Mock-HttpContext.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/198/Mock-HttpContext.aspx</guid>
      <pubDate>Tue, 20 Oct 2009 09:25:38 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=198</trackback:ping>
    </item>
    <item>
      <title>Tagged Content 1.4.3 is released</title>
      <description>&lt;p&gt;&lt;a href="http://it.tmod.plhttp://it.tmod.pl/Projects/DNN/Tagged-Content.aspx" target="_blank"&gt;Tagged Content&lt;/a&gt; v.1.4.3 is released. &lt;/p&gt;  &lt;p&gt;These is bug fix release.    &lt;br /&gt;Changes from version 1.4.2 are: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;RelatetedTaggedCnt module - obsolette button 'Add Content' for admin/editor removed. &lt;/li&gt;    &lt;li&gt;RelatetedTaggedCnt module -added setting checkbox: open related links in same or new window &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;See &lt;a href="http://it.tmod.pl/Projects/DNN/Tagged-Content/Wiki/topic/Release+notes.aspx"&gt;release notes&lt;/a&gt; for complete version history.     &lt;br /&gt;Clients who purchased earlier version are free to upgrade – please go to &lt;a href="http://it.tmod.pl/Projects/DNN/Tagged-Content/Update.aspx" target="_blank"&gt;Update page&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Only RelatedTaggedCnt module needs to be updated (installed) into your portal. &lt;/p&gt;  &lt;p&gt;Tagged Content could be purchased on on &lt;a href="http://www.snowcovered.com/snowcovered2/Default.aspx?tabid=242&amp;PackageID=14693&amp;r=b298cb720b" target="_blank"&gt;SnowCovered&lt;/a&gt;, &lt;a href="http://it.tmod.pl/Projects/DNN/Tagged-Content/Free-version.aspx"&gt;free version&lt;/a&gt; 1.4.3 is available for download.     &lt;br /&gt;Please visit &lt;a href="http://it.tmod.plhttp://it.tmod.pl/Projects/DNN/Tagged-Content.aspx"&gt;project page&lt;/a&gt; for all details. &lt;/p&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/195/Tagged-Content-1-4-3-is-released.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/195/Tagged-Content-1-4-3-is-released.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/195/Tagged-Content-1-4-3-is-released.aspx</guid>
      <pubDate>Mon, 19 Oct 2009 13:48:51 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=195</trackback:ping>
    </item>
    <item>
      <title>Script indexes primary keys and foreign keys</title>
      <description>&lt;p&gt;Some articles about generation MS SQL scripts for MS SQL indexes, primary keys and foreign keys:    &lt;br /&gt;&lt;a href="http://www.sqlservercentral.com"&gt;www.sqlservercentral.com&lt;/a&gt; requires registration, but it’s free and worth it. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://www.sqlservercentral.com/scripts/Index+Management/31892/" href="http://www.sqlservercentral.com/scripts/Index+Management/31892/" target="_blank"&gt;http://www.sqlservercentral.com/scripts/Index+Management/31892/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.sqlservercentral.com/scripts/Miscellaneous/31893/" href="http://www.sqlservercentral.com/scripts/Miscellaneous/31893/" target="_blank"&gt;http://www.sqlservercentral.com/scripts/Miscellaneous/31893/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://blog.sqlauthority.com/2009/07/23/sql-server-puzzle-write-script-to-generate-primary-key-and-foreign-key/" href="http://blog.sqlauthority.com/2009/07/23/sql-server-puzzle-write-script-to-generate-primary-key-and-foreign-key/" target="_blank"&gt;http://blog.sqlauthority.com/2009/07/23/sql-server-puzzle-write-script-to-generate-primary-key-and-foreign-key/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://blog.sqlauthority.com/2009/07/17/sql-server-two-methods-to-retrieve-list-of-primary-keys-and-foreign-keys-of-database/" href="http://blog.sqlauthority.com/2009/07/17/sql-server-two-methods-to-retrieve-list-of-primary-keys-and-foreign-keys-of-database/" target="_blank"&gt;http://blog.sqlauthority.com/2009/07/17/sql-server-two-methods-to-retrieve-list-of-primary-keys-and-foreign-keys-of-database/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.sqlservercentral.com/scripts/Index+Management/" href="http://www.sqlservercentral.com/scripts/Index+Management/" target="_blank"&gt;http://www.sqlservercentral.com/scripts/Index+Management/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.sqlservercentral.com/scripts/T-SQL/61463/" href="http://www.sqlservercentral.com/scripts/T-SQL/61463/" target="_blank"&gt;http://www.sqlservercentral.com/scripts/T-SQL/61463/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.sqlservercentral.com/scripts/Index+Management/31652/" href="http://www.sqlservercentral.com/scripts/Index+Management/31652/" target="_blank"&gt;http://www.sqlservercentral.com/scripts/Index+Management/31652/&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.sqlservercentral.com/scripts/Index+Management/31079/" href="http://www.sqlservercentral.com/scripts/Index+Management/31079/" target="_blank"&gt;http://www.sqlservercentral.com/scripts/Index+Management/31079/&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/194/Script-indexes-primary-keys-and-foreign-keys.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/194/Script-indexes-primary-keys-and-foreign-keys.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/194/Script-indexes-primary-keys-and-foreign-keys.aspx</guid>
      <pubDate>Fri, 16 Oct 2009 13:27:19 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=194</trackback:ping>
    </item>
    <item>
      <title>High scalable websites</title>
      <description>&lt;p&gt;Interesting posts about building high scalable websites using .Net: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://www.udidahan.com/2009/10/09/myspace-architecture-considered-expensive/" href="http://www.udidahan.com/2009/10/09/myspace-architecture-considered-expensive/"&gt;http://www.udidahan.com/2009/10/09/myspace-architecture-considered-expensive/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/" href="http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/"&gt;http://www.udidahan.com/2008/12/29/building-super-scalable-web-systems-with-rest/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://highscalability.com/myspace-architecture" href="http://highscalability.com/myspace-architecture"&gt;http://highscalability.com/myspace-architecture&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://highscalability.com/plentyoffish-architecture" href="http://highscalability.com/plentyoffish-architecture"&gt;http://highscalability.com/plentyoffish-architecture&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;</description>
      <link>http://it.tmod.pl/Blog/EntryId/193/High-scalable-websites.aspx</link>
      <comments>http://it.tmod.pl/Blog/EntryId/193/High-scalable-websites.aspx#Comments</comments>
      <guid isPermaLink="true">http://it.tmod.pl/Blog/EntryId/193/High-scalable-websites.aspx</guid>
      <pubDate>Thu, 15 Oct 2009 07:18:31 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://it.tmod.pl/DesktopModules/Blog/Trackback.aspx?id=193</trackback:ping>
    </item>
  </channel>
</rss>