<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Felice Pollano Blog - Programming</title>
    <link>http://www.felicepollano.com/</link>
    <description>The official Fatica Labs Blog!</description>
    <language>en-us</language>
    <copyright>Felice Pollano</copyright>
    <lastBuildDate>Tue, 12 Feb 2013 08:37:14 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>felice@felicepollano.com</managingEditor>
    <webMaster>felice@felicepollano.com</webMaster>
    <item>
      <trackback:ping>http://www.felicepollano.com/Trackback.aspx?guid=d8e295cc-734b-41d7-ae94-29264822e7fd</trackback:ping>
      <pingback:server>http://www.felicepollano.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.felicepollano.com/PermaLink.aspx?guid=d8e295cc-734b-41d7-ae94-29264822e7fd</pingback:target>
      <dc:creator>Felice Pollano</dc:creator>
      <wfw:comment>http://www.felicepollano.com/CommentView.aspx?guid=d8e295cc-734b-41d7-ae94-29264822e7fd</wfw:comment>
      <wfw:commentRss>http://www.felicepollano.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d8e295cc-734b-41d7-ae94-29264822e7fd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
I’ve noticed that sometimes when developer want to embed in they own infrastructure
an external library they feel the needing of encapsulate that dependency in a common-versus-tool
library. So we have a plethora of, just for say CommonLogging, CommonIoC, CommonOrm
and so on, every one claiming the ability of “Just Plug The Tool”. 
</p>
        <p align="justify">
I would like to try to show why this is a tremendously ugly antipattern in my opinion,
by showing the side effects of this approach, and alternative solutions.
</p>
        <h2>
        </h2>
        <p align="justify">
        </p>
        <h4>1.CommonIoC or CommonServiceLocator (squared antipattern) 
</h4>
        <p align="justify">
The first impressive attempt is trying to insulate the IoC kernel we want to use.
So instead on having the application depending on the IoC, we just have the App depending
on the CommmonThing, we do some work in creating it, we have back nothing but a boring
piece of code to maintain. The spectacular attempt is when the encapsulated guy is
the service locator, that guy kill by its own the entire effort in code decoupling,
make component dependency obscure to everyone else but the developer who code the
component in the first week. So creating the common layer just multiply the side effects
and the result is a squared antipattern that scares any reasonable professional.
</p>
        <p align="justify">
The solution: In this case there is a pattern that is a real silver bullet : <a href="http://blog.ploeh.dk/2011/07/28/CompositionRoot.aspx" target="_blank">Composition
Root</a>. Just have the IoC used in a single point and have it’s effect propagating
trough all the application by using the proper IoC features: Inject into constructors,
use factories and have the IoC effect recursively propagate among all the application
without referring directly the kernel. In the root, use all the IoC features you have,
by not having the common thing around you, you have no lowest common denominator to
deal with. If you want to change the IoC in the future, you completely rewrite this
single file, and you will use all the new kernel features. You must avoid using byzantine
attributes for injecting your properties, if the IoC you mind to use need them, is
not the correct one. A side effect of this approach could be an increasing amount
of factories class. While this could be considered a problem some IoC offer some sort
of automatic factories, out of the box or with additional plugin. I’m not sure if
they help or not, i fear that code became too magic, and this will possibly violate
the “<a href="http://www.codinghorror.com/blog/2008/06/coding-for-violent-psychopaths.html" target="_blank">Coding
For a Violent Psycopaths</a>” principle. As a least consideration: IoC is for applications,
it is not for libraries. If you are writing an infrastructure reusable component,
you must not base it on any IoC strategy. Things are a little different if you are
creating a framework, and this framework leverages and offer services when an IoC
exist in the hosting application. Even in this case, instead of creating a common
thing, the framework should provide<strong> its own IoC abstraction,</strong> and
the hosting application must provide an adapter to the IoC currently used. The framework
abstraction must be designed in order to fully satisfy the framework requirements,
leaving the adapter implementer the challenge its own IoC. A good example of a framework
using the described strategy is <a href="http://caliburnmicro.codeplex.com/" target="_blank">Caliburn
Micro</a>.
</p>
        <p align="justify">
        </p>
        <h4>2.Common logging
