Hacker News new | past | comments | ask | show | jobs | submit login
Can you build a startup on .Net? (rlacovara.blogspot.com)
79 points by rudyl on April 16, 2012 | hide | past | favorite | 110 comments



Yes, you can certainly build a startup on .Net[1]. That said, there are some things you should consider carefully before you do:

* Will you be able to recruit top talent? In Seattle, not likely a problem. In the Bay Area, it's harder[2].

* Does the licensing cost make sense for your business? BizSpark is awesome, but it's not forever. In most cases the answer is yes, but not always[3].

* Are you willing to learn Linux too? You're going to run across something cool you want to use that only works on Linux, or works best on Linux. Redis, MongoDB, RabbitMQ, etc. come to mind.

I've built a startup on .Net before, and may do it again. The documentation for the whole Windows/.Net/SQL Server stack is amazing, and they're very predictable. With little effort you can learn enough to know how they'll perform, where they'll fall down next, and the next steps to move forward[4].

[1] I co-founded and was CTO of Loopt. We may have had product problems, but the tech never held us back.

[2] It's hard to find really good people willing to work on .Net in The Valley. They know their next gig will likely be at another startup, Facebook, or Google - .Net won't likely help you there.

[3] After BizSpark is over, look into SPLA licensing. It allows you to pay monthly for only what you use, and allows you to always be running the latest version. During all of Loopt Microsoft Licensing never cost more per month than an engineer, and the software saved us at least as much time and money. Remember, each time "The New Hotness" breaks, the time you spend debugging or migrating to something else is time you're not spending on your product.

[4] For example, Windows and SQL Server have great performance reporting. You'll know you need to get more RAM in a month, or switch to SSDs soon, long before you actually have problems.


My only concern about working with .NET has nothing to do with the language or the underlying tech. They're both fine. The problem is that the open source community on .NET (both C#, ASP.NET, & VB.NET) is anemic compared to virtually every other language, and I'd rather not reinvent wheels whenever possible.

I know one way around this is use java open source, by either a source or bytecode translator from Java to C#. Is there anything good to know in terms of limitations of this approach? Are there alternatives?

There's also the problem of using stuff that's targeted primarily for Mono, instead of .NET proper, and vice versa.

That being said a good carpenter can still crank out a nice table with a rock and some wood, but the question is should he?


I've found that when it doesn't make sense to keep everything in .Net, it's great to break things out into independent services. If there's something awesome you want to use in Java, like Lucene, expose it as a service and consume it from .Net.

In fact, if you do this right, you end up with a bunch of clearly separated re-usable services like in AWS. It also helps prevent the "giant ball of spaghetti" architecture by making it impossible.


I know it was just a "for instance" but there is a .NET implementation of Lucene, open source and everything. http://incubator.apache.org/lucene.net/

The point being, "no open source community", "license costs" (see bizspark), the "MS is a desktop stack" are all popular myths that haven't been relevant for years.

But your point of well defined, independent services is spot on.


I didn't say "no open source community"; I said super small open source community compared to almost every major alternative. That isn't a myth. It's reality. Moreover Java has a lot more big projects that .NET just doesn't cover. Not to mention we're ignoring the tons of stuff you can find in Ruby, Python, and even PHP.


What if the stuff you want is too small to break out into separate service? e.g. some little util library or even a something like a driver

Also if you use a lot of libraries / apps from a specific language, doesn't it make more sense just to transition to that language instead, or does what .NET buy your team worth it to stay?


If you find yourself using primarily Java (nothing wrong with that, really), then just go all the way. I think the same is true for most any language. It's also valid to start doing everything new in a new language and gradually migrate away from where you started.


On the other hand, the .NET Framework is vast and offers a well-implemented, well-documented and supported set of features that in other platforms required open source projects. Even so, there are established and active projects such as Castle, Mass Transit and NHibernate.


I always thought NHibernate as well as NUnit were victims of MS's past anti-open source stance. I didn't even think anyone still used NHibernate once LINQ came out.


The OS community is doing pretty nicely now we have Nuget


Having something like gem and maven is certainly nice, but I think my point stands. Compared to almost every other language, the .NET open source ecosystem just pales in comparison. It's definitely improved after the MS debacles in the past, but only time will tell whether it ever becomes a 1st class citizen in the .NET world.


Of course you can. People spend far, far too much time worrying about what programming language they should use for their project. You should not spend your time learning Ruby/node.js/Scala, you should launch your MVP with what you know.

