Я предполагаю, что ваше редактирование означает:
В global.asax.cs:
Application["a"] = new classname();
В classname.cs
public static class classname {}
В этом случае они во многом совпадают с большим исключением, что (classname)Application["a"]
будет ссылаться на экземпляр класса classname, тогда как во втором примере любые вызовы classname.MethodNameGoesHere()
будут вызов статических методов класса classname.
Я бы пошел на статические методы статического класса, а не на методы экземпляра, хранящегося в Application, хотя я бы тогда очень тщательно подумал о том, что делают методы в classname, поскольку их можно вызывать одновременно столько, сколько люди могут получить доступ к сайту сразу.