</h4>
        <p align="justify">
Since every good appealing applications logs, this is a real temptation for the CommonLogging
beast. Even not considering the fact that the logging libraries used in production
are about two, why we need this? Please enumerate how many time you decide to drop
a logger in favour of another, end eve if this was the case, was really this refactoring
time jeopardizing the project? Another danger coming from the CommonBeast here is
the fact that being such a library “too small” to be justified, it can possibly collapse
in another anti pattern: “<em>The enterprise magic library</em>”, a library containing
a set of more or less useful thing that every developer want to maintain when new
stuff has to be added, and no one feel responsible when it breaks. 
</p>
        <p align="justify">
The solution: Is the same as above: define the logging interface in the library, and
let the application implement it. A great example on this comes form <a href="http://nhforge.org" target="_blank">NHibernate</a>.
NH was strictly bound with log4net till version 3.xxx, starting from there you can
implement its own abstract logging interface. Beautiful to have, NH uses log4net as
a default by dynamically loading it ( eliminating the needing of having log4net at
compile time ) degrading gracefully to the old behavior. 
</p>
        <h4>3.Common OR/M
</h4>
        <p align="justify">
This is probably the worst. An OR/m already introduce a sensible impedance toward
the database, adding an home made abstraction layer pretending to deal wit NH, EF
add another <strong>multiplying</strong> impedance to your application. Writing an
application that leverages an OR/M is usually a collection of best practices that
OR/M imposes to make the data access as faster as possible. Such trick are usually
difficult to abstract and you don’t know a lot of them until you face it.
</p>
        <p align="justify">
The solution: First solution is don’t do it at all. it is not a so strange scenario
to choose the or/m you want to use in the design phase, and bring it to production
and maintenance simply with that or/m. By the way software makes money when it does
what the customer want, not when is modified to follow the latest trend in data access.
Another less strict solution is to use the <em>“query object pattern”,</em> that does
not mean implement your ad hoc query provider, but means encapsulate each aggregates
operation in single classes responsible for all the data access, exposing proper and
useful methods to refine the query specialized for the aggregate. This allow a conceptually
easy refactoring if we want to change the OR/M. And by the way in an every day experience
scenario, you mostly don’t swap NH or EF, but more probably you want to change some
of your query object to use some micro OR/m for performance reason.
</p>
        <p align="justify">
        </p>
        <p align="justify">
The example series could be extended to the same degree of utility libraries we use.
A CommonMessaging the first one comes in mind.The point is that the “CommonThing”
is a worst practice, it gives us no advantages but just pain and problems, so use
all the effort to avoid it and focalize into the real problem.
</p>
        <img width="0" height="0" src="http://www.felicepollano.com/aggbug.ashx?id=d8e295cc-734b-41d7-ae94-29264822e7fd" />
      </body>
      <title>The Common “Thing” Antipattern</title>
      <guid isPermaLink="false">http://www.felicepollano.com/PermaLink.aspx?guid=d8e295cc-734b-41d7-ae94-29264822e7fd</guid>
      <link>http://www.felicepollano.com/2013/02/12/TheCommonThingAntipattern.aspx</link>
      <pubDate>Tue, 12 Feb 2013 08:37:14 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