If you have to, you can change later- though from experience, there's little need to with .NET. I work for RecordSetter (http://www.recordsetter.com) and we use ASP.NET MVC- back in the early days of the company, the CTO knew .NET very well, so he just used his existing knowledge. C# is a great language, Visual Studio is a great IDE, MVC is a great framework. And so on and so on. We aren't really suffering any ill effects as a result of our choice, and as others have noted, BizSpark membership is actually a great bonus.

If anyone out there wants to play around with C# for the web but feels like the ASP.NET stack is too heavy (it can be), take a look at Nancy.FX (http://www.nancyfx.org/). It's super lightweight and allows you to keep most of .NET out of your way.


I really love NancyFx. It's such a well thought out framework. If there is some feature missing, all you have to do is hook at the proper place. It really simplified building our startup (http://designduke.com). Best part is that using a REST framework encourages you to move out most of the logic and functionality to client and it scales pretty well.


Have you considered running on AppHarbor instead of raw EC2? Nancy works great on our platform.


Do you have any link that compares performance of workers to EC2 instance types (for a raw idea of how much power an existing app needs) ? Also, how does deployment to IIS server and running multiple custom executables for various other tasks workout on your platform.. I mean can a worker run multiple applications ?


We haven't made any direct comparisons, but AppHarbor web workers are very fast and can handle upwards of 200 reqeusts/second for cached responses of moderate size. For non-ASP.NET workloads, we offer background workers: http://blog.appharbor.com/2012/03/08/background-workers-in-b...


So is recordsetter still on ASP.Net MVC?

