I recently got a question something similar to:
"We are having some memory issues when trying to run our .NET applications over Citrix. Since each user is running his or hers own session .NET Framework loads into memory for each instance of the application and this appears to hog the memory. Are there any recommendations when writing applications for these scenarios?"
Here is my response. I felt that this could be useful to lot many people:
The .net framework is loaded into a process for each application separately. The design does not allow sharing of the framework resources between processes. So if there are multiple processes running – there is going to be hit. However there are some practices that can help improve performance: