
Ask HN: What startups here are focusing on developing on top of .NET? - rbanffy
I perceive an increase on the number articles about C# and .NET. Since HN activity reflects our own interests, I am curious as who is developing what for .NET.<p>Anyone wants to tell their story?<p>Disclaimer: I was a Windows user and did a lot of Windows development up until about 2002. Since about 1999, I have been preferring Unix-like environments and languages such as Perl, Python and Ruby (and, sometimes, Java) for developing and deploying web applications. Sometimes, I am also quite vocal about my personal preferences.
======
icey
I've written more C# than probably any other language, but I've never
seriously considered it for anything outside of my day job. I like the
language and the tools are nice, but for pure web applications I feel that
there are far nicer options out there.

Deploying applications on Windows is pretty easy, but there are far fewer
hosting options for Windows; and the options that are out there will either
give you a very locked down environment or require you to have a dedicated
box.

Beyond that, it's kind of a pain in the ass to do a quick edit of a file to
fix something when you're on the road if you don't have all of your tools
available. It's just not a big deal to make single file changes in Perl,
Python or Ruby because most people don't use a full-featured IDE to edit that
code and as a result files are often structured differently (which is to say
generally broken up into smaller chunks).

If you're thinking about starting up on the .Net stack, there's really no
reason not to if that's the stack you prefer to use. Bizspark is a nice
program which allows you to delay the purchase of most licenses for 3 years.
Microsoft has a long history of providing nice tools for its developers as
well.

There are definitely some big sites out there that are using .Net as well
(Loopt, Newegg, Woot), and there are tons of developers out there that are
familiar with the stack.

I would say if that's what you are the strongest with, and you like it,
there's no real reason not to use .Net - as long as you don't mind using a
proprietary stack. I haven't used Mono seriously, but I've heard good things
about it. However, it's still a second-class citizen when compared to the
canonical .Net stack.

~~~
iamelgringo
_Deploying applications on Windows is pretty easy, but there are far fewer
hosting options for Windows; and the options that are out there will either
give you a very locked down environment or require you to have a dedicated
box._

I'm using a Windows/Apache/Django/Postgres back end for <http://newsley.com>.
It's all running on an EC2 Server 2003 instance. I've used their Windows
slices for about a year, and I've been really really happy with them. It's a
bit more expensive than a Linux VPS @ $80 a month, but I think it's worth it.

I would really like Amazon to support Server 2008 on EC2, especially to make
PowerShell Remoting not such a hack. You can get it to work, but it's a little
dicey.

 _Beyond that, it's kind of a pain in the ass to do a quick edit of a file to
fix something when you're on the road if you don't have all of your tools
available._

Granted, I'm developing using Python on Windows 7, but I have a full dev setup
on a $300 Netbook that I installed Windows 7 on. I've been building Newsley
while traveling 50k miles the past 4 months, and I haven't really had any
problems.

I can run Win 7 Ultimate and my dev setup on a netbook pretty seamlessly.
Would there be a reason that Visual Studio wouldn't run on a Netbook with 2GB
ram?

~~~
johns
You can run Server 2008 on EC2:
[http://aws.typepad.com/aws/2009/12/amazon_ec2_windows_server...](http://aws.typepad.com/aws/2009/12/amazon_ec2_windows_server_2008.html)

------
nkohari
I was a .NET developer before launching our startup (<http://agilezen.com/>),
so it was natural for us to use .NET.

It's actually a very good technology stack if you lean on the available open
source options instead of just using everything Microsoft suggests. C# is a
good language, ASP.NET is very efficient and scalable, NHibernate is a
passably good ORM, and ASP.NET MVC is a solid foundation to build webapps on.

It hurts to have to pay license fees for hosting, but we're enrolled in
BizSpark, which gives us free licenses for 3 years, and you can always look
into running your app on Mono. (We are.)

Not sure what you're looking to find out, but feel free to ask anything. :)

~~~
rbanffy
"Not sure what you're looking to find out"

I am a very curious person. I never know what I am going to find out until I
do. The other way to read this is that I never know what I am after until it's
too late... ;-)

------
johns
I'm building two startups on .NET. Mine is <http://snapleague.com> a freemium
recreational sports league web site builder. For my day job I'm working on
<http://screenfeed.com> which is all .NET on the backend (the main APIs are
ASP.NET MVC). I've got another product in the works that's ASP.NET MVC as
well.

