Friday, August 26, 2011

IE9 Most Secure Browser (NSS LAB)

Internet Explorer 9 blocks 99% malware attacks: NSS Lab study!

IE9 continues to protect consumers

With one third of internet users in Asia-Pacific alone becoming victims of threats like malware, the need for online security is more relevant than ever. To address these online concerns, Microsoft created their latest browser Internet Explorer 9, which provides a safe, secure yet beautiful and speedy browsing experience. Today, NSS Labs released two reports which show that SmartScreen feature in Internet Explorer continues to offer industry leading protection against socially engineered malware. As per the report “Internet Explorer 9 blocks an exceptional 99% malware. 96% of the live threats were caught with SmartScreen URL reputation in IE9, and an additional 3.2% with Application Reputation.”

What’s more, since the October 2010 NSS report, the average time taken by SmartScreen filter to block a threat has gotten 28% faster, if Application Reputation is considered, then the average time has improved by 85%. The graph below compares the test results from various browsers and shows that Internet Explorer blocks 5X more malware than competitive browsers.


The other reports looked at socially engineered malware targeted towards people living in Asia Pacific region and in Europe. As you can see below, in each region the results remained consistent – Internet Explorer 9 maintains a lead in protecting users from live threats.




* You check out the entire web browser security report by NSS Labs by clicking here: https://www.nsslabs.com/assets/noreg-reports/2011/nss%20labs_q3_2011_browsersem%20GLOBAL-FINAL.pdf.

It is no surprise that a browser is the first line of defense against attacks from the web and it plays an important role to help keep you safe online. Internet Explorer is designed with your security and privacy in mind. The new browser has a robust set of built-in security, privacy, and reliability technologies that helps keep consumers safe and their browsing experience virtually uninterrupted. With IE9, we have introduced new functionalities like Tracking Protection, Tracking Protection Lists, ActiveX Filtering to name a few. IE9 makes browsing the web even safer & protected experience from here on.

IE9 has received positive feedback from consumers globally. As of today, Internet Explorer 9 has over 18% usage share worldwide on Windows 7. You can download Internet Explorer 9 to see how you can enjoy a more beautiful – and trusted web!


Thanks

Anil Kumar Pandey

Tuesday, August 16, 2011

Asynchronous Programming in C#

Hi All,

A few days back I was searching the roadmap for the new C#5.0, I come up with a MSDN article which was describing the "Asynchronous" method. The another way of programming for the Asynchronous operation. I saw a White paper on this technology, so I am just presenting the content of the same in front of you.

Definition : -

When your user interface is unresponsive or your server doesn’t scale, chances are you need your code to be more asynchronous. With today’s .NET Framework and language features, though, that is easier said than done.

The Microsoft Visual Studio Async CTP proposes a new language feature in C# and VB, and a new framework pattern to go with it, that will make asynchronous programming similar to – and about as straightforward as –synchronous programming.

For decades programming with remote resources has presented a conundrum. As the level of abstraction in “local” programming has been steadily rising, there has been a push for transparency of remote operations – they should look just like local ones, so that a developer doesn't need to grapple with conceptual overhead, architectural impedance mismatch and leaky abstractions.

The problem is that remote operations are different from local ones. They have orders of magnitude more latency even at the best of times, may fail in new ways or simply never come back, depend on a variety of external factors beyond the developer’s control or even perception, etc. So while they can be represented like “just method calls,” it is not desirable to do so because the developer is left without handles to manage the special conditions arising from their remoteness – managing cancellation and timeouts, preserving threading resources during blocking waits, predicting and handling threats to responsiveness, etc.

On .NET we have not ignored this challenge. In fact we have not just one butseveral patterns for how to do asynchronous programming; that is, dealing with I/O and similar high latency operations without blocking threads. Most often there is both a synchronous (i.e. blocking transparently) and an asynchronous (i.e. latency-explicit) way of doing things. The problem is that these current patterns are very disruptive to program structure, leading to exceedingly complex and error prone code or (more commonly) developers giving up and using the blocking approach, taking a responsiveness and performance hit instead.

The goal should be to bring the asynchronous development experience as close to the synchronous paradigm as possible, without letting go of the ability to handle the asynchrony-specific situations. Asynchrony should be explicit and non-transparent, but in a very lightweight and non-disruptive manner. Composability, abstraction and control structures should all work as simply and intuitively as with synchronous code.

This is the goal of the features of the Async CTP.

public int SumPageSizes(IList<Uri> uris) {

int total = 0;
foreach (var uri in uris) {
statusText.Text = string.Format("Found {0} bytes ...", total);
var data = new WebClient().DownloadData(uri);
total += data.Length;
}
statusText.Text = string.Format("Found {0} bytes total", total);
return total;
}


What Might be the Good approach for the saeme??The problem: Asynchronous code totally blows up your control flow. The call you back part needs a callback – a delegate describing what comes after. But what if you wanted to “wait” inside a while loop? An if statement? A try block orusing block? How do you then describe “what comes after”?

Look at this simple example:


public async Task<int> SumPageSizesAsync(IList<Uri> uris) {
int total = 0;
foreach (var uri in uris) {
statusText.Text = string.Format("Found {0} bytes ...", total);
var data = await new WebClient().DownloadDataAsync(uri);
total += data.Length;
}
statusText.Text = string.Format("Found {0} bytes total", total);
return total;
}


Notice first how similar it is to the synchronous code. The highlighted parts are added, the rest stays the same. The control flow is completely unaltered, and there are no callbacks in sight. That doesn’t mean that there are no callbacks, but the compiler takes care of creating and signing them up, as we shall see.

The method is asynchronous by virtue of returning a Task instead of an int. The Task andTask types are in the framework today, and are good at representing ongoing work. The caller of SumPageSizesAsync can later use the returned Task to inquire whether the work is complete, wait for the int result synchronously or sign up callbacks to get it when it is ready. So instead of taking a callback as a parameter, an asynchronous method now returns a representation of the ongoing work.

The asynchronous method has no extra parameters. By convention and to distinguish it from its synchronous counterpart (if we keep that in our code) we append “Async” to the method name.

The method is also marked as async. This means that the method body is compiled specially, allowing parts of it to be turned into callbacks, and automatically creating theTask that is returned.

Hope You have liked this peiece of infrmation, I thought it might be useful for all the developers. You can read the complete White paper from the below location. WhitePaper

Please Do Post Your Comment on the same.

Thanks

Anil Kumar Pandey

MVP,MCC,MVM

Kontera