OK I was going to delete my response just so I didn't have to do this but here we go. Let me first just say I did .NET since 2001 first beta and for 8+ years after that. I bailed mentally to other frameworks around 2005 while in SOAP hell. I do primarily Python frameworks, Ruby or PHP but still do some .NET mainly Mono. I really like C# but disagree with the direction of most Microsoft culture decisions. I was MCSD in C++, C# (first 5000) and was an advocate of the platform from 2001-2005. So this is coming from a .NET dev.
1. Yes it does. It defaults all models, views, routes to capitalized names like CustomerProduct rather than customer-product which is much better for urls and keywords. You even have many lower level .NET dude with /Member in all their urls because they can't abstract away from the physical folder hierarchy.
2. Everything should be ashx or handler based like a good framework, if you need a view you call in the view or template handler like every other framework. Microsoft wires it to aspx pages by default which the Page model is bulky if not needed such as for a REST endpoint.
3. Yes I can. Everyone else if you have worked on a multi-year project in .NET of any scale you will know this configuration hell I am talking about. It is the one that Java has been in for some time. btw I agree on JSON.NET there should be more simplified frameworks like it. I use it in my .NET MVC.
4. All I am saying is typical MS developers dont' venture out, you may. Try pushing JSON or YAML before MS blessed it with a big arse WCF framework and you will see. Even try pushing anything not pushed by microsoft to see what I mean. Heck try this today by pushing a better MVC than ASP MVC to your MS platform developers and see what happens.
5. VB.NET, what is wrong with it? Everything is backwards, it is overly verbose, it mangles the idea of indexors with methods (i.e. [] vs. ()), you have to write 'End Function' (but their tool does that for you) Ok no need to go on here... I do like the behind the scenes compilation and way back in 2001 this was a competitive benefit. Other than that VB.NET is horrible for anyone looking to code ANY other language.
6. Every poorly written .NET project has Datasets that make it all the way to the presentation layer to bind to some default GridView. Laziness and not good software engineering. MS made it too easy there.
7. Try doing any of those things manually or customized. The tools are sugary goodness that hide the complexities of the operation. Most likely there will be a default fail somewhere along the lines on any application of scale. And it is keeping most from learning key elements of deployment on a larger scale.
8. Java and .NET are the biggest platforms, by mere probability they attract more mediocre devs looking for a safe harbor of a job security. There are plenty of good .NET devs but they get lost and lose the ASP MVC, Sharepoint, MS SQL only battles and move on.
9. We can agree, it is an abomination.
I like Microsoft, but they are killing their platform by trying for developer lock in in all the wrong ways.
1. That's trivial to change though and I think I would argue that the default mapping has more to do with how to map to class names (e.g. /Member to MemberController) than folders.
2. You don't have to use ASPX if you don't want to - there are a variety of difference view engines - I happen to prefer StringTemplate.
3. .Net MVC projects, don't need to be complicated, most of the complexity you see in these projects is down to the developers
4. 5. and 6. are true - but things like Datasets cen be easily avoided if you don't like them (which I don't)
7. .Net MVC has got some fantastic extension points, I never use any of the wizards or complex editing tools in VS that hide the underlying file contents. This is perfectly feasible if you want to do it.
8. That isn't really a comment on the technology stack - just because a lot of people use it doesn't mean it is bad.
9. Writing code to run in SharePoint is the devils work.
It seems that the criticisms keep switching between ASP.NET and ASP.NET MVC interchangeably. If you are primarily speaking about MVC, I think there is definitely some misinformation here.
1. The key term here is "defaults". This behavior is completely configurable.
4. I think this is an older point of view that is rapidly changing with MVC. Outputting custom formats is astonishingly simple, it's a matter of using built-in ActionResults, or inheriting it when creating your own, e.g., YamlResult. When they make the framework more extensible like they have here, I think developers certainly take advantage of that.
I keep seeing a lot of criticism of the default behavior, when all of this behavior is trivially overridden.
1. Yes it does. It defaults all models, views, routes to capitalized names like CustomerProduct rather than customer-product which is much better for urls and keywords. You even have many lower level .NET dude with /Member in all their urls because they can't abstract away from the physical folder hierarchy.
2. Everything should be ashx or handler based like a good framework, if you need a view you call in the view or template handler like every other framework. Microsoft wires it to aspx pages by default which the Page model is bulky if not needed such as for a REST endpoint.
3. Yes I can. Everyone else if you have worked on a multi-year project in .NET of any scale you will know this configuration hell I am talking about. It is the one that Java has been in for some time. btw I agree on JSON.NET there should be more simplified frameworks like it. I use it in my .NET MVC.
4. All I am saying is typical MS developers dont' venture out, you may. Try pushing JSON or YAML before MS blessed it with a big arse WCF framework and you will see. Even try pushing anything not pushed by microsoft to see what I mean. Heck try this today by pushing a better MVC than ASP MVC to your MS platform developers and see what happens.
5. VB.NET, what is wrong with it? Everything is backwards, it is overly verbose, it mangles the idea of indexors with methods (i.e. [] vs. ()), you have to write 'End Function' (but their tool does that for you) Ok no need to go on here... I do like the behind the scenes compilation and way back in 2001 this was a competitive benefit. Other than that VB.NET is horrible for anyone looking to code ANY other language.
6. Every poorly written .NET project has Datasets that make it all the way to the presentation layer to bind to some default GridView. Laziness and not good software engineering. MS made it too easy there.
7. Try doing any of those things manually or customized. The tools are sugary goodness that hide the complexities of the operation. Most likely there will be a default fail somewhere along the lines on any application of scale. And it is keeping most from learning key elements of deployment on a larger scale.
8. Java and .NET are the biggest platforms, by mere probability they attract more mediocre devs looking for a safe harbor of a job security. There are plenty of good .NET devs but they get lost and lose the ASP MVC, Sharepoint, MS SQL only battles and move on.
9. We can agree, it is an abomination.
I like Microsoft, but they are killing their platform by trying for developer lock in in all the wrong ways.