<?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>Dot Net Technologies -- MS Tech talk and more - VB.Net</title>
    <link>http://www.dotnettechnologies.com/</link>
    <description>Creating Solutions with Microsoft's .Net Technologies</description>
    <language>en-us</language>
    <copyright>© Copyright 2010 </copyright>
    <lastBuildDate>Wed, 16 Sep 2009 04:36:56 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>daryl@rubiconcomputing.com</managingEditor>
    <webMaster>daryl@rubiconcomputing.com</webMaster>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=0ba9e1fb-994f-4406-beed-b2c12876ad5c</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,0ba9e1fb-994f-4406-beed-b2c12876ad5c.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,0ba9e1fb-994f-4406-beed-b2c12876ad5c.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0ba9e1fb-994f-4406-beed-b2c12876ad5c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I am getting settled in my new project, and it only took me a week to get rights to
install anything on the laptop! A lot of people would say "Wow, a billable week with
no work!" but personally, the days just drag by. I'd much rather be buried in code.
I did make some good use of the time though, digging into what documentation I could
find and creating a new Functional Specification Document. I did finally get my rights,
so tomorrow will be spent installing things and looking into code again.
</p>
        <p>
I did get some reading done though, and I saw that in VS2010 C# will have optional
and named parameters. I know the VB crowd (of which I come from) will chuckle a little
at that, as that feature has been around forever. Until now, it's required C# developers
to overload functions. Nothing Earth-shattering about this feature, other than as
part of it, C# will support named parameters and default values as well as part of
the implementation (the default values are part of the defiinition of the function).
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=0ba9e1fb-994f-4406-beed-b2c12876ad5c" />
      </body>
      <title>More VS2010 features -- optional parameters in C#</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,0ba9e1fb-994f-4406-beed-b2c12876ad5c.aspx</guid>
      <link>http://www.dotnettechnologies.com/2009/09/16/MoreVS2010FeaturesOptionalParametersInC.aspx</link>
      <pubDate>Wed, 16 Sep 2009 04:36:56 GMT</pubDate>
      <description>&lt;p&gt;
I am getting settled in my new project, and it only took me a week to get rights to
install anything on the laptop! A lot of people would say "Wow, a billable week with
no work!" but personally, the days just drag by. I'd much rather be buried in code.
I did make some good use of the time though, digging into what documentation I could
find and creating a new Functional Specification Document. I did finally get my rights,
so tomorrow will be spent installing things and looking into code again.
&lt;/p&gt;
&lt;p&gt;
I did get some reading done though, and I saw that in VS2010 C# will have optional
and named parameters. I know the VB crowd (of which I come from) will chuckle a little
at that, as that feature has been around forever. Until now, it's required C# developers
to overload functions. Nothing Earth-shattering about this feature, other than as
part of it, C# will support named parameters and default values as well as part of
the implementation (the default values are part of the defiinition of the function).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=0ba9e1fb-994f-4406-beed-b2c12876ad5c" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,0ba9e1fb-994f-4406-beed-b2c12876ad5c.aspx</comments>
      <category>All Things</category>
      <category>C#</category>
      <category>CSharp</category>
      <category>General</category>
      <category>VB.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=e889b6b0-390d-4c5a-a94c-1702a2d7d8e5</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,e889b6b0-390d-4c5a-a94c-1702a2d7d8e5.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,e889b6b0-390d-4c5a-a94c-1702a2d7d8e5.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e889b6b0-390d-4c5a-a94c-1702a2d7d8e5</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There's a pretty useful feature (IMHO) in the .Net 2.0 Exception object which
I hadn't noticed before. The Exception object contains a new Data interface, which
is essentially an IDictionary for applying additional values to the exception object.
I am currently using it with my integration of the new VS2005 Enterprise Library into
our framework. 
</p>
        <p>
I want to log exceptions to a database, but I have found it useful in the past to
have an Error #. In the old days (VB 6, for example) I could usually look at the error
number of an application and tell exactly what the problem was. When .Net came into
being, we lost the error number, and there was no easy way to get around it. You could
roll your own exception classes of course and add these properties, but this is only
a limited solution because other exception handlers wouldn't be capable of handling
the additional features by default.
</p>
        <p>
Now this feature is going to allow me to take advantage of error numbers by classifying
each exception type, and appending an error number to the exception object. I can
use this information in my database to classify and group errors by type to identify
weak areas in an application as well. Not Earth shattering, but still a useful feature
full of all kinds of possibilities.
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=e889b6b0-390d-4c5a-a94c-1702a2d7d8e5" />
      </body>
      <title>New feature in .Net 2.0 Exception object</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,e889b6b0-390d-4c5a-a94c-1702a2d7d8e5.aspx</guid>
      <link>http://www.dotnettechnologies.com/2006/06/13/NewFeatureInNet20ExceptionObject.aspx</link>
      <pubDate>Tue, 13 Jun 2006 15:42:38 GMT</pubDate>
      <description>&lt;p&gt;
There's a pretty useful feature (IMHO)&amp;nbsp;in the .Net 2.0 Exception object which
I hadn't noticed before. The Exception object contains a new Data interface, which
is essentially an IDictionary for applying additional values to the exception object.
I am currently using it with my integration of the new VS2005 Enterprise Library into
our framework. 
&lt;/p&gt;
&lt;p&gt;
I want to log exceptions to a database, but I have found it useful in the past to
have an Error #. In the old days (VB 6, for example) I could usually look at the error
number of an application and tell exactly what the problem was. When .Net came into
being, we lost the error number, and there was no easy way to get around it. You could
roll your own exception classes of course and add these properties, but this is only
a limited solution because other exception handlers wouldn't be capable of handling
the additional features by default.
&lt;/p&gt;
&lt;p&gt;
Now this feature is going to allow me to take advantage of error numbers by classifying
each exception type, and appending an error number to the exception object. I can
use this information in my database to classify and group errors by type to identify
weak areas in an application as well. Not Earth shattering, but still a useful feature
full of all kinds of possibilities.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=e889b6b0-390d-4c5a-a94c-1702a2d7d8e5" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,e889b6b0-390d-4c5a-a94c-1702a2d7d8e5.aspx</comments>
      <category>All Things</category>
      <category>CSharp</category>
      <category>Debugging</category>
      <category>Design</category>
      <category>General</category>
      <category>Tips and Tricks</category>
      <category>VB.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=e71c0a9e-e77d-4544-8698-d2c8674e7435</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,e71c0a9e-e77d-4544-8698-d2c8674e7435.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,e71c0a9e-e77d-4544-8698-d2c8674e7435.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e71c0a9e-e77d-4544-8698-d2c8674e7435</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
So it has been hit or miss posting here, but I am trying to correct it by bringing
on some additional help. I set up a new blog, <a href="http://www.developernation.net">developernation.net</a>,
and begun getting some content on there. Likely I'll crosspost on here too (my content
anyways) but likely most new entries are going to be there first. I figured if I could
get someone else on there helping doing some content, it will have more regular posts.
This blog will continue, just a lag a few days on the content of theother site, and
contain more personal observations.
</p>
        <p>
So swing on by and pop in. I've started off with a bang, and I am in the process of
posting a web service design I created and tested which handles paging and sorting
of data on the server, which my initial tests have shown to be highly efficient. I
am walking through the entire design, and by the end of the weekend I hope to have
the series done and the code posted. If not, you can wait a few days and I will post
it all here as well. 
</p>
        <p>
Thanks!
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=e71c0a9e-e77d-4544-8698-d2c8674e7435" />
      </body>
      <title>A change of directions...</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,e71c0a9e-e77d-4544-8698-d2c8674e7435.aspx</guid>
      <link>http://www.dotnettechnologies.com/2006/04/28/AChangeOfDirections.aspx</link>
      <pubDate>Fri, 28 Apr 2006 15:38:06 GMT</pubDate>
      <description>&lt;p&gt;
