<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5630186968428370875</id><updated>2011-12-13T19:14:19.817+11:00</updated><category term='C#'/><category term='asp.net.mvc'/><category term='POP SMTP C#'/><category term='IIS .NET'/><category term='seth godin'/><category term='DeployLX License'/><category term='ASP.NET .NET Web Error'/><category term='micro-isv'/><category term='Sydney .NET Dot Net Dilemmas'/><category term='azure'/><category term='HTML'/><category term='design'/><category term='CultureInfo'/><category term='.NET HTTP ASP.NET Web Services'/><category term='cloud'/><category term='Dot Net Dilemmas .NET Rocks Podcasts'/><category term='office birthday'/><category term='bizspark'/><category term='ASP.NET'/><category term='web.config'/><category term='start-up'/><title type='text'>Dot.Net.Dilemmas</title><subtitle type='html'>My daily struggle with those .NET, C#, IIS and ASP.NET/MVC issues that pop up again and again and stop me from having the time to come up with an idea to make me an internet millionaire.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-9170359505676185561</id><published>2009-09-14T16:46:00.007+10:00</published><updated>2009-09-16T09:06:15.685+10:00</updated><title type='text'>Day 94: A Writer's Retreat….</title><content type='html'>&lt;span class="Apple-style-span"  style=" font-weight: bold; white-space: pre-wrap; font-family:arial;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;b&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Q&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;uite a lot has happened to me since my last blog entry. Some good (I finally passed my driving test – Better late than never), some not so good (both Bohemian FC and Sydney FC have forgotten how to win), and some that I just can’t talk about on a public forum. Overall I am pretty happy how things are starting to work out. As for Project Something, Something well, it hit a bit of a brick wall as I had so many other things going on that I simply couldn’t fit any more hours in to the day to get stuck in to it. But that hasn’t stopped me thinking about it almost every spare moment that I have. I have gone past a lot of the technical questions that I had and now the thing that seems to occupy my mind most is, finding a domain name that explains the product I will provide which hasn't already been registered. It now makes perfect sense why web based companies have names like &lt;a href="http://www.yola.com/"&gt;Yola&lt;/a&gt; and &lt;a href="http://crm.zoho.com/crm/login.sas"&gt;Zoho&lt;/a&gt; that have no real relevance to the service they provide. Today I watched a DVD called '&lt;a href="http://www.projectaardvark.com/movie/"&gt;Aardvark'd - 12 weeks with Geeks&lt;/a&gt;', a documentary about 4 interns working for &lt;a href="http://www.fogcreek.com/"&gt;Fog Creek Software&lt;/a&gt; and given 12 weeks to design, develop, debug and deploy the product that became &lt;a href="https://www.copilot.com/"&gt;Copilot&lt;/a&gt;. They loved the name Copilot but of course the domain name was taken and they ended up paying $10,000 to secure the name.  No matter how good a name is, I would never even consider paying that type of money. My brother Philip is the creative one in the family so, I am going to give him the details of my idea and see what he come up with. No pressure mate....&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Over the last few days I have really been lucky with ‘finding’ somewhere I will be able to churn out all the lines of code that I need to finally get a working demo that I can show people and (hopefully) get them interested. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;My girlfriend and her parents are going overseas for a month and I was asked to housesit their amazing place and look after their two dogs while they are away. So, I am typing this, sitting by the pool in 29 degree Sydney heat while looking out over the most beautiful gardens. I really have struck gold and have no excuses for not locking myself away and with every spare moment hammer out some real solid code and show some progress for all the big noise that I have been making…. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;I guess for the next while, my blog is bound to get more technical, This is to be expected as I will be nose deep in code for the next 3 months. I have made a commitment to have a shippable product by November 12th and although even at this stage I am not sure if that is realistic, I am certainly going to try.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;b&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-9170359505676185561?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/9170359505676185561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=9170359505676185561' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/9170359505676185561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/9170359505676185561'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/09/day-94-writers-retreat.html' title='Day 94: A Writer&apos;s Retreat….'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-2653842783811986982</id><published>2009-08-27T12:15:00.022+10:00</published><updated>2009-09-14T17:10:46.167+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net.mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='start-up'/><category scheme='http://www.blogger.com/atom/ns#' term='micro-isv'/><category scheme='http://www.blogger.com/atom/ns#' term='bizspark'/><title type='text'>Day 77: &lt; Insert Witty Title Here &gt;</title><content type='html'>&lt;span class="Apple-style-span"  style=" font-weight: bold; white-space: pre-wrap; font-family:arial;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; white-space: pre-wrap; font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;T&lt;/span&gt;here is a sure feeling that summer is on the way in &lt;/span&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Sydney&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;. The A-league has kicked off again and &lt;a href="http://www.sydneyfc.com/"&gt;Sydney FC&lt;/a&gt; look like they may just challenge for honours this season. Sydney FC will never replace &lt;a href="http://www.bohemians.ie/"&gt;Bohemian FC&lt;/a&gt; in my heart but I guess it’s like a heroin addict just 'getting by' on methadone. The warmer evening make you feel like you should be doing something with your time (other than working full time and working on Project “Something Something”) so, On Monday night I attended my first &lt;a href="http://sydney.ozalt.net/"&gt;Sydney &lt;/a&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;a href="http://sydney.ozalt.net/"&gt;Alt.Net&lt;/a&gt; &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;“Lightening Talks”. I knew that there was an Alt.Net group in &lt;/span&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Sydney&lt;/span&gt;&lt;/st1:city&gt;&lt;/st1:place&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; but for some reason (which I can not explain), I thought that it was invite only. It isn’t so, on the advice of &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;friend I went along. The meeting was held in &lt;a href="http://www.thoughtworks.com/index.html"&gt;Thoughtworks&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;offices on &lt;/span&gt;&lt;st1:street st="on"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Pitt Street&lt;/span&gt;&lt;/st1:street&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; and my first impressions were very positive. It’s a big bright open office, good sized monitors with comfortable chairs at each desk, a well stocked kitchen and work space environment conducive to getting things done. The fact that there was beer,soft drinks and pizza on offer too didn’t hurt when it came to forming my opinion.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; white-space: pre-wrap; font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Since coming to &lt;/span&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Sydney&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;,I have found it pretty difficult to find other .NET developers in my general circle to bounce ideas off so, to be in a room with 30 or so likeminded people was a good experience. To date, all the decisions on what technologies that I am using for my product are based on my own personal preference, experience and research so it was exciting to see that some of the choices that I have made were somewhat validated as most of the talks were on ASP.NET MVC, Fluent NHibernate, IoC and JQuery. Of particular interest to me was Damian Maclennan’s 10 minute talk on ‘Making ASP.NET MVC simple with Fluent NHibernate with StructureMap’ and &lt;a href="http://jamescrisp.org/"&gt;James Crisp’s&lt;/a&gt; ‘Securing your ASP.NET MVC site against code injection and x-site scripting’. Largely, I think that the type of people that go along to user group meetings are those that have a real interest and passion for what they do, so to hear them discuss and share their positive experiences of the technologies that I am using gave me much needed and timely encouragement to stay on the path that I am on. At the moment I am working my way through the SportsStore web application created by &lt;a href="http://blog.codeville.net/"&gt;Steven Sanderson&lt;/a&gt; in his new book ‘&lt;a href="http://www.amazon.com/gp/product/1430210079?ie=UTF8&amp;amp;tag=stesansblo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1430210079"&gt;Pro ASP.NET MVC Framework&lt;/a&gt;’. When I have it finished, I plan to migrate it to the Azure Cloud as I think that it will be an excellent exercise to ensure that the Frameworks and technologies that I am using work in the cloud. If there is interest, I think that I will offer to present my finding to a future Alt.Net meeting.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; white-space: pre-wrap; font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Finally, if you are developing a ASP.NET MVC web application, you will no doubt know the importance of the whole concept of Routing URLs. So, if for no other reason than it's like getting your homework done for you, you should read Chapter 5 of Pro ASP.NET MVC where Sanderson ‘gives’ you a full unit test for both inbound and outbound route mappings that you can simply plug into your own unit tests... Excellent.. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-2653842783811986982?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/2653842783811986982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=2653842783811986982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/2653842783811986982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/2653842783811986982'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/08/day-77.html' title='Day 77: &amp;lt; Insert Witty Title Here &amp;gt;'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-1241132603646732691</id><published>2009-08-06T17:59:00.007+10:00</published><updated>2009-08-09T18:10:53.990+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='start-up'/><category scheme='http://www.blogger.com/atom/ns#' term='micro-isv'/><category scheme='http://www.blogger.com/atom/ns#' term='bizspark'/><title type='text'>Day 50: Project Something Something Meets BizSpark</title><content type='html'>&lt;span class="Apple-style-span"  style=" font-weight: bold; white-space: pre-wrap; font-family:arial;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;D&lt;/span&gt;ay 50!!!! I can not believe how quickly the time is going by. I am now really starting to understand why a lot of people who are looking to start their own company, save up a few months salary and take time off before embarking on the ISV adventure. It is not easy to have a full time job (especially when you are on the run-in to a major product release) and put in the time that is required to get a project of this scale up and running. Anyhow, that’s the reason for me not having time to update my blog but not an excuse for not continuing work on my project (which I have a working title of ‘Project Something, Something’ – Don’t ask…)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;So one very important thing that I have done since the last update is, I have applied and was accepted to participate in Microsoft’s early stage startup program, &lt;a href="http://www.microsoft.com/BizSpark/"&gt;BizSparks&lt;/a&gt;. I have to admit that this is one of those offers that may seem too good to be true and I spent more than a few hours looking for the ‘catch’ in the offer but I don't think that there is one. As they say themselves, it is Microsoft’s program that provides Software, Support and Visibility for Software Startups. You can expect to get;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Software. Receive fast and easy access to current full-featured Microsoft development tools, platform technologies, and production licenses of server products for immediate use in developing and bringing to market innovative and interoperable solutions. There is no upfront cost to enroll.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Support. Get connected to Network Partners around the world — incubators, investors, advisors, government agencies and hosters — that are equally involved and vested in software-fueled innovation and entrepreneurship who will provide a wide range of support resources.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Visibility. Achieve global visibility to an audience of potential investors, clients and partners&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;As a Microsoft BizSpark member, you’ll be tapping into a rich, vibrant ecosystem of peers, partners and support resources around the globe, helping you grow and succeed. Microsoft BizSpark is the quickest way to get your Startup fired up.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;There are a number of conditions of acceptance into the program; your business needs to be: &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;Developing software - &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Check&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;Privately held – &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Check&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;Less than 3 years old – &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Check&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;Making less than US $1 million annually – (regrettably) &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Check&lt;/span&gt;. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;You also have to have a company URL. I was a little worried about this because as yet, even though I have a number of domain names registered, I do not have a business website or even a landing page. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Up step &lt;a href="http://twitter.com/BobWalsh"&gt;Bob Walsh&lt;/a&gt; of &lt;a href="http://www.47hats.com/"&gt;47 Hats&lt;/a&gt;. On one of the recent &lt;a href="http://startuppodcast.wordpress.com/"&gt;Startup Success&lt;/a&gt; Podcasts, Bob suggested that anyone who was looking to get involved in the program and had any questions to simply drop him a line with a brief outline of your startup idea and he would help in the BizSpark sign up process. So, 20 minutes after I completed the email, in which I described my product and explained my concern regarding the lack of a company URL and sent it off to Bob, I got a very prompt reply. Bob is a man of his word.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Two really good things to come out of the correspondence with Bob are. He showed me how to create a very professional landing page using a service call ‘&lt;a href="http://www.launchsplash.com/home"&gt;Launch Splash&lt;/a&gt;’ until you have your own site up and running. He also thought that my idea was an ‘excellent focus for a Micro-ISV’. He could also see the same potential that I can for future projects based on this one idea. I can’t tell you how much confidence that gave me, as Bob as been very successful with his own Startups and I would say as seen thousands of startup ideas over the years. He has also written a number of books on the topics including ‘&lt;a href="http://www.amazon.com/Micro-ISV-Vision-Reality-Bob-Walsh/dp/1590596013"&gt;Micro-ISV from Vision to Reality&lt;/a&gt;’ and his latest offering ‘&lt;a href="http://www.amazon.com/Web-Startup-SuccessGuide/dp/1430219858/ref=ntt_at_ep_dpt_1"&gt;The Web Startup Success Guide&lt;/a&gt;’&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Two things that you should know about BizSpark; even though it is a Microsoft program you do not have to develop your software using the Microsoft development stack (but the free software may change your mind about that), it is open to anyone who meet the criteria. Also, the program is only open to new startup for 3 years at which time you are no longer part of the program and have to pay $100 exit fee. Hopefully by that stage, $100 will be less than a minute’s work for you. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;I just hope that my BizSpark membership will entitle me to discount Azure rate, now THAT would be cool.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-1241132603646732691?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/1241132603646732691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=1241132603646732691' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/1241132603646732691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/1241132603646732691'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/08/day-50-jordin-i-mean-bizspark.html' title='Day 50: Project Something Something Meets BizSpark'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-4230555824207131408</id><published>2009-07-22T12:25:00.008+10:00</published><updated>2009-07-27T08:07:00.441+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='start-up'/><category scheme='http://www.blogger.com/atom/ns#' term='azure'/><category scheme='http://www.blogger.com/atom/ns#' term='micro-isv'/><title type='text'>Day 35: My Shiny New Azure Account.</title><content type='html'>&lt;span class="Apple-style-span"  style=" font-weight: bold; white-space: pre-wrap; font-family:arial;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;D&lt;/span&gt;uring the week I signed up to join the Microsoft Windows Azure CTP &lt;span&gt;&lt;span&gt;(Community Technology Preview ). Just now, I received an Invitation Code from &lt;span&gt;&lt;span&gt;&lt;a href="http://www.microsoft.com/azure/default.mspx"&gt;&lt;/a&gt;&lt;span&gt;&lt;span&gt;Microsoft for a &lt;a href="http://www.microsoft.com/azure/default.mspx"&gt;Windows Azure&lt;/a&gt; account&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.microsoft.com/azure/default.mspx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;. I feel quite excited about it to be honest and can't wait to get started.. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;Apparently I have the following limits attached to the agreement:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;Total Compute Usage: 2000 VM hours&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;Cloud Storage Capacity: 50GB&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;Total Storage Bandwidth: 20GB/day&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;I was also informed that Microsoft reserve the right to suspend my account activity if I exceed these limits.. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span&gt;&lt;span&gt;I can live with that.. Now onwards and upwards to the cloud....&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-4230555824207131408?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/4230555824207131408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=4230555824207131408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/4230555824207131408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/4230555824207131408'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/07/day-35-my-shiny-new-azure-account.html' title='Day 35: My Shiny New Azure Account.'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-8391069832972255936</id><published>2009-07-20T11:30:00.024+10:00</published><updated>2009-08-12T08:57:28.372+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='start-up'/><category scheme='http://www.blogger.com/atom/ns#' term='micro-isv'/><category scheme='http://www.blogger.com/atom/ns#' term='seth godin'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Day 33: I Have A Dream....</title><content type='html'>&lt;span class="Apple-style-span"  style=" font-weight: bold; white-space: pre-wrap; font-family:arial;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;T&lt;/span&gt;he approach that I want to take in designing my software is to simply come at it with the end-user clearly at the forefront of my thoughts at all times. The users needs must be in my mind with every design decision that I make. My whole philosophy on software design is that it should be clean and simple, especially at the UI level. Applications that do ‘too much’ may look great and wow people at the start but it can lead to a complexity that can get old very quickly. This complexity can ultimately lead to unmaintainable software. Unmaintainable software is something that I can not have in my design as I plan to have continuous updates and releases to add value for my clients. In my experience users of any software application repeat the same tasks over and over and these basic tasks should be clean, crisp easy to use and above all solid and reliable. You can add the bells and whistles at a later date when your application is rock solid and you have delivered to your clients exactly what it is that they use and need. In a sentence, &lt;a href="http://sethgodin.typepad.com/seths_blog/2009/01/love-and-annoyi.html"&gt;‘Everything we do needs to make our &lt;/a&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;a href="http://sethgodin.typepad.com/seths_blog/2009/01/love-and-annoyi.html"&gt;product less annoying.’&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Seth Godin said...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;I hope that my software will be used on a daily basis and for this to become a reality; I have to have it become an essential and intuitive application for the user. My hope is that it is a piece of software that they could (no doubt) survive without but nonetheless software which makes their live so much simpler that, they wouldn’t want to. To paraphrase the &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;marketing guru &lt;a href="http://sethgodin.typepad.com/"&gt;Seth Godin&lt;/a&gt; , ‘what we are selling is ‘Hope’. If people invest in using our software it will give them hope of a better business. The magical thing about selling hope is that it makes everything else work better, every day get better, every project work better.’&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;Read the actual article here &lt;a href="http://sethgodin.typepad.com/seths_blog/2009/01/what-marketers.html"&gt;What Marketers Actually Sell&lt;/a&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Putting Myself In Your Shoes... Phew!!!!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;The way that I plan to achieve my simple design is:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;To think hard about the people who will use my software and put myself in their shoes when I am designing the front-end. I need to stop thinking like a developer and start thinking about it like a user. I will think about each task and try to make the completion of that task a simple and enjoyable experience for the user, be it a 22 year old computer graduate or a 65 year old grandparent. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:18px;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:16px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;Years ago while I was taking a driving lesson my instructor told me that you should always drive like you have your mother in the front seat (unless your mother is Sarah Connor from Terminator) . Personally I think that designing a public facing user interface should be handled in much the same way. Think about what issues your mother or grandmother would have if they had to use your application and solve it from their point of view. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Worried that simply user interfaces won’t show off your talents or hook potential users? Well, tell that to Twitter who basically have one text field and an update button. Anyhow, when was the last time you heard of someone not using say, a website because it was two easy to use? &lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-8391069832972255936?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/8391069832972255936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=8391069832972255936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/8391069832972255936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/8391069832972255936'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/07/day-33-i-have-dream.html' title='Day 33: I Have A Dream....'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-5846911506711722143</id><published>2009-07-15T15:58:00.014+10:00</published><updated>2009-07-21T08:27:51.855+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='start-up'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='azure'/><category scheme='http://www.blogger.com/atom/ns#' term='micro-isv'/><title type='text'>Day 28: Dizzy My Head is Spinning!</title><content type='html'>&lt;span class="Apple-style-span"  style=" font-weight: bold; white-space: pre-wrap; font-family:arial;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;T&lt;/span&gt;here are a number of questions that I have that just keep going around and around in my head so, I have decided that I will write them down, post them on my blog and hopefully over the next few weeks solve each one of them. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;Some of these are business process problems and some are application design issues. I have just lumped them all in together and put then here in no particular order.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;I plan to provided my software using a &lt;a href="http://en.wikipedia.org/wiki/SaaS"&gt;SaaS&lt;/a&gt; deployment model. I simply don't have (or need) the resources or infrastructure to host the applications for potential clients. I don’t think that it is practical (or advisable based on previous experience) to use a traditional hosting setup so I am looking to the &lt;a href="http://en.wikipedia.org/wiki/Cloud_computing"&gt;‘cloud’&lt;/a&gt; to host my applications and services. As yet, I have no idea how to code against the cloud or how much it could potentially cost. I need to decided if I should use Amazon Elastic Cloud &lt;a href="http://aws.amazon.com/ec2/"&gt;EC2&lt;/a&gt;  or Microsoft’s &lt;a href="http://www.microsoft.com/azure/default.mspx"&gt;Azure&lt;/a&gt; (apparently Azure is the colour of the sky on a bright clear day). There may even be other providers that I have, as yet not even considered. I think I heard that you need to write Proprietary Code to use EC2 which would tie me into using it the future. This would be a huge negative. Something that I have heard is, because it is such a new ‘technology’ that you really can not afford to get tied to one provider as they may just pull the plug on it. So, as much as you need an entrance strategy to get onto (into?) the cloud, you equally need a very good exit strategy&lt;/li&gt;&lt;li&gt;It may be a bit down the line but I now need to consider as I move forward with my application design and development, which architecture I will use to to architect my services? Should I use a &lt;a href="http://continuations.com/post/126415628/multi-tenant-vs-multi-instance-cloud-architecture"&gt;Mutitenancy or Multi-Instance architecture&lt;/a&gt;? If I use Multi-Instance (which I have read is the best way for security and performance) is it as simple as just setting up a virtual directory for each client? Does the cloud even use the concept of &lt;a href="http://en.wikipedia.org/wiki/Internet_Information_Services"&gt;IIS&lt;/a&gt; and virtual directories? How difficult is it then to manage multiple application instances?&lt;/li&gt;&lt;li&gt;For argument sake, let’s assume that I go down the multi-instance road and that when a new client signs up to use the services, I simply configure a new virtual directory in IIS for that client and copy all the latest code into the folder and away they go. Now I am left with the question of, how do I manage software updates and bug fixes? Again I ask, how do I manage multiple application instances? Is it necassary to take the applications offline and write a script to update all the folders at once? If so, what are the implications of this downtime to my clients?&lt;/li&gt;&lt;li&gt;Equally, if each client has their own database schema, what is the best way to manage code updates or table/field structures changes across all schemas? How do I create daily backups to ensure that my client’s data is backed up and safe?&lt;/li&gt;&lt;li&gt;Do I need to build my admin application to manage and track to best serve my clients?&lt;/li&gt;&lt;li&gt;There will be two distinct but explicitly linked parts to the application that I will offer. I am still not sure of this means that I need to develop 2 separate applications that share the same data or create one application and base its behaviour on the status of the currently logged in user. For example, if a user logs in as the owner of the site, will they just see additional views/fields and have additional functionality? I am not sure if this would lead to an overly complicated design and compromise the security of the site? &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;I have to say just writing these questions out like this is a great exercise in getting your thoughts clear. Suddenly each of the issues have a bit of structure to them and don’t seem half as daunting as they did 45 minutes ago. Excellent!&lt;/div&gt;&lt;div&gt;I hope to constantly update this list with issues as they arise, solutions as I discover them and decisions as I make them.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-5846911506711722143?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/5846911506711722143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=5846911506711722143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/5846911506711722143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/5846911506711722143'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/07/day-28-dizzy-my-head-is-spinning.html' title='Day 28: Dizzy My Head is Spinning!'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-2139240436800531523</id><published>2009-07-13T17:18:00.019+10:00</published><updated>2009-07-21T08:27:06.163+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='start-up'/><category scheme='http://www.blogger.com/atom/ns#' term='micro-isv'/><title type='text'>Day 26: The More I Learn... The Less I Know.</title><content type='html'>&lt;span class="Apple-style-span" style=" white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;b&gt;Dot .Net Dilemmas&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;A&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; few things that I have learnt since I started this project and of which I am sure will come as no surprise to anyone are;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;It really is very difficult to have a fairly stressful full-time job and start a one man project/business (hence the reason that it has taken me so long to update this blog). &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;Don’t believe all those books and websites that tell you that getting a product to market on the web is simple…. It’s simply not. In fact, this leads me to one other thing that I have found out and that is….  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;b&gt;THE MORE I LEARN, THE LESS I KNOW! &lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;I now have a pile of books almost as tall as I am that I either need to, or would like to read but being totally honest, I could spend the next 2 years reading books and still not feel like I am ready to start. That is why I have now got to change the habit of a lifetime and stop procrastinating. I need to actually start producing something and just get it done, get it out there and get some early feedback from the people who may actually want to use it.  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;In fairness, all the reading and “thinking” has not gone to waste. I do feel that I have the right idea for a product and have identified my potential market. I also think that I have managed to come up with the right pricing structure to get  potential clients interested. It’s going to be free. Yes FREE! However, I will explain how I am going to do that at a later date…   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Another decision that I have made is, whether this micros-ISV is a success or not, the very least, I want come away from all is having learnt a lot of lessons that I can use in future projects (or if it comes to it, in my next employment.) In my opinion, ‘learning’ is never a waste to time. But just in case I am wrong and learning is in fact a waste of time, I have decided to pick technologies that I have an interested in. So, my application will be developed using the following technologies;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt;: – Web Framework.  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;a href="http://ninject.org/"&gt;Ninject&lt;/a&gt;: – &lt;a href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;Dependency Injection &lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;a href="https://www.hibernate.org/343.html"&gt;NHibernate&lt;/a&gt;: &lt;a href="http://en.wikipedia.org/wiki/Object-relational_mapping"&gt;Object-Relational Mapping &lt;/a&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;a href="http://fluentnhibernate.org/"&gt;Fluent NHibernate&lt;/a&gt;:  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;a href="http://en.wikipedia.org/wiki/HTML"&gt;HTML&lt;/a&gt;:  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets"&gt;CSS&lt;/a&gt;:   &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Ajax_(programming)"&gt;Ajax&lt;/a&gt;:  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;a href="http://jquery.com/"&gt;JQuery&lt;/a&gt;: &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;a href="http://www.codeplex.com/AutoMapper"&gt;AutoMapper&lt;/a&gt;: – Object/Object Mapping &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;: – Open Source Control  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-family:arial;"&gt;&lt;a href="http://www.nunit.org/index.php"&gt;NUnit&lt;/a&gt;:- Unit Testing    &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;That should keep me pretty busy for a while. You may notice that I haven’t mentioned which database I will use. I plan to make this decision much further down the line when I need to. I am hoping that by implementing NHibernate, not only will it relieve me of the task of writing the mundane &lt;a href="http://en.wikipedia.org/wiki/Create,_read,_update_and_delete"&gt;CRUD&lt;/a&gt; code; I will also me to switch between databases via the application config file but as yet, this is something that I need to look into.. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:-webkit-monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap; font-size:13px;"&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-2139240436800531523?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/2139240436800531523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=2139240436800531523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/2139240436800531523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/2139240436800531523'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/07/day-26-more-i-learn-less-i-know.html' title='Day 26: The More I Learn... The Less I Know.'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-4716801349668080391</id><published>2009-06-23T17:18:00.007+10:00</published><updated>2009-07-28T08:52:28.682+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='start-up'/><category scheme='http://www.blogger.com/atom/ns#' term='micro-isv'/><title type='text'>Day 6: The Day I Met Martin Fowler.</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;I&lt;/span&gt; was pretty good with my reading over the weekend and managed to get through the first 4 chapters of &lt;a href="http://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202"&gt;Applying Domain-Driven Design and Patterns &lt;/a&gt;&lt;br /&gt;Over the next day or two I will update this blog with the notes that I have made from each chapter. I am not sure how much use these will be to others but as much as anything else I want this to be an area where I can look back and see when and why I made certain decisions along the way.&lt;br /&gt;&lt;br /&gt;This is just a quick update but as a start-up, I feel that these are two sites and services that I will use over the coming months.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Useful Websites:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://99designs.com/"&gt;99Designs.Com&lt;/a&gt;: &lt;span style="font-style:italic;"&gt; “Need a logo or a new webpage template designed? 99designs connects business owners with a thriving community of designers, who will compete to create the perfect graphic for you.” &lt;span class="Apple-style-span" style="font-style: normal; "&gt;You basically start a competition with a small financial reward, where you describe your business idea to a community of graphics designers. You then, hopefully, receive dozens of designs from numerous designers and you choose one to be the winner.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.usertesting.com/"&gt;UserTesting.Com&lt;/a&gt;: Low Cost Usability Testing. You get a video of a user speaking their thoughts on your site as they use it. You also get a written report describing the problems that they found while following your test requirements. Imagine how much more confident you will be on the day you go live, knowing that your design ‘works’ and has past all the Usability tests you set.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Useful Podcast:&lt;/span&gt;&lt;br /&gt;Two (of many) Podcast that I have been listening to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://startuppodcast.wordpress.com/" style="text-decoration: none;"&gt;The Startup Success Podcast&lt;/a&gt; with &lt;a href="http://twitter.com/BobWalsh"&gt;Bob Walsh&lt;/a&gt; (author of &lt;a href="http://www.amazon.com/Micro-ISV-Vision-Reality-Bob-Walsh/dp/1590596013"&gt;Micro-ISV&lt;/a&gt;) and &lt;a href="http://twitter.com/patrickfoley"&gt;Patrick Foley&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.venturevoice.com/"&gt;Venture Voice&lt;/a&gt;: I particularly liked show #56 with Joel Spolsky of &lt;a href="http://www.fogcreek.com/"&gt;Fog Creek software&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Finally, I purchased a new book today which I believe could be the bible of Web Usability and a MUST for anyone who plans to have a public facing web site or web based product&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1245741389&amp;amp;sr=1-1"&gt;Don't Make Me Think&lt;/a&gt; by Steve Krug&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-4716801349668080391?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/4716801349668080391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=4716801349668080391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/4716801349668080391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/4716801349668080391'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/06/day-6-day-i-met-martin-fowler.html' title='Day 6: The Day I Met Martin Fowler.'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-1939827117606048026</id><published>2009-06-19T15:58:00.004+10:00</published><updated>2009-06-19T17:09:57.303+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='start-up'/><category scheme='http://www.blogger.com/atom/ns#' term='micro-isv'/><title type='text'>Day 2: Getting Started on the ‘Elevator Pitch’</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;L&lt;/span&gt;ast night I was reading up on how to create a good &lt;a href="http://www.businessweek.com/print/careers/content/jun2007/ca20070618_134959.htm"&gt;‘Elevator Pitch’&lt;/a&gt;. I have to say that I'm not even 100% sure that I need one at this stage. I’m not looking for investment or help from anyone who I would need to ‘sell’ the idea to. However, I do think that it will be a good exercise for me to complete as it will force me to answer some very &lt;a href="http://www.businessknowhow.com/money/elevator.htm"&gt;important questions&lt;/a&gt; about what the business should be. It may even have the effect of making me face up to the fact that my idea just won’t sell. I hope not or this could be the shortest-lived Micro-ISV of all time…&lt;br /&gt;&lt;br /&gt;I have however, come to the conclusion that I would really like/need to get some help with the ‘Who is your Competition’ question. I know that I could go to Google of Bing and start searching on the web for all the companies and Micro-ISV that will be my competitors and that I will need to keep an eye on. Right now however, I just don't have the business knowhow to assess the success of a business just by looking at their website. I know that perfect person to ask, now all I need to do is get her to say ‘yes’.&lt;br /&gt;&lt;br /&gt;I am going to be honest here, this is all very new to me and I am going to do all my learning and make all my mistakes in public so, if I am making stupid mistakes or asking stupid questions, please point them out and if you can, cut me a little slack to begin with.&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-1939827117606048026?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/1939827117606048026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=1939827117606048026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/1939827117606048026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/1939827117606048026'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/06/day-2-getting-started-on-elevator-pitch.html' title='Day 2: Getting Started on the ‘Elevator Pitch’'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-7939303134023996760</id><published>2009-06-18T14:00:00.012+10:00</published><updated>2009-07-24T12:29:22.397+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='start-up'/><category scheme='http://www.blogger.com/atom/ns#' term='micro-isv'/><title type='text'>Day 1: BPD Micro-ISV</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;F&lt;/span&gt;or a long time how I have been thinking about and working towards starting up my own online business which, I have found out is called a &lt;a href="http://en.wikipedia.org/wiki/Micro_ISV"&gt;‘Micro-ISV’&lt;/a&gt; . I don't think that I have a particularly brilliant business brain but, I look around and see that there are a lot of people who are just like me (and some that don't have the same skills that I have) running very successful software business. I think that there comes a time for most people when they would just like to work for themselves. Give it your best shot and see how it goes. &lt;div&gt;The great thing about having a full-time job is that, within reason, if the company has a bad month or you get sick, you still get paid the same as you did last month. On the negative side, when the company does really well and you’ve worked really, really hard, you STILL get paid the same as last month. I don't think that it takes a genius to figure out that, I will ever get ‘rich’ working for &lt;a href="http://www.amazon.com/Working-Man-Inspiring-Subversive-Residents/dp/0399533710"&gt;‘the man'&lt;/a&gt;…&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Micro-ISV&lt;/span&gt;&lt;br /&gt;I really don't like the term 'Micro-ISV' (&lt;a href="http://www.ericsink.com/bos/Micro_ISV.html"&gt;Eric Sink&lt;/a&gt; is to 'blame'; he used it in an article for Chris Sells at Microsoft) but it does explain exactly what the business will be, a small Independent Software Vendor. And in my case a REALLY small Independent Software Vendor. To start with, it will be just &lt;i&gt;me&lt;/i&gt;…. But that’s ok.&lt;br /&gt;&lt;br /&gt;I have a number of ideas and products that I want to try and bring to market and I have settled on one as my first small footsteps into the world of online business. I won't go into what exactly it is that I hope to develop but, I have noticed a gap in the market in an industry that I have some background in and, I reckon I could help fill that gap (or at least make it a smaller gap).&lt;br /&gt;&lt;br /&gt;Over the last few months I have been reading loads and loads of articles and listening to even more podcasts on how best to start an online business and what technologies I should use. However, except for that I honestly am at the very start of this journey and this is going to be my online journal of how I get on. The one thing that I keep hearing over and over is, 'Just get it out there', so that's what I plan to do. I hope to have version one of the product available in roughly 4 months. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;This is day 1 – “Blank Page Day”. Hopefully, someday not too far into the future, I will be writing a blogs on how I have just made my first sale, my first year in business, version 2 of my product and hopefully (someday) being able to give up working full-time so that I can concentrate on my own million dollar business.&lt;br /&gt;&lt;br /&gt;Although the aim of the business is (and should be) to make money (and lots of it), I hope that I learn a lot along the way. I plan to use a host of new ideas and technologies (new to me anyhow) and maybe some of the things that I learn and mistakes I make along the way will help others who are thinking along the same lines.  If nothing else it will be an experience and it should be an exciting one.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Books&lt;/span&gt;&lt;br /&gt;Ok, I am currently reading 3 books:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Micro-ISV-Vision-Reality-Bob-Walsh/dp/1590596013/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1245289691&amp;amp;sr=1-1"&gt;Micro-ISV: From Vision to Reality&lt;/a&gt; by Bob Walsh (forwarded by the legend who is &lt;a href="http://www.joelonsoftware.com/AboutMe.html"&gt;Joel Spolky&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Neuro-Web-Design-Voices-Matter/dp/0321603605/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1245289562&amp;amp;sr=1-1"&gt;Neuro Web Design: What Makes Them Click?&lt;/a&gt; by Susan M Weinschenk &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1245289728&amp;amp;sr=1-1"&gt;Applying Domain-Driven Design and Patterns: With Examples in C# and .NET&lt;/a&gt; by Jimmy Nilsson&lt;/li&gt;&lt;/ol&gt;So, my plan is, by the end of June 2009, I will read all of ‘Neuro Web Design’ which is a very short and easy to read book. I will move my &lt;a href="http://en.wikipedia.org/wiki/Elevator_pitch"&gt;‘Elevator Pitch’&lt;/a&gt;from my head onto paper and finally, I will be reading 1 chapter a day from Jimmy Nilsson’s book, so in 12 days, I will have the book finished and notes on each chapter on here.. All this, and working full-time, meaning that it will be in the evenings and the weekends..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Wish me luck… &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-7939303134023996760?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/7939303134023996760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=7939303134023996760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/7939303134023996760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/7939303134023996760'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/06/day-1-bpd-micro-isv.html' title='Day 1: BPD Micro-ISV'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-1678298349730042500</id><published>2009-04-29T12:22:00.016+10:00</published><updated>2009-07-24T12:20:40.923+10:00</updated><title type='text'>Visually Impaired? Here, let's try and make this a little more difficult for you.</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I get the need for &lt;a href="http://en.wikipedia.org/wiki/Captcha"&gt;CAPTCHA&lt;/a&gt; on a website but, I really don't like it as a solution to preventing automated site attacks. I see it as real barrier to purchasing online as more often than not, it takes a number of attempts to get the word(s) entered just how the software wants to see it. Unless I really want something, I hit the 'X' in the top left hand corner of the browser. Now I'm a web developer and I find it tricky and annoying so I can only imagine how frustrating it is to someone who is simply trying to purchases tickets online for the first time, to see Celine Dion live in concert.&lt;br /&gt;&lt;br /&gt;Now think about how much more difficult the whole process is if you are visually impaired. Recently I was trying to purchase tickets online (not to Celine Dion, I promise) when before the application would even let me know if there were any tickets still available I was hit with this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_U60Jo6Fq250/SffFLzZkQRI/AAAAAAAAADA/XnnXM1TnwiM/s1600-h/Screen+1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 175px;" src="http://1.bp.blogspot.com/_U60Jo6Fq250/SffFLzZkQRI/AAAAAAAAADA/XnnXM1TnwiM/s320/Screen+1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5329945490582946066" /&gt;&lt;/a&gt;&lt;br /&gt;I wasn't 100% sure what the words were (even after clicking 'Try another' a few times) so, I had a look around for some help. There right under 'Try another' is 'Vision Impaired' see it?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_U60Jo6Fq250/SffFTvT5wgI/AAAAAAAAADI/BTvRck4hV1k/s1600-h/Screen+2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 156px; height: 73px;" src="http://1.bp.blogspot.com/_U60Jo6Fq250/SffFTvT5wgI/AAAAAAAAADI/BTvRck4hV1k/s320/Screen+2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5329945626924401154" /&gt;&lt;/a&gt;&lt;br /&gt;Don't get me wrong, it is a good idea and anything that helps people with a disability access to the web is a good thing; but just look how small it is... If you are visually impaired and can not see or make out the words in the Security Check, how on earth are you meant to see the tiny 'Vision Impaired' text?&lt;br /&gt;&lt;br /&gt;Moving on, let's pretend that I am visually impaired and I have someone who is able to tell me what I should do next close by. I click on 'Vision Impaired' expecting to see the words displayed over the whole page in letter so big that you can make them out from space but no...&lt;br /&gt;What you get next is an even smaller screen, that plays an audio of some numbers (that you are meant to type in to the text box provided) over the tops of some ghost like moaning and whispering.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_U60Jo6Fq250/SffEfnWlOkI/AAAAAAAAAC4/ouOnYoxlsxQ/s1600-h/Screen+3.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 185px;" src="http://1.bp.blogspot.com/_U60Jo6Fq250/SffEfnWlOkI/AAAAAAAAAC4/ouOnYoxlsxQ/s320/Screen+3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5329944731434957378" /&gt;&lt;/a&gt;So, if you are visually impaired, you first have to be able to find the 'Vision Impaired' link. If you some how miraculously find it and click on it, you have to find the play button and then hope that your PC or laptop has a sound card. If it does, you had better hope that your hearing isn't also impaired (it would explain wanting to see Celine Dion in concert) and than you are able to make out the numbers from the ghostly bingo caller.&lt;br /&gt;&lt;br /&gt;As I said, I really don't like the CAPTCHA approach (I understand that it is easy to criticise and I haven't come up with anything better) but surely this is an idiotic solution to a very simple problem. If you are expecting people who are visually impaired to use your site, make it so easy for them. Just make the letters and words &lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;BIGGER&lt;/span&gt;...&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-1678298349730042500?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/1678298349730042500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=1678298349730042500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/1678298349730042500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/1678298349730042500'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/04/visually-impaired-here-lets-try-and.html' title='Visually Impaired? Here, let&apos;s try and make this a little more difficult for you.'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_U60Jo6Fq250/SffFLzZkQRI/AAAAAAAAADA/XnnXM1TnwiM/s72-c/Screen+1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-3934762007826024715</id><published>2009-04-27T14:27:00.012+10:00</published><updated>2009-07-24T12:20:11.052+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='office birthday'/><title type='text'>It's my party and I'll... keep listening to my iPod if I want to.</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Why do offices (usually HR) insist on having employee birthday celebrations? Ok, I'll admit, I am a bit of a strange one when it comes to forced celebrations  (hey, it's your birthday, you HAVE to be happy today... Did you hear me? BE  HAPPY!!!!!). However, I can think of few things worse than looking up from my  work and having to take my headphones off as the whole office stand around my  desk, arms folded with a look on their face that falls somewhere between boredom  and pure pain just to wish me a happy birthday.&lt;br /&gt;&lt;br /&gt;It's happened in almost every company I've worked in and there is just no need for it.  None!!!! It is pointless and simply a management exercise in touchy feely. The majority of people that I know hate it, really, really hate it. Granted, most people  I know in a work environment are programmers and they aren't too fond of any social  interaction. The worst thing about it all is that I have NO say whatsoever in it  happening. It's suppose to be MY birthday yet, I sit here all day feeling  slightly ill knowing that at any moment I am going to be surrounded by some people who  never really speak to me, but are now going to sing to  me...&lt;br /&gt;&lt;br /&gt;So, it's my  birthday today and I am sitting here writing this and waiting... Waiting  and trying to take my mind of what's to come. I now believe strongly that it's  not the getting older as to why most people hate their birthday it's waiting, like a  man on death row, for the forced office 'celebration' to begin.&lt;br /&gt;Time for my happy face... Tick, tick,  tick....&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-3934762007826024715?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/3934762007826024715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=3934762007826024715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/3934762007826024715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/3934762007826024715'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2009/04/its-my-party-and-ill-keep-listing-to-my.html' title='It&apos;s my party and I&apos;ll... keep listening to my iPod if I want to.'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-5476741486618670488</id><published>2008-11-14T09:10:00.052+11:00</published><updated>2008-11-18T12:44:32.361+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='POP SMTP C#'/><title type='text'>POP-Before-SMTP</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I recently had to move one of my web applications off one hosting provider (that changed their trust levels without informing anyone) and on to a new hosting provider where I could set the trust level in my web.config file. I wanted to keep the web and mail service on the old provider as transferring the domain to the new provider could have meant even more downtime for my client and she really couldn't afford that (who could at the moment?).&lt;br /&gt;&lt;br /&gt;Anyhow, all was ok until I was testing the application on the new server, went to purchases some sessions and BANG! Another issue raised its ugly head; &lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;"The server rejected one or more recipient addresses. The server response was: 450 : Recipient address rejected: Greylisted for 5 minutes"&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I contacted my old hosting provider and the response I got back was;&lt;br /&gt;"If a valid POP login is not received before sending mail through the server, then the mail is greylisted and held for 5 minutes before a retry"&lt;br /&gt;&lt;br /&gt;To the point but, it didn’t actually explain how I might do this. They actually suggested that;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;“The easiest way would be to click on "Send/Receive" in the email software before sending the email."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Even though they knew that the email was being created from within code.&lt;br /&gt;&lt;br /&gt;I posted a message on &lt;a href="http://www.stackoverflow.com/"&gt;Stackoverflow&lt;/a&gt;, and found out that I would basically have to write the code myself, as ‘POP3 is not built into the .NET framework’.&lt;br /&gt;&lt;br /&gt;Below is the code that I put in place. Basically, I do a POP-Before-SMTP. This logs me into the POP3 server, my credentials are authenticated and I can send the email that I need to send, immediately after the call. (I tried to put snapshots in here but the quality was awful.)&lt;br /&gt;&lt;br /&gt;Ultimately, I will move everything over the new hosting provider (and hopefully talk my client into moving to a dedicated server) but for now, this works perfectly well.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;System.Collections;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;System.IO;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;System.Net;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;System.Net.Sockets;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;System.Threading;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;System.Text;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;System.Text.RegularExpressions;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;System.Diagnostics;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;namespace &lt;/span&gt;Pop3&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;public class&lt;/span&gt; Pop3Client&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;private &lt;/span&gt;Pop3Credential m_credential;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;private &lt;/span&gt;const int m_pop3port = 110;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;private &lt;/span&gt;const int MAX_BUFFER_READ_SIZE = 256;&lt;br /&gt;  &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;private &lt;/span&gt;long m_inboxPosition = 0;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;private &lt;/span&gt;long m_directPosition = -1;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;private &lt;/span&gt;Socket m_socket = null;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;  &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;private &lt;/span&gt;Pop3Message m_pop3Message = null;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;public &lt;/span&gt;Pop3Credential UserDetails&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;set &lt;/span&gt;{ m_credential = &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;value&lt;/span&gt;; }&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;get &lt;/span&gt;{ &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;return &lt;/span&gt;m_credential; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;public string&lt;/span&gt; From&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;get &lt;/span&gt;{ &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;return &lt;/span&gt;m_pop3Message.From; }}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;public string&lt;/span&gt; To&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;get &lt;/span&gt;{ &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;return &lt;/span&gt;m_pop3Message.To; }}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;public string&lt;/span&gt; Subject&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;get &lt;/span&gt;{ &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;return &lt;/span&gt;m_pop3Message.Subject; }}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;public string&lt;/span&gt; Body&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;get &lt;/span&gt;{ &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;return &lt;/span&gt;m_pop3Message.Body; }}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;public &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;IEnumerator &lt;/span&gt;MultipartEnumerator&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;get &lt;/span&gt;{ &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;return &lt;/span&gt;m_pop3Message.MultipartEnumerator; }}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;public bool&lt;/span&gt; IsMultipart&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;get &lt;/span&gt;{ &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;return &lt;/span&gt;m_pop3Message.IsMultipart; }}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;public &lt;/span&gt;Pop3Client(&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;string &lt;/span&gt;user, &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;string &lt;/span&gt;pass, &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;string &lt;/span&gt;server)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{m_credential = new &lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Pop3Credential&lt;/span&gt;(user,pass,server);}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;private &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Socket &lt;/span&gt;GetClientSocket()&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Socket &lt;/span&gt;s = &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;   &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;IPHostEntry &lt;/span&gt;hostEntry = &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;    &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// Get host related information.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;hostEntry = &lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Dns&lt;/span&gt;.GetHostEntry(m_credential.Server);&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 255, 51);"&gt;  &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// Loop through the AddressList to obtain the supported&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;   &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// AddressFamily. This is to avoid an exception that&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;   &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// occurs when the host IP Address is not compatible&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;   &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// with the address family&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;   &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// (typical in the IPv6 case).&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;foreach&lt;/span&gt;(&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;IPAddress &lt;/span&gt;address &lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;in &lt;/span&gt;hostEntry.AddressList)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;IPEndPoint &lt;/span&gt;ipe = &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;new &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;IPEndPoint&lt;/span&gt;(address, m_pop3port);&lt;br /&gt;    &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;Socket &lt;/span&gt;tempSocket =&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;new &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Socket&lt;/span&gt;(ipe.AddressFamily,&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;SocketType&lt;/span&gt;.Stream, &lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;ProtocolType&lt;/span&gt;.Tcp);&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;tempSocket.Connect(ipe);&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;if&lt;/span&gt;(tempSocket.Connected)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// we have a connection.&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;      &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// return this socket ...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;s = tempSocket;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;continue&lt;/span&gt;;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;catch&lt;/span&gt;(&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Exception &lt;/span&gt;e)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;throw &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;new &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Pop3ConnectException&lt;/span&gt;(e.ToString());&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// throw exception if can't connect ...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;if&lt;/span&gt;(s == &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;throw new&lt;/span&gt; &lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Pop3ConnectException&lt;/span&gt;("&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;Error : connecting to&lt;/span&gt; "&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;            &lt;/span&gt;+m_credential.Server);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;br /&gt;      &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;return&lt;/span&gt; s;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;private string&lt;/span&gt; GetPop3String()&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;if&lt;/span&gt;(m_socket == &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;throw new&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Pop3MessageException&lt;/span&gt;("&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;Connection to POP3 server is closed&lt;/span&gt;");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;byte&lt;/span&gt;[] buffer = &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;new byte&lt;/span&gt;[MAX_BUFFER_READ_SIZE];&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;string &lt;/span&gt;line = &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;try&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;int &lt;/span&gt;byteCount =&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;m_socket.Receive(buffer,buffer.Length,0);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;line =&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Encoding&lt;/span&gt;.ASCII.GetString(buffer, 0, byteCount);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;catch&lt;/span&gt;(&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Exception &lt;/span&gt;e)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;throw new&lt;/span&gt; &lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Pop3ReceiveException&lt;/span&gt;(e.ToString());&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;return &lt;/span&gt;line;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;private void&lt;/span&gt; LoginToInbox()&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;string &lt;/span&gt;returned;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// send username ...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Send("&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;user &lt;/span&gt;"+m_credential.User);&lt;br /&gt;  &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// get response ...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;returned = GetPop3String();&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;if&lt;/span&gt;( !returned.Substring(0,3).Equals("&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;+OK&lt;/span&gt;") )&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;throw new&lt;/span&gt; &lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Pop3LoginException&lt;/span&gt;("login not excepted");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// send password ...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Send("&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;pass &lt;/span&gt;"+m_credential.Pass);&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// get response ...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;returned = GetPop3String();&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if( !returned.Substring(0,3).Equals("&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;+OK&lt;/span&gt;") )&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;throw new&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Pop3LoginException&lt;/span&gt;("&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;login/password not accepted&lt;/span&gt;");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;public void&lt;/span&gt; CloseConnection()&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{   &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Send("&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;quit&lt;/span&gt;");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;m_socket = null;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;m_pop3Message = null;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;public void&lt;/span&gt; OpenInbox()&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// get a socket ...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;m_socket = GetClientSocket();&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// get initial header from POP3 server ...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;string &lt;/span&gt;header = GetPop3String();&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;if&lt;/span&gt;( !header.Substring(0,3).Equals("&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;+OK&lt;/span&gt;") )&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;throw new&lt;/span&gt; &lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Exception&lt;/span&gt;("&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;Invalid initial POP3 response&lt;/span&gt;");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;br /&gt;  &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// send login details ...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;LoginToInbox();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;br /&gt;}&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Login to the POP server just before you try to send the email.. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;p = &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;new &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 204, 204);"&gt;Pop3Client&lt;/span&gt;("&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;user"&lt;/span&gt;,"&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;password&lt;/span&gt;","&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;server&lt;/span&gt;");&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;if&lt;/span&gt;(p != &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;p.OpenInbox();&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;// ...Send Email.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-5476741486618670488?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/5476741486618670488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=5476741486618670488' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/5476741486618670488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/5476741486618670488'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/11/pop-before-smtp.html' title='POP-Before-SMTP'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-6685360975478387896</id><published>2008-11-10T15:29:00.009+11:00</published><updated>2008-11-10T16:12:49.232+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DeployLX License'/><title type='text'>DeployLX - Software Protection System</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The company that I work for are looking into completely overhauling our Licensing and Software protection system for all our software products. We currently have 4-5 products that are sold over the web and installed on the clients' machine and each needs to be protected.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Our current 'in-house' system ties the license to a machine profile and this makes it difficult to manage the licenses. In the future, we need our license system to be a lot more flexible allowing for; extensions on trial versions of our software, subscriptions for both our single and floating licenses and ease of license transfer. &lt;br /&gt;&lt;br /&gt;I was given the task of investigating the various licensing system out there and come back with a recommendation. The basic brief was;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Single License: &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tied to a machine profile.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Must be easily deactivated from one machine and transferred to another.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight:bold;"&gt;Floating License: &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A company should be able to install our software on each PC/Laptops required, without having to go through a complicated registering/activation process. The Activation of the software licences should only happen on the server which controls the licences and use of software. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;The monitoring software should ensure that it can only be installed on one server even if that server is part of a server farm.&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Trial License&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The software can be evaluated for a predetermined amount of time. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;An extension may be give on the trial of the software by the use of an extension code&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Subscription License&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;On both the Single and Floating licenses.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;In the end, after looking at 8-10 products, I put my money (well, my company's money) on DeployLX and Codeveil from Xheo. It seemed to offer everything that we needed and compared to a lot of companies, it was pretty well priced.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Even though the support from Xheo was excellent (Gary would respond to my emails in a matter of hours and this while I was still only trialling the software). I found that the level of documentation, particularly with regards to 'How-To' style documentation to be lacking. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is little-or-no help of any kind on the web so I've decided to document, over the next few weeks, how to achieve the results that I need to achieve and hopefully they will be of help to others. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hopefully, it will also be a way of me getting out of doing too much internal documentation as I will just be able to point future employees who have to work with DeployLX to my blog.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-6685360975478387896?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/6685360975478387896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=6685360975478387896' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/6685360975478387896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/6685360975478387896'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/11/deploylx-software-protection-system.html' title='DeployLX - Software Protection System'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-3369177334126237110</id><published>2008-11-03T14:41:00.002+11:00</published><updated>2009-07-20T11:44:56.323+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web.config'/><category scheme='http://www.blogger.com/atom/ns#' term='CultureInfo'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Don't you just love when something is simple?</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Recently I had to change my hosting provider (more about that later) and one of the issues that it caused was with a web application that was created for an Irish business.&lt;br /&gt;&lt;br /&gt;The dates that were displayed and used in various searches needed to be in the format "dd/MM/yyyy" but because my new provider was based in the US, the hosting server reports in Pacific time. All of my code fell over and the searches produced the "String was not recognized as a valid DateTime." error.&lt;br /&gt;&lt;br /&gt;I honestly felt that I was going to have to change a lot of code and set the CultureInfo but then I posted the question on &lt;a href="http://wwwstackoverflow.com/"&gt;Stackoverflow&lt;/a&gt; and the answer was oh so simple.&lt;br /&gt;&lt;br /&gt;In your web.config file add the &lt;globalization&gt; element under the &lt;system.web&gt; node (if you don't already have one) and add the correct culture. In our case "en-gb".&lt;br /&gt;&lt;br /&gt;&amp;lt;system.web&amp;gt;&lt;br /&gt;     &amp;lt;globalization culture="en-gb"&amp;gt;&lt;br /&gt;     &amp;lt;!-- ... --&amp;gt;&lt;br /&gt;&amp;lt;/system.web&amp;gt;&lt;/system.web&gt;&lt;/globalization&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-3369177334126237110?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/3369177334126237110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=3369177334126237110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/3369177334126237110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/3369177334126237110'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/11/dont-you-just-love-when-something-is.html' title='Don&apos;t you just love when something is simple?'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-4451739273026260926</id><published>2008-09-22T17:24:00.007+10:00</published><updated>2008-09-22T17:55:57.537+10:00</updated><title type='text'>Port 443 - Configure your firewall</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;We were having some issues recently where a client could not register our software.&lt;br /&gt;We got an email from them asking if we "used any any ports other than Port 80 or 8080 during the registration process?"&lt;br /&gt;It turned out that they were behind a firewall where all ports were 'locked down' unless the firewall was specifically configured to allow them access. This meant that their firewall was blocking access to one of our web services but they weren't sure why. They had configured it to enable access to Port 80 and Port 8080 and assumed that this was all that they needed to do.   &lt;br /&gt;&lt;br /&gt;As part of our registration we use Port 443 for HTTPS calls (note the 'S' at the end.) Using a HTTPS URL indicated that HTTP is to be used but with a different default TCP Port - Port 443. Port 443 an additional encryption/authentication layer between the HTTP and TCP and is widely used for security-sensitive communication such as payment transactions and corporate information systems. Port 80 is typically used for unsecured HTTP calls. They configured their firewall to enable communication through Port 443 and so far so good, all registrations have gone through. &lt;br /&gt;&lt;br /&gt;You can check the Ports used by opening IIS and clicking on 'Web Sites'. The Ports will be displayed against your various web sites in the right hand pane.&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-4451739273026260926?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/4451739273026260926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=4451739273026260926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/4451739273026260926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/4451739273026260926'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/09/port-443-configure-your-firewall.html' title='Port 443 - Configure your firewall'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-5095985555512880409</id><published>2008-09-17T12:19:00.008+10:00</published><updated>2008-09-17T15:37:54.292+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>How do you show "&lt;" and "&gt;" on your blog page?</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;In yesterday's blog I was trying to show an entry in a web.config file and I couldn't get the "&lt;" to be displayed correctly so, my output was displayed as: &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;compilation defaultlanguage="c#" debug="false"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;when of course I wanted to display it as: &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;&amp;lt;compilation defaultlanguage="c#" debug="false"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Turns out to be very simple (once you know how)&lt;br /&gt;&amp;amp;lt; = &amp;lt;&lt;br /&gt;&amp;amp;gt; = &amp;gt;&lt;br /&gt;&lt;br /&gt;So &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;&amp;amp;lt;&lt;/span&gt;compilation defaultlanguage="c#" debug="false&lt;span style="font-weight:bold;"&gt;"&amp;amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Would display as&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&amp;lt;compilation defaultlanguage="c#" debug="false"&amp;gt;&lt;/span&gt;&lt;br /&gt;That's it. &lt;br /&gt;&lt;br /&gt;Another you might need to use is:&lt;br /&gt;&amp;amp;quot; = &amp;quot;&lt;br /&gt;&lt;br /&gt;And while I'm at it, if you want to actually display &amp;amp;lt; and not &amp;lt; etc. on your blog:&lt;br /&gt;Use &amp;amp;amp; before the &amp;amp;lt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-5095985555512880409?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/5095985555512880409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=5095985555512880409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/5095985555512880409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/5095985555512880409'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/09/how-do-we-show-on-your-blog-page.html' title='How do you show &quot;&lt;&quot; and &quot;&gt;&quot; on your blog page?'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-6419731981227288214</id><published>2008-09-16T18:09:00.010+10:00</published><updated>2009-06-18T14:19:24.767+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET HTTP ASP.NET Web Services'/><title type='text'>Making HTTP 'appear' more reliable.</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;I was listening to the .NET Rocks episode &lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=367"&gt;'Udi Dahan Scales Web Applications!'&lt;/a&gt; (date 12/08/2008) and about 1/3 of the way through it they discuss something that is, what I consider, very important and seldom discussed issue regarding making HTTP 'appear' more reliable and give our users a better and more confidence building experience while using our web sites or services.&lt;br /&gt;(Some of what is written below is from notes that I have taken while listening to the .NET episode so I am not claiming this to be an original idea.)&lt;br /&gt;&lt;br /&gt;Something that I have always struggled with is, what to do when I am on a web site purchasing something and I go to make a payment by clicking the ‘Submit’ button and hey-presto; nothing happens?&lt;br /&gt;I think that it has been drilled into us over the years NOT to hit that submit button again as it could mean multiple payments on our credit card. If you are like me, you simply click the little ‘X’ button at the top of the page or browser and keep an eye on your card transactions over the next month. So, how do we stop this happening when we are designing our own sites where we want to instill some customer confidence and not lose customer business?&lt;br /&gt;&lt;br /&gt;I came across what at the early stages sounds like a pretty good and clean solution to this problem but as yet, I have not tried to implement it.&lt;br /&gt;&lt;br /&gt;Basically HTTP is inherently unreliable and there is not much in the broader sense of the internet that we can do about this. However, there are a number of steps we can take to lessen the impact of this shortcoming.&lt;br /&gt;Basically we design a retry protocol in such a way that if we send a request from the browser to the server we don’t get a satisfactory response back from the server in a reasonable time (for any action on data where we need to ensure it remains consistent), we resend the request again.&lt;br /&gt;We would also need to ensure that server side code is designed in such away that, even is the request is sent any number of times, it is only processed once. One way we could do this is to tag a GUID (Globally Unique IDentifier ) onto the request. The same GUID would be also tagged onto the response and in this way, it wouldn’t matter if the first request got lost or the first response got lost we can be pretty sure that the data that was sent was received and processed. From the user’s perspective they don't see any of this as it is all under the hood. Until that point where we say ‘yeah, we got your data’, we can ensure that our service is fairly reliable on top of an fairly unreliable protocol (HTTP).&lt;br /&gt;&lt;br /&gt;As I’m sure you can see, this sounds a very promising solution to what is, from what I can see, a pretty universal problem for any web site that has to ensure data persistence. I am going to try and implement this on some of the web applications that I use to take customer payments over and I will update my blog on how I got on and problems that I had to overcome but for now, as I am off to Uluru for the weekend,  I’ll simply post this as a reminder.&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-6419731981227288214?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/6419731981227288214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=6419731981227288214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/6419731981227288214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/6419731981227288214'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/09/making-http-appear-more-reliable.html' title='Making HTTP &apos;appear&apos; more reliable.'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-8159860801233452469</id><published>2008-09-16T10:17:00.011+10:00</published><updated>2008-09-17T15:39:21.091+10:00</updated><title type='text'>Unable to start debugging... - Part 2.</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;Ok, I just got over the hump of trying to run a project developed in VS2003 with .NET 1.1 in VS2008 with .NET 2.0 or 3.0 when I get the 'Unable to start debugging on the web server' message AGAIN but with a different twist.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;"Unable to start debugging on the web server. The web server is not configured correctly. See help for common configuration errors. Running the web page outside of the debugger may provide further information."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One thing that you can check first is that you have debug enabled in your web.config file. I know that this sounds obvious but it has caught me and others out on more than one occasion. &lt;br /&gt;&lt;br /&gt;Step 1: Open the web.config&lt;br /&gt;Step 2: If debug is set to "false" change it to "true".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Example:&lt;/span&gt;&lt;br /&gt;In the web.config there will be a line similar:&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&amp;lt;compilation defaultlanguage="c#" debug="false"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Change this to:&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&amp;lt;compilation defaultlanguage="c#" debug="true"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;(Don't forget to set this back to 'false' before you promote the code to production)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If this doesn't work, as the message says, It usually means that the web server is not configured correctly but, have you ever looked at the list that Microsoft recommend that you check to try and get it working?&lt;br /&gt;I have spent hours and hours trying to implement all these 'checks' and it still didn't work. All I want to be able to do is debug the application so that I can finish me work. So, one of the great things about VS since 2005 is the ability to use the Visual Studio Development Server to run and debug your web based .NET work without the need for IIS.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The steps:&lt;/span&gt;&lt;br /&gt;1. Right click on your project in VS2005/2008.&lt;br /&gt;2. Click on Properties&lt;br /&gt;3. Click on Web tab&lt;br /&gt;4. Under Servers, click on the radio button Use Visual Studio Development Server&lt;br /&gt;5. Check Auto Assign Port radio button&lt;br /&gt;6. Uncheck NTLM Authentication and Enable Edit and Continue&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-8159860801233452469?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/8159860801233452469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=8159860801233452469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/8159860801233452469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/8159860801233452469'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/09/unable-to-start-debugging-part-2_16.html' title='Unable to start debugging... - Part 2.'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-3618042677575630772</id><published>2008-09-12T12:28:00.014+10:00</published><updated>2008-09-17T15:39:12.735+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIS .NET'/><title type='text'>Unable to Start Debugging on the Web Server.</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;"Unable to start debugging on the web server. Debugging failed because integrated Windows authentication is not enabled."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Two possible solutions that have worked for me in the past:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Solution 1:&lt;/span&gt;&lt;br /&gt;Start --&gt; Control Panel --&gt; Programs And Features --&gt; Turn Windows features on or off&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_U60Jo6Fq250/SMnWrDsKq7I/AAAAAAAAAAQ/tlE6wHKAue8/s1600-h/Tasks2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_U60Jo6Fq250/SMnWrDsKq7I/AAAAAAAAAAQ/tlE6wHKAue8/s320/Tasks2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5244959276262927282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Select &lt;/span&gt;&lt;br /&gt;Internet Information Server --&gt; World Wide Web Services --&gt; Security&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Check &lt;/span&gt;&lt;br /&gt;Windows Authentication&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_U60Jo6Fq250/SMnaInTttUI/AAAAAAAAAAw/5FWdnK0iVpA/s1600-h/Features.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_U60Jo6Fq250/SMnaInTttUI/AAAAAAAAAAw/5FWdnK0iVpA/s320/Features.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5244963082575131970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Be warned, this can take a LONG time to complete and you may think your PC has hung but stay with it. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Solution 2:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Open IIS 7. Click "Default web sites"&lt;br /&gt;2. Under 'IIS' Click  "Authentication"&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_U60Jo6Fq250/SMnZ3s6BmAI/AAAAAAAAAAo/mF9d5Fh_B0k/s1600-h/IIS.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_U60Jo6Fq250/SMnZ3s6BmAI/AAAAAAAAAAo/mF9d5Fh_B0k/s320/IIS.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5244962792020219906" /&gt;&lt;/a&gt;&lt;br /&gt;3. Ensure that “Anonymous Authentication” and “Windows Authentication” are 'Enabled'.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_U60Jo6Fq250/SMnazzne7MI/AAAAAAAAABA/FM_JjsvsHBI/s1600-h/Authentication.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_U60Jo6Fq250/SMnazzne7MI/AAAAAAAAABA/FM_JjsvsHBI/s320/Authentication.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5244963824613649602" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-3618042677575630772?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/3618042677575630772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=3618042677575630772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/3618042677575630772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/3618042677575630772'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/09/unable-to-start-debugging-on-web-server.html' title='Unable to Start Debugging on the Web Server.'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_U60Jo6Fq250/SMnWrDsKq7I/AAAAAAAAAAQ/tlE6wHKAue8/s72-c/Tasks2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-8553545109023399787</id><published>2008-09-05T12:28:00.005+10:00</published><updated>2008-09-17T15:39:03.061+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET .NET Web Error'/><title type='text'>ASP.NET "Could not load file or assembly App_Web..." Error</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas.&lt;/span&gt;&lt;br /&gt;God, I spent a lot of time over the last few months looking for a proper solution for this one and at the end of the day, the best solution I found was to delete all temporary ASP.NET files, by removing the folders under&lt;br /&gt;&lt;br /&gt;&lt;i&gt;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I closed down all instances of VS before doing this just to ensure that all the files were released so that they could be deleted.&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-8553545109023399787?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/8553545109023399787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=8553545109023399787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/8553545109023399787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/8553545109023399787'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/09/aspnet-could-not-load-file-or-assembly_05.html' title='ASP.NET &quot;Could not load file or assembly App_Web...&quot; Error'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-1729457146902994592</id><published>2008-08-29T16:34:00.005+10:00</published><updated>2008-11-03T16:49:15.857+11:00</updated><title type='text'>Test a Web Service operation using the HTTP POST protocol</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;It's on a million other forums and blogs but it's one that I found very useful and has I have said, the main reason for this blog is to keep all the tips and pieces of code that I use over and over in once place (and at the same time, maybe help one or two others that have the same issues).&lt;br /&gt;&lt;br /&gt;If you need to test a Web Service that is not staged locally, you need to enable remote testing. To do this, add &amp;lt;add name="HttpPost"/&amp;gt; under &amp;lt;system.web&amp;gt; in the web.config of the web service. &lt;br /&gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;system.web&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;webServices&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;protocols&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;add name="HttpGet"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;add name="HttpPost"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/protocols&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/webServices&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/system.web&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;br /&gt;Now you can call the web service from a different machine and get the test form.&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-1729457146902994592?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/1729457146902994592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=1729457146902994592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/1729457146902994592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/1729457146902994592'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/08/test-web-service-operation-using-http.html' title='Test a Web Service operation using the HTTP POST protocol'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-3838057976751918446</id><published>2008-08-25T11:50:00.010+10:00</published><updated>2008-09-17T15:38:52.053+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dot Net Dilemmas .NET Rocks Podcasts'/><title type='text'>.NET Rocks.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;It's an awful name for a web site and there is nothing that I hate more than people trying to make coding and IT sound "cool" and trendy (it's simply not) but I have to recommend the excellent Podcasts at &lt;a href="http://www.dotnetrocks.com/"&gt;.NetRocks.Com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I heard about this website a few years ago when I first started to subscribe to Code magazine but at the time I wasn't really one for downloading and listening to Podcasts. However, now that I am that much older, listening to Podcasts has kinda become what I do on my bus or ferry journey into and out of the CBD in Sydney. I just put them on and to be honest, without even really tuning in to what is being said, I have taken information in by osmosis.&lt;br /&gt;Since I started in my new job, one of the issues that we have had and I have had to deal with is response times and scalability. I just assumed that the site and web services would have taken advantage of page and object caching to ensure that a new call was not needed to an external database on every call to the web server. Having listened to the Podcast 'Udi Dahan Scales Web Applications!' (dated 12/08/2008) where Udi gave some excellent ideas on web scalability, I decided to look into our code a bit more to see what was going on.&lt;br /&gt;&lt;br /&gt;To cut a long story short there were a million and one places both at page and at class level where the code was crying out for caching. &lt;span style="font-style:italic;"&gt;(this is something that you need to be VERY careful about. Even though you may think that caching every page and every object is a good idea, a lot of thought needs to go into your design to ensure that you get the benefits of caching. Look at every page and object and ask yourself, how up to date does this information need to be and what benefit will my applications get from holding this information in memory on the server)&lt;/span&gt; For instance, every time there was some need to populate a currency drop down a new call was made to the database.&lt;br /&gt;So, to start with, I simply found everywhere there was a "...GetAll()") for methods like currency, postcodes, countries etc and implemented caching. Already we can see a positive outcome in response rates. It's simply a no brainer.&lt;br /&gt;&lt;br /&gt;I think that there is a new .NET Rock show ever week and I doubt that it's something that you'll want to discuss with your girlfriend or mates but it will make you sound more knowledgeable in meeting or interviews.&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-3838057976751918446?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/3838057976751918446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=3838057976751918446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/3838057976751918446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/3838057976751918446'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/08/net-rocks.html' title='.NET Rocks.'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5630186968428370875.post-4927717151696237635</id><published>2008-08-22T09:46:00.005+10:00</published><updated>2009-07-22T08:18:48.319+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sydney .NET Dot Net Dilemmas'/><title type='text'>Day 1: My Reason for a Blog.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Dot .Net Dilemmas&lt;/span&gt;&lt;br /&gt;Not too sure if this is the best place for keeping all this type of stuff but, recently I moved from Dublin to Sydney for a very good reason and stated a job in a new company on George Street in the CBD. It's winter in Sydney at the moment and a lot colder than I ever thought it would be in Australia but, I have to say that the Sydney winter is pretty much like the Dublin summer so I feel right at home and am loving it.&lt;br /&gt;&lt;br /&gt;I have taken over the development, upgrade and maintenance of the company website which sells an excellent product and training online.&lt;br /&gt;So far so good. Good company to work for but in the course of getting everything set up on my new laptop for development and testing, I have had to solve some problems that I have had to solve many times before but of course, when I go to fix them this time, I forgot what I did the last time and have to start searching for the answers all over again. So, this blog is more for me in a attempt to keep all my bits of information, website and solutions for fixing those .NET, C#, IIS and ASP.NET issues that come up again and again. Hopefully others will find it a help too? Not sure if it will be a daily blog, but I will try to add to it whenever I find or fix something interesting.&lt;br /&gt;&lt;br /&gt;Anyhow, to start it off, here are a list of the .NET/Computer Architecture books that I am currently trying to get through.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.amazon.com/Expert-2005-Business-Objects-Second/dp/1590596323"&gt;Expert C# 2005 Business Objects&lt;/a&gt;&lt;/span&gt;&lt;a href="http://www.amazon.com/Expert-2005-Business-Objects-Second/dp/1590596323"&gt; &lt;/a&gt;- Rockford Lhotka - Apress&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.amazon.com/3-0-Design-Patterns-Judith-Bishop/dp/059652773X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1248214680&amp;amp;sr=1-1"&gt;C# 3.0 Design Patterns&lt;/a&gt;&lt;/span&gt; - Judith Bishop - O'Reilly&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Addison-Wesley/dp/0321200683/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1248214703&amp;amp;sr=1-1"&gt;Enterprise Integration Patterns (Designing, Building and Deploying Messaging Solutions&lt;/a&gt;&lt;/span&gt; - Gregor Hohpe, Bobby Woolf - Addison Wesley&lt;/li&gt;&lt;/ul&gt;I'm always on the look out for books that people recommend and I am especially looking for a good book on Silverlight 2.0 for a complete beginner, so if you know of any I would be more than grateful for any suggestions.&lt;div class="blogger-post-footer"&gt;Bohemian Football Club. The Pride of Dublin.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5630186968428370875-4927717151696237635?l=dotnetdilemmas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdilemmas.blogspot.com/feeds/4927717151696237635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5630186968428370875&amp;postID=4927717151696237635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/4927717151696237635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5630186968428370875/posts/default/4927717151696237635'/><link rel='alternate' type='text/html' href='http://dotnetdilemmas.blogspot.com/2008/08/day-1-my-reason-for-blog.html' title='Day 1: My Reason for a Blog.'/><author><name>Skittles.CBDotNet</name><uri>http://www.blogger.com/profile/08410447342561611550</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
