TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Unapologetically build your startup technology in C#

97 点作者 sirchristian将近 11 年前

24 条评论

skrebbel将近 11 年前
I strongly agree with the author&#x27;s conclusion, but I strongly <i>disagree</i> with many of his points. Notably, with his recommendation to consciously go all the way with the Microsoft vendor lock in.<p>Our startup&#x27;s backend is made in C#, and we&#x27;re very happy with the choice. We use Postgres, we host it on Docker containers on Linux, and our devs are equally spread over Windows, OSX and Linux. MonoDevelop is a remarkably great IDE for something with so few users, for example, and great open source like Dapper and ServiceStack.OrmLite make it super easy for us to interface with Postgres and use all of Postgres&#x27;s unique features (Json as a first class data type, multiple-cursor result sets, stuff like that).<p>The author seems to propose &quot;get all the free Microsoft goodies when you start, and once you really need the paid versions you&#x27;re probably successful enough that the cost doesn&#x27;t matter much&quot;. It is Microsoft&#x27;s strategy that companies do this, and it&#x27;s a valid one, but it&#x27;s really not what I would do. Microsoft might&#x27;ve become a whole lot more open these days, but tying yourself in so much with a single provider sounds, well, dangerous no matter what.<p>For example, if you develop your C# app for Azure, moving to a different provider is a lot of work (much like if you want to move your Rails app away from Heroku, but with less open source out there to ease the road). If you develop your C# app to work platform-independent (or at least cloud-provider-independent) from the outset, then you&#x27;re free to move whenever you want.
评论 #7997967 未加载
评论 #7999508 未加载
评论 #7998558 未加载
评论 #7998015 未加载
ryanmim将近 11 年前
There are two people talking in my head while I read this post. One says :<p>Too many people obsess about backends. Yes, build your startup in C# and a .NET stack if that&#x27;s what your familiar with. The backend ultimately doesn&#x27;t matter, and the faster you can create and then iterate on your product, the better off you&#x27;ll be. The primary factor that will decide whether your startup is successful or not is if people like your product and actually use it. None of your users will know or care what you built it in, be it .NET, RoR, Django, Yii, whatever.<p>The other person in my head is saying. &quot;OH MY GOD NO&quot;. I&#x27;ve used the .NET stack and various OSS stacks to build complicated web applications. From this experience, I&#x27;ve concluded that the .NET stack sucks. Yes it works, but almost any OSS Framework will provide a much better developer experience. Better while developing the initial product, and better when maintaining and extending it.
评论 #7997930 未加载
评论 #7998532 未加载
评论 #7998010 未加载
steviee将近 11 年前
Is your post about C# or the .NET stack? I can (somewhat) relate to using C# over some other languages. However what I cannot relate to is being trapped with the .NET stack.<p>And a trap it is. You need expensive Windows Servers to host your stuff and Windows just disqualifies itself as a server platform (my subjective opinion). Having to use a powerful latest-tech machine and very recent OS version (2012?) with loads of patches, newest .NET framework just to host a super simple REST service with the almighty IIS is OVERKILL in every sense of the word.<p>Some people even use this approach when all they do is run an AngularJS powered, single-page javascript web application.<p>And my bullshit-meter just spikes when I see this kind of <i></i><i></i> (use your imagination).<p>I agree that Visual Studio is a good choice for Windows software development and that SQL Server is (maybe) a good choice, when you use VS.NET (or .NET at all). But that&#x27;s just a dependency when you opt for the Microsoft world. Stay clear of it and save yourself some hair.<p>Just my 2 cents! ;)<p>Best regards and good look with all that you do, Steviee
评论 #7998306 未加载
评论 #7997894 未加载
评论 #7997906 未加载
评论 #7997909 未加载
评论 #7998002 未加载
评论 #7997927 未加载
daigoba66将近 11 年前
So here is my take:<p>I&#x27;m currently working on a SaaS product built on .NET running on Windows Server, IIS, and SQL Server. We&#x27;re not really a &quot;startup&quot; anymore, but we&#x27;re still very small. I wasn&#x27;t here when the first version of the product was built so I wasn&#x27;t part of that decision.<p>If I were building this product from scratch today as a money-poor startup, I would probably go with tech stack included Java or Python and PostgreSQL. The primary motivation being cost (as in money).<p>Each developer is technically required to have an MSDN&#x2F;VS Pro license (renews for just under $1000 per year). This is not very expensive if you&#x27;re generating revenue, but if bootstrapping it is not cheap. You could cheat and just share a single license; you definitely won&#x27;t get caught.<p>Windows Server licenses, compared to other datacenter costs, are relatively inexpensive. Windows Server has a few advantages; particularly in it&#x27;s easy to administer and there are plenty of sysadmins out there than know it well.<p>The elephant in the room, at least for a SaaS product, is SQL Server. The features of Enterprise Edition are so compelling for SaaS (HADR, unlimited RAM, online index operations, compression, and encryption) that it&#x27;s practically a requirement. But this will quickly become one of the most expensive costs in your datacenter.<p>But in my experience, SQL Server has some real advantages that I haven&#x27;t yet discovered for PostgreSQL. The &quot;community&quot; around SQL Server is huge and has a ton of great people who love to help (often for free!). For instance check out <a href="http://brentozar.com" rel="nofollow">http:&#x2F;&#x2F;brentozar.com</a> or <a href="http://sqlblog.com/blogs/adam_machanic/" rel="nofollow">http:&#x2F;&#x2F;sqlblog.com&#x2F;blogs&#x2F;adam_machanic&#x2F;</a>.<p>There are programs like Bizspark which can bring the initial software license investment down to nearly $0. But if you&#x27;re not generating significant revenue after three years, the licensing costs could hurt.<p>So like everything in world, it depends. But the bottom line is that, in my opinion, if you&#x27;re bootstrapping then costs matter and Microsoft products (SQL Server in particular) are a huge cost which have real viable alternatives.
评论 #7998643 未加载
评论 #7998655 未加载
评论 #7998533 未加载
royjacobs将近 11 年前
I work at a company where we have built one of our products (a large distributed system that tracks television content worldwide) completely on .NET. I love C#, it&#x27;s a very decent blend between a whole lot of languages and additions of LINQ and async&#x2F;await kept it relevant. Visual Studio is the best IDE I&#x27;ve worked with, not because it&#x27;s such a good editor but because it has a sane debugger that is actually helpful.<p>I still wouldn&#x27;t run my startup on .NET though, for a number of reasons. Mono simply isn&#x27;t there yet. Code that works fine on Windows mysteriously stops working on Mono due to threading or GC vagaries (yes, even in the latest version). This isn&#x27;t a dealbreaker, but it is pretty annoying especially since debugging these kinds of problems are of precisely the kind that I don&#x27;t want to debug.<p>The ecosystem is really quite poor compared to, say, JVM or Node. For all the faults of either, there is a LOT of stuff going on and there is a LOT of innovation that is sorely lacking from the .NET world. .NET usually catches up eventually but it&#x27;s either late or half-hearted (just look at the progress of NHibernate vs. Hibernate).<p>I think ASP.NET vNext is a step in a very good direction and I hope to be able to change my opinion sometime next year.
评论 #7999657 未加载
评论 #7997935 未加载
评论 #7998790 未加载
评论 #7999679 未加载
alkonaut将近 11 年前
It&#x27;s important to remember that C# does not imply .NET<p>Xamarin has done some great stuff lately, for example you can use C# to make a native 3-platform mobile app. This is still proprietary tech, but it isn&#x27;t Microsoft and it isn&#x27;t .NET<p>In my eyes the best thing about the .NET ecosystem is the tools, if you like me fancy a polished IDE like IDEA, then VS is definitely one of the best ones around. In my eyes tools are more important than platforms, languages and licenses. The productivity hit of poor tools is much more expensive than anything else.<p>Also, if you are looking at C#, don&#x27;t forget to consider F#.<p>Compare a minimalist service built on Node&#x2F;AWS with one built on F#&#x2F;Azure and it&#x27;s not too different in cost but a much nicer language and better tools.
评论 #7998415 未加载
resca79将近 11 年前
IMHO the problem in not a programming language choice, but the entire ecosystem that you should support if you will use microsoft. Today for ex. linode and digital ocean have a very cheap entry price around 5$, with the power of entire open source lib, and the power of the community of every open source project.
blibble将近 11 年前
there&#x27;s nothing in that post that gives C# a measurable advantage over say, Java.<p>Visual Studio Express? still way behind JetBrains IntelliJ (the community edition is FOSS). Visual Studio is unusable without JetBrains Resharper, which isn&#x27;t cheap.<p>Azure? AWS<p>Bizspark? not required for Java dev as everything&#x27;s free and OSS anyway.<p>Popularity? most popular .net libraries&#x2F;tools (NUnit, NAnt, NHibernate) are all clones of popular Java projects<p>Scalability? those Windows licenses will cost you a fortune once you&#x27;re out of bizspark<p>Vendor lock-in? well it&#x27;s still there with MS, just you&#x27;re not paying them for three years (Bizspark)
评论 #7998043 未加载
评论 #7998384 未加载
评论 #7997945 未加载
Htsthbjig将近 11 年前
I always wondered why computer languages and economy becomes religion and dogma.<p>We use multiple languages and multiple OS in my company.<p>When you have a company you have your own interest and your customers interest in mind.<p>Some times those interest are not the same of Microsoft, Apple, Google, IBM or Oracle.<p>Just developing on a single proprietary language from a single company on a single OS (and yes I know Mono and I don&#x27;t have a good opinion on it) is a huge red flag for me.<p>We use whatever is necessary for solving our customers problems. Some times it means using C#, most most of the times we use better alternatives.
评论 #7998040 未加载
评论 #7999698 未加载
nikon将近 11 年前
Man, 6 months ago I would have agreed with you. Hell I even have a year old BizSpark membership.<p>I just couldn&#x27;t get over the thought in the back of my head that I&#x27;m making the wrong decision investing in Microsoft&#x27;s development platform. C# is literally my favorite language, but I felt trapped and missed open source... Both the freedom it brings and the community. Maybe I spend too much time on HN.<p>I even tried to go &#x27;indie&#x27; .NET. I moved to RavenDB (fuck MSSQL and it&#x27;s overpricedness, and EF) and stuck with Azure, so really my only costs after my 3 years would be an MSDN license per developer. But in the end I just gave in to my worries.<p>One weekend I just rewrote the damn thing in NodeJS and I&#x27;m pretty happy. No need to boot up my Windows VM anymore either.<p>I think the talent pool is also what put me off. There seems to be - in London at least - a lot of career developers who pick .NET.
zargath将近 11 年前
running 30+ windows servers<p>Microsoft has become much better, but still not sexy. Don&#x27;t ever think they can fix everything for you, find out what they do well and what suxx and then do workarounds. Still too much microsoft and too little webstandards.<p>They upgrade more and fix more bugs, but this also break more stuff. Asp.MVC upgrades can be a pain..<p>.Net Core, C#, Linq, etc.. all very cool. Can make some stuff that performs very well, but can be very tricky to scale.<p>Asp.net i still too slow and too heavy.. taking &gt;1min to start a asp.mvc site? It feels like some old grandpa compared to Node.js, Go and even PHP.<p>Powershell is still behind<p>Window Server administration can be very slow, .. how can it take 30seconds to draw an Event log ? Really miss ssh or even telnet.<p>Windows Services and schedules can be a pain. How can &quot;access denied let the service run forever without notification??&quot;<p>The license system is crap, they make their costumers feel stupid when they cant figure out how to renew they Action Pack&#x27;s, etc..<p>And their crappy sales ppl, trying to push Sharepoint because they hear the word software and web.<p>So I really regret working with microsoft, althought I like some of .Net and C#, but what does one do for a good project and a salery.<p>Next project will not be .net for sure..
评论 #7998557 未加载
_xhok将近 11 年前
the article seems to be saying C# is cheap and fast because it has a really good set of libraries. i have no problem believing this. the question in a startup is, is it more important to have good libraries or a powerful language? e.g. lisp is the most powerful language, but its library ecosystem isn&#x27;t reliable enough. whereas java is a weak language but has great libraries. (that&#x27;s why clojure&#x27;s awesome!)<p>i&#x27;m not trying to start any kind of religious war here, but this is personally why i (and i suspect many others) code their web apps in python. it&#x27;s a reasonably powerful language with an excellent set of libraries to go with it.
marvin将近 11 年前
I did my Masters thesis in Computer Science in C# (data visualization). No apologies. A couple of people around the Institute have looked at me funny, but it&#x27;s turned out to be a very good choice.
DonnyV将近 11 年前
I&#x27;m currently working on my own startup. But didn&#x27;t go the full Microsoft stack route.<p>I use C# and Visual Studio for development. I think right now nothing beats VS for pure production output. I do all development on a Windows box.<p>All frameworks work on Windows and Linux.<p><pre><code> Nancyfx - web framework Cassette - asset optimization Mongodb - database Production server uses Ubuntu + Mono + Nginx. $20 VM on Digital Ocean. </code></pre> Provides a nice balance of best of bread tooling and cheap production costs.
dexterchief将近 11 年前
By all means, unapologetically build your startup with C#&#x2F;.NET.<p>Every Linux&#x2F;OSS based startup you will be competing with agrees with this recommendation.
onion2k将近 11 年前
When you&#x27;re choosing a tech stack in a startup there&#x27;s a <i>very</i> important factor to consider that this article neglects to mention. It&#x27;s likely, if you have any measure of success or you go down the investment route, that you&#x27;ll be expanding your technical team quite early. The availability and cost of developers is critical at the beginning. Building in languages like PHP, JS, Java, and to a lesser extend Perl and Python, means you have access to lots of cheap devs. Especially in the case of PHP and JS. Those languages will scale reasonably well to the tens of thousands of users, by which time you&#x27;ll probably be raising a Series A and you&#x27;ll be able to afford to shift the important bits of the code to a more appropriate language.<p>While it might be &#x27;right&#x27; to build in C# or Erlang or Haskell or Brainfuck or whatever, if you have to pay a premium to get your first engineer you&#x27;ll be shortening your runway, and that&#x27;s pretty much the worst thing you can do. It&#x27;s <i>much</i> better to build in the &#x27;wrong&#x27; stack to start with and give your startup time to get traction. At the end of the day, no one using your product gives a damn what it was built in.
评论 #7997971 未加载
评论 #7997925 未加载
评论 #7997963 未加载
dnesteruk将近 11 年前
Another equally potent idea is to build products which integrate with Microsoft&#x27;s own, popular products. For example, the popularity of Excel caused me to build this: <a href="http://activemesa.com/x2c" rel="nofollow">http:&#x2F;&#x2F;activemesa.com&#x2F;x2c</a>
wdr1将近 11 年前
I had a hard time getting past:<p>&gt; In reality Microsoft doesn’t want your money until you can afford to give it to them.<p>Building your business on that premise seems very dubious at best.
perltricks将近 11 年前
I use C# for work and it is a nice language to work with. However mono runs dog-slow compared to C# and is practically unusable. So you are locked in.
评论 #7999703 未加载
billpg将近 11 年前
I&#x27;m getting a 404 error. Is there a cached copy out there?<p>EDIT: The blog&#x27;s front page has a full copy of the article at the top. (As I write this at least.)
评论 #7998022 未加载
raphinou将近 11 年前
Not saying it is the case here, but blogs praising ms tech always raise some flags with me, as with <a href="http://www.pcworld.com/article/2365060/microsoft-caught-astroturfing-bloggers-again-to-promote-internet-explorer.html" rel="nofollow">http:&#x2F;&#x2F;www.pcworld.com&#x2F;article&#x2F;2365060&#x2F;microsoft-caught-astr...</a>
DanielBMarkham将近 11 年前
The throwaway comment is this: who cares about backends? Go make something people want. Every second you spend chatting tech is wasting your time. Make something people want <i>even if you have to do it with a pencil and paper</i>. Worry about the tech when you&#x27;ve figured out step one. 99% of startups don&#x27;t do this.<p>So for all of the armchair startup warriors out there, the guys eager to hear if Facebook is really running MongoDB or what their sharding plan looks like, let&#x27;s look at the tech.<p>I&#x27;m a MS hound from way back. I made a bet -- a very good one -- back in the 90s that MS was going to own the PC market. And it did. And life was good. Microsoft sold tools and apps, I came in and programmed using those tools and apps. Many times I came in after the local yokels had already screwed things up. This meant a higher bill rate. Life was nice.<p>But I started noticing something: there was a certain arrogant-jerk-inbred-echo-chamber feeling to the MS community. MS pimped tools to the developers. Developers ate it up. MS pimped new servers to their MVPs. The MVPs sold them to corporations, consultants came in and collected. It was all fine and dandy, but over time there just got to be more and more tools and apps, and more and more servers and experts. Any small reasonable thing you&#x27;d like to do, like set up an email server, involved books, certifications, special servers, learning the acquisition history of all these small companies, and so on. It was ludicrous that any one person could be an expert enough to maintain the small set of tools that most folks would need. Microsoft was adding complexity -- unneeded complexity -- into everything it touched.<p>More troubling, once I started learning more about startups, I saw developers obsess over new Microsoft tools or third-party components instead of making things people wanted. Microsoft&#x27;s interests was in creating and maintaining this ecosystem of selling servers and tools, not in helping people make things other people want. So I&#x27;d see these projects that were supposed to be solving a simple problem. They&#x27;d use all kinds of fat, bloated, feature-laden <i>junk</i> strung together in a huge pile of tech. Then somebody would start down the &quot;happy path&quot; of making a &quot;hello world &quot; app work. Very soon, however, developers ventured off the happy path, and then they had to learn javascript, html, SMTP, SQL, and so on.<p>So development consisted of salivating over new stuff, eagerly installing it, and then wandering around in the weeds trying to hook all the pieces together. And oh, by the way, the user was supposed to like it. But, let&#x27;s face it, screw the user. We&#x27;re here for the tech, right?<p>I still love the CLR and several other things Microsoft has created. But I&#x27;m not part of the ecosystem any more, and I won&#x27;t spend any time at all learning whatever new version of Silverlight they&#x27;ll have out next year. I&#x27;ll also stick to my command line and bash, thank you very much. I&#x27;ve been burned too many times, and I&#x27;ve seen too many development teams destroy their productivity by getting lost in the Microsoft ecosystem.
againBlahbl4h将近 11 年前
Its weird that the HN crowd just seems to assume that the advice to use linux and mono just has to be a better idea than using windows.<p>If you haven&#x27;t looked at windows since 2003 you really need to take a look at server 2012 R2. The default installation mode is server core. It requires dramatically fewer patches. Management with PowerShell is incredibly powerful. IIS has seen many, many improvements.<p>Also, &quot;developing your app for azure&quot; is a weird statement. If you develop for Azure Websites you are literally just writing an asp.net web app or api. it runs in IIS in a VM. It just has some management wrapped around it so that you don&#x27;t have to take care of the VM(s). It has autscale, monitoring, and all the stuff you would expect from a cloud provider. Writing your app to use SQL Azure, or Azure storage, or something like that is just like using the comparable services from Amazon. It&#x27;s like anything else...you should implement its usage as an interface so you can swap it out if need be.<p>Some people on HN have accused me of working for MS just because I use their stuff. I&#x27;m not, nor have I ever been, a MS employee. I&#x27;ll admit that I started looking into windows a couple of years ago because I was bored with Linux and Unix. I&#x27;ve found that if you put the time in to understand how it works its incredibly productive and thorough. If you try to make it work like unix it will suck. If you learn PowerShell and stay away from the &quot;clickety-clickety&quot; thing it&#x27;s awesome.<p>From a development standpoint I actually like the total stack approach...but that&#x27;s me. If you need to use best of breed components you can still do that with .Net. For me though, my interests shifted to C++ a while ago, so .Net stuff for web api&#x27;s get&#x27;s the work done when I have to do it. I would like to see more stuff like openstack in the .net world, but system center is fine. The stuff that I do ends up being important enough for enterprises that getting funds for that kind of thing is just part of the package.<p>That&#x27;s another thing. I&#x27;m completely uninterested in startups. I&#x27;ve worked at startups in various roles in the past and I&#x27;m just over it. Any startup that I built would have to be something that I could run by myself that immediately made money that I would keep. Investment funding is shit. It&#x27;s a hassle that is super crazy. Dealing with &quot;business&quot; types that aren&#x27;t technical enough to understand the challenges is also completely off the table. If you did choose to work with a VC then it&#x27;s much better to be making money and talking about selling out totally instead of implanting them in your life. Shudder.<p>The one thing that I think Windows needs is a container style app deployment model. The coolest thing going in large scale app building is CoreOS. Its the future of how a large scale app will be built and deployed.<p>The new, and much loathed, metro applications are actually a good starting place for building a container system. They use feature called &quot;app containers&quot; that was first introduced in Vista. Add to that an app package that installs and uninstalls as a unit, called APPX. They haven&#x27;t made any noise about using the new app model for servers, but it would be a great idea. It uses an API monitor that stops calls to things like LoadLibrary or GetProcAddress and all the other API&#x27;s that let you bootstrap malware. Anyway, like I said, they haven&#x27;t made any noise about it...it would be cool though.
评论 #7998468 未加载
评论 #7998440 未加载
评论 #7998500 未加载
评论 #7998452 未加载
dkyc将近 11 年前
Interesting how the post completely ignores the <i>quality of the language</i>. Most people I know don&#x27;t use C# for the same reason they don&#x27;t use Java: Because it&#x27;s often feels bloated, over-engineered and too verbose for building stuff fast. It has nothing to do with Microsoft, Azure or scaling, they just prefer whatever dynamic language they&#x27;re comfortable with.
评论 #7997839 未加载
评论 #7997870 未加载
评论 #7997877 未加载
评论 #7997844 未加载
评论 #7997845 未加载
评论 #7998047 未加载