| .NET Application Domains |
| C#Today |
| One of the most important features of any multi-tasking and multi-user system is process or application isolation. When multiple applications are active on a single system, it is crucial that these applications are protected and isolated from one another, to avoid them causing any damage to each other. The unit of isolation under Windows has traditionally been at the process level. This has changed slightly under the .NET framework. The Common Language Runtime (CLR) provides a slightly finer grained layer of isolation known as Application Domains or App domains. In this article, we will explore the .NET runtimes support for application domains, and build a sample application that explicitly creates an application domain, and loads and executes an assembly in it. |
|
| .NET Matters: Debugger Visualizations, Garbage Collection |
| MSDN |
| Get debugger visualizations right now in Visual Studion 2003 |
|
| .NET Remoting Explained |
| http://www.pinnaclepublishing.com/ |
| What if you were told that you had to create an application that was to support several thousand concurrent users, 24x7? And the only choice you had was to create a single, monolithic application that ran on one machine! No matter how big a machine you get, it won't be long before you start pulling your hair out. Luckily, you won't have to do that in the .NET platform—thanks to its distributed computing capabilities. Tarak Modi explains in detail. |
|
| .NET Remoting Interception |
| C#Today |
| With the advent of .NET, Microsoft realized the need for a more flexible approach for building distributed applications. .NET Remoting is the technology that allows remote components to interface and integrate. However, in order for this transparent integration, .NET remoting needs to provide some plumbing wherein it can resolve object references and direct method calls to the specific application hosting the required component, on the specific machine. This concept is based on the principle of Interception. In this article, Kaushal Sangahvi discusses the interception mechanism that is used by remoting, to allow for location transparency of objects. |
|
| A Simple protocol to view aspx pages without IIS implemented in C# |
| The Code Project |
| Covers how to write a Pluggable Asyncrhonous Protocol using C# and provides a useful protocol to enable local execution of ASP.NET sites. |
|
| Adventures in Visual Basic .NET: Broadcasting Messages to Multiple Clients |
| MSDN |
| Rocky Lhotka discusses optimistic concurrency and shows you how to create a messaging system that lets multiple users know when they are editing the same data at the same time. |
|
| An Introduction to Microsoft .NET Remoting Framework |
| MSDN |
| This article explains the fundamentals of the Microsoft .NET Remoting Framework. In addition to describing the main components that make up the .NET Remoting Framework, this document describes different scenarios in which .NET Remoting could be used to communicate with distributed objects. |
|
| An Introductory Guide to Building and Deploying More Secure Sites with ASP.NET and IIS |
| MSDN |
| ASP.NET and Microsoft Internet Information Services (IIS) work together to make building secure Web sites a breeze. But to do it right, you have to know how the two interrelate and what options they provide for securing access to a Web site's resources. This article, the first in a two-part series, explains the ABCs of Web security as seen through the eyes of ASP.NET and includes a hands-on tutorial demonstrating Windows authentication and ACL authorizations. A range of security measures and authentication methods are discussed, including basic authentication, digest authentication, and role-based security. |
|
| AppDomains and Assemblies |
| MSDN |
| I've been writing some code recently to deal with AppDomains. AppDomains provide a way to isolate part of an application from another part. In short, it lets you run in two separate environments. In some cases, the two environments may be on different machines and the communication between AppDomains is handled through remoting, and in other cases, they may be in the same process. |
|
| ASP.NET State Management using C# |
| The Code Project |
| ASP.NET State Management using C# |
|
| Asynchronous Context Processor |
| The Code Project |
| Asynchronous message processing infrastructure for .Net applications |
|
| Asynchronous Context Processor |
| The Code Project |
| Asynchronous message processing infrastructure for .NET applications. |
|
| Autodeploy the Easy Way |
| Visual Studio Magazine |
| Like most people, you have probably run into deployment issues with COM and ActiveX components in the past. This is one of the biggest problems Microsoft developers face. Microsoft .NET tackles this issue head-on by avoiding the Windows registry and providing a strong versioning scheme for assemblies (components). Better still, with just a couple lines of code, you can autodeploy assemblies to the client. This means that all the DLLs containing your application's UI and business logic will download automatically to the client machine, with no effort on your part. |
|
| Blog Reader Add-In for Visual Studio .NET |
| The Code Project |
| A blog reader, integrated into Visual Studio. Shows a list of blogs, blog entries, and which entries you haven’t read yet |
|
| BUG: AppDomainUnloadedException is thrown when you call a virtual destructor on a __nogc class during an AppDomain unload |
| http://www.kbalertz.com/ |
| (837317) - Discusses a bug that causes an AppDomainUnloadedException when you are unloading the AppDomain of a class that is declared as __nogc and that has a virtual destructor. |
|
| BUG: Varying errors may occur when you try to call managed code from unmanaged code in Visual C++ .NET 2003 |
| http://www.kbalertz.com/ |
| (837318) - Explains that an error message may occur when you try to call managed code from unmanaged code in Visual C++ .NET 2003. Explains that the error occurs if your application contains unmanaged code and uses multiple application domains. |
|
| Build a Versatile .NET Code Execution Timer / Logger |
| Egg Head Cafe |
| When you build ASP.NET applications that have multiple assemblies and a lot of business logic going on, it becomes extremely valuable to be able to trace and log the execution times of various operations within the application, and log them to a file or database where items can be grouped by function, calling assembly, time, elapsed time, method name and so on. |
|
| C++ Write Faster Code with the Modern Language Features of Visual C++ 2005 |
| MSDN |
| What you need to knopw about the new syntax in Visual C++ 2005 |
|
| Code Generation in the .NET Framework Using XML Schema |
| MSDN |
| Learn the difference between typed datasets and classes generated by the xsd.exe tool. Extend this process by reusing the infrastructure classes supporting it, staying compatible with the XmlSerializer. |
|
| Creating a Host Application for the .NET Common Language Runtime |
| The Code Project |
| This article explains how easy it is to write Custom Host applications for the .NET Common Language Runtime to run managed code. |
|
| Cutting Edge |
| MSDN |
| Dress Your Controls for Success with ASP.NET 1.1 Themes, Part 2 |
|
| Encrypt and Hide Sensitive Global Configuration Data |
| Egg Head Cafe |
| One of the biggest concerns of .NET Developers (and their clients) is protecting sensitive configuration data such as usernames and passwords, database connection strings and other global data that needs to be made easily available application - wide. Of course, web.config doesn't normally get served by IIS, provided the default mappings are set in machine.config and not overriden in a local web.config file. But a lot of people I"ve talked to don't feel comfortable having sensitive data in web.config. So of course, the first step would be that we can encrypt the data for starters. |
|
| Extolling the Virtues of Enumerated Types |
| MSDN |
| Most programmers are already familiar with enumerated types. But just to review, an enumerated type defines a set of symbolic names and values. Of course, a programmer can always write a program using 0 to represent red, 1 to represent green, and so on. However, there are at least two reasons why you shouldn't hardcode numbers into their code and should instead use an enumerated type. |
|
| FIX: You receive a "System.IO.IOException, 'The handle is invalid'" error message when you use both Visual J# .NET and Visual C# .NET to access the stdout output stream in the same process |
| Microsoft Support |
| (830297) - If you unload a Microsoft Visual J# .NET Application Domain (AppDomain) in a Microsoft Visual C# .NET process, the stdout output stream that is associated with the Console object is closed. After this point, if you try to use the Console object from... |
|
| FIX: You receive a "System.IO.IOException, 'The handle is invalid'" error message when you use both Visual J# .NET and Visual C# .NET to access the stdout output stream in the same process |
| http://www.kbalertz.com/ |
| (830297) - If you unload a Microsoft Visual J# .NET Application Domain (AppDomain) in a Microsoft Visual C# .NET process, the stdout output stream that is associated with the Console object is closed. After this point, if you try to use the Console object from... |
|