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

As an enterprise software stack, .NET may be fine and competitive. However, the reasons that make it a good enterprise stack work against it in the startup space.

Take the example of a web page returning JSON. In Rails there's a prescribed way to do this. It is generally straight forward and one gets it done literally after 5 minutes of tutorials.

In .NET, you have to install the WCF REST stack, learn about endpoints, bindings, the difference between Raw, and wrapped formats, then there are authorization behaviors (tokens, windows integrated etc etc). Mess around with service hosts in IIS and then pray it works. With everything being pluggable, there is no simple prescriptive method to get code working and moving on to the next feature. The stack is so complicated that blog posts even by MS employees contain errors which stay uncorrected. I have spent two days trying to figure out what is the best practice for uploading a large file to a web service and the combination of options are simply bewildering and with so many parts one wonders if it is going to work at all.

Now imagine this struggle being repeated in every aspect of your development. You will spend the day stepping through Factories and Hosts and Locators using Reflector.exe before finding the little bit of code that does what you want. Then you swear at MS because it is marked "internal" and you can't monkey patch it.

This syndrome is in part due to the size of Microsoft. MS would never dare release software that wasn't pluggable because it has a big audience and big audiences want a clear delineation between what is their code and what is maintained by Microsoft. The startup ecosystem just wants to hack code until it works and get things done. No startup developer can really devote the necessary time to the study of large software stacks before sending out a piece of string.

MS has done an outstanding back-to-basics job with WebMatrix and its PHP-like simplicity. However, it is still a long way behind in other respect.

For example, MS doesn't cultivate a community the way open source projects do. There is no central place to find able consultants, or centralized Planet-style feeds, or given provide a site where users can contribute tutorials. The employees are answering forums in their free time (I saw some post at midnight, and this is devotion, but the msdn forums are literary broken - you can see the answers being doubled up in the rendered page but no one fixes them). The experience simply reeks of helplessness on the poor MS-employees' part because someone else in the company has created such a shitty place for developer interaction.



> In .NET, you have to install the WCF REST stack

Well you don't have to. If I was just writing services to only return JSON to a web-page, I would just use ASP.NET MVC which has good built in support for this, e.g.

public class MyController : Controller { public ActionResult MyJsonAction(){ return Json(new { Id = 1, Name = "MyName" }); } }

Now you have a url /MyController/MyJsonAction which will return the JSON string { Id: 1, Name: "MyName" }, no stress.

WCF is complicated, but it is powerful too, especially if you need to support multiple bindings (e.g. REST and SOAP endpoints for the same service). Also, if you need to support the SOAP WS-* standards, it's a life-saver.


Thanks. I'm new to MVC. Sounds like MS got their act together on this one.

Complicated is usually overkill for a startup though. This means a big swath of .NET technology is simply not applicable.




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

Search: