<?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-3384101258168125324</id><updated>2012-02-01T02:35:17.174-08:00</updated><category term='SOLID'/><category term='Mutex'/><category term='DTD'/><category term='Asynchronous WCF'/><category term='Performance'/><category term='Outlook'/><category term='oslo'/><category term='gemini'/><category term='Diagnostics'/><category term='events'/><category term='Windows'/><category term='Object Mapping'/><category term='MEP'/><category term='Icomparer'/><category term='Trace'/><category term='Assembly Signing'/><category term='XamlPadX'/><category term='NLog'/><category term='Assertive'/><category term='threading'/><category term='ASP.NET'/><category term='Job'/><category term='ASP.NET MVC and NHibernate'/><category term='POX'/><category term='TDD'/><category term='NUnit Test Generators'/><category term='ORM'/><category term='contextuality'/><category term='Unity'/><category term='Region'/><category term='Content Management Systems'/><category term='Domain Specific Language'/><category term='.NET Remoting'/><category term='Wireframe'/><category term='SSIS'/><category term='Video'/><category term='WinForms'/><category term='Sniffer'/><category term='CodeSnippets'/><category term='resharper'/><category term='Sticky Notes'/><category term='NUnit'/><category term='FreeMind'/><category term='WaitHandle'/><category term='VS 2008'/><category term='Refactoring to Patterns'/><category term='IE Developer'/><category term='Quotes'/><category term='Modelling'/><category term='PDC 2008'/><category term='Method Injection'/><category term='CSS'/><category term='Microsoft Enterprise Library'/><category term='PDF'/><category term='Wireshark'/><category term='dbgview.exe'/><category term='Visio'/><category term='Logging'/><category term='JDiskReport'/><category term='MMS'/><category term='RhinoMocks'/><category term='F#'/><category term='MSBuild'/><category term='IIS'/><category term='Refactoring Databases'/><category term='Microsoft Windows 7'/><category term='Activex'/><category term='Xml Editor'/><category term='INSERT INTO'/><category term='Development Icons'/><category term='PageFunction'/><category term='Batch Files'/><category term='Windows Installer'/><category term='ReplaceAll'/><category term='BackgroundWorker; Multithreading; WPF'/><category term='Expression Trees'/><category term='CruiseControl'/><category term='DOS Commands'/><category term='Icomparable'/><category term='T-SQL'/><category term='Ocs'/><category term='Web Service Software Factory'/><category term='.bat'/><category term='extjs'/><category term='StyleCop'/><category term='Entity Framework'/><category term='.NET'/><category term='Excel'/><category term='AOP'/><category term='Duplex'/><category term='Next Learning Path'/><category term='Email'/><category term='Source Control'/><category term='Contravariance'/><category term='Selenium'/><category term='Martin Fowler'/><category term='professionalism'/><category term='Moq'/><category term='Brainstorm'/><category term='Encryption'/><category term='Aspect Oriented Programming'/><category term='Business Intelligence'/><category term='Unit Testing JavaScript'/><category term='new features'/><category term='IT JOBS WATCH'/><category term='Microsoft Expression Studio'/><category term='Project Management Tools'/><category term='UniqueID'/><category term='TFSWA'/><category term='BDD'/><category term='WiX'/><category term='IRC'/><category term='Proof Of Concept'/><category term='Phone Number Format'/><category term='Url Rewrite'/><category term='SSL'/><category term='DDD'/><category term='WCF Serializers'/><category term='NAnt'/><category term='JSON'/><category term='Queued'/><category term='Pair Programming'/><category term='Text Encryption'/><category term='DAL'/><category term='Transaction'/><category term='Cloud'/><category term='Application Scalability'/><category term='CAO'/><category term='model driven platform'/><category term='WSDualHttpBinding'/><category term='DocType'/><category term='Continuous Integration'/><category term='Wi-Fi'/><category term='SQL Server 2008'/><category term='Uninstaller'/><category term='Cloud Computing'/><category term='QUnit'/><category term='SharePoint'/><category term='Jobs'/><category term='Disk Drive'/><category term='Singleton SAO'/><category term='NGEN'/><category term='Hierarchy'/><category term='VPC'/><category term='jquery'/><category term='Email Management Techniques'/><category term='OSQL Utility'/><category term='Task Board'/><category term='Icon'/><category term='SQL Server Sample Databases'/><category term='TeamCity'/><category term='Active Directory'/><category term='Proxy'/><category term='kilimanjaro'/><category term='XPS'/><category term='Logs on'/><category term='Authentication'/><category term='automated testing'/><category term='Putty'/><category term='SAN'/><category term='Asynchronous'/><category term='WPF'/><category term='Daily Stand-up Meeting'/><category term='Analysis'/><category term='Hosting Solutions'/><category term='Silverlight'/><category term='XAMLPad'/><category term='WebService'/><category term='XSD'/><category term='CodeRush Express'/><category term='DNS'/><category term='Wget'/><category term='Download'/><category term='WIWA'/><category term='HTTPS'/><category term='Invariance'/><category term='Code Analysis'/><category term='Regular Expressions'/><category term='Delegate; lambda expression; anonymous method'/><category term='Disk Encryption'/><category term='thread-safe'/><category term='Software Design Principles'/><category term='MSI'/><category term='agility'/><category term='PageMethod'/><category term='Data Entry Applications'/><category term='Web'/><category term='Telnet'/><category term='IPhone'/><category term='Message Exchange Patterns'/><category term='SaveChanges'/><category term='Image Optimizer'/><category term='One Instance'/><category term='automated build'/><category term='Git'/><category term='System Testing'/><category term='Virtual Ruler'/><category term='DSL'/><category term='Extension Methods'/><category term='Console'/><category term='Naming Conventions'/><category term='IOC'/><category term='Stateful'/><category term='Windows Service'/><category term='Windows SDK .NET 3.0 Samples'/><category term='AutoMapper'/><category term='js-builder'/><category term='Rounded Corners'/><category term='WCF - Questions'/><category term='NTLM'/><category term='LINQ'/><category term='Lock; multithreading'/><category term='Developer Tools'/><category term='Daily Scrum'/><category term='ballmer'/><category term='Project Management'/><category term='Covariance'/><category term='XmlSerialization'/><category term='Thunderbird'/><category term='SDD'/><category term='Message Encoding Types'/><category term='HiddenField'/><category term='URL'/><category term='Converters'/><category term='MVP'/><category term='Memory Profiler'/><category term='madison'/><category term='Repository Factory'/><category term='ASP.NET WebParts'/><category term='Kerberos'/><category term='Static'/><category term='BackgroundWorker'/><category term='Virtual Server'/><category term='DI'/><category term='Setup'/><category term='CruiseControl.NET'/><category term='Regex'/><category term='ASP.NET AJAX'/><category term='RESTful'/><category term='Data Access Layer'/><category term='Video Upload'/><category term='Scrollbar'/><category term='Ping'/><category term='Telerik'/><category term='Copy'/><category term='code smell'/><category term='ADO.NET Entity Framework'/><category term='Socket'/><category term='Connected'/><category term='FXCop'/><category term='HTML'/><category term='PM Softwares'/><category term='Process'/><category term='Debug'/><category term='Instantiation'/><category term='HttpSimulator'/><category term='JavaScript'/><category term='Software Architect'/><category term='prototype'/><category term='Serialization'/><category term='WatiN'/><category term='Windows Cloud'/><category term='Service Locator Pattern'/><category term='Microsoft Web Platform Installer'/><category term='LINQPad'/><category term='Architecture'/><category term='NMock'/><category term='HTML Encoder Decoder'/><category term='MVC'/><category term='SnippetDesigner'/><category term='MoSCoW'/><category term='Technology'/><category term='Organizational Skills'/><category term='dynamic'/><category term='Podcasts'/><category term='Dependency Injection'/><category term='Team Explorer'/><category term='SQL Server'/><category term='GhostDoc'/><category term='AJAX'/><category term='Intellisence'/><category term='Mindset'/><category term='ORCA'/><category term='Navigation'/><category term='Comments'/><category term='Remote Desktop'/><category term='Visual Studio 2010'/><category term='stsadm'/><category term='Programming Errors'/><category term='JRuler'/><category term='Windows Presentation Foundation'/><category term='Code Generator'/><category term='QueryString'/><category term='SaaS'/><category term='agile'/><category term='Code Review'/><category term='Professional Developers Conference'/><category term='Business Objects'/><category term='PDF XChange Viewer'/><category term='Pixlr'/><category term='asp.net entity framework'/><category term='Unit Testing'/><category term='Design Patterns'/><category term='ClientID'/><category term='IEWatch'/><category term='Browser Compatibility Check'/><category term='RESTful WCF Services'/><category term='Storage Area Network'/><category term='IE Inspector'/><category term='UKSSUG'/><category term='ThreadPool'/><category term='Testable Software Design'/><category term='visual studio 2008'/><category term='Managed Extensibility Framework'/><category term='Enterprise Application Architecture'/><category term='Thread'/><category term='StyleCopCmd'/><category term='Refactoring Techniques'/><category term='ASP.NET Dynamic Data'/><category term='REST'/><category term='Cookie'/><category term='Browser Close'/><category term='TFS'/><category term='Job Hunting'/><category term='Log4Net'/><category term='How to Reduce Complexity in Software'/><category term='xMind'/><category term='CAML'/><category term='agile software development'/><category term='NHibernate and Fluent NHibernate'/><category term='Caching'/><category term='Tracing'/><category term='Castle ActiveRecord Project'/><category term='Java'/><category term='Sonar'/><category term='Proxy Class'/><category term='Performance Testing'/><category term='Page Transition'/><category term='FireBug'/><category term='Performance Tracker'/><category term='Port'/><category term='Buy Controls'/><category term='C#'/><category term='DVD Player'/><category term='SCRUM'/><category term='Technology Communities'/><category term='Process Explorer'/><category term='Chart Controls'/><category term='Developer Events'/><category term='Lean Principles'/><category term='TypeMock'/><category term='WCF'/><category term='Bug Fixing'/><category term='Availability'/><category term='PDC'/><category term='.NET 4.0'/><category term='Singleton'/><category term='Paint.NET'/><category term='Bidirectional'/><category term='Generic'/><category term='Chat Servers'/><category term='AUP'/><category term='IE'/><category term='Abondon Session'/><category term='SVN'/><category term='Software Development AntiPatterns'/><category term='PDF Distillers'/><category term='SubInAC'/><category term='Network Monitoring'/><category term='C# 4.0'/><title type='text'>Technical Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default?start-index=101&amp;max-results=100'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>310</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-4667427588931920175</id><published>2012-02-01T01:28:00.000-08:00</published><updated>2012-02-01T02:06:47.786-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='automated testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Unit Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='System Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Selenium'/><category scheme='http://www.blogger.com/atom/ns#' term='NUnit'/><title type='text'>NUnit with TeamCity, Working with IFrames When Writing System Tests</title><content type='html'>System tests are structured&amp;nbsp;differently than normal unit tests in the sense that we won't have specific Arrange/Act/Verify sections. System tests have to test whether the whole process works correctly and can contain many steps.&lt;br /&gt;&lt;br /&gt;[Test]&lt;br /&gt;public void PasswordReminder_FromHomePageAndWithValidEmailAddress_ShouldSendPasswordReminderEmail()&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;this.gotoUkPaSiteFromHome();&lt;br /&gt;// opens the modal&lt;br /&gt;this.FireFoxWebDriver.FindElement(By.LinkText("Sign in or register")).Click();&lt;br /&gt;&lt;br /&gt;// gets the modal&lt;br /&gt;var newWebDrive = this.FireFoxWebDriver.SwitchTo().Frame("modal");&lt;br /&gt;var activeElement = newWebDrive.SwitchTo().ActiveElement();&lt;br /&gt;&lt;br /&gt;// clicks on a link on the modal&lt;br /&gt;activeElement.FindElement(By.LinkText("Forgotten your password?")).Click();&lt;br /&gt;&lt;br /&gt;// switches to the new page&lt;br /&gt;activeElement = newWebDrive.SwitchTo().ActiveElement();&lt;br /&gt;&lt;br /&gt;// enter email address ...&lt;br /&gt;&lt;br /&gt;// verify you receive thank you message&lt;br /&gt;Assert.IsTrue(this.FireFoxWebDriver.Url.Contains("ThankYou"));&lt;br /&gt;&lt;br /&gt;// close the popup&lt;br /&gt;this.FireFoxWebDriver.SwitchTo().DefaultContent();&lt;br /&gt;this.FireFoxWebDriver.FindElement(By.Id("mb_close_link2")).Click();&lt;br /&gt;&lt;br /&gt;// wait for 10sec&lt;br /&gt;Thread.Sleep(10000);&lt;br /&gt;&lt;br /&gt;// Find the email log from database &lt;br /&gt;&lt;br /&gt;// extract the user password reminder url&lt;br /&gt;&lt;br /&gt;// navigate to the password reminder url for the user&lt;br /&gt;&lt;br /&gt;// enter a new password&lt;br /&gt;&lt;br /&gt;// click submit&lt;br /&gt;&lt;br /&gt;// go to the login page&lt;br /&gt;&lt;br /&gt;// login using the new password&lt;br /&gt;&lt;br /&gt;// verify whether the login was successful&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-4667427588931920175?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/4667427588931920175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=4667427588931920175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4667427588931920175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4667427588931920175'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2012/02/nunit-with-teamcity-working-with.html' title='NUnit with TeamCity, Working with IFrames When Writing System Tests'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-207918385519714198</id><published>2012-01-25T01:44:00.000-08:00</published><updated>2012-01-26T08:33:16.464-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='automated testing'/><title type='text'>Automated System/Functional/UI Testing</title><content type='html'>What tools could we use to create automated system tests using C# code? Or sometimes to record/replay UI activity?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://watin.org/"&gt;WatiN&lt;/a&gt;:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Free&lt;/li&gt;&lt;li&gt;Using which you can write C# test code and interact with the UI elements; entering text, clicking, etc.&lt;/li&gt;&lt;li&gt;Very easy to use for a C# Developer within Visual Studio.&lt;/li&gt;&lt;li&gt;Multibrowser support including IE.&lt;/li&gt;&lt;li&gt;Has no IDE.&lt;/li&gt;&lt;li&gt;Packaged with Nugget.&lt;/li&gt;&lt;li&gt;No native xpath support unlike Selenium.&lt;/li&gt;&lt;li&gt;Doesn't support record/replay natively; however, you could try using &lt;a href="http://watintestrecord.sourceforge.net/"&gt;WatiN Test Recorder&lt;/a&gt; to record and replay your site by IE 6.0! Therefore, Selenium is better in this sense.&lt;/li&gt;&lt;li&gt;Unlike Selenium, it automatically waits for the page to finish loading, and can detect when it's finished loading.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://seleniumhq.org/projects/webdriver/"&gt;Selenium WebDriver:&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Free&lt;/li&gt;&lt;li&gt;Download the Selenium WebDriver from NuGet: &lt;a href="http://www.nuget.org/packages/Selenium.WebDriver"&gt;http://www.nuget.org/packages/Selenium.WebDriver&lt;/a&gt;&lt;/li&gt;&lt;li&gt;You can write C# code and interact with the UI elements.&lt;/li&gt;&lt;li&gt;Built-in CSS selectors/XPath support&lt;/li&gt;&lt;li&gt;You can record/replay.&lt;/li&gt;&lt;li&gt;&lt;a href="http://seleniumhq.org/about/platforms.html"&gt;Supported browsers and programming languages&lt;/a&gt; are very limited.&lt;/li&gt;&lt;li&gt;The Selenium IDE only works with FireFox and unfortunately IE, Safari and Opera are not supported currently. The Selenium IDE is just a FireFox plugin, not an independent IDE.&lt;/li&gt;&lt;li&gt;Much more complex to learn than WatiN. So, you can't record and replay using IE.&lt;/li&gt;&lt;li&gt;It has various tools (Selenium IDE, RC, Grid, Web Driver)&lt;/li&gt;&lt;li&gt;More popular than Sahi.&lt;/li&gt;&lt;li&gt;Ajax support.&lt;/li&gt;&lt;li&gt;&lt;a href="http://seleniumhq.org/docs/"&gt;Selenium Documentation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;It doesn't know when the page is loaded, unlike WatiN, which makes it very annoying. This means that you just have to use try/catch to retry and keep using "&lt;span style="color: #2b91af; font-family: Consolas; font-size: x-small;"&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: x-small;"&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: x-small;"&gt;Thread&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;span style="font-family: Consolas; font-size: x-small;"&gt;.Sleep(1000);" &lt;/span&gt;&lt;/span&gt;until your element is available! haven't found a better way.&lt;/li&gt;&lt;li&gt;It doesn't work well with iframes unlike WatiN.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://sahi.co.in/w/"&gt;Sahi&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Free and Commercial: &lt;a href="http://sahi.co.in/w/sahi-os-vs-sahi-pro"&gt;feature comparison table&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Supports all major browsers.&lt;/li&gt;&lt;li&gt;You can record and replay.&lt;/li&gt;&lt;li&gt;Has its own IDE&lt;/li&gt;&lt;li&gt;Test success/failure report in HTML&lt;/li&gt;&lt;li&gt;You can run the tests using batch file or ANT scripts.&lt;/li&gt;&lt;li&gt;Poor documentation.&lt;/li&gt;&lt;li&gt;Small community.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Visual Studio Ultimate/Premium Edition:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Commercial&lt;/li&gt;&lt;li&gt;They support &lt;a href="http://msdn.microsoft.com/en-us/library/dd286681.aspx"&gt;CodedUI&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;LoadUI/SoapUI&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Allows load testing functional behaviour and measure performance.&lt;/li&gt;&lt;li&gt;Allows us to record and replay user activity on the page&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://jmeter.apache.org/"&gt;JMeter&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Good for load and performance testing&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-207918385519714198?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/207918385519714198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=207918385519714198' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/207918385519714198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/207918385519714198'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2012/01/automated-systemfunctionalui-testing.html' title='Automated System/Functional/UI Testing'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7429901418442959043</id><published>2012-01-05T02:11:00.000-08:00</published><updated>2012-01-05T02:11:45.978-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code Review'/><title type='text'>Code Reviewing</title><content type='html'>&lt;strong&gt;Who does it?&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The tech expert within the team or&lt;/li&gt;&lt;li&gt;All team members?&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;When is it done?&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Every time a code is checked in by a team member or&lt;/li&gt;&lt;li&gt;Only once or twice a week at a certain time&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Metrics?&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Check whether the code design&amp;nbsp;could be improved or is good enough?&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Readability&lt;/li&gt;&lt;li&gt;Maintainability&lt;/li&gt;&lt;li&gt;Low coupling&lt;/li&gt;&lt;li&gt;Reusability&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Check whether the code performance could be improved?&lt;/li&gt;&lt;li&gt;Check for any Code Smells&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Code duplication&lt;/li&gt;&lt;li&gt;Long methods&lt;/li&gt;&lt;li&gt;Large classes&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;strong&gt;How is it done?&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Manually or&lt;/li&gt;&lt;li&gt;By a tool depending on your source control e.g. TFS or Subversion&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Tools?&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;TeamReview for TFS: &lt;a href="http://teamreview.codeplex.com/"&gt;http://teamreview.codeplex.com/&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Free&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Crucible for Subversion, etc: &lt;a href="http://www.atlassian.com/software/crucible/overview"&gt;http://www.atlassian.com/software/crucible/overview&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Commercial&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7429901418442959043?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7429901418442959043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7429901418442959043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7429901418442959043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7429901418442959043'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2012/01/code-reviewing.html' title='Code Reviewing'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-776577086248086953</id><published>2011-12-13T07:41:00.000-08:00</published><updated>2011-12-13T07:41:55.016-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>SQL Query Performance</title><content type='html'>&lt;a href="http://sqlcat.com/sqlcat/b/technicalnotes/archive/2011/10/21/when-to-break-down-complex-queries.aspx"&gt;http://sqlcat.com/sqlcat/b/technicalnotes/archive/2011/10/21/when-to-break-down-complex-queries.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff647793.aspx"&gt;http://msdn.microsoft.com/en-us/library/ff647793.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlservercentral.com/stairway/72399/"&gt;http://www.sqlservercentral.com/stairway/72399/&lt;/a&gt;&amp;nbsp;- indexes&lt;br /&gt;&lt;br /&gt;Allow Multipel Processors to be involved in running your stored procedure:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;OPTION (MAXDOP 8)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-776577086248086953?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/776577086248086953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=776577086248086953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/776577086248086953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/776577086248086953'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/12/sql-query-performance.html' title='SQL Query Performance'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-4875619385169477970</id><published>2011-10-28T05:17:00.001-07:00</published><updated>2011-10-29T02:09:44.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Practical TDD Interview Test</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-mvteGt50e04/TqrOVccyPmI/AAAAAAAABi8/I3j3qGrgeMg/s1600/tddSteps.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 208px; height: 400px;" src="http://4.bp.blogspot.com/-mvteGt50e04/TqrOVccyPmI/AAAAAAAABi8/I3j3qGrgeMg/s400/tddSteps.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5668569948808691298" /&gt;&lt;/a&gt;&lt;p&gt;If you're given a task to be done in TDD, it's not usually whether you can resolve that problem. It's about testing whether you have the right mindset, process and coding style that TDD suggests:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Do you really understand the TDD Process? Benefits? Disadvantages?&lt;/li&gt;    &lt;li&gt;Can you explain the TDD process? &lt;/li&gt;    &lt;li&gt;Do you follow the TDD process in practice if you say you understand? e.g. if add something to the production code for which you don't have test, you have failed TDD!&lt;/li&gt;    &lt;li&gt;Will you choose a small behaviour from the spec before writing any test or you think big and complex?! &lt;/li&gt;    &lt;li&gt;Will you write a very small test method before writing any production code? how committed are you to this mindset?&lt;/li&gt;&lt;li&gt;Will you run all your tests after writing your test, after making a production change?&lt;/li&gt;    &lt;li&gt;Would your test method names follow a proper pattern? &lt;/li&gt;    &lt;li&gt;Will you make sure that you write the minimum amount of implementation code so that only one test passes? You may be able to write all the solution quickly but that’s not TDD! only write the minimum possible amount of code to pass your failed test. remember code quality is not important at this stage. Will you write the minimum possible amount of code for your tests and production code? or you make things complicated or write production code without having the test for it. &lt;/li&gt;    &lt;li&gt;Will you refactor your production code after your tests passed?&lt;/li&gt; &lt;/ul&gt;&lt;div&gt;&lt;b&gt;When should you run all tests according to TDD?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;After adding a test&lt;/li&gt;&lt;li&gt;After each  change to the production code to pass 1 test&lt;/li&gt;&lt;li&gt;After each refactoring&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;How to fail TDD Process?!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;A TDD practical test in an interview often means that you should rigidly demonstrate TDD:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;If you write 1 single line of production code before you have a failing test for it, you have failed TDD!&lt;/li&gt;&lt;li&gt;If you don't run all your tests after you made a production code change, you have failed TDD!&lt;/li&gt;&lt;li&gt;If what you write is not minimized and focused only to pass your failed test and covers more scenarios than what tests you have, you have failed TDD!&lt;/li&gt;&lt;li&gt;If you don't run all your tests after your refactoring, you have failed TDD!&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-4875619385169477970?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/4875619385169477970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=4875619385169477970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4875619385169477970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4875619385169477970'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/10/practical-tdd-interview-test.html' title='Practical TDD Interview Test'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-mvteGt50e04/TqrOVccyPmI/AAAAAAAABi8/I3j3qGrgeMg/s72-c/tddSteps.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3125730953280413365</id><published>2011-10-17T05:24:00.001-07:00</published><updated>2011-10-17T05:29:21.991-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>OUTER APPLY</title><content type='html'>&lt;p&gt;a good sample for OUTER APPLY:&lt;/p&gt;  &lt;p&gt;Returning the latest record of a child table:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;SELECT ST.[SystemDetailID], ST.[SystemName], LH.LatestLoadStatus&lt;br /&gt;FROM [SystemTable] AS ST&lt;br /&gt;LEFT OUTER JOIN &lt;br /&gt;    (&lt;br /&gt;     SELECT LHInner.LoadStatus AS LatestLoadStatus, LHInner.SystemDetailID FROM [dbo].[LoadHistory] AS LHInner&lt;br /&gt;        WHERE LHInner.LoadHistoryID &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;br /&gt;        (&lt;br /&gt;            SELECT LatestLoadHisotoryID FROM &lt;br /&gt;            (&lt;br /&gt;                SELECT MAX(LoadHistoryID) &lt;span class="kwrd"&gt;as&lt;/span&gt; LatestLoadHisotoryID, SystemDetailID FROM [dbo].[LoadHistory]&lt;br /&gt;                GROUP BY SystemDetailID&lt;br /&gt;            ) l&lt;br /&gt;        )   &lt;br /&gt;    ) AS LH ON ST.SystemDetailID = LH.SystemDetailID&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;A simpler/shorter approach is:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;SELECT ST.[SystemDetailID],&lt;br /&gt;       ST.[SystemName],&lt;br /&gt;       LH.LatestLoadStatus&lt;br /&gt;FROM   [SystemTable] AS ST&lt;br /&gt;       OUTER APPLY (SELECT TOP 1 *&lt;br /&gt;                    FROM   [dbo].[LoadHistory] LH&lt;br /&gt;                    WHERE  ST.SystemDetailID = LH.SystemDetailID&lt;br /&gt;                    ORDER  BY LoadHistoryID DESC) LH  &lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;More info: &lt;a href="http://technet.microsoft.com/en-us/library/ms175156.aspx"&gt;http://technet.microsoft.com/en-us/library/ms175156.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3125730953280413365?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3125730953280413365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3125730953280413365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3125730953280413365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3125730953280413365'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/10/outer-apply.html' title='OUTER APPLY'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-4021824787568096199</id><published>2011-10-10T04:34:00.000-07:00</published><updated>2011-10-10T04:38:33.953-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Symmetric Encryption with Rijndael Algorithm</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.IO;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Security.Cryptography;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; MyProject&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;interface&lt;/span&gt; IEncryptionManager&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;string&lt;/span&gt; Encrypt(&lt;span class="kwrd"&gt;string&lt;/span&gt; originalText);&lt;br /&gt;        &lt;span class="kwrd"&gt;string&lt;/span&gt; Decrypt(&lt;span class="kwrd"&gt;string&lt;/span&gt; encryptedText);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;/// This class uses the Rijndael Encryption Algorithm&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; RijndaelEncryptionManager : IEncryptionManager&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; Fields&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// The key can only be 16, 24 or 32 bytes.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] EncryptionKey = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] { 0x00, 0x11, 0x22, 0x03, 0x44, 0x55, 0x66, 0x77,&lt;br /&gt;                                           0x88, 0x99, 0xAA, 0xBB, 0xC0, 0xDD, 0x0E, 0xFF };&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// The vector also can only be 16, 24 or 32 bytes.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] InitializationVector = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,&lt;br /&gt;                                           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0xFD, 0x0E, 0x0F};&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;   &lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; Methods&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Encrypt(&lt;span class="kwrd"&gt;string&lt;/span&gt; originalText)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (var myRijndael = &lt;span class="kwrd"&gt;new&lt;/span&gt; RijndaelManaged { Key = EncryptionKey, IV = InitializationVector })&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="rem"&gt;// Encrypt the string to an array of bytes.&lt;/span&gt;&lt;br /&gt;                var encryptedBytes = EncryptStringToBytes(originalText, myRijndael.Key, myRijndael.IV);&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; Convert.ToBase64String(encryptedBytes);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Decrypt(&lt;span class="kwrd"&gt;string&lt;/span&gt; encryptedText)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (var myRijndael = &lt;span class="kwrd"&gt;new&lt;/span&gt; RijndaelManaged { Key = EncryptionKey, IV = InitializationVector })&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="rem"&gt;// Encrypt the string to an array of bytes.&lt;/span&gt;&lt;br /&gt;                var encryptedBytes = Convert.FromBase64String(encryptedText);&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Decrypt the bytes to a string.&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; DecryptStringFromBytes(encryptedBytes, myRijndael.Key, myRijndael.IV);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Encrypts the string to bytes.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;plainText&amp;quot;&amp;gt;The plain text.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;key&amp;quot;&amp;gt;The key.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;iv&amp;quot;&amp;gt;The IV.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] EncryptStringToBytes(&lt;span class="kwrd"&gt;string&lt;/span&gt; plainText, &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] key, &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] iv)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;// Check arguments.&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (plainText == &lt;span class="kwrd"&gt;null&lt;/span&gt; || plainText.Length &amp;lt;= 0)&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span class="str"&gt;&amp;quot;plainText&amp;quot;&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (key == &lt;span class="kwrd"&gt;null&lt;/span&gt; || key.Length &amp;lt;= 0)&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span class="str"&gt;&amp;quot;key&amp;quot;&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (iv == &lt;span class="kwrd"&gt;null&lt;/span&gt; || iv.Length &amp;lt;= 0)&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span class="str"&gt;&amp;quot;key&amp;quot;&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] encrypted;&lt;br /&gt;            &lt;span class="rem"&gt;// Create an Rijndael object&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// with the specified key and IV.&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (var rijAlg = Rijndael.Create())&lt;br /&gt;            {&lt;br /&gt;                rijAlg.Key = key;&lt;br /&gt;                rijAlg.IV = iv;&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Create a decrytor to perform the stream transform.&lt;/span&gt;&lt;br /&gt;                var encryptor = rijAlg.CreateEncryptor(rijAlg.Key, rijAlg.IV);&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Create the streams used for encryption.&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (var msEncrypt = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream())&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;using&lt;/span&gt; (var csEncrypt = &lt;span class="kwrd"&gt;new&lt;/span&gt; CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span class="kwrd"&gt;using&lt;/span&gt; (var swEncrypt = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamWriter(csEncrypt))&lt;br /&gt;                        {&lt;br /&gt;                            &lt;span class="rem"&gt;//Write all data to the stream.&lt;/span&gt;&lt;br /&gt;                            swEncrypt.Write(plainText);&lt;br /&gt;                        }&lt;br /&gt;                        encrypted = msEncrypt.ToArray();&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// Return the encrypted bytes from the memory stream.&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; encrypted;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Decrypts the string from bytes.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;cipherText&amp;quot;&amp;gt;The cipher text.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;key&amp;quot;&amp;gt;The key.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;iv&amp;quot;&amp;gt;The IV.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; DecryptStringFromBytes(&lt;span class="kwrd"&gt;byte&lt;/span&gt;[] cipherText, &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] key, &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] iv)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;// Check arguments.&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (cipherText == &lt;span class="kwrd"&gt;null&lt;/span&gt; || cipherText.Length &amp;lt;= 0)&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span class="str"&gt;&amp;quot;cipherText&amp;quot;&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (key == &lt;span class="kwrd"&gt;null&lt;/span&gt; || key.Length &amp;lt;= 0)&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span class="str"&gt;&amp;quot;key&amp;quot;&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (iv == &lt;span class="kwrd"&gt;null&lt;/span&gt; || iv.Length &amp;lt;= 0)&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span class="str"&gt;&amp;quot;key&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// Declare the string used to hold&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// the decrypted text.&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; plaintext = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// Create an Rijndael object&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// with the specified key and IV.&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (var rijAlg = Rijndael.Create())&lt;br /&gt;            {&lt;br /&gt;                rijAlg.Key = key;&lt;br /&gt;                rijAlg.IV = iv;&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Create a decrytor to perform the stream transform.&lt;/span&gt;&lt;br /&gt;                var decryptor = rijAlg.CreateDecryptor(rijAlg.Key, rijAlg.IV);&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Create the streams used for decryption.&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (var msDecrypt = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream(cipherText))&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;using&lt;/span&gt; (var csDecrypt = &lt;span class="kwrd"&gt;new&lt;/span&gt; CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span class="kwrd"&gt;using&lt;/span&gt; (var srDecrypt = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamReader(csDecrypt))&lt;br /&gt;                        {&lt;br /&gt;                            &lt;span class="rem"&gt;// Read the decrypted bytes from the decrypting stream&lt;/span&gt;&lt;br /&gt;                            &lt;span class="rem"&gt;// and place them in a string.&lt;/span&gt;&lt;br /&gt;                            plaintext = srDecrypt.ReadToEnd();&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; plaintext;&lt;br /&gt;&lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-4021824787568096199?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/4021824787568096199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=4021824787568096199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4021824787568096199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4021824787568096199'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/10/symmetric-encryption-with-rijndael.html' title='Symmetric Encryption with Rijndael Algorithm'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-827452652117662851</id><published>2011-10-10T02:47:00.000-07:00</published><updated>2011-10-10T04:28:45.852-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Text Encryption'/><title type='text'>Text Encryption and Decryption</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 14px; line-height: 18px;"&gt;&lt;b&gt;Encryption Algorithms:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; background-color: rgb(255, 255, 255); "&gt;TripleDES &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; background-color: rgb(255, 255, 255); "&gt;MD5&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; background-color: rgb(255, 255, 255); "&gt;SH1&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; background-color: rgb(255, 255, 255); "&gt;RC4&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; background-color: rgb(255, 255, 255); "&gt;CRC32&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 14px; line-height: 18px;"&gt;&lt;b&gt;&lt;a href="http://www.codeproject.com/KB/security/SimpleEncryption.aspx"&gt;http://www.codeproject.com/KB/security/SimpleEncryption.aspx&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 14px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 14px; line-height: 18px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 14px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-827452652117662851?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/827452652117662851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=827452652117662851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/827452652117662851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/827452652117662851'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/10/text-encryption-and-decryption.html' title='Text Encryption and Decryption'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-4324461327326953068</id><published>2011-09-29T02:06:00.001-07:00</published><updated>2011-09-29T03:52:08.285-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Assembly Signing'/><title type='text'>All About Assembly Signing - Public and Private Key</title><content type='html'>&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Why? Purpose?&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;1)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;To verify that an assembly came from a specified trusted source and have not been modified.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;For example, you get an assembly from a colleague who says it is from Microsoft. If it's really from Microsoft, the public key that Microsoft has given you will make that assembly usable. Otherwise, if the public key doesn't work, then mean that assembly is not genuinely from Microsoft!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;2)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Another purpose is that you have to sign an assembly before it can be installed in the global assembly cache (GAC) where it can be shared by multiple applications&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;4 ways to sign an assembly:&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;To sign an assembly you'd usually need a public/private key pair.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/xc31ft41(v=vs.71).aspx"&gt;&lt;span class="Apple-style-span" &gt;http://msdn.microsoft.com/en-us/library/xc31ft41(v=vs.71).aspx&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Using Visual Studio/Project/Proeprties/Signing tab&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Using AL.exe tool&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Using AssemblyKeyFile attribute&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Using AssemblyKeyName attribute&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;2 ways to create a public/private key pair:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Using Visual Studio/Project/Proeprties/Signing tab&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Using &lt;a href="http://msdn.microsoft.com/en-us/library/k5b5tt23(v=vs.80).aspx"&gt;Sn.exe&lt;/a&gt; (strong name) tool&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;How to extract the public key:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;sn.exe -p KeyPair.snk PublicKey.snk&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;How to extract the public key token:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;sn.exe -tp PublicKey.snk (this displays the public key in a slightly more sensible way!)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-4324461327326953068?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/4324461327326953068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=4324461327326953068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4324461327326953068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4324461327326953068'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/09/all-about-assembly-signing-public-and.html' title='All About Assembly Signing - Public and Private Key'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5737689087580819426</id><published>2011-08-14T15:28:00.000-07:00</published><updated>2011-08-15T03:01:43.767-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPC'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><title type='text'>Connect to Host IIS from Virtual PC</title><content type='html'>&lt;div style="text-align: left;"&gt;When you need to test your application with IE 6.0 using a virtual PC, you would need to make this configuration so that you can access the host application from the virtual pc.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The solution&lt;/b&gt; is quite simple as below:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Download&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=11575"&gt; the windows xp VHD&lt;/a&gt; and run it using VPC&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Setup your web application on your local IIS&lt;/li&gt;&lt;li&gt;Configure Visual Studio to run the app from IIS rather the default VS Dvelopment Server:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/-d-WDPqeVtYI/TkhNiBpH1fI/AAAAAAAABiU/apZLRVIJA0k/s400/start%2Boptions.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 229px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5640843780233352690" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;li&gt;Go to the Url and make sure that it's accessible from your host e.g. http://localhost/app1&lt;/li&gt;&lt;li&gt;Start the Windows xp VPC&lt;/li&gt;&lt;li&gt;Go to the settings and select Shared Networking (NAT) so that your VPC can access the host.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;ul&gt;&lt;img src="http://3.bp.blogspot.com/-kWPiE0GWZX4/TkhOrtOGmKI/AAAAAAAABic/wmb5Ca-lqFg/s400/NAT.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5640845046061635746" style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 284px; " /&gt;&lt;/ul&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Find the ip address of the host machine by running ipconfig from the host&lt;/li&gt;&lt;li&gt;From the VPC, access the Host IIS Application using the ip address of the host e.g.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;http://192.168.1.102/App1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-0KnjFQSH3Y4/TkhPfQTfksI/AAAAAAAABik/EtuVokYyx4s/s1600/wxp.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-0KnjFQSH3Y4/TkhPfQTfksI/AAAAAAAABik/EtuVokYyx4s/s400/wxp.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5640845931652813506" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 191px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Important tip:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;The VHD expires in Aug 2011. This is a workaround that you can use to change the current date of the VPC and takes less than 30m to configure and test.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5737689087580819426?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5737689087580819426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5737689087580819426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5737689087580819426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5737689087580819426'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/08/connect-to-host-iis-from-virtual-pc.html' title='Connect to Host IIS from Virtual PC'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-d-WDPqeVtYI/TkhNiBpH1fI/AAAAAAAABiU/apZLRVIJA0k/s72-c/start%2Boptions.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-8243762315575975970</id><published>2011-08-12T04:54:00.000-07:00</published><updated>2011-08-12T04:55:40.657-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>Useful JQuery Plugins</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Word-wrap to support IE 6.0: &lt;a href="http://www.positioniseverything.net/explorer/sidepages/demo1.htm"&gt;http://www.positioniseverything.net/explorer/sidepages/demo1.htm&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;News Slider: &lt;a href="http://landofcoder.com/demo/jquery/lofslidernews/index.html"&gt;http://landofcoder.com/demo/jquery/lofslidernews/index.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Shadowbox (commercial): &lt;a href="http://www.shadowbox-js.com/"&gt;http://www.shadowbox-js.com/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-8243762315575975970?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/8243762315575975970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=8243762315575975970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8243762315575975970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8243762315575975970'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/08/useful-jquery-plugins.html' title='Useful JQuery Plugins'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7782277944041925698</id><published>2011-08-02T06:35:00.001-07:00</published><updated>2011-08-02T06:39:10.512-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Caching'/><title type='text'>Method Caching Options</title><content type='html'>&lt;span class="Apple-style-span" &gt;Options to cache a method result&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;1)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Using Postsharp as an AOP framework with this &lt;a href="http://cache.codeplex.com/"&gt;CodePlex Caching Manager&lt;/a&gt;: &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;hard to maintain if any bug appears&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;not very much reliable if a bug appears in the future&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;2)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Using&lt;a href="http://www.springframework.net/doc-latest/reference/html/aop.html"&gt; SPRING.NET&lt;/a&gt; as an AOP framework with Custom CacheManager: &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;most neat&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;less maintainability&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;3)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;CacheManager from Enterprise Library Caching Block and use it in each method&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;quickest to setup&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Perhaps most stable&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Duplicated code in every method (GET, ADD from/to cache)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;4)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;My own Custom lightweight CacheManager and use it in each method&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Lightweight and perhaps highest performance&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;More work&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Duplicated code in every method (GET, ADD from/to cache)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7782277944041925698?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7782277944041925698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7782277944041925698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7782277944041925698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7782277944041925698'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/08/method-caching-options.html' title='Method Caching Options'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-1038679182722929379</id><published>2011-07-07T06:34:00.000-07:00</published><updated>2011-07-07T06:41:29.463-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hierarchy'/><category scheme='http://www.blogger.com/atom/ns#' term='Telerik'/><title type='text'>Hierarchy Representation of Data</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" &gt;During the past 4 weeks, I have been working to build a report engine to display Hierarchy information of different entities in my application. Everything gets generated at runtime programmatically and columns are customizable using external filters that user can choose on the screen. The Grids have exporting (Word, Pdf, Excel), paging and sorting enabled.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" &gt;Using Nested Tables:&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://demos.telerik.com/aspnet-ajax/grid/examples/hierarchy/nestedviewtemplate/defaultcs.aspx"&gt;http://demos.telerik.com/aspnet-ajax/grid/examples/hierarchy/nestedviewtemplate/defaultcs.aspx&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Using Master / Detail Structures:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://demos.telerik.com/aspnet-ajax/grid/examples/programming/selectedvalue/defaultcs.aspx"&gt;http://demos.telerik.com/aspnet-ajax/grid/examples/programming/selectedvalue/defaultcs.aspx&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-1038679182722929379?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/1038679182722929379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=1038679182722929379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1038679182722929379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1038679182722929379'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/07/hierarchy-representation-of-data.html' title='Hierarchy Representation of Data'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-2924364255549958864</id><published>2011-07-04T15:55:00.001-07:00</published><updated>2011-07-04T15:55:51.042-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='Icon'/><title type='text'>Ajax Load Icon Generator</title><content type='html'>&lt;div&gt;An ajax Load Icon Generator: &lt;a href="http://www.ajaxload.info/"&gt;http://www.ajaxload.info/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-2924364255549958864?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/2924364255549958864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=2924364255549958864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2924364255549958864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2924364255549958864'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/07/ajax-load-icon-generator.html' title='Ajax Load Icon Generator'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-1071601695586204935</id><published>2011-06-17T14:24:00.001-07:00</published><updated>2011-06-18T05:15:10.985-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Generic'/><category scheme='http://www.blogger.com/atom/ns#' term='Instantiation'/><category scheme='http://www.blogger.com/atom/ns#' term='Expression Trees'/><title type='text'>How to Instantiate a Generic Type With Input Parameters at Runtime?</title><content type='html'>&lt;p&gt;Background:&lt;/p&gt;  &lt;p&gt;There are times when we’d like to remove duplicated codes in instantiating types so we use generics to group similar classes and work with them easier.&lt;/p&gt;  &lt;p&gt;Look at these classes:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;abstract&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; BaseType&lt;br /&gt;{&lt;br /&gt; &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; A { get; set; }&lt;br /&gt; &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; B { get; set; }&lt;br /&gt;&lt;br /&gt; &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; BaseType(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; a, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; b)&lt;br /&gt; {&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.A = a;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.B = b;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Type1 : BaseType&lt;br /&gt;{&lt;br /&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Type1(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; a, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; b) : &lt;span style="color: #0000ff"&gt;base&lt;/span&gt;(a, b)&lt;br /&gt; {&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Type2 : BaseType&lt;br /&gt;{&lt;br /&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Type2(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; a, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; b) : &lt;span style="color: #0000ff"&gt;base&lt;/span&gt;(a, b)&lt;br /&gt; {&lt;br /&gt;  &lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Type1 and Type2 both inherit from the BaseType abstract class both of which require the same name and type of arguments to be instantiated.&lt;/div&gt;&lt;br /&gt;Wouldn’t it be nice to have a generic method like&lt;br /&gt;&lt;br /&gt;&lt;p&gt;TypeCreator&amp;lt;T&amp;gt;(int a, int b) where T : BaseType&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;// instantiate type with a and b&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;Now I show you different ways to implement this.&lt;/p&gt;&lt;h3&gt;Solutions&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;1) Using Activator.CreateInstance… – anti-pattern&lt;/strong&gt;&lt;/p&gt;The simplest way to implement this would be to use the Activator.CreateInstance method. There are numerous articles which says this approach has an awful performance and avoid it but I’d just like to show how it simply works:&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; MyTypeFactory&amp;lt;T&amp;gt; &lt;span style="color: #0000ff"&gt;where&lt;/span&gt; T : BaseType&lt;br /&gt;{&lt;br /&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; T Create(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; a, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; b)&lt;br /&gt; {&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; (T)Activator.CreateInstance(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(T), a, b);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;// and use it like this&lt;/span&gt;&lt;br /&gt;MyTypeFactory&amp;lt;Type1&amp;gt;.Create(1, 2);&lt;/pre&gt;&lt;br /&gt;&lt;strong&gt;2) Using a Static Delegate&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;For this approach to work, you’d need to provide a delegate to all your types in a Factory then use it. So it’s a bit inflexible as it has to know which types it can instantiate but it should have a very good performance:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', courier, monospace; font-size: 11px; line-height: 16px; white-space: pre; "&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; MyTypeFactory&lt;/span&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: rgb(244, 244, 244); margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; font-size: 8pt; border-left-style: none; overflow-x: visible; overflow-y: visible; padding-top: 0px; " id="codeSnippet"&gt;{&lt;br /&gt; &lt;span style="color: rgb(0, 0, 255); "&gt;static&lt;/span&gt; MyTypeFactory()&lt;br /&gt; {&lt;br /&gt;     MethodRunner&amp;lt;Type1&amp;gt;.Func = (a, b) =&amp;gt; &lt;span style="color: rgb(0, 0, 255); "&gt;new&lt;/span&gt; Type1(a, b);&lt;br /&gt;     MethodRunner&amp;lt;Type2&amp;gt;.Func = (a, b) =&amp;gt; &lt;span style="color: rgb(0, 0, 255); "&gt;new&lt;/span&gt; Type2(a, b);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 255); "&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255); "&gt;static&lt;/span&gt; T Create&amp;lt;T&amp;gt;(&lt;span style="color: rgb(0, 0, 255); "&gt;int&lt;/span&gt; a, &lt;span style="color: rgb(0, 0, 255); "&gt;int&lt;/span&gt; b) &lt;span style="color: rgb(0, 0, 255); "&gt;where&lt;/span&gt; T: BaseType&lt;br /&gt; {&lt;br /&gt;     &lt;span style="color: rgb(0, 0, 255); "&gt;return&lt;/span&gt; MethodRunner&amp;lt;T&amp;gt;.Func(a, b);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 255); "&gt;static&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255); "&gt;class&lt;/span&gt; MethodRunner&amp;lt;T&amp;gt;&lt;br /&gt; {&lt;br /&gt;     &lt;span style="color: rgb(0, 0, 255); "&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255); "&gt;static&lt;/span&gt; Func&amp;lt;&lt;span style="color: rgb(0, 0, 255); "&gt;int&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 255); "&gt;int&lt;/span&gt;, T&amp;gt; Func { get; set; }&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;  &lt;/div&gt;&lt;p&gt;The static constructor of the MyTypeFactory class only runs once per application domain the first time the factory is accessed so it should also be thread-safe.&lt;/p&gt;&lt;p&gt;You can simply use it like this:&lt;/p&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;var type1 = MyTypeFactory.Create&amp;lt;Type1&amp;gt;(1, 2);&lt;/pre&gt;  &lt;/div&gt;&lt;p&gt;&lt;strong&gt;3) Using Expression Trees&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;In this approach, a lambda expression has to be compiled per type. So for each type a new compilation will be done initially then they're stored in a private field for further reuse. This has much better performance in comparison with Activator.CreateInstance.&lt;/p&gt;&lt;p&gt;Another good point about this approach is its flexibility; you don’t have to hard code the constructors like approach 2.&lt;/p&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; MyTypeFactory&amp;lt;T&amp;gt; &lt;span style="color: #0000ff"&gt;where&lt;/span&gt; T : BaseType&lt;br /&gt;{&lt;br /&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;readonly&lt;/span&gt; Func&amp;lt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt;, T&amp;gt; MethodDelegate = InitializeMethodDelegate();&lt;br /&gt;&lt;br /&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; Func&amp;lt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt;, T&amp;gt; InitializeMethodDelegate()&lt;br /&gt; {&lt;br /&gt;     var constructorInfo = &lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(T).GetConstructor(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;[] { &lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;), &lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;) });&lt;br /&gt;     var param1 = Expression.Parameter(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;));&lt;br /&gt;     var param2 = Expression.Parameter(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; Expression.Lambda&amp;lt;Func&amp;lt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt;, T&amp;gt;&amp;gt;(Expression.New(constructorInfo, param1, param2), param1, param2).Compile();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; T Create(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; a, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; b)&lt;br /&gt; {&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; MethodDelegate(a, b);&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;and you can again use it like&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', courier, monospace; font-size: 11px; line-height: 16px; white-space: pre; "&gt;var type1 = MyTypeFactory&amp;lt;Type1&amp;gt;.Create(1, 2);&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; line-height: 16px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;Be careful not to re-comiple the type each time as this may make the performance even worse than Activator.CreateInstance(). Only once per type as shown above.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;4) Using Reflection&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;...&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;br /&gt;The factors which should be important in your decision making are:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Performance&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Simplicity of use&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Flexibility &lt;/li&gt;&lt;/ul&gt;&lt;div&gt;I think using Expression Trees in the way mentioned above provides the best result considering performance and flexibility.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Read Further:&lt;/strong&gt;&lt;/div&gt;&lt;ul&gt;  &lt;li&gt;a Comparison: &lt;a href="http://bloggingabout.net/blogs/vagif/archive/2010/04/02/don-t-use-activator-createinstance-or-constructorinfo-invoke-use-compiled-lambda-expressions.aspx"&gt;http://bloggingabout.net/blogs/vagif/archive/2010/04/02/don-t-use-activator-createinstance-or-constructorinfo-invoke-use-compiled-lambda-expressions.aspx&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/0zk36dx2(VS.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/0zk36dx2(VS.80).aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-1071601695586204935?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/1071601695586204935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=1071601695586204935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1071601695586204935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1071601695586204935'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/06/how-to-instantiate-generic-type-with.html' title='How to Instantiate a Generic Type With Input Parameters at Runtime?'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-308264465691745328</id><published>2011-06-06T13:14:00.001-07:00</published><updated>2011-06-07T14:39:07.366-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='PageMethod'/><title type='text'>Call a Page Method Using Drop Down List and JavaScript</title><content type='html'>&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When an item is selected from the drop down list, a method on the server should be called. AutoPostBack = True can’t be used as posting back the whole page is not required.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-NxPmpWMFJw0/Te01KHe5VVI/AAAAAAAABg0/fNE9ZARnIFM/s1600-h/image%25255B2%25255D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-IruHLc14Nks/Te01KdY7_TI/AAAAAAAABg4/O26duIQKcCg/image_thumb.png?imgmax=800" width="119" height="71" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Page Source:&lt;/strong&gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&amp;lt;asp:Content ID=&lt;span style="color: #006080"&gt;"HeaderContent"&lt;/span&gt; runat=&lt;span style="color: #006080"&gt;"server"&lt;/span&gt; ContentPlaceHolderID=&lt;span style="color: #006080"&gt;"HeadContent"&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;script language=&lt;span style="color: #006080"&gt;"javascript"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&lt;br /&gt;   $(document).ready(function () {&lt;br /&gt;       var selector = &lt;span style="color: #006080"&gt;".ddlCountries"&lt;/span&gt;;&lt;br /&gt;       $(selector ).change(function () {&lt;br /&gt;           PageMethods.OnSelectedIndexChanged($(selector).val());&lt;br /&gt;       });&lt;br /&gt;   });&lt;br /&gt;script&amp;gt;&lt;br /&gt;&amp;lt;/asp:Content&amp;gt;&lt;br /&gt;&amp;lt;asp:Content ID=&lt;span style="color: #006080"&gt;"BodyContent"&lt;/span&gt; runat=&lt;span style="color: #006080"&gt;"server"&lt;/span&gt; ContentPlaceHolderID=&lt;span style="color: #006080"&gt;"MainContent"&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;asp:ScriptManager ID=&lt;span style="color: #006080"&gt;"ScriptManager1"&lt;/span&gt; runat=&lt;span style="color: #006080"&gt;"server"&lt;/span&gt; EnablePageMethods=&lt;span style="color: #006080"&gt;"true"&lt;/span&gt; EnablePartialRendering=&lt;span style="color: #006080"&gt;"true"&lt;/span&gt;&amp;gt;&lt;br /&gt; &amp;lt;/asp:ScriptManager&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;asp:DropDownList CssClass=&lt;span style="color: #006080"&gt;"ddlCountries"&lt;/span&gt; ID=&lt;span style="color: #006080"&gt;"ddlCountries"&lt;/span&gt; runat=&lt;span style="color: #006080"&gt;"server"&lt;/span&gt; Width=&lt;span style="color: #006080"&gt;"100px"&lt;/span&gt;&amp;gt;&lt;br /&gt; &amp;lt;/asp:DropDownList&amp;gt;&lt;br /&gt;&amp;lt;/asp:Content&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;strong&gt;Page Code Behind:&lt;/strong&gt;&lt;/div&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt; &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;   &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt; {&lt;br /&gt;     BindDummyData();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; BindDummyData()&lt;br /&gt; {&lt;br /&gt;     var countries = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; [] {&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; { Name = &lt;span style="color: #006080"&gt;"UK"&lt;/span&gt;, ID = &lt;span style="color: #006080"&gt;"1"&lt;/span&gt; },&lt;br /&gt;         &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; { Name = &lt;span style="color: #006080"&gt;"USA"&lt;/span&gt;, ID = &lt;span style="color: #006080"&gt;"2"&lt;/span&gt; }&lt;br /&gt;     };&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (var country &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; countries)&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.ddlCountries.Items.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ListItem(country.Name, country.ID));&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; [WebMethod]&lt;br /&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; OnSelectedIndexChanged(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; selectedValue)&lt;br /&gt; {&lt;br /&gt;     &lt;span style="color: #008000"&gt;// process&lt;/span&gt;&lt;br /&gt; }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-308264465691745328?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/308264465691745328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=308264465691745328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/308264465691745328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/308264465691745328'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/06/call-page-method-using-drop-down-list.html' title='Call a Page Method Using Drop Down List and JavaScript'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-IruHLc14Nks/Te01KdY7_TI/AAAAAAAABg4/O26duIQKcCg/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-18873619847484565</id><published>2011-06-05T15:25:00.001-07:00</published><updated>2011-06-05T15:33:49.672-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Access Layer'/><title type='text'>Patterns of Creating the Data Access Layer</title><content type='html'>If you've decided not to use any ORM, then you'd need to decide about the pattern you'd like to use for creating your data access layer.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is an old topic so I'm going to summarize them here:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Repository Pattern&lt;/li&gt;&lt;li&gt;Active Record&lt;/li&gt;&lt;li&gt;Data Mapper&lt;/li&gt;&lt;li&gt;Identity Map&lt;/li&gt;&lt;li&gt;Table Data Gateway&lt;/li&gt;&lt;li&gt;Row Data Gateway&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Resources:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/dd569757.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/dd569757.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Patterns of Enterprise Applications Development by Martin Fowler&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-18873619847484565?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/18873619847484565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=18873619847484565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/18873619847484565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/18873619847484565'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/06/patterns-of-creating-data-access-layer.html' title='Patterns of Creating the Data Access Layer'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-369228772710029885</id><published>2011-05-29T10:37:00.001-07:00</published><updated>2011-05-29T10:37:42.820-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><title type='text'>Find Out DNS Details of A Domain</title><content type='html'>&lt;a href="http://www.intodns.com/"&gt;http://www.intodns.com/&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.mxtoolbox.com/"&gt;http://www.mxtoolbox.com/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-369228772710029885?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/369228772710029885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=369228772710029885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/369228772710029885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/369228772710029885'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/05/find-out-dns-details-of-domain.html' title='Find Out DNS Details of A Domain'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-8317666343706111800</id><published>2011-05-24T13:16:00.000-07:00</published><updated>2011-05-24T14:30:25.279-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BDD'/><title type='text'>Behaviour Driven Design and Domain Driven Design</title><content type='html'>&lt;div&gt;&lt;b&gt;1) DDD:&lt;/b&gt;&lt;/div&gt;The purpose of Domain Specific Language (DSL) is to create a bridge between the technical and non-technical people. DSL is important in Domain Driven Design (DDD).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;2) BDD:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;BDD is pretty simple to understand:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Get the requirement/feature, from your Business Analyst, as a &lt;a href="http://en.wikipedia.org/wiki/User_story"&gt;User Story&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;For each user story, create behaviours/scenarios in Gherkin language as explained below.&lt;/li&gt;&lt;li&gt;For each Gherkin/behaviour, create a unit test (you can use SpecFlow tool).&lt;/li&gt;&lt;li&gt;Implement your code until your test passes.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Gherkin Language&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Gherkin Language is a language used to represent specifications or scenarios in the following format: "Given -When - Then"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is a language to define behaviour of the modules and basically test cases (scenarios) are created from these behaviours easily.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Example:&lt;/div&gt;&lt;div&gt;Given user opens a browser and navigates to the Google.com site&lt;/div&gt;&lt;div&gt;When user enters "BDD" or user enters "DDD"&lt;/div&gt;&lt;div&gt;Then result of the search are listed on the page.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;or&lt;/div&gt;&lt;div&gt;Given I have gone to an interview well-prepared&lt;/div&gt;&lt;div&gt;When I answer all the challenging questions of the interviewers properly&lt;/div&gt;&lt;div&gt;Then I'll get a job offer!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;&lt;a href="http://specflow.org/home.aspx"&gt;SpecFlow&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;A free tool which can be used to convert Gherkin to unit tests&lt;/li&gt;&lt;li&gt;It can be integrated into Visual Studio&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Resources:&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/architecture/Say_Hello_World_To_BDD.aspx"&gt;http://www.codeproject.com/KB/architecture/Say_Hello_World_To_BDD.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/library/GettingStartedWithBDD.aspx"&gt;http://www.codeproject.com/KB/library/GettingStartedWithBDD.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-8317666343706111800?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/8317666343706111800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=8317666343706111800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8317666343706111800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8317666343706111800'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/05/behaviour-driven-design-and-domain.html' title='Behaviour Driven Design and Domain Driven Design'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-1208603649925912840</id><published>2011-05-21T02:47:00.001-07:00</published><updated>2011-05-21T02:57:06.832-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Architect'/><title type='text'>Software Architecture Competency</title><content type='html'>&lt;div&gt;Everyone has played the role of an architect in their life.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Key skills to develop for being the best Software Architect:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Demonstrable leadership and motivational skills&lt;/li&gt;&lt;li&gt;Demonstrable interpersonal skills with different people with different religion, race, background, education and political views&lt;/li&gt;&lt;li&gt;Demonstrable communication and listening skills&lt;/li&gt;&lt;li&gt;Demonstrable previous success&lt;/li&gt;&lt;li&gt;Demonstrable envisioning a software; excellent with drawing tools&lt;/li&gt;&lt;li&gt;Creativity and Logical reasoning&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://www.sei.cmu.edu/library/assets/IASA_2007.pdf"&gt;http://www.sei.cmu.edu/library/assets/IASA_2007.pdf&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-1208603649925912840?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/1208603649925912840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=1208603649925912840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1208603649925912840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1208603649925912840'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/05/software-architecture-competency.html' title='Software Architecture Competency'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3786357675903950844</id><published>2011-05-17T13:59:00.000-07:00</published><updated>2011-05-17T14:07:41.334-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Continuous Integration'/><title type='text'>Continuous Integration</title><content type='html'>&lt;div style="font-weight: bold; "&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Purpose:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;The purpose of CI is to detect integration errors as quickly as possible by allowing team members to integrate code into the source control frequently.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-weight: bold; "&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Source Controls:&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Subversion: free&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Microsoft SourceSafe&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Perforce&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Microsoft TFS&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://www.nongnu.org/cvs/"&gt;CVS&lt;/a&gt;: free&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Automating the Build and Test:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;TeamCity: free&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;CruiseControl.Net: free&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Microsoft TFS&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://pooyakhamooshi.blogspot.com/2009/01/all-about-tdd.html"&gt;&lt;span class="Apple-style-span" &gt;Testing tools&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3786357675903950844?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3786357675903950844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3786357675903950844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3786357675903950844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3786357675903950844'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/05/continuous-integration.html' title='Continuous Integration'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7355139170869777949</id><published>2011-05-17T12:44:00.001-07:00</published><updated>2011-05-17T12:44:16.715-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><title type='text'>Check Web Information</title><content type='html'>&lt;a href="http://www.alexa.com/"&gt;http://www.alexa.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7355139170869777949?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7355139170869777949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7355139170869777949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7355139170869777949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7355139170869777949'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/05/check-web-information.html' title='Check Web Information'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-8675727865465674475</id><published>2011-05-10T05:33:00.001-07:00</published><updated>2011-07-17T03:46:43.425-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Browser Compatibility Check'/><title type='text'>Open a Page in Multiple Browsers</title><content type='html'>&lt;a href="http://www.my-debugbar.com/wiki/IETester/HomePage"&gt;IETester&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;VPC:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;IE Compatibility VPC Images &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=11575"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://geekswithblogs.net/imilovanovic/archive/2010/04/26/working-with-visual-studio-web-development-server-and-ie6-in.aspx"&gt;Configure VPC&lt;/a&gt; accessing the host machine web development server.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=2020"&gt;Expression Web SuperPreview&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://browserlab.adobe.com/en-us/index.html#"&gt;Adobe BrowserLab&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://amrelgarhy.com/30/10-ways-for-testing-website-browser-compatibility/"&gt;http://amrelgarhy.com/30/10-ways-for-testing-website-browser-compatibility/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-8675727865465674475?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/8675727865465674475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=8675727865465674475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8675727865465674475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8675727865465674475'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/05/open-page-in-multiple-browsers.html' title='Open a Page in Multiple Browsers'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-6325513621305539276</id><published>2011-05-03T07:42:00.001-07:00</published><updated>2011-05-03T07:42:59.105-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrollbar'/><title type='text'>Scrollbar</title><content type='html'>&lt;div&gt;Top/Bottom scrollbars: &lt;a href="http://jsfiddle.net/TBnqw/1/"&gt;http://jsfiddle.net/TBnqw/1/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://jscrollpane.kelvinluck.com/"&gt;http://jscrollpane.kelvinluck.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-6325513621305539276?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/6325513621305539276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=6325513621305539276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6325513621305539276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6325513621305539276'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/05/scrollbar.html' title='Scrollbar'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5704873746579309252</id><published>2011-03-31T05:20:00.000-07:00</published><updated>2011-03-31T05:25:11.949-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>JQuery News Slider</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-B8Uu0vblKFY/TZRyKs6cXGI/AAAAAAAABgU/3VIP70P6c30/s1600/newsslider.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 136px;" src="http://1.bp.blogspot.com/-B8Uu0vblKFY/TZRyKs6cXGI/AAAAAAAABgU/3VIP70P6c30/s400/newsslider.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5590218565654174818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Demo: &lt;a href="http://landofcoder.com/demo/jquery/lofslidernews/index.html"&gt;http://landofcoder.com/demo/jquery/lofslidernews/index.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Download: &lt;a href="http://landofcoder.com/our-porfolios/jquery-plugins.html"&gt;http://landofcoder.com/our-porfolios/jquery-plugins.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5704873746579309252?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5704873746579309252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5704873746579309252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5704873746579309252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5704873746579309252'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/03/jquery-news-slider.html' title='JQuery News Slider'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-B8Uu0vblKFY/TZRyKs6cXGI/AAAAAAAABgU/3VIP70P6c30/s72-c/newsslider.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-8754031061627994313</id><published>2011-03-19T06:04:00.000-07:00</published><updated>2011-03-19T06:12:13.582-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud'/><title type='text'>Cloud Folder Storage and Sharing</title><content type='html'>&lt;div&gt;&lt;b&gt;Free:&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.dropbox.com/home#:::"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="https://www.dropbox.com/home#:::"&gt;https://www.dropbox.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.dropbox.com/home#:::"&gt;&lt;/a&gt;&lt;a href="http://www.filesanywhere.com/PricingPage.aspx"&gt;http://www.filesanywhere.com/PricingPage.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.google.com/support/bin/answer.py?hl=en&amp;amp;answer=50092"&gt;Google Docs&lt;/a&gt;; Google's Cloud Storage. It should have been renamed to Google Files rather than Google Docs as you can now upload any type of file.&lt;/li&gt;&lt;li&gt;&lt;a href="http://explore.live.com/windows-live-skydrive"&gt;SkyDrive&lt;/a&gt; from Microsoft&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-8754031061627994313?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/8754031061627994313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=8754031061627994313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8754031061627994313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8754031061627994313'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/03/cloud-folder-storage-and-sharing.html' title='Cloud Folder Storage and Sharing'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5421047388714457298</id><published>2011-03-17T02:33:00.001-07:00</published><updated>2011-06-29T08:55:41.314-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chart Controls'/><title type='text'>Char Controls for ASP.NET</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-YjNf2mBLalo/TYHXJi0OWYI/AAAAAAAABf4/GUooeOJgGnk/s1600/chart_control_samples.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-YjNf2mBLalo/TYHXJi0OWYI/AAAAAAAABf4/GUooeOJgGnk/s400/chart_control_samples.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5584981571880769922" /&gt;&lt;/a&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Free ones:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;Built-in asp.net chart control: &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/02/07/built-in-charting-controls-vs-2010-and-net-4-series.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2010/02/07/built-in-charting-controls-vs-2010-and-net-4-series.aspx&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;ASP.NET Chart samples: &lt;a href="http://archive.msdn.microsoft.com/mschart"&gt;http://archive.msdn.microsoft.com/mschart&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://archive.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=4418"&gt;http://archive.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=4418&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;amp;displaylang=en"&gt;&lt;span class="Apple-style-span"&gt;Microsoft Chart Controls for Microsoft .NET Framework 3.5&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Commercial:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://www.asp.net/community/control-gallery/browse.aspx?category=7"&gt;http://www.asp.net/community/control-gallery/browse.aspx?category=7&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Speedometer:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.dotnetcharting.com/gauge_dial_charts.aspx"&gt;http://www.dotnetcharting.com/gauge_dial_charts.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://plugins.jquery.com/node/14456"&gt;http://plugins.jquery.com/node/14456&lt;/a&gt; (FREE)&lt;/div&gt;&lt;div&gt;&lt;a href="http://documentation.devexpress.com/#WindowsForms/CustomDocument4774"&gt;http://documentation.devexpress.com/#WindowsForms/CustomDocument4774&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5421047388714457298?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5421047388714457298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5421047388714457298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5421047388714457298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5421047388714457298'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/03/char-controls-for-aspnet.html' title='Char Controls for ASP.NET'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-YjNf2mBLalo/TYHXJi0OWYI/AAAAAAAABf4/GUooeOJgGnk/s72-c/chart_control_samples.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-2547977450427418554</id><published>2011-03-08T08:06:00.000-08:00</published><updated>2011-03-08T08:07:36.269-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><title type='text'>How to create and install SSL certificate in IIS</title><content type='html'>C:\Program Files\IIS Resources\SelfSSL\selfssl.exe" /T  /N:CN={0} v /V:180 /S:{1}&lt;div&gt;&lt;br /&gt;&lt;div&gt;{0}: website name&lt;/div&gt;&lt;div&gt;{1}: website identifier&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-2547977450427418554?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/2547977450427418554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=2547977450427418554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2547977450427418554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2547977450427418554'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/03/how-to-create-and-install-ssl.html' title='How to create and install SSL certificate in IIS'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3605500719454874406</id><published>2011-03-07T01:38:00.001-08:00</published><updated>2011-03-07T01:38:20.179-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sonar'/><title type='text'>Sonar</title><content type='html'>&lt;a href="http://www.sonarsource.org/"&gt;http://www.sonarsource.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3605500719454874406?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3605500719454874406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3605500719454874406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3605500719454874406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3605500719454874406'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/03/sonar.html' title='Sonar'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-6806901199895167822</id><published>2011-03-03T23:56:00.000-08:00</published><updated>2011-03-04T00:01:54.577-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Content Management Systems'/><title type='text'>Most Popular Content Management Systems?</title><content type='html'>&lt;a href="http://www.dotnetnuke.com/"&gt;&lt;span class="Apple-style-span" &gt;http://www.dotnetnuke.com/&lt;/span&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://wordpress.org/"&gt;&lt;span class="Apple-style-span" &gt;http://wordpress.org/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.joomla.org/"&gt;&lt;span class="Apple-style-span" &gt;http://www.joomla.org/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://drupal.org/"&gt;&lt;span class="Apple-style-span" &gt;http://drupal.org/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-6806901199895167822?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/6806901199895167822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=6806901199895167822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6806901199895167822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6806901199895167822'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/03/most-popular-content-management-systems.html' title='Most Popular Content Management Systems?'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7704395257605349335</id><published>2011-03-03T23:50:00.000-08:00</published><updated>2011-08-04T02:22:10.728-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>CSS Frameworks and Tips</title><content type='html'>&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Frameworks:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;span class="Apple-style-span" &gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.blueprintcss.org/"&gt;Blueprint&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.jquery.com/UI/Theming/API#The_jQuery_UI_CSS_Framework"&gt;JQuery CSS Framework&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://lesscss.org/"&gt;LESS&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CSS Compatibility:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc351024%28VS.85%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc351024%28VS.85%29.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://devsnippets.com/article/complete-guide-to-css-frameworks.html"&gt;http://devsnippets.com/article/complete-guide-to-css-frameworks.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Tips:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://trevordavis.net/blog/the-6-most-important-css-techniques-you-need-to-know"&gt;&lt;span class="Apple-style-span" &gt;http://trevordavis.net/blog/the-6-most-important-css-techniques-you-need-to-know&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.alistapart.com/articles/goingtoprint/"&gt;&lt;span class="Apple-style-span" &gt;http://www.alistapart.com/articles/goingtoprint/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7704395257605349335?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7704395257605349335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7704395257605349335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7704395257605349335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7704395257605349335'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/03/css-frameworks.html' title='CSS Frameworks and Tips'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-4638228584802504739</id><published>2011-02-07T03:25:00.000-08:00</published><updated>2011-02-07T07:44:00.731-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint WebPart Deployment</title><content type='html'>&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;b&gt;SharePoint WebPart Solution Package (WSP):&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms413687(v=office.12).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms413687(v=office.12).aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://girishm.blog.com/2010/10/19/how-to-add-assemblies-into-gac-web-applications-bin-folder-using-wsps-created-using-visual-studio-2010s-sharepoint-projects-2/"&gt;http://girishm.blog.com/2010/10/19/how-to-add-assemblies-into-gac-web-applications-bin-folder-using-wsps-created-using-visual-studio-2010s-sharepoint-projects-2/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Deploy a web part to the bin directory:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc263271(office.12).aspx"&gt;http://technet.microsoft.com/en-us/library/cc263271(office.12).aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Deploy a web part to GAC:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;set url=http://serverName:Port&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;set wspFilePath= C:\Backups\ProjectName.wsp&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;CD\&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;c:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;CD c:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/BIN&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;@echo adding the solution to the sharepoint solution store&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;stsadm -o addsolution -filename %wspFilePath%&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;@echo deploying the solution to the sharepoint site collection&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;stsadm -o deploysolution -name "ProjectName.wsp" -url %url% -immediate -allowgac -force&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;@echo executing so that deployment happens immediately.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;stsadm -o execadmsvcjobs&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;pause&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-4638228584802504739?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/4638228584802504739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=4638228584802504739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4638228584802504739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4638228584802504739'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/02/sharepoint-webpart-deployment.html' title='SharePoint WebPart Deployment'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-6892863107487820444</id><published>2011-01-30T11:42:00.000-08:00</published><updated>2011-01-30T12:03:25.424-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDD'/><title type='text'>Domain-Driven Design (DDD)</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" &gt;DDD is a collection of patterns and best practices to address software complexities and make them more understandable and manageable.&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;MSDN Introduction: &lt;a href="http://msdn.microsoft.com/en-us/magazine/dd419654.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/dd419654.aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;CodeProject Introduction (good one): &lt;a href="http://www.codeproject.com/Articles/56767/Domain-Driven-Design.aspx"&gt;http://www.codeproject.com/Articles/56767/Domain-Driven-Design.aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Book by &lt;a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215"&gt;Eric Evans&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Community: &lt;a href="http://domaindrivendesign.org/about"&gt;http://domaindrivendesign.org/about&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-6892863107487820444?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/6892863107487820444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=6892863107487820444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6892863107487820444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6892863107487820444'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/01/domain-driven-design-ddd.html' title='Domain-Driven Design (DDD)'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-682573722646334388</id><published>2011-01-29T10:42:00.001-08:00</published><updated>2011-01-29T10:42:48.137-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Image Optimizer'/><title type='text'>Image Optimizer</title><content type='html'>&lt;a href="http://mav.vipserv.org/webp/"&gt;http://mav.vipserv.org/webp/&lt;/a&gt;&lt;div&gt;&lt;a href="http://www.imageoptimizer.net/Pages/Home.aspx"&gt;http://www.imageoptimizer.net/Pages/Home.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-682573722646334388?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/682573722646334388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=682573722646334388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/682573722646334388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/682573722646334388'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/01/image-optimizer.html' title='Image Optimizer'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5842960036086942544</id><published>2011-01-28T02:31:00.000-08:00</published><updated>2011-01-31T10:18:17.377-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FireBug'/><title type='text'>What Can't You Do With FireBug?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.download.ba/program-image/firebug.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 365px; height: 260px;" src="http://www.download.ba/program-image/firebug.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div&gt;Spend some time reviewing the great features of firebug &lt;a href="http://getfirebug.com/whatisfirebug"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5842960036086942544?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5842960036086942544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5842960036086942544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5842960036086942544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5842960036086942544'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/01/what-can-you-do-with-firebug.html' title='What Can&apos;t You Do With FireBug?'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-6062288987076853749</id><published>2011-01-27T09:02:00.000-08:00</published><updated>2012-02-01T02:35:17.202-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Regular Expressions'/><category scheme='http://www.blogger.com/atom/ns#' term='Regex'/><title type='text'>Regex and Regular Expressions</title><content type='html'>&lt;span class="Apple-style-span"&gt;Regex Editors:&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/55c24bf1-2636-4f94-831d-28db8505ce00"&gt;&lt;span class="Apple-style-span"&gt;http://visualstudiogallery.msdn.microsoft.com/55c24bf1-2636-4f94-831d-28db8505ce00&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ultrapico.com/Expresso.htm"&gt;&lt;span class="Apple-style-span"&gt;http://www.ultrapico.com/Expresso.htm&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/regexpeditor/"&gt;&lt;span class="Apple-style-span"&gt;http://sourceforge.net/projects/regexpeditor/&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Tutorials:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;User Guide: &lt;a href="http://www.zytrax.com/tech/web/regex.htm"&gt;http://www.zytrax.com/tech/web/regex.htm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.regular-expressions.info/reference.html"&gt;&lt;span class="Apple-style-span"&gt;http://www.regular-expressions.info/reference.html&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://www.codeproject.com/kb/dotnet/regextutorial.aspx"&gt;http://www.codeproject.com/kb/dotnet/regextutorial.aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Examples:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-6062288987076853749?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/6062288987076853749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=6062288987076853749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6062288987076853749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6062288987076853749'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/01/regex.html' title='Regex and Regular Expressions'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-4706741334339865589</id><published>2011-01-23T04:40:00.001-08:00</published><updated>2011-01-23T04:41:34.364-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Passing Values between JavaScript and ASP.NET</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" &gt;Many good common ways are explained here:&lt;/span&gt;&lt;/div&gt;&lt;a href="http://www.codedigest.com/Articles/ASPNET/347_Pass_Values_from_CodeBehind_to_JavaScript_and_From_JavaScript_to_CodeBehind_in_ASPNet.aspx"&gt;&lt;span class="Apple-style-span" &gt;http://www.codedigest.com/Articles/ASPNET/347_Pass_Values_from_CodeBehind_to_JavaScript_and_From_JavaScript_to_CodeBehind_in_ASPNet.aspx&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-4706741334339865589?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/4706741334339865589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=4706741334339865589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4706741334339865589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4706741334339865589'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/01/passing-values-between-javascript-and.html' title='Passing Values between JavaScript and ASP.NET'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5315482338604430381</id><published>2011-01-18T06:03:00.001-08:00</published><updated>2011-01-18T06:06:08.483-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>How to Enable SessionState in SharePoint 2010?</title><content type='html'>&lt;span class="Apple-style-span" &gt;You'd like to use session object in your code but you receive an error saying that by default it's disabled.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;You'd need to make these changes in the web.config of your application:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;1) add the SessionStateModule assembly&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;lt;add name=&amp;quot;SessionState&amp;quot; type=&amp;quot;System.Web.SessionState.SessionStateModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;2) Add a http module&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt; &amp;lt;httpModules&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;      &amp;lt;add name=&amp;quot;SessionState&amp;quot; type=&amp;quot;System.Web.SessionState.SessionStateModule&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;    &amp;lt;/httpModules&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;3) Enable session state&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt; &amp;lt;pages enableSessionState=&amp;quot;true&amp;quot; ... /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5315482338604430381?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5315482338604430381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5315482338604430381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5315482338604430381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5315482338604430381'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/01/how-to-enable-sessionstate-in.html' title='How to Enable SessionState in SharePoint 2010?'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-4012556913721807788</id><published>2011-01-12T07:58:00.000-08:00</published><updated>2011-01-13T02:04:57.820-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='js-builder'/><title type='text'>How to compress JS files?</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;Using &lt;a href="http://code.google.com/p/js-builder"&gt;js-builder&lt;/a&gt;, you can combine and compress JS files and resources from a simple user interface which improves the performance and download time of these files.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-4012556913721807788?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/4012556913721807788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=4012556913721807788' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4012556913721807788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4012556913721807788'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/01/how-to-compress-js-files.html' title='How to compress JS files?'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-6012295324026581733</id><published>2011-01-11T03:49:00.001-08:00</published><updated>2011-01-13T02:40:42.176-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='extjs'/><title type='text'>ExtJS</title><content type='html'>&lt;div&gt;It's another javascript library like JQuery but perhaps with more features and controls and we currently use it!&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Development API: &lt;a href="http://dev.sencha.com/deploy/dev/docs/"&gt;http://dev.sencha.com/deploy/dev/docs/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.sencha.com/deploy/dev/docs/"&gt;&lt;/a&gt;Forum: &lt;a href="http://www.sencha.com/forum/"&gt;http://www.sencha.com/forum/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://www.sencha.com/forum/"&gt;&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-6012295324026581733?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/6012295324026581733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=6012295324026581733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6012295324026581733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6012295324026581733'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/01/extjs.html' title='ExtJS'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7035302251069461822</id><published>2011-01-09T08:59:00.000-08:00</published><updated>2011-01-11T07:06:08.221-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Url Rewrite'/><title type='text'>How to Configure Url Rewrite Module in IIS 7.0?</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Url Rewrite module is a free IIS 7.0 module which helps you implement url rewriting.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Ok, what is url rewriting anyway? for example you might want to let users use this url {0} and in the background you'd like that request to be sent to this url {1}.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;{0}: http://sitename/productId=1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;{1}: http://sitename/products/productdetails.aspx?pid=1&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;More about Url Rewrite module: &lt;a href="http://www.iis.net/download/URLRewrite"&gt;http://www.iis.net/download/URLRewrite&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://www.iis.net/download/URLRewrite"&gt;&lt;/a&gt;Video about how to configure it: &lt;a href="http://learn.iis.net/page.aspx/506/url-rewrite-module---video-walkthrough/"&gt;http://learn.iis.net/page.aspx/506/url-rewrite-module---video-walkthrough/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;A good example for sharepoint: &lt;a href="http://blog.mastykarz.nl/friendly-urls-sharepoint-site-4-steps-iis7-url-rewrite-module/"&gt;http://blog.mastykarz.nl/friendly-urls-sharepoint-site-4-steps-iis7-url-rewrite-module/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Reverse Proxy with Url Rewrite module: &lt;a href="http://learn.iis.net/page.aspx/659/reverse-proxy-with-url-rewrite-v2-and-application-request-routing/"&gt;http://learn.iis.net/page.aspx/659/reverse-proxy-with-url-rewrite-v2-and-application-request-routing/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Reverse proxy with url rewrite can be used when you need to rewrite an external url into your original url. By external url, I mean a url which is not on the same site.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;Rules:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;There are 2 ways to define the rules either using web.config or using IIS Url Writing section; both of these are sync with each other.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;SSL Offloading:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;When you enable SSL Offloading in IIS, then communication between ARR to the contents server will be using clear text rather than SSL.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blogs.iis.net/wonyoo/archive/2008/07/10/ssl-off-loading-in-application-request-routing.aspx"&gt;&lt;span class="Apple-style-span" &gt;http://blogs.iis.net/wonyoo/archive/2008/07/10/ssl-off-loading-in-application-request-routing.aspx&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7035302251069461822?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7035302251069461822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7035302251069461822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7035302251069461822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7035302251069461822'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/01/how-to-configure-url-rewrite-module-in.html' title='How to Configure Url Rewrite Module in IIS 7.0?'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3932712431172828835</id><published>2011-01-07T08:09:00.000-08:00</published><updated>2011-01-07T08:12:56.533-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='URL'/><title type='text'>URL Rewrite vs URL Redirect</title><content type='html'>&lt;a href="http://recomparison.com/comparisons/101037/url-rewrite-vs-redirect/"&gt;http://recomparison.com/comparisons/101037/url-rewrite-vs-redirect/&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;URL Rewrite&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Is a server side operation which means the rewriting is done at the server&lt;/li&gt;&lt;li&gt;May result in a static page, a dynamic page, or an image file&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;URL Redirect&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Is a client side operation&lt;/li&gt;&lt;li&gt;Accepts the request then sends a response to the client immediately with the new URL&lt;/li&gt;&lt;li&gt;Therefore, it causes the client browser to make a second request with the new URL&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3932712431172828835?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3932712431172828835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3932712431172828835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3932712431172828835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3932712431172828835'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/01/url-rewrite-vs-url-redirect.html' title='URL Rewrite vs URL Redirect'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5373401680333880607</id><published>2011-01-06T02:17:00.000-08:00</published><updated>2011-01-12T03:30:35.324-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>How to Add Custom CSS and JS files to Your Visual Web Part</title><content type='html'>&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Adding CSS&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;1. Add "Layouts" mapped folder to Visual WebPart Project.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;2. Create a folder structure layouts/styles/themable &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;3. Add the css file to the styles folder .If you are using themable styles then also add it to themable folder too&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;4. Register the CSS file by adding following line into your visual webpart&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;SharePoint:CssRegistration ID=&amp;quot;cssId&amp;quot; name=&amp;quot;/_layouts/projectName/cssName.css&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt; &lt;sharepoint:cssregistration name="custom.css" runat="server" enablecsstheming="true" after="true"&gt;&lt;/sharepoint:cssregistration&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.cssregistration.aspx&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;(Note: Another approach From sharepoint designer add css file to style library and refer it in css registration)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Adding JS&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;1. Add "Layouts" mapped folder to Visual WebPart Project.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;2. Add you JS file to layout folder or your project specific folder&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;3. Add the script link to your webpart&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;SharePoint:ScriptLink ID=&amp;quot;scriptLinkId&amp;quot; name=&amp;quot;ProjectName/jsFileName.js&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;sharepoint:scriptlink name="custom.js" runat="server" ondemand="False" localizable="False"&gt;&lt;/sharepoint:scriptlink&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5373401680333880607?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5373401680333880607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5373401680333880607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5373401680333880607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5373401680333880607'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2011/01/how-to-add-custom-css-and-js-files-to.html' title='How to Add Custom CSS and JS files to Your Visual Web Part'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5200868640035967516</id><published>2010-12-22T05:31:00.000-08:00</published><updated>2010-12-23T09:32:09.799-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kerberos'/><category scheme='http://www.blogger.com/atom/ns#' term='Authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='NTLM'/><title type='text'>SharePoint Authentication</title><content type='html'>&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Microsoft Kerberos (Negotiate)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Client obtains a ticket from KDC (Kerberos Key Distribution Center) then the ticket is presented to servers for authentication.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;How Kerberos works: &lt;a href="http://learn-networking.com/network-security/how-kerberos-authentication-works"&gt;http://learn-networking.com/network-security/how-kerberos-authentication-works&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa378747(v=vs.85).aspx"&gt;&lt;span class="Apple-style-span" &gt;http://msdn.microsoft.com/en-us/library/aa378747(v=vs.85).aspx&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Microsoft NTLM&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Microsoft NTLM: &lt;a href="http://msdn.microsoft.com/en-us/library/aa378749(v=vs.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa378749(v=vs.85).aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Domain name, username and a hash-key is sent from the client to the domain controller; Password is not sent over the wire!&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Domain controller is where the information about the user is stored; Active Directory&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;Forms-based Authentication:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc262350.aspx"&gt;&lt;span class="Apple-style-span" &gt;http://technet.microsoft.com/en-us/library/cc262350.aspx&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/pranab/archive/2010/07/26/how-to-create-custom-login-form-for-sharepoint-2010-form-based-authentication.aspx"&gt;&lt;span class="Apple-style-span" &gt;http://blogs.msdn.com/b/pranab/archive/2010/07/26/how-to-create-custom-login-form-for-sharepoint-2010-form-based-authentication.aspx&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb975135(office.12).aspx#MOSSFBAPart2_CustomLogonPage"&gt;&lt;span class="Apple-style-span" &gt;http://msdn.microsoft.com/en-us/library/bb975135(office.12).aspx#MOSSFBAPart2_CustomLogonPage&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg317440.aspx"&gt;http://msdn.microsoft.com/en-us/library/gg317440.aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Custom Login Page With Forms Authentication:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/kaevans/archive/2010/07/09/creating-a-custom-login-page-for-sharepoint-2010.aspx"&gt;&lt;span class="Apple-style-span" &gt;http://blogs.msdn.com/b/kaevans/archive/2010/07/09/creating-a-custom-login-page-for-sharepoint-2010.aspx&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://blogs.technet.com/b/speschka/archive/2010/07/21/writing-a-custom-forms-login-page-for-sharepoint-2010-part-1.aspx"&gt;http://blogs.technet.com/b/speschka/archive/2010/07/21/writing-a-custom-forms-login-page-for-sharepoint-2010-part-1.aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.technet.com/b/speschka/archive/2010/07/22/writing-a-custom-forms-login-page-for-sharepoint-2010-part-2.aspx"&gt;&lt;span class="Apple-style-span" &gt;http://blogs.technet.com/b/speschka/archive/2010/07/22/writing-a-custom-forms-login-page-for-sharepoint-2010-part-2.aspx&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Custom Login Page With Windows Authentication:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/chunliu/archive/2010/09/21/creating-a-custom-login-page-for-windows-authentication.aspx"&gt;&lt;span class="Apple-style-span" &gt;http://blogs.msdn.com/b/chunliu/archive/2010/09/21/creating-a-custom-login-page-for-windows-authentication.aspx&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Claims-baed authentication:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5200868640035967516?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5200868640035967516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5200868640035967516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5200868640035967516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5200868640035967516'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/12/application-authentication.html' title='SharePoint Authentication'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7630282357784656539</id><published>2010-12-16T08:39:00.000-08:00</published><updated>2010-12-20T05:47:02.169-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTPS'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>How to: Configure a Port with an SSL Certificate</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/ms733791.aspx"&gt;&lt;span class="Apple-style-span"&gt;http://msdn.microsoft.com/en-us/library/ms733791.aspx&lt;/span&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Add a certificate:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;netsh http add sslcert ipport=0.0.0.0:6080 certhash=bcb0d7372d065fdb4047d6fdde64b1c84f6e12c2 appid={00000000-0000-0000-0000-000000000000} clientcertnegotiation=enable&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Delete a certificate:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;netsh http delete sslcert ipport=0.0.0.0:6080&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7630282357784656539?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7630282357784656539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7630282357784656539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7630282357784656539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7630282357784656539'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/12/how-to-configure-port-with-ssl.html' title='How to: Configure a Port with an SSL Certificate'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-947500312869642348</id><published>2010-12-02T09:51:00.000-08:00</published><updated>2010-12-07T07:52:37.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='MMS'/><title type='text'>MMS Video Live Streaming</title><content type='html'>&lt;span class="Apple-style-span" &gt;List of some live mms video streams: &lt;a href="http://www.kensfi.com/watch-live-tv-channels-streams-with-vlc-media-player/"&gt;http://www.kensfi.com/watch-live-tv-channels-streams-with-vlc-media-player/&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://sourceforge.net/projects/vlc/files/1.1.5/win32/vlc-1.1.5-win32.exe/download"&gt;&lt;span class="Apple-style-span"&gt;VLC Player&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"&gt; can display mms video streams.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;An Example for IE:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;object id="MediaPlayer" width="500" height="400"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6" standby="Loading&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Windows Media Player components..." type="application/x-oleobject"&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;    &amp;lt;param name="url" value="mms://81.89.49.210/musicbox" /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;    &amp;lt;param Name="FileName" Value="mms://81.89.49.210/musicbox"&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;    &amp;lt;param name="controller" value="true" /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;    &amp;lt;param name="autoplay" value="true" /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;    &amp;lt;param name="autoStart" value="true"/&amp;gt;      &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&amp;lt;/object&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;How to Modify the Url &lt;/b&gt;&lt;b&gt;Programmatically&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.microsoft.com/windows/windowsmedia/howto/articles/adsolutions2.aspx"&gt;http://www.microsoft.com/windows/windowsmedia/howto/articles/adsolutions2.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More info about properties, methods and events of this Activex object, please refer to this: &lt;a href="http://msdn.microsoft.com/en-us/library/dd564034(v=VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd564034(v=VS.85).aspx&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-947500312869642348?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/947500312869642348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=947500312869642348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/947500312869642348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/947500312869642348'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/12/mms-video-live-streaming.html' title='MMS Video Live Streaming'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3559666649499874368</id><published>2010-11-25T07:10:00.000-08:00</published><updated>2010-11-25T07:46:07.918-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint ULS Log</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;ULS&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;: &lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); line-height: 18px; "&gt; Unified Logging Service&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: Verdana, Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); line-height: 18px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&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: Verdana, Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); line-height: 18px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Location:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); line-height: 18px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SharePoint logs are located here by default:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="line-height: 18px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS&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: Verdana, Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); line-height: 18px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;ULS Viewer tool&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;: &lt;a href="http://ulsviewer.codeplex.com/"&gt;http://ulsviewer.codeplex.com/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Configure logging level in SharePoint:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee748656.aspx"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://technet.microsoft.com/en-us/library/ee748656.aspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A hotfix for Sharepoint Shared Services:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://code.msdn.microsoft.com/KB976462"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://code.msdn.microsoft.com/KB976462&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3559666649499874368?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3559666649499874368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3559666649499874368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3559666649499874368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3559666649499874368'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/11/sharepoint-uls-log.html' title='SharePoint ULS Log'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-2582789408504445190</id><published>2010-11-24T03:00:00.000-08:00</published><updated>2010-11-24T03:01:42.178-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>How to Extend a SharePoint Web Application</title><content type='html'>Video: &lt;a href="http://technet.microsoft.com/en-us/sharepoint/ff679931.aspx"&gt;http://technet.microsoft.com/en-us/sharepoint/ff679931.aspx&lt;/a&gt;&lt;div&gt;MSDN: &lt;a href="http://technet.microsoft.com/en-us/library/gg276323.aspx"&gt;http://technet.microsoft.com/en-us/library/gg276323.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-2582789408504445190?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/2582789408504445190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=2582789408504445190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2582789408504445190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2582789408504445190'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/11/how-to-extend-sharepoint-web.html' title='How to Extend a SharePoint Web Application'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-4582081340736178476</id><published>2010-11-18T06:19:00.000-08:00</published><updated>2010-12-08T04:05:24.545-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='stsadm'/><title type='text'>How to Deploy a SharePoint 2010 Web Application/Site from One Server to the Other?</title><content type='html'>&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;Option1&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana; color: rgb(51, 51, 51); line-height: 16px; " &gt;1. Use SQL Management Studio to backup the Content Database&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;p style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;How to: Back Up a Database (SQL Server Management Studio):&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms187510.aspx" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 102, 221); cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;http://msdn.microsoft.com/en-us/library/ms187510.aspx&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;2. Restore the Content Database to your new SQL server&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;How to: Restore a Database Backup (SQL Server Management Studio):&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms177429.aspx" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 102, 221); cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;http://msdn.microsoft.com/en-us/library/ms177429.aspx&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;3. Create a new web application in Central Admin on the new farm:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;Create a Web application (SharePoint Foundation 2010):&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc288705.aspx" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 102, 221); cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;http://technet.microsoft.com/en-us/library/cc288705.aspx&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;4. Delete the content Database that get's created by the new web application(from step 4)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;Central Admin &gt; Application Management &gt; Content Databases &gt; delete the empty db from your web application (created in step 3)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;5. Use SharePoint Management Shell(Mount-SPContentDatabase), Stsadm(-o addcontentdb) or Central Admin to add the contentdatabase:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;Add a content database (SharePoint Server 2010):&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc825314.aspx" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 102, 221); cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;http://technet.microsoft.com/en-us/library/cc825314.aspx&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;6. Make sure that your account has administrative permissions on the site collection(update site collection administrator)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;Add or remove site collection administrators (SharePoint Server 2010):&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 102, 221); cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff631156.aspx" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 102, 221); cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;http://technet.microsoft.com/en-us/library/ff631156.aspx&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 102, 221); cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; " &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;Option 2: Site Collection Backup&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;1. Create a backup of your site collection which gives you a .bak file using stsadm tool or using the Central Administration&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;2. use the following command line tool to restore this backup file&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span" style="line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;stsadm -o restore -url http://servername/s&lt;server&gt;ites/sitename&lt;site&gt; -filename C:\Backups\siteCollectionBackup.bak -restoremethod overwrite -overwrite&lt;/site&gt;&lt;/server&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span" style="line-height: 16px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;server&gt;&lt;site&gt;&lt;br /&gt;&lt;/site&gt;&lt;/server&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;server&gt;&lt;site&gt;&lt;span class="Apple-style-span" style="line-height: 16px; " &gt;http://technet.microsoft.com/en-us/library/cc262087(office.12).aspx&lt;/span&gt;&lt;/site&gt;&lt;/server&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;server&gt;&lt;site&gt;&lt;span class="Apple-style-span" style="line-height: 16px; " &gt;&lt;br /&gt;&lt;/span&gt;&lt;/site&gt;&lt;/server&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;server&gt;&lt;site&gt;&lt;span class="Apple-style-span" style="line-height: 16px; " &gt;&lt;b&gt;Option 3: Deploy Custom WebParts&lt;/b&gt;&lt;/span&gt;&lt;/site&gt;&lt;/server&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;a href="http://www.cmswire.com/cms/tips-tricks/how-to-deploy-sharepoint-webparts-000618.php"&gt;http://www.cmswire.com/cms/tips-tricks/how-to-deploy-sharepoint-webparts-000618.php&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="line-height: 16px; "&gt;When built, it creates wsp file which can be used for the deployment&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 16px; "&gt;Use either stsadm tool or powershell tool to deploy the wsp file&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163379.aspx#S4"&gt;http://msdn.microsoft.com/en-us/magazine/cc163379.aspx#S4&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;Addsolution parameter: &lt;a href="http://technet.microsoft.com/en-us/library/cc288721(office.12).aspx"&gt;http://technet.microsoft.com/en-us/library/cc288721(office.12).aspx&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Deploysolution parameter: &lt;a href="http://technet.microsoft.com/en-us/library/cc288449(office.12).aspx"&gt;http://technet.microsoft.com/en-us/library/cc288449(office.12).aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;Deploywppack parameter: &lt;a href="http://technet.microsoft.com/en-us/library/cc288159(office.12).aspx"&gt;http://technet.microsoft.com/en-us/library/cc288159(office.12).aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc261956(office.12).aspx"&gt;&lt;span class="Apple-style-span" &gt;Stsadm command-line tool&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;From msdn forum: &lt;a href="http://social.msdn.microsoft.com/Forums/en/sharepointdevelopment/thread/5a51ea41-2075-4dcc-b99e-e1b10628b969"&gt;http://social.msdn.microsoft.com/Forums/en/sharepointdevelopment/thread/5a51ea41-2075-4dcc-b99e-e1b10628b969&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;Option 3: Deploy Custom Html or ASP pages&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;One manual way is to create a virtual directory inside your web application and put the pages there.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" style="border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;server&gt;&lt;site&gt;&lt;span class="Apple-style-span" style="line-height: 16px; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/site&gt;&lt;/server&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-4582081340736178476?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/4582081340736178476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=4582081340736178476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4582081340736178476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4582081340736178476'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/11/how-to-deploy-sharepoint-2010-web.html' title='How to Deploy a SharePoint 2010 Web Application/Site from One Server to the Other?'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-693828351311868051</id><published>2010-10-29T15:41:00.000-07:00</published><updated>2010-10-29T15:42:20.698-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video Upload'/><title type='text'>Upload Videos</title><content type='html'>http://vimeo.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-693828351311868051?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/693828351311868051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=693828351311868051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/693828351311868051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/693828351311868051'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/10/upload-videos.html' title='Upload Videos'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7611114777576893260</id><published>2010-10-22T03:28:00.000-07:00</published><updated>2010-10-22T03:30:28.103-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><category scheme='http://www.blogger.com/atom/ns#' term='Cookie'/><title type='text'>Ways to Add Cookie for WCF</title><content type='html'>&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div&gt;Approaches to add cookie for WCF responses:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;1)&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Use &lt;span class="Apple-style-span" style="white-space: pre; "&gt;HttpContext.Current.Response.Cookies.Add&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; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&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; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2)&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; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Use the MessageHeader section of MessageContract&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; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&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; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;3)&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; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Use &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; line-height: 18px; white-space: pre; "&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WebOperationContext&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Current&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;OutgoingResponse&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Headers&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;Add&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7611114777576893260?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7611114777576893260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7611114777576893260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7611114777576893260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7611114777576893260'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/10/ways-to-add-cookie-for-wcf.html' title='Ways to Add Cookie for WCF'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3230459995149608349</id><published>2010-10-21T09:49:00.001-07:00</published><updated>2010-10-21T09:49:59.411-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>HTML 5.0</title><content type='html'>HTML 5.0 elements and their examples: &lt;a href="http://simon.html5.org/html5-elements"&gt;http://simon.html5.org/html5-elements&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3230459995149608349?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3230459995149608349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3230459995149608349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3230459995149608349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3230459995149608349'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/10/html-50.html' title='HTML 5.0'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-6748424705423075376</id><published>2010-10-14T09:32:00.000-07:00</published><updated>2010-10-18T02:41:19.318-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Telnet'/><title type='text'>All About Telnet</title><content type='html'>&lt;div&gt;Frequently Asked Questions: &lt;a href="http://windows.microsoft.com/en-US/windows-vista/Telnet-frequently-asked-questions"&gt;http://windows.microsoft.com/en-US/windows-vista/Telnet-frequently-asked-questions&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-6748424705423075376?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/6748424705423075376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=6748424705423075376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6748424705423075376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6748424705423075376'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/10/all-about-telnet.html' title='All About Telnet'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-2260876232109244802</id><published>2010-10-10T15:41:00.000-07:00</published><updated>2010-10-10T15:43:00.362-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='StyleCopCmd'/><category scheme='http://www.blogger.com/atom/ns#' term='TeamCity'/><category scheme='http://www.blogger.com/atom/ns#' term='StyleCop'/><category scheme='http://www.blogger.com/atom/ns#' term='NAnt'/><title type='text'>StyleCopCmd</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif, Geneva; font-size: 11px; color: rgb(8, 8, 8); "&gt;StyleCopCmd provides a command line interface and NAnt task for interacting with StyleCop. StyleCopCmd also creates beautiful HTML reports, making it easy to integrate with continuous integration servers such as TeamCity.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif, Geneva; font-size: 11px; color: rgb(8, 8, 8); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif, Geneva; font-size: 11px; color: rgb(8, 8, 8); "&gt;&lt;a href="http://sourceforge.net/projects/stylecopcmd/"&gt;http://sourceforge.net/projects/stylecopcmd/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-2260876232109244802?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/2260876232109244802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=2260876232109244802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2260876232109244802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2260876232109244802'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/10/stylecopcmd.html' title='StyleCopCmd'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-1787143009686339413</id><published>2010-10-01T10:41:00.001-07:00</published><updated>2011-05-28T10:54:32.547-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unit Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Patterns of Naming Unit Tests</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;How would you name your test project, test fixtures and test cases?&lt;/b&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="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;Make sure your naming approach is consistent throughout your project.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;Make sure names are clear and specific.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;Each person can invent his/her own pattern of course but these are some common ones:&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;1) Test Project&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&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"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;Pattern 1&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span"&gt;Create a test project per production project and postfix it with "Tests" e.g. "Model.Tests" for the "Model" project. so if you have 10 production projects, create 10 test projects and put then inside a "UnitTests" Visual Studio folder for better grouping.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span"&gt;Example:&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="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span"&gt;Project name: &lt;b&gt;Model &lt;/b&gt;(as you don't put the name of the Company to the project name)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;span class="Apple-style-span"&gt;Namespace: &lt;b&gt;Company.Model&lt;/b&gt; (namespace would contain the Company name)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;span class="Apple-style-span"&gt;Assembly name: &lt;b&gt;Company.Model.dll&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;span class="Apple-style-span"&gt;Test project name: &lt;b&gt;Model.Tests&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;span class="Apple-style-span"&gt;Test namespace: &lt;b&gt;Company.Model.Tests&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;span class="Apple-style-span"&gt;Test assembly name: &lt;b&gt;Company.Model.Tests.dll&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Pattern 2&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;Another pattern (or better anti-pattern) is to have one project containing all tests for all projects; I think Pattern 1 is better for simplicity and maintainability so that one would be my preferable choice.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;2) Test Fixtures&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;1 Test fixture per production class.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Pattern 1: "Tests" or "Fixture" Suffix&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;"Model.Tests.CalculatorTests" or "&lt;/span&gt;Model.Tests.CalculatorFixture" for the production class of "Model.Calculator"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Pattern 2: "For." Prefix&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;"Model.Tests.For.Calculator" for the production class of "Model.Calculator".&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;The benefit of this naming is that you won't have to repeat the word "Tests" for your fixtures also it would have a nicer readability as you can read it like a sentence "Tests for Calculator" but at the same time, you're adding extra "For." for your classes.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Pattern 1 is often my preferred choice.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&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"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;3) Test Names&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Pattern 1: MethodName_ScenarioOrCondition_ExpectedBehaviour or GivenX_WhenY_ThenZ&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;This pattern has "_" that FXCop doesn't like.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;It's simple to map which class or method to which test, however, if method names change, you'd want to change your test names as well. Another option is not using the "method name under test" but instead using "behavior under test".&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;This patterns says that, when someone looks at your test name, he should easily find out 1) what is the unit which is being tested? 2) under what condition is it tested? 3) what is the expected behaviour for this condition?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;e.g.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;public void AnalyzeFile_FileTooShort_ThrowTooShortException()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;or&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;public void GivenAnalyzeFile_WhenFileTooShort_ThenThrowTooShortException()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;The second option is easier to read&lt;/span&gt;, isn't it?&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Pattern 2: WithXShouldY or WhenXExpectY&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;In this pattern, there is no "_" so it makes FXCop happy but of course it reduces readability.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;The test name has no indication of what method or action therefore, you'd need to put the method name in the test class instead e.g.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Example:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;WithEmptyF&lt;wbr style="display: inline-block; "&gt;ileName&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;ShouldThro&lt;wbr style="display: inline-block; "&gt;wException or&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;When&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;EmptyF&lt;wbr style="display: inline-block; "&gt;ileNameExpect&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;Thro&lt;wbr style="display: inline-block; "&gt;wException or&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;When&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;EmptyF&lt;wbr style="display: inline-block; "&gt;ileName_Expect&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;Thro&lt;wbr style="display: inline-block; "&gt;wException &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;ProductionProjectName.Tests&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;.F&lt;wbr style="display: inline-block; "&gt;or&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span"&gt;.Foobar (test fixture for production &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;feature/component/class&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;/class)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;.WhenAnalys&lt;wbr style="display: inline-block; "&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;ing (method, action or behavior)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;.&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;WhenEmptyF&lt;wbr style="display: inline-block; "&gt;ileNameExpect&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;Thro&lt;wbr style="display: inline-block; "&gt;wException &lt;/b&gt;(test method name)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;Pattern 3: Separate Each Word!&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;This is a very old pattern.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;Example: &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;AnalyzeFile_File_Too_Short_Throw_Too_Short_Exception()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Pattern 4: End method names with "Test"&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;Why would you want to add "Test" to the test name which is attributed with "TestMethod" already?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;Not my choice.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Example:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;AnalyzeFileTest()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-1787143009686339413?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/1787143009686339413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=1787143009686339413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1787143009686339413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1787143009686339413'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/10/patterns-of-naming-unit-tests.html' title='Patterns of Naming Unit Tests'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5385115670708862129</id><published>2010-09-28T06:24:00.001-07:00</published><updated>2010-10-07T04:22:45.593-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Diagnostics'/><category scheme='http://www.blogger.com/atom/ns#' term='Process'/><title type='text'>How to Analyse a Running Process?</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;ProcDumpt: &lt;/span&gt;&lt;/span&gt;&lt;a href="http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;DebugDiag: &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=28bd5941-c458-46f1-b24d-f60151d875a3&amp;amp;displaylang=en"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=28bd5941-c458-46f1-b24d-f60151d875a3&amp;amp;displaylang=en&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;WinDbg:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;http://www.microsoft.com/whdc/devtools/debugging/default.mspx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://en.wikipedia.org/wiki/WinDbg"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;http://en.wikipedia.org/wiki/WinDbg&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;h3 class="post-name" style="clear: both; font-weight: normal; line-height: 25px; margin-top: 0px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;Automatically Capturing a Dump When a Process Crashes: &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;a href="http://blogs.msdn.com/b/clrteam/archive/2009/10/15/automatically-capturing-a-dump-when-a-process-crashes.aspx"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" &gt;http://blogs.msdn.com/b/clrteam/archive/2009/10/15/automatically-capturing-a-dump-when-a-process-crashes.aspx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5385115670708862129?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5385115670708862129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5385115670708862129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5385115670708862129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5385115670708862129'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/09/process-debug-diagnostics.html' title='How to Analyse a Running Process?'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7290303804439654530</id><published>2010-09-27T02:09:00.000-07:00</published><updated>2010-10-19T10:05:32.449-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ocs'/><title type='text'>Microsoft OCS</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Office Communication Service (OCS):&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Technical documentation to help understand, plan, deploy and operate OCS 2007 &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=E9F86F96-AA09-4DCA-9088-F64B4F01C703"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Active Directory and Supported Forest Topologies: &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd441359(office.13).aspx"&gt;http://technet.microsoft.com/en-us/library/dd441359(office.13).aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Lync Server: &lt;a href="http://www.microsoft.com/en-us/lync/default.aspx"&gt;http://www.microsoft.com/en-us/lync/default.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7290303804439654530?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7290303804439654530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7290303804439654530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7290303804439654530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7290303804439654530'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/09/microsoft-ocs.html' title='Microsoft OCS'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3369859967911996895</id><published>2010-09-09T09:59:00.001-07:00</published><updated>2010-09-09T10:10:21.846-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bug Fixing'/><title type='text'>Bug Fixing</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Bug fixing is most often easy and straightforward if you follow this pattern.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Bug Template:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Every bug should be written using the following template&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Title:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;[text]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Description:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;[text]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Steps to reproduce:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;[numeric list of the steps to clarify how to reproduce the bug]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Actual:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;[what is the actual behavior which happens]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Expected:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;[what is the expected behavior]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Supporting info:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;[text, attachments, images, stack trace, etc]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Bug Fixing Strategy&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The general strategy for bug fixing is as following:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;ol class="decimal" style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 40px; list-style-type: decimal; list-style-position: initial; list-style-image: initial; display: block; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Make sure the bug details is in your bug tracking tool (e.g. Jira, BugZilla, etc); if it's not add it using the bug template provided above&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Assign the bug to yourself or the person who will be in charge of the bug fixing&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Investigate and understand what the bug is - if it's not clear ask the person who raised the bug for further clarification and completing the template above&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Investigate and understand how to reproduce the error&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;observe the bug is reproduced in code&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Investigate and understand why the bug exists&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Propose possible solutions&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Choose the best solution; if required consult&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Fix it and write unit test or integration test for it - in some cases you can write the test first which is a better practice if possible&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Retest and observe that the bug doesn't get reproduced&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Set the bug status in your bug tracking tool to "Fixed" and assign it to your testing manager&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3369859967911996895?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3369859967911996895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3369859967911996895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3369859967911996895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3369859967911996895'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/09/bug-fixing.html' title='Bug Fixing'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3265920150158295737</id><published>2010-09-01T11:27:00.000-07:00</published><updated>2010-09-03T02:18:22.153-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Email'/><title type='text'>How to Check Multiple Email Accounts Quickly</title><content type='html'>Problem:&lt;br /&gt;You have a number of email accounts with gmail, yahoo, msn, etc and each time you want to check your emails it takes some time logging into these accounts. Your bright mind tells you that there must be an easier and quicker way to check all these email accounts at once!&lt;br /&gt;&lt;br /&gt;Free Solutions:&lt;br /&gt;&lt;br /&gt;Desktop-based tools:&lt;br /&gt;Thunderbird, YPOPs, Zimbra Desktop, WebMail&lt;br /&gt;&lt;br /&gt;Web-based tools:&lt;br /&gt;Fuser, Mail2Web&lt;br /&gt;&lt;br /&gt;My notes:&lt;br /&gt;Use a more reliable &amp;amp; popular tool such as Thunderbird or Zimbra rather than using any tools you see on search engines randomly + if you use these tools it would be slower than checking your emails directly on google for instance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3265920150158295737?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3265920150158295737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3265920150158295737' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3265920150158295737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3265920150158295737'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/09/how-to-check-multiple-email-accounts.html' title='How to Check Multiple Email Accounts Quickly'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5993580398178799054</id><published>2010-08-21T11:03:00.001-07:00</published><updated>2010-08-21T11:04:51.062-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='BackgroundWorker'/><title type='text'>Updating UI Elements using ProgressChanged event of BackgroundWorker</title><content type='html'>&lt;p&gt;As you probably know, the only thread which can update a UI element, such as a Label, is the main thread which created that UI element. &lt;/p&gt;  &lt;p&gt;In my &lt;a href="http://pooyakhamooshi.blogspot.com/2010/07/accessing-ui-elements-using-dispatcher.html"&gt;previous article&lt;/a&gt;, I wrote about an approach to update the UI elements using the Dispatcher object of the UI element. Here I’d like to show you another approach which is to use ProgressChanged event of the BackgroundWorker:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;partial&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Window1 : Window&lt;br /&gt;  {&lt;br /&gt;      BackgroundWorker aWorker = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BackgroundWorker();&lt;br /&gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Window1()&lt;br /&gt;      {&lt;br /&gt;          InitializeComponent();&lt;br /&gt;          aWorker.WorkerSupportsCancellation = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;br /&gt;          aWorker.WorkerReportsProgress = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;br /&gt;          aWorker.DoWork += aWorker_DoWork;&lt;br /&gt;          aWorker.RunWorkerCompleted += aWorker_RunWorkerCompleted;&lt;br /&gt;          aWorker.ProgressChanged += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ProgressChangedEventHandler(aWorker_ProgressChanged);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;/// Handles the ProgressChanged event of the aWorker control. this runs on the main thread&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;/// &amp;lt;param name="sender"&amp;gt;The source of the event.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;/// &amp;lt;param name="e"&amp;gt;The &amp;lt;see cref="System.ComponentModel.ProgressChangedEventArgs"/&amp;gt; instance containing the event data.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; aWorker_ProgressChanged(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, ProgressChangedEventArgs e)&lt;br /&gt;      {&lt;br /&gt;          UpdateLabel(Int32.Parse(e.UserState.ToString()));&lt;br /&gt;      }&lt;br /&gt;          &lt;br /&gt;      &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;/// Handles the DoWork event of the aWorker control.&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;/// This runs in a new thread&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;/// &amp;lt;param name="sender"&amp;gt;The source of the event.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #008000"&gt;/// &amp;lt;param name="e"&amp;gt;The &amp;lt;see cref="System.ComponentModel.DoWorkEventArgs"/&amp;gt; instance containing the event data.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; aWorker_DoWork(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, System.ComponentModel.DoWorkEventArgs e)&lt;br /&gt;      {&lt;br /&gt;          &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i = 0; i &amp;lt;= 500; i++)&lt;br /&gt;          {&lt;br /&gt;              Thread.Sleep(100);&lt;br /&gt;&lt;br /&gt;              &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (aWorker.CancellationPending)&lt;br /&gt;              {&lt;br /&gt;                  e.Cancel = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;br /&gt;                  &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;br /&gt;              }&lt;br /&gt;              aWorker.ReportProgress(0, i);&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; aWorker_RunWorkerCompleted(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, System.ComponentModel.RunWorkerCompletedEventArgs e)&lt;br /&gt;      {&lt;br /&gt;          &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!(e.Cancelled))&lt;br /&gt;              Label2.Content = &lt;span style="color: #006080"&gt;"Run Completed!"&lt;/span&gt;;&lt;br /&gt;          &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;              Label2.Content = &lt;span style="color: #006080"&gt;"Run Cancelled!"&lt;/span&gt;;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; UpdateLabel(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i)&lt;br /&gt;      {&lt;br /&gt;          Label1.Content = &lt;span style="color: #006080"&gt;"Cycles: "&lt;/span&gt; + i.ToString();&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; btnStart_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;      {&lt;br /&gt;          aWorker.RunWorkerAsync();&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; btnCancel_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;      {&lt;br /&gt;          aWorker.CancelAsync();&lt;br /&gt;      }&lt;br /&gt;  }&lt;/pre&gt;&lt;br /&gt;Notes:&lt;/div&gt;&lt;ul&gt;  &lt;li&gt;There are 3 easy steps you need to take to enable this:&lt;/li&gt;  &lt;ul&gt;&lt;br /&gt;   &lt;li&gt;Set WorkerReportsProgress property&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;Subscribe to ProgressChanged event&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;Call ReportProgress() method from the worker thread&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5993580398178799054?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5993580398178799054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5993580398178799054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5993580398178799054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5993580398178799054'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/08/updating-ui-elements-using.html' title='Updating UI Elements using ProgressChanged event of BackgroundWorker'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7478432396151012782</id><published>2010-08-21T10:10:00.001-07:00</published><updated>2010-08-21T10:11:23.729-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='PageFunction'/><category scheme='http://www.blogger.com/atom/ns#' term='Navigation'/><title type='text'>WPF: How to Enable Journal When Using PageFunctions</title><content type='html'>&lt;p&gt;PageFunctions are xamle pages which enable us to create complex journal and navigations. Unlike Page, PageFunction can be used to return an object to the caller page.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Caller Page:&lt;/strong&gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;partial&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Page1 : Page&lt;br /&gt;   {&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Page1()&lt;br /&gt;       {&lt;br /&gt;           InitializeComponent();&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; button1_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;       {&lt;br /&gt;           PageFunction1 apage = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; PageFunction1();&lt;br /&gt;           apage.Return += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ReturnEventHandler&amp;lt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&amp;gt;(apage_Return);&lt;br /&gt;           NavigationService.Navigate(apage);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; apage_Return(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, ReturnEventArgs&amp;lt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&amp;gt; e)&lt;br /&gt;       {&lt;br /&gt;           List&amp;lt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;gt; alist = (List&amp;lt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;gt;)e.Result;&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; s &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; alist)&lt;br /&gt;               listBox1.Items.Add(s);&lt;br /&gt;       }&lt;br /&gt;   }&lt;/pre&gt;&lt;br /&gt; Notes:&lt;/div&gt;&lt;ul&gt;  &lt;li&gt;Return event of a PageFunction is raised when the data is returned back from the PageFunction&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;CustomContentState:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;This class helps to store the state for the contents of the journal when navigating forward or backward in a PageFunction:&lt;/p&gt;&lt;div&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;[Serializable()]&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; CustomJournalEntry : CustomContentState&lt;br /&gt;   {&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; List&amp;lt;ListBoxItem&amp;gt; atops;&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; List&amp;lt;ListBoxItem&amp;gt; ctops;&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; List&amp;lt;ListBoxItem&amp;gt; AvailableToppings&lt;br /&gt;       {&lt;br /&gt;           get&lt;br /&gt;           {&lt;br /&gt;               &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; atops;&lt;br /&gt;           }&lt;br /&gt;           set&lt;br /&gt;           {&lt;br /&gt;               atops = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;;&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; List&amp;lt;ListBoxItem&amp;gt; ChosenToppings&lt;br /&gt;       {&lt;br /&gt;           get&lt;br /&gt;           {&lt;br /&gt;               &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; ctops;&lt;br /&gt;           }&lt;br /&gt;           set&lt;br /&gt;           {&lt;br /&gt;               ctops = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;;&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; JournalEntryName&lt;br /&gt;       {&lt;br /&gt;           get&lt;br /&gt;           {&lt;br /&gt;               &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #006080"&gt;"Custom Journal Entry"&lt;/span&gt;;&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;delegate&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ReplayDelegate(CustomJournalEntry c);&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; ReplayDelegate replaydelegate;&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Replay(NavigationService navigationService, NavigationMode mode)&lt;br /&gt;       {&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.replaydelegate(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; CustomJournalEntry(List&amp;lt;ListBoxItem&amp;gt; available, List&amp;lt;ListBoxItem&amp;gt; chosen, ReplayDelegate replay)&lt;br /&gt;       {&lt;br /&gt;           atops = available;&lt;br /&gt;           ctops = chosen;&lt;br /&gt;           replaydelegate = replay;&lt;br /&gt;       }&lt;br /&gt;   }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Notes:&lt;/div&gt;&lt;ul&gt;  &lt;li&gt;This class inherits from CustomContentState class and is Serializable&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Replay method has been overridden and it’s called by the navigation engine when moving forward or backward on the journal&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;PageFunction class:&lt;/strong&gt;&lt;/p&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;partial&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; PageFunction1 : PageFunction&amp;lt;Object&amp;gt;, IProvideCustomContentState&lt;br /&gt;   {&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; PageFunction1()&lt;br /&gt;       {&lt;br /&gt;           InitializeComponent();&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; button1_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;       {&lt;br /&gt;           List&amp;lt;ListBoxItem&amp;gt; alist = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;ListBoxItem&amp;gt;();&lt;br /&gt;           List&amp;lt;ListBoxItem&amp;gt; blist = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;ListBoxItem&amp;gt;();&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ListBoxItem lll &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; listBox1.Items)&lt;br /&gt;               alist.Add(lll);&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ListBoxItem ll &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; listBox2.Items)&lt;br /&gt;               blist.Add(ll);&lt;br /&gt;           NavigationService.AddBackEntry(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CustomJournalEntry(alist, blist, ReplayCallback));&lt;br /&gt;           ListBoxItem l = (ListBoxItem)listBox1.SelectedItem;&lt;br /&gt;           listBox1.Items.Remove(l);&lt;br /&gt;           listBox2.Items.Add(l);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; button2_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;       {&lt;br /&gt;           List&amp;lt;ListBoxItem&amp;gt; alist = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;ListBoxItem&amp;gt;();&lt;br /&gt;           List&amp;lt;ListBoxItem&amp;gt; blist = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;ListBoxItem&amp;gt;();&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ListBoxItem lll &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; listBox1.Items)&lt;br /&gt;               alist.Add(lll);&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ListBoxItem ll &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; listBox2.Items)&lt;br /&gt;               blist.Add(ll);&lt;br /&gt;           NavigationService.AddBackEntry(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CustomJournalEntry(alist, blist, ReplayCallback));&lt;br /&gt;           ListBoxItem l = (ListBoxItem)listBox2.SelectedItem;&lt;br /&gt;           listBox2.Items.Remove(l);&lt;br /&gt;           listBox1.Items.Add(l);&lt;br /&gt;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Button3_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;       {&lt;br /&gt;           List&amp;lt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;gt; alist = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;gt;();&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ListBoxItem l &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; listBox2.Items)&lt;br /&gt;               alist.Add(l.Content.ToString());&lt;br /&gt;           ReturnEventArgs&amp;lt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&amp;gt; ee = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ReturnEventArgs&amp;lt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&amp;gt;((&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;)alist);&lt;br /&gt;           OnReturn(ee);&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ReplayCallback(CustomJournalEntry c)&lt;br /&gt;       {&lt;br /&gt;           listBox1.Items.Clear();&lt;br /&gt;           listBox2.Items.Clear();&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ListBoxItem l &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; c.AvailableToppings)&lt;br /&gt;               listBox1.Items.Add(l);&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ListBoxItem ll &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; c.ChosenToppings)&lt;br /&gt;               listBox2.Items.Add(ll);&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; System.Windows.Navigation.CustomContentState GetContentState()&lt;br /&gt;       {&lt;br /&gt;           List&amp;lt;ListBoxItem&amp;gt; alist = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;ListBoxItem&amp;gt;();&lt;br /&gt;           List&amp;lt;ListBoxItem&amp;gt; blist = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;ListBoxItem&amp;gt;();&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ListBoxItem l &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; listBox1.Items)&lt;br /&gt;               alist.Add(l);&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ListBoxItem ll &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; listBox2.Items)&lt;br /&gt;               blist.Add(ll);&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CustomJournalEntry(alist, blist, ReplayCallback);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;   }&lt;/pre&gt;&lt;br /&gt;Notes:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;This PageFunction should implement IProvideCustomContentState so that GetContentState is implemented. This method is called when moving backward and forward&lt;/li&gt;&lt;br /&gt; &lt;li&gt;OnReturn() method is called when you want to return the result of the PageFunction to the caller page&lt;/li&gt;&lt;br /&gt; &lt;li&gt;NavigationService.AddBackEntry() is used to add a current state of the PageFunction to the journal.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7478432396151012782?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7478432396151012782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7478432396151012782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7478432396151012782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7478432396151012782'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/08/wpf-how-to-enable-journal-when-using.html' title='WPF: How to Enable Journal When Using PageFunctions'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3084727857142400201</id><published>2010-08-19T03:08:00.000-07:00</published><updated>2010-08-19T03:09:14.218-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java</title><content type='html'>&lt;div&gt;C# and Java language syntax comparison: &lt;a href="http://www.25hoursaday.com/CsharpVsJava.html"&gt;http://www.25hoursaday.com/CsharpVsJava.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3084727857142400201?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3084727857142400201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3084727857142400201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3084727857142400201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3084727857142400201'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/08/java.html' title='Java'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-4468151156457692957</id><published>2010-08-18T05:07:00.000-07:00</published><updated>2010-12-20T02:20:54.892-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IPhone'/><title type='text'>IPhone Development</title><content type='html'>&lt;b&gt;&lt;div&gt;&lt;a href="http://developer.apple.com/iphone/index.action"&gt;http://developer.apple.com/iphone/index.action&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Environments/Tools:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;a href="http://monotouch.net/"&gt;Monotouch&lt;/a&gt;; perhaps not supported any more&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Apple API&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;a href="http://www.sencha.com/products/touch/"&gt;Sencha Touch&lt;/a&gt;: to develop rich web apps for IPhone.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Languages supported:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;C, C++, Objective-C, JavaScript&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;Learn about Objective-C:&lt;/b&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://cocoadevcentral.com/d/learn_objectivec/"&gt;http://cocoadevcentral.com/d/learn_objectivec/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-4468151156457692957?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/4468151156457692957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=4468151156457692957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4468151156457692957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4468151156457692957'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/08/iphone-development.html' title='IPhone Development'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7263862528996927438</id><published>2010-08-15T04:37:00.000-07:00</published><updated>2010-08-21T07:41:57.400-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sticky Notes'/><category scheme='http://www.blogger.com/atom/ns#' term='SCRUM'/><category scheme='http://www.blogger.com/atom/ns#' term='Task Board'/><title type='text'>Free Task Board Softwares / Sticky Notes</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;b&gt;Task Board Softwares:&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.pivotaltracker.com/learnmore"&gt;Pivotal Tracker&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.targetprocess.com/Product/agile_usage_patterns/Scrum_master/TaskBoard.aspx"&gt;TargetProcess&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Sticky Notes:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://download.cnet.com/Sticky-Notes/3000-12565_4-10573348.html?tag=mncol"&gt;http://download.cnet.com/Sticky-Notes/3000-12565_4-10573348.html?tag=mncol&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://download.cnet.com/Simple-Sticky-Notes/3000-2351_4-10864689.html?tag=mncol"&gt;http://download.cnet.com/Simple-Sticky-Notes/3000-2351_4-10864689.html?tag=mncol&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;a href="http://www.targetprocess.com/Product/agile_usage_patterns/Scrum_master/TaskBoard.aspx"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7263862528996927438?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7263862528996927438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7263862528996927438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7263862528996927438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7263862528996927438'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/08/free-task-board-softwares-sticky-notes.html' title='Free Task Board Softwares / Sticky Notes'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7214834481972680832</id><published>2010-08-02T15:58:00.001-07:00</published><updated>2010-08-02T15:58:57.866-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>How to Connect 3D Points With Each Other in WPF?</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Imagine you have some 3D spheres that you want them to be connected to each other such as:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_KcaDSFcliq8/TFdNrSBbgZI/AAAAAAAAA2Y/ecE3Cqp76j4/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_KcaDSFcliq8/TFdNsH_h6OI/AAAAAAAAA2c/mVpiwefUN9E/image_thumb%5B1%5D.png?imgmax=800" width="244" height="194" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Assuming you know a point in each of these spheres, the following Code uses a 3D cube to connect 2 3D Points with each other:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 98.47%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; height: 1054px; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ConnectPoints(Point3D firstPoint, Point3D secondPoint, DiffuseMaterial diffuseMaterial, &lt;span style="color: #0000ff"&gt;double&lt;/span&gt; thickness)&lt;br /&gt;       {&lt;br /&gt;           MeshGeometry3D linkCube = GetCube(firstPoint, secondPoint, thickness);&lt;br /&gt;&lt;br /&gt;           GeometryModel3D mGeometryLink = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; GeometryModel3D(linkCube, diffuseMaterial);&lt;br /&gt;           mGeometryLink.Transform = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Transform3DGroup();&lt;br /&gt;&lt;br /&gt;           ModelVisual3D modelVisual3D = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ModelVisual3D();&lt;br /&gt;           modelVisual3D.Content = mGeometryLink;&lt;br /&gt;&lt;br /&gt;           _models.Add(modelVisual3D);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; MeshGeometry3D GetCube(Point3D firstPoint, Point3D secondPoint, &lt;span style="color: #0000ff"&gt;double&lt;/span&gt; thickness)&lt;br /&gt;       {&lt;br /&gt;           MeshGeometry3D mesh = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MeshGeometry3D();&lt;br /&gt;           mesh.Positions.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Point3D(firstPoint.X, firstPoint.Y, firstPoint.Z));&lt;br /&gt;           mesh.Positions.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Point3D(firstPoint.X + thickness, firstPoint.Y, firstPoint.Z));&lt;br /&gt;           mesh.Positions.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Point3D(firstPoint.X + thickness, firstPoint.Y - thickness, firstPoint.Z));&lt;br /&gt;           mesh.Positions.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Point3D(firstPoint.X, firstPoint.Y - thickness, firstPoint.Z));&lt;br /&gt;&lt;br /&gt;           mesh.Positions.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Point3D(secondPoint.X, secondPoint.Y, secondPoint.Z));&lt;br /&gt;           mesh.Positions.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Point3D(secondPoint.X + thickness, secondPoint.Y, secondPoint.Z));&lt;br /&gt;           mesh.Positions.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Point3D(secondPoint.X + thickness, secondPoint.Y - thickness, secondPoint.Z));&lt;br /&gt;           mesh.Positions.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Point3D(secondPoint.X, secondPoint.Y - thickness, secondPoint.Z));&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; k = mesh.Positions.Count - 8;&lt;br /&gt;           &lt;span style="color: #008000"&gt;// Front face&lt;/span&gt;&lt;br /&gt;           mesh.TriangleIndices.Add(0 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(1 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(2 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(2 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(3 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(0 + k);&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: #008000"&gt;// Back face&lt;/span&gt;&lt;br /&gt;           mesh.TriangleIndices.Add(6 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(5 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(4 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(4 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(7 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(6 + k);&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: #008000"&gt;// Right face&lt;/span&gt;&lt;br /&gt;           mesh.TriangleIndices.Add(1 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(5 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(2 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(5 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(6 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(2 + k);&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: #008000"&gt;// Top face&lt;/span&gt;&lt;br /&gt;           mesh.TriangleIndices.Add(2 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(6 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(3 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(3 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(6 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(7 + k);&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: #008000"&gt;// Bottom face&lt;/span&gt;&lt;br /&gt;           mesh.TriangleIndices.Add(5 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(1 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(0 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(0 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(4 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(5 + k);&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: #008000"&gt;// Right face&lt;/span&gt;&lt;br /&gt;           mesh.TriangleIndices.Add(4 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(0 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(3 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(3 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(7 + k);&lt;br /&gt;           mesh.TriangleIndices.Add(4 + k);&lt;br /&gt;           &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; mesh;&lt;br /&gt;       }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7214834481972680832?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7214834481972680832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7214834481972680832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7214834481972680832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7214834481972680832'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/08/how-to-connect-3d-points-with-each.html' title='How to Connect 3D Points With Each Other in WPF?'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_KcaDSFcliq8/TFdNsH_h6OI/AAAAAAAAA2c/mVpiwefUN9E/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-8289308502977946627</id><published>2010-07-27T06:27:00.001-07:00</published><updated>2010-07-27T06:28:21.208-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Service'/><category scheme='http://www.blogger.com/atom/ns#' term='SubInAC'/><title type='text'>Use SubInACL Grant Access to Windows Services</title><content type='html'>&lt;span class="Apple-style-span"   style="font-family:Arial, sans-serif;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 12px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;If you ever need to grant access to a service account or user account over a windows service, &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&amp;amp;displaylang=en"&gt;SubInACL&lt;/a&gt; is the tool you need.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-8289308502977946627?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/8289308502977946627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=8289308502977946627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8289308502977946627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8289308502977946627'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/07/use-subinacl-grant-access-to-windows.html' title='Use SubInACL Grant Access to Windows Services'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7632023756326472460</id><published>2010-07-14T07:54:00.000-07:00</published><updated>2010-07-14T12:22:19.837-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>WCF Extensions</title><content type='html'>&lt;div&gt;Using WCF extensions you can change the default behaviour of WCF.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Programatically provide custom Json exceptions: &lt;a href="http://blog.manglar.com/how-to-provide-custom-json-exceptions-from-as-wcf-service/"&gt;http://blog.manglar.com/how-to-provide-custom-json-exceptions-from-as-wcf-service/&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163302.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc163302.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blog.manglar.com/how-to-provide-custom-json-exceptions-from-as-wcf-service/"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blog.manglar.com/how-to-provide-custom-json-exceptions-from-as-wcf-service/"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7632023756326472460?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7632023756326472460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7632023756326472460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7632023756326472460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7632023756326472460'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/07/wcf-extensions.html' title='WCF Extensions'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5708238185845993945</id><published>2010-07-07T10:22:00.000-07:00</published><updated>2010-08-21T10:58:41.326-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BackgroundWorker; Multithreading; WPF'/><title type='text'>WPF: Updating UI Elements Using Dispatcher and BackgroundWorker</title><content type='html'>&lt;div style="text-align: left"&gt;If you run a &lt;b&gt;BackgroundWorker&lt;/b&gt; object and try updating a UI element in the DoWork method, you'd get this error message:&lt;/div&gt;  &lt;div&gt;{"The calling thread cannot access this object because a different thread owns it."}&lt;/div&gt;  &lt;div&gt;The reason is that DoWork() method runs in a new thread and the UI elements are owned by the main thread.&lt;/div&gt;  &lt;div&gt;A workaround is to use the &lt;b&gt;Dispatcher&lt;/b&gt; object as shown in the following example in WPF. When Start button is clicked, a background worker runs and updates the label message:&lt;/div&gt;  &lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_KcaDSFcliq8/TDS5rsc_dtI/AAAAAAAAA2A/We9cevlEZGA/s1600/Dispatcher.jpg"&gt;&lt;img style="text-align: center; margin: 0px auto 10px; width: 385px; display: block; height: 205px; cursor: pointer" id="BLOGGER_PHOTO_ID_5491218005989750482" border="0" alt="" src="http://4.bp.blogspot.com/_KcaDSFcliq8/TDS5rsc_dtI/AAAAAAAAA2A/We9cevlEZGA/s400/Dispatcher.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;  &lt;div&gt; &lt;/div&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;partial&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Window1 : Window&lt;br /&gt; {&lt;br /&gt;     BackgroundWorker aWorker = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BackgroundWorker();&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Window1()&lt;br /&gt;     {&lt;br /&gt;         InitializeComponent();&lt;br /&gt;         aWorker.WorkerSupportsCancellation = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;br /&gt;         aWorker.DoWork += aWorker_DoWork;&lt;br /&gt;         aWorker.RunWorkerCompleted += aWorker_RunWorkerCompleted;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;delegate&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; UpdateDelegate(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i);&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;/// Handles the DoWork event of the aWorker control.&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;/// This runs in a new thread&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;param name="sender"&amp;gt;The source of the event.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;param name="e"&amp;gt;The &amp;lt;see cref="System.ComponentModel.DoWorkEventArgs"/&amp;gt; instance containing the event data.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; aWorker_DoWork(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, System.ComponentModel.DoWorkEventArgs e)&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i = 0; i &amp;lt;= 500; i++)&lt;br /&gt;         {&lt;br /&gt;             Thread.Sleep(100);&lt;br /&gt;&lt;br /&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (aWorker.CancellationPending)&lt;br /&gt;             {&lt;br /&gt;                 e.Cancel = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;br /&gt;                 &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;br /&gt;             }&lt;br /&gt;             UpdateDelegate update = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; UpdateDelegate(UpdateLabel);&lt;br /&gt;             Label1.Dispatcher.BeginInvoke(DispatcherPriority.Normal, update, i);             &lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; aWorker_RunWorkerCompleted(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, System.ComponentModel.RunWorkerCompletedEventArgs e)&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!(e.Cancelled))&lt;br /&gt;             Label2.Content = &lt;span style="color: #006080"&gt;"Run Completed!"&lt;/span&gt;;&lt;br /&gt;         &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;             Label2.Content = &lt;span style="color: #006080"&gt;"Run Cancelled!"&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; UpdateLabel(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i)&lt;br /&gt;     {&lt;br /&gt;         Label1.Content = &lt;span style="color: #006080"&gt;"Cycles: "&lt;/span&gt; + i.ToString();&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; btnStart_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;     {&lt;br /&gt;         aWorker.RunWorkerAsync();&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; btnCancel_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;     {&lt;br /&gt;         aWorker.CancelAsync();&lt;br /&gt;     }&lt;br /&gt; }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5708238185845993945?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5708238185845993945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5708238185845993945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5708238185845993945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5708238185845993945'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/07/accessing-ui-elements-using-dispatcher.html' title='WPF: Updating UI Elements Using Dispatcher and BackgroundWorker'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KcaDSFcliq8/TDS5rsc_dtI/AAAAAAAAA2A/We9cevlEZGA/s72-c/Dispatcher.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-2947394367675623507</id><published>2010-07-06T07:54:00.000-07:00</published><updated>2010-07-06T08:07:45.043-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodeRush Express'/><title type='text'>Alternative to Resharper</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/CodeRushExpress9.2Ships_AE89/Refactor03_2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 1088px; height: 658px;" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/CodeRushExpress9.2Ships_AE89/Refactor03_2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Code Rush Express is a free refactoring tool from DevExpress:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Download: &lt;a href="http://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/"&gt;http://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-gb/vcsharp/ee663901.aspx"&gt;http://msdn.microsoft.com/en-gb/vcsharp/ee663901.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Introduction Video: &lt;a href="http://tv.devexpress.com/#CRX91FeaturesCS.movie"&gt;http://tv.devexpress.com/#CRX91FeaturesCS.movie&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Review: &lt;a href="http://blogs.msdn.com/b/charlie/archive/2009/08/28/coderush-express-9-2-ships.aspx"&gt;http://blogs.msdn.com/b/charlie/archive/2009/08/28/coderush-express-9-2-ships.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-2947394367675623507?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/2947394367675623507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=2947394367675623507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2947394367675623507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2947394367675623507'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/07/alternative-to-resharper.html' title='Alternative to Resharper'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5493353099185607363</id><published>2010-07-04T03:07:00.000-07:00</published><updated>2010-07-04T03:29:02.163-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wi-Fi'/><title type='text'>Wi-Fi</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://newsimg.bbc.co.uk/media/images/41408000/gif/_41408898_wi_fi_inf416.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 416px; height: 307px;" src="http://newsimg.bbc.co.uk/media/images/41408000/gif/_41408898_wi_fi_inf416.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;Wi-Fi Enabled Device:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;div&gt;A device which can connect to the Internet via wireless networks around it (Access Points, Hotspots) such as personal computer, video game console, mobile phone, MP3 player or personal digital assistant.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Wi-Fi Hostspots:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;A wireless network which is to  be used for anyone having a Wi-Fi enabled device and who 1) is within the range of the network 2) is allowed to use the Hotspot.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Free Wi-Fi Hotspots:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Some companies provide Wi-Fi free within their range.&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.moneysavingexpert.com/phones/cheap-mobile-broadband#free"&gt;http://www.moneysavingexpert.com/phones/cheap-mobile-broadband#free&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ad-hoc Mode in Wi-Fi communications (Client to Client):&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Devices can communicate with each other directly without a router for example a Wi-Fi enabled laptop can communicate directly with another Wi-Fi enabled laptop.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this mode, no router or access point is needed, miracle!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This mode is mainly used with multiplayer handheld game consoles, digital cameras.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Links:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Wi-Fi"&gt;http://en.wikipedia.org/wiki/Wi-Fi&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5493353099185607363?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5493353099185607363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5493353099185607363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5493353099185607363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5493353099185607363'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/07/wi-fi.html' title='Wi-Fi'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3990442005732239456</id><published>2010-07-02T04:11:00.000-07:00</published><updated>2010-07-02T04:13:15.658-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><title type='text'>Internet Explorer and Windows Compatibility</title><content type='html'>&lt;div&gt;Windows XP, Windowx Vista and Windows 7&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;IE 6.0, IE 7.0 and IE 8.0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&amp;amp;displaylang=en&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3990442005732239456?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3990442005732239456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3990442005732239456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3990442005732239456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3990442005732239456'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/07/internet-explorer-and-windows.html' title='Internet Explorer and Windows Compatibility'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-8774414639149148806</id><published>2010-06-28T23:43:00.000-07:00</published><updated>2010-06-28T23:56:38.073-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Active Directory, Domain, Forests</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.extreme.indiana.edu/cat/ris/tree.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 592px; height: 232px;" src="http://www.extreme.indiana.edu/cat/ris/tree.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#551A8B;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.extreme.indiana.edu/cat/ris/tree.gif"&gt;&lt;/a&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Directory Services&lt;/li&gt;&lt;li&gt;Microsoft Active Directory (AD)&lt;/li&gt;&lt;li&gt;LDAP&lt;/li&gt;&lt;li&gt;Tree&lt;/li&gt;&lt;li&gt;Forest&lt;/li&gt;&lt;li&gt;DNS domain&lt;/li&gt;&lt;li&gt;Windows domain&lt;/li&gt;&lt;li&gt;Organizational Unit (OU)&lt;/li&gt;&lt;li&gt;Common Name (CN)&lt;/li&gt;&lt;li&gt;Schema&lt;/li&gt;&lt;li&gt;Group Policy Objects (GPO)&lt;/li&gt;&lt;li&gt;Global Catalog (GC)&lt;/li&gt;&lt;li&gt;Trust Relationships; One-Way, Transitive, Cross-Link&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Links:&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.doecirc.energy.gov/documents/MS_Active_Directory_Design_Guide.pdf"&gt;&lt;/a&gt;&lt;a href="http://www.reso-net.com/Documents/007222343X_ch03.pdf"&gt;http://www.reso-net.com/Documents/007222343X_ch03.pdf&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.doecirc.energy.gov/documents/MS_Active_Directory_Design_Guide.pdf"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.doecirc.energy.gov/documents/MS_Active_Directory_Design_Guide.pdf"&gt;http://www.doecirc.energy.gov/documents/MS_Active_Directory_Design_Guide.pdf&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/310996"&gt;http://support.microsoft.com/kb/310996&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-8774414639149148806?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/8774414639149148806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=8774414639149148806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8774414639149148806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8774414639149148806'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/06/active-directory-domain-forests.html' title='Active Directory, Domain, Forests'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5275344521333995520</id><published>2010-06-21T05:47:00.000-07:00</published><updated>2010-06-21T05:48:21.699-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code Review'/><title type='text'>Don't Use .Count() on IEnumerable Lists</title><content type='html'>&lt;div&gt;Don't Use .Count() on IEnumerable Lists since it has a great performance penalty.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://haacked.com/archive/2010/06/10/checking-for-empty-enumerations.aspx"&gt;http://haacked.com/archive/2010/06/10/checking-for-empty-enumerations.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5275344521333995520?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5275344521333995520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5275344521333995520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5275344521333995520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5275344521333995520'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/06/dont-use-count-on-ienumerable-lists.html' title='Don&apos;t Use .Count() on IEnumerable Lists'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-2387693273635216723</id><published>2010-06-18T05:25:00.000-07:00</published><updated>2010-06-18T05:26:14.595-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entity Framework'/><title type='text'>Entity Framework Object Query Examples</title><content type='html'>Group By:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Count:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Order By:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Calling a stored procedure:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Calling a Function:&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-2387693273635216723?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/2387693273635216723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=2387693273635216723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2387693273635216723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2387693273635216723'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/06/entity-framework-object-query-examples.html' title='Entity Framework Object Query Examples'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-1622866024173537580</id><published>2010-06-15T01:45:00.000-07:00</published><updated>2010-06-15T01:46:56.379-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='MoSCoW'/><title type='text'>MoSCoW Technique</title><content type='html'>&lt;div&gt;MoSCoW is a prioritization technique which helps you decide what should be done and in which order:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://en.wikipedia.org/wiki/MoSCoW_Method"&gt;http://en.wikipedia.org/wiki/MoSCoW_Method&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-1622866024173537580?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/1622866024173537580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=1622866024173537580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1622866024173537580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1622866024173537580'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/06/moscow-technique.html' title='MoSCoW Technique'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-6455563524446010043</id><published>2010-06-06T14:06:00.000-07:00</published><updated>2010-06-06T14:09:22.769-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>WPF Code Samples</title><content type='html'>&lt;a href="http://code.msdn.microsoft.com/wpfsamples/Release/ProjectReleases.aspx?ReleaseId=3022"&gt;http://code.msdn.microsoft.com/wpfsamples/Release/ProjectReleases.aspx?ReleaseId=3022&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-6455563524446010043?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/6455563524446010043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=6455563524446010043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6455563524446010043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6455563524446010043'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/06/wpf-code-samples.html' title='WPF Code Samples'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5504928133609053076</id><published>2010-06-05T02:38:00.000-07:00</published><updated>2010-06-05T03:06:42.522-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project Management Tools'/><title type='text'>Project Management Tools</title><content type='html'>&lt;div&gt;Project Management Tools are tools built to help managing the work items, bugs, features, iterations of a project.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Jira:&lt;/b&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Rich features&lt;/li&gt;&lt;li&gt;Agile support; iterations&lt;/li&gt;&lt;li&gt;Commercial&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.atlassian.com/software/jira/"&gt;http://www.atlassian.com/software/jira/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Bugzilla:&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Only a bug tracking tool&lt;/li&gt;&lt;li&gt;Free  open source&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.bugzilla.org/"&gt;http://www.bugzilla.org/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Microsoft TFS: &lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Rich work item management features&lt;/li&gt;&lt;li&gt;Agile support: iterations, user stories&lt;/li&gt;&lt;li&gt;Commercial&lt;/li&gt;&lt;li&gt;&lt;a href="http://pooyakhamooshi.blogspot.com/2009/06/tfs.html"&gt;http://pooyakhamooshi.blogspot.com/2009/06/tfs.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb693326.aspx"&gt;http://msdn.microsoft.com/en-us/vstudio/bb693326.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;RallyDev:&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Agile project management tool with rich features&lt;/li&gt;&lt;li&gt;Up to 10 active users free so excellent option if you have a small team&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.rallydev.com/"&gt;http://www.rallydev.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;DotProject:&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Free - open source&lt;/li&gt;&lt;li&gt;Not as rich as other options&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.dotproject.net/"&gt;http://www.dotproject.net/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Links:&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Comparison: &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_project_management_software"&gt;http://en.wikipedia.org/wiki/Comparison_of_project_management_software&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Some free open source project management tools &lt;a href="http://www.dreamcss.com/2009/08/11-open-source-project-management-tools.html"&gt;here&lt;/a&gt; and &lt;a href="http://www.cyberciti.biz/tips/open-source-project-management-software.html"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5504928133609053076?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5504928133609053076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5504928133609053076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5504928133609053076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5504928133609053076'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/06/project-management-tools.html' title='Project Management Tools'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-8811123414163180576</id><published>2010-05-28T03:01:00.000-07:00</published><updated>2010-05-28T03:11:35.585-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Changing WCF OperationContract Element Names</title><content type='html'>&lt;p&gt;&lt;strong&gt;Changing the root names of the request and response messages:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;[OperationContract(Name=”RequestRootNameChanged”)]    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [WebInvoke(Method = &amp;quot;GET&amp;quot;,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UriTemplate = &amp;quot;/EntityData/{entity}&amp;quot;,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BodyStyle = WebMessageBodyStyle.Wrapped,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ResponseFormat = WebMessageFormat.Json)]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [return:MessageParameter(Name = &amp;quot;ResponseRootNameChanged&amp;quot;)]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;ReferenceItem&amp;gt; GetSearchDropDown(string entity);&lt;/p&gt;  &lt;pre&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Removing the root names of the request and response messages:&lt;/font&gt;&lt;/strong&gt;&lt;/pre&gt;&lt;br /&gt;[OperationContract] &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [WebInvoke(Method = &amp;quot;GET&amp;quot;, &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UriTemplate = &amp;quot;/EntityData/{entity}&amp;quot;, &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BodyStyle = WebMessageBodyStyle.Bare, &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ResponseFormat = WebMessageFormat.Json)] &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;ReferenceItem&amp;gt; GetSearchDropDown(string entity); &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Changing the child names:&lt;/font&gt;&lt;/strong&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-8811123414163180576?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/8811123414163180576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=8811123414163180576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8811123414163180576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8811123414163180576'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/changing-wcf-operationcontract-element.html' title='Changing WCF OperationContract Element Names'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-4556913342656425887</id><published>2010-05-27T05:57:00.000-07:00</published><updated>2010-05-27T06:01:11.775-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AutoMapper'/><category scheme='http://www.blogger.com/atom/ns#' term='Object Mapping'/><title type='text'>Object Mapping Solutions</title><content type='html'>Imagine you have 2 sets of classes which have to be translated and mapped to each other (Source and Target):&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Approach 1:&lt;/b&gt; Hard coding each mapping in Translator classes. One translator in each target class.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Approach 2&lt;/b&gt;: Using reflection to map the properties&lt;/div&gt;&lt;div&gt;This can be used only if the properties are exactly the same&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Approach 3:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Using &lt;a href="http://automapper.codeplex.com/"&gt;AutoMapper&lt;/a&gt; from CodePlex.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-4556913342656425887?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/4556913342656425887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=4556913342656425887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4556913342656425887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/4556913342656425887'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/object-mapping-solutions.html' title='Object Mapping Solutions'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-6880094499460111734</id><published>2010-05-26T05:02:00.000-07:00</published><updated>2010-05-26T06:00:56.245-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><title type='text'>SQL Server 2008</title><content type='html'>&lt;div&gt;If you need to install SQL Server 2008, unfortunately you must uninstall all components of SQL Server 2005 if you already have them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For other versions comparison check this: &lt;a href="http://msdn.microsoft.com/en-us/library/ms143694.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms143694.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The upgrade path: &lt;a href="http://msdn.microsoft.com/en-us/library/ms143393.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms143393.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;SQL Server 2008 Express Edition with Management Studio: &lt;a href="http://geekswithblogs.net/campuskoder/archive/2008/10/08/125727.aspx"&gt;http://geekswithblogs.net/campuskoder/archive/2008/10/08/125727.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-6880094499460111734?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/6880094499460111734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=6880094499460111734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6880094499460111734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6880094499460111734'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/sql-server-2008.html' title='SQL Server 2008'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3139873904071713304</id><published>2010-05-25T08:43:00.000-07:00</published><updated>2010-05-25T09:54:15.648-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Service'/><title type='text'>How to Control the Behaviour of a Running Windows Service?</title><content type='html'>If you need to administer a running windows service, you can use ServiceController class to start, stop, restart the service: &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.codeproject.com/KB/cs/service_controller.aspx"&gt;http://www.codeproject.com/KB/cs/service_controller.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3139873904071713304?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3139873904071713304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3139873904071713304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3139873904071713304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3139873904071713304'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/how-to-control-behaviour-of-running.html' title='How to Control the Behaviour of a Running Windows Service?'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3817408198585771682</id><published>2010-05-25T05:10:00.000-07:00</published><updated>2010-05-25T05:13:14.728-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF Distillers'/><title type='text'>PDF Distillers</title><content type='html'>&lt;div&gt;Create PDF from scratch using .NET. Adding compression, tables, graphs, images, hyperlinks, security and custom fonts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.pdfsharp.com/PDFsharp/"&gt;http://www.pdfsharp.com/PDFsharp/&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.pdfsharp.com/PDFsharp/"&gt;&lt;/a&gt;&lt;a href="http://sourceforge.net/projects/itextsharp/"&gt;http://sourceforge.net/projects/itextsharp/&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.adobe.com/products/acrdis/"&gt;http://www.adobe.com/products/acrdis/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.aspose.com/categories/.net-components/aspose.pdf-for-.net/default.aspx"&gt;http://www.aspose.com/categories/.net-components/aspose.pdf-for-.net/default.aspx&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3817408198585771682?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3817408198585771682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3817408198585771682' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3817408198585771682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3817408198585771682'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/pdf-distillers.html' title='PDF Distillers'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-6264209180352496054</id><published>2010-05-24T09:54:00.000-07:00</published><updated>2010-09-09T06:38:18.660-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Service'/><title type='text'>Ways to Install a Windows Service?</title><content type='html'>&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Approach 1: Using Visual Studio Setup Project&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;In the Custom Actions section, you need to add the "Primary output from ..." to all the stages of Install, Commit, Rollback and Uninstall. Then your windows service will be installed.&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Approach 2: Using InstallUtil.exe&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Approach 3: Using sc.exe&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Approach 4: Using WIX&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;to be continued...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-6264209180352496054?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/6264209180352496054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=6264209180352496054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6264209180352496054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/6264209180352496054'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/ways-to-install-windows-service.html' title='Ways to Install a Windows Service?'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-987862586155573673</id><published>2010-05-24T03:36:00.001-07:00</published><updated>2010-06-24T03:41:56.194-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podcasts'/><title type='text'>Podcasts</title><content type='html'>Channel 9 Podcasts: &lt;a href="http://channel9.msdn.com/Media/Podcasts/"&gt;http://channel9.msdn.com/Media/Podcasts/&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MSDN podcasts: &lt;a href="http://msdn.microsoft.com/en-us/dd440947.aspx"&gt;http://msdn.microsoft.com/en-us/dd440947.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.microsoft.com/events/podcasts/"&gt;http://www.microsoft.com/events/podcasts/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://feeds.feedburner.com/ThirstyDeveloperPodcast"&gt;http://feeds.feedburner.com/ThirstyDeveloperPodcast&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-987862586155573673?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/987862586155573673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=987862586155573673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/987862586155573673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/987862586155573673'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/podcasts.html' title='Podcasts'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3509151702909866751</id><published>2010-05-20T07:08:00.000-07:00</published><updated>2011-02-14T12:52:43.327-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mindset'/><title type='text'>Best Software Engineer Mindsets</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size:x-large;"&gt;Personality, General&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Add Only Value&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Only add value and add only value, don't do something that doesn't add value. Only say what adds value and helps, don't say something that doesn't add value.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Guard Your Tongue&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Specially when you get very angry and emotional, it's when that you might say things and do things which will hurt yourself and others. Guard your tongue firmly and have a proper strategy to express your emotions in a more healthy and productive way.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Be As Accurate As Possible&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Sometimes, we want to generalize things which is an easier way to get around things. If you're asked specific questions, try to be specific and give details accurately because you will be accounted for what you say. In emails, conversations and in all communications, be as accurate as possible.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Say I Don't Know and I Am Not Sure Carefully&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;It might be true that you don't know but if you keep saying I don't know and I am not sure, you will look junior and unprofessional.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Always, remember to be positive and add value so if you don't know something clearly or you have doubts about things, be accurate. Say I don't know but I can look into it or I guess it should be like this. I will check or do you want me to look into it?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;On the other hand, one of the worst things which can harm your credit is to say I know when you don't know. Always give yourself time and gap to find out if you can.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I guess...&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I presume...&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I assume...&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I'll look into it&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I'll find out&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;not sure; let me check or I can check&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Hold on, I'd need to refresh my memory&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Prefer the Best/Quickest/Optimized Action&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;If there is a quicker way to do something, take that way and remind everyone to focus on doing the quickest/best way possible which adds value.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Always ask yourself &lt;i&gt;"What is the Best Option Now?" and talk about best options always with the team.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Do Your Homework; Research&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Always, do your own researching before expressing your opinion upon something unknown.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Strengthen Your Memory&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This is another very important hint. I almost always try writing down important information but I figured out that it is not good enough. You need to memorize things. Practice every day to memorize information, telephone numbers, about your work, technology, name of people, etc.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This is vital if you want to be a successful Software Engineer. What you need to remember is that relying on writing notes, finding information from google are very bad practice and make your memory lazy.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Use your memory more, the more you memorize the more you can memorize. Spend every day to memorize and review things.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Email Is Worst/Most Dangerous for Communication&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Best way to communicate is via face to face or phone. Emails can be worst type of communication. People misunderstand each other in emails and read emails in bad tone of voice. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Use emails only to give important information to others and write emails in the most positive way because unfortunately the truth is that people read emails in the most negative way possible. I paid this price several times until I figured this truth out.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Read your emails at least 2 times; once with your own eyes, and once with the eyes of recipients- don't say what is unnecessary and doesn't add value. don't add emotions in emails; they will be misinterpreted - ask yourself is it appropriate/necessary to say this in email?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Always Use Well-Chosen Words&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;It's specifically important for a successful software engineer to use only well-chosen and wise words in emails, conversations and meetings. Your words are powerful and carry meanings which might be offending or misleading to others so this becomes a significant factor.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;If English is not your first language like me, you'd need make a double effort and program to improve the standard of your spoken and written English.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This is also highly vital in your progress and climbing the ladder to become Leader or Architect.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I can't say enough about the significance of this importance; always remember to use words wisely or you will face its consequences.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Help Others If You Can&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;There is more blessing in giving than receiving you have heard. This is also true for a software engineer. The more you help others, the more you learn and you gain credit at work. At the same time be wise not to forget your own works.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Hope it helps&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Does it help?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;How can I help?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;...&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Don't Forget Meetings&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;It's bad for your credit not to attend meetings because you have forgotten. Basically, what you need is a system which helps you remember when you have which meeting. Best is to use a reminder application e.g. on your mobile that you're always reminded. IPhone has a free application called "aNote Lite" which can be used.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Don't forget meetings; have a proper reminder system.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Build Sense of Trust In Yourself&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;There are times that we don't know what to do and how to do things. Instead of panicking, build trust in yourself that you can handle it and you can and will find a way. Believe in your abilities and potential and have the confidence that you can figure that out. This doesn't mean not consulting with others when required but just means that you must trust yourself before anything else.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size:x-large;"&gt;Technology&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Become Member of Technology Forums&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;To gain advice and answers on your day to day challenges, join some good technology forums related to the area of your work e.g. &lt;a href="http://social.msdn.microsoft.com/Forums/en/categories/"&gt;msdn forum&lt;/a&gt;, &lt;a href="http://stackoverflow.com/"&gt;stackoverflow&lt;/a&gt;, scrum forum, etc.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Develop Code Reading Skills&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;It's vital to be able to read other people's codes quickly and understand them so that later you can&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Make a change&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Fix a bug&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Refactor the code&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;OK, how can you develop this skill?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;Spend some time to read other people's codes; the more code you see from variety of people, the quicker you become to understand them. If you've been given the opportunity, become member of the code reviewing team in your Company.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;Draw sequence diagrams and class diagrams for yourself if you've given a system which is very complex. In this way, you can easily understand what's going on and in your own language.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;Use .NET Reflector or Visual Studio to analyse class relationships quickly; .NET Reflector has some good plugins for this.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;Obviously reading articles and books would help also.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Do It Right The First Time&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This might be an unachievable ideal but at least you should aim for it.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The reality is that you don't usually have time to change what you did initially or the budget is limited so make sure that you do it right in the first place.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;So, always spend some time planning what you're gonna do and save future wastes. This requires that you master the requirements from the first place.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Automation:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Think about where you can automate things. Automated build, automated deployment, automated test, automated tools.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;By automating things you make your life and your team easier.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Use TeamCity, or any other automated tool you're comfortable with, then configure your solution projects and tests to be built and run automatically. You can configure StyleCop to be built against too.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Commit Code into Source Control ASAP&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Assuming you're using a source control such as &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SVN&lt;/span&gt;, you should be committing code as soon as it's tested. If you leave the code to commit late, you will have to sort out the conflicts with the other people codes. Folders might have been renamed or removed, etc and it can become complex and time-taking if you leave it too long.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Make all codes to be reviewed by one other developer before committing code into your source control&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This ensures quality + many other things&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Add Code Trace Log Always&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;You should be adding code tracing log to all your applications so that you can trace exactly when what happens. It's also great for debugging. There are tools which help doing so such as Enterprise Library Logging Application Block, Log4Net or native .NET Diagnostics classes (Trace and Debug).&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Refactoring Techniques&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Always there is space to improve the functionality and design of your code. Read articles and books about the techniques.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Don't be afraid of making changes.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Have Immediate Access to Technology Resources&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Searching in Google doesn't give you the best results always.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Make sure that you have some websites (such as codeproject.com and microsoft msdn) or pdfs (C# 4.0 features) that you can access quickly. This would be needed when you want to develop something that you're not fully sure or have forgotten.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Design Patterns&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Learn about a new design pattern every month; when all are finished (which is never reached) review them all. See where you can use a design pattern in your code to improve it not to complicate it.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Read Books&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Always have a technical book to read about the area you're working in.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Read Blogs/Articles&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Every week spend time to read few relevant blogs and articles.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Object-Oriented Design Principles&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;It's highly important to develop your OO design skills further so right now you can set SMART aims! There are &lt;a href="http://pooyakhamooshi.blogspot.com/2009/01/solid-best-practice-ood-principles.html"&gt;SOLID principles&lt;/a&gt; and some other important practices you must be a ware of. It helps you design your application in a more maintainable way and also it's important in interviews.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Process Best Practices&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Sign Off the Requirements&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;No matter what methodology or process you use, one thing must be done initially. Gather the requirements, document them in a "Project Acceptance Template" and get the client or manager sign that off.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;This must be done before any coding/design takes place otherwise there can be serious issues.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Always Record / Track Issues&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;Always use a bug tracking tool such as SmartTrack, BugZilla, etc to track all issues.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Follow In-House Coding Standards&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Wherever you work, at a client site or your own company, they have coding standards; find them, read them and follow them.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Reduce Key-Man Dependency&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Get people who know most about the project, document their knowledge so that if they leave, you have those information available. It can never be perfect but it's important to emphasize on documenting the knowledge handover or assigning more than one person to key tasks. &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Setup Dev and Test Environments Like Production&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Otherwise, there is a high chance of issues occurring on production which could be identified in advance in Dev or Test.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size:large;"&gt;Presentation Skills&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Develop your presentation skills, you are expected to provide presentations in your job. This will be more important as you climb up the ladder to become more senior or leader:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Learn well how to use PowerPoint&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Provide videos; you can capture video screen shots easily&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Be organized, prepare in advance&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Have a Presentation Template in PowerPoint&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Use technology&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Practice Practice Practice and Get Feedback, Improve Yourself, then Practice Practice Practice&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;...&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size:large;"&gt;Communication and Relationships&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Your Networking skills are as important as Your Software knowledge&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;No matter how knowledgable you're and how many books you've read, without the support of others you barely can get anywhere. Any promotion, help for your issues, supports you need require other people's willingness and attitude to help you.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;If not more important, your networking skills are as important as your coding skills.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I'm going to write a separate article about how to build networking skills as a Successful Software Developer.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Know the Personality and Expectations of Your Manager&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;The fact is not everyone is the same so not everyone has the same expectation. You are responsible to make an effort to understand your manager and his expectations. Some are good with emails, some hate emails and you should get hold of them using face to face communications mainly or phone calls.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: left; "&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Know The Key People&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Know well who are the decision makers where you work; managers, architects and leaders&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Be Clever in Extracting the Information You Need&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;To do your job, you need information and that information is not completely clear often so you need proper strategies to get information from others.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;It's a skill how to extract information from others.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1. List what you don't know as Questions and send email to people you think might know their answer.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2. Chat informally with other people to get information; this would look less like a formal request of information and people are more open to answer in this way.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;3. Any important information must be confirmed in email otherwise people might change their words and thoughts&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;4. If you have time, read documentations, wiki notes, etc.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;5. Build personal relationships with colleagues that are more easy going.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: left; "&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Don't Be Lonely&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Find at least 1-2 friends with whom you can build personal bond - If you're lonely, you will be very weak and others might want to kill your credit/personality! Numbers are important - Build personal bond with least 1-2 colleagues, have fun and avoid gossips. We're stronger together.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Numbers count and give you more power, so build your network of colleagues.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;If you feel everyone dislike you at work, find 1-2 people who don't dislike you as much as others and build your network with them; have fun and avoid rumours.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;div style="text-align: left; "&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Resolve Conflicts by Arranging Personal Meetings&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;You might feel annoyed by someone at the office or perhaps you feel others keep gossiping about you. The best approach would be to have the courage to arrange a kind meeting with that person and discuss the concerns you're having. Use your negotiation skills to make sure that everything is communicated properly in a calm and friendly atmosphere.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;If you keep put things under the carpet, it will certainly come out one day and when it comes out it might not be so nice for you. So take control and the initiative. Invite that person for a coffee :)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Ask their expectations clearly, listen well and express your expectations with caution always. Be ready to compromise on what can be compromised.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This is the best approach ever rather than keeping it to yourself and hurting yourself; also in this way, you will help the other person too because most probably the other person is hurt from you too and this would give a chance to sort things out like 2 mature friends who care about each other and the quality of their relationships.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Perhaps 90% of problems are misunderstanding because people are different in personality, thought process, understanding, education, background, etc.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;div style="text-align: left; "&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Record any Important Information from your Communications with Your colleagues&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;People deny what they say; perhaps they forget or change their mind. So make sure that any important information is communicated via email.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;If necessary sum up what they say and send them an email to confirm that is what they said. it has another benefit that you can make sure what you have understand is correct.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Make the environment easy; e.g. say I just want to make sure I've understood correctly.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Be Proactive in Communications&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This is very important. Don't wait until someone asks you something to answer. Don't wait unless another person introduces himself/herself to you, don't wait until others invite you to pub, etc. Be proactive and be initiative in your communication whether it's about building new connections or maintaining existing ones.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Invite others for lunch, coffee, tea or a walk; at the same time accept other people invitations openly if you can.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Express your comments about what others say even if they're not directly speaking to you - 100% opposite to my background culture!&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Arrange social events yourself&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Be aware of your environment&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Listen to what other people say around you. That's part of your job; be aware of your environment. Notice what changes are occurring around you and add valuable comments if you have.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Don't be isolated in your cave and just work hard. Only Working hard and coding is a very bad practice. Work hard and Smart.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;div style="font-size: 16px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;Develop Debating/Negotiation Skills&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;You need to develop debating skills and know how to challenge others and how to respond properly when they challenge what you say. How to convince others and how to be convinced gracefully. Know with whom you can negotiate and how. Aim, purpose of the debate or negotiation should be clear for you.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;Research about the topic and practice. It's also a very sensitive matter because no one enjoys to be proved wrong.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;b&gt;See The World From the Other Person's Point of View&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;When dealing with other people (Manager, Client, Colleagues, etc), always spend some time forgetting yourself and instead understanding the other person's desires, views, goals, aims, point of view, expectations, etc. This would enormously help you make the best decision what to do or say. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;This helps you be tactful more easily because you understand how the other person might perceive you, therefore you speak only what is necessary; short and polite.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Supporting Your Future Career&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;In this section, I'd write what you'd need to be aware of to support a prosperious future.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;b&gt;Setup a Professional Online Presence&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Personal website, LinkedIn presence, blog.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;What is the purpose? Remember the purpose is solely to help you find the next job easier, remove all other contents which wouldn't serve this purpose directly.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Keep in Touch With Ex-Colleagues and Your Connections&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Both you and them would probably benefit from this. Also, support your colleagues.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;b&gt;Have Your CV and Profile Always Up-to-date!&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Your CV and online profile should always be up-to-date so that you can respond to opportunities immediately, otherwise the opportunities might be gone quickly.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;This means that e.g. every other week while you still have a job, you should be updating your profile accordingly with the latest changes.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;To be continued...&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3509151702909866751?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3509151702909866751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3509151702909866751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3509151702909866751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3509151702909866751'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/best-software-engineer-mindsets.html' title='Best Software Engineer Mindsets'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-1855828636988399717</id><published>2010-05-06T08:15:00.000-07:00</published><updated>2011-07-06T15:34:16.412-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dependency Injection'/><category scheme='http://www.blogger.com/atom/ns#' term='DI'/><category scheme='http://www.blogger.com/atom/ns#' term='Service Locator Pattern'/><title type='text'>Service Locator Pattern</title><content type='html'>&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;It's a design pattern for simplifying dependency injection&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;The ServiceLocator class would be a singleton class whose object contains a dictionary of all dependencies in the project&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;the main point of using ServiceLoc&lt;wbr style="display: inline-block; "&gt;ator is to make the dependenci&lt;wbr style="display: inline-block; "&gt;es easily replaceabl&lt;wbr style="display: inline-block; "&gt;e at runtime&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;It can be used along with other IoC containers - IoC containers are good to initialize dependencies whereas service locator can help replacing the dependencies at runtime after initialization when needed&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff921142.aspx"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;http://msdn.microsoft.com/en-us/library/ff921142.aspx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://simpleservicelocator.codeplex.com/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;http://simpleservicelocator.codeplex.com/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&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-size: small;"&gt;&lt;span class="Apple-style-span"&gt;The problem with this is that if there is any ref-type property, this doesn't work. Which means every ref-type property must implement its own Equals.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-1855828636988399717?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/1855828636988399717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=1855828636988399717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1855828636988399717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/1855828636988399717'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/service-locator-pattern.html' title='Service Locator Pattern'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5482632601050913139</id><published>2010-05-06T03:00:00.001-07:00</published><updated>2010-05-06T03:00:51.029-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Disk Drive'/><category scheme='http://www.blogger.com/atom/ns#' term='JDiskReport'/><title type='text'>Disk Drive Analyzer</title><content type='html'>JDiskReport: &lt;a href="http://www.jgoodies.com/freeware/jdiskreport/"&gt;http://www.jgoodies.com/freeware/jdiskreport/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5482632601050913139?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5482632601050913139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5482632601050913139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5482632601050913139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5482632601050913139'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/disk-drive-analyzer.html' title='Disk Drive Analyzer'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-2795139244674780669</id><published>2010-05-05T02:52:00.000-07:00</published><updated>2010-05-17T12:42:58.477-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unit Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Moq'/><title type='text'>Unit Testing With Moq</title><content type='html'>&lt;div&gt;Download from here: &lt;a href="http://code.google.com/p/moq/downloads/list"&gt;http://code.google.com/p/moq/downloads/list&lt;/a&gt;&lt;/div&gt;API Documentation: &lt;a href="http://www.clariusconsulting.net/labs/moq/index.html"&gt;http://www.clariusconsulting.net/labs/moq/index.html&lt;/a&gt;&lt;div&gt;&lt;a href="http://www.clariusconsulting.net/labs/moq/index.html"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Tutorials:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codethinked.com/post/2009/03/08/Beginning-Mocking-With-Moq-3-Part-1.aspx"&gt;http://www.codethinked.com/post/2009/03/08/Beginning-Mocking-With-Moq-3-Part-1.aspx&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-2795139244674780669?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/2795139244674780669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=2795139244674780669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2795139244674780669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2795139244674780669'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/unit-testing-with-moq.html' title='Unit Testing With Moq'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-9067245188340925134</id><published>2010-05-04T23:37:00.000-07:00</published><updated>2010-05-04T23:44:17.914-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>WPF - Modal Popup</title><content type='html'>&lt;div&gt;WPF has a Popup control for this purpose:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://bhaidar.net/cs/archive/2008/06/29/modalpopup-dialog-in-wpf-browser-applications-xbap.aspx"&gt;http://bhaidar.net/cs/archive/2008/06/29/modalpopup-dialog-in-wpf-browser-applications-xbap.aspx&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.popup.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.popup.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://roecode.wordpress.com/2008/01/07/wpf-popup-control-part-1-the-quick-and-dirty-way/"&gt;http://roecode.wordpress.com/2008/01/07/wpf-popup-control-part-1-the-quick-and-dirty-way/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://roecode.wordpress.com/2008/01/08/wpf-popup-control-part-2-user-controls-as-popups/"&gt;http://roecode.wordpress.com/2008/01/08/wpf-popup-control-part-2-user-controls-as-popups/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.highoncoding.com/Articles/470_Introduction_to_WPF_Popup_Control.aspx"&gt;http://www.highoncoding.com/Articles/470_Introduction_to_WPF_Popup_Control.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-9067245188340925134?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/9067245188340925134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=9067245188340925134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/9067245188340925134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/9067245188340925134'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/wpf-modal-popup.html' title='WPF - Modal Popup'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3469115311072166873</id><published>2010-05-04T07:12:00.001-07:00</published><updated>2011-11-15T07:44:58.313-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Region'/><category scheme='http://www.blogger.com/atom/ns#' term='StyleCop'/><title type='text'>Your Class Regions</title><content type='html'>According to StyleCop, the order of class members should as below:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Fields&lt;/li&gt;&lt;li&gt;Constructors&lt;/li&gt;&lt;li&gt;Events&lt;/li&gt;&lt;li&gt;Enums&lt;/li&gt;&lt;li&gt;Properties&lt;/li&gt;&lt;li&gt;Methods&lt;/li&gt;&lt;/ol&gt;Notes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A class doesn't have to have all these regions, only those which are required.&lt;/li&gt;&lt;li&gt;You can use Ctrl+K+S to add a region snippet quickly.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3469115311072166873?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3469115311072166873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3469115311072166873' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3469115311072166873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3469115311072166873'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/your-class-regions.html' title='Your Class Regions'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-427385874507276189</id><published>2010-05-02T11:25:00.000-07:00</published><updated>2010-05-02T12:04:12.803-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtual Server'/><title type='text'>VPS Hosting Solutions</title><content type='html'>&lt;div&gt;&lt;b&gt;Service:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;VPS Hosting Solution&lt;/li&gt;&lt;li&gt;Windows-based; to host asp.net applications&lt;/li&gt;&lt;li&gt;SQL Server support&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Service Providers:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;a href="http://www.serverintellect.com/virtualservers/"&gt;http://www.serverintellect.com/virtualservers/&lt;/a&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Too expensive&lt;/li&gt;&lt;li&gt;$99 a month&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://www.easyspace.com/virtual_servers"&gt;http://www.easyspace.com/virtual_servers&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;£30 a month&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://www.virtualserverwarehouse.com/vps-hosting-standard.html"&gt;http://www.virtualserverwarehouse.com/vps-hosting-standard.html&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;£40 a month&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://www.vpsland.com/windowsplans.html"&gt;http://www.vpsland.com/windowsplans.html&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;$20 a month; not sure it is reliable&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://www.webhosting.uk.com/windows-vps-hosting.php"&gt;http://www.webhosting.uk.com/windows-vps-hosting.php&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;£21 a month&lt;/li&gt;&lt;li&gt;Supports only 2 dedicated ip addresses; £20 a year per additional ip address&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://www.eukhost.com/windows-vps-hosting.php"&gt;http://www.eukhost.com/windows-vps-hosting.php&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;£21 a month&lt;/li&gt;&lt;li&gt;same as webhosting.uk.com&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-427385874507276189?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/427385874507276189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=427385874507276189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/427385874507276189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/427385874507276189'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/05/vps-hosting-solutions.html' title='VPS Hosting Solutions'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-914811782580185565</id><published>2010-04-27T09:08:00.001-07:00</published><updated>2010-04-27T09:14:58.832-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Proxy'/><title type='text'>Reverse Proxy Server vs Forward Proxy Server</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KcaDSFcliq8/S9cNMWn-RFI/AAAAAAAAA0Q/-z3EUFqyLps/s1600/revproxy02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 165px;" src="http://1.bp.blogspot.com/_KcaDSFcliq8/S9cNMWn-RFI/AAAAAAAAA0Q/-z3EUFqyLps/s400/revproxy02.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5464851178720216146" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KcaDSFcliq8/S9cMqs3WJjI/AAAAAAAAA0I/TDd62-nEOxc/s1600/bm_sol_img1.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 380px; height: 226px;" src="http://2.bp.blogspot.com/_KcaDSFcliq8/S9cMqs3WJjI/AAAAAAAAA0I/TDd62-nEOxc/s400/bm_sol_img1.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5464850600574723634" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KcaDSFcliq8/S9cMGQ3OjyI/AAAAAAAAAz4/1f9frdjF7m8/s1600/fwdrevproxy.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 144px;" src="http://1.bp.blogspot.com/_KcaDSFcliq8/S9cMGQ3OjyI/AAAAAAAAAz4/1f9frdjF7m8/s400/fwdrevproxy.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5464849974582742818" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:verdana, tahoma, arial, helvetica, sans-serif;font-size:13px;"&gt;&lt;p style="margin-top: 2ex; margin-bottom: 2ex; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The difference between a 'forward' and 'reverse' proxy is determined by where the proxy is running. For example, your ISP probably uses a web cache to reduce its bandwidth costs. In this case, the proxy is sitting between your computer and the whole Internet. This is a 'forward proxy'. The proxy has a limited set of users (the ISP's customers), and can forward requests on to any machine on the Internet (i.e. the web sites that the customers are browsing).&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 2ex; margin-bottom: 2ex; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Alternatively, a company can put a web cache in the same data center as their web servers, and use it to reduce the load on their systems. This is a 'reverse proxy'. The proxy has an unlimited set of users (anyone who wants to view the web site), but proxies requests on to a specific set of machines (the web servers running the company's web site). This is a typical role for Traffic Managers - they are traditionally used as a reverse proxy.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 2ex; margin-bottom: 2ex; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Reverse_proxy"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://en.wikipedia.org/wiki/Reverse_proxy&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-914811782580185565?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/914811782580185565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=914811782580185565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/914811782580185565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/914811782580185565'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/04/reverse-proxy-server-vs-forward-proxy.html' title='Reverse Proxy Server vs Forward Proxy Server'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KcaDSFcliq8/S9cNMWn-RFI/AAAAAAAAA0Q/-z3EUFqyLps/s72-c/revproxy02.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5465311218986256003</id><published>2010-04-26T05:02:00.000-07:00</published><updated>2011-01-26T01:58:07.793-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quotes'/><title type='text'>Programming Quotes</title><content type='html'>&lt;span class="Apple-style-span"&gt;&lt;pre style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;span class="Apple-style-span"  &gt;The fastest code is that which doesn't run.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;span class="Apple-style-span"  &gt;The easiest code to maintain is the code that isn't there.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;span class="Apple-style-span"  &gt;We are stronger together; when planning together, design together, develop together and deploy together.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;span class="Apple-style-span"  &gt;Make it easy to do things right and harder to do things wrong.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana; white-space: normal; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-size: small; border-collapse: collapse; "&gt;Sometimes there is a silver bullet for boosting software engineerin&lt;wbr style="display: inline-block; "&gt;g productivi&lt;wbr style="display: inline-block; "&gt;ty. But you need to shoot the right person.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;span class="Apple-style-span"  &gt;&lt;a href="http://www.linfo.org/q_programming.html"&gt;http://www.linfo.org/q_programming.html&lt;/a&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5465311218986256003?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5465311218986256003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5465311218986256003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5465311218986256003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5465311218986256003'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/04/programming-quotes.html' title='Programming Quotes'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-8219529737324533804</id><published>2010-04-19T11:21:00.000-07:00</published><updated>2010-04-21T05:03:40.157-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>WPF Controls Supperted by .NET Framework</title><content type='html'>WPF Controls supported by .NET Framework: &lt;a href="http://msdn.microsoft.com/en-us/library/ms754204.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms754204.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-8219529737324533804?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/8219529737324533804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=8219529737324533804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8219529737324533804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8219529737324533804'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/04/wpf-controls-supperted-by-net-framework.html' title='WPF Controls Supperted by .NET Framework'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-2811648696045264747</id><published>2010-04-14T06:04:00.000-07:00</published><updated>2010-04-14T06:06:21.163-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XPS'/><title type='text'>XPS</title><content type='html'>You can view or generate XPS files using &lt;a href="http://www.microsoft.com/whdc/xps/viewxps.mspx"&gt;XPS Viewer&lt;/a&gt; which is developed by Microsoft, whereas PDF is created by Adobe obviously.&lt;br /&gt;&lt;a href="http://www.microsoft.com/whdc/xps/viewxps.mspx"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-2811648696045264747?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/2811648696045264747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=2811648696045264747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2811648696045264747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2811648696045264747'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/04/xps.html' title='XPS'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-2235274327510951408</id><published>2010-04-13T13:45:00.000-07:00</published><updated>2010-06-08T03:28:17.258-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 4.0'/><title type='text'>Visual Studio 2010 and .NET 4.0</title><content type='html'>&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Training Kit:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Visual Studio 2010 Training Kit published containing presentations, hands-on labs and demos of new features of .NET 4.0 and VS 2010:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=752cb725-969b-4732-a383-ed5740f02e93&amp;amp;displaylang=en&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Training Materials on Channel 9:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;http://channel9.msdn.com/learn/courses/vs2010/&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;http://channel9.msdn.com/shows/10-4/&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;New VS 2010 IDE Features :&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Generate From Usage, Call Hierarchy, Navigate To Window, Reference Highlighting, Box Selecting and Multiline Editing, Docking Windows and Zoom, Extension Manager&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a href="http://blogs.msdn.com/b/csharpfaq/archive/2010/05/10/new-ide-features-in-visual-studio-2010-for-c-developers.aspx"&gt;http://blogs.msdn.com/b/csharpfaq/archive/2010/05/10/new-ide-features-in-visual-studio-2010-for-c-developers.aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Product Highlights: &lt;a href="http://msdn.microsoft.com/en-us/library/dd547188.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd547188.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;VS 2010 Extensions/Power Tools:&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;These extensions are to improve developer productivity so install them:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef"&gt;http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-2235274327510951408?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/2235274327510951408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=2235274327510951408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2235274327510951408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/2235274327510951408'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/04/visual-studio-2010-and-net-40.html' title='Visual Studio 2010 and .NET 4.0'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-8882752485818114725</id><published>2010-04-07T04:43:00.000-07:00</published><updated>2010-04-07T04:44:50.307-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Intellisence'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>T-SQL Intellisence</title><content type='html'>SQLAssist: &lt;a href="http://roundpolygons.com/Purchase/tabid/414/Default.aspx"&gt;http://roundpolygons.com/Purchase/tabid/414/Default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SQL Prompt from Redgate: &lt;a href="http://www.red-gate.com/Products/SQL_Prompt/index.htm"&gt;http://www.red-gate.com/Products/SQL_Prompt/index.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Built-in Support in SQL Server 2008: &lt;a href="http://connect.microsoft.com/SQLServer/content/content.aspx?ContentID=6968"&gt;http://connect.microsoft.com/SQLServer/content/content.aspx?ContentID=6968&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-8882752485818114725?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/8882752485818114725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=8882752485818114725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8882752485818114725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/8882752485818114725'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/04/t-sql-intellisence.html' title='T-SQL Intellisence'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-3968063771302237666</id><published>2010-04-02T15:11:00.000-07:00</published><updated>2010-04-04T12:07:40.972-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><title type='text'>SSIS</title><content type='html'>&lt;div&gt;&lt;b&gt;Which Versions/Editions of SQL Server Supports SSIS?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;As can be seen from &lt;a href="http://www.microsoft.com/Sqlserver/2005/en/us/compare-features.aspx"&gt;here&lt;/a&gt;, only Standard and Enterprise editions of SQL Server 2005 support SSIS; Express and Workgroup editions do not support it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;SSIS Studio Environments:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms140028.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms140028.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Virtual Labs:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032286838&amp;amp;EventCategory=3&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032286838&amp;amp;EventCategory=3&amp;amp;culture=en-US&amp;amp;CountryCode=US&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032323416&amp;amp;EventCategory=3&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032323416&amp;amp;EventCategory=3&amp;amp;culture=en-US&amp;amp;CountryCode=US&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032323418&amp;amp;EventCategory=3&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032323418&amp;amp;EventCategory=3&amp;amp;culture=en-US&amp;amp;CountryCode=US&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032323416&amp;amp;EventCategory=3&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032323416&amp;amp;EventCategory=3&amp;amp;culture=en-US&amp;amp;CountryCode=US&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=B1145E7A-A4E3-4D14-B1E7-D1D823B6A447&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=B1145E7A-A4E3-4D14-B1E7-D1D823B6A447&amp;amp;displaylang=en&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Video Tutorials:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;http://www.sqlshare.com/channel.aspx?cat=c871236d-8554-42e3-8683-4d422356c0bd&amp;amp;page=0&lt;/li&gt;&lt;li&gt;http://msdn.microsoft.com/en-us/library/dd299421.aspx&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Downloads:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Microsoft SQL Server 2005 Express Edition Toolkit&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Other Resources:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;On MSDN: http://msdn.microsoft.com/en-us/sqlserver/cc511477.aspx&lt;/li&gt;&lt;li&gt;On Technet: http://technet.microsoft.com/en-us/sqlserver/cc510302.aspx&lt;/li&gt;&lt;li&gt;On MSDN Forum: &lt;a href="http://social.msdn.microsoft.com/forums/en-US/sqlintegrationservices/threads/"&gt;http://social.msdn.microsoft.com/forums/en-US/sqlintegrationservices/threads/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-3968063771302237666?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/3968063771302237666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=3968063771302237666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3968063771302237666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/3968063771302237666'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/04/ssis.html' title='SSIS'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-7307826789376933867</id><published>2010-03-29T03:16:00.001-07:00</published><updated>2010-04-21T02:02:39.779-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debug'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Service'/><category scheme='http://www.blogger.com/atom/ns#' term='Console'/><title type='text'>How to Run a Windows Service as a Console App in Debug Mode</title><content type='html'>1. Right click on your windows service project, go to the properties and change the Output Type to Console Application.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. In the Main method of your Program.cs file, write the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt; static class Program&lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;div&gt;        /// &lt;summary&gt;&lt;/summary&gt;&lt;/div&gt;&lt;div&gt;        /// The main entry point for the application.&lt;/div&gt;&lt;div&gt;        /// &lt;/div&gt;&lt;div&gt;        static void Main()&lt;/div&gt;&lt;div&gt;        {        &lt;/div&gt;&lt;div&gt;            Service1 service1 = new Service1();&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            if (Environment.UserInteractive)&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                service1.RunAsCommandLineApplication();&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;            else&lt;/div&gt;&lt;div&gt;            {               &lt;/div&gt;&lt;div&gt;                ServiceBase.Run(service1);&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Add the following method to your Service1 windows service:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;internal void RunAsCommandLineApplication()&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            this.OnStart(null);&lt;/div&gt;&lt;div&gt;            Console.WriteLine("The Service is running.");&lt;/div&gt;&lt;div&gt;            Console.WriteLine("Press return to quit application.");&lt;/div&gt;&lt;div&gt;            Console.ReadLine();&lt;/div&gt;&lt;div&gt;            this.OnStop();&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Install your service using the svcutil.exe tool or using a Setup project&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now you can run your windows service as a console application in debug mode.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-7307826789376933867?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/7307826789376933867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=7307826789376933867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7307826789376933867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/7307826789376933867'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/03/how-to-run-windows-service-as-console.html' title='How to Run a Windows Service as a Console App in Debug Mode'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3384101258168125324.post-5971327540876185274</id><published>2010-03-26T03:19:00.000-07:00</published><updated>2010-03-26T03:40:57.576-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Buy Controls'/><title type='text'>Buy .NET Components and Controls</title><content type='html'>&lt;div&gt;Why buying? you might find what you want free:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;ASP.NET Ajax Control Toolkit: &lt;a href="http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Default.aspx"&gt;http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Default.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Visual Studio Gallery: &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/"&gt;http://visualstudiogallery.msdn.microsoft.com/en-us/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Commercial components from:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.devexpress.com/"&gt;http://www.devexpress.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.devexpress.com/"&gt;&lt;/a&gt;&lt;a href="http://www.telerik.com/support/demos.aspx"&gt;http://www.telerik.com/support/demos.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.infragistics.com/"&gt;http://www.infragistics.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.componentart.com/"&gt;http://www.componentart.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3384101258168125324-5971327540876185274?l=pooyakhamooshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pooyakhamooshi.blogspot.com/feeds/5971327540876185274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3384101258168125324&amp;postID=5971327540876185274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5971327540876185274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3384101258168125324/posts/default/5971327540876185274'/><link rel='alternate' type='text/html' href='http://pooyakhamooshi.blogspot.com/2010/03/buy-net-components-and-controls.html' title='Buy .NET Components and Controls'/><author><name>Pooya Khamooshi</name><uri>http://www.blogger.com/profile/17307982895929166635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_KcaDSFcliq8/SrFDUjqjCEI/AAAAAAAAAt4/UsRnYFeU2fE/S220/SL382152.gif'/></author><thr:total>0</thr:total></entry></feed>
