<?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>.Hibri - .Net Web</title>
    <link>http://www.hibri.net/</link>
    <description>Thoughts on the craft of building software</description>
    <language>en-gb</language>
    <copyright>Hibri Marzook</copyright>
    <lastBuildDate>Sat, 05 Jul 2008 15:09:35 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>hibri@hibri.net</managingEditor>
    <webMaster>hibri@hibri.net</webMaster>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=6138a7a8-9023-4789-a225-8bb7ef857a77</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,6138a7a8-9023-4789-a225-8bb7ef857a77.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,6138a7a8-9023-4789-a225-8bb7ef857a77.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=6138a7a8-9023-4789-a225-8bb7ef857a77</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When trying to order pizza today, I get this error on the <a title="Pizza hut website crashes" href="http://www.pizzahut.co.uk/" target="_blank">Pizza
Hut</a> web site. The site crashed when making my transaction , and I had to call
the bank  to check if the transaction went through.
</p>
        <p>
          <a href="http://www.hibri.net/content/binary/WindowsLiveWriter/313911e61d04_C78E/pizza-hut-error_2.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="pizza-hut-error" src="http://www.hibri.net/content/binary/WindowsLiveWriter/313911e61d04_C78E/pizza-hut-error_thumb.png" width="644" height="391" />
          </a>
        </p>
        <p>
Is it really that hard to show some care when  running a web site ? I mean, it
doesn't take a lot to turn on  <a title="customErrors element" href="http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx" target="_blank">Custom
Error pages on the web.config</a> and turn off <a title="Asp.net web.config debug mode" href="http://blogs.msdn.com/tess/archive/2006/04/13/575364.aspx" target="_blank">debug
mode.</a> Having this sort of error shown on a public web site that is getting a lot
of traffic shows <a href="http://www.adactus.co.uk/" target="_blank">lack of care,
lack of planning and un-professionalism by whoever built and runs this site</a>. Expecting
something to fail and handling the failure gracefully shows that the developer has
planned for the unexpected. But not in this instance.  From this it is likely
that the site owners didn't use some decent infrastructure to handle fail over, they
didn't think of what could go wrong. I was still getting this for about an hour means
that they don't have anyway of getting notified to fix it. 99% uptime ? Nah, not for
us. 
</p>
        <p>
Would I trust my credit card details with them again ? Nope..
</p>
        <p>
Maybe it was because they used business <a href="http://www.rackspace.co.uk/default.asp?docId=14682&amp;productGroupId=15884" target="_blank">objects
written by Van Halen</a>.
</p>
      </body>
      <title>99% Uptime ? Nah not for us..</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,6138a7a8-9023-4789-a225-8bb7ef857a77.aspx</guid>
      <link>http://www.hibri.net/2008/07/05/99UptimeNahNotForUs.aspx</link>
      <pubDate>Sat, 05 Jul 2008 15:09:35 GMT</pubDate>
      <description>&lt;p&gt;
When trying to order pizza today, I get this error on the &lt;a title="Pizza hut website crashes" href="http://www.pizzahut.co.uk/" target="_blank"&gt;Pizza
Hut&lt;/a&gt; web site. The site crashed when making my transaction , and I had to call
the bank&amp;nbsp; to check if the transaction went through.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.hibri.net/content/binary/WindowsLiveWriter/313911e61d04_C78E/pizza-hut-error_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="pizza-hut-error" src="http://www.hibri.net/content/binary/WindowsLiveWriter/313911e61d04_C78E/pizza-hut-error_thumb.png" width="644" height="391"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Is it really that hard to show some care when&amp;nbsp; running a web site ? I mean, it
doesn't take a lot to turn on&amp;nbsp; &lt;a title="customErrors element" href="http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx" target="_blank"&gt;Custom
Error pages on the web.config&lt;/a&gt; and turn off &lt;a title="Asp.net web.config debug mode" href="http://blogs.msdn.com/tess/archive/2006/04/13/575364.aspx" target="_blank"&gt;debug
mode.&lt;/a&gt; Having this sort of error shown on a public web site that is getting a lot
of traffic shows &lt;a href="http://www.adactus.co.uk/" target="_blank"&gt;lack of care,
lack of planning and un-professionalism by whoever built and runs this site&lt;/a&gt;. Expecting
something to fail and handling the failure gracefully shows that the developer has
planned for the unexpected. But not in this instance.&amp;nbsp; From this it is likely
that the site owners didn't use some decent infrastructure to handle fail over, they
didn't think of what could go wrong. I was still getting this for about an hour means
that they don't have anyway of getting notified to fix it. 99% uptime ? Nah, not for
us. 
&lt;/p&gt;
&lt;p&gt;
Would I trust my credit card details with them again ? Nope..
&lt;/p&gt;
&lt;p&gt;
Maybe it was because they used business &lt;a href="http://www.rackspace.co.uk/default.asp?docId=14682&amp;amp;productGroupId=15884" target="_blank"&gt;objects
written by Van Halen&lt;/a&gt;.
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,6138a7a8-9023-4789-a225-8bb7ef857a77.aspx</comments>
      <category>.Net Web</category>
      <category>High Availability</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=a14908b0-989c-4f6d-897a-fad02c4123e6</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,a14908b0-989c-4f6d-897a-fad02c4123e6.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,a14908b0-989c-4f6d-897a-fad02c4123e6.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a14908b0-989c-4f6d-897a-fad02c4123e6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
 <a href="http://blogs.msdn.com/velocity/" target="_blank">a distributed cache
solution for ASP .Net</a>, and its from MS at last. About time there was a solution
to the age old problem of session state and scalability. Its in CTP right now, and
looking forward to having this in a standard .net distribution.
</p>
      </body>
      <title>Velocity</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,a14908b0-989c-4f6d-897a-fad02c4123e6.aspx</guid>
      <link>http://www.hibri.net/2008/06/07/Velocity.aspx</link>
      <pubDate>Sat, 07 Jun 2008 02:27:42 GMT</pubDate>
      <description>&lt;p&gt;
&amp;nbsp;&lt;a href="http://blogs.msdn.com/velocity/" target="_blank"&gt;a distributed cache
solution for ASP .Net&lt;/a&gt;, and its from MS at last. About time there was a solution
to the age old problem of session state and scalability. Its in CTP right now, and
looking forward to having this in a standard .net distribution.
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,a14908b0-989c-4f6d-897a-fad02c4123e6.aspx</comments>
      <category>.Net Web</category>
      <category>High Availability</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=b81af2a9-36b0-4cfc-99f3-e97a73e3d490</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,b81af2a9-36b0-4cfc-99f3-e97a73e3d490.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,b81af2a9-36b0-4cfc-99f3-e97a73e3d490.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b81af2a9-36b0-4cfc-99f3-e97a73e3d490</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
VS 2008 throws a COM Exception when loading a web application project. This happens
when the project was made in VS 2005 and upgraded using the Upgrade Wizard. It loads
web application projects made natively without a problem. There is a work around if
this happens to you.
</p>
        <p>
Via <a title="http://www.codeattest.com/blogs/martin/2008/01/comexception-loading-solution.html" href="http://www.codeattest.com/blogs/martin/2008/01/comexception-loading-solution.html">http://www.codeattest.com/blogs/martin/2008/01/comexception-loading-solution.html</a></p>
        <p>
          <em>"In order to load the Web Application Project you must make sure that the URL
that the project is using, is valid and can be resolved. This can happen pretty often
since when you download a project from source control for the first time, it is highly
unlikely that you will have the web site already set up."</em>
        </p>
        <p>
 
</p>
        <p>
If this happens to you, the project will not load and will be grayed out in the solution
explorer. Right click and edit the project, (or edit the .csproj file in notepad)
look for the WebProjectProperties element. Check if the IISUrl child element points
to a valid location. The server should exists, and the virtual directory should point
to the same location as the web application project.
</p>
      </body>
      <title>COM Exception while loading a Web Application Project</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,b81af2a9-36b0-4cfc-99f3-e97a73e3d490.aspx</guid>
      <link>http://www.hibri.net/2008/03/01/COMExceptionWhileLoadingAWebApplicationProject.aspx</link>
      <pubDate>Sat, 01 Mar 2008 13:17:44 GMT</pubDate>
      <description>&lt;p&gt;
VS 2008 throws a COM Exception when loading a web application project. This happens
when the project was made in VS 2005 and upgraded using the Upgrade Wizard. It loads
web application projects made natively without a problem. There is a work around if
this happens to you.
&lt;/p&gt;
&lt;p&gt;
Via &lt;a title="http://www.codeattest.com/blogs/martin/2008/01/comexception-loading-solution.html" href="http://www.codeattest.com/blogs/martin/2008/01/comexception-loading-solution.html"&gt;http://www.codeattest.com/blogs/martin/2008/01/comexception-loading-solution.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"In order to load the Web Application Project you must make sure that the URL
that the project is using, is valid and can be resolved. This can happen pretty often
since when you download a project from source control for the first time, it is highly
unlikely that you will have the web site already set up."&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
If this happens to you, the project will not load and will be grayed out in the solution
explorer. Right click and edit the project, (or edit the .csproj file in notepad)
look for the WebProjectProperties element. Check if the IISUrl child element points
to a valid location. The server should exists, and the virtual directory should point
to the same location as the web application project.
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,b81af2a9-36b0-4cfc-99f3-e97a73e3d490.aspx</comments>
      <category>.Net General</category>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=b4bc272c-fb18-4d32-be2b-923afc493523</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,b4bc272c-fb18-4d32-be2b-923afc493523.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,b4bc272c-fb18-4d32-be2b-923afc493523.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b4bc272c-fb18-4d32-be2b-923afc493523</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Many web applications have a back end "admin" pages to manage tables in the database. 
These pages exist solely to perform CRUD operations against a single table. Sometimes
with a bit of validation.
</p>
        <p>
It is tedious work if you have to create and write the same code  for each table
and to maintain them. To make this task somewhat easier, there are solutions that
look at the database structure, and generate the data access code and the asp.net
pages.
</p>
        <p>
The latest and greatest of them is <a href="http://weblogs.asp.net/scottgu/archive/2007/12/14/new-asp-net-dynamic-data-support.aspx" target="_blank">ASP
.Net Dynamic data</a>. This uses LINQ to SQL for data access. Its quite easy to get
a site up and running using this.
</p>
        <p>
          <a href="http://www.castleproject.org/monorail/documentation/v1rc2/integration/arscaffold.html" target="_blank">Mono
Rail</a> has an ActiveRecord scaffold.  This uses Castle ActiveRecord and Nhibernate
to generate the scaffold. However, this doesn't generate the database to object model
mapping automatically.  Classes that inherent from an ActiveRecord base have
to be created first. Fields and relationships have to be defined in code. When this
is done its all a breeze. Its a good way to get to grips with MonoRail.
</p>
        <p>
 
</p>
        <p>
          <a href="http://www.subsonicproject.com/" target="_blank">Subsonic</a> which I'm using
on a project now, has two methods of operation. It has a set of scaffold controls
which you can use on any asp.net pages to get CRUD functionality, and it also has
the option to generate the asp.net pages and the data classes. The data classes generated
by subsonic use the active record pattern too. The code generated by subsonic can
be modified if you need to do so. After the code is generated these are normal asp.net
pages to which you can add validation, combine with master pages etc..
</p>
        <p>
Subsonic and Asp.Net dynamic data offer the quickest way to get up and running. 
Subsonic and MonoRail offer the possibility to extend the application when things
get more complex. The data classes generated can be reused when the application grows
beyond a simple prototype or admin section.
</p>
      </body>
      <title>Scaffolding with ASP.Net</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,b4bc272c-fb18-4d32-be2b-923afc493523.aspx</guid>
      <link>http://www.hibri.net/2008/01/24/ScaffoldingWithASPNet.aspx</link>
      <pubDate>Thu, 24 Jan 2008 21:53:00 GMT</pubDate>
      <description>&lt;p&gt;
Many web applications have a back end "admin" pages to manage tables in the database.&amp;nbsp;
These pages exist solely to perform CRUD operations against a single table. Sometimes
with a bit of validation.
&lt;/p&gt;
&lt;p&gt;
It is tedious work if you have to create and write the same code&amp;nbsp; for each table
and to maintain them. To make this task somewhat easier, there are solutions that
look at the database structure, and generate the data access code and the asp.net
pages.
&lt;/p&gt;
&lt;p&gt;
The latest and greatest of them is &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/12/14/new-asp-net-dynamic-data-support.aspx" target="_blank"&gt;ASP
.Net Dynamic data&lt;/a&gt;. This uses LINQ to SQL for data access. Its quite easy to get
a site up and running using this.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.castleproject.org/monorail/documentation/v1rc2/integration/arscaffold.html" target="_blank"&gt;Mono
Rail&lt;/a&gt; has an ActiveRecord scaffold.&amp;nbsp; This uses Castle ActiveRecord and Nhibernate
to generate the scaffold. However, this doesn't generate the database to object model
mapping automatically.&amp;nbsp; Classes that inherent from an ActiveRecord base have
to be created first. Fields and relationships have to be defined in code. When this
is done its all a breeze. Its a good way to get to grips with MonoRail.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.subsonicproject.com/" target="_blank"&gt;Subsonic&lt;/a&gt; which I'm using
on a project now, has two methods of operation. It has a set of scaffold controls
which you can use on any asp.net pages to get CRUD functionality, and it also has
the option to generate the asp.net pages and the data classes. The data classes generated
by subsonic use the active record pattern too. The code generated by subsonic can
be modified if you need to do so. After the code is generated these are normal asp.net
pages to which you can add validation, combine with master pages etc..
&lt;/p&gt;
&lt;p&gt;
Subsonic and Asp.Net dynamic data offer the quickest way to get up and running.&amp;nbsp;
Subsonic and MonoRail offer the possibility to extend the application when things
get more complex. The data classes generated can be reused when the application grows
beyond a simple prototype or admin section.
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,b4bc272c-fb18-4d32-be2b-923afc493523.aspx</comments>
      <category>.Net Data</category>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=ee207fe9-e1ca-4c61-91b2-0c19c7ec5af7</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,ee207fe9-e1ca-4c61-91b2-0c19c7ec5af7.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,ee207fe9-e1ca-4c61-91b2-0c19c7ec5af7.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=ee207fe9-e1ca-4c61-91b2-0c19c7ec5af7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="DevConnections - The ASP.NET MVC Framework" href="http://feeds.feedburner.com/~r/ScottHanselman/~3/181552579/DevConnectionsTheASPNETMVCFramework.aspx">DevConnections
- The ASP.NET MVC Framework</a>
        </p>
        <p>
ASP .Net MVC != Web Forms 4.0
</p>
        <p>
          <em>"One important point I kept stressing in the talk was that this is designed to
be compatible with the ASP.NET subsystems you already use. That means Session, Cache,
Personalization, Roles, Membership, etc, still work and are there to be used and abused.
This framework, in the namespace System.Web.Mvc, is an alternate architecture, but <strong>not </strong>"an
entirely new parallel ASP.NET," no more than any of the other home-grown or open source
MVC/MVP frameworks that are out there"</em>
        </p>
      </body>
      <title>Scott H on ASP.Net MVC</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,ee207fe9-e1ca-4c61-91b2-0c19c7ec5af7.aspx</guid>
      <link>http://www.hibri.net/2007/11/08/ScottHOnASPNetMVC.aspx</link>
      <pubDate>Thu, 08 Nov 2007 11:41:40 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="DevConnections - The ASP.NET MVC Framework" href="http://feeds.feedburner.com/~r/ScottHanselman/~3/181552579/DevConnectionsTheASPNETMVCFramework.aspx"&gt;DevConnections
- The ASP.NET MVC Framework&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
ASP .Net MVC != Web Forms 4.0
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"One important point I kept stressing in the talk was that this is designed to
be compatible with the ASP.NET subsystems you already use. That means Session, Cache,
Personalization, Roles, Membership, etc, still work and are there to be used and abused.
This framework, in the namespace System.Web.Mvc, is an alternate architecture, but &lt;strong&gt;not &lt;/strong&gt;"an
entirely new parallel ASP.NET," no more than any of the other home-grown or open source
MVC/MVP frameworks that are out there"&lt;/em&gt;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,ee207fe9-e1ca-4c61-91b2-0c19c7ec5af7.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=346e5c1f-fd27-42a1-9d69-56bc41f25992</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,346e5c1f-fd27-42a1-9d69-56bc41f25992.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,346e5c1f-fd27-42a1-9d69-56bc41f25992.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=346e5c1f-fd27-42a1-9d69-56bc41f25992</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Going through my RSS reader today and catching up ..
</p>
        <p>
          <a title="http://blogs.iis.net/bills/archive/2007/05/07/iis-vs-apache.aspx" href="http://blogs.iis.net/bills/archive/2007/05/07/iis-vs-apache.aspx">http://blogs.iis.net/bills/archive/2007/05/07/iis-vs-apache.aspx</a>
        </p>
      </body>
      <title>Apache vs IIS 7</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,346e5c1f-fd27-42a1-9d69-56bc41f25992.aspx</guid>
      <link>http://www.hibri.net/2007/07/24/ApacheVsIIS7.aspx</link>
      <pubDate>Tue, 24 Jul 2007 14:52:52 GMT</pubDate>
      <description>&lt;p&gt;