I’ve noticed that sometimes when developer want to embed in they own infrastructure
an external library they feel the needing of encapsulate that dependency in a common-versus-tool
library. So we have a plethora of, just for say CommonLogging, CommonIoC, CommonOrm
and so on, every one claiming the ability of “Just Plug The Tool”. 
&lt;/p&gt;
&lt;p align="justify"&gt;
I would like to try to show why this is a tremendously ugly antipattern in my opinion,
by showing the side effects of this approach, and alternative solutions.
&lt;/p&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;p align="justify"&gt;
&lt;/p&gt;
&lt;h4&gt;1.CommonIoC or CommonServiceLocator (squared antipattern) 
&lt;/h4&gt;
&lt;p align="justify"&gt;
The first impressive attempt is trying to insulate the IoC kernel we want to use.
So instead on having the application depending on the IoC, we just have the App depending
on the CommmonThing, we do some work in creating it, we have back nothing but a boring
piece of code to maintain. The spectacular attempt is when the encapsulated guy is
the service locator, that guy kill by its own the entire effort in code decoupling,
make component dependency obscure to everyone else but the developer who code the
component in the first week. So creating the common layer just multiply the side effects
and the result is a squared antipattern that scares any reasonable professional.
&lt;/p&gt;
&lt;p align="justify"&gt;
The solution: In this case there is a pattern that is a real silver bullet : &lt;a href="http://blog.ploeh.dk/2011/07/28/CompositionRoot.aspx" target="_blank"&gt;Composition
Root&lt;/a&gt;. Just have the IoC used in a single point and have it’s effect propagating
trough all the application by using the proper IoC features: Inject into constructors,
use factories and have the IoC effect recursively propagate among all the application
without referring directly the kernel. In the root, use all the IoC features you have,
by not having the common thing around you, you have no lowest common denominator to
deal with. If you want to change the IoC in the future, you completely rewrite this
single file, and you will use all the new kernel features. You must avoid using byzantine
attributes for injecting your properties, if the IoC you mind to use need them, is
not the correct one. A side effect of this approach could be an increasing amount
of factories class. While this could be considered a problem some IoC offer some sort
of automatic factories, out of the box or with additional plugin. I’m not sure if
they help or not, i fear that code became too magic, and this will possibly violate
the “&lt;a href="http://www.codinghorror.com/blog/2008/06/coding-for-violent-psychopaths.html" target="_blank"&gt;Coding
For a Violent Psycopaths&lt;/a&gt;” principle. As a least consideration: IoC is for applications,
it is not for libraries. If you are writing an infrastructure reusable component,
you must not base it on any IoC strategy. Things are a little different if you are
creating a framework, and this framework leverages and offer services when an IoC
exist in the hosting application. Even in this case, instead of creating a common
thing, the framework should provide&lt;strong&gt; its own IoC abstraction,&lt;/strong&gt; and
the hosting application must provide an adapter to the IoC currently used. The framework
abstraction must be designed in order to fully satisfy the framework requirements,
leaving the adapter implementer the challenge its own IoC. A good example of a framework
using the described strategy is &lt;a href="http://caliburnmicro.codeplex.com/" target="_blank"&gt;Caliburn
Micro&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
&lt;/p&gt;
&lt;h4&gt;2.Common logging
&lt;/h4&gt;
&lt;p align="justify"&gt;
Since every good appealing applications logs, this is a real temptation for the CommonLogging
beast. Even not considering the fact that the logging libraries used in production
are about two, why we need this? Please enumerate how many time you decide to drop
a logger in favour of another, end eve if this was the case, was really this refactoring
time jeopardizing the project? Another danger coming from the CommonBeast here is
the fact that being such a library “too small” to be justified, it can possibly collapse
in another anti pattern: “&lt;em&gt;The enterprise magic library&lt;/em&gt;”, a library containing
a set of more or less useful thing that every developer want to maintain when new
stuff has to be added, and no one feel responsible when it breaks. 
&lt;/p&gt;
&lt;p align="justify"&gt;
The solution: Is the same as above: define the logging interface in the library, and
let the application implement it. A great example on this comes form &lt;a href="http://nhforge.org" target="_blank"&gt;NHibernate&lt;/a&gt;.
NH was strictly bound with log4net till version 3.xxx, starting from there you can
implement its own abstract logging interface. Beautiful to have, NH uses log4net as
a default by dynamically loading it ( eliminating the needing of having log4net at
compile time ) degrading gracefully to the old behavior. 
&lt;/p&gt;
&lt;h4&gt;3.Common OR/M
&lt;/h4&gt;
&lt;p align="justify"&gt;
This is probably the worst. An OR/m already introduce a sensible impedance toward
the database, adding an home made abstraction layer pretending to deal wit NH, EF
add another &lt;strong&gt;multiplying&lt;/strong&gt; impedance to your application. Writing an
application that leverages an OR/M is usually a collection of best practices that
OR/M imposes to make the data access as faster as possible. Such trick are usually
difficult to abstract and you don’t know a lot of them until you face it.
&lt;/p&gt;
&lt;p align="justify"&gt;
The solution: First solution is don’t do it at all. it is not a so strange scenario
to choose the or/m you want to use in the design phase, and bring it to production
and maintenance simply with that or/m. By the way software makes money when it does
what the customer want, not when is modified to follow the latest trend in data access.
Another less strict solution is to use the &lt;em&gt;“query object pattern”,&lt;/em&gt; that does
not mean implement your ad hoc query provider, but means encapsulate each aggregates
operation in single classes responsible for all the data access, exposing proper and
useful methods to refine the query specialized for the aggregate. This allow a conceptually
easy refactoring if we want to change the OR/M. And by the way in an every day experience
scenario, you mostly don’t swap NH or EF, but more probably you want to change some
of your query object to use some micro OR/m for performance reason.
&lt;/p&gt;
&lt;p align="justify"&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;
The example series could be extended to the same degree of utility libraries we use.
A CommonMessaging the first one comes in mind.The point is that the “CommonThing”
is a worst practice, it gives us no advantages but just pain and problems, so use
all the effort to avoid it and focalize into the real problem.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.felicepollano.com/aggbug.ashx?id=d8e295cc-734b-41d7-ae94-29264822e7fd" /&gt;</description>
      <comments>http://www.felicepollano.com/CommentView.aspx?guid=d8e295cc-734b-41d7-ae94-29264822e7fd</comments>
      <category>Programming</category>
      <category>pattern</category>
    </item>
    <item>
      <trackback:ping>http://www.felicepollano.com/Trackback.aspx?guid=3f38ac94-f950-424b-bc10-fcac70484cb6</trackback:ping>
      <pingback:server>http://www.felicepollano.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.felicepollano.com/PermaLink.aspx?guid=3f38ac94-f950-424b-bc10-fcac70484cb6</pingback:target>
      <dc:creator>Felice Pollano</dc:creator>
      <wfw:comment>http://www.felicepollano.com/CommentView.aspx?guid=3f38ac94-f950-424b-bc10-fcac70484cb6</wfw:comment>
      <wfw:commentRss>http://www.felicepollano.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3f38ac94-f950-424b-bc10-fcac70484cb6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I described the “typed factory” <a href="http://www.felicepollano.com/2012/04/25/NInjectTypedFactory.aspx" target="_blank">concept
