Wednesday, September 17, 2014

Microsoft Certification exam provider change update

Effective January 1, 2015, Pearson VUE and Certiport, a business of Pearson VUE, will be the sole exam delivery provider for Microsoft.

Read announcement here:

Friday, August 22, 2014

Slides: Software Development Philosophies

Find the slides I have used for a software development fundamentals training.

End of support announcement for Internet Explorer and .NET Framework 4.x

Internet Explorer

Beginning January 12, 2016, only the most current version of Internet Explorer available for a supported operating system will receive technical support and security updates, as shown in the table below:

Windows Desktop and Server Operating Systems*
Internet Explorer Version
Windows Vista SP2
Internet Explorer 9
Windows 7 SP1
Internet Explorer 11
Windows 8.1 Update
Internet Explorer 11
Windows Server 2008 SP2
Internet Explorer 9
Windows Server 2008 R2 SP1
Internet Explorer 11
Windows Server 2012
Internet Explorer 10
Windows Server 2012 R2
Internet Explorer 11

* For more details on the support lifecycle, including the latest Windows Embedded operating system and Internet Explorer browser combinations, see the Microsoft Internet Explorer Support Lifecycle Policy Page.

.NET Framework

If your company is using a version of .NET 4.x, beginning January 12, 2016 only .NET Framework 4.5.2 will continue receiving technical support and security updates.  After this date, Microsoft will no longer support .NET 4, 4.5, or 4.5.1.  There is no change to the support timelines for any other .NET Framework version, including .NET 3.5 SP1, which will continue to be supported for the duration of the operating system lifecycle.  For more details on the .NET Framework support lifecycle, visit the Microsoft .NET Framework Blog Link or Microsoft .NET Support Lifecycle Policy page.

·         For customers running .NET Framework 4.x, test and deploy the .NET Framework 4.5.2, which offers improved functionality and performance improvements, by January 12, 2016.

Thursday, August 21, 2014

Understanding the ETW architecture

Here is a good article which was published in 2007 on MSDN Magazine on - "Improve Debugging And Performance Tuning With ETW"

This article discusses:
  1. Understanding the ETW architecture
  2. What's new for ETW in Windows Vista
  3. Programming with the event provider APIs

Wednesday, August 20, 2014

URL routing not working in IIS? Getting 404?

When you try to host a website for the first time, there is a chance you might encounter HTTP 404 instead of desired output. Try/verify below steps:

1. Check whether "HTTP Redirection" is installed. (Go to Add/Remove programs -> Turn windows features on or off -> Internet information services -> World Wide Web Services -> Common HTTP Features) (steps might be different for different servers/versions)

2. Make sure you have something like below in <system.webServer> node:
    <modules runAllManagedModulesForAllRequests="true" />
    <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>

Tuesday, August 19, 2014

ASP.NET - Post html/script without setting validateRequest=false

If you are an ASP.NET developer you might have encountered this famous error at least once in lifetime:
Error: A potentially dangerous Request.Form value was detected from the client
This can be easily avoided if you set directive validateRequest=false. But this is not a good approach as this opens the door to  hackers.Here is an alternate way to post HTML tags/script etc. "malicious" contents to server without turning off request validation.

1. In the submit button (or form onSubmit) add a client script click - OnClientClick="return PreSubmit()"

2. Do an "escape" of text using javascript in PreSubmit() function. Like, using jQuery: $(".FAQEdit").val(escape($(".FAQEdit").val())); here, FAQEdit is my textbox.

3. Now, at the code behind, do an "unescape". You can use HttpUtility.UrlDecode(FAQEdit.Text) for this purpose.

4. Done! now you are free from the error