Going through my RSS reader today and catching up ..
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://blogs.iis.net/bills/archive/2007/05/07/iis-vs-apache.aspx" href="http://blogs.iis.net/bills/archive/2007/05/07/iis-vs-apache.aspx"&gt;http://blogs.iis.net/bills/archive/2007/05/07/iis-vs-apache.aspx&lt;/a&gt;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,346e5c1f-fd27-42a1-9d69-56bc41f25992.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=b0c6ada8-80d3-461a-b43b-e121cc391090</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,b0c6ada8-80d3-461a-b43b-e121cc391090.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,b0c6ada8-80d3-461a-b43b-e121cc391090.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b0c6ada8-80d3-461a-b43b-e121cc391090</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Nikhil K has released a development framework for creating Facebook applications with
ASP .Net.
</p>
        <p>
          <a title="http://www.nikhilk.net/Entry.aspx?id=167" href="http://www.nikhilk.net/Entry.aspx?id=167">http://www.nikhilk.net/Entry.aspx?id=167</a>
        </p>
        <p>
There is also this
</p>
        <p>
          <a title="http://www.codeplex.com/FacebookToolkit" href="http://www.codeplex.com/FacebookToolkit">http://www.codeplex.com/FacebookToolkit</a>
        </p>
      </body>
      <title>Facebook .Net</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,b0c6ada8-80d3-461a-b43b-e121cc391090.aspx</guid>
      <link>http://www.hibri.net/2007/07/24/FacebookNet.aspx</link>
      <pubDate>Tue, 24 Jul 2007 10:49:36 GMT</pubDate>
      <description>&lt;p&gt;
Nikhil K has released a development framework for creating Facebook applications with
ASP .Net.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.nikhilk.net/Entry.aspx?id=167" href="http://www.nikhilk.net/Entry.aspx?id=167"&gt;http://www.nikhilk.net/Entry.aspx?id=167&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
There is also this
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.codeplex.com/FacebookToolkit" href="http://www.codeplex.com/FacebookToolkit"&gt;http://www.codeplex.com/FacebookToolkit&lt;/a&gt;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,b0c6ada8-80d3-461a-b43b-e121cc391090.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=37ab6aa3-ead9-4ae3-b9f3-4ac15949f590</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,37ab6aa3-ead9-4ae3-b9f3-4ac15949f590.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,37ab6aa3-ead9-4ae3-b9f3-4ac15949f590.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=37ab6aa3-ead9-4ae3-b9f3-4ac15949f590</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The latest addition to patterns and practices
</p>
        <p>
          <a title="http://www.codeplex.com/PerfTestingGuide/Release/ProjectReleases.aspx?ReleaseId=4479" href="http://www.codeplex.com/PerfTestingGuide/Release/ProjectReleases.aspx?ReleaseId=4479">http://www.codeplex.com/PerfTestingGuide/Release/ProjectReleases.aspx?ReleaseId=4479</a>
        </p>
      </body>
      <title>Performance testing guidance for web applications released</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,37ab6aa3-ead9-4ae3-b9f3-4ac15949f590.aspx</guid>
      <link>http://www.hibri.net/2007/05/29/PerformanceTestingGuidanceForWebApplicationsReleased.aspx</link>
      <pubDate>Tue, 29 May 2007 10:17:18 GMT</pubDate>
      <description>&lt;p&gt;
The latest addition to patterns and practices
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.codeplex.com/PerfTestingGuide/Release/ProjectReleases.aspx?ReleaseId=4479" href="http://www.codeplex.com/PerfTestingGuide/Release/ProjectReleases.aspx?ReleaseId=4479"&gt;http://www.codeplex.com/PerfTestingGuide/Release/ProjectReleases.aspx?ReleaseId=4479&lt;/a&gt;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,37ab6aa3-ead9-4ae3-b9f3-4ac15949f590.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=1b87441f-5b7b-4c32-b0d0-daa086b45b6e</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,1b87441f-5b7b-4c32-b0d0-daa086b45b6e.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,1b87441f-5b7b-4c32-b0d0-daa086b45b6e.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1b87441f-5b7b-4c32-b0d0-daa086b45b6e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://weblogs.asp.net/scottgu/archive/2007/04/02/iis-7-0.aspx">Scott blogs
about the new features in IIS 7.0</a> server version coming out later this year. One
set of features that I think is really really amazing :
</p>
        <p>
          <em>"The web farm support in particular is really cool, and will allow you to deploy
your web applications on a file-share that contains all of the code, configuration,
content, and encryption keys needed to run a server.  You can then add any
number of stateless and configuration-less web-servers into a web farm and just point
them at the file-server to dynamically load their configuration settings (including
bindings, virtual directories, app pool settings, etc) and application content. 
This makes it trivial to scale out applications across machines, and avoid having
to use replication schemes for configuration and application deployment (just
copy over the files on the file-share and all of the machines in the web farm will
immediately pick up the changes). "</em>
        </p>
        <p>
I already use source control to deploy files to the web farm so replication is not
a big issue, but it is a pain to configure sites for the first time on each server.
</p>
        <p>
          <a href="http://msdn.microsoft.com/msdnmag/issues/07/03/IIS7/">More on this</a>
        </p>
      </body>
      <title>New features in IIS 7.0</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,1b87441f-5b7b-4c32-b0d0-daa086b45b6e.aspx</guid>
      <link>http://www.hibri.net/2007/04/03/NewFeaturesInIIS70.aspx</link>
      <pubDate>Tue, 03 Apr 2007 09:15:55 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/04/02/iis-7-0.aspx"&gt;Scott blogs
about the new features in IIS 7.0&lt;/a&gt; server version coming out later this year. One
set of features that I think is really really amazing :
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"The web farm support in particular is really cool, and will allow you to deploy
your web applications on a file-share that contains all of the code, configuration,
content, and encryption keys needed to run a server.&amp;nbsp; You can then&amp;nbsp;add any
number of stateless and configuration-less web-servers into a web farm and just point
them at the file-server to dynamically load their configuration settings (including
bindings, virtual directories, app pool settings, etc) and application content.&amp;nbsp;
This makes it trivial to scale out applications across machines, and avoid having
to use replication schemes for&amp;nbsp;configuration and application deployment (just
copy over the files on the file-share and all of the machines in the web farm will
immediately pick up the changes).&amp;nbsp;"&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
I already use source control to deploy files to the web farm so replication is not
a big issue, but it is a pain to configure sites for the first time on each server.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/msdnmag/issues/07/03/IIS7/"&gt;More on this&lt;/a&gt;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,1b87441f-5b7b-4c32-b0d0-daa086b45b6e.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=603ad07e-ccea-4e7d-8c67-a169e66e944d</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,603ad07e-ccea-4e7d-8c67-a169e66e944d.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,603ad07e-ccea-4e7d-8c67-a169e66e944d.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=603ad07e-ccea-4e7d-8c67-a169e66e944d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have situations where I need the domain name and the application path of the current
page (request ).
</p>
        <p>
if the current request was <strong>http://www.myserver.com/website1/page.aspx</strong></p>
        <p>
I need <strong>http://www.myserver.com/website1</strong>. Though the web.config can
store this setting, I don't want to change the config each time I move the site between
servers.
</p>
        <p>
So here is a little function I wrote.
</p>
        <p>
Request.Url.AbsoluteUri   gives <strong>http://www.myserver.com/website1/page.aspx</strong></p>
        <p>
Request.ApplicationPath gives /website1/. Subtract page.aspx from http://www.myserver.com/website1/page.aspx
</p>
        <p>
 
</p>
        <p>
          <span style="color: blue">public</span>
          <span style="color: blue">static</span>
          <span style="color: blue">string</span> GetSiteUrl()
{
</p>
        <blockquote>
          <p>
if (HttpContext.Current.Request.ApplicationPath == "/") {<br />
     return "/"<br />
}
</p>
        </blockquote>
        <p>
          <span style="color: blue">string</span> url
= HttpContext.Current.Request.Url.AbsoluteUri;<br />
            <span style="color: blue">int</span> end
= url.IndexOf(HttpContext.Current.Request.ApplicationPath) + 
<br />
                 
HttpContext.Current.Request.ApplicationPath.Length;<br />
            url = url.Substring(<span style="color: maroon">0</span>,
end);<br />
            <span style="color: blue">return</span> url;<br />
        }
</p>
        <pre> </pre>
      </body>
      <title>How to get the root url of the current site</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,603ad07e-ccea-4e7d-8c67-a169e66e944d.aspx</guid>
      <link>http://www.hibri.net/2007/01/16/HowToGetTheRootUrlOfTheCurrentSite.aspx</link>
      <pubDate>Tue, 16 Jan 2007 11:17:33 GMT</pubDate>
      <description>&lt;p&gt;
I have situations where I need the domain name and the application path of the current
page (request ).
&lt;/p&gt;
&lt;p&gt;
if the current request was &lt;strong&gt;http://www.myserver.com/website1/page.aspx&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I need &lt;strong&gt;http://www.myserver.com/website1&lt;/strong&gt;. Though the web.config can
store this setting, I don't want to change the config each time I move the site between
servers.
&lt;/p&gt;
&lt;p&gt;
So here is a little function I wrote.
&lt;/p&gt;
&lt;p&gt;
Request.Url.AbsoluteUri&amp;nbsp;&amp;nbsp; gives &lt;strong&gt;http://www.myserver.com/website1/page.aspx&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Request.ApplicationPath gives /website1/. Subtract page.aspx from http://www.myserver.com/website1/page.aspx
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;static&lt;/span&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; GetSiteUrl()
{
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
if (HttpContext.Current.Request.ApplicationPath == "/") {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "/"&lt;br&gt;
}
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: blue"&gt;string&lt;/span&gt; url
= HttpContext.Current.Request.Url.AbsoluteUri;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;int&lt;/span&gt; end
= url.IndexOf(HttpContext.Current.Request.ApplicationPath) + 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
HttpContext.Current.Request.ApplicationPath.Length;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url = url.Substring(&lt;span style="color: maroon"&gt;0&lt;/span&gt;,
end);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;return&lt;/span&gt; url;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/p&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,603ad07e-ccea-4e7d-8c67-a169e66e944d.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=9ea85245-7bca-4149-9c45-c7843ec41d41</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,9ea85245-7bca-4149-9c45-c7843ec41d41.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,9ea85245-7bca-4149-9c45-c7843ec41d41.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9ea85245-7bca-4149-9c45-c7843ec41d41</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Have you checked out the speakers list ? <a title="http://www.webdd.org.uk/Speakers.aspx" href="http://www.webdd.org.uk/Speakers.aspx">http://www.webdd.org.uk/Speakers.aspx</a>.
Do not miss this if you are a serious web dev.
</p>
        <div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:7bc15445-00a7-4e43-8116-6c1438eff45d" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">del.icio.us
tags: <a href="http://del.icio.us/popular/webdd" rel="tag">webdd</a></div>
      </body>
      <title>WebDD</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,9ea85245-7bca-4149-9c45-c7843ec41d41.aspx</guid>
      <link>http://www.hibri.net/2007/01/13/WebDD.aspx</link>
      <pubDate>Sat, 13 Jan 2007 20:33:56 GMT</pubDate>
      <description>&lt;p&gt;
Have you checked out the speakers list ? &lt;a title="http://www.webdd.org.uk/Speakers.aspx" href="http://www.webdd.org.uk/Speakers.aspx"&gt;http://www.webdd.org.uk/Speakers.aspx&lt;/a&gt;.
Do not miss this if you are a serious web dev.
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:7bc15445-00a7-4e43-8116-6c1438eff45d" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;del.icio.us
tags: &lt;a href="http://del.icio.us/popular/webdd" rel="tag"&gt;webdd&lt;/a&gt;
&lt;/div&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,9ea85245-7bca-4149-9c45-c7843ec41d41.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=a9bdc3a7-5ba4-4471-b1a0-c58c286018df</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,a9bdc3a7-5ba4-4471-b1a0-c58c286018df.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,a9bdc3a7-5ba4-4471-b1a0-c58c286018df.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a9bdc3a7-5ba4-4471-b1a0-c58c286018df</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
During the past couple of weeks I've been evaluating content management systems. My
core requirements were; 
</p>
        <p>
1. Built with C#, .Net 2.0 
</p>
        <p>
2. Modular structure like SharePoint. 
</p>
        <p>
3. Granular permissions. Page and section level. 
</p>
        <p>
4. CSS and XHTML support. 
</p>
        <p>
I started building one from scratch; I wanted the CMS to leverage all the features
of ASP .Net 2.0, such as master pages, membership and themes. The open source solutions
didn’t impress me much. Dotnetnuke did not have a lot of flexibility (for me). I didn’t
spend too much time with DNN because it was written in VB .Net. 
</p>
        <p>
While I was building my CMS, I found <a href="http://www.sitefinity.com">Sitefinity</a> built
by <a href="http://ww.telerik.com">Telerik</a>. Sitefinity is a pure .Net 2.0 solution.
Written in C# and a killer feature is that it comes with the Telerik rad controls.
The upcoming 3.0 version uses master pages for layout. The CMS engine detects the
placeholder controls and uses them as containers for CMS driven content. 
</p>
        <p>
Extending Sitefinity is as easy as opening the generated website in Visual Studio
as a web project. The experience is analogous to a situation where someone had already
written the core CMS and given the project to extend. Sitefinity host simple ASP .Net
controls. So developing a solution is the same as any other ASP .Net project. This
is a big advantage for me, as I don’t have to go and learn a new framework. Sitefinity
uses the native ASP .Net provider model. This makes Sitefinity come close to SharePoint
2007. This all applies to v3.0; the previous version 2.7 does not use master pages
and recursive table layout model, which did not support CSS layouts. Version 3.0 is
in beta, with the final release in February. 
</p>
        <p>
So if you are developing content management systems, Sitefinity definitely should
be on top of your list. 
</p>
        <p>
PS : This is not a free solution, but well worth the money it in my opinion.
Telerik should be banging the drum on this one :).
</p>
        <p>
PPS : I don't work for Telerik, though my company has purchased an enterprise licence.
</p>
      </body>
      <title>Sitefinity</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,a9bdc3a7-5ba4-4471-b1a0-c58c286018df.aspx</guid>
      <link>http://www.hibri.net/2007/01/13/Sitefinity.aspx</link>
      <pubDate>Sat, 13 Jan 2007 20:23:51 GMT</pubDate>
      <description>&lt;p&gt;
During the past couple of weeks I've been evaluating content management systems. My
core requirements were; 
&lt;p&gt;
1. Built with C#, .Net 2.0 
&lt;p&gt;
2. Modular structure like SharePoint. 
&lt;p&gt;
3. Granular permissions. Page and section level. 
&lt;p&gt;
4. CSS and XHTML support. 
&lt;p&gt;
I started building one from scratch; I wanted the CMS to leverage all the features
of ASP .Net 2.0, such as master pages, membership and themes. The open source solutions
didn’t impress me much. Dotnetnuke did not have a lot of flexibility (for me). I didn’t
spend too much time with DNN because it was written in VB .Net. 
&lt;p&gt;
While I was building my CMS, I found &lt;a href="http://www.sitefinity.com"&gt;Sitefinity&lt;/a&gt; built
by &lt;a href="http://ww.telerik.com"&gt;Telerik&lt;/a&gt;. Sitefinity is a pure .Net 2.0 solution.
Written in C# and a killer feature is that it comes with the Telerik rad controls.
The upcoming 3.0 version uses master pages for layout. The CMS engine detects the
placeholder controls and uses them as containers for CMS driven content. 
&lt;p&gt;
Extending Sitefinity is as easy as opening the generated website in Visual Studio
as a web project. The experience is analogous to a situation where someone had already
written the core CMS and given the project to extend. Sitefinity host simple ASP .Net
controls. So developing a solution is the same as any other ASP .Net project. This
is a big advantage for me, as I don’t have to go and learn a new framework. Sitefinity
uses the native ASP .Net provider model. This makes Sitefinity come close to SharePoint
2007. This all applies to v3.0; the previous version 2.7 does not use master pages
and recursive table layout model, which did not support CSS layouts. Version 3.0 is
in beta, with the final release in February. 
&lt;p&gt;
So if you are developing content management systems, Sitefinity definitely should
be on top of your list. 
&lt;/p&gt;
&lt;p&gt;
PS : This is not a free solution, but well worth the money&amp;nbsp;it in my opinion.
Telerik should be banging the drum on this one :).
&lt;/p&gt;
&lt;p&gt;
PPS : I don't work for Telerik, though my company has purchased an enterprise licence.
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,a9bdc3a7-5ba4-4471-b1a0-c58c286018df.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=7b9aaa9c-5ec7-48f8-aecf-5f2a4e3e10fa</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,7b9aaa9c-5ec7-48f8-aecf-5f2a4e3e10fa.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,7b9aaa9c-5ec7-48f8-aecf-5f2a4e3e10fa.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7b9aaa9c-5ec7-48f8-aecf-5f2a4e3e10fa</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Wrote a <a href="http://www.asp.net/cssadapters/">CSS Adapter</a> for the SiteMapPath
control. I wanted a breadcrumb trail with clean link tags only. Renders a clean set
of link tags within a div tag (and optionally a span tag). 
</p>
        <p>
