4 ms·
I am a C# and ASP.NET Core developer. You should not pick up this stack for a startup or for any operation that involves less than three full-time backend deve
by thrwawaynetcor 5y ago
I am a C# and ASP.NET Core developer.
You should not pick up this stack for a startup or for any operation that involves less than three full-time backend developers. Iteration is so slow because all the bad OOPy practices and patterns from the 90s are still alive.
In just a month our intern made a web app using Django/Python and InfluxDb that would have taken us two months to implement.
It's sad because modern C# is an amazing multi-paradigm language. But the .Net ecosystem insists on partying like it's 1999.
- zerr 5y agoHow about using alternative web frameworks? e.g. Nancy, coupled with similar alternative ORM, etc...
- sbelskie 5y agoCarter is probably a better choice than Nancy nowadays, but in any case the new minimal api features coming in 6 look to provide a really excellent way to build elegant web APIs without large framework overhead.
- philliphaydon 5y agoWe kinda stopped developing Nancy when .NET core came out because MVC became more opt in rather than opt out, and was more performant. (Prior to .NET Core, Nancy could handle more RPS over .NET Framework mvc) Master Jonathan Channon (and contributors) have done an awesome job with carter! It’s definitely an awesome alternative. And I think with the stuff David Fowler has been working on to make hello world easier it will help make carter better too.
- vyrotek 5y agoI'm a C# and ASP.NET developer. You should definitely use this stack for a startup or any operation with less than three full-time developers. I've literally done this at three enterprise scale startups with just three devs (including myself). Working on the 3rd startup right now. The productivity of .NET, Visual Studio, and Azure is amazing.
- FridgeSeal 5y agoI’m going to be the voice of balance and say .Net and associated tooling is fine, but Azure should be avoided: never a more frustrating experience have I had.
- UglyToad 5y agoI must admit I'm a little confused at this (but not downvoting), I think the speed of development is probably equivalent but with the benefit that as the codebase grows you at least have types to make scaling easier but having not tried Django I can't really give a fact-based view. Without knowing what exactly was being implemented it's hard to assess. However I think any halfway decent .NET developer can probably stand up a low-medium complexity MVC app in a couple of weeks. Granted you could go full OO-brain and use all sorts of patterns, service layers, onion architecture etc. to bloat the code. But you don't have to, if it's a quick throwaway you could simply do data access directly in the controllers (even using EF to abstract away any SQL writing). Can you expand some more on what exactly the bloat is that you feel slows .NET development down?
- manigandham 5y agoI've used .NET stack in my last 4 startups, and it's let me (alone or in a small team) compete with much bigger companies by building faster and more thorough projects. A single django/influxdb project doesn't say much, and I bet you can find .NET devs who'll build that in a day.
- phillipcarter 5y agoHave you tried F# and one of the libraries that sit atop ASP.NET Core primitives? Check this one out: https://www.falcoframework.com/ https://www.falcoframework.com/ The coding patterns and practices are _very_ different in the F# space. I personally find them much cleaner.
- thrower123 5y agoThe DI obsession in ASP.NET is a little weird, and I'm not a great fan of how magic it makes everything. You don't have to do things that way, but if you don't, you'll be fighting against the grain the whole time, because everything comes packaged as middlewares and components and services that you're supposed to just plug into that framework.
- FridgeSeal 5y agoDI frustrates me every time I have to do it, or touch code that uses it. It’s all magic layers and unnecessary abstractions over the apparently heinous crime of “passing arguments down into functions” and setting it up feels like the programming equivalent of performing a sacred incantation.
- uncheckederror 5y agoI used this stack to replace a Django/Python app that was built over 2 years by another dev in 2 weeks. We regularly have 1 hour turn arounds between when an issue/feature is filed on Github and when a new build is live with that code. The self-contained deployments have made it simple to deploy this app, and now its supporting apps, to our linux-based cloud instances. As proof: https://github.com/AccelerateNetworks/NumberSearch https://github.com/AccelerateNetworks/NumberSearch I've built on many stacks and although I agree that iteration speed is important; It has more to do with how you organize your project and the quality of your tooling than with the specific language/framework. If you don't like the OOPy style, don't write in it. Pattern matching in C# is quite nice, and you can always mark you functions as static. As a bonus, simple functions are easier to test to.
- popotamonga 5y agoTotally different experience here, been a dev for 20 years tried multiple things and .net is so so so much productive and straightforward it's the obvious first choice. Sold my last project (1 man) to a company now worth 500M+, running strong on .net+EF in pgsql without issues.
- dudeinhawaii 5y agoI completely disagree. In fact, my friend and I used .NET our last Startup Weekend event and were the only team to build a complete product against teams using Python/Ruby/NodeJs. You can in fact write C#/ASP.NET in a rapid hacked together way similar to Python if you want. In our startup products, we've built entire production sites with data stores, front-ends, payment systems, and the core product, in a few weeks. I think it greatly depends on the skill level of the developer. In the end, "startup dev" is mostly tying together a dozen libraries, a datastore, and whatever your secret sauce product might be.