Regarding the language doesn't matter thing I think that's mostly true. If you're choosing between Ruby and ASP.Net MVC I don't think you can loose. But sometimes the framework does matter, like if you want to build a startup on webforms (don't).


Yep, we're still on MVC.

I think you're right about WebForms in the sense that I can't think of a single good reason to go with it over MVC. I maintain that it was never really intended for the web we use these days anyway.


> I maintain that it was never really intended > for the web we use these days anyway.

It was designed to make web development "simple" for the kind of people who built WinForms applications and were too lazy to learn how the web actually works.

Thankfully Microsoft have learnt from their errors so are now pushing these types towards making a mess of Javascript. Visual Basic types will be happy to learn that semicolons are optional.


I agree. I used to do classic ASP, which at the time was a great web dev platform. I really think Microsofts priority with Webforms was to convert all those VB6 programmers over to the new framework, not build a better web framework. I've hated webforms from day 1. I'll dance on it's grave.


There are surprisingly few arguments about semicolons in the .Net community.


You've never seen a VB.NET vs. C# argument? Call yourself lucky.


last one I've seen was at least 5 years ago and even then it wasn't a big deal


Well put. Thanks for making me smile!


a lot of that is because msft says it's a certain way and we all have to deal w/ it. not necessarily better.


Listen to the middle days of the first StackOverflow podcast and you'll hear that for a long time they ran StackOverflow on a single server. They were serving a million uniques with the web app and database running on a single box! It wasn’t even a very big box.

As a former .NET guy, I think the hosting part of deploying .NET wasn't well addressed by this post.

Jeff Atwood built and colocated a dedicated 2 or 3U server to run Stack Overflow. I certainly wouldn't call that an easy or recommended thing to do for a startup, especially if none of the founders have enough hardware and system administration experience.

Compare this to signing up for EC2, Linode, or Rackspace and spinning up a Linux instance to run Rails, Django, or Node. Even easier to just spin something up for free on Heroku. These are mature, solid solutions being used by many startups today.

There are a few providers like AppHarbor that are trying to make .NET hosting a bit more startup friendly, but there weren't any mention of those in this post.


It's just as simple to spin up an EC2 Windows instance as it is for a Linux one. Just costs you a bit more, and as a .NET developer, the only thing that still bugs me about .NET are the licensing fees for Windows - but if my business isn't making enough to pay for that then I have bigger problems.

As for deployment, if your .NET app doesn't have highly specialised dependencies you're likely to get away with a simple file copy deployment. Even if you do need to install some frameworks/packages, offerings from e.g. ScaleXtreme (who allow you to manage both Windows and Linux servers from a single dashboard, private or in the cloud), make managing instances (via templates, scripts and integrated monitoring and patching) extremely simple.

This is great because I prefer writing my code in C# and running it under Windows but prefer Linux for the heavy-lifting (PostgreSQL, memcached, nginx for static content, etc.). I do accept that not everybody knows how to use both platforms or would like to learn, however that is a matter of preference not practicality. I'd say the two platforms are on par with practicality.


Have you considered running your apps on AppHarbor? That way, you wouldn't have to worry about servers at all. We also have many of the services you use as add-ons: https://appharbor.com/addons


I did and in principle it's a great idea but I can't wrap my head around the pricing - as a solo founder earning South African Rands with the requisite technical expertise to manage these things myself, I can't bring myself to pay more than I know I strictly need to until my business is profitable.


Amazon provides a ready-to-go Windows + IIS image[1]; all I've ever needed to do is to install Web Deploy and point our Jenkins at the instance.

[1] https://aws.amazon.com/amis/microsoft-windows-server-2008-r2...


Spinning up a Linux instance does not require system administration experience?


I'm not primarily a .NET guy (I have done a fair bit though), but why wouldn't it be possible or reasonable to spin up a VPS instance of Windows if it's a platform you're totally familiar with (much like someone being familiar with a linux instance?)

Firing up a linux instance does require more sysadmin skills from the command line (this can be non programmer skills to some), compared to a gui based OS.

Disclaimer: I use linux myself but have spent enough years in the professional world to know that there are things that windows can do equally well, just don't ask it to do everything. A basic startup stack of IIS (included), mysql, and a framework (download asp.net MVC) doesn't take much setup.


It's definitely possible to spin up a Windows instance on EC2 and get it running. Many startups built on .NET do that today.

As for the sysadmin on the software side, I agree most .NET devs that want to build something probably have those skills. It's the hardware aspect that I think needed to be addressed.

The OP espoused the easy scalability of .NET using the Stackoverflow example without mentioning that they colocated with dedicated hardware.


good point. StackOverflow used physical boxes not virtual servers and that certainly makes scaling a database easier. On the other hand I currently host HireFlo on a single Rackspace cloudserver. I have 3 web apps, a SQL server instance, and 2 processors hosted on the same VS and it's working well so far. I'll definitely move SQL Server off to it's own box at some point though.


Yes, you can spin an instance up and configure everything with Power Shell (if you have a lot of instances).

SQL Server's a little harder to setup but it scales really well vertically (unsurprising given its Enterprise origins). As with most databases it really needs to be installed on physical hardware for the best performance.


Running .NET is even simpler if you just use AppHarbor, no need to configure, update and maintain servers at all.


Jesus man, have some dignity. You're whoring that name around here like nobodies business.

Edit: Double-Jesus on a stick! I counted ~6 of YOUR references in this one thread. Pretty unimpressive.


You never had to get and configure/maintain dedicated servers to do .NET. The only two reasons that dictate dedicated or VPS hosting on .NET are the same as not .NET - you need more hardware or more privilege.

Deployment's always had a variety of simple-to-complex options just like everything else.


But its equally simple to spin a windows server and even more simpler to setup (thanks to RDP). Amazon even offers a free microsoft micro instance (I even got a $50 windows credit for april month) :)


My impression is that the SO crew knew about running machines in front of them more than they knew about running cloudy things that depend on people they didn't hire. They like to reduce leaky abstractions, not add to them. So getting the biggest badass server and slapping SQL Server on it is exactly what I'd have expected them to do.


I'm pretty sure you can build a startup around almost any mature, real-world tech stack... so, basically, exclude "esoteric" programming languages like Brainfuck, Intercal, Whitespace, etc. Otherwise, I think you could - if you chose to - build a startup around RPG/400 on an IBM iSeries, Fortran, COBOL on MVS on an IBM zSeries, Ada, .Net, Prolog, Pascal, Perl or whatever floats your boat. It's a question of the tradeoffs and the economics of each decision. Can you hire programmers? What are the licensing costs? What about the "ilities," like scalability, interoperability, reliability, etc?

Maybe for some startups the right decision is .Net, or RPG, or Forth or Rexx or what-have-you. But I'm guessing for most startups, there are better choices. I'm also not sure that - even on a per startup basis - there is one ultimately right choice. More likely there are a handful of really good choices, a pile of so-so choices, and a long-tail of fairly ridiculous choices.