I ended up here starting back when I got VB3 for a birthday present in high
school (actually if you go back further, I started programming with BASIC on
an Apple in middle school). When the web came around that translated in to
ASP/VBScript and then around the time .NET 2.0 came out I switched to C# and
haven't really looked back. So far, the framework hasn't limited what I want
to accomplish. That may not always be the case, but for now I'm satisfied with
it.

I'll echo what nkohari said about licensing. BizSpark helps a lot, and you can
easily use MySql and the like if you don't want to pay for MS SQL Server. SQL
Azure might relieve some of the pricing pressure for SQL too.

Speaking of Azure, I _really_ like it. It's completely intuitive if you've
done any ASP.NET development. The only problem is that it is trailing about
6-12 months behind the other cloud app hosting options in features. And since
SQL Azure was announced there's been far less emphasis on Azure Table Storage
which is a shame. The querying capabilities for table storage are ABYSMAL. It
needs to be on par with SimpleDB before I could see myself using it (and I
really, really want to use it).

I was contemplating jumping ship before ASP.NET MVC came out since the
previous versions of ASP.NET (known as Webforms) really hindered more complex
web app development. MVC is awesome though. Almost every part of the framework
is swappable so if you have a specific need, you can quickly swap in your own
or an OSS implementation. ASP.NET MVC + Spark View Engine is pure hotness.

There's been a shift going on inside Microsoft's DevDiv too. ASP.NET MVC is
open source, jQuery is shipped with Visual Studio, MS employees are active
bloggers and twitterers, etc. And speaking of Twitter, there's a strong .NET
community there.

~~~
DanielBMarkham
Can you tell me a little more about what makes SparkView the hotness? As
opposed to just using the default stack?

~~~
johns
1\. <p if="condition">Foo</p>

2\. HTML encoded by default

3\. <li each="var foo in bar">${foo.Name}</li>

4\. Client-side rendering:
[http://odetocode.com/blogs/scott/archive/2009/03/12/client-r...](http://odetocode.com/blogs/scott/archive/2009/03/12/client-
rendering-views-with-spark-and-asp-net-mvc.aspx)

5\. conditional attributes (kludgy syntax, but better than Webforms VE)

6\. Content "spooling". You can create a partial that registers a script
tag/script specific to the partial, but only if it hasn't been registered
already. Partials can also spool content to any other content area.

6a. <script once="jquery" src="...">

The video quality of this is a little rough, but here's a good overview by the
guy that started Spark, Louis Dejardin:
[http://whereslou.com/2009/06/24/spark-releas-and-
presentatio...](http://whereslou.com/2009/06/24/spark-releas-and-presentation-
for-mpls-altnet)

~~~
rbanffy
Interesting. Reminds me of Zope Page Templates. I wish more platforms used it.

[http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/...](http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/ZPT.stx)

------
jswinghammer
I'm using C# and .Net 4.0 at the moment. I'm using SQL Server 2008 Express for
the fairly light database load I have (it's an installable product not a
public web app). I'm using Linq to interact with it. It's been a great
experience for me so far. The Linq integration with SQL Server has saved me a
ton of time. I've had to write a few stored procedures so far and that's it.

I know C# better than any other language so it was an obvious choice for me.
The option of at least offering a Linux product on Mono has crossed my mind a
few times so that's a plus too.

~~~
encoderer
Linq is my favorite ORM, by far.

Mostly the fact that I can "query" any data source (an array, a file, etc) in
the same way I query a table. Lovely.

DataMapper is great. Doctrine is good. Linq is my fave.

~~~
johns
One of my pet peeves (and it is Microsoft's fault for such a terrible naming
scheme) is how people use LINQ interchangeably with LINQ to SQL. LINQ is a
language feature used by other frameworks (LINQ to XML, LINQ to Objects, etc).
LINQ to SQL is an ORM.

------
kogir
The majority of Loopt's back-end runs in Windows Server 2003/2008, .Net 3.5
and SQL Server 2008. We have some Ubuntu, PostgreSQL, MySQL, Ruby, etc. as
well.

I really enjoy the tooling, the documentation, and the libraries. There is
exactly one time we've run into an issue with the built in libraries: The
documentation didn't match what really happened, but Microsoft confirmed this
for free and fixed the docs.

Visual Studio is rather polarizing. I'd say the developers at Loopt fall into
three camps: Like it, miss Eclipse, and still use Emacs. You don't have to use
it. I can't type more than 20 WPM; Intellisense is so good I haven't felt the
need to learn to type properly.

