Archives

Archives / 2004 / February
  • IL, Metadata tables and Generics.

    .Net assemblies contain IL code that your compiler generate from your favorite language and metadata, in form of related tables, that contain all needed data about assembly types and references assemblies. Whidbey introduce generics that enable us to create parametric types (refer to Juval Lowy article). Those types that declare generic parameters enable the class creator to declare constraints on generic parameters. As written in every article on that subject generics embedded deep into CLR thus there must be any modifications to IL and Metadata to reflect generics.

  • "The process cannot access the file because it is being used by another process"

    As you probably know there are several causes to that message. One of them is due to the fact that .NET cache in memory files that are larger then 64K, thus those files always being used by another process. One simple way to workaround this behavior is to change project build configuration from debug to release, to build the project and then switch back to debug configuration.

  • Using tracing intensively may cause high CPU.

    It might sound banal but I actually help a guy few days ago. I got a phone call that ASP.NET application that he develop consuming 50% of CPU with minimum server pressure and climb to 100% CPU when request start to come rapidly.

  • COM+ and .Net practical approach

    This article is actually made up from three main parts. The first part handles all the aspect of using COM+. After reading this part you will know what the options that you have to host your assembly in COM+, impact on ASP.NET application performance of any option and what are, if any, limitations impose by selecting certain COM+ hosting option.

  • COM+ and .Net practical approach

    This article is actually made up from three main parts. The first part handles all the aspect of using COM+. After reading this part you will know what the options that you have to host your assembly in COM+, impact on ASP.NET application performance of any option and what are, if any, limitations impose by selecting certain COM+ hosting option.

  • ASP.NET 2.0 and utility classes.

     I'm working these days with ASP.NET 2.0 (actually 1.2) for several reasons. As I already posted ASP.NET 2.0 don’t come with building option inside VS.NET. ASP.NET compiles ASPX files and code behind files while application called from the first time. So if you add utility class to the project no one will compile your utility class and you can't use it. Even if you use Page Inherits attribute to set Page base class to class inside your project, the page won't recognize your base class at runtime. The only way I found out to add classes is by creating class libraries and references them from ASP.NET project. By the way the current version doesn't support project reference from ASP.NET projects.

  • ASP.NET generates Personalization code even if you didn’t ask for it in your page.

    While writing an article about the way Whidbey handled ASPX files I notice that ASP.NET generate personalization assembly and several personalization functions inside ASPX assembly. ASP.NET generate this code although I didn’t ask anywhere on the page for Personalization. Well, it turned out that HttpPersonalization Tag in Machine.config is responsible for generation of Personalization code. HttpPersonalization has enable attribute that set by default to true and cause generation of code. If you want to turn code generation of personalization off set enable attribute to false.

  • Turning caspol -s off and Oracle ODP stops to retrieve data.

    One of my clients, which got close network, use caspol -s off to turn down client side stations security. After w while ODP code that run perfectly on developers machine stop to work, while MS oracle driver works perfectly. ODP code throws exceptions such as “Invalid Operation” or others that really didn’t tell you anything. As you probably figure out it took us a lot of time to find that turning off caspol causes ODP to misbehave, but we humans, don’t we?