So it has been hit or miss posting here, but I am trying to correct it by bringing
on some additional help. I set up a new blog, &lt;a href="http://www.developernation.net"&gt;developernation.net&lt;/a&gt;,
and begun getting some content on there. Likely I'll crosspost on here too (my content
anyways) but likely most new entries are going to be there first. I figured if I could
get someone else on there helping doing some content, it will have more regular posts.
This blog will continue, just a lag a few days on the content of theother site, and
contain more personal observations.
&lt;/p&gt;
&lt;p&gt;
So swing on by and pop in. I've started off with a bang, and I am in the process of
posting a web service design I created and tested which handles paging and sorting
of data on the server, which my initial tests have shown to be highly efficient. I
am walking through the entire design, and by the end of the weekend I hope to have
the series done and the code posted. If not, you can wait a few days and I will post
it all here as well. 
&lt;/p&gt;
&lt;p&gt;
Thanks!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=e71c0a9e-e77d-4544-8698-d2c8674e7435" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,e71c0a9e-e77d-4544-8698-d2c8674e7435.aspx</comments>
      <category>All Things</category>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>CSharp</category>
      <category>Debugging</category>
      <category>Design</category>
      <category>General</category>
      <category>SQL Tips</category>
      <category>Tips and Tricks</category>
      <category>Tools</category>
      <category>VB.Net</category>
      <category>Web Services</category>
      <category>Windows</category>
      <category>WinForms</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=5876a92e-efe9-4698-ab08-cf57d4ed2112</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,5876a92e-efe9-4698-ab08-cf57d4ed2112.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,5876a92e-efe9-4698-ab08-cf57d4ed2112.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5876a92e-efe9-4698-ab08-cf57d4ed2112</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font face="Lucida Sans Typewriter" color="#000000">A year ago, I completed my MCSD
for .Net. One of the attractive<br />
benefits of this certification (as well as the MCDBA) was a $500<br />
discount on a one-year MSDN Universal subscription during the first<br />
year of certification.<br /><br />
Although the MCSD benefits page still lists this benefit<br />
(</font>
          <a href="http://www.microsoft.com/learning/mcp/mcsd/benefits.asp" target="_blank">
            <font face="Lucida Sans Typewriter" color="#9136ad">http://www.microsoft.com/learning/mcp/mcsd/benefits.asp</font>
          </a>
          <font face="Lucida Sans Typewriter" color="#000000">),
they<br />
quietly removed it as of April 2005. The text on the page still<br />
states the following:<br />
Rebates or discounts on a one-year subscription to MSDN during the<br />
first year of certification.<br /><br />
If you call or write to get the certificate as I did, you'll get the<br />
terse response it's no longer available, and they just haven't<br />
updated the site. I figured I would help them get the word out since<br />
they didn't deem it important enough to change on their site or<br />
announce. It would be a shame if anyone expected this benefit based<br />
on the MS web site information.</font>
        </p>
        <p>
-------------------------------------------------------------------------
</p>
        <p>
Above is what I posted to our local .Net community group on Yahoo. Now I am going
to add some personal comments. Once again, MS has dropped the ball in supporting the
developer community. Earlier this year, MS announced the MSDN Universal would not
include the new .Net Team Development system (or some name like that -- I am too lazy
to go look it up). Fortunately, enough of an uproar went out that they reversed that
decision. Their waning support of VB also caused a petition/uproar. Likely, since
the MCSD/MCDBA community is a lot smaller, there isn't likely to be a huge outcry
on this issue.
</p>
        <p>