Cost wise it's really not a problem. There's BizSpark which is great for three
years, but after that you can get into their SPLA licensing program. It lets
you pay per month for only what you use. See
[http://www.microsoft.com/serviceproviders/licensing/default....](http://www.microsoft.com/serviceproviders/licensing/default.mspx)

Loopt started before BizSpark, so we know what it costs. Here's a hint: we
paid more per month for Office and Exchange than we did for the software
running our service. All in it was less than hiring an intern.

If you're super strapped for cash, just get an MSDN subscription, and use it
for everything. It's not legal, but Microsoft knows there's more money to be
made by letting you become successful (at which point you pay real money for
licensing) than there is in going after your initial few counts of
infringement.

If you like getting into the guts of things you might not like .Net, even
though they've released many of the symbols and source code. See
[http://msdn.microsoft.com/en-
us/library/b8ttk8zy(lightweight...](http://msdn.microsoft.com/en-
us/library/b8ttk8zy\(lightweight\).aspx) That said, you can't edit it. I'm ok
with this though because in my experience it just works. I'd rather focus on
developing my product than fixing the tools and runtime I'm using.

The open source .Net scene is a little touch and go. There are some great
projects out there, many by Microsoft itself, but it's simply not as robust
and vibrant as the Linux open source community. This seems to be changing
(slowly), but as I said earlier we've found compelling reasons to have a mixed
environment.

I'm not saying it's all good. ASP.Net is a valiant attempt to solve the wrong
problem. Drag and Drop doesn't work for the web. .Net MVC is much better.
Despite that, our website is written in Rails, and communicates with our back-
end using Thrift. It works great.

If you want to know more let me know. Maybe I'll write a blog post.

Edit: Grammar

~~~
tentonova
Unless the tools/languages are tremendously better than what is available for
free/cheaper, I don't particularly understand the value in:

\- Risking Microsoft's ire by breaking the licenses

\- Locking yourself in to long-term Microsoft licensing

This was a pattern I saw in many, many startups in the 90s -- organizations
that relied first on UNIX systems for their servers (often times Solaris,
Linux, and in the early-to-mid 90s, IRIX), would eventually adopt Microsoft
products for some component of their infrastructure -- usually Exchange, based
on heavy political pushes from the growing number of business users.

This always to the same effect -- the Microsoft products spread due to lock-in
network effects until it began to near 100% MS on the desktop, e-mail, and
corporate servers. Production servers generally remained UNIX due to the costs
involved. The IT organization shifted to MS, costs went up as the staffing
necessarily increased to support administering Windows systems, expensive
political maneuvering arose between engineering and business as they both
fought to move to systems that they thought better aligned with business
priorities.

At the end of the day, everyone wound up locked to MS with heavily entrenched
political interests in keeping the status quo (and the job security that went
with it).

Having seen the fall-out from migrations to MS products in corporate IT, I
can't imagine voluntarily implementing MS as the primary _production_ and
_developer_ system at a startup. You're locking yourself out of alternative
solutions, you're signing up for significantly increased capital and
operational expenditures, and perhaps most importantly, you're excluding an
entire class of software engineers that primarily work on UNIX-based
(including Mac OS X and Linux) systems.

~~~
MrFoof
> __Unless the tools/languages are tremendously better than what is available
> for free/cheaper, I don't particularly understand the value in... __

There's tremendous value if it's what you already know. The opportunity cost
associated with learning and becoming reasonably competent in a different
development stack can be non-trivial, especially if you had 5 to 10 years of
experience with a different stack or set of technologies. I've yet to
encounter a new framework/API/stack/language which I've been able to move to
in only a few weeks and be 80%+ as productive as what I already knew, as
there's often lots of useful minutiae, subtleties and new concepts you need to
acclimatize over time.

> __You're excluding an entire class of software engineers that primarily work
> on UNIX-based (including Mac OS X and Linux) systems. __

The converse also applies. Granted, a competent engineer can learn anything,
however you're initially inclined to pass on them because of the associated
ramp-up time.

~~~
tentonova
_The opportunity cost associated with learning and becoming reasonably
competent in a different development stack can be non-trivial, especially if
you had 5 to 10 years of experience with a different stack or set of
technologies. I've yet to encounter a new framework/API/stack/language which
I've been able to move to in only a few weeks and be 80%+ as productive as
what I already knew, as there's often lots of useful minutiae, subtleties and
new concepts you need to acclimatize over time._

If all you know is Microsoft, then that's all you can do, and the
organization's technical direction will almost certainly model that initial
decision.

However, if you have the luxury of choice -- and I think most people do -- I'd
advise against it. The short and long-term costs of Microsoft lock-in are
decidedly "non-trivial". The considerable investment in staff, licenses, and
technologies make it _very_ difficult to migrate to a non-Microsoft stack in
the future.

 _The converse also applies. Granted, a competent engineer can learn anything,
however you're initially inclined to pass on them because of the associated
ramp-up time._

In my experience, you're entirely locking out engineers who use Linux and Mac
OS X when you move to a Microsoft stack, but you're not necessarily locking
out Windows engineers when you use a cross-platform stack.

~~~
nkohari
Everyone has the "luxury of choice," but it inevitably comes with cost.

I speak from personal experience -- I know the .NET stack very well, and am
very familiar with the LAMP stack from my days with PHP, but I've only dabbled
in Ruby and Python. Before starting work on our startup, I considered writing
it in Rails, but the reality is that it would have taken me _much_ longer to
get to market. We hit the market at a very opportune time, and were able to
ride a nice wave of buzz to sustainability. If we'd waited another couple of
months (my guess at the added overhead of learning Rails), we may have missed
our window.

The same would naturally apply to someone who already was well-versed in, say,
Rails -- it would make no sense to learn .NET unless there was a very
compelling reason (say, you were writing a Windows desktop app).

Not to mention that the first app you write using any technology you don't
understand well is going to suck. If I'm going to base my livelihood on a
product, I want it to be as well-written as possible, so I'm going to go with
what I'm best at.

Also, it's absolutely not true that you're locking out Linux and Mac
developers when you write .NET. Some of the best .NET developers I know use a
MacBook Pro as their primary machine.

~~~
tentonova
If the cost is too high to bear, then you don't have a luxury of choice.

------
DanielBMarkham
I'm using part of the .NET stack for my webapp.

I really like .NET the language (the CLR, the libraries) and really could care
less for all the overblown frameworks, like ASP.NET or WPF

~~~
icey
Have you tried ASP.Net MVC? It's fairly decent and it isn't as heavy has
webforms.

~~~
DanielBMarkham
I've played around with it, and it looks good. .NET does struts. If/when I
lead another greenfield commercial team that's probably what I'd use. I really
like what they've done.

But I decided to go html/jsonp/F#/SQL-server this time. It lets me completely
separate my layout from my business layer, and with a few bits of auto-code-
gen my data access layer is always up-to-date. So it really just leaves me a
few hundred lines of F# code to write a full-fledged application. I'm also
looking to move to mono and perhaps MySQL, and this architecture is probably
the most amenable to that move further down the road. Plus by writing
functional code in F# with immutable data structures my code is automatically
parallelizable and ready for moving up to super performance using things like
MPI if I want :)

------
indexzero
I think that there is a lot of stigma around Microsoft based platforms. But
imo C# 4.0 is one of the most innovative languages out there right now. With
Mono supporting all of C# 4.0 features (ExpressionTrees and all) I would say,
if you're not using it give it another look. My ideal .NET stack doesn't have
".NET" in it at all:

C# 4.0 HAML LESS MongoDB

~~~
kolosy
agreed.

we (<http://friendsell.com>) are running c#/bistro/ndjango/couchdb

------
csomar
My sister is building an E-commerce website with Asp.net and I should say it's
really pain: A lot complicated and very slow (although her laptop is 1 year
old). \+ Hosting are quite expensive, hosting prices for dot net are enough to
make you choose PHP.

If you are going for a small project, choose PHP, pyhton or Ruby. If you are
building a giant app for a company, you'd better give Asp.net and SQL server a
try.

For me, I use .NET to develop Windows application. Right now, I made a barcode
software, no more and I should say it's the most advanced and coolest IDE +
language (C#)I have ever used. For speed, it's Okay.

~~~
javery
Hosting is available for $5/month for ASP.NET. Granted its probably not great
hosting, but neither are the $5/month PHP/Linux solutions. If you want an
entry level box on EC2 its about 2x the cost, but still only about $80/month.

.NET speed is about the same as Java, it all depends on your architecture.

~~~
jules
I used PHP hosting for €1.50 per month. This is with a 500MB database and 20GB
transfer per month. And the datacenter is in my country so the websites are
quick. For 99% of the websites this is enough. I just picked the first host I
found, so there probably are cheaper options.

------
Dimebrain
I'm working on several web apps using ASP.NET MVC, either on Mono or W2K8. I
have tried to launch startups in the past using ASP.NET WebForms, and I
wouldn't recommend that approach to anyone, I can't get those years back. At
this point, I believe ASP.NET MVC is a solid choice and I am extremely
productive with it. It provides the same "programming is fun again" feeling
that other web frameworks have boasted in the past. To be sure, you're still
using a static language with C# 3.0/4.0, so there is more code to write in
general and more considerations using the ASP.NET pipeline, however it
produces solid applications. The open source argument is out of date; ASP.NET
MVC itself is open source (MS-PL), you can run it on Mono, and there is plenty
of open source projects in .NET at this point that provide either ports of
popular Ruby or Java tooling or code specific to reducing development times on
the .NET stack. You don't get the conventions of RoR, but there are
alternative architectures available.

------
megamark16
The company I work for uses .NET for our hosted CRM solution
(www.eSalesTrack.com), and before that I used .NET at the bank I worked for
for our online banking application. I use Python/Django for all of my own
personal projects, some of which I almost plugged here but since they don't
have anything to do with .NET I'll refrain.

------
mrduncan
Not my startup, but I believe that Startuply (<http://startuply.com/>) was
built using .NET.

~~~
LukeG
Yep, all of our JobAlchemist products are - Startuply, JobSyndicate, etc.

------
kolosy
i was tempted to blog about this a while back. i've gone from java (back in
the 'ole days), to c#/net only, to the view that platforms don't matter. or
rather platform boundaries don't matter. i spent the last few months
developing out a .net mvc framework for my dayjob. when it came time for us to
build <http://friendsell.com>, that's what i and the guys knew best, so that's
what we built on. but we wanted to use CouchDB as the backend... and so we
did.

there are subtle implications to the platform decisions you make, but on the
scale of most startups, the extra $40 bucks a month you'll pay for that
windows ec2 ami isn't gonna make a difference. what will make a difference is
you building on top of the stack you're most proficient with. for us that
meant building on .net and couch. for someone else that'll be RoR and mysql.

------
tjmule
The start-up I work for (<http://www.theport.com>) uses .NET 3.5 / C# / SQL
Server 2005. We've incorporated some open source projects (most notably SOLR,
NHibernate, and SharedCache) and use a wide range of open source tools for
day-to-day management of our team (SVN, Trac, CC.NET). We've found great
success in getting .NET to scale and in rapid development.

I've been developing w/ Microsoft since the VB6 days and I will be the first
to admit that there's no right answer to which is the "best stack". There's
great advantages to LAMP, Java, and Microsoft. I think it all depends on where
your comfortability lies. My honest opinion is that trying to answer this
question is like to trying to figure out which is the "best religion". It's
totally subjective.

------
loganfrederick
The small-to-midsize companyI work for (<http://callcopy.com>) use .NET.

Affordit.com, which received funding a few months ago from the Founders Fund,
is also built on .NET.

------
waynem
I am using .NET for my startup app (nowhere near done yet so no link) which is
a CRM/scheduler for service businesses. I was going to use Ruby on Rails like
the other cool kids but I have more experience with .NET, my area is all .NET
and I like a lot of the new things out (e.g. ASP.NET MVC), plus I am enrolled
in Bizspark. I also had a fair number of issues fighting the Rails mentality
(or rather, trying to shoehorn my thoughts into Rails) so I switched to .NET

------
vyrotek
Current project is built on ASP.Net MVC, Azure and SQL Server 2008. We are
also in the BizSpark program and love it!

------
ScottWhigham
I use .NET to run my startup @ <http://www.learnitfirst.com/>. I was a VB 4-6
guy and moved to .NET in 2000 in betas and loved it. I probably prefer C# to
VB but have projects in both. If I'm writing a new app today, it's almost
assuredly C#.

------
startupdude
LOL you want to build application on .NET, n00b.

------
clistctrl
My own startup uses C# and the MVC framework. I also have a windows service
(.net C# as well) for some data processing. My main reason for choosing it was
development speed (it is what I know best) At my day job I work for a
consulting firm that does sitecore CMS implementations for large sites. In
addition we developed a CMS for displaying data visualizations for data
oriented sites. The biggest benefit of .net for me is the tool set. Visual
studio is very solid, intelli-sence makes me a productive programmer, and
plugins such as Red Gates Profiler make me a fast debugger.