here some days ago</a>. The solution we looked at was requiring the Castle DynamicProxy
dependency. If you want something simpler zero dependency and “just working” I creted
a little hacking factory: <a href="https://github.com/FelicePollano/Ninject.Extensions.AnyFactory" target="_blank">AnyFactory</a>.
It is really simple and does not requires any external dependency, and can be integrated
in your project by just adding a single file. I provided some documentation <a href="https://github.com/FelicePollano/Ninject.Extensions.AnyFactory/wiki" target="_blank">on
the project wiki</a>. The extension works by crafting a factory implementation using
Reflection.Emit. It does not requires to configure anything since a unresolved dependency
satisfying some restrictive rule is considered to be a factory, and the implementation
is produced in the background. 
</p>
        <p>
the rules for an interface to be consider a factory are:
</p>
        <ul>
          <li>
It is a public <em>interface</em></li>
          <li>
Each method name starts with <em>Create</em></li>
          <li>
Each method return something 
</li>
          <li>
There is no properties 
</li>
        </ul>
        <p>
The name is required to begin with <em>Create</em>, if it contains something <em>after
Create</em>, this is considered to be a named binding to solve. Construction parameters
can be specified, but there is a restriction: the parameter <strong>name</strong> should
match the implementation constructor <strong>parameter name</strong>. ANother limitation
is that we don’t support the “delegate” factory.
</p>
        <img width="0" height="0" src="http://www.felicepollano.com/aggbug.ashx?id=3f38ac94-f950-424b-bc10-fcac70484cb6" />
      </body>
      <title>Simplified NInject typed factory</title>
      <guid isPermaLink="false">http://www.felicepollano.com/PermaLink.aspx?guid=3f38ac94-f950-424b-bc10-fcac70484cb6</guid>
      <link>http://www.felicepollano.com/2012/04/27/SimplifiedNInjectTypedFactory.aspx</link>
      <pubDate>Fri, 27 Apr 2012 15:54:54 GMT</pubDate>
      <description>&lt;p&gt;