Usage:
</p>
        <p>
Add the <a href="http://www.hibri.net/content/binary/SiteMapPathAdapter.txt">SiteMapPathAdapter.cs</a> file
to your web project. (rename the .txt file to .cs)
</p>
        <p>
Add a .browser file to the web site. Add the following entry in the controlAdapters
element.
</p>
        <pre>
          <span style="color: blue">&lt;</span>
          <span style="color: maroon">adapter</span>
          <span style="color: red">controlType </span>="<span style="color: blue">System.Web.UI.WebControls.SiteMapPath</span>" <span style="color: red">adapterType </span>="<span style="color: blue">SiteMapPathAdapter</span>"
/<span style="color: blue">&gt;</span></pre>
        <p>
 
</p>
        <p>
Drag and drop the control on to the web form
</p>
        <p>
          <span style="color: blue">&lt;</span>
          <span style="color: maroon">asp:SiteMapPath</span>
          <span style="color: red">ID</span>="<span style="color: blue">SiteMapPath1</span>" <span style="color: red">runat</span>="<span style="color: blue">server</span>" <span style="color: red">CssSelectorId</span>="<span style="color: blue">breadcrumbs</span>" <span style="color: blue">&gt;</span><br />
        <span style="color: blue">&lt;</span>/<span style="color: maroon">asp:SiteMapPath</span><span style="color: blue">&gt;</span></p>
        <p>
Use the CssSelectorId attribute to give the surrounding div an identifier.
</p>
        <p>
More on CSS Adapters
</p>
        <p>
          <a title="CSS Control Adapter Toolkit for ASP.NET 2.0" href="http://weblogs.asp.net/scottgu/archive/2006/05/02/CSS-Control-Adapter-Toolkit-for-ASP.NET-2.0-.aspx" target="_blank">CSS
Control Adapter Toolkit for ASP.NET 2.0</a>
        </p>
        <p>
          <a title="Architectural Overview of Adaptive Control Behavior" href="http://msdn2.microsoft.com/en-us/library/67276kc5.aspx">Architectural
Overview of Adaptive Control Behavior</a>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/ms228122.aspx">Browser Definition
file schema</a>
        </p>
      </body>
      <title>CSS Adapter for the SiteMapPath control.</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,7b9aaa9c-5ec7-48f8-aecf-5f2a4e3e10fa.aspx</guid>
      <link>http://www.hibri.net/2006/12/03/CSSAdapterForTheSiteMapPathControl.aspx</link>
      <pubDate>Sun, 03 Dec 2006 11:42:43 GMT</pubDate>
      <description>&lt;p&gt;
Wrote a &lt;a href="http://www.asp.net/cssadapters/"&gt;CSS Adapter&lt;/a&gt; for the SiteMapPath
control. I wanted a breadcrumb trail with clean link tags only. Renders a clean set
of link tags within a div tag (and optionally a span tag). 
&lt;/p&gt;
&lt;p&gt;
Usage:
&lt;/p&gt;
&lt;p&gt;
Add the &lt;a href="http://www.hibri.net/content/binary/SiteMapPathAdapter.txt"&gt;SiteMapPathAdapter.cs&lt;/a&gt; file
to your web project. (rename the .txt file to .cs)
&lt;/p&gt;
&lt;p&gt;
Add a .browser file to the web site. Add the following entry in the controlAdapters
element.
&lt;/p&gt;
&lt;pre&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;adapter&lt;/span&gt; &lt;span style="color: red"&gt;controlType &lt;/span&gt;="&lt;span style="color: blue"&gt;System.Web.UI.WebControls.SiteMapPath&lt;/span&gt;" &lt;span style="color: red"&gt;adapterType &lt;/span&gt;="&lt;span style="color: blue"&gt;SiteMapPathAdapter&lt;/span&gt;"
/&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Drag and drop the control on to the web form
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;asp:SiteMapPath&lt;/span&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;="&lt;span style="color: blue"&gt;SiteMapPath1&lt;/span&gt;" &lt;span style="color: red"&gt;runat&lt;/span&gt;="&lt;span style="color: blue"&gt;server&lt;/span&gt;" &lt;span style="color: red"&gt;CssSelectorId&lt;/span&gt;="&lt;span style="color: blue"&gt;breadcrumbs&lt;/span&gt;" &lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color: maroon"&gt;asp:SiteMapPath&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; 
&lt;/p&gt;
&lt;p&gt;
Use the CssSelectorId attribute to give the surrounding div an identifier.
&lt;/p&gt;
&lt;p&gt;
More on CSS Adapters
&lt;/p&gt;
&lt;p&gt;
&lt;a title="CSS Control Adapter Toolkit for ASP.NET 2.0" href="http://weblogs.asp.net/scottgu/archive/2006/05/02/CSS-Control-Adapter-Toolkit-for-ASP.NET-2.0-.aspx" target="_blank"&gt;CSS
Control Adapter Toolkit for ASP.NET 2.0&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="Architectural Overview of Adaptive Control Behavior" href="http://msdn2.microsoft.com/en-us/library/67276kc5.aspx"&gt;Architectural
Overview of Adaptive Control Behavior&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms228122.aspx"&gt;Browser Definition
file schema&lt;/a&gt;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,7b9aaa9c-5ec7-48f8-aecf-5f2a4e3e10fa.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=68cf31dd-08b2-4fe9-a231-757a7be7432a</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,68cf31dd-08b2-4fe9-a231-757a7be7432a.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,68cf31dd-08b2-4fe9-a231-757a7be7432a.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=68cf31dd-08b2-4fe9-a231-757a7be7432a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you ever wanted to add a simple username/password authentication to your web service,
but ended up with a whole lot of this ?
</p>
        <p>
[WebMethod]<br />
public string HelloWorld(string userName,string password)
</p>
        <p>
Well then, here is a much cleaner way. You can use SOAP headers to pass extra information
to a web service. This method uses SOAP headers to pass the user credentials to the
web service.
</p>
        <p>
          <strong>The web service.</strong>
        </p>
        <p>
We need an object to hold the user credentials. For this example a simple class with
username and password properties would suffice. The class should derive from the SoapHeader
class.
</p>
        <p>
        </p>
        <pre>
          <span style="color: blue">public</span>
          <span style="color: blue">class</span> Authentication:SoapHeader
{ <span style="color: blue">private</span><span style="color: blue">string</span> _userName; <span style="color: blue">private</span><span style="color: blue">string</span> _password; <span style="color: blue">public</span><span style="color: blue">string</span> Password
{ <span style="color: blue">get</span> { <span style="color: blue">return</span> _password;
} <span style="color: blue">set</span> { _password = value; } } <span style="color: blue">public</span><span style="color: blue">string</span> UserName
{ <span style="color: blue">get</span> { <span style="color: blue">return</span> _userName;
} <span style="color: blue">set</span> { _userName = value; } } } </pre>
        <p>
In the web service class, declare a public field (or property) of the Authentication
type.
</p>
        <p>
        </p>
        <p>
