<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>framework dotnet &#187; Uncategorized</title>
	<atom:link href="http://frameworkdotnet.com/blog/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://frameworkdotnet.com/blog</link>
	<description>framework dotnet</description>
	<lastBuildDate>Tue, 20 Apr 2010 20:42:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Beginners Guide To Piracy</title>
		<link>http://frameworkdotnet.com/blog/2010/03/29/the-beginners-guide-to-piracy/</link>
		<comments>http://frameworkdotnet.com/blog/2010/03/29/the-beginners-guide-to-piracy/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 17:29:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://frameworkdotnet.com/blog/2010/03/29/the-beginners-guide-to-piracy/</guid>
		<description><![CDATA[I’m a little old school and if your going to pirate software and movies let’s start with a little common sense. The peer to peer networks (P2P) of torrents and “Limewire(s)” are simply going to get you caught&#160; eventually.&#160; Why? because the shear nature is that your network address to constantly going against x,y and [...]]]></description>
			<content:encoded><![CDATA[<p>I’m a little old school and if your going to pirate software and movies let’s start with a little common sense. The peer to peer networks (P2P) of torrents and “Limewire(s)” are simply going to get you caught&#160; eventually.&#160; Why? because the shear nature is that your network address to constantly going against x,y and Z computers that are known to be hosting illegal files.&#160; This is the nature of P2P and torrent programs. Let me explain… </p>
<p>A company finds grievance against some poor soul because he is hosting up everything “Metallica”.&#160; Sounds familiar right, so let’s call the company hired to sue this poor kid, “<em>Payne &amp; Fear”. </em>Okay, now unbenounced to you,&#160; you just happen to be downloading some recently un-copyrighted Elvis Presley, right?&#160; Well one of these Elvis files is also shared from your friend the Metallica pirate (I know strange tastes in music but follow along).&#160; So the company “<em>Payne &amp; Fear</em>” that gets hired to hit our friend and all his followers with a cease and desist (Sue’Em All).&#160; Well you too get hit with a cease and desist because the law office of <em>Payne &amp; Fear</em> simply see you doing your P2P thing with this Metallica fan.&#160;&#160; The cease and desist letters go out to all his followers.&#160; Also, Get-This!&#160; These letters are not only cease and desist anymore they are fines that simply state your guilty and you need to pay our company <em>Payne &amp; Fear</em> thousands of dollars or else we will take you to court and sue you for much, much more.&#160; The real scum bags here are these jerky sue happy Lawyers.&#160; Okay, seriously now for a second Google Search “lawyers hunt down p2p” or <a href="http://www.google.com/search?q=lawyers+hunt+down+p2p&amp;rls=com.microsoft:en-us:IE-SearchBox&amp;ie=UTF-8&amp;oe=UTF-8&amp;sourceid=ie7&amp;rlz=1I7ADBF">simply click here</a>.&#160; read a couple of them, not far from the truth am I?&#160; How about another quick search for “<a href="http://www.google.com/search?hl=en&amp;rls=com.microsoft:en-us:IE-SearchBox&amp;rlz=1I7ADBF&amp;ei=rw6tS8OGNYq2NrCn1JkF&amp;sa=X&amp;oi=spell&amp;resnum=0&amp;ct=result&amp;cd=1&amp;ved=0CAUQBSgA&amp;q=RIAA+Fines+for+copyright+infringement+music&amp;spell=1">RIAA Fines for copyright infringement music</a>”&#160; </p>
<p>Well what is better than P2P, torrents and Limewire?&#160; Old School, <strong>Usenet</strong> is.&#160; Why because it has a legitimate purpose and if you use Secure Socket Layer (SSL) no one will ever know what your doing.&#160; Yeah, sure your IP address is still connected to a place where piracy occurs however so does a lot of other legitimate downloads.&#160; They might suspect you however someone would likely need a search warrant to prove what you are truly doing with your connection to a Usenet service. </p>
<p>Also for the record UseNext is crap I’m talking about Usenet.&#160; <strong>Net</strong> I say boy, Use<strong>NET,</strong> not next!Usenet is one of the oldest <a href="http://en.wikipedia.org/wiki/Computer_network">computer network</a> communications systems still in widespread use. It was conceived in 1979 and publicly established in 1980 at the <a href="http://en.wikipedia.org/wiki/University_of_North_Carolina_at_Chapel_Hill">University of North Carolina at Chapel Hill</a> and <a href="http://en.wikipedia.org/wiki/Duke_University">Duke University</a>,<sup><a href="http://en.wikipedia.org/#cite_note-Lueg-0">[1]</a></sup> over a decade before the <a href="http://en.wikipedia.org/wiki/World_Wide_Web">World Wide Web</a> was developed and the general public got access to the Internet.&#160; The <a href="http://en.wikipedia.org/wiki/Usenet">Wikipedia page on Usenet</a>&#160; does great justice in documenting the history of this little known service that started over 30 years ago. </p>
<p>Usenet was a free service carried by about 50% of the internet service providers until about 2005 – 2006 when ISP’s started to drop the little known services for several reasons the furthermost reason being the frequent piracy and child pornography that occurs from the service. </p>
<p>Today most of us will require a Usenet provider to access the service of which I’ll only mention one.&#160; There are several providers you need only search for “<a href="http://www.google.com/search?q=Usenet+provides&amp;rls=com.microsoft:en-us:IE-SearchBox&amp;ie=UTF-8&amp;oe=UTF-8&amp;sourceid=ie7&amp;rlz=1I7ADBF">Usenet provides</a>” to begin finding one.&#160; Please note the Usenet provider service will be in addition to your Internet Service Provider.&#160; You need both providers to have access.&#160; Additionally you will want software that communicates with today’s <a href="http://en.wikipedia.org/wiki/Network_News_Transfer_Protocol">Network News Transfer Protocol (NNTP)</a>.&#160; Again I’ll only mention one such program where there are several.&#160; You need only search for “nntp client software” to discover the different programs that exist. </p>
<p>So here I’ll document setting up connection between the <a href="http://www.newsbin.com/">NewsBin Pro software (news client) or aka the NNTP application</a> and the <a title="http://www.giganews.com/" href="http://www.giganews.com/">http://www.giganews.com/</a> Usenet service.&#160;&#160; Obviously if your new to both of these you want to start by downloading a 10 day trial copy of the software from <a title="http://www.newsbin.com/" href="http://www.newsbin.com/">http://www.newsbin.com/</a> and setting up a paid for account on <a title="http://www.giganews.com/" href="http://www.giganews.com/">http://www.giganews.com/</a> .&#160; I’ll also mention here that apparently giganews allows and pays for referrals I just found this out! really after write this blog!&#160; <a href="http://www.giganews.com/?c=hughesdo ">So if you click this link and purchase giganews I get some kind of a bonus credit!</a>&#160; yeah!!!&#160;&#160; I guess you also need my real name..&#160; Donald Hughes</p>
<p><a href="http://www.giganews.com/?c=hughesdo">http://www.giganews.com/?c=hughesdo</a> </p>
<p>The fine people at Giganews have done a great video on configuring the NewsBin Pro software.&#160; Simply watch the video below and skip ahead to 4:56 to fast forward directly to the NewzBin configuration section. </p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:c81d4ddb-afd1-439e-a583-890938ca2b65" class="wlWriterEditableSmartContent">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/0E0MqXEgwrs&amp;hl=en"></param><embed src="http://www.youtube.com/v/0E0MqXEgwrs&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p>So everything is installed and configured how do I go about downloading stuff like crazy?&#160; Well you could start download right away by adding a select newsgroup and downloading the headers.&#160; However I’m going to take you to a much simpler route of going to yet one more web page that indexes these headers into easily searchable and single click download(s).&#160; Again there are many of these however I’m only going to mention one.&#160; You could search for other similar services by searching on “Usenet index nzb”.&#160; The key here is the service allows a download of a dot “.nzb” file. This file is a xml file that indexes all of the individual parts that are required for a single item. This is confusing, I’m going to explain this just a little and then have you try it.&#160; The files that are made available on Usenet are composed of much smaller messages.&#160; The original intention of Usenet was for threaded discussions of flat ascii text.&#160; So any one download is likely composed of several discussion threads.&#160; Each required discussion posting needed to complete a single download is a xml record with in one <strong>.</strong>nzb file download.&#160; <u>In short if you download these .nzb files&#160; NewzBin Pro will in-turn queue-up and download the entire program your requesting.</u></p>
<p>So, for a couple of bucks you will also want to join <a href="http://www.newzbin.com">http://www.newzbin.com</a> .&#160; This web site allows you to search for individual programs and simply make one click to download an entire program or movie. The web site is quite busy looking at first.&#160; Here below I’ve done a simple search for “<em><strong>Dragon NaturallySpeaking</strong></em>” against <em><strong>Everything</strong></em> where there is a <strong><em>Newzbin </em></strong>type file and selected <strong>Go</strong>.&#160; In the results I’ll click a green little down pointing arrow ( <a href="http://frameworkdotnet.com/blog/wp-content/uploads/2010/03/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://frameworkdotnet.com/blog/wp-content/uploads/2010/03/image-thumb3.png" width="17" height="19" /></a>)&#160; to select the program to download.&#160; I suggest that you read the comments by hovering the “<font color="#0000ff"><em>X comments</em></font>” URL prior to making your selection.&#160; Other users that have downloaded and installed the program will inform you if the program works correctly contains a keygen or if any virus is present. </p>
<p><a href="http://frameworkdotnet.com/blog/wp-content/uploads/2010/03/image4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://frameworkdotnet.com/blog/wp-content/uploads/2010/03/image-thumb4.png" width="604" height="366" /></a> </p>
<p>The site also maintains there own help guide here : <a title="http://docs.newzbin.com/index.php/Newzbin:Basics" href="http://docs.newzbin.com/index.php/Newzbin:Basics">http://docs.newzbin.com/index.php/Newzbin:Basics</a></p>
<p>Well now you are queuing-up downloads like crazy.&#160; Depending on your speed of your Internet you’ll be downloading tons of stuff at the fastest possible speeds.&#160; You will no-longer be depended on other people participating in a P2P torrent to get faster download speeds.&#160; </p>
<p>Finally there are a couple of smaller programs you are going to need but don’t worry they are free to use and easily installed with little to no configurations.&#160; The files you are likely to download from Usenet will perhaps be archived with <strong>Winrar</strong>, <a href="http://www.rarlab.com/">simply click here to download the free version.</a>&#160; Additionally your going to run into places where parts of the files are not 100% completed.&#160; This sounds much worse that it is.&#160; Most people contributing to the Usenet are also creating additional parity files.&#160; Parity files are extra files that you hopefully do not need however these files exist to correct problems with missing portions of files.&#160; So if you do get a file that will not completely download and shows a partial missing red spot within the file’s download monitor go ahead and use Newsbin Pro to write the bad file anyhow and then download the extra parity files. These parity files will fix the original archive.&#160; You’ll need to download and install QuickPar first.&#160; So you may as well do this download now before you need it, <a href="http://www.quickpar.org.uk/">click here to download and Install QuickPar.</a>&#160; Once the program is installed you can simply double click on any .par file to begin examining the entire archive’s completeness and begin repairing it if necessary. This can take a little bit of time.&#160; Also note that Newzbin does handle quite a bit of this repairing and un-archiving itself if you have the latest versions and it’s properly configured.&#160; However it is still worth installing the two small programs <a href="http://www.rarlab.com/download.htm">Winrar</a> and <a href="http://www.quickpar.org.uk/Download.htm">QuickPar</a>. </p>
<p>Let me quickly end this posting in a old school train of thought and a moral one.&#160; If you use a program you should own a legal copy of it.&#160; Being a programmer myself I expect to be paid for my work.&#160; I think the question of fair use comes to mind. Let’s quickly look at that…</p>
<p><a href="http://www.copyright.gov/fls/fl102.html"><em>Section 107 of the fair use laws</em></a><em> contains a list of the various purposes for which the reproduction of a particular work may be considered <b>fair</b>, such as criticism, comment, news reporting, teaching, scholarship, and research. Section 107 also sets out four factors to be considered in determining whether or not a particular <b>use</b> is <b>fair</b>: </em></p>
<ul>
<ol>
<li><em>The purpose and character of the <b>use</b>, including whether such <b>use</b> is of commercial nature or is for nonprofit educational purposes </em></li>
<li><em>The nature of the copyrighted work </em></li>
<li><em>The amount and substantiality of the portion used in relation to the copyrighted work as a whole </em></li>
<li><em>The effect of the <b>use</b> upon the potential market for, or value of, the copyrighted work </em></li>
</ol>
</ul>
<p><em>The distinction between <b>fair</b> <b>use</b> and infringement may be unclear and not easily defined. </em></p>
<p>I’m not a lawyer and I hope that I’ll never need one.&#160; However if you already own every Metallica CD ever made and you are simply downloading a MP3 formatted version for your favorite Metallic tune then is this fair use?&#160; I think so.&#160; If you are using a new copy of Microsoft Visual Studio to teach yourself a little about programming and not actually running a business from your creations or use of the program is this fair use?&#160; Let’s be serious here, if you installed any such a program for less than 30 days of research is this fair use?&#160; I myself continually research software to learn and consult with businesses about the best possible solutions for their particular problems.&#160; I then wind-up promoting and evangelizing the merits of these programs to people who wind-up buying them.&#160; I actually need a pay check for myself from a few different software companies for doing such a good sales job on their behalf.&#160; Boy, if I had a nickel! Perhaps I should sue Microsoft for selling their products and not getting paid?&#160; Hmmm….</p>
<p>Still not promoting piracy here just trying to tell you that it is also a two way street.&#160; Another old school though about piracy.&#160; Piracy is a huge promotional tool.&#160; You see if you allow a little piracy in the beginning of your product launch then the product promotes itself.&#160; Your Crazy you say??, okay let me put it in today’s prospective. Companies have been selling you the printer for next to nothing for a couple of years now.&#160; However the Ink costs you an arm and a leg, right?&#160; This is how they make the money for the printer product. By making a “computer chipped cartridge” that knows it is out of ink and needs replaced. Right?&#160; I saw a new printer commercial where the Ink is now cheap.&#160; Why did a company come about to this change?&#160; Well too many of us know about “china ink cartridges”, pirate or knock-off Ink cartridges, whatever you want to call them.&#160; These knock-offs are so cheap we don’t buy from the original manufactures therefore little money is being made on the cartridges.&#160; So while the little known ability to pirate the cartridges in the beginning is a good thing it becomes bad as too many people learned about the availability of these knocked-off cartridges.&#160; What made some of us buy a printer that was the fact of knowing that it was going to be cheap now and in the future as we purchased knock-off Ink cartridges.&#160; But as so many people join our once little known ways the companies had to make printers that cost more and have cheap Ink. </p>
<p>Okay, other examples:&#160; </p>
<p><a title="http://www.mathewingram.com/work/2008/01/24/books-does-piracy-now-marketing/" href="http://www.mathewingram.com/work/2008/01/24/books-does-piracy-now-marketing/">http://www.mathewingram.com/work/2008/01/24/books-does-piracy-now-marketing/</a> Obvious This guy know what I’m saying.</p>
<p><a title="http://en.wikipedia.org/wiki/DIVX_(Digital_Video_Express)" href="http://en.wikipedia.org/wiki/DIVX_(Digital_Video_Express">http://en.wikipedia.org/wiki/DIVX_(Digital_Video_Express)</a> This would have worked and beaten the DVD format because geeks in-the-know where going to easily hack this format. The only reason it failed was the hack factor was just not great enough.&#160; </p>
<p><a title="http://www.codinghorror.com/blog/2008/05/revisiting-the-black-sunday-hack.html" href="http://www.codinghorror.com/blog/2008/05/revisiting-the-black-sunday-hack.html">http://www.codinghorror.com/blog/2008/05/revisiting-the-black-sunday-hack.html</a> Direct TV’s Black Sunday Kill.&#160; Pirate’s are told “Game Over” stop pirating our sat signals we are too big now and we really just want your money. Plus there are too many of you, however thanks for promoting us and we hope you enjoyed the couple of free fight nights that you invited all your friends to watch.&#160; Now that they too have bought Direct-TV we are going to stop the piracy.</p>
]]></content:encoded>
			<wfw:commentRss>http://frameworkdotnet.com/blog/2010/03/29/the-beginners-guide-to-piracy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cache-Control issues in web pages.</title>
		<link>http://frameworkdotnet.com/blog/2010/03/24/cache-control-issues-in-web-pages-2/</link>
		<comments>http://frameworkdotnet.com/blog/2010/03/24/cache-control-issues-in-web-pages-2/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 14:55:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.net programming]]></category>
		<category><![CDATA[IIS Server]]></category>

		<guid isPermaLink="false">http://frameworkdotnet.com/blog/2010/03/24/cache-control-issues-in-web-pages-2/</guid>
		<description><![CDATA[ 
I have recently run into several Cache-Control issues within some web pages here at work.  I wanted to document how the issue has presented itself and how the issues have been resolved so that anyone encountering the issues elsewhere could quickly resolve.
Caching is a well known concept in computer science: when programs continually access the [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>I have recently run into several <strong>Cache-Control</strong> issues within some web pages here at work.  I wanted to document how the issue has presented itself and how the issues have been resolved so that anyone encountering the issues elsewhere could quickly resolve.</p>
<p>Caching is a well known concept in computer science: when programs continually access the same set of instructions, a massive performance benefit can be realized by storing those instructions in RAM. This prevents the program from having to access the disk thousands or even millions of times during execution by quickly retrieving them from RAM. Caching on the web is similar in that it avoids a roundtrip to the origin web server each time a resource is requested and instead retrieves the file from a local computer&#8217;s browser cache or a proxy cache closer to the user.</p>
<p>The Caching issue usually presents itself with a end user stating the page is not taking my updates or that after my update this popup continues to appear even after I have left the page.  These don’t directly indicate that a caching issue exists further investigating would be needed.  If the page in question really did make the update, then you might have a caching issue.  Additionally, some programmers set-up popup dialogs based on events.  Another way the issue has presented itself to me was a html popup window that will not close.  My theory is, that after a popup occurs let’s say, the Modal Pop-up dialog (“<strong><strong>check has been successfully deleted”)</strong></strong> then JavaScript must have incremented a variable that is being tested to turn off the Pop-up.  The problem that occurs is that page posts back to itself and on the end user’s computer it receives the “cached” version from the hard drive and NOT the web server.  Therefore the JavaScript variable is therefore the previous setting that does not turn off the Pop-up. </p>
<p>Without doing anything extra to any web page the page is generally allowed to be cached by most browsers.  generally speaking you actually have to do extra work to not allow a page to be cached.  I’ll get to this extra work here in a second but first I want to mention that a server can be set up so that inverse of this is true. On a IIS server you can change the default IIS Settings to add a custom Cache-Control header to a hierarchy of sites or folders.   For example at the root level of your web site you could add the Cache-Control header and therefore all folders above this one and all the web pages will include a “Cache-Control:no-cache” (picture below).</p>
<p><a href="http://frameworkdotnet.com/blog/wp-content/uploads/2010/03/image1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://frameworkdotnet.com/blog/wp-content/uploads/2010/03/image-thumb1.png" border="0" alt="image" width="464" height="286" /></a></p>
<p>For a very long time our servers had a header placed at the root to not allow caching of any web page with a custom header and we specifically set some web pages to allow caching where it was needed.  We simply removed the headers from certain pages after the more global root setting was made. The reasons some pages can not contain a no-cache setting is that they actually require the ability to be cached.  For example, you can not prevent caching on an “application/<em>octet</em>-<em>stream”</em> download on a SSL encrypted site.  Therefore a couple of pages that produced secure adobe files had to be marked without any Cache-Control headers by visiting this node or file on the hierarchy and specifically deleting the header.  This is easily done however IIS server 5.0 appears to reset to the root settings from time to time.  I think some IIS server updates cause this reset.  At any rate our company has now encrypted files written to the laptop hard drives and I by default allow caching mostly anything from our IIS servers by default.  In real geek speak most every page browsed today is a “response 304” that indicates that the file in the cache is valid.  it really depends on the user’s browser setting if the cached version is used (follow along)..</p>
<p>On different browsers the end user has some control over their computers ability to use a cached version of web pages.  This option exists in Internet Explorer in Tools/ Internet Options / General/ Settings (Internet Explorer 8.0 shown below).  Actually deleting the users cached files could resolve the immediate issue however a far better alternative is to have the server not allow the page to be cached in the first place. </p>
<p><a href="http://frameworkdotnet.com/blog/wp-content/uploads/2010/03/image2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://frameworkdotnet.com/blog/wp-content/uploads/2010/03/image-thumb2.png" border="0" alt="image" width="374" height="382" /></a> </p>
<p><strong>Where and why would you actually want a page to never be cached?  I’m Glad you finally asked..</strong></p>
<p>A page that’s method is to “get” or “post” back to itself with a saved set of changes in general should be cached-controlled with a no-cache option.  By this I mean this page should never be cached in the first place!  The obvious thing that is noticed when a page does not have this no-cache option is that the page did not take your changes or at least it appears that way to the end user.  On the post-back the cached page is display by the browser instead of waiting for the round trip to complete.  This might also be especially true of compressed pages.   So the end user winds up seeing the page that was originally display to them upon the first visit without the updated fields.  You ask why would the programmer have not seen the same thing in testing.  Testing might have been done on a separate box with different settings and additionally the programmer might have different browser settings for the temporary storage of files (cache) or finally the server admin simply turned on IIS compression recently and the page now caches differently.</p>
<p>How might you actually make the changes to web page that have a Cache-Control issue? </p>
<p>If the page in question has a .aspx page with a header I would make the three meta tag addition in red below.</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; height: 234px; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">&lt;%@ Page Language=<span style="color: #006080;">"VB"</span> AutoEventWireup=<span style="color: #006080;">"false"</span> CodeFile=<span style="color: #006080;">"Default.aspx.vb"</span></pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">    <span style="color: #0000ff;">Inherits</span>=<span style="color: #006080;">"_Default"</span> %&gt;</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">&lt;%@ Register <span style="color: #0000ff;">Assembly</span>=<span style="color: #006080;">"HtmlEditor"</span> <span style="color: #0000ff;">Namespace</span>=<span style="color: #006080;">"HtmlEditor"</span>  TagPrefix=<span style="color: #006080;">"cc1"</span> %&gt;</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"> </pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">&lt;!DOCTYPE html <span style="color: #0000ff;">PUBLIC</span> <span style="color: #006080;">"-//W3C//DTD XHTML 1.0 Transitional//EN"</span></pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">    <span style="color: #006080;">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>&gt;</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"> </pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">&lt;html xmlns=<span style="color: #006080;">"http://www.w3.org/1999/xhtml"</span> &gt;</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">&lt;head runat=<span style="color: #006080;">"server"</span>&gt;</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">    &lt;title&gt;HR Self-Serv Contenet Manager&lt;/title&gt;</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">    <span style="color: #ff0000; font-size: small;">&lt;META Http-Equiv=<span style="color: #006080;">"Cache-Control"</span> Content=<span style="color: #006080;">"no-cache"</span>&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="font-size: x-small;"><span style="color: #ff0000;">    <span style="font-size: small;">&lt;META Http-Equiv=<span style="color: #006080;">"Pragma"</span> Content=<span style="color: #006080;">"no-cache"</span>&gt;</span></span></span></pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="font-size: x-small;"><span style="color: #ff0000;">    <span style="font-size: small;">&lt;META Http-Equiv=<span style="color: #006080;">"Expires"</span> Content=<span style="color: #006080;">"0"</span>&gt;</span></span></span></pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"> </pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">    &lt;link href=<span style="color: #006080;">"StyleSheet.css"</span> rel=<span style="color: #006080;">"stylesheet"</span> type=<span style="color: #006080;">"text/css"</span> /&gt;</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">&lt;/head&gt;</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">....</pre>
<p><!--CRLF--></div>
</div>
<p>If it could not be done in the .aspx page but could be done in the .vb page or otherwise need done in compiled dll I would simply include the dot net directive <strong>SetCacheability</strong> as shown in code below:</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="color: #0000ff;">If</span> myReader.Read <span style="color: #0000ff;">Then</span></pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"> </pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">    Response.Clear()</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">    Response.BufferOutput = <span style="color: #0000ff;">False</span></pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">    Response.ContentType = <span style="color: #006080;">"text/html"</span></pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span style="font-size: x-small;"><span style="color: #ff0000;">    <span style="font-size: small;">Response.Cache.SetCacheability(HttpCacheability.NoCache)</span></span></span></pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">    Response.Write("&lt;link href='StyleSheet.css' rel='stylesheet ….</pre>
<p><!--CRLF-->&#8230;</div>
</div>
<p>You could go nuts with all the different headers that potentially modify the page’s cacheability such as these:</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; height: 216px; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">Response.ClearHeaders();</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">Response.AppendHeader(<span style="color: #006080;">"Cache-Control"</span>, <span style="color: #006080;">"no-cache"</span>); //HTTP 1.1</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">Response.AppendHeader(<span style="color: #006080;">"Cache-Control"</span>, <span style="color: #006080;">"private"</span>); // HTTP 1.1</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">Response.AppendHeader(<span style="color: #006080;">"Cache-Control"</span>, <span style="color: #006080;">"no-store"</span>); // HTTP 1.1</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">Response.AppendHeader(<span style="color: #006080;">"Cache-Control"</span>, <span style="color: #006080;">"must-revalidate"</span>); // HTTP 1.1</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">Response.AppendHeader(<span style="color: #006080;">"Cache-Control"</span>, <span style="color: #006080;">"max-stale=0"</span>); // HTTP 1.1</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">Response.AppendHeader(<span style="color: #006080;">"Cache-Control"</span>, <span style="color: #006080;">"post-check=0"</span>); // HTTP 1.1</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">Response.AppendHeader(<span style="color: #006080;">"Cache-Control"</span>, <span style="color: #006080;">"pre-check=0"</span>); // HTTP 1.1</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">Response.AppendHeader(<span style="color: #006080;">"Pragma"</span>, <span style="color: #006080;">"no-cache"</span>); // HTTP 1.1</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">Response.AppendHeader(<span style="color: #006080;">"Keep-Alive"</span>, <span style="color: #006080;">"timeout=3, max=993"</span>); // HTTP 1.1</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">Response.AppendHeader(<span style="color: #006080;">"Expires"</span>, <span style="color: #006080;">"Mon, 26 Jul 1997 05:00:00 GMT"</span>); // HTTP 1.1</pre>
<p><!--CRLF--></div>
</div>
<p>However I would stick to the two examples above.  Also the program fiddler could be used to verify that a 304 Not-Modified response header is not being returned, 304 indicates that the file in the cache is valid and can be used again as opposed to getting a 200 response.</p>
]]></content:encoded>
			<wfw:commentRss>http://frameworkdotnet.com/blog/2010/03/24/cache-control-issues-in-web-pages-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