Visual Studio, especially when paired with Resharper is a tremendously productive dev environment. C# is a fantastic language and it's got a host of new features that make it possible to write in a more functional style, stuff like lambdas, expressions, type inference, dynamic types, anonymous types.

The main problem is that people don't think about any of that when they think about .Net. They think about that festering bog of evil and spaghetti code that is WebForms.


What are the odds that people actually:

1) use the advanced features and not tripping themselves

2) use it frequently

3) and got a lot of productivity boost out of those features

I would imagine most people will download 3rd-party libraries (open source or not) and tools to become productive. Not so much on the C# advanced features.


I work in a Microsoft shop in a 6 person team of C# programmers. We follow the language closely, try to compete with each other keeping up with new language features (among other things!), and take whatever benefits we can from new stuff. When generics appeared in 2.0 it transformed our coding style. When LINQ (the language feature, not the LINQ to SQL ORM) was added it was transformed again. There hasn't been a major paradigm shift since but we've found handy places to use optional parameters, type covariance and contravariance, tried to handle the new dynamic keyword like dynamite, and we've definitely got plans for the new async features coming out in C# 4. I can tell you from attending technical conferences that we are not an atypical bunch.

So to answer your question, the odds are very good! :)


Actually, the new features introduced in C# increases developer productivity quite a bit. More importantly they increase the readability of code by cutting down on the repetitive stuff. Once some one uses LINQ, lambdas and dynamics its hard to go back.


Can you explain how they can cut down lots of repetitive stuff?

Not to knock you down but my experience with Java is that libraries typically help a lot as opposed to syntax.


Go look at any documentation or discussion of any non-Java language, and see their examples of using their sequence abstractions, or generators (yield), or first-class functions. Those are not ideas which are unique to C#.

If you just want to see a piece of code in C# that would have to be written totally differently in Java to be readable (unless you use some quite abstract third-party libraries like Guava to help) I picked one of my Stack Overflow answers at random: http://stackoverflow.com/questions/2966592/how-to-refactor-t...


That example is definitely looks great.

... and yes, as a Java developer, I use Guava once in a while and I do JavaScript as part of my job as well and I do appreciate first-class function.

Typically the problems that functional features solve are filtering and transformation and yet most often than not I happen to solve them at the SQL layer (be it JPQL or straight up SQL).


Once you start thinking of your object model as data, you can do amazing things. Want to find all the types in your system that implement an interface and spin them up?

     var rules = 
		AppDomain.CurrentDomain.GetAssemblies
		.SelectMany(a => a.GetTypes())
   		.Where(t => typeof(ISecurityRule).IsAssignableFrom(t))
   		.Select(t => Activator.CreateInstance() as ISecurityRule)
   		.OrderBy(r => r.Priority);
You can then run a chain of responsibility by writing

    var allowed = rules.First(r => r.Check(someObject) != null);  
    //Check returns null when a rule isn't relevant to the object being checked
it's pretty sweet for metaprogramming when you can run queries against your codebase


That is definitely sweet.

Java has AOP and extensively use Annotations (Attributes in .NET) and the approach there is definitely heavier than what you wrote above.


You can absolutely build a startup in any language that has a capable framework for the web.

As mentioned in the article, StackOverflow is one prominent .net startup that comes to mind.

Generally, customers don't care what you code in. It might matter if your customers are developers, but even then, there's API's.

How well you code in your tool of choice may be relevant when you hit a million whatevers you want measure, but by then you'll probably be scaling anything you built.

The most important thing is to have great momentum and see it through to a real result. You'll always do that best with the tools you're most familiar with, with the caveats listed above.

Use decent habits to be friendly to your future self to keep the codebase reasonably something you want to keep working on. Don't strive for perfection, it never happens the first time.

Sometimes as developers becoming entrepreneurs we get a little too focused on making our tooling so great that the attention doesn't always end up on the user experience and getting rid of their pain-points. Instead we can fall prey to solving our own pain points and staying in analysis paralysis.


If you ask this question then the answer is no, however, you probably can't build a startup in any language as you're too worried about what everyone else is doing rather than what your customers want.

Seriously think about a young mark zuckerberg making facemash and worrying whether it could be a $100 billion dollar company if he wrote it in PHP.

If anyone worries about these things just change your server headers so it looks like you're developing in whatever language they want.

Its usually a good idea to change the headers anyway so that any automated attacks run the wrong scripts. Change your postfix to Exchange, change your nginx to IIS and vice versa.


