One of the most serious flaws of COM and API-based software development is
that once you allow a component to run on your system, it has unrestricted
permission to do anything. That's why viruses are such a problem - once they
are on your system, there is little to protect you from their actions.
With .NET, Microsoft has introduced something called code access security
(CAS). Code access security allows fine-grained control over what code is
allowed to do. For example: .NET software downloaded from the Internet can't
make API calls, can't access your registry - can't even read and write files!
Even software running on a network share can't make API calls by default.
In the long term, this is likely to bring about a return to thick-client
applications: Why limit yourself to a Web page interface when you can, with
one click, safely download and run a rich Windows Forms-... (more)
By now most of you reading this article will be familiar with .NET exception
handling, at least in its basic form. You know how to catch exceptions using
Try...Catch blocks. You know how to handle exceptions raised by the
framework. You may even have created and thrown your own exceptions.
In this article you'll learn how to take this to the next level - how to
define custom exceptions for your own classes and components, and the design
patterns that you should use when doing so.
I have included two sample projects to help explain these design patterns.
The SampleComponent projec... (more)