[WebService(Namespace = "<a href="http://tempuri.org/&quot;)]">http://tempuri.org/")]</a><br />
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1,Name="MyWebService")]<br /><span style="color: blue">public</span><span style="color: blue">class</span> MyWebService
: System.Web.Services.WebService {<br />
    <span style="color: blue">public</span> Authentication ServiceCredentials; 
</p>
        <p>
In the next step, set up the web method to accept a SOAP header, of the type Authentication,
and assign the value to the ServiceCredentials member.
</p>
        <p>
        </p>
        <pre>    [WebMethod]
    [SoapDocumentMethod(Binding=<span style="color: maroon">"MyWebService"</span>)]
[SoapHeader(<span style="color: maroon">"ServiceCredentials"</span>) ] <span style="color: blue">public</span><span style="color: blue">string</span> HelloWorld()
{ <span style="color: blue">if</span> (ServiceCredentials.UserName == <span style="color: maroon">"test"</span> &amp;&amp; 
<br />
ServiceCredentials.Password == <span style="color: maroon">"world"</span>) { <span style="color: blue">return</span><span style="color: maroon">"Hello
World"</span>; } <span style="color: blue">else</span> { <span style="color: blue">return</span><span style="color: maroon">"Invalid
authentication"</span>; } }</pre>
        <p>
        </p>
        <p>
          <strong> At the client.</strong>
        </p>
        <ol>
          <li>
Add the web service reference as usual. Instantiate a new object of the type MyWebService. 
</li>
          <li>
In addition instantiate a new object of the type Authentication and assign the username
and password properties. 
</li>
          <li>
Next, assign this to the Service credentials property of the MyWebService instance. 
</li>
          <li>
Call any web method, as you like. 
</li>
        </ol>
        <p>
The credentials are being passed with the soap headers, so you don't need to add the
username/password to each and every method. Since, this is done once for the web service,
it can be used for multiple calls to any web method in the same service.
</p>
        <p>
This is how the SOAP XML looks like,
</p>
        <p>
          <font face="Courier New">
            <pre>
              <span style="color: blue">&lt;?</span>
              <span style="color: maroon">xml</span>
              <span style="color: red">version</span>="<span style="color: blue">1.0</span>" <span style="color: red">encoding</span>="<span style="color: blue">utf-8</span>"<span style="color: blue">?&gt;</span><span style="color: blue">&lt;</span><span style="color: maroon">soap:Envelope</span><span style="color: red">xmlns:xsi</span>="<span style="color: blue">http://www.w3.org/2001/XMLSchema-instance</span>" 
<br /><span style="color: red">xmlns:xsd</span>="<span style="color: blue">http://www.w3.org/2001/XMLSchema</span>" 
<br /><span style="color: red">xmlns:soap</span>="<span style="color: blue">http://schemas.xmlsoap.org/soap/envelope/</span>"<span style="color: blue">&gt;</span><span style="color: blue">&lt;</span><span style="color: maroon">soap:Header</span><span style="color: blue">&gt;</span><span style="color: blue">&lt;</span><span style="color: maroon">Authentication</span><span style="color: red">xmlns</span>="<span style="color: blue">http://tempuri.org/</span>"<span style="color: blue">&gt;</span><span style="color: blue">&lt;</span><span style="color: maroon">Password</span><span style="color: blue">&gt;</span>string<span style="color: blue">&lt;</span>/<span style="color: maroon">Password</span><span style="color: blue">&gt;</span><span style="color: blue">&lt;</span><span style="color: maroon">UserName</span><span style="color: blue">&gt;</span>string<span style="color: blue">&lt;</span>/<span style="color: maroon">UserName</span><span style="color: blue">&gt;</span><span style="color: blue">&lt;</span>/<span style="color: maroon">Authentication</span><span style="color: blue">&gt;</span><span style="color: blue">&lt;</span>/<span style="color: maroon">soap:Header</span><span style="color: blue">&gt;</span><span style="color: blue">&lt;</span><span style="color: maroon">soap:Body</span><span style="color: blue">&gt;</span><span style="color: blue">&lt;</span><span style="color: maroon">HelloWorld</span><span style="color: red">xmlns</span>="<span style="color: blue">http://tempuri.org/</span>"
/<span style="color: blue">&gt;</span><span style="color: blue">&lt;</span>/<span style="color: maroon">soap:Body</span><span style="color: blue">&gt;</span><span style="color: blue">&lt;</span>/<span style="color: maroon">soap:Envelope</span><span style="color: blue">&gt;</span></pre>
          </font>
        </p>
      </body>
      <title>Adding simple authentication to a web service using SOAP headers</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,68cf31dd-08b2-4fe9-a231-757a7be7432a.aspx</guid>
      <link>http://www.hibri.net/2006/11/26/AddingSimpleAuthenticationToAWebServiceUsingSOAPHeaders.aspx</link>
      <pubDate>Sun, 26 Nov 2006 11:59:53 GMT</pubDate>
      <description>&lt;p&gt;
If you ever wanted to add a simple username/password authentication to your web service,
but ended up with a whole lot of this ?
&lt;/p&gt;
&lt;p&gt;
[WebMethod]&lt;br&gt;
public string HelloWorld(string userName,string password)
&lt;/p&gt;
&lt;p&gt;
Well then, here is a much cleaner way. You can use SOAP headers to pass extra information
to a web service. This method uses SOAP headers to pass the user credentials to the
web service.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The web service.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
We need an object to hold the user credentials. For this example a simple class with
username and password properties would suffice. The class should derive from the SoapHeader
class.
&lt;/p&gt;
&lt;p&gt;
&lt;pre&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;class&lt;/span&gt; Authentication:SoapHeader
{ &lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; _userName; &lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; _password; &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; Password
{ &lt;span style="color: blue"&gt;get&lt;/span&gt; { &lt;span style="color: blue"&gt;return&lt;/span&gt; _password;
} &lt;span style="color: blue"&gt;set&lt;/span&gt; { _password = value; } } &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; UserName
{ &lt;span style="color: blue"&gt;get&lt;/span&gt; { &lt;span style="color: blue"&gt;return&lt;/span&gt; _userName;
} &lt;span style="color: blue"&gt;set&lt;/span&gt; { _userName = value; } } } &lt;/pre&gt;
&lt;p&gt;
In the web service class, declare a public&amp;nbsp;field (or property)&amp;nbsp;of the Authentication
type.
&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
[WebService(Namespace = "&lt;a href="http://tempuri.org/&amp;quot;)]"&gt;http://tempuri.org/")]&lt;/a&gt;
&lt;br&gt;
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1,Name="MyWebService")]&lt;br&gt;
&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;class&lt;/span&gt; MyWebService
: System.Web.Services.WebService {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; Authentication ServiceCredentials; 
&lt;p&gt;
In the next step, set up the web method to accept a SOAP header, of the type Authentication,
and assign the value to the ServiceCredentials member.
&lt;/p&gt;
&lt;p&gt;
&lt;pre&gt;    [WebMethod]
    [SoapDocumentMethod(Binding=&lt;span style="color: maroon"&gt;"MyWebService"&lt;/span&gt;)]
[SoapHeader(&lt;span style="color: maroon"&gt;"ServiceCredentials"&lt;/span&gt;) ] &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; HelloWorld()
{ &lt;span style="color: blue"&gt;if&lt;/span&gt; (ServiceCredentials.UserName == &lt;span style="color: maroon"&gt;"test"&lt;/span&gt; &amp;amp;&amp;amp; 
&lt;br&gt;
ServiceCredentials.Password == &lt;span style="color: maroon"&gt;"world"&lt;/span&gt;) { &lt;span style="color: blue"&gt;return&lt;/span&gt; &lt;span style="color: maroon"&gt;"Hello
World"&lt;/span&gt;; } &lt;span style="color: blue"&gt;else&lt;/span&gt; { &lt;span style="color: blue"&gt;return&lt;/span&gt; &lt;span style="color: maroon"&gt;"Invalid
authentication"&lt;/span&gt;; } }&lt;/pre&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&amp;nbsp;At the client.&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Add the web service reference as usual. Instantiate a new object of the type MyWebService. 
&lt;li&gt;
In addition instantiate a new object of the type Authentication and assign the username
and password properties. 
&lt;li&gt;
Next, assign this to the Service credentials property of the MyWebService instance. 
&lt;li&gt;
Call any web method, as you like. 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
The credentials are being passed with the soap headers, so you don't need to add the
username/password to each and every method. Since, this is done once for the web service,
it can be used for multiple calls to any web method in the same service.
&lt;/p&gt;
&lt;p&gt;
This is how the SOAP XML looks like,
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&lt;pre&gt;&lt;span style="color: blue"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: maroon"&gt;xml&lt;/span&gt; &lt;span style="color: red"&gt;version&lt;/span&gt;="&lt;span style="color: blue"&gt;1.0&lt;/span&gt;" &lt;span style="color: red"&gt;encoding&lt;/span&gt;="&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;"&lt;span style="color: blue"&gt;?&amp;gt;&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;soap:Envelope&lt;/span&gt; &lt;span style="color: red"&gt;xmlns:xsi&lt;/span&gt;="&lt;span style="color: blue"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;" 
&lt;br&gt;
&lt;span style="color: red"&gt;xmlns:xsd&lt;/span&gt;="&lt;span style="color: blue"&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;" 
&lt;br&gt;
&lt;span style="color: red"&gt;xmlns:soap&lt;/span&gt;="&lt;span style="color: blue"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;soap:Header&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;Authentication&lt;/span&gt; &lt;span style="color: red"&gt;xmlns&lt;/span&gt;="&lt;span style="color: blue"&gt;http://tempuri.org/&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;Password&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;string&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color: maroon"&gt;Password&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;UserName&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;string&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color: maroon"&gt;UserName&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color: maroon"&gt;Authentication&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color: maroon"&gt;soap:Header&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;soap:Body&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;HelloWorld&lt;/span&gt; &lt;span style="color: red"&gt;xmlns&lt;/span&gt;="&lt;span style="color: blue"&gt;http://tempuri.org/&lt;/span&gt;"
/&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color: maroon"&gt;soap:Body&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color: maroon"&gt;soap:Envelope&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/font&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,68cf31dd-08b2-4fe9-a231-757a7be7432a.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=7dad8d70-ef72-4692-b0e5-59208d13912d</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,7dad8d70-ef72-4692-b0e5-59208d13912d.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,7dad8d70-ef72-4692-b0e5-59208d13912d.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7dad8d70-ef72-4692-b0e5-59208d13912d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/9a4kyhcx.aspx">The Object Data Source
(ODS)</a> helps you expose your business objects, to provide data to databound controls such
as the GridView, DetailsView and many other data bound controls.
</p>
        <p>
Compared to the other data sources like the DataTable and DataSet, the ODS does require
some work to achieve the same functionality. The main advantage of the ODS is that
it allows you to maintain your layers, without polluting your presentation layer with
data code.
</p>
        <p>
To start off,  drag and drop the ODS control to a web form. Set the TypeName
property to the business object you want to work with. For example, if we have a BO
named Employees in the TimeTracker namespace, this will be TimeTracker.Employee.
</p>
        <p>
          <strong>Selecting</strong>
          <br />
 A common scenario is to display the a list of records. Say we want to display
the list of all employees in a GridView. To retrieve the records, the Employee object
needs a GetEmployees static method that will retrieve  all the employees from
the DB.  Set the <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.selectmethod.aspx">SelectMethod</a> property
of the ODS to GetEmployees. Now bind the ODS to the GridView just like any other data
source.
</p>
        <p>
At runtime the ODS uses reflection to find the GetEmployees method and invokes it.
</p>
        <p>
          <strong>Paging and filtering</strong>
        </p>
        <p>
Filtering Employee objects is as easy as adding a new method to your Employee object.
If we want to select Employees by department, the Employee object should have a static method 
</p>
        <p>
GetEmployees(string department)
</p>
        <p>
In the properties window of the ODS, add the department parameter to the <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.selectparameters.aspx">SelectParameters</a> collection.
You can set a default value to it, and this is where things get real easy. You can
bind the parameter to a control on your web form ( like a DropDownList) , a Session
variable and even a query string parameter.  Adding  filtering functionality
is simple as that. You can do the same programmatically by adding Parameters to the
SelectParameters collection. Be sure to clear the collection before you add a parameter(
or check if the parameter exists).
</p>
        <p>
Paging is where working with the ODS gets a bit complicated. To enable paging ( in
conjunction with the GridView) set the EnablePaging property to true. The Employee
object too, needs to have methods to support paging. 
</p>
        <p>
When paging is enabled, the ODS calls the GetEmployee method with two extra parameters.
by default the parameters are <strong>startRowIndex</strong> and <strong>maximumRows</strong>.
These can be changed by setting the <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.startrowindexparametername.aspx">StartRowIndexParameterName</a> and <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.maximumrowsparametername.aspx">MaximumRowsParameterName</a> properties.
</p>
        <p>
Now we need a GetEmployees method with the signature like<br />
GetEmployees(int startRowIndex,int maxiumRows)<br />
To support filtering it will have to be GetEmployees(string department ,int startRowIndex,int
maxiumRows)
</p>
        <p>
The maximumRows parameter, will have the value of how many rows to display per page.
This will have the value of the PageSize property of the GridView. The startRowIndex
will contain the the index of the current page. This can be the starting row index
of the current page of records. See <a href="http://weblogs.asp.net/scottgu/archive/2006/01/07/434787.aspx">here
for more on how to pass these on to an SQL query</a>. 
</p>
        <p>
In addition to this the ODS needs another method that is set by the <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.selectcountmethod.aspx">SelectCountMethod</a> property.
This is invoked to find out the total number of rows available. So we need another
static method in our Employee object. GetEmployeesCount() .If the total number of
rows is 100, and you have a page size of 20. The GetEmployees count method should
return 100, so that the ODS can tell the GridView, how many pager links to display.
I usually return this as an out parameter from the stored procedure that retrieves
the paged results.
</p>
        <p>
          <strong>Inserting, Editing and Deleting</strong>
        </p>
        <p>
Inserting, editing and deleting is pretty easy. All you will again is to have the
appropriate static methods in the Employee object.<br />
AddEmployee(Employee e)<br />
UpdateEmployee(Employee e)<br />
DeleteEmployee(Emplyee e).
</p>
        <p>
Set the <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.insertmethod.aspx">InsertMethod</a> , <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.updatemethod.aspx">UpdateMethod</a> and <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.deletemethod.aspx">DeleteMethod</a> properties
accordingly. All these method can be configured with parameters like the SelectMethod.
However, setting the <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.dataobjecttypename.aspx">DataObjectTypeName</a> property
to the Employee object will reduce a lot of the hassle by passing Employee objects
to the Add,Update and DeleteMethods.
</p>
      </body>
      <title>Working with the Object Data Source</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,7dad8d70-ef72-4692-b0e5-59208d13912d.aspx</guid>
      <link>http://www.hibri.net/2006/11/25/WorkingWithTheObjectDataSource.aspx</link>
      <pubDate>Sat, 25 Nov 2006 13:33:32 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/9a4kyhcx.aspx"&gt;The Object Data Source
(ODS)&lt;/a&gt; helps you expose your business objects, to provide data to databound controls&amp;nbsp;such
as&amp;nbsp;the GridView, DetailsView and many other data bound controls.
&lt;/p&gt;
&lt;p&gt;
Compared to the other data sources like the DataTable and DataSet, the ODS does require
some work to achieve the same functionality. The main advantage of the ODS is that
it allows you to maintain your layers, without polluting your presentation layer with
data code.
&lt;/p&gt;
&lt;p&gt;
To start off,&amp;nbsp; drag and drop the ODS control to a web form. Set the TypeName
property to the business object you want to work with. For example, if we have a&amp;nbsp;BO
named Employees in the TimeTracker namespace, this will be&amp;nbsp;TimeTracker.Employee.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Selecting&lt;/strong&gt;
&lt;br&gt;
&amp;nbsp;A common scenario is to display the a list of records. Say we want to display
the list of all employees in a GridView. To retrieve the records, the Employee object
needs a GetEmployees static method that will retrieve&amp;nbsp; all the employees from
the DB.&amp;nbsp; Set the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.selectmethod.aspx"&gt;SelectMethod&lt;/a&gt; property
of the ODS to GetEmployees. Now bind the ODS to the GridView just like any other data
source.
&lt;/p&gt;
&lt;p&gt;
At runtime the ODS uses reflection to find the GetEmployees method and invokes it.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Paging and filtering&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Filtering Employee objects is as easy as adding a new method to your Employee object.
If we want to select Employees by department, the Employee object should have a static&amp;nbsp;method 
&lt;/p&gt;
&lt;p&gt;
GetEmployees(string department)
&lt;/p&gt;
&lt;p&gt;
In the properties window of the ODS, add the department parameter to the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.selectparameters.aspx"&gt;SelectParameters&lt;/a&gt; collection.
You can set a default value to it, and this is where things get real easy. You can
bind the parameter to a control on your web form ( like a DropDownList)&amp;nbsp;, a Session
variable and even a query string parameter.&amp;nbsp; Adding&amp;nbsp; filtering functionality
is simple as that. You can do the same programmatically by adding Parameters to the
SelectParameters collection. Be sure to clear the collection before you add a parameter(
or check if the parameter exists).
&lt;/p&gt;
&lt;p&gt;
Paging is where working with the ODS gets a bit complicated. To enable paging ( in
conjunction with the GridView) set the EnablePaging property to true. The Employee
object too, needs to have methods to support paging. 
&lt;/p&gt;
&lt;p&gt;
When paging is enabled, the ODS calls the GetEmployee method with&amp;nbsp;two extra parameters.
by default the parameters are &lt;strong&gt;startRowIndex&lt;/strong&gt; and &lt;strong&gt;maximumRows&lt;/strong&gt;.
These can be changed by setting the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.startrowindexparametername.aspx"&gt;StartRowIndexParameterName&lt;/a&gt; and &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.maximumrowsparametername.aspx"&gt;MaximumRowsParameterName&lt;/a&gt; properties.
&lt;/p&gt;
&lt;p&gt;
Now we need a GetEmployees method with the signature like&lt;br&gt;
GetEmployees(int startRowIndex,int maxiumRows)&lt;br&gt;
To support filtering it will have to be GetEmployees(string department ,int startRowIndex,int
maxiumRows)
&lt;/p&gt;
&lt;p&gt;
The maximumRows parameter, will have the value of how many rows to display per page.
This will have the value of the PageSize property of the GridView. The startRowIndex
will contain the the index of the current page. This can be the starting row index
of the current page of records. See &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/01/07/434787.aspx"&gt;here
for more on how to pass these on to an SQL query&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
In addition to this the ODS needs another method that is set by the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.selectcountmethod.aspx"&gt;SelectCountMethod&lt;/a&gt; property.
This is invoked to find out the total number of rows available. So we need another
static method in our Employee object. GetEmployeesCount() .If the total number of
rows is 100, and you have a page size of 20. The GetEmployees count method should
return 100, so that the ODS can tell the GridView, how many pager links to display.
I usually return this as an out parameter from the stored procedure that retrieves
the paged results.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Inserting, Editing and Deleting&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Inserting, editing and deleting is pretty easy. All you will again is to have the
appropriate static methods in the Employee object.&lt;br&gt;
AddEmployee(Employee e)&lt;br&gt;
UpdateEmployee(Employee e)&lt;br&gt;
DeleteEmployee(Emplyee e).
&lt;/p&gt;
&lt;p&gt;
Set the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.insertmethod.aspx"&gt;InsertMethod&lt;/a&gt; , &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.updatemethod.aspx"&gt;UpdateMethod&lt;/a&gt; and &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.deletemethod.aspx"&gt;DeleteMethod&lt;/a&gt; properties
accordingly. All these method can be configured with parameters like the SelectMethod.
However, setting the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.dataobjecttypename.aspx"&gt;DataObjectTypeName&lt;/a&gt; property
to the Employee object will reduce a lot of the hassle by passing Employee objects
to the Add,Update and DeleteMethods.
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,7dad8d70-ef72-4692-b0e5-59208d13912d.aspx</comments>
      <category>.Net Data</category>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=e6e5e970-e6ce-45f0-ad46-52b97826109f</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,e6e5e970-e6ce-45f0-ad46-52b97826109f.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,e6e5e970-e6ce-45f0-ad46-52b97826109f.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=e6e5e970-e6ce-45f0-ad46-52b97826109f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
 
</p>
        <p>
A few issues to keep in mind when converting a VS 2005 web project to a Web Application
project.
</p>
        <p>
          <a href="http://webproject.scottgu.com/CSharp/Migration2/Migration2.aspx">http://webproject.scottgu.com/CSharp/Migration2/Mi...</a>
        </p>
        <p>
ASP .Net automatically generates a strongly typed Profile class when using Profile
Personalization (System.Web.Profiles). This does not happen when using WAP (Web application
projects).
</p>
        <p>
There is a free utility to generate the Profile class from the web.config
</p>
        <p>
          <a href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=406eefba-2dd9-4d80-a48c-b4f135df4127">http://www.gotdotnet.com/workspaces/workspace.aspx...</a>
        </p>
        <p>
The default SqlProfilesProvider works by serializing all the profile properties into
one column. However, as with all providers this can be changed. 
</p>
        <p>
          <a href="http://www.asp.net/downloads/teamprojects/default.aspx?tabid=62#tableprofile">http://www.asp.net/downloads/teamprojects/default....</a> is
a download to a Table profile provider and stored procedure profile provider. These
work out of the box, to a profiles table of your own choosing.
</p>
      </body>
      <title>ASP .Net Provider Hacks</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,e6e5e970-e6ce-45f0-ad46-52b97826109f.aspx</guid>
      <link>http://www.hibri.net/2006/10/07/ASPNetProviderHacks.aspx</link>
      <pubDate>Sat, 07 Oct 2006 20:46:03 GMT</pubDate>
      <description>&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
A few issues to keep in mind when converting a VS 2005 web project to a Web Application
project.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://webproject.scottgu.com/CSharp/Migration2/Migration2.aspx"&gt;http://webproject.scottgu.com/CSharp/Migration2/Mi...&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
ASP .Net automatically generates a strongly typed Profile class when using Profile
Personalization (System.Web.Profiles). This does not happen when using WAP (Web application
projects).
&lt;/p&gt;
&lt;p&gt;
There is a free utility to generate the Profile class from the web.config
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=406eefba-2dd9-4d80-a48c-b4f135df4127"&gt;http://www.gotdotnet.com/workspaces/workspace.aspx...&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The default SqlProfilesProvider works by serializing all the profile properties into
one column. However, as with all providers this can be changed. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.asp.net/downloads/teamprojects/default.aspx?tabid=62#tableprofile"&gt;http://www.asp.net/downloads/teamprojects/default....&lt;/a&gt;&amp;nbsp;is
a download to a Table profile provider and stored procedure profile provider. These
work out of the box, to a profiles table of your own choosing.
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,e6e5e970-e6ce-45f0-ad46-52b97826109f.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=d0731757-1675-4021-bf53-32546c9ea17c</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,d0731757-1675-4021-bf53-32546c9ea17c.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,d0731757-1675-4021-bf53-32546c9ea17c.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d0731757-1675-4021-bf53-32546c9ea17c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was looking into ASP.Net Webparts last week. Here are a few helpful resources.
</p>
        <p>
Sahil Malik introduces Webparts by conducing a walkthrough of creating a qucik and
not so dirty CMS (content management system) <a href="http://www.developer.com/net/asp/article.php/10917_3618431_1" target="_blank">link</a> 
</p>
        <p>
A <a href="http://www.developer.com/net/asp/article.php/3627871" target="_blank">good
introduction</a> into writing custom editors for web parts by the same author.
</p>
        <p>
A MSDN <a href="http://msdn.microsoft.com/msdnmag/issues/05/09/WebParts/default.aspx" target="_blank">article</a> giving
an overview of the whole framework.
</p>
      </body>
      <title>Getting started with Webparts</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,d0731757-1675-4021-bf53-32546c9ea17c.aspx</guid>
      <link>http://www.hibri.net/2006/09/23/GettingStartedWithWebparts.aspx</link>
      <pubDate>Sat, 23 Sep 2006 16:13:58 GMT</pubDate>
      <description>&lt;p&gt;
I was looking into ASP.Net Webparts&amp;nbsp;last week. Here are a few helpful resources.
&lt;/p&gt;
&lt;p&gt;
Sahil Malik introduces Webparts by conducing a walkthrough of creating a qucik and
not so dirty CMS (content management system) &lt;a href="http://www.developer.com/net/asp/article.php/10917_3618431_1" target="_blank"&gt;link&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
A &lt;a href="http://www.developer.com/net/asp/article.php/3627871" target="_blank"&gt;good
introduction&lt;/a&gt; into writing custom editors for web parts by the same author.
&lt;/p&gt;
&lt;p&gt;
A MSDN &lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/09/WebParts/default.aspx" target="_blank"&gt;article&lt;/a&gt; giving
an overview of the whole framework.
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,d0731757-1675-4021-bf53-32546c9ea17c.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=b0b59269-c79b-418f-b9b7-dca85fe8ba47</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,b0b59269-c79b-418f-b9b7-dca85fe8ba47.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,b0b59269-c79b-418f-b9b7-dca85fe8ba47.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b0b59269-c79b-418f-b9b7-dca85fe8ba47</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A mega list of his most popular articles..
</p>
        <p>
          <a href="http://weblogs.asp.net/scottgu/pages/ASP.NET-2.0-Tips_2C00_-Tricks_2C00_-Recipes-and-Gotchas.aspx">http://weblogs.asp.net/scottgu/pages/ASP.NET-2.0-Tips_2C00_-Tricks_2C00_-Recipes-and-Gotchas.aspx</a>
        </p>
        <p>
 
</p>
      </body>
      <title>Collection Scott Gu's of ASP .Net posts</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,b0b59269-c79b-418f-b9b7-dca85fe8ba47.aspx</guid>
      <link>http://www.hibri.net/2006/08/14/CollectionScottGusOfASPNetPosts.aspx</link>
      <pubDate>Mon, 14 Aug 2006 23:15:23 GMT</pubDate>
      <description>
&lt;p&gt;
A mega list of his most popular articles..
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://weblogs.asp.net/scottgu/pages/ASP.NET-2.0-Tips_2C00_-Tricks_2C00_-Recipes-and-Gotchas.aspx"&gt;http://weblogs.asp.net/scottgu/pages/ASP.NET-2.0-Tips_2C00_-Tricks_2C00_-Recipes-and-Gotchas.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,b0b59269-c79b-418f-b9b7-dca85fe8ba47.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=d48f26c2-afb9-4c88-a8a8-49c632e0961d</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,d48f26c2-afb9-4c88-a8a8-49c632e0961d.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,d48f26c2-afb9-4c88-a8a8-49c632e0961d.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d48f26c2-afb9-4c88-a8a8-49c632e0961d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If  you want a FTP login to change to a directory upon login heres what
to do.
</p>
        <p>
Create a vritual directory or directory with the same name as the user login
</p>
        <p>
If the user login is john, create a directory under the FTP root named "john". On
logging in john will access <a href="ftp:///ftp.myserver.com/john">ftp:///ftp.myserver.com/john</a>.
</p>
        <p>
 
</p>
        <p>
 
</p>
      </body>
      <title>HOWTO : Set a FTP home directory using IIS</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,d48f26c2-afb9-4c88-a8a8-49c632e0961d.aspx</guid>
      <link>http://www.hibri.net/2006/06/02/HOWTOSetAFTPHomeDirectoryUsingIIS.aspx</link>
      <pubDate>Fri, 02 Jun 2006 15:45:18 GMT</pubDate>
      <description>
&lt;p&gt;
If&amp;nbsp; you want a&amp;nbsp;FTP login to change to a directory upon login heres what
to do.
&lt;/p&gt;
&lt;p&gt;
Create a vritual directory or directory with the same name as the user login
&lt;/p&gt;
&lt;p&gt;
If the user login is john, create a directory under the FTP root named "john". On
logging in john will access &lt;a href="ftp:///ftp.myserver.com/john"&gt;ftp:///ftp.myserver.com/john&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,d48f26c2-afb9-4c88-a8a8-49c632e0961d.aspx</comments>
      <category>.Net Web</category>
      <category>Windows</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=559e6a1f-8bd2-4eaf-a123-3a5e3c22c693</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,559e6a1f-8bd2-4eaf-a123-3a5e3c22c693.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,559e6a1f-8bd2-4eaf-a123-3a5e3c22c693.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=559e6a1f-8bd2-4eaf-a123-3a5e3c22c693</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
 <a href="http://www.urlrewriting.net/">http://www.urlrewriting.net/</a> has
a free URL re-writing HTTP module for ASP .Net with source code. This supports regular
expressions. This is a must have for every ASP .Net developer. I haven't compared
this to the Apache mod_rewrite module yet, which I would say is very powerful. 
</p>
        <p>
My view is that URL rewriting is best implemented in the web server (IIS), just like
the implementation in Apache. This would give URL rewriting functionality regardless
of the file type served. I have yet to see a (free ? ) URL rewriting module for
IIS, that gives all the features of Apache mod_rewrite.
</p>
        <p>
Will we see this in IIS 7 ?
</p>
      </body>
      <title>URL Rewriting for ASP .Net</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,559e6a1f-8bd2-4eaf-a123-3a5e3c22c693.aspx</guid>
      <link>http://www.hibri.net/2006/02/05/URLRewritingForASPNet.aspx</link>
      <pubDate>Sun, 05 Feb 2006 18:38:02 GMT</pubDate>
      <description>
&lt;p&gt;
&amp;nbsp;&lt;a href="http://www.urlrewriting.net/"&gt;http://www.urlrewriting.net/&lt;/a&gt; has
a free URL re-writing HTTP module for ASP .Net with source code. This supports regular
expressions. This is a must have for every ASP .Net developer. I haven't compared
this to the Apache mod_rewrite module yet, which I would say is very powerful. 
&lt;/p&gt;
&lt;p&gt;
My view is that URL rewriting is best implemented in the web server (IIS), just like
the implementation in Apache. This would give URL rewriting functionality regardless
of the file type served. I have yet to see a (free ? )&amp;nbsp;URL rewriting module for
IIS, that gives all the features of Apache mod_rewrite.
&lt;/p&gt;
&lt;p&gt;
Will we see this in IIS 7 ?
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,559e6a1f-8bd2-4eaf-a123-3a5e3c22c693.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=b150a676-5fe9-4ecf-b8ee-3550e356f7ee</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,b150a676-5fe9-4ecf-b8ee-3550e356f7ee.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,b150a676-5fe9-4ecf-b8ee-3550e356f7ee.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b150a676-5fe9-4ecf-b8ee-3550e356f7ee</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For all of you ( like me) who were frustrated a bit with the new web project system
in VS 2005, this add-in resolves some of those issues.
</p>
        <p>
This uses creates a Msbuild  file to give more fliexibility with deploying web
projects. 
</p>
        <p>
Single assembly for the whole app, with a name of your choice, versioning, assemblies
for each directory. Anyways, much more control over the build process.
</p>
        <p>
          <a href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx">http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx</a>
        </p>
      </body>
      <title>VS 2005 Web deployment add in</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,b150a676-5fe9-4ecf-b8ee-3550e356f7ee.aspx</guid>
      <link>http://www.hibri.net/2005/11/11/VS2005WebDeploymentAddIn.aspx</link>
      <pubDate>Fri, 11 Nov 2005 10:19:46 GMT</pubDate>
      <description>
&lt;p&gt;
For all of you ( like me) who were frustrated a bit with the new web project system
in VS 2005, this add-in resolves some of those issues.
&lt;/p&gt;
&lt;p&gt;
This uses creates a Msbuild&amp;nbsp; file to give more fliexibility with deploying web
projects. 
&lt;/p&gt;
&lt;p&gt;
Single assembly for the whole app, with a name of your choice, versioning, assemblies
for each directory. Anyways, much more control over the build process.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx"&gt;http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx&lt;/a&gt;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,b150a676-5fe9-4ecf-b8ee-3550e356f7ee.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=b07b5bfd-56b0-4d83-b2f8-498a5d0fa14e</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,b07b5bfd-56b0-4d83-b2f8-498a5d0fa14e.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,b07b5bfd-56b0-4d83-b2f8-498a5d0fa14e.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b07b5bfd-56b0-4d83-b2f8-498a5d0fa14e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When going through the asp.net forums, one thing I've noticed is that there is a lack
of understanding among many devs about ASP .Net caching. The majority of the problems
are caused when trying to use the Cache as a reliable in-memory storage medium.
The Cache object is not meant to do this.
</p>
        <p>
Cache storage is volatile, It can be garbage collected, it can expire, and it is not
expected to be synched in a web farm.
</p>
        <p>
So far I've used the Cache to avoid expensive db hits. I use a refactoring approach
to storing data in the Cache.
</p>
        <p>
First I write my usual data access and data binding code with,
</p>
        <pre>
          <span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">
          </span> Datatable userDataTable; <span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"></span> userDataTable
= DataUtils.GetUsers(); <span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"></span><span style="COLOR: green">//bind
and display</span></pre>
        <p>
          <span style="COLOR: green">
          </span> 
</p>
        <p>
Now to cache the user date, I refactor the code to this,
</p>
        <pre>DataTable userDataTable;
userData = Cache[<span style="COLOR: maroon">"USER_DATA"]</span>; <span style="COLOR: blue">if</span>(userData
== <span style="COLOR: blue">null</span>){ userDataTable = DataUtils.GetUsers(); <span style="COLOR: green">//code
to refresh cache, insert etc... </span> Cache.Insert(<span style="COLOR: maroon">"USER_DATA"</span>,userDataTable);
} <span style="COLOR: green">//bind and display</span></pre>
        <pre>
          <span style="COLOR: green">
          </span> </pre>This
simple practice ensures that there is always data, and handles a cache miss gracefully.
Any thoughts on this ?</body>
      <title>Cache overuse ?</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,b07b5bfd-56b0-4d83-b2f8-498a5d0fa14e.aspx</guid>
      <link>http://www.hibri.net/2005/10/31/CacheOveruse.aspx</link>
      <pubDate>Mon, 31 Oct 2005 08:58:47 GMT</pubDate>
      <description>
&lt;p&gt;
When going through the asp.net forums, one thing I've noticed is that there is a lack
of understanding among many devs about ASP .Net caching. The majority of the problems
are caused&amp;nbsp;when trying to use the Cache as a reliable in-memory storage medium.
The Cache object is not meant to do this.
&lt;/p&gt;
&lt;p&gt;
Cache storage is volatile, It can be garbage collected, it can expire, and it is not
expected to be synched in a web farm.
&lt;/p&gt;
&lt;p&gt;
So far I've used the Cache to avoid expensive&amp;nbsp;db hits. I use a refactoring approach
to storing data in the Cache.
&lt;/p&gt;
&lt;p&gt;
First I write my usual data access and data binding code with,
&lt;/p&gt;
&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; &lt;/span&gt; Datatable userDataTable; &lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; &lt;/span&gt; userDataTable
= DataUtils.GetUsers(); &lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; &lt;/span&gt; &lt;span style="COLOR: green"&gt;//bind
and display&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;span style="COLOR: green"&gt;&lt;/span&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Now to cache the user date, I refactor the code to this,
&lt;/p&gt;
&lt;pre&gt;DataTable userDataTable;
userData = Cache[&lt;span style="COLOR: maroon"&gt;"USER_DATA"]&lt;/span&gt;; &lt;span style="COLOR: blue"&gt;if&lt;/span&gt;(userData
== &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;){ userDataTable = DataUtils.GetUsers(); &lt;span style="COLOR: green"&gt;//code
to refresh cache, insert etc... &lt;/span&gt; Cache.Insert(&lt;span style="COLOR: maroon"&gt;"USER_DATA"&lt;/span&gt;,userDataTable);
} &lt;span style="COLOR: green"&gt;//bind and display&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="COLOR: green"&gt;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;This simple practice ensures 
that there is always data, and handles a cache miss gracefully. Any thoughts on 
this ?</description>
      <comments>http://www.hibri.net/CommentView,guid,b07b5bfd-56b0-4d83-b2f8-498a5d0fa14e.aspx</comments>
      <category>.Net Web</category>
      <category>High Availability</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=d1be66fc-4b99-4be6-8bf9-87143f5a88d8</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,d1be66fc-4b99-4be6-8bf9-87143f5a88d8.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,d1be66fc-4b99-4be6-8bf9-87143f5a88d8.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d1be66fc-4b99-4be6-8bf9-87143f5a88d8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In VS 2003/ASP .Net 1.1 , global resource files (.resx files used by the whole
application) compile to thier own assemblies like, assemblyname.resources.dll.
</p>
        <p>
In VS 2005/ASP .Net 2.0 these global resources are kept in the App_GlobalResources
directory, and do not compile to individual assemblies. Because of this using the
ResourceManager constructor to load the resource assembly does not work in ASP .Net
2.0 because a resource assembly does not exist. .Net 2.0 adds these global resources
to their own namespace, and does some runtime magic to load the correct resources.
</p>
        <p>
For example in 2.0, if you have a resource file named myresources.resx, the resource
manager object is obtained by
</p>
        <pre>
          <span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 1</span> Resources.myresources.ResourceManager</pre>
        <p>
This applies to ASP .Net web applications only, the ResourceManager works in the old
way in class library project and WinForm apps.
</p>
        <p>
read more <a href="http://beta.asp.net/QUICKSTARTV20/aspnet/doc/localization/localization.aspx">here</a></p>
        <p>
I'm doing all this on the RTM version of VS 2005, and its looking very good :)
</p>
      </body>
      <title>ASP .Net 2.0 and Resources</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,d1be66fc-4b99-4be6-8bf9-87143f5a88d8.aspx</guid>
      <link>http://www.hibri.net/2005/10/08/ASPNet20AndResources.aspx</link>
      <pubDate>Sat, 08 Oct 2005 20:33:22 GMT</pubDate>
      <description>
&lt;p&gt;
In VS 2003/ASP .Net 1.1&amp;nbsp;, global resource files (.resx files used by the whole
application) compile to thier own assemblies like, assemblyname.resources.dll.
&lt;/p&gt;
&lt;p&gt;
In VS 2005/ASP .Net 2.0 these global resources are kept in the App_GlobalResources
directory, and do not compile to individual assemblies. Because of this using the
ResourceManager constructor to load the resource assembly does not work in ASP .Net
2.0 because a resource assembly does not exist. .Net 2.0 adds these global resources
to their own namespace, and does some runtime magic to load the correct resources.
&lt;/p&gt;
&lt;p&gt;
For example in 2.0, if you have a resource file named myresources.resx, the resource
manager object is obtained by
&lt;/p&gt;
&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 1&lt;/span&gt; Resources.myresources.ResourceManager&lt;/pre&gt;
&lt;p&gt;
This applies to ASP .Net web applications only, the ResourceManager works in the&amp;nbsp;old
way in class library project and WinForm apps.
&lt;/p&gt;
&lt;p&gt;
read more &lt;a href="http://beta.asp.net/QUICKSTARTV20/aspnet/doc/localization/localization.aspx"&gt;here&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I'm doing all this on the RTM version of VS 2005, and its looking&amp;nbsp;very good :)
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,d1be66fc-4b99-4be6-8bf9-87143f5a88d8.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=cafafd2e-9cc4-48e7-882c-2b4929ef4760</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,cafafd2e-9cc4-48e7-882c-2b4929ef4760.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,cafafd2e-9cc4-48e7-882c-2b4929ef4760.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=cafafd2e-9cc4-48e7-882c-2b4929ef4760</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Mainsoft has a free developer edition of their <a href="http://dev.mainsoft.com/">Visual
Mainwin </a>product. This integrates with VS 2003, and compiles .net code into Java
classes, which can then be deployed on J2EE app servers. This is pretty neat, I can
deploy the web application on IIS and on a J2EE appserver. The installation comes
with Tomcat.
</p>
        <p>
Porting a .Net app to J2EE is simple, just right click on the project in VS 2003,
and selecte Generate J2EE project. This adds a new project to the solution, but the
source files can only be changed in the original  project. Building the solution
compiles the .net app, and the J2EE project. This also creates the neccessary deployment
descriptors for Java. This also creates a complete package to deploy on a remote app
server.
</p>
        <p>
VB.Net 2003 is a pre-requisite for Visual Mainwin, but they plan on removing this
dependancy in future versions. One thing to watch out is that, the source files of
all the projects and the projects they refer to is needed. 
</p>
        <p>
For example, in your web application if you add a reference to a component, the J2EE
project will not compile because it cannot generate the java libraries for the component.
So there should be an equivalent java library (jar file) or the source code should
be there to create it.
</p>
        <p>
I've so far done some simple web applications with it, and it works well.
</p>
        <p>
Now because.Net apps can be deployed on other platforms, here is an article on best
practices 
</p>
        <p>
          <a href="http://linux.sys-con.com/read/117910.htm">
            <u>
              <font color="#0000ff" size="2">http://linux.sys-con.com/read/117910.htm</font>
            </u>
          </a>
        </p>
      </body>
      <title>.Net on J2EE</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,cafafd2e-9cc4-48e7-882c-2b4929ef4760.aspx</guid>
      <link>http://www.hibri.net/2005/09/30/NetOnJ2EE.aspx</link>
      <pubDate>Fri, 30 Sep 2005 21:40:01 GMT</pubDate>
      <description>
&lt;p&gt;
Mainsoft has a free developer edition of their &lt;a href="http://dev.mainsoft.com/"&gt;Visual
Mainwin &lt;/a&gt;product. This integrates with VS 2003, and compiles .net code into Java
classes, which can then be deployed on J2EE app servers. This is pretty neat, I can
deploy the web application on IIS and on a J2EE appserver. The installation comes
with Tomcat.
&lt;/p&gt;
&lt;p&gt;
Porting a .Net app to J2EE is simple, just right click on the project in VS 2003,
and selecte Generate J2EE project. This adds a new project to the solution, but the
source files can only be changed in the original&amp;nbsp; project. Building the solution
compiles the .net app, and the J2EE project. This also creates the neccessary deployment
descriptors for Java. This also creates a complete package to deploy on a remote app
server.
&lt;/p&gt;
&lt;p&gt;
VB.Net 2003 is a pre-requisite for Visual Mainwin, but they plan on removing this
dependancy in future versions. One thing to watch out is that, the source files of
all the projects and the projects they refer to is needed. 
&lt;/p&gt;
&lt;p&gt;
For example, in your web application if you add a reference to a component, the J2EE
project will not compile because it cannot generate the java libraries for the component.
So there should be an equivalent java library (jar file) or the source code should
be there to create it.
&lt;/p&gt;
&lt;p&gt;
I've so far done some simple web applications with it, and it works well.
&lt;/p&gt;
&lt;p&gt;
Now because.Net apps can be deployed on other platforms, here is an article on&amp;nbsp;best
practices 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://linux.sys-con.com/read/117910.htm"&gt;&lt;u&gt;&lt;font color="#0000ff" size="2"&gt;http://linux.sys-con.com/read/117910.htm&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,cafafd2e-9cc4-48e7-882c-2b4929ef4760.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=c01f19c3-8d4f-4edc-ac4d-18dd3e20cb03</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,c01f19c3-8d4f-4edc-ac4d-18dd3e20cb03.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,c01f19c3-8d4f-4edc-ac4d-18dd3e20cb03.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c01f19c3-8d4f-4edc-ac4d-18dd3e20cb03</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A <a href="http://weblogs.asp.net/scottgu/archive/2005/08/21/423201.aspx">detailed
post explaining the new web project system </a>by Scott Guthrie. The features are
interesting, but not implemented in Beta 2 or are buggy. MS expects all of this to
be in the final release.
</p>
        <p>
To summarise,
</p>
        <p>
No need for Frontpage server extensions on the server or development machine. Just
install VS 2005 and you are good to go. No need for IIS too. This is good cos now
it would be possible to test web apps using Apache and the mod_dotnet module.
</p>
        <p>
There is no web project file. The project infers the contents from the file system. With
this there would be no more mapping a IIS virtual directory for a web project. Very
useful when you want someone else to open your web project.
</p>
        <p>
There is a "hit refresh to compile" feature. Say you make a change to a page or a
code behind file, now just refresh the page for it to compile.
</p>
        <p>
Anyways thats just a lil bit of what interests me. The has been quite a bit of confusion
regarding the new web project system, and this post clears some of that. However,
I'll have to wait and see how this all works in the Final version.
</p>
        <p>
 
</p>
      </body>
      <title>More on the VS 2005 Webproject system.</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,c01f19c3-8d4f-4edc-ac4d-18dd3e20cb03.aspx</guid>
      <link>http://www.hibri.net/2005/08/22/MoreOnTheVS2005WebprojectSystem.aspx</link>
      <pubDate>Mon, 22 Aug 2005 09:55:29 GMT</pubDate>
      <description>
&lt;p&gt;
A &lt;a href="http://weblogs.asp.net/scottgu/archive/2005/08/21/423201.aspx"&gt;detailed
post explaining the new web project system &lt;/a&gt;by Scott Guthrie. The features are
interesting, but not implemented in Beta 2 or are buggy. MS expects all of this to
be in the final release.
&lt;/p&gt;
&lt;p&gt;
To summarise,
&lt;/p&gt;
&lt;p&gt;
No need for Frontpage server extensions on the server or development machine. Just
install VS 2005 and you are good to go. No need for IIS too. This is good cos now
it would be possible to test web apps using Apache and the mod_dotnet module.
&lt;/p&gt;
&lt;p&gt;
There is no web project file. The project infers the contents from the file system.&amp;nbsp;With
this there would be no more mapping a IIS virtual directory for a web project. Very
useful when you want someone else to open your web project.
&lt;/p&gt;
&lt;p&gt;
There is a "hit refresh to compile" feature. Say you make a change to a page or a
code behind file, now just refresh the page for it to compile.
&lt;/p&gt;
&lt;p&gt;
Anyways thats just a lil bit of what interests me. The has been quite a bit of confusion
regarding the new web project system, and this post clears some of that. However,
I'll have to wait and see how this all works in the Final version.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,c01f19c3-8d4f-4edc-ac4d-18dd3e20cb03.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=853b7a46-4833-4887-9fb5-34533f1d61e6</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,853b7a46-4833-4887-9fb5-34533f1d61e6.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,853b7a46-4833-4887-9fb5-34533f1d61e6.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=853b7a46-4833-4887-9fb5-34533f1d61e6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Presentations from Tech ED introducing the new features of ASP .Net 2.0
</p>
        <p>
Download them <a href="http://msdn.microsoft.com/asp.net/community/events/teched2005/default.aspx">here</a>.
</p>
        <p>
A <a href="http://blogs.msdn.com/bgold/archive/2005/08/12/450959.aspx">collection
of HOW TO's</a> from <a href="http://blogs.msdn.com/bgold/">Brain Goldfarb</a>.
</p>
        <p class="dtH1">
          <a name="securityhowtosindex_aspnet2">
          </a>
          <strong>ASP.NET 2.0</strong>
        </p>
        <ul type="disc">
          <li>
How To: Prevent Cross-Site Scripting in ASP.NET: <a href="http://msdn.microsoft.com/library/en-us/dnpag2/html/paght000004.asp">http://msdn.microsoft.com/library/en-us/dnpag2/html/PAGHT000004.asp</a></li>
          <li>
How To: Protect From Injection Attacks in ASP.NET: <a href="http://msdn.microsoft.com/library/en-us/dnpag2/html/paght000003.asp">http://msdn.microsoft.com/library/en-us/dnpag2/html/PAGHT000003.asp</a></li>
          <li>
How To: Protect From SQL Injection in ASP.NET: <a href="http://msdn.microsoft.com/library/en-us/dnpag2/html/paght000002.asp">http://msdn.microsoft.com/library/en-us/dnpag2/html/PAGHT000002.asp</a></li>
          <li>
How To: Use Regular Expressions to Constrain Input in ASP.NET: <a href="http://msdn.microsoft.com/library/en-us/dnpag2/html/paght000001.asp">http://msdn.microsoft.com/library/en-us/dnpag2/html/PAGHT000001.asp</a></li>
        </ul>
        <p class="dtH1">
          <a name="securityhowtosindex_auth">
          </a>
          <strong>Authentication and Authorization</strong>
        </p>
        <ul type="disc">
          <li>
How To: Use Forms Authentication with Active Directory: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT02.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT02.asp</a></li>
          <li>
How To: Use Forms Authentication with SQL Server 2000: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT03.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT03.asp</a></li>
          <li>
How To: Create GenericPrincipal Objects with Forms Authentication: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT04.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT04.asp</a></li>
        </ul>
        <p class="dtH1">
          <a name="securityhowtosindex_codeaccess">
          </a>
          <strong>Code Access Security (.NET Framework
1.1)</strong>
        </p>
        <ul type="disc">
          <li>
How To: Create a Custom Encryption Permission: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTCustEncr.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTCustEncr.asp</a></li>
          <li>
How To: Use Code Access Security Policy to Constrain an Assembly: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTCode_Acc.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTCode_Acc.asp</a></li>
        </ul>
        <p class="dtH1">
          <a name="securityhowtosindex_communications">
          </a>
          <strong>Communications Security</strong>
        </p>
        <ul type="disc">
          <li>
How To: Call a Web Service Using Client Certificates from ASP.NET: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT13.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT13.asp</a></li>
          <li>
How To: Call a Web Service Using SSL: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT14.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT14.asp</a></li>
          <li>
How To: Set Up SSL on a Web Server: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT16.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT16.asp</a></li>
          <li>
How To: Set Up Client Certificates: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT17.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT17.asp</a></li>
          <li>
How To: Use IPSec for Filtering Ports and Authentication: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTUseIPSec.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTUseIPSec.asp</a></li>
          <li>
How To: Use IPSec to Provide Secure Communication Between Two Servers: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT18.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT18.asp</a></li>
          <li>
How To: Use SSL to Secure Communication with SQL Server 2000: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT19.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT19.asp</a></li>
        </ul>
        <p class="dtH1">
          <a name="securityhowtosindex_config">
          </a>
          <strong>Configuration</strong>
        </p>
        <ul type="disc">
          <li>
How To: Create a Custom Account To Run ASP.NET: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT01.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT01.asp</a></li>
        </ul>
        <p class="dtH1">
          <a name="securityhowtosindex_cryptography">
          </a>
          <strong>Cryptography</strong>
        </p>
        <ul type="disc">
          <li>
How To: Create a DPAPI Library: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT07.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT07.asp</a></li>
          <li>
How To: Create an Encryption Library: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT10.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT10.asp</a></li>
          <li>
How To: Store an Encrypted Connection String in the Registry: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT11.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT11.asp</a></li>
          <li>
How To: Use DPAPI (Machine Store) from ASP.NET: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT08.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT08.asp</a></li>
          <li>
How To: Use DPAPI (User Store) from ASP.NET with Enterprise Services: <a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT09.asp">http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT09.asp</a></li>
        </ul>
      </body>
      <title>Presentations from Tech Ed June 2005</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,853b7a46-4833-4887-9fb5-34533f1d61e6.aspx</guid>
      <link>http://www.hibri.net/2005/08/21/PresentationsFromTechEdJune2005.aspx</link>
      <pubDate>Sun, 21 Aug 2005 16:28:45 GMT</pubDate>
      <description>
&lt;p&gt;
Presentations from Tech ED introducing the new features of ASP .Net 2.0
&lt;/p&gt;
&lt;p&gt;
Download them &lt;a href="http://msdn.microsoft.com/asp.net/community/events/teched2005/default.aspx"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
A &lt;a href="http://blogs.msdn.com/bgold/archive/2005/08/12/450959.aspx"&gt;collection
of HOW TO's&lt;/a&gt; from &lt;a href="http://blogs.msdn.com/bgold/"&gt;Brain Goldfarb&lt;/a&gt;.
&lt;/p&gt;
&lt;p class="dtH1"&gt;
&lt;a name="securityhowtosindex_aspnet2"&gt;&lt;/a&gt;&lt;strong&gt;ASP.NET 2.0&lt;/strong&gt;
&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li&gt;
How To: Prevent Cross-Site Scripting in ASP.NET: &lt;a href="http://msdn.microsoft.com/library/en-us/dnpag2/html/paght000004.asp"&gt;http://msdn.microsoft.com/library/en-us/dnpag2/html/PAGHT000004.asp&lt;/a&gt; 
&lt;li&gt;
How To: Protect From Injection Attacks in ASP.NET: &lt;a href="http://msdn.microsoft.com/library/en-us/dnpag2/html/paght000003.asp"&gt;http://msdn.microsoft.com/library/en-us/dnpag2/html/PAGHT000003.asp&lt;/a&gt; 
&lt;li&gt;
How To: Protect From SQL Injection in ASP.NET: &lt;a href="http://msdn.microsoft.com/library/en-us/dnpag2/html/paght000002.asp"&gt;http://msdn.microsoft.com/library/en-us/dnpag2/html/PAGHT000002.asp&lt;/a&gt; 
&lt;li&gt;
How To: Use Regular Expressions to Constrain Input in ASP.NET: &lt;a href="http://msdn.microsoft.com/library/en-us/dnpag2/html/paght000001.asp"&gt;http://msdn.microsoft.com/library/en-us/dnpag2/html/PAGHT000001.asp&lt;/a&gt; 
&lt;/li&gt;
&gt;&gt;&gt;
&lt;/ul&gt;
&lt;p class="dtH1"&gt;
&lt;a name="securityhowtosindex_auth"&gt;&lt;/a&gt;&lt;strong&gt;Authentication and Authorization&lt;/strong&gt;
&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li&gt;
How To: Use Forms Authentication with Active Directory: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT02.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT02.asp&lt;/a&gt; 
&lt;li&gt;
How To: Use Forms Authentication with SQL Server 2000: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT03.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT03.asp&lt;/a&gt; 
&lt;li&gt;
How To: Create GenericPrincipal Objects with Forms Authentication: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT04.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT04.asp&lt;/a&gt; 
&lt;/li&gt;
&gt;&gt;
&lt;/ul&gt;
&lt;p class="dtH1"&gt;
&lt;a name="securityhowtosindex_codeaccess"&gt;&lt;/a&gt;&lt;strong&gt;Code Access Security (.NET Framework
1.1)&lt;/strong&gt;
&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li&gt;
How To: Create a Custom Encryption Permission: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTCustEncr.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTCustEncr.asp&lt;/a&gt; 
&lt;li&gt;
How To: Use Code Access Security Policy to Constrain an Assembly: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTCode_Acc.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTCode_Acc.asp&lt;/a&gt; 
&lt;/li&gt;
&gt;
&lt;/ul&gt;
&lt;p class="dtH1"&gt;
&lt;a name="securityhowtosindex_communications"&gt;&lt;/a&gt;&lt;strong&gt;Communications Security&lt;/strong&gt;
&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li&gt;
How To: Call a Web Service Using Client Certificates from ASP.NET: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT13.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT13.asp&lt;/a&gt; 
&lt;li&gt;
How To: Call a Web Service Using SSL: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT14.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT14.asp&lt;/a&gt; 
&lt;li&gt;
How To: Set Up SSL on a Web Server: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT16.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT16.asp&lt;/a&gt; 
&lt;li&gt;
How To: Set Up Client Certificates: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT17.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT17.asp&lt;/a&gt; 
&lt;li&gt;
How To: Use IPSec for Filtering Ports and Authentication: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTUseIPSec.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/HTUseIPSec.asp&lt;/a&gt; 
&lt;li&gt;
How To: Use IPSec to Provide Secure Communication Between Two Servers: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT18.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT18.asp&lt;/a&gt; 
&lt;li&gt;
How To: Use SSL to Secure Communication with SQL Server 2000: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT19.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT19.asp&lt;/a&gt; 
&lt;/li&gt;
&gt;&gt;&gt;&gt;&gt;&gt;
&lt;/ul&gt;
&lt;p class="dtH1"&gt;
&lt;a name="securityhowtosindex_config"&gt;&lt;/a&gt;&lt;strong&gt;Configuration&lt;/strong&gt;
&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li&gt;
How To: Create a Custom Account To Run ASP.NET: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT01.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT01.asp&lt;/a&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="dtH1"&gt;
&lt;a name="securityhowtosindex_cryptography"&gt;&lt;/a&gt;&lt;strong&gt;Cryptography&lt;/strong&gt;
&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li&gt;
How To: Create a DPAPI Library: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT07.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT07.asp&lt;/a&gt; 
&lt;li&gt;
How To: Create an Encryption Library: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT10.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT10.asp&lt;/a&gt; 
&lt;li&gt;
How To: Store an Encrypted Connection String in the Registry: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT11.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT11.asp&lt;/a&gt; 
&lt;li&gt;
How To: Use DPAPI (Machine Store) from ASP.NET: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT08.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT08.asp&lt;/a&gt; 
&lt;li&gt;
How To: Use DPAPI (User Store) from ASP.NET with Enterprise Services: &lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT09.asp"&gt;http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetHT09.asp&lt;/a&gt; 
&lt;/li&gt;
&gt;&gt;&gt;&gt;
&lt;/ul&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,853b7a46-4833-4887-9fb5-34533f1d61e6.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=3ffd9f52-2c6c-4abb-91f0-d8670064aa78</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,3ffd9f52-2c6c-4abb-91f0-d8670064aa78.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,3ffd9f52-2c6c-4abb-91f0-d8670064aa78.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=3ffd9f52-2c6c-4abb-91f0-d8670064aa78</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
new blog version , new look and feel..
</p>
        <p>
let me know what you think...
</p>
      </body>
      <title>Upgrade</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,3ffd9f52-2c6c-4abb-91f0-d8670064aa78.aspx</guid>
      <link>http://www.hibri.net/2005/08/20/Upgrade.aspx</link>
      <pubDate>Sat, 20 Aug 2005 21:34:40 GMT</pubDate>
      <description>
&lt;p&gt;
new blog version , new look and feel..
&lt;/p&gt;
&lt;p&gt;
let me know what you think...
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,3ffd9f52-2c6c-4abb-91f0-d8670064aa78.aspx</comments>
      <category>.Net Web</category>
      <category>dasBlog</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=50df17a9-d0c6-4b5d-b1fc-e5e5e6d08542</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,50df17a9-d0c6-4b5d-b1fc-e5e5e6d08542.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,50df17a9-d0c6-4b5d-b1fc-e5e5e6d08542.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=50df17a9-d0c6-4b5d-b1fc-e5e5e6d08542</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Finally got Dasblog to build under .Net 2.0. I got an update to the migration wizard
from <a href="http://weblogs.asp.net/scottgu/archive/2005/08/07/421827.aspx">http://weblogs.asp.net/scottgu/archive/2005/08/07/421827.aspx</a> (Thanks <a href="http://www.chrisfrazier.net/blog">Chris</a>).
There were 2 snags in the migration. The dasblog.web project was not converted because
there wasn't a IIS virtual directory for it, I created a virtual directory and reloaded
the project. VS 2005 then converted the project. However it missed one file 'Activity.aspx'.
I had to change the codebehind attribute to codefile and the class declaration to
a public partial. After this the project compiled, but still will not run. A resource
assembly seems to be missing. I'll have to hunt this issue later. Atleast I got to
the point where the site runs and gives me a stack trace. The web site does not work
under IIS and only on the development webserver. 
</p>
        <p>
fyi I'm converting dasblog 1.6.4121.1.
</p>
        <p>
If anyone has any .Net 1.1 to .Net 2.0 conversion stories,tips,tricks and gotchas
to share.. please let me know. As I posted earlier I was able to convert a 1.1 Winforms
project with no problems, and this was under the Express edition.
</p>
        <p>
anyways more on this later...
</p>
      </body>
      <title>It builds...</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,50df17a9-d0c6-4b5d-b1fc-e5e5e6d08542.aspx</guid>
      <link>http://www.hibri.net/2005/08/13/ItBuilds.aspx</link>
      <pubDate>Sat, 13 Aug 2005 14:59:09 GMT</pubDate>
      <description>
&lt;p&gt;
Finally got Dasblog to build under .Net 2.0. I got an update to the migration wizard
from &lt;a href="http://weblogs.asp.net/scottgu/archive/2005/08/07/421827.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2005/08/07/421827.aspx&lt;/a&gt;&amp;nbsp;(Thanks &lt;a href="http://www.chrisfrazier.net/blog"&gt;Chris&lt;/a&gt;).
There were 2 snags in the migration. The dasblog.web project was not converted because
there wasn't a IIS virtual directory for it, I created a virtual directory and reloaded
the project. VS 2005 then converted the project. However it missed one file 'Activity.aspx'.
I had to change the codebehind attribute to codefile and the class declaration to
a public partial. After this the project compiled, but still will not run. A resource
assembly seems to be missing. I'll have to hunt this issue later. Atleast I got to
the point where the site runs and gives me a stack trace. The web site does not work
under IIS and only on the development webserver. 
&lt;/p&gt;
&lt;p&gt;
fyi I'm converting dasblog 1.6.4121.1.
&lt;/p&gt;
&lt;p&gt;
If anyone has any .Net 1.1 to .Net 2.0 conversion stories,tips,tricks and gotchas
to share.. please let me know. As I posted earlier I was able to convert a 1.1 Winforms
project with no problems, and this was under the Express edition.
&lt;/p&gt;
&lt;p&gt;
anyways more on this later...
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,50df17a9-d0c6-4b5d-b1fc-e5e5e6d08542.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=bfb3bcc2-e440-4866-8099-74baa307b9e7</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,bfb3bcc2-e440-4866-8099-74baa307b9e7.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,bfb3bcc2-e440-4866-8099-74baa307b9e7.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=bfb3bcc2-e440-4866-8099-74baa307b9e7</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As posted earlier I'm trying to migrate Dasblog from 1.1 to 2.0. Visual studio refused
to compile aspx pages in the dasblog webproject after the conversion. The aspx pages
did not see the custom controls the custom controls that were used by the pages and
the compiler was throwing missing reference errrors. The controls themselves did not
have any errors and compiled individually but will not show up in Intellisense and
the class viewer. None of the pages showed up in the class viewer. I even tried adding
a new page, but still no luck.
</p>
        <p>
Googling for this got me here <a href="http://west-wind.com/weblog/posts/2130.aspx">http://west-wind.com/weblog/posts/2130.aspx</a>.
Well atleast I'm not alone in this. The reason for this seems to be partial classes.
Now partial classes are combined to a complete class at compile time and for some
reason these complete classes made of partial classes are not visible at design time.
I'm using the February 2005 CTP release of Visual Studio 2005. I dont have a solution
yet..so I've paused this conversion project for now. I'll try it again when I get
the June 2005 release or the final. 
</p>
        <p>
If any of you have had this problem and solved it please let me know...
</p>
      </body>
      <title>More on ASP .Net 2.0 migration..</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,bfb3bcc2-e440-4866-8099-74baa307b9e7.aspx</guid>
      <link>http://www.hibri.net/2005/08/11/MoreOnASPNet20Migration.aspx</link>
      <pubDate>Thu, 11 Aug 2005 19:42:38 GMT</pubDate>
      <description>
&lt;p&gt;
As posted earlier I'm trying to migrate Dasblog from 1.1 to 2.0. Visual studio refused
to compile aspx pages in the dasblog webproject after the conversion. The aspx pages
did not see the custom controls the custom controls that were used by the pages and
the compiler was throwing missing reference errrors. The controls themselves did not
have any errors and compiled individually but will not show up in Intellisense and
the class viewer. None of the pages showed up in the class viewer. I even tried adding
a new page, but still no luck.
&lt;/p&gt;
&lt;p&gt;
Googling for this got me here &lt;a href="http://west-wind.com/weblog/posts/2130.aspx"&gt;http://west-wind.com/weblog/posts/2130.aspx&lt;/a&gt;.
Well atleast I'm not alone in this. The reason for this seems to be partial classes.
Now partial classes are combined to a complete class at compile time and for some
reason these complete classes made of partial classes are not visible at design time.
I'm using the February 2005 CTP release of Visual Studio 2005. I dont have a solution
yet..so I've paused this conversion project for now. I'll try it again when I get
the June 2005 release or the final. 
&lt;/p&gt;
&lt;p&gt;
If any of you have had this problem and solved it please let me know...
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,bfb3bcc2-e440-4866-8099-74baa307b9e7.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=a809f8bd-26de-42a8-87c1-95592b4b095f</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,a809f8bd-26de-42a8-87c1-95592b4b095f.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,a809f8bd-26de-42a8-87c1-95592b4b095f.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a809f8bd-26de-42a8-87c1-95592b4b095f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Got this article on Unicode via <a href="http://www.freelancers.net">freelancers.net</a></p>
        <p>
          <a href="http://www.joelonsoftware.com/articles/Unicode.html">http://www.joelonsoftware.com/articles/Unicode.html</a>.
A good intro to the workings of Unicode and why it is so
</p>
      </body>
      <title>What you should know about Unicode</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,a809f8bd-26de-42a8-87c1-95592b4b095f.aspx</guid>
      <link>http://www.hibri.net/2005/07/25/WhatYouShouldKnowAboutUnicode.aspx</link>
      <pubDate>Mon, 25 Jul 2005 19:22:32 GMT</pubDate>
      <description>
&lt;p&gt;
Got this article on Unicode via &lt;a href="http://www.freelancers.net"&gt;freelancers.net&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.joelonsoftware.com/articles/Unicode.html"&gt;http://www.joelonsoftware.com/articles/Unicode.html&lt;/a&gt;.
A good intro to the workings of Unicode and why it is so
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,a809f8bd-26de-42a8-87c1-95592b4b095f.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=66d76c4f-5fc9-47e3-b568-7d9bda917ea4</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,66d76c4f-5fc9-47e3-b568-7d9bda917ea4.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,66d76c4f-5fc9-47e3-b568-7d9bda917ea4.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=66d76c4f-5fc9-47e3-b568-7d9bda917ea4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Funny presentation by Rich Bowen <a href="http://people.apache.org/~rbowen/presentations/apacheconEU2005/hate_apache.pdf">http://people.apache.org/~rbowen/presentations/apacheconEU2005/hate_apache.pdf</a></p>
        <p>
On the same topic is there a GUI administration tool for Apache on Windows ?
</p>
        <p>
I'm looking for information on how Apache for Windows compares to IIS. Since Apache
Win32 can be used with .Net, how many of you will use it in a production environment
? Since any Windows Server comes with IIS anyway my opinion is that this is not a
very useful combination, other than to use it for testing on a development machine.
IIS 6.0 has given good a performance in my experience, but I havn't compared
it against Apache Win32. IIS 6 would have the upper hand since the HTTP processing
is integrated into the kernel.
</p>
      </body>
      <title>Why I hate the Apache webserver</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,66d76c4f-5fc9-47e3-b568-7d9bda917ea4.aspx</guid>
      <link>http://www.hibri.net/2005/07/23/WhyIHateTheApacheWebserver.aspx</link>
      <pubDate>Sat, 23 Jul 2005 08:17:19 GMT</pubDate>
      <description>
&lt;p&gt;
Funny presentation by Rich Bowen &lt;a href="http://people.apache.org/~rbowen/presentations/apacheconEU2005/hate_apache.pdf"&gt;http://people.apache.org/~rbowen/presentations/apacheconEU2005/hate_apache.pdf&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
On the same topic is there a GUI administration tool for Apache on Windows ?
&lt;/p&gt;
&lt;p&gt;
I'm looking for information on how Apache for Windows compares to IIS. Since&amp;nbsp;Apache
Win32 can be used with .Net, how many of you will use it in a production environment
? Since any Windows Server comes with IIS anyway my opinion is that this is not a
very useful combination, other than to use it for testing on a development machine.
IIS 6.0 has given&amp;nbsp;good a&amp;nbsp;performance in my experience, but I havn't compared
it against Apache Win32. IIS 6 would have the upper hand since the HTTP processing
is integrated into the kernel.
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,66d76c4f-5fc9-47e3-b568-7d9bda917ea4.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=d7ef7162-246b-4f41-964b-76c989c62e45</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,d7ef7162-246b-4f41-964b-76c989c62e45.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,d7ef7162-246b-4f41-964b-76c989c62e45.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d7ef7162-246b-4f41-964b-76c989c62e45</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm looking at two browser based HTML editors. I've shortlisted my choices to two
TinyMCE <a href="http://tinymce.moxiecode.com/">http://tinymce.moxiecode.com/</a> and
FCKEditor <a href="http://www.fckeditor.net/">http://www.fckeditor.net/</a>. Both
are F/OSS and TinyMCE is used on Mambo. It is quite customisable but I still have
to figure out  how to fit in my own custom image filemanager. FCKEditor comes
with a filemanager, but does not have the feature to disable buttons on the editor.
This is because I wont need all the features (may confuse users). If I'm able to do
a file manager for TinyMCE, I'll use it. 
</p>
        <p>
On the same topic, <a href="http://www.chrisfrazier.net/blog/">PostXING</a> is
what I've been using to post entries on here and very happy with it. Very stable and
has good editing features. Now only if they would add a spell checker.
</p>
        <p>
 
</p>
      </body>
      <title>WYSIWYG Html editors</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,d7ef7162-246b-4f41-964b-76c989c62e45.aspx</guid>
      <link>http://www.hibri.net/2005/07/08/WYSIWYGHtmlEditors.aspx</link>
      <pubDate>Fri, 08 Jul 2005 20:37:19 GMT</pubDate>
      <description>
&lt;p&gt;
I'm looking at two browser based HTML editors. I've shortlisted my choices to two
TinyMCE &lt;a href="http://tinymce.moxiecode.com/"&gt;http://tinymce.moxiecode.com/&lt;/a&gt;&amp;nbsp;and
FCKEditor &lt;a href="http://www.fckeditor.net/"&gt;http://www.fckeditor.net/&lt;/a&gt;. Both
are F/OSS and TinyMCE is used on Mambo. It is quite customisable but I still have
to figure out&amp;nbsp; how to fit in my own custom image filemanager. FCKEditor comes
with a filemanager, but does not have the feature to disable buttons on the editor.
This is because I wont need all the features (may confuse users). If I'm able to do
a file manager for TinyMCE, I'll use it. 
&lt;/p&gt;
&lt;p&gt;
On the same topic, &lt;a href="http://www.chrisfrazier.net/blog/"&gt;PostXING&lt;/a&gt;&amp;nbsp;is
what I've been using to post entries on here and very happy with it. Very stable and
has good editing features. Now only if they would add a spell checker.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,d7ef7162-246b-4f41-964b-76c989c62e45.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=a58f37b0-95a9-4e3d-8d48-db6a2925841d</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,a58f37b0-95a9-4e3d-8d48-db6a2925841d.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,a58f37b0-95a9-4e3d-8d48-db6a2925841d.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a58f37b0-95a9-4e3d-8d48-db6a2925841d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Was searching  for Web Accessibility info and got this site <a href="http://www.ua-wg.org/articles/">http://www.ua-wg.org/articles/</a><br />
From reading all of this, it is not hard to create accessible websites, all that is
needed is the mindset and sticking to a few simple rules. The side effects from building
an accessible website is that the site's usability is increased. This makes it easier
for normal people to use the site. The articles also suggests that accessibility improves
search engine rankings. This makes sense because if the structure and content of the
site are cleanly separated it will be easy for a search engine bot to crawl through
the site. It also makes the site easier to view from other devices such as phones
and PDAs.
</p>
        <p>
I also learnt about the label tag for the first time. <a href="http://www.ua-wg.org/articles/forms1.html">Using
the</a><a href="http://www.ua-wg.org/articles/forms1.html"></a><a href="http://www.ua-wg.org/articles/forms1.html">&lt;</a><a href="http://www.ua-wg.org/articles/forms1.html">label</a><a href="http://www.ua-wg.org/articles/forms1.html">&gt;</a><a href="http://www.ua-wg.org/articles/forms1.html"></a><a href="http://www.ua-wg.org/articles/forms1.html">tag
to</a><a href="http://www.ua-wg.org/articles/forms1.html"></a><a href="http://www.ua-wg.org/articles/forms1.html">label
form elements</a> will set the focus to the form element when the label text is clicked.
Why go through complex tables and css when there is a simple set of <a href="http://www.ua-wg.org/articles/forms2.html">tags
to group related</a><a href="http://www.ua-wg.org/articles/forms2.html"></a><a href="http://www.ua-wg.org/articles/forms2.html">form
elements</a>, just like the group box control in Windows Forms. This also shows a
simple way to group items within a dropdown box.
</p>
        <p>
This site conforms to Priority 1 of the WAI guidelines, but with many warnings. There
is an automated testing tool at <a href="http://webxact.watchfire.com/">http://webxact.watchfire.com/</a>.
From the errors given, it doesn't seem much work to make this site conform to all
3 checkpoints. To conform with the UK Disability Discrimination Act (DDA) a website
will have to conform to Priority 1 and Priority 2 of the <a href="WAI%20guidelines">WAI
guidelines</a>.
</p>
      </body>
      <title>Accessible Websites are not hard to create...</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,a58f37b0-95a9-4e3d-8d48-db6a2925841d.aspx</guid>
      <link>http://www.hibri.net/2005/07/04/AccessibleWebsitesAreNotHardToCreate.aspx</link>
      <pubDate>Mon, 04 Jul 2005 14:26:06 GMT</pubDate>
      <description>
&lt;p&gt;
Was searching&amp;nbsp; for Web Accessibility info and got this site &lt;a href="http://www.ua-wg.org/articles/"&gt;http://www.ua-wg.org/articles/&lt;/a&gt;
&lt;br&gt;
From reading all of this, it is not hard to create accessible websites, all that is
needed is the mindset and sticking to a few simple rules. The side effects from building
an accessible website is that the site's usability is increased. This makes it easier
for normal people to use the site. The articles also suggests that accessibility improves
search engine rankings. This makes sense because if the structure and content of the
site are cleanly separated it will be easy for a search engine bot to crawl through
the site. It also makes the site easier to view from other devices such as phones
and PDAs.
&lt;/p&gt;
&lt;p&gt;
I also learnt about the label tag for the first time. &lt;a href="http://www.ua-wg.org/articles/forms1.html"&gt;Using
the&lt;/a&gt;&lt;a href="http://www.ua-wg.org/articles/forms1.html"&gt;&lt;/a&gt;&lt;a href="http://www.ua-wg.org/articles/forms1.html"&gt;&amp;lt;&lt;/a&gt;&lt;a href="http://www.ua-wg.org/articles/forms1.html"&gt;label&lt;/a&gt;&lt;a href="http://www.ua-wg.org/articles/forms1.html"&gt;&amp;gt;&lt;/a&gt;&lt;a href="http://www.ua-wg.org/articles/forms1.html"&gt; &lt;/a&gt;&lt;a href="http://www.ua-wg.org/articles/forms1.html"&gt;tag
to&lt;/a&gt;&lt;a href="http://www.ua-wg.org/articles/forms1.html"&gt;&lt;/a&gt;&lt;a href="http://www.ua-wg.org/articles/forms1.html"&gt;label
form elements&lt;/a&gt; will set the focus to the form element when the label text is clicked.
Why go through complex tables and css when there is a simple set of &lt;a href="http://www.ua-wg.org/articles/forms2.html"&gt;tags
to group related&lt;/a&gt;&lt;a href="http://www.ua-wg.org/articles/forms2.html"&gt; &lt;/a&gt;&lt;a href="http://www.ua-wg.org/articles/forms2.html"&gt;form
elements&lt;/a&gt;, just like the group box control in Windows Forms. This also shows a
simple way to group items within a dropdown box.
&lt;/p&gt;
&lt;p&gt;
This site conforms to Priority 1 of the WAI guidelines, but with many warnings. There
is an automated testing tool at &lt;a href="http://webxact.watchfire.com/"&gt;http://webxact.watchfire.com/&lt;/a&gt;.
From the errors given, it doesn't seem much work to make this site conform to all
3 checkpoints. To conform with the UK Disability Discrimination Act (DDA) a website
will have to conform to Priority 1 and Priority 2 of the &lt;a href="WAI%20guidelines"&gt;WAI
guidelines&lt;/a&gt;.
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,a58f37b0-95a9-4e3d-8d48-db6a2925841d.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=4127ff4d-4862-4601-8c3f-42b65fc73c46</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,4127ff4d-4862-4601-8c3f-42b65fc73c46.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,4127ff4d-4862-4601-8c3f-42b65fc73c46.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=4127ff4d-4862-4601-8c3f-42b65fc73c46</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
fine tune website performance, see what the browser is doing. Handcraft http requests
etc..
</p>
        <p>
this beats using ethereal to do the same..
</p>
        <p>
          <a href="http://msdn.microsoft.com/ie/default.aspx?pull=/library/en-us/dnwebgen/html/ie_introfiddler2.asp">http://msdn.microsoft.com/ie/default.aspx?pull=/library/en-us/dnwebgen/html/ie_introfiddler2.asp</a>
        </p>
        <p>
Downlod from <a href="http://www.fiddlertool.com/fiddler/">http://www.fiddlertool.com/fiddler/</a></p>
      </body>
      <title>Fiddler : A HTTP Debugger</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,4127ff4d-4862-4601-8c3f-42b65fc73c46.aspx</guid>
      <link>http://www.hibri.net/2005/06/24/FiddlerAHTTPDebugger.aspx</link>
      <pubDate>Fri, 24 Jun 2005 20:46:23 GMT</pubDate>
      <description>
&lt;p&gt;
fine tune website performance, see what the browser is doing. Handcraft http requests
etc..
&lt;/p&gt;
&lt;p&gt;
this beats using ethereal to do the same..
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/ie/default.aspx?pull=/library/en-us/dnwebgen/html/ie_introfiddler2.asp"&gt;http://msdn.microsoft.com/ie/default.aspx?pull=/library/en-us/dnwebgen/html/ie_introfiddler2.asp&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Downlod from &lt;a href="http://www.fiddlertool.com/fiddler/"&gt;http://www.fiddlertool.com/fiddler/&lt;/a&gt;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,4127ff4d-4862-4601-8c3f-42b65fc73c46.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=7320c30c-56fa-42a0-ae61-360c1d3245f6</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,7320c30c-56fa-42a0-ae61-360c1d3245f6.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,7320c30c-56fa-42a0-ae61-360c1d3245f6.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7320c30c-56fa-42a0-ae61-360c1d3245f6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm evaluating PHP versus .Net for an application I have to build. One factor that
favours PHP is hosting costs. LAMP hosting is much cheaper than .Net hosting. PHP
gives most of the functionality that .Net can give, more like classic ASP so the higher
cost of .Net hosting cannot be justified. So I'm learning PHP and MySQL. I'm
pretty good with Linux but never tried any development on it.. so here goes. I'm planning
on using Apache <a href="http://httpd.apache.org/docs/mod/mod_rewrite.html">mod_rewrite</a>,
there is an IIS equivalent but not so powerful as mod_rewrite. If I had done this
in .Net, I'd have to write it as an http handler. I might do this later but its nice
to have this as part of the web server. <a href="http://www.sitepoint.com/article/guide-url-rewriting">A
few regular expressions is all it takes</a>. 
</p>
      </body>
      <title>PHP &amp; .Net</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,7320c30c-56fa-42a0-ae61-360c1d3245f6.aspx</guid>
      <link>http://www.hibri.net/2005/06/17/PHPNet.aspx</link>
      <pubDate>Fri, 17 Jun 2005 08:24:41 GMT</pubDate>
      <description>
&lt;p&gt;
I'm evaluating PHP versus .Net for an application I have to build. One factor that
favours PHP is hosting costs. LAMP hosting is much cheaper than .Net hosting. PHP
gives most of the functionality that .Net can give, more like classic ASP so the higher
cost of .Net hosting cannot be justified. So I'm learning&amp;nbsp;PHP and MySQL. I'm
pretty good with Linux but never tried any development on it.. so here goes. I'm planning
on using Apache &lt;a href="http://httpd.apache.org/docs/mod/mod_rewrite.html"&gt;mod_rewrite&lt;/a&gt;,
there is an IIS equivalent but not so powerful as mod_rewrite. If I had done this
in .Net, I'd have to write it as an http handler. I might do this later but its nice
to have this as part of the web server. &lt;a href="http://www.sitepoint.com/article/guide-url-rewriting"&gt;A
few regular expressions is all it takes&lt;/a&gt;. 
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,7320c30c-56fa-42a0-ae61-360c1d3245f6.aspx</comments>
      <category>.Net Web</category>
      <category>Consultancy Skills</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=c1ee11b2-c3c3-4bf8-9559-efcdd97deb65</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,c1ee11b2-c3c3-4bf8-9559-efcdd97deb65.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,c1ee11b2-c3c3-4bf8-9559-efcdd97deb65.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c1ee11b2-c3c3-4bf8-9559-efcdd97deb65</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Two good articles on using the new features in ASP. Net 2.0
</p>
        <p>
          <a href="http://msdn.microsoft.com/msdnmag/issues/05/02/WickedCode/">http://msdn.microsoft.com/msdnmag/issues/05/02/WickedCode/</a>
        </p>
        <p>
          <a href="http://msdn.microsoft.com/msdnmag/issues/05/06/WickedCode/default.aspx">http://msdn.microsoft.com/msdnmag/issues/05/06/WickedCode/default.aspx</a>
        </p>
        <p>
I like the script call back feature using XML-HTTP. This can replace a Java Applet
I built sometime back.
</p>
        <p>
Its good to see that some of the code I've written using the 1.1 runtime be part of
the base class library. This would make development so much faster.
</p>
        <p>
On the other hand are Java Applets still relevant ? The use of JavaScript and XML-HTTP
is increasing. Combine that with the wonderful interfaces Flash can produce and you
have the capability to deploy very light weight web based apps.
</p>
      </body>
      <title>Wicked Code on MSDN Mag</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,c1ee11b2-c3c3-4bf8-9559-efcdd97deb65.aspx</guid>
      <link>http://www.hibri.net/2005/06/16/WickedCodeOnMSDNMag.aspx</link>
      <pubDate>Thu, 16 Jun 2005 20:37:09 GMT</pubDate>
      <description>
&lt;p&gt;
Two good articles on using the new features in ASP. Net 2.0
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/02/WickedCode/"&gt;http://msdn.microsoft.com/msdnmag/issues/05/02/WickedCode/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/06/WickedCode/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/05/06/WickedCode/default.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I like the script call back feature using XML-HTTP. This can replace a Java Applet
I built sometime back.
&lt;/p&gt;
&lt;p&gt;
Its good to see that some of the code I've written using the 1.1 runtime be part of
the base class library. This would make development so much faster.
&lt;/p&gt;
&lt;p&gt;
On the other hand are Java Applets still relevant ? The use of JavaScript and XML-HTTP
is increasing. Combine that with the wonderful interfaces Flash can produce and you
have the capability to deploy very light weight web based apps.
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,c1ee11b2-c3c3-4bf8-9559-efcdd97deb65.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=c56ecfaa-55bb-4109-ad59-89b8342c9f05</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,c56ecfaa-55bb-4109-ad59-89b8342c9f05.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,c56ecfaa-55bb-4109-ad59-89b8342c9f05.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c56ecfaa-55bb-4109-ad59-89b8342c9f05</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;257591">http://support.microsoft.com/default.aspx?scid=kb;en-us;257591</a></p>
        <p>
 
</p>
        <h2 class="subTitle">
          <font size="2">SUMMARY</font>
        </h2>
        <div class="sbody">The Secure Sockets Layer (SSL) protocol uses a combination of public-key
and symmetric-key encryption. Symmetric-key encryption is much faster than public-key
encryption; however, public-key encryption provides better authentication techniques.
An SSL session always begins with an exchange of messages called the SSL handshake.
The handshake allows the server to authenticate itself to the client by using public-key
techniques, and then allows the client and the server to cooperate in the creation
of symmetric keys used for rapid encryption, decryption, and tamper detection during
the session that follows. Optionally, the handshake also allows the client to authenticate
itself to the server. 
<div class="topOfPage"><table><tbody><tr><td class="image"><a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;257591#toc"><font size="2"><img title="Back to the top" alt="Back to the top" src="http://support.microsoft.com/library/images/support/kbgraphics/public/en-us/upArrow.gif" /></font></a></td><td class="text"><a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;257591#toc"><font size="2">Back
to the top</font></a></td></tr></tbody></table></div></div>
        <a id="kb2">
        </a>
        <h2 class="subTitle">
          <font size="2">MORE INFORMATION</font>
        </h2>
        <div class="sbody">The steps involved in the SSL handshake are as follows (note that
the following steps assume the use of the cipher suites listed in Cipher Suites with
RSA Key Exchange: Triple DES, RC4, RC2, DES): 
<table class="list"><tbody><tr><td class="number"><font size="2">1.</font></td><td class="text"><font size="2">The client sends the server the client's SSL version number, cipher
settings, session-specific data, and other information that the server needs to communicate
with the client using SSL.</font></td></tr><tr><td class="number"><font size="2">2.</font></td><td class="text"><font size="2">The server sends the client the server's SSL version number, cipher
settings, session-specific data, and other information that the client needs to communicate
with the server over SSL. The server also sends its own certificate, and if the client
is requesting a server resource that requires client authentication, the server requests
the client's certificate.</font></td></tr><tr><td class="number"><font size="2">3.</font></td><td class="text"><font size="2">The client uses the information sent by the server to authenticate
the server (see Server Authentication for details). If the server cannot be authenticated,
the user is warned of the problem and informed that an encrypted and authenticated
connection cannot be established. If the server can be successfully authenticated,
the client proceeds to step 4.</font></td></tr><tr><td class="number"><font size="2">4.</font></td><td class="text"><font size="2">Using all data generated in the handshake thus far, the client (with
the cooperation of the server, depending on the cipher being used) creates the pre-master
secret for the session, encrypts it with the server's public key (obtained from the
server's certificate, sent in step 2), and then sends the encrypted pre-master secret
to the server. </font></td></tr><tr><td class="number"><font size="2">5.</font></td><td class="text"><font size="2">If the server has requested client authentication (an optional step
in the handshake), the client also signs another piece of data that is unique to this
handshake and known by both the client and server. In this case, the client sends
both the signed data and the client's own certificate to the server along with the
encrypted pre-master secret. </font></td></tr><tr><td class="number"><font size="2">6.</font></td><td class="text"><font size="2">If the server has requested client authentication, the server attempts
to authenticate the client (see Client Authentication for details). If the client
cannot be authenticated, the session ends. If the client can be successfully authenticated,
the server uses its private key to decrypt the pre-master secret, and then performs
a series of steps (which the client also performs, starting from the same pre-master
secret) to generate the master secret. </font></td></tr><tr><td class="number"><font size="2">7.</font></td><td class="text"><font size="2">Both the client and the server use the master secret to generate the
session keys, which are symmetric keys used to encrypt and decrypt information exchanged
during the SSL session and to verify its integrity (that is, to detect any changes
in the data between the time it was sent and the time it is received over the SSL
connection).</font></td></tr><tr><td class="number"><font size="2">8.</font></td><td class="text"><font size="2">The client sends a message to the server informing it that future messages
from the client will be encrypted with the session key. It then sends a separate (encrypted)
message indicating that the client portion of the handshake is finished. </font></td></tr><tr><td class="number"><font size="2">9.</font></td><td class="text"><font size="2">The server sends a message to the client informing it that future messages
from the server will be encrypted with the session key. It then sends a separate (encrypted)
message indicating that the server portion of the handshake is finished. </font></td></tr><tr><td class="number"><font size="2">10.</font></td><td class="text"><font size="2">The SSL handshake is now complete and the session begins. The client
and the server use the session keys to encrypt and decrypt the data they send to each
other and to validate its integrity.</font></td></tr><tr><td class="number"><font size="2">11.</font></td><td class="text"><font size="2">This is the normal operation condition of the secure channel. At any
time, due to internal or external stimulus (either automation or user intervention),
either side may renegotiate the connection, in which case, the process repeats itself.</font></td></tr></tbody></table></div>
      </body>
      <title>The SSL Handshake</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,c56ecfaa-55bb-4109-ad59-89b8342c9f05.aspx</guid>
      <link>http://www.hibri.net/2005/04/26/TheSSLHandshake.aspx</link>
      <pubDate>Tue, 26 Apr 2005 21:48:45 GMT</pubDate>
      <description>&lt;p&gt;
From &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;257591"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;257591&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h2 class=subTitle&gt;&lt;font size=2&gt;SUMMARY&lt;/font&gt;
&lt;/h2&gt;
&lt;div class=sbody&gt;The Secure Sockets Layer (SSL) protocol uses a combination of public-key
and symmetric-key encryption. Symmetric-key encryption is much faster than public-key
encryption; however, public-key encryption provides better authentication techniques.
An SSL session always begins with an exchange of messages called the SSL handshake.
The handshake allows the server to authenticate itself to the client by using public-key
techniques, and then allows the client and the server to cooperate in the creation
of symmetric keys used for rapid encryption, decryption, and tamper detection during
the session that follows. Optionally, the handshake also allows the client to authenticate
itself to the server. 
&lt;div class=topOfPage&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=image&gt;
&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;257591#toc"&gt;&lt;font size=2&gt;&lt;img title="Back to the top" alt="Back to the top" src="http://support.microsoft.com/library/images/support/kbgraphics/public/en-us/upArrow.gif"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;257591#toc"&gt;&lt;font size=2&gt;Back
to the top&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;a id=kb2&gt;&lt;/a&gt; 
&lt;h2 class=subTitle&gt;&lt;font size=2&gt;MORE INFORMATION&lt;/font&gt;
&lt;/h2&gt;
&lt;div class=sbody&gt;The steps involved in the SSL handshake are as follows (note that
the following steps assume the use of the cipher suites listed in Cipher Suites with
RSA Key Exchange: Triple DES, RC4, RC2, DES): 
&lt;table class=list&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=number&gt;
&lt;font size=2&gt;1.&lt;/font&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;font size=2&gt;The client sends the server the client's SSL version number, cipher settings,
session-specific data, and other information that the server needs to communicate
with the client using SSL.&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=number&gt;
&lt;font size=2&gt;2.&lt;/font&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;font size=2&gt;The server sends the client the server's SSL version number, cipher settings,
session-specific data, and other information that the client needs to communicate
with the server over SSL. The server also sends its own certificate, and if the client
is requesting a server resource that requires client authentication, the server requests
the client's certificate.&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=number&gt;
&lt;font size=2&gt;3.&lt;/font&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;font size=2&gt;The client uses the information sent by the server to authenticate the
server (see Server Authentication for details). If the server cannot be authenticated,
the user is warned of the problem and informed that an encrypted and authenticated
connection cannot be established. If the server can be successfully authenticated,
the client proceeds to step 4.&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=number&gt;
&lt;font size=2&gt;4.&lt;/font&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;font size=2&gt;Using all data generated in the handshake thus far, the client (with
the cooperation of the server, depending on the cipher being used) creates the pre-master
secret for the session, encrypts it with the server's public key (obtained from the
server's certificate, sent in step 2), and then sends the encrypted pre-master secret
to the server. &lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=number&gt;
&lt;font size=2&gt;5.&lt;/font&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;font size=2&gt;If the server has requested client authentication (an optional step in
the handshake), the client also signs another piece of data that is unique to this
handshake and known by both the client and server. In this case, the client sends
both the signed data and the client's own certificate to the server along with the
encrypted pre-master secret. &lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=number&gt;
&lt;font size=2&gt;6.&lt;/font&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;font size=2&gt;If the server has requested client authentication, the server attempts
to authenticate the client (see Client Authentication for details). If the client
cannot be authenticated, the session ends. If the client can be successfully authenticated,
the server uses its private key to decrypt the pre-master secret, and then performs
a series of steps (which the client also performs, starting from the same pre-master
secret) to generate the master secret. &lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=number&gt;
&lt;font size=2&gt;7.&lt;/font&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;font size=2&gt;Both the client and the server use the master secret to generate the
session keys, which are symmetric keys used to encrypt and decrypt information exchanged
during the SSL session and to verify its integrity (that is, to detect any changes
in the data between the time it was sent and the time it is received over the SSL
connection).&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=number&gt;
&lt;font size=2&gt;8.&lt;/font&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;font size=2&gt;The client sends a message to the server informing it that future messages
from the client will be encrypted with the session key. It then sends a separate (encrypted)
message indicating that the client portion of the handshake is finished. &lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=number&gt;
&lt;font size=2&gt;9.&lt;/font&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;font size=2&gt;The server sends a message to the client informing it that future messages
from the server will be encrypted with the session key. It then sends a separate (encrypted)
message indicating that the server portion of the handshake is finished. &lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=number&gt;
&lt;font size=2&gt;10.&lt;/font&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;font size=2&gt;The SSL handshake is now complete and the session begins. The client
and the server use the session keys to encrypt and decrypt the data they send to each
other and to validate its integrity.&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=number&gt;
&lt;font size=2&gt;11.&lt;/font&gt;&lt;/td&gt;
&lt;td class=text&gt;
&lt;font size=2&gt;This is the normal operation condition of the secure channel. At any
time, due to internal or external stimulus (either automation or user intervention),
either side may renegotiate the connection, in which case, the process repeats itself.&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,c56ecfaa-55bb-4109-ad59-89b8342c9f05.aspx</comments>
      <category>.Net Web</category>
    </item>
    <item>
      <trackback:ping>http://www.hibri.net/Trackback.aspx?guid=b0bb479f-589c-476a-bd79-d7064a5b5bd2</trackback:ping>
      <pingback:server>http://www.hibri.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.hibri.net/PermaLink,guid,b0bb479f-589c-476a-bd79-d7064a5b5bd2.aspx</pingback:target>
      <dc:creator>Hibri</dc:creator>
      <wfw:comment>http://www.hibri.net/CommentView,guid,b0bb479f-589c-476a-bd79-d7064a5b5bd2.aspx</wfw:comment>
      <wfw:commentRss>http://www.hibri.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b0bb479f-589c-476a-bd79-d7064a5b5bd2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Been waiting for this for a while. Didn't notice it when it was released.
</p>
        <p>
          <a href="http://httpd.apache.org/cli/">http://httpd.apache.org/cli/</a>
        </p>
        <p>
This works only for the 1.1 version of the .Net runtime
</p>
        <p>
Free webserver
</p>
        <p>
Free runtime
</p>
        <p>
not so free OS, this is for windows only. If you want to run ASP .net on linux or
other platforms check out <a href="http://www.go-mono.com/">mono</a></p>
      </body>
      <title>ASP.Net on Apache ?</title>
      <guid isPermaLink="false">http://www.hibri.net/PermaLink,guid,b0bb479f-589c-476a-bd79-d7064a5b5bd2.aspx</guid>
      <link>http://www.hibri.net/2005/04/16/ASPNetOnApache.aspx</link>
      <pubDate>Sat, 16 Apr 2005 17:14:00 GMT</pubDate>
      <description>&lt;p&gt;
Been waiting for this for a while. Didn't notice it when it was released.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://httpd.apache.org/cli/"&gt;http://httpd.apache.org/cli/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This works only for the 1.1 version of the .Net runtime
&lt;/p&gt;
&lt;p&gt;
Free webserver
&lt;/p&gt;
&lt;p&gt;
Free runtime
&lt;/p&gt;
&lt;p&gt;
not so free OS, this is for windows only. If you want to run ASP .net on linux or
other platforms check out &lt;a href="http://www.go-mono.com/"&gt;mono&lt;/a&gt;
&lt;/p&gt;</description>
      <comments>http://www.hibri.net/CommentView,guid,b0bb479f-589c-476a-bd79-d7064a5b5bd2.aspx</comments>
      <category>.Net Web</category>
      <category>OSS</category>
    </item>
  </channel>
</rss>