I described the “typed factory” &lt;a href="http://www.felicepollano.com/2012/04/25/NInjectTypedFactory.aspx" target="_blank"&gt;concept
here some days ago&lt;/a&gt;. The solution we looked at was requiring the Castle DynamicProxy
dependency. If you want something simpler zero dependency and “just working” I creted
a little hacking factory: &lt;a href="https://github.com/FelicePollano/Ninject.Extensions.AnyFactory" target="_blank"&gt;AnyFactory&lt;/a&gt;.
It is really simple and does not requires any external dependency, and can be integrated
in your project by just adding a single file. I provided some documentation &lt;a href="https://github.com/FelicePollano/Ninject.Extensions.AnyFactory/wiki" target="_blank"&gt;on
the project wiki&lt;/a&gt;. The extension works by crafting a factory implementation using
Reflection.Emit. It does not requires to configure anything since a unresolved dependency
satisfying some restrictive rule is considered to be a factory, and the implementation
is produced in the background. 
&lt;/p&gt;
&lt;p&gt;
the rules for an interface to be consider a factory are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
It is a public &lt;em&gt;interface&lt;/em&gt; 
&lt;li&gt;
Each method name starts with &lt;em&gt;Create&lt;/em&gt; 
&lt;li&gt;
Each method return something 
&lt;li&gt;
There is no properties 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The name is required to begin with &lt;em&gt;Create&lt;/em&gt;, if it contains something &lt;em&gt;after
Create&lt;/em&gt;, this is considered to be a named binding to solve. Construction parameters
can be specified, but there is a restriction: the parameter &lt;strong&gt;name&lt;/strong&gt; should
match the implementation constructor &lt;strong&gt;parameter name&lt;/strong&gt;. ANother limitation
is that we don’t support the “delegate” factory.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.felicepollano.com/aggbug.ashx?id=3f38ac94-f950-424b-bc10-fcac70484cb6" /&gt;</description>
      <comments>http://www.felicepollano.com/CommentView.aspx?guid=3f38ac94-f950-424b-bc10-fcac70484cb6</comments>
      <category>C#</category>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.felicepollano.com/Trackback.aspx?guid=47000489-9142-4393-805f-4fdef6beb53f</trackback:ping>
      <pingback:server>http://www.felicepollano.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.felicepollano.com/PermaLink.aspx?guid=47000489-9142-4393-805f-4fdef6beb53f</pingback:target>
      <dc:creator>Felice Pollano</dc:creator>
      <wfw:comment>http://www.felicepollano.com/CommentView.aspx?guid=47000489-9142-4393-805f-4fdef6beb53f</wfw:comment>
      <wfw:commentRss>http://www.felicepollano.com/SyndicationService.asmx/GetEntryCommentsRss?guid=47000489-9142-4393-805f-4fdef6beb53f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