speaking technology wise, of course you can use .NET to build a startup product. C# is a very mature and nice language, Visual Studio is the best IDE out there, beating Eclipse, XCode and TextMate hands down.

Another issue is in what fields that these languages are used, what type of developer works there, and what kind of developer you need to hire next month to scale your products. Java is for banks, very big projects with integration with lots of legacy systems. .NET is more used inside of companies, integrating with Sharepoint, MS SQL server. Ruby on Rails is for hip independent developers that teach themselves and go for productivity. PHP is for easy web development.

All these fields have different kind of developers that work in it. Figure out what kind of company you are, and choose technology accordingly.


Plenty of Fish runs on .NET. Marcus says it's more scalable than most of it's Open Source counterparts...


Plenty of Fish also store(d?) passwords in plaintext[1]. I wouldn’t particularly trust their technical decisions.

http://grumomedia.com/why-plenty-of-fish-stores-passwords-in...


didn't everyone store passwords in plaintext at some point of their career? your argument is pretty weak and didn't invalidate their claims that .NET is just as good as open source Linux stack when it comes to scalability.


>> didn't everyone store passwords in plaintext at some point of their career?

Never have, never will.


I have a good friend who runs his bootstrapped startup (http://www.georiot.com/) on Mono/Linux (http://mono-project.com/ASP.NET). Utilizing some OSS helps to keep the cost down.


BTW, Azure is a nice scaling solution but it slows initial development way down, it's a pain to debug, and it locks you into a single hosting provider. Not a good solution for me and I think it's crazy that Microsoft keeps pushing it as a platform for early stage startups.


Would you be able to elaborate on how it slows initial development way down (and is a pain to debug!)?

I've only played with it a little but the deployment story seemed quite nice.


Have you considered AppHarbor as a faster-turnaround alternative to Azure? https://appharbor.com/


Just some friendly advice, the excessive self promotion is doing you more harm than good


Yeah I'd been looking at AppHarbor vs Amazon/RackSpace/Ninefold. I think this excessive value-less self promotion just ruled out one for me.


Just some quick numbers - in 1 week flat I've been able to create a working prototype for our start-up with the stack mentioned, coding in my spare time (after work and on the weekend). If you know your stuff you can get up and running in no time :) Our start-up (collectifly.com) is built exclusively on the .NET stack, with ASP.NET MVC as frontend and using a bunch of open source libraries like Twitter Bootstrap, jQuery, KnockoutJS and a few more. For the backend I'm currently experimenting with RavenDB not because I don't like SQL Server but because we're building a social graph, so a NOSQL database seems to fit better.


Have you considered hosting on AppHarbor. Deployment as easy and fast, we can scale and we have a great hosted RavenDB add-on: https://appharbor.com/addons/ravenhq


Where is the kill file when you need it?


We are a BizSpark startup using a combination of free tools and open source technology. Haven't spent a dime yet.


I recently discovered about Microsoft's BizSpark program and I must say, I'm really tempted to try and build up a side project just so I can apply to BizSpark and have tons of free resources to build my side project. I love .Net and I think Azure is really good, even if the article says it's too cumbersome for a small project. I think the fact that developers can forget all about server configuration and implementation and just start a VM in one click is nice.


AppHarbor makes hosting projects of any size much easier than Azure, check it out: https://appharbor.com/


This seems really good. I might give it a try in the future. Their "add-on" services look really cool to use also.


We've built our app (http://keypay.com.au) on .net and have zero complaints so far. The best thing is that with AppHarbor, it makes it easy to spend less time focusing on "the stack" and more time focusing on just getting stuff done.

We build fast, release often and the .net stack is so mature that we spend very little time thinking about it and the majority of the time solving business problems.


"Bizspark is proof that Microsoft loves programmers and startups"

No, it isn't. Not anymore than MS giving away free licenses for Office, VS and Windows to college students is proof that they love college kids. Not anymore than giving poor schools in Africa free licenses for Office and Windows means they love African schoolchildren. And not anymore than the junky giving free dope samples to kids means that he loves kids.

It's just business.


Yes, it's just business. I agree that you shouldn't ascribe the emotion of "love" to Microsoft, or any large corporation. But in the same vein, I don't think it's fair to equate them with a "junky giving free dope samples to kids".


It may or not be as morally wrong, depending on your view of Microsoft and/or drug dealers. But the motivations are exactly the same.

This isn't just restaurants in the food court giving free samples to draw in more customers. They are deliberately building a dependence on their products and will reap the rewards later.


Microsoft does the right thing here to give licenses away to startups. However, I would try to stick to their mainstream products which are likely to survive a few years ahead and avoid the "to-new-unproven" ones, mainly to make sure the product is still developed and maintained 3+ years down the line.

I'd go for open source any day, but that brings other challenges instead. :)


Honestly, 3/4 years ago i would pick another platform because deploying code in .NET was a complete nightmare. Nowadays things have changed a bit. You have transforms. You have TeamBuild with TFS, which is very solid, but can still be a pain in the rear to get stuff going. Changing the build workflow and messing with MSBuild always seemed odd to me. I'm not even going to mention setting up and troubleshooting Web Deploy Service which is undocumented disaster. I personally use GIT and deploy to AppHarbor. The process is amazingly smooth and the entire experience with AppHarbor folks has been wonderful.

In addition, I would agree with the statement that more knowledgeable and skilled devs have switched to ASP.NET MVC. There is no doubt in my mind. You need to have decent understanding of OOP to do pretty much anything in MVC. Not to say that you can't write bad code. You can, but folks that work in MVC are typically more serious developers.


As someone who's currently an experienced .net developer (based in NE Ohio), prefers working for smaller companies, and is getting the urge to look around and see what opportunities are out there, I have a question I'd like everyone's input on: is staying mostly .net-focused a viable idea, or am I taking on a serious career risk?

I've worked with python and ruby a bit and am currently working my way through Programming Clojure, but right now I'm much more experienced with .net and it's where my comfort zone is. I try to keep abreast of what's happening elsewhere, but don't have as much time as I'd always like to try other technologies.

I'm curious what people think - am I better off pushing harder on new stuff and hitting meetups, or is C#/MVC still a viable option despite Microsoft's current struggles? (Not that they're on the verge of disappearing or anything, but they definitely don't have the buzz in their favor right now...)


There are untold corporations whose entire enterprises are powered by .NET and Windows Server. You'll have an income stream on .NET for the remainder of your natural life, nothing to worry about. As for the small company bit, maybe. Small teams within a large company, sure.


As Rails and Django become more complex, it's making more and more sense to give .NET and Java stacks a second look.


I used to develop .Net applications and I love that platform. MSDN is awesome and Visual Studio is hands down the best IDE. I know at least two startups that participated in BizSpark and they get lots of free goodies from MSFT.


I have used several versions of Visual Studio, and while it's not Eclipse/slow/broken, I never really saw why everyone loves the hell out of VS's IDE. Can you show me a page highlighting why it's so good? (Not trolling, really trying to understand the love).


What people like about VS is just how integrated everything is. You can replicate most of the functionality but there is a lot to be said for 'just works' when your in the middle of crunch time.

One of the great things Visual Studio has is the ability to set breakpoints in JavaScript code just like you can for C# code. Not that you can't do that in Eclipse, but it works out of the box vary easily. It's tightly integrated with TFS which let's you check in code resolve bugs in a single step. That way if a similar bug crops up later you can find what the problem was last time and how it was fixed vary quickly. It's also got a vary nice debugger that let's you do things like change values at run time.


When it comes to JS, Eclipse is definitely shaky.


I find modern VS very clunky, to the point that I avoid using it whenever I can.

In my opinion, the VS6 (for C/C++, released 1998) was excellent, and it's all been going downhill from there.


Eclipse is awesome for the record. Especially given that it's free.

Most people use VS.NET with Resharper while Eclipse has a few Resharper features built-in and more.

Eclipse + Maven = great deal.


Eclipse might not have any up-front monetary costs, but it has costs in lost productivity while waiting on it (which would arguably cost you more than a closed source license when applied to the value of a developer's time).

It's gotten better, but it still has a ways to go.


My machine is beefed up so I'm sure someone else's cost using less powerful machine (Intel P3 or something...) is more than mine. Ditto with VS.NET 2010 or future version of Microsoft IDE when used in older machines.

Shall we count the cost of using plugins as well? Including OS boot time and such and such?

Sorry, what I mean to say is that I don't know what you're talking about of this "waiting on it".


There's also IntelliJ, an IDE from the guys that make Resharper. We moved from Eclipse to IntelliJ a few years ago and aren't looking back. It "just works", has (had?) more reliable and advanced refactoring, and the support for other languages (like JavaScript, Python and Ruby refactoring and debugging) is/was far ahead of Eclipse.


I was at the Node meetup in San Fran and after hearing about the BizSpark opportunity, I am seriously contemplating building out a startup on Microsoft's platform.


Yes. As others have mentioned BizSpark is a fantastic resource. As a developer mostly using the .NET and MS ecosystem it’s enabled me to build using tools and technologies I am familiar with. I use Amazon EC2 to host the applications as Azure seems a bit more expensive. If you are experienced in the .NET space definitely look at Bizspark, even the exit fee isn’t much when you factor in all the tools you get to use for YEARS.


Anyone thinking about building an .NET (ASP.NET MVC) based web application should strongly consider a Mono - PostgreSQL - Unix-based OS stack. You get the power of Unix (not a negligible thing in my opinion), PostgreSQL is simply awesome (and it's getting better every day) and Mono is really ready for primetime. Hosting will be cheaper as well. We've been doing this for a while and so far we had very good experiences.


You should just use something such as AWS/AppHarbor. You can use .NET natively on Windows instances and use any Linux tools on separate instances still on AWS. Better architecture for free.


What exactly is the power of Unix vs. say 64-bit Win2008 R2? The file system? I'll buy that, and that matters if you have a shitload of files. Anything else?


The shell, for instance. It's much easier to get things sorted out in the command line than on Windows and Remote Desktop is a pain in the back. Once you're familiar enough with the shell and shell scripting, maintaining Windows servers can get very frustrating. I know that there's Cygwin and PowerShell on Windows but in my opinion they really aren't as useful as a native Unix environment.

Another one is the easily accessible documentation in man pages. I don't think the Windows documentation and the KB articles are nearly as well organised as the man pages.

Performance-wise, there really isn't that much difference; the latest versions of the Windows, Linux, *BSD and Darwin kernels are equally capable in my experience. In fact, I wouldn't recommend against NTFS as file storage; we use it to store a very large amount of data on Windows 2008 servers and we are very happy with it.


From what I have seen PowerShell is woefully underused and unmastered by many, many folks working in the MS stack. Probably because it is so much easier to use the GUI for everything.

The MSDN site has always sucked, and it's almost always better to Google searches for MS tech help than search within MSDN or the knowledge base. (I frequently find the MSDN article I need from Google. In fact there is a MSDN search widget available for iGoogle!!!) Language and framework docs, help, and searches from within VS are quite good, and from what I've seen of VS11 beta, even better. Also SQL server docs are good.

But, yeah searching for OS docs & help is no fun.


Powershell is awesome. Piping collections of objects instead of lines of text makes half of the great unix utilities (grep, sed) irrelevant. I used to gripe about the command line itself (Bash's tab completion, for example, trumps) but this is more than fixed by Powershell 3's ISE (in Win8).

Doesn't address your remote access... SSH is really nice and lightweight and the fact that Vim works is great for real sticky problems. Powershell has a remote access mode but I can't say I know much about it.


What web server you're running on? I've had very bad experience with xsp


Apache with mod_mono.


To all those that are doing/have done startups on .NET, do you guys mind doing a few blog posts on the subject? What was working with .NET like? What worked for you? What didn't? What's the story when it comes to licensing, hosting, deployment, scalability, etc.?

I know StackOverflow has a few posts on the topic but I wouldn't mind hearing from some of the other startups.


There was a post a few months ago about a startup that needed to redo their entire application in open source because their biz spark ran out. Anyone remember that? Maybe it's a good deal now, but it better be a good deal a couple years from now when it expires. Anyway I am just happy I don't have to do microsoft stuff.


I am looking at BizSpark and I cannot tell if it includes Server deployment? Windows Server 2008, etc? Anyone know?


FWIW, Seamless.com is .net


But it's a festering pile of maverick.net :(


I believe ZocDoc is as well.


on productivity of programming languages and environments: the more complex environment you need for programming language - the less productive that language actually is.


agree with webform is death statement. MS should remove it from asp.net. it is drag and drop programming for another age and another generation of developers.


title goes "can you build?"

article goes "should you build?"

answer to title is yes. answer to article is depends.

i would go with Rails simply because it's cheaper no matter how you look at it.


Take a look at juggle.com. All .NET.


Carbonmade is built on .NET.


I heard one reasons myspace didn't scale was because it was hard to find people who had experience scaling so large.




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

Search: