I'm at the MVP Summit this week. I was eating lunch the other day with Steve Greenberg, Benny Tritsch, and Tim Mangan. We got to talking about how all these "application frameworks" (Java, .NET Framework, Silverlight, etc.) have to load in every user session on a Terminal Server and how slow that is. (And how ultimately, as more apps are written in these ways, some of the "user density" advantages of Terminal Server versus VDI will disappear... But that's a topic for another day.)
We got onto this topic because I mentioned that a student in our 5-day Citrix Master class in Ausralia a few weeks ago told of doing the "right" thing. He said that he had taken the time to learn PowerShell and rewrote all of his VBS Citrix login scripts in PowerShell. The result? Login times went from about 2.5 seconds to over 15 seconds per user!
This is because PowerShell requires the .NET Framework. On a Terminal Server, the .NET Framework has to load in every user session. So not only does this produce a login delay as it loads the framework in each session, it is also very inefficient.
As a quick aside, during this conversation, Tim asked, "What? Powershell requires the .NET Framework? Then how does it work on Windows 2008 Server Core? (Since Server Core doesn't support .NET.)"
Benny's response: "It doesn't."