Yesterday I had an interesting discussion with a colleague about using <strong>IoC</strong> in
the real world in a proper way, without falling back in the <a href="http://blog.ploeh.dk/2010/02/03/ServiceLocatorIsAnAntiPattern.aspx" target="_blank">Service
Locator Antipattern</a>, and of course without having a reference to the container,
that is just so horrible to not worth any word. So we both found the solution being
the use of factories, supplied by the container, to create the on-the-fly requested
components. I was used to craft these factories by hand, but I know is a little silly,
especially when the colleague talked about the <a href="http://stw.castleproject.org/Windsor.Typed-Factory-Facility.ashx" target="_blank">Castle(Windsor)
typed factories</a>. So quite interesting, but since I choose NInject as my IoC (
Castle was the first container I saw, and my first love too ) I felt the challenge
to implement the same but… Fortunately ( well, for say it would be nice being the
implementer ) <a href="http://www.planetgeek.ch/author/remo-gloor/" target="_blank">Remo
Gloor</a> provided a <a href="https://github.com/ninject/ninject.extensions.factory" target="_blank">NInject
extension</a> that does almost the same for this other beautiful container. A nice
documentation is also available on the <a href="https://github.com/ninject/ninject.extensions.factory/wiki" target="_blank">Github
repository</a>. So thanks to a discussion I improved my programming knowledge, the
Ninject.extensios.factoy is added to my toolbox <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="A bocca aperta" src="http://www.felicepollano.com/public/Windows-Live-Writer/NInject-Type-Factory_EA20/wlEmoticon-openmouthedsmile_2.png" /></p>
        <img width="0" height="0" src="http://www.felicepollano.com/aggbug.ashx?id=47000489-9142-4393-805f-4fdef6beb53f" />
      </body>
      <title>NInject Typed Factory</title>
      <guid isPermaLink="false">http://www.felicepollano.com/PermaLink.aspx?guid=47000489-9142-4393-805f-4fdef6beb53f</guid>
      <link>http://www.felicepollano.com/2012/04/25/NInjectTypedFactory.aspx</link>
      <pubDate>Wed, 25 Apr 2012 14:58:04 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
Yesterday I had an interesting discussion with a colleague about using &lt;strong&gt;IoC&lt;/strong&gt; in
the real world in a proper way, without falling back in the &lt;a href="http://blog.ploeh.dk/2010/02/03/ServiceLocatorIsAnAntiPattern.aspx" target="_blank"&gt;Service
Locator Antipattern&lt;/a&gt;, and of course without having a reference to the container,
that is just so horrible to not worth any word. So we both found the solution being
the use of factories, supplied by the container, to create the on-the-fly requested
components. I was used to craft these factories by hand, but I know is a little silly,
especially when the colleague talked about the &lt;a href="http://stw.castleproject.org/Windsor.Typed-Factory-Facility.ashx" target="_blank"&gt;Castle(Windsor)
typed factories&lt;/a&gt;. So quite interesting, but since I choose NInject as my IoC (
Castle was the first container I saw, and my first love too ) I felt the challenge
to implement the same but… Fortunately ( well, for say it would be nice being the
implementer ) &lt;a href="http://www.planetgeek.ch/author/remo-gloor/" target="_blank"&gt;Remo
Gloor&lt;/a&gt; provided a &lt;a href="https://github.com/ninject/ninject.extensions.factory" target="_blank"&gt;NInject
extension&lt;/a&gt; that does almost the same for this other beautiful container. A nice
documentation is also available on the &lt;a href="https://github.com/ninject/ninject.extensions.factory/wiki" target="_blank"&gt;Github
repository&lt;/a&gt;. So thanks to a discussion I improved my programming knowledge, the
Ninject.extensios.factoy is added to my toolbox &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="A bocca aperta" src="http://www.felicepollano.com/public/Windows-Live-Writer/NInject-Type-Factory_EA20/wlEmoticon-openmouthedsmile_2.png"&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.felicepollano.com/aggbug.ashx?id=47000489-9142-4393-805f-4fdef6beb53f" /&gt;</description>
      <comments>http://www.felicepollano.com/CommentView.aspx?guid=47000489-9142-4393-805f-4fdef6beb53f</comments>
      <category>CSharp</category>
      <category>Programming</category>
    </item>
  </channel>
</rss>