As a web developer who learnt to develop for the web with PHP, my biggest issue with learning to use ASP.NET is that it is designed to be like developing for the desktop.
While this is a noble idea and one which should make it easier for more developers to create dynamic websites, I am constantly reminded of one fundamental fact.
The web and the desktop are not the same!
While it might be easier to write code if you think of the as being the same, this will inevitably lead to poor quality websites. Or at least poor quality code in websites.
In time, this poor quality code will lead to poor performance and difficulty to enhance and maintain. Things which are neither beneficial to the user or the developer.
So, what I'm probably trying to say is that development in ASP.Net without a proper understanding of how the web is different from the desktop, and how to develop accordingly, will lead to a lose - lose situation.