This is a HUGE mistake on MS's behalf. Someone that is likely to spend the extra time
and money to get certifications are the ones MS should really cater to. There's always
been a criticism that the certifications are worthless, and that benefit alone
made it real easy to justify spending the money on books, training materials and exam
costs for achieving the certification. I won't argue the merits of the certifications
here, but I have a lot of them -- MCP, MCDBA, MCSD for VB, MCSD for .Net (C#), and
MCAD. Will I continue? I may have to given I am an Independent Contractor and it helps
to get me in the door. Will I recommend it to someone not in my position? Not likely.
</p>
        <p>
Don't get me wrong, the MSDN Universal is still a great deal. My disgust over this
situation is that the benefit is <strong>still</strong> listed, as well as no announcement
in April 2005 when they made this decision (or if they did, I sure didn't see it).
I have been one of the most stalwart supporters of Microsoft over the years,
and I have personally been involved in projects which have generated millions in
licensing revenues for Microsoft in the last 10 years. The past 1.5 years I have watched
MS anger the core base of developers.
</p>
        <p>
I think this is indicative of the internal problems at MS, and why Google is going
to be a viable competitor to MS. In a paraphrase of the words of Stephen King, and
the Dark Tower series, MS has forgotten the face of their father. One of the reasons
MS dominated the market over Apple was that MS supported developers way beyond the
norm. In the name of profit, I think we are seeing this slowly change.<br /></p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=5876a92e-efe9-4698-ab08-cf57d4ed2112" />
      </body>
      <title>MSDN Universal Discount for MCSD/MCDBA </title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,5876a92e-efe9-4698-ab08-cf57d4ed2112.aspx</guid>
      <link>http://www.dotnettechnologies.com/2005/10/07/MSDNUniversalDiscountForMCSDMCDBA.aspx</link>
      <pubDate>Fri, 07 Oct 2005 15:57:27 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font face="Lucida Sans Typewriter" color=#000000&gt;A year ago, I completed my MCSD
for .Net. One of the attractive&lt;br&gt;
benefits of this certification (as well as the MCDBA) was a $500&lt;br&gt;
discount on a one-year MSDN Universal subscription during the first&lt;br&gt;
year of certification.&lt;br&gt;
&lt;br&gt;
Although the MCSD benefits page still lists this benefit&lt;br&gt;
(&lt;/font&gt;&lt;a href="http://www.microsoft.com/learning/mcp/mcsd/benefits.asp" target=_blank&gt;&lt;font face="Lucida Sans Typewriter" color=#9136ad&gt;http://www.microsoft.com/learning/mcp/mcsd/benefits.asp&lt;/font&gt;&lt;/a&gt;&lt;font face="Lucida Sans Typewriter" color=#000000&gt;),
they&lt;br&gt;
quietly removed it as of April 2005. The text on the page still&lt;br&gt;
states the following:&lt;br&gt;
Rebates or discounts on a one-year subscription to MSDN during the&lt;br&gt;
first year of certification.&lt;br&gt;
&lt;br&gt;
If you call or write to get the certificate as I did, you'll get the&lt;br&gt;
terse response it's no longer available, and they just haven't&lt;br&gt;
updated the site. I figured I would help them get the word out since&lt;br&gt;
they didn't deem it important enough to change on their site or&lt;br&gt;
announce. It would be a shame if anyone expected this benefit based&lt;br&gt;
on the MS web site information.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
-------------------------------------------------------------------------
&lt;/p&gt;
&lt;p&gt;
Above is what I posted to our local .Net community group on Yahoo. Now I am going
to add some personal comments. Once again, MS has dropped the ball in supporting the
developer community. Earlier this year, MS announced the MSDN Universal would not
include the new .Net Team Development system (or some name like that -- I am too lazy
to go look it up). Fortunately, enough of an uproar went out that they reversed that
decision. Their waning support of VB also caused a petition/uproar. Likely, since
the MCSD/MCDBA&amp;nbsp;community is a lot smaller, there isn't likely to be a huge outcry
on this issue.
&lt;/p&gt;
&lt;p&gt;
This is a HUGE mistake on MS's behalf. Someone that is likely to spend the extra time
and money to get certifications are the ones MS should really cater to. There's always
been a criticism that the certifications are worthless, and that benefit&amp;nbsp;alone
made it real easy to justify spending the money on books, training materials and exam
costs for achieving the certification. I won't argue the merits of the certifications
here, but I have a lot of them -- MCP, MCDBA, MCSD for VB, MCSD for .Net (C#), and
MCAD. Will I continue? I may have to given I am an Independent Contractor and it helps
to get me in the door. Will I recommend it to someone not in my position? Not likely.
&lt;/p&gt;
&lt;p&gt;
Don't get me wrong, the MSDN Universal is still a great deal. My disgust over this
situation is that the benefit is &lt;strong&gt;still&lt;/strong&gt; listed, as well as no announcement
in April 2005 when they made this decision (or if they did, I sure didn't see it).
I have&amp;nbsp;been one of the most stalwart supporters of Microsoft over the years,
and I have personally been involved in projects which have generated millions&amp;nbsp;in
licensing revenues for Microsoft in the last 10 years. The past 1.5 years I have watched
MS anger the core base of developers.
&lt;/p&gt;
&lt;p&gt;
I think this is indicative of the internal problems at MS, and why Google is going
to be a viable competitor to MS. In a paraphrase of the words of Stephen King, and
the Dark Tower series, MS has forgotten the face of their father. One of the reasons
MS dominated the market over Apple was that MS supported developers way beyond the
norm. In the name of profit, I think we are seeing this slowly change.&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=5876a92e-efe9-4698-ab08-cf57d4ed2112" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,5876a92e-efe9-4698-ab08-cf57d4ed2112.aspx</comments>
      <category>All Things</category>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>CSharp</category>
      <category>Design</category>
      <category>General</category>
      <category>Tips and Tricks</category>
      <category>Tools</category>
      <category>VB.Net</category>
      <category>Windows</category>
      <category>WinForms</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=42aee519-178f-4c39-a2d0-0318ad74be2b</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,42aee519-178f-4c39-a2d0-0318ad74be2b.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,42aee519-178f-4c39-a2d0-0318ad74be2b.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=42aee519-178f-4c39-a2d0-0318ad74be2b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Once again I have disappeared from blogging. Let's face it, I rarely get to do it.
I also need to upgrade this DasBlog but I have been so busy I haven't been able to
do that, even though someone kindly wrote me and told me it would solve my spam comment
problem. Maybe this weekend...
</p>
        <p>
But I wanted to blog because I found a weird problem, with a weirder solution. I wrote
a Windows service in C# which periodically loads some data, based on the time since
the last load. So dates are a bit important in this process.
</p>
        <p>
First, the cryptic message: “<font color="#191970">Internal Query Processor
Error: The query processor could not produce a query plan. Contact your primary support
provider for more information</font>”.  A Google search turned up several
solutions, but most of them relied on a service patch. What's wierder is that the
error was intermittant. The procs would run fine in Query Analyzer, but not from
C#.
</p>
        <p>
Finally, I tried the unlikely. Instead of passing in my parameters as  DateTime
values, I passed them in as SqlDbType.Varchar, and in the proc made sure and converted
them to DateTime values. Lo and behold, the problem went away.....Go figure!
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=42aee519-178f-4c39-a2d0-0318ad74be2b" />
      </body>
      <title>Bizarre error, bizarre solution...</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,42aee519-178f-4c39-a2d0-0318ad74be2b.aspx</guid>
      <link>http://www.dotnettechnologies.com/2005/09/20/BizarreErrorBizarreSolution.aspx</link>
      <pubDate>Tue, 20 Sep 2005 22:50:34 GMT</pubDate>
      <description>&lt;p&gt;
Once again I have disappeared from blogging. Let's face it, I rarely get to do it.
I also need to upgrade this DasBlog but I have been so busy I haven't been able to
do that, even though someone kindly wrote me and told me it would solve my spam comment
problem. Maybe this weekend...
&lt;/p&gt;
&lt;p&gt;
But I wanted to blog because I found a weird problem, with a weirder solution. I wrote
a Windows service in C# which periodically loads some data, based on the time since
the last load. So dates are a bit important in this process.
&lt;/p&gt;
&lt;p&gt;
First, the cryptic message: &amp;#8220;&lt;font color=#191970&gt;Internal Query Processor Error:
The query processor could not produce a query plan. Contact your primary support provider
for more information&lt;/font&gt;&amp;#8221;.&amp;nbsp; A Google search turned up several solutions,
but most of them relied on a service patch. What's wierder is that the error was intermittant.&amp;nbsp;The
procs would run fine in Query Analyzer, but not from C#.
&lt;/p&gt;
&lt;p&gt;
Finally, I tried the unlikely. Instead of passing in my parameters as&amp;nbsp;&amp;nbsp;DateTime
values, I passed them in as SqlDbType.Varchar, and in the proc made sure and converted
them to DateTime values. Lo and behold, the problem went away.....Go figure!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=42aee519-178f-4c39-a2d0-0318ad74be2b" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,42aee519-178f-4c39-a2d0-0318ad74be2b.aspx</comments>
      <category>All Things</category>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>CSharp</category>
      <category>General</category>
      <category>SQL Tips</category>
      <category>Tips and Tricks</category>
      <category>VB.Net</category>
      <category>Windows</category>
      <category>WinForms</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=faefbcf2-c211-4893-820b-0aaab66e31be</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,faefbcf2-c211-4893-820b-0aaab66e31be.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,faefbcf2-c211-4893-820b-0aaab66e31be.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=faefbcf2-c211-4893-820b-0aaab66e31be</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Extremes in anything (IMHO) are typically not good. Extreme temperatures, religeons,
attitudes -- you name it, likely there is a downside. In programming, it's no different.
Now, while not a big fan of Extreme Programming, there's a couple of extremes from
it that bother me. One is that you shouldn't include documentation. The other, which
I suspect  was someone's personal preference, was not to use the “Region”
directives in C# (or I guess VB.Net either). Here's a little history...
</p>
        <p>
This guy was a former Java programmer working for a large chip manufacturer. He was
supposed to be a XP guru, so he was transferred to the local site to help a team in
it's transition to the XP methodology. 
</p>
        <p>
Strike 1 -- he knew the methodology well, but he was by no means an expert in the
language of the group. Why was this a strike? I guess technological bias in that his
preferences to his other language directed him to want to make the .Net environment
the same as a java environment. 
</p>
        <p>
Strike 2 -- It was his way or the highway. The environment was such that one or two
developers had 95% of the say on development decisions. Part of the reason for this
is that wacky trend in which everyone is ranked from best to worst in terms of raises,
options and promotion (for more info what I am talking about, read this article, which
is the same process -- <a href="http://www.sqlservercentral.com/newsletter/view_newsletter.asp?dt=5/26/2005" target="_blank">Saying
Goodbye</a>). No one would ever argue with the two for fear of getting a bad ranking
for being considered a troublemaker.
</p>
        <p>
Regardless, I digress, but I do think it's important to understand why sometimes these
extremes come about in an environment. I was a contractor brought on to bring some
quick wins for a project, and it was my first (and likely last) venture into the XP
methodology. They needed code, and they needed it fast. 
</p>
        <p>
One problem I addressed was the lack of uniformity on the project. We had three developers,
which meant three different styles of programming. Even with XP, that meant one of
us was alone, and the other two would spend the pair time arguning over which style
was a standard and best (even though standards existed -- they were just never used
because of informal rules imposed by the 2 'chiefs'). I decided to create a template
which would standardize (and speed up) our development. I organized the code within
the controls into regions, and deployed them onto our machines with anticipation I
easily saved our team15-20 minutes each time we created a new control.
</p>
        <p>
Alas, it was scrapped instantly. Why? Well, it seems in my templates, I placed the
code into logical “regions” -- e.g. Public Properties, Public Methods,
Private Methods, etc. I was “informed” (even though I had been using regions
for a couple of months now) that regions were not allowed, because all they did was
hide bad code. WHAT???!! Well, I liked the contract, and knew the results if I stood
up to them, so I bit my tongue and moved on. It has bothered me ever since, but I
never took the time to formulate an argument as to why regions are actually a good
idea. 
</p>
        <p>
Why bring this up today after a year has passed? Well, I was coding something, and
the constructor was hidden by a region. I was thinking “Hmm, if we just left
the constructors out of regions, it would be easy to read, because the regions would
hide the internal implementations I don't care about, yet at a glance I can see how
to instantiate the object” (hmm, I think they call that encapsulation) and use
it. Now that right there justifies the use of regions alone.... I can actually think
of a lot of reasons to use regions, and I do it religeously where my client has no
opition about it. 
</p>
        <p>
Just a flashback from the past.... anyone got a counter opinion? Regardless, it just
goes to show extreme anything typically isn't a good thing in my mind. You have to
be flexible in your approach to life if you plan on growing...
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=faefbcf2-c211-4893-820b-0aaab66e31be" />
      </body>
      <title>It just occurred to me...why extremes are bad in programming</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,faefbcf2-c211-4893-820b-0aaab66e31be.aspx</guid>
      <link>http://www.dotnettechnologies.com/2005/05/27/ItJustOccurredToMewhyExtremesAreBadInProgramming.aspx</link>
      <pubDate>Fri, 27 May 2005 17:28:46 GMT</pubDate>
      <description>&lt;p&gt;
Extremes in anything (IMHO) are typically not good. Extreme temperatures, religeons,
attitudes -- you name it, likely there is a downside. In programming, it's no different.
Now, while not a big fan of Extreme Programming, there's a couple of extremes from
it that bother me. One is that you shouldn't include documentation. The other, which
I suspect&amp;nbsp; was someone's personal preference, was not to use the &amp;#8220;Region&amp;#8221;
directives in C# (or I guess VB.Net either). Here's a little history...
&lt;/p&gt;
&lt;p&gt;
This guy was a former Java programmer working for a large chip manufacturer. He was
supposed to be a XP guru, so he was transferred to the local site to help a team in
it's transition to the XP methodology. 
&lt;/p&gt;
&lt;p&gt;
Strike 1 -- he knew the methodology well, but he was by no means an expert in the
language of the group. Why was this a strike? I guess technological bias in that his
preferences to his other language directed him to want to make the .Net environment
the same as a java environment. 
&lt;/p&gt;
&lt;p&gt;
Strike 2 -- It was his way or the highway. The environment was such that one or two
developers had 95% of the say on development decisions. Part of the reason for this
is that wacky trend in which everyone is ranked from best to worst in terms of raises,
options and promotion (for more info what I am talking about, read this article, which
is the same process -- &lt;a href="http://www.sqlservercentral.com/newsletter/view_newsletter.asp?dt=5/26/2005" target=_blank&gt;Saying
Goodbye&lt;/a&gt;). No one would ever argue with the two for fear of getting a bad ranking
for being considered a troublemaker.
&lt;/p&gt;
&lt;p&gt;
Regardless, I digress, but I do think it's important to understand why sometimes these
extremes come about in an environment. I was a contractor brought on to bring some
quick wins for a project, and it was my first (and likely last) venture into the XP
methodology. They needed code, and they needed it fast. 
&lt;/p&gt;
&lt;p&gt;
One problem I addressed was the lack of uniformity on the project. We had three developers,
which meant three different styles of programming. Even with XP, that meant one of
us was alone, and the other two would spend the pair time arguning over which style
was a standard and best (even though standards existed -- they were just never used
because of informal rules imposed by the 2 'chiefs'). I decided to create a template
which would standardize (and speed up) our development. I organized the code within
the controls into regions, and deployed them onto our machines with anticipation I
easily saved our team15-20 minutes each time we created a new control.
&lt;/p&gt;
&lt;p&gt;
Alas, it was scrapped instantly. Why? Well, it seems in my templates, I placed the
code into logical &amp;#8220;regions&amp;#8221; -- e.g. Public Properties, Public Methods,
Private Methods, etc. I was &amp;#8220;informed&amp;#8221; (even though I had been using regions
for a couple of months now) that regions were not allowed, because all they did was
hide bad code. WHAT???!! Well, I liked the contract, and knew the results if I stood
up to them, so I bit my tongue and moved on. It has bothered me ever since, but I
never took the time to formulate an argument as to why regions are actually a good
idea. 
&lt;/p&gt;
&lt;p&gt;
Why bring this up today after a year has passed? Well, I was coding something, and
the constructor was hidden by a region. I was thinking &amp;#8220;Hmm, if we just left
the constructors out of regions, it would be easy to read, because the regions would
hide the internal implementations I don't care about, yet at a glance I can see how
to instantiate the object&amp;#8221; (hmm, I think they call that encapsulation) and use
it. Now that right there justifies the use of regions alone.... I can actually think
of a lot of reasons to use regions, and I do it religeously where my client has no
opition about it. 
&lt;/p&gt;
&lt;p&gt;
Just a flashback from the past.... anyone got a counter opinion? Regardless, it just
goes to show extreme anything typically isn't a good thing in my mind. You have to
be flexible in your approach to life if you plan on growing...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=faefbcf2-c211-4893-820b-0aaab66e31be" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,faefbcf2-c211-4893-820b-0aaab66e31be.aspx</comments>
      <category>All Things</category>
      <category>C#</category>
      <category>CSharp</category>
      <category>Design</category>
      <category>General</category>
      <category>Tips and Tricks</category>
      <category>VB.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=d98820c4-cb7c-4348-8d80-b59c6d514d01</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,d98820c4-cb7c-4348-8d80-b59c6d514d01.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,d98820c4-cb7c-4348-8d80-b59c6d514d01.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d98820c4-cb7c-4348-8d80-b59c6d514d01</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Tentatively, my current project is set to end in October. No big deal there, as I
have had absolutely no bench days in the past 10 years as an Independent Contractor.
In fact, during most of those 10 years I have been working 55-80+ hours per week and
having a great time doing it. I don't do the book thing or magazine article thing
because quite frankly, I don't have time because I am busy doing billable work which
pays a lot more. I havn't needed self-promotion thing either because almost all my
business comes from referrals from current or past customers.
</p>
        <p>
Then along come kids, and dang if you don't suddenly want to spend more time at home
and improve their quality of life (and mine). My current project wants to bring me
on full time, and we've had some preliminary discussions on it, and I am willing to
take the pay cut in my pay for one simple thing: I want to work remotely
and raise my kids in the country. Their attitude is like mine, which is that should
be fine since I have a strong work ethic and can get things done, what does it matter
where I work as long as I have a phone and internet connection. However, there are
data security concerns and management concerns which would need to be overcome. 
</p>
        <p>
I have plenty of time, since barring disaster, the contract won't be over until
October sometime. But I figure I will start self-promoting just in case someone from
a company who doesn't mind remote employees stumbles on this blog. Towards October,
I will go full bore trying to close something out, and in the meantime I plan on blogging
much more so I can display what talents I can bring to the table. 
</p>
        <p>
If any companies out there that come up on this, and want a great employee (C#/VB
developer with lots of SQL Server and architect/designer/coding and full-life cycle
development) that brings a lot of experience, a great professional attitude and
presence as well as the ability to code like the wind (and good code at that..), then
drop me a line and let's talk. 
</p>
        <p>
Here's a <a href="http://www.rubiconcomputing.com/resume/resume.html" target="_blank">resume </a>just
in case.. 
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=d98820c4-cb7c-4348-8d80-b59c6d514d01" />
      </body>
      <title>Self Promotion</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,d98820c4-cb7c-4348-8d80-b59c6d514d01.aspx</guid>
      <link>http://www.dotnettechnologies.com/2005/05/26/SelfPromotion.aspx</link>
      <pubDate>Thu, 26 May 2005 23:33:35 GMT</pubDate>
      <description>&lt;p&gt;
Tentatively, my current project is set to end in October. No big deal there, as I
have had absolutely no bench days in the past 10 years as an Independent Contractor.
In fact, during most of those 10 years I have been working 55-80+ hours per week and
having a great time doing it. I don't do the book thing or magazine article thing
because quite frankly, I don't have time because I am busy doing billable work which
pays a lot more. I havn't needed self-promotion thing either because almost all my
business comes from referrals from current or past customers.
&lt;/p&gt;
&lt;p&gt;
Then along come kids, and dang if you don't suddenly want to spend more time at home
and improve their quality of life (and mine). My current project wants to bring me
on full time, and we've had some preliminary discussions on it, and I am willing to
take&amp;nbsp;the pay&amp;nbsp;cut in my pay for one simple thing: I want to work remotely
and raise my kids in the country. Their attitude is like mine, which is that should
be fine since I have a strong work ethic and can get things done, what does it matter
where I work as long as I have a phone and internet connection. However, there are
data security concerns and management concerns which would need to be overcome. 
&lt;/p&gt;
&lt;p&gt;
I&amp;nbsp;have plenty of time, since barring disaster, the contract won't be over until
October sometime. But I figure I will start self-promoting just in case someone from
a company who doesn't mind remote employees stumbles on this blog. Towards October,
I will go full bore trying to close something out, and in the meantime I plan on blogging
much more so I can display what talents I can bring to the table. 
&lt;/p&gt;
&lt;p&gt;
If any companies out there that come up on this, and want a great employee (C#/VB
developer with lots of SQL Server and architect/designer/coding and full-life cycle
development)&amp;nbsp;that brings a lot of experience, a great professional attitude and
presence as well as the ability to code like the wind (and good code at that..), then
drop me a line and let's talk. 
&lt;/p&gt;
&lt;p&gt;
Here's a &lt;a href="http://www.rubiconcomputing.com/resume/resume.html" target=_blank&gt;resume &lt;/a&gt;just
in case.. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=d98820c4-cb7c-4348-8d80-b59c6d514d01" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,d98820c4-cb7c-4348-8d80-b59c6d514d01.aspx</comments>
      <category>All Things</category>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>CSharp</category>
      <category>Design</category>
      <category>General</category>
      <category>SQL Tips</category>
      <category>Tips and Tricks</category>
      <category>Tools</category>
      <category>VB.Net</category>
      <category>Windows</category>
      <category>WinForms</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=14bee00c-2e56-4024-ba74-c52a804be4c5</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,14bee00c-2e56-4024-ba74-c52a804be4c5.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,14bee00c-2e56-4024-ba74-c52a804be4c5.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=14bee00c-2e56-4024-ba74-c52a804be4c5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you are using DIME attachments, and you want to use them in a Windows client, this
tip will save you some time. I created a File Upload/Download web service for a client
I am currently working with, and until this week is was used solely on a web front
end. However, there was a request for a Windows client, so I set out to create one
using the same code. 
</p>
        <p>
All seemed well, until I went to compile. My Web Service is called FileService (for
the purposes of this discussion), and in order the use DIME attachments after setting
a web reference, you need to use the FileServiceWse version of the web reference (the
wse class). The problem was, one wasn't generated in the proxy. I debated using the
proxy for the web application, but then decided to try something a little different.
</p>
        <p>
I removed the existing Web Reference, added a reference to System.Web to my project,
then added the Web Reference again. Viola! My wse version was available now, and my
code compiles! I decided to post this to save someone else a bit of time, as well
as a reminder to myself in the future.
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=14bee00c-2e56-4024-ba74-c52a804be4c5" />
      </body>
      <title>Tip of the day: Using Web Services in a Windows environment </title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,14bee00c-2e56-4024-ba74-c52a804be4c5.aspx</guid>
      <link>http://www.dotnettechnologies.com/2005/04/23/TipOfTheDayUsingWebServicesInAWindowsEnvironment.aspx</link>
      <pubDate>Sat, 23 Apr 2005 20:36:27 GMT</pubDate>
      <description>&lt;p&gt;
If you are using DIME attachments, and you want to use them in a Windows client, this
tip will save you some time. I created a File Upload/Download web service for a client
I am currently working with, and until this week is was used solely on a web front
end. However, there was a request for a Windows client, so I set out to create one
using the same code. 
&lt;/p&gt;
&lt;p&gt;
All seemed well, until I went to compile. My Web Service is called FileService (for
the purposes of this discussion), and in order the use DIME attachments after setting
a web reference, you need to use the FileServiceWse version of the web reference (the
wse class). The problem was, one wasn't generated in the proxy. I debated using the
proxy for the web application, but then decided to try something a little different.
&lt;/p&gt;
&lt;p&gt;
I removed the existing Web Reference, added a reference to System.Web to my project,
then added the Web Reference again. Viola! My wse version was available now, and my
code compiles! I decided to post this to save someone else a bit of time, as well
as a reminder to myself in the future.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=14bee00c-2e56-4024-ba74-c52a804be4c5" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,14bee00c-2e56-4024-ba74-c52a804be4c5.aspx</comments>
      <category>All Things</category>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>CSharp</category>
      <category>General</category>
      <category>Tips and Tricks</category>
      <category>VB.Net</category>
      <category>Windows</category>
      <category>WinForms</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=d5411609-078a-494c-9e9d-7d01f80c3f51</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,d5411609-078a-494c-9e9d-7d01f80c3f51.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,d5411609-078a-494c-9e9d-7d01f80c3f51.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d5411609-078a-494c-9e9d-7d01f80c3f51</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have a large ASP.Net project I am working on, and the solution contains about 6
projects. Periodically, it won't compile, but when I look in the Task List there are
no errors listed. After a lot of trial and error, I finally found a solution which
restores the missing error notations, so that I can fix the problem and move on.
</p>
        <p>
Right-click in the “Task” screen, and select the “Show Tasks/Comments”
option. Try compiling, and of course it will fail again. Then, right-click on the
“Task” screen again, and select the “Build Errors” option,
and they should appear. It seems to work fairly consistantly so I think this “workaround”
may actually work.
</p>
        <p>
As an alternative (although not as easy to work with), you can just look at the output
window, and filter through the text output. Take your pick, you should be able to
see what the problem is!
</p>
        <p>
ADDENDUM: It happened again, and these steps didn't work exactly. To make it work,
try to compile again between “right-clicks” and they should appear.
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=d5411609-078a-494c-9e9d-7d01f80c3f51" />
      </body>
      <title>Tip of the Day - My errors aren't showing up in the task list..???</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,d5411609-078a-494c-9e9d-7d01f80c3f51.aspx</guid>
      <link>http://www.dotnettechnologies.com/2005/04/04/TipOfTheDayMyErrorsArentShowingUpInTheTaskList.aspx</link>
      <pubDate>Mon, 04 Apr 2005 18:28:35 GMT</pubDate>
      <description>&lt;p&gt;
I have a large ASP.Net project I am working on, and the solution contains about 6
projects. Periodically, it won't compile, but when I look in the Task List there are
no errors listed. After a lot of trial and error, I finally found a solution which
restores the missing error notations, so that I can fix the problem and move on.
&lt;/p&gt;
&lt;p&gt;
Right-click in the &amp;#8220;Task&amp;#8221; screen, and select the &amp;#8220;Show Tasks/Comments&amp;#8221;
option. Try compiling, and of course it will fail again. Then, right-click on the
&amp;#8220;Task&amp;#8221; screen again, and select the &amp;#8220;Build Errors&amp;#8221; option,
and they should appear. It seems to work fairly consistantly so I think this &amp;#8220;workaround&amp;#8221;
may actually work.
&lt;/p&gt;
&lt;p&gt;
As an alternative (although not as easy to work with), you can just look at the output
window, and filter through the text output. Take your pick, you should be able to
see what the problem is!
&lt;/p&gt;
&lt;p&gt;
ADDENDUM: It happened again, and these steps didn't work exactly. To make it work,
try to compile again between &amp;#8220;right-clicks&amp;#8221; and they should appear.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=d5411609-078a-494c-9e9d-7d01f80c3f51" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,d5411609-078a-494c-9e9d-7d01f80c3f51.aspx</comments>
      <category>All Things</category>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>CSharp</category>
      <category>General</category>
      <category>Tips and Tricks</category>
      <category>VB.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=80e3aae3-25f7-4fcb-ba45-62e0879ecc72</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,80e3aae3-25f7-4fcb-ba45-62e0879ecc72.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,80e3aae3-25f7-4fcb-ba45-62e0879ecc72.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=80e3aae3-25f7-4fcb-ba45-62e0879ecc72</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I am currently trying to go through a Code Review at a large bank to get our code
approved for release on the internet. One thing that came up was in some situations,
we are displaying the raw exception message which was listed as a no-no, which I disagree
with. While it's not particularly informative to the user which is potentially an
issue, I can't see where “Invalid use of null” is going to be particularly
useful to a hacker, but to a developer, that tidbit may help identify the problem
when the user calls for help (good application logging aside in this example). Ironically,
when errors weren't handled because the developer forgot, this passed code review.
</p>
        <p>
So my intent was to enumerate all the default error messages to determine if there
are any which would be particularly helpful to a hacker. While I am still looking
to find or create an application which will enumerate all the default messages that
.New throws out, I did come across a great article which lists the various error handling
philosophies, and tries to weigh out the pros and cons of each. Here's where to get
this pearl of wisdom:
</p>
        <p>
          <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/exceptdotnet.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/exceptdotnet.asp</a>
        </p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=80e3aae3-25f7-4fcb-ba45-62e0879ecc72" />
      </body>
      <title>Tip of the Day -- Great Exception Handling article</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,80e3aae3-25f7-4fcb-ba45-62e0879ecc72.aspx</guid>
      <link>http://www.dotnettechnologies.com/2005/03/09/TipOfTheDayGreatExceptionHandlingArticle.aspx</link>
      <pubDate>Wed, 09 Mar 2005 17:47:50 GMT</pubDate>
      <description>&lt;p&gt;
I am currently trying to go through a Code Review at a large bank to get our code
approved for release on the internet. One thing that came up was in some situations,
we are displaying the raw exception message which was listed as a no-no, which I disagree
with. While it's not particularly informative to the user which is potentially an
issue, I can't see where &amp;#8220;Invalid use of null&amp;#8221; is going to be particularly
useful to a hacker, but to a developer, that tidbit may help identify the problem
when the user calls for help (good application logging aside in this example). Ironically,
when errors weren't handled because the developer forgot, this passed code review.
&lt;/p&gt;
&lt;p&gt;
So my intent was to enumerate all the default error messages to determine if there
are any which would be particularly helpful to a hacker. While I am still looking
to find or create an application which will enumerate all the default messages that
.New throws out, I did come across a great article which lists the various error handling
philosophies, and tries to weigh out the pros and cons of each. Here's where to get
this pearl of wisdom:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/exceptdotnet.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/exceptdotnet.asp&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=80e3aae3-25f7-4fcb-ba45-62e0879ecc72" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,80e3aae3-25f7-4fcb-ba45-62e0879ecc72.aspx</comments>
      <category>All Things</category>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>Design</category>
      <category>General</category>
      <category>Tips and Tricks</category>
      <category>VB.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=9fd1a674-dc81-412e-b5cd-70b2467c00b7</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,9fd1a674-dc81-412e-b5cd-70b2467c00b7.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,9fd1a674-dc81-412e-b5cd-70b2467c00b7.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=9fd1a674-dc81-412e-b5cd-70b2467c00b7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of the things I use this blog for is to keep track of tips which I may need while
out at the client site. I have a fairly extensive CodeLib library I use, but for some
reason, I didn't have this in my library. 
</p>
        <p>
If you're new to javascript, which I am definitely still in the learning stages of,
at some point you are going to access the control which called a function. I did a
few searches, and it turns out, unless you know what you are looking for, it's tough
to do a search like “javascript determining control which called a function”
and similar searches. So here goes, and hopefully this simple tip will save another
developer a little time. It IS a basic function, I will be the first to admit, but
it is also useful to know for an ASP.Net developer. And the code is:
</p>
        <p>
document.activeElement
</p>
        <p>
There you go! Simple, but for some reason, it's assumed you should know it, which
to a degree, I agree with. But I would also have to say online there seems to be an
assumption that everyone already knows the DOM!
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=9fd1a674-dc81-412e-b5cd-70b2467c00b7" />
      </body>
      <title>Tip of the day - Javascript - Getting the control which called a function</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,9fd1a674-dc81-412e-b5cd-70b2467c00b7.aspx</guid>
      <link>http://www.dotnettechnologies.com/2004/12/18/TipOfTheDayJavascriptGettingTheControlWhichCalledAFunction.aspx</link>
      <pubDate>Sat, 18 Dec 2004 21:55:17 GMT</pubDate>
      <description>&lt;p&gt;
One of the things I use this blog for is to keep track of tips which I may need while
out at the client site. I have a fairly extensive CodeLib library I use, but for some
reason, I didn't have this in my library. 
&lt;/p&gt;
&lt;p&gt;
If you're new to javascript, which I am definitely still in the learning stages of,
at some point you are going to access the control which called a function. I did a
few searches, and it turns out, unless you know what you are looking for, it's tough
to do a search like &amp;#8220;javascript determining control which called a function&amp;#8221;
and similar searches. So here goes, and hopefully this simple tip will save another
developer a little time. It IS a basic function, I will be the first to admit, but
it is also useful to know for an ASP.Net developer. And the code is:
&lt;/p&gt;
&lt;p&gt;
document.activeElement
&lt;/p&gt;
&lt;p&gt;
There you go! Simple, but for some reason, it's assumed you should know it, which
to a degree, I agree with. But I would also have to say online there seems to be an
assumption that everyone already knows the DOM!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=9fd1a674-dc81-412e-b5cd-70b2467c00b7" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,9fd1a674-dc81-412e-b5cd-70b2467c00b7.aspx</comments>
      <category>All Things</category>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>Tips and Tricks</category>
      <category>VB.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=9e2de6f0-e90a-42f1-a3ee-ac6bf479cf53</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,9e2de6f0-e90a-42f1-a3ee-ac6bf479cf53.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,9e2de6f0-e90a-42f1-a3ee-ac6bf479cf53.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=9e2de6f0-e90a-42f1-a3ee-ac6bf479cf53</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Do you have a routine which you know works, and you don't want to have to step into
when you're debugging? Granted, you could you the hotkeys to do it, but why bother?
The System.Diagnostics namespace provides some neat functionality for helping you
in your debugging process. Here's some examples:
</p>
        <p>
//This attribute prevents the debugger from entering, as well as no breakpoints within
</p>
        <p>
&lt;System.Diagnostics.DebuggerStepThrough()&gt; 
</p>
        <p>
private string MyRoutine()
</p>
        <p>
{
</p>
        <p>
//Don't step through this
</p>
        <p>
}
</p>
        <p>
I am actually not sure what the difference between that and the DebuggerHidden() attribute
is though. The description in the help is the same. Anyone know?
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=9e2de6f0-e90a-42f1-a3ee-ac6bf479cf53" />
      </body>
      <title>Skipping over a routine automatically in the debugger, and other neat debugger tricks..</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,9e2de6f0-e90a-42f1-a3ee-ac6bf479cf53.aspx</guid>
      <link>http://www.dotnettechnologies.com/2004/12/15/SkippingOverARoutineAutomaticallyInTheDebuggerAndOtherNeatDebuggerTricks.aspx</link>
      <pubDate>Wed, 15 Dec 2004 20:15:13 GMT</pubDate>
      <description>&lt;p&gt;
Do you have a routine which you know works, and you don't want to have to step into
when you're debugging? Granted, you could you the hotkeys to do it, but why bother?
The System.Diagnostics namespace provides some neat functionality for helping you
in your debugging process. Here's some examples:
&lt;/p&gt;
&lt;p&gt;
//This attribute prevents the debugger from entering, as well as no breakpoints within
&lt;/p&gt;
&lt;p&gt;
&amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; 
&lt;/p&gt;
&lt;p&gt;
private string MyRoutine()
&lt;/p&gt;
&lt;p&gt;
{
&lt;/p&gt;
&lt;p&gt;
//Don't step through this
&lt;/p&gt;
&lt;p&gt;
}
&lt;/p&gt;
&lt;p&gt;
I am actually not sure what the difference between that and the DebuggerHidden() attribute
is though. The description in the help is the same. Anyone know?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=9e2de6f0-e90a-42f1-a3ee-ac6bf479cf53" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,9e2de6f0-e90a-42f1-a3ee-ac6bf479cf53.aspx</comments>
      <category>All Things</category>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>Tips and Tricks</category>
      <category>VB.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=01fdbb59-0e3c-4a8e-b853-662341bab110</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,01fdbb59-0e3c-4a8e-b853-662341bab110.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,01fdbb59-0e3c-4a8e-b853-662341bab110.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=01fdbb59-0e3c-4a8e-b853-662341bab110</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
OK, so you're looking at some really obscure code, so it's time to step in and see
exactly what it's doing, and the best way to do it is use the debugger. Actually,
if I have to give you a reason to use the debugger, you probably shouldn't be reading
this in the first place. You fire up the VS IDE, hit F5, and viola! You see the following
scary message:
</p>
        <p>
          <img height="139" src="http://www.dotnettechnologies.com/DotNetTechnologies/content/binary/failure.jpg" width="551" border="0" />
        </p>
        <p>
What the heck? “Error when typing to run project: Unable to start debugging
on the web server. Catastrophic failure.”
</p>
        <p>
Likely you won't see this unless you don't have Admin privledges on the box. Right
now, I am doing a project for a large bank, and trying to get rights to do anything
is like trying to pry a “Magic” card from a freshman engineering student.
My rights are so messed up, I actually have to do the following steps at the start
of every day I plan on debugging. If you see this message, here's the steps you can
try to get rid of it and get on with your debugging.
</p>
        <p>
First, you're going to need to change one of the local security policies. Open up
your admin folder, and select Local Security Policies. You should see something similar
to the image below. Next, select <em>User Rights Assignment</em>. 
</p>
        <p>
          <img height="537" src="http://www.dotnettechnologies.com/DotNetTechnologies/content/binary/secpol.jpg" width="768" border="0" />
        </p>
        <p>
Locate <em>Impersonate a client after authentication</em>, and double click on it.
You should get a dialog similar to the following. What you'll need to do is add
the IWAM_ (and I add the ASP.Net worker thread just for good measure to the policy)
like below. For the record, I believe only IWAM_ is required.
</p>
        <p>
          <img height="405" src="http://www.dotnettechnologies.com/DotNetTechnologies/content/binary/IWAM.jpg" width="401" border="0" />
        </p>
        <p>
 OK, you've taken the first step to fixing the problem, but that's not it. You've
got to get IIS and the rest of the system to recognize the new policy. So, first,
open up the “Run “ command from the Start menu) or command prompt, and
type the following:
</p>
        <p>
          <img height="179" src="http://www.dotnettechnologies.com/DotNetTechnologies/content/binary/run1.jpg" width="347" border="0" />
        </p>
        <p>
Type 
</p>
        <p>
secedit /refreshpolicy machine_policy /enforce
</p>
        <p>
This will refresh the security policy for the local machine. Next, type this command
to restart IIS now that everything is set.
</p>
        <p>
iisreset
</p>
        <p>
          <img height="179" src="http://www.dotnettechnologies.com/DotNetTechnologies/content/binary/run2.jpg" width="347" border="0" />
        </p>
        <p>
That's it! Assuming the IIS application workspace is set to allow debugging, and everything
else is good on the machine, hopefully you'll be debugging like the Orkin man!
</p>
        <p>
-- Daryl
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=01fdbb59-0e3c-4a8e-b853-662341bab110" />
      </body>
      <title>Castastrophic Error -- What to do when you see this when trying to debug..</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,01fdbb59-0e3c-4a8e-b853-662341bab110.aspx</guid>
      <link>http://www.dotnettechnologies.com/2004/12/06/CastastrophicErrorWhatToDoWhenYouSeeThisWhenTryingToDebug.aspx</link>
      <pubDate>Mon, 06 Dec 2004 04:44:29 GMT</pubDate>
      <description>&lt;p&gt;
OK, so you're looking at some really obscure code, so it's time to step in and see
exactly what it's doing, and the best way to do it is use the debugger. Actually,
if I have to give you a reason to use the debugger, you probably shouldn't be reading
this in the first place. You fire up the VS IDE, hit F5, and viola! You see the following
scary message:
&lt;/p&gt;
&lt;p&gt;
&lt;img height=139 src="http://www.dotnettechnologies.com/DotNetTechnologies/content/binary/failure.jpg" width=551 border=0&gt;
&lt;/p&gt;
&lt;p&gt;
What the heck? &amp;#8220;Error when typing to run project: Unable to start debugging
on the web server. Catastrophic failure.&amp;#8221;
&lt;/p&gt;
&lt;p&gt;
Likely you won't see this unless you don't have Admin privledges on the box. Right
now, I am doing a project for a large bank, and trying to get rights to do anything
is like trying to pry a &amp;#8220;Magic&amp;#8221; card from a freshman engineering student.
My rights are so messed up, I actually have to do the following steps at the start
of every day I plan on debugging. If you see this message, here's the steps you can
try to get rid of it and get on with your debugging.
&lt;/p&gt;
&lt;p&gt;
First, you're going to need to change one of the local security policies. Open up
your admin folder, and select Local Security Policies. You should see something similar
to the image below. Next, select &lt;em&gt;User Rights Assignment&lt;/em&gt;. 
&lt;/p&gt;
&lt;p&gt;
&lt;img height=537 src="http://www.dotnettechnologies.com/DotNetTechnologies/content/binary/secpol.jpg" width=768 border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Locate &lt;em&gt;Impersonate a client after authentication&lt;/em&gt;, and double click on it.
You should get a dialog similar to the following. What you'll need to do&amp;nbsp;is add
the IWAM_ (and I add the ASP.Net worker thread just for good measure to the policy)
like below. For the record, I believe only IWAM_ is required.
&lt;/p&gt;
&lt;p&gt;
&lt;img height=405 src="http://www.dotnettechnologies.com/DotNetTechnologies/content/binary/IWAM.jpg" width=401 border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;OK, you've taken the first step to fixing the problem, but that's not it. You've
got to get IIS and the rest of the system to recognize the new policy. So, first,
open up the &amp;#8220;Run &amp;#8220; command from the Start menu) or command prompt, and
type the following:
&lt;/p&gt;
&lt;p&gt;
&lt;img height=179 src="http://www.dotnettechnologies.com/DotNetTechnologies/content/binary/run1.jpg" width=347 border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Type 
&lt;/p&gt;
&lt;p&gt;
secedit /refreshpolicy machine_policy /enforce
&lt;/p&gt;
&lt;p&gt;
This will refresh the security policy for the local machine. Next, type this command
to restart IIS now that everything is set.
&lt;/p&gt;
&lt;p&gt;
iisreset
&lt;/p&gt;
&lt;p&gt;
&lt;img height=179 src="http://www.dotnettechnologies.com/DotNetTechnologies/content/binary/run2.jpg" width=347 border=0&gt;
&lt;/p&gt;
&lt;p&gt;
That's it! Assuming the IIS application workspace is set to allow debugging, and everything
else is good on the machine, hopefully you'll be debugging like the Orkin man!
&lt;/p&gt;
&lt;p&gt;
-- Daryl
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=01fdbb59-0e3c-4a8e-b853-662341bab110" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,01fdbb59-0e3c-4a8e-b853-662341bab110.aspx</comments>
      <category>All Things</category>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>General</category>
      <category>Tips and Tricks</category>
      <category>VB.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=6394fc3f-d3b8-46c7-bd71-035b286bf35c</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,6394fc3f-d3b8-46c7-bd71-035b286bf35c.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,6394fc3f-d3b8-46c7-bd71-035b286bf35c.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=6394fc3f-d3b8-46c7-bd71-035b286bf35c</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Someone on the project I am currently working on stumbled on some documentation for
WinCV, and in that documentation, it tells you how to add Assemblies which aren't
in the GAC. Here's the link from the MSDN, and then I will point out the interesting
part:
</p>
        <p>
          <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpconwindowsformsclassviewerwincvexe.asp" target="_blank">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpconwindowsformsclassviewerwincvexe.asp</a>
        </p>
        <p>
By using a <em>response file</em>, you can issue the necessary the parameters to look
at one or more files. From the documentation:
</p>
        <p>
          <font color="#0000ff">The following code shows the contents of a response file <code><code class="ce">myFile.rsp</code>. </code>Using
a response file eliminates the need to individually type the commands at the command
prompt.</font>
        </p>
        <pre class="code">
          <font color="#0000ff">/r:myAssembly.dll /r:myOtherAssembly.dll</font>
        </pre>
        <p>
          <font color="#0000ff">The following command reads the response file <code class="ce">myFile.rsp</code> and
executes the commands specified in the file.</font>
        </p>
        <pre class="code">
          <font color="#0000ff">wincv @myFile.rsp</font>
        </pre>
        <pre class="code">
          <font color="#000000">So,
you could set up a standard response file which holds all the names of assemblies
to search! </font>
        </pre>
        <pre class="code">Pretty neat!</pre>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=6394fc3f-d3b8-46c7-bd71-035b286bf35c" />
      </body>
      <title>WinCV revisited...</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,6394fc3f-d3b8-46c7-bd71-035b286bf35c.aspx</guid>
      <link>http://www.dotnettechnologies.com/2004/12/02/WinCVRevisited.aspx</link>
      <pubDate>Thu, 02 Dec 2004 05:42:28 GMT</pubDate>
      <description>&lt;p&gt;
Someone on the project I am currently working on stumbled on some documentation for
WinCV, and in that documentation, it tells you how to add Assemblies which aren't
in the GAC. Here's the link from the MSDN, and then I will point out the interesting
part:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpconwindowsformsclassviewerwincvexe.asp" target=_blank&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpconwindowsformsclassviewerwincvexe.asp&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
By using a &lt;em&gt;response file&lt;/em&gt;, you can issue the necessary the parameters to look
at one or more files. From the documentation:
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#0000ff&gt;The following code shows the contents of a response file &lt;code&gt;&lt;code class=ce&gt;myFile.rsp&lt;/code&gt;. &lt;/code&gt;Using
a response file eliminates the need to individually type the commands at the command
prompt.&lt;/font&gt;
&lt;/p&gt;
&lt;pre class=code&gt;&lt;font color=#0000ff&gt;/r:myAssembly.dll /r:myOtherAssembly.dll&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;font color=#0000ff&gt;The following command reads the response file &lt;code class=ce&gt;myFile.rsp&lt;/code&gt; and
executes the commands specified in the file.&lt;/font&gt;
&lt;/p&gt;
&lt;pre class=code&gt;&lt;font color=#0000ff&gt;wincv @myFile.rsp&lt;/font&gt;&lt;/pre&gt;&lt;pre class=code&gt;&lt;font color=#000000&gt;So,
you could set up a standard response file which holds all the names of assemblies
to search! &lt;/font&gt;&lt;/pre&gt;&lt;pre class=code&gt;Pretty neat!&lt;/pre&gt;&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=6394fc3f-d3b8-46c7-bd71-035b286bf35c" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,6394fc3f-d3b8-46c7-bd71-035b286bf35c.aspx</comments>
      <category>All Things</category>
      <category>C#</category>
      <category>General</category>
      <category>Tips and Tricks</category>
      <category>Tools</category>
      <category>VB.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnettechnologies.com/Trackback.aspx?guid=67768dd0-2d77-4e2e-88d6-486d9ade4bc5</trackback:ping>
      <pingback:server>http://www.dotnettechnologies.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnettechnologies.com/PermaLink,guid,67768dd0-2d77-4e2e-88d6-486d9ade4bc5.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.dotnettechnologies.com/CommentView,guid,67768dd0-2d77-4e2e-88d6-486d9ade4bc5.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnettechnologies.com/SyndicationService.asmx/GetEntryCommentsRss?guid=67768dd0-2d77-4e2e-88d6-486d9ade4bc5</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Not sure where I got this, so my apologies to the original author, but it's been a
pretty useful function. Of course, you might want to wrap this with some error handling
and validation code, but here's a good start for you...
</p>
        <p>
          <style type="text/css">
.csharpcode
{
 font-size: 10pt;
 color: black;
 font-family: Courier New , Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0px; }
.rem { color: #008000; }
.kwrd { color: #0000ff; }
.str { color: #006080; }
.op { color: #0000c0; }
.preproc { color: #cc6633; }
.asp { background-color: #ffff00; }
.html { color: #800000; }
.attr { color: #ff0000; }
.alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0px;
}
.lnum { color: #606060; }
</style>
        </p>
        <div class="csharpcode">
          <pre class="alt">
            <span class="kwrd">private</span>
            <span class="kwrd">string</span> GetRomanNumber(<span class="kwrd">int</span> number)</pre>
          <pre>{</pre>
          <pre class="alt">
            <span class="kwrd">string</span>[]
ArabicNums = <span class="kwrd">new</span><span class="kwrd">string</span>[] {<span class="str">"1"</span>, <span class="str">"4"</span>, <span class="str">"5"</span>, <span class="str">"9"</span>, <span class="str">"10"</span>, <span class="str">"40"</span>, <span class="str">"50"</span>, <span class="str">"90"</span>, <span class="str">"100"</span>, <span class="str">"400"</span>, <span class="str">"500"</span>, <span class="str">"900"</span>, <span class="str">"1000"</span>};</pre>
          <pre>
            <span class="kwrd">string</span>[]
RomanNums = <span class="kwrd">new</span><span class="kwrd">string</span>[] {<span class="str">"I"</span>,<span class="str">"IV"</span>,<span class="str">"V"</span>,<span class="str">"IX"</span>,<span class="str">"X"</span>,<span class="str">"XL"</span>,<span class="str">"L"</span>,<span class="str">"XC"</span>,<span class="str">"C"</span>,<span class="str">"CD"</span>,<span class="str">"D"</span>,<span class="str">"CM"</span>,<span class="str">"M"</span>};</pre>
          <pre class="alt"> </pre>
          <pre>
            <span class="kwrd">int</span> ArabicUpper
= ArabicNums.GetUpperBound(0);</pre>
          <pre class="alt">
            <span class="kwrd">int</span> ArabicLower
= ArabicNums.GetLowerBound(0);</pre>
          <pre> </pre>
          <pre class="alt">
            <span class="kwrd">string</span> Output
= <span class="str">""</span>;</pre>
          <pre> </pre>
          <pre class="alt">
            <span class="kwrd">for</span> (<span class="kwrd">int</span> i
= ArabicUpper; i &gt;= ArabicLower; i--)</pre>
          <pre>    {</pre>
          <pre class="alt">
            <span class="kwrd">while</span> (number
&gt;= Convert.ToInt32(ArabicNums[i]))</pre>
          <pre>        {</pre>
          <pre class="alt">            number -= Convert.ToInt32(ArabicNums[i]);</pre>
          <pre>            Output += RomanNums[i];</pre>
          <pre class="alt">        }</pre>
          <pre>    }</pre>
          <pre class="alt"> </pre>
          <pre>
            <span class="kwrd">return</span> Output;</pre>
          <pre class="alt">}</pre>
        </div>
        <p>
Enjoy!
</p>
        <img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=67768dd0-2d77-4e2e-88d6-486d9ade4bc5" />
      </body>
      <title>Tip of the Day: Converting an integer to a Roman Numeral in C#</title>
      <guid isPermaLink="false">http://www.dotnettechnologies.com/PermaLink,guid,67768dd0-2d77-4e2e-88d6-486d9ade4bc5.aspx</guid>
      <link>http://www.dotnettechnologies.com/2004/11/27/TipOfTheDayConvertingAnIntegerToARomanNumeralInC.aspx</link>
      <pubDate>Sat, 27 Nov 2004 04:25:01 GMT</pubDate>
      <description>&lt;p&gt;
Not sure where I got this, so my apologies to the original author, but it's been a
pretty useful function. Of course, you might want to wrap this with some error handling
and validation code, but here's a good start for you...
&lt;/p&gt;
&lt;p&gt;
&lt;style type=text/css&gt;
.csharpcode
{
 font-size: 10pt;
 color: black;
 font-family: Courier New , Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0px; }
.rem { color: #008000; }
.kwrd { color: #0000ff; }
.str { color: #006080; }
.op { color: #0000c0; }
.preproc { color: #cc6633; }
.asp { background-color: #ffff00; }
.html { color: #800000; }
.attr { color: #ff0000; }
.alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0px;
}
.lnum { color: #606060; }
&lt;/style&gt;
&lt;div class=csharpcode&gt;&lt;pre class=alt&gt;&lt;span class=kwrd&gt;private&lt;/span&gt; &lt;span class=kwrd&gt;string&lt;/span&gt; GetRomanNumber(&lt;span class=kwrd&gt;int&lt;/span&gt; number)&lt;/pre&gt;&lt;pre&gt;{&lt;/pre&gt;&lt;pre class=alt&gt;    &lt;span class=kwrd&gt;string&lt;/span&gt;[]
ArabicNums = &lt;span class=kwrd&gt;new&lt;/span&gt; &lt;span class=kwrd&gt;string&lt;/span&gt;[] {&lt;span class=str&gt;"1"&lt;/span&gt;, &lt;span class=str&gt;"4"&lt;/span&gt;, &lt;span class=str&gt;"5"&lt;/span&gt;, &lt;span class=str&gt;"9"&lt;/span&gt;, &lt;span class=str&gt;"10"&lt;/span&gt;, &lt;span class=str&gt;"40"&lt;/span&gt;, &lt;span class=str&gt;"50"&lt;/span&gt;, &lt;span class=str&gt;"90"&lt;/span&gt;, &lt;span class=str&gt;"100"&lt;/span&gt;, &lt;span class=str&gt;"400"&lt;/span&gt;, &lt;span class=str&gt;"500"&lt;/span&gt;, &lt;span class=str&gt;"900"&lt;/span&gt;, &lt;span class=str&gt;"1000"&lt;/span&gt;};&lt;/pre&gt;&lt;pre&gt;    &lt;span class=kwrd&gt;string&lt;/span&gt;[]
RomanNums = &lt;span class=kwrd&gt;new&lt;/span&gt; &lt;span class=kwrd&gt;string&lt;/span&gt;[] {&lt;span class=str&gt;"I"&lt;/span&gt;,&lt;span class=str&gt;"IV"&lt;/span&gt;,&lt;span class=str&gt;"V"&lt;/span&gt;,&lt;span class=str&gt;"IX"&lt;/span&gt;,&lt;span class=str&gt;"X"&lt;/span&gt;,&lt;span class=str&gt;"XL"&lt;/span&gt;,&lt;span class=str&gt;"L"&lt;/span&gt;,&lt;span class=str&gt;"XC"&lt;/span&gt;,&lt;span class=str&gt;"C"&lt;/span&gt;,&lt;span class=str&gt;"CD"&lt;/span&gt;,&lt;span class=str&gt;"D"&lt;/span&gt;,&lt;span class=str&gt;"CM"&lt;/span&gt;,&lt;span class=str&gt;"M"&lt;/span&gt;};&lt;/pre&gt;&lt;pre class=alt&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;    &lt;span class=kwrd&gt;int&lt;/span&gt; ArabicUpper
= ArabicNums.GetUpperBound(0);&lt;/pre&gt;&lt;pre class=alt&gt;    &lt;span class=kwrd&gt;int&lt;/span&gt; ArabicLower
= ArabicNums.GetLowerBound(0);&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class=alt&gt;    &lt;span class=kwrd&gt;string&lt;/span&gt; Output
= &lt;span class=str&gt;""&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class=alt&gt;    &lt;span class=kwrd&gt;for&lt;/span&gt; (&lt;span class=kwrd&gt;int&lt;/span&gt; i
= ArabicUpper; i &amp;gt;= ArabicLower; i--)&lt;/pre&gt;&lt;pre&gt;    {&lt;/pre&gt;&lt;pre class=alt&gt;        &lt;span class=kwrd&gt;while&lt;/span&gt; (number
&amp;gt;= Convert.ToInt32(ArabicNums[i]))&lt;/pre&gt;&lt;pre&gt;        {&lt;/pre&gt;&lt;pre class=alt&gt;            number -= Convert.ToInt32(ArabicNums[i]);&lt;/pre&gt;&lt;pre&gt;            Output += RomanNums[i];&lt;/pre&gt;&lt;pre class=alt&gt;        }&lt;/pre&gt;&lt;pre&gt;    }&lt;/pre&gt;&lt;pre class=alt&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;    &lt;span class=kwrd&gt;return&lt;/span&gt; Output;&lt;/pre&gt;&lt;pre class=alt&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
Enjoy!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnettechnologies.com/aggbug.ashx?id=67768dd0-2d77-4e2e-88d6-486d9ade4bc5" /&gt;</description>
      <comments>http://www.dotnettechnologies.com/CommentView,guid,67768dd0-2d77-4e2e-88d6-486d9ade4bc5.aspx</comments>
      <category>All Things</category>
      <category>ASP.Net</category>
      <category>General</category>
      <category>Tips and Tricks</category>
      <category>C#</category>
      <category>VB.Net</category>
    </item>
  </channel>
</rss>