Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Going away from MS platforms by startups is due to cost and quality (of developers).

Annoyances with the latest MS Platforms:

- Nasty URLs (capped, trailing file types) - although it can be done with IIS7 routes or preferrably IIRF which runs IIS5-current. They still dont' have a mod_rewrite solution unless you run server 2008 with IIS7. Look at how nasty this looks: http://www.ferrari.com/Italian/Pages/Home.aspx, why not just http://ferrari.com/? The reason, their frameworks suck defaulting to path cruft, file extensions and capitalized urls.

- ASP.NET WebForms single-form per page travesty.

- Again, File naming and the ASP.NET MVC again relies on their capitalized URL paths and .aspx extensions everywhere.

- XML and SOAP crazy over RESTful/JSON based services (they tried to remedy this with WCF but configuration failed)

- All MS developers are not free thinkers much, they use whatever MS tells them to use from LINQ, MS SQL Server, Sharepoint etc. Even such things as using JSON, jQuery and Entities they didn't use until Microsoft had the frameworks then all of a sudden they loved them. I kid you not most people still used the Microsoft AJAX framework until 2008ish.

- VB.NET

- DataSets just clutter all applications

- MS seems to have lost the skill to make simplified engineering solutions (sure their tools are simple but they are overly configuration nightmares or lock in by requiring the tool otherwise it is painful).

- All good .net developers when they become engineers or entrepreneurs typically leave the platform for cost and better solutions. MS seems to attract mediocre or enterprisey programmers like Java (this could be due to the popularity of both platforms attracting more developers overall)

- Sharepoint kills developers dreams.

You can do .NET like modern web development but for the most part the developers in the MS culture don't.



This is a load of shit.

1. ASP.NET MVC2, which is what they're trying to replace Webforms with, doesn't have any URL mangling issues given that the pathing is determined entirely by the developer's architecture.

2. Yeah, a view needs to contain a .ASPX file - this is an issue because?

3. You can't figure out how to edit some basic configuration settings, therefore the technology failed? Having consumed more than my fair share of RESTful services using .NET (the vast majority of my code samples on my blog are about using tools to do that), let me tell you that LINQ-to-XML and LINQ-to-JSON (JSON.NET) blow every other tool out of the water when it comes to parsing responses, with the exception of RestSharp, which is even better.

4. What the hell kind of bullshit is this? Because Microsoft offers me tools that integrate and often come with things I've already purchased I'm somehow a blind code-monkey slave to them? And there are plenty of developers who hated the .NET AJAX Control library and used jQuery or something else, myself among them. Microsoft isn't perfect, and there are exciting new non-.NET technologies out there that a lot of .NET devs try. Ask Rob Conery about his experience with Ruby, which I think is now his primary platform.

5.And what's wrong with VB.NET? That's how I broke into .NET until I did C++ programming in school and switched to C#. Yeah it's a verbose language compared to C# and it lets you play fast-and-loose with typing, but the fact that it's different from other tools doesn't make it inherently bad.

6. If you use DataSets poorly than I suppose that's true, just like how you can clutter PHP with inline MySQL. Shitty code can be written in any language.

7. What? You mean like one-click deployment from Visual Studio to an IIS7 instance? Or the ability to easily setup mirrors and scheduled backups in SQL Server? Or the ability to host services with virtually any protocol in IIS7? Try doing any of that in the LAMP stack and then feel free to tell me about how MSFT can't develop "simplified engineering solutions."

8. Some definitely do, but "all good devs?" Bullshit. Ask Jeff Atwood. The idea that enterprise platforms attracts more medicore programmers is laughable, and I'll point to the fact that JAVA and .NET developers are paid more by the free market on average than any other type of developer as evidence of that. You don't get paid well if you do shit work.

9. SharePoint is an utter POS; I hate using it as an end user, and I will be a sad panda the day I have to develop for it. No contest there.


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.


To address those points:

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.

2. This doesn't apply to MVC, since it is all handler based. Plus, you can extend it at pretty much any point in the pipeline: http://blog.stevensanderson.com/2007/11/20/aspnet-mvc-pipeli...

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.


Just my little vote:

I find the ".aspx" ending to be ugly too, in addition to being sneaky free advertising for their platform.


I guess the solution would be not to have your URLs end in .aspx. It's trivial to do that, you know. Just like it is in any other platform.

Up above, you're looking at a list of complaints that haven't been valid since 2005, and to be honest weren't an issue for anybody back then who knew what they were doing.


OK, thanks, I didn't know.


And .php isn't?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: