Django vs .NET vs Rails

Need advice about which tool to choose?Ask the StackShare community!

Django

37.1K
33.2K
+ 1
4.2K
.NET

14.4K
5.6K
+ 1
1.9K
Rails

19.8K
13.4K
+ 1
5.4K

.NET vs Django vs Rails: What are the differences?

Introduction:

In this article, we will explore the key differences between .NET, Django, and Rails, three popular web development frameworks.

  1. Language Used: .NET is a framework developed by Microsoft and primarily uses the C# programming language. On the other hand, Django is a Python-based framework, while Rails is built using Ruby. These different languages bring their own syntax and paradigms to the table, influencing how developers write code within each framework.

  2. Architecture and Approach: .NET follows a multi-tier architecture, separating the application into different layers such as presentation, business logic, and data access. It emphasizes Object-Oriented Programming (OOP) and provides extensive tools and libraries for building large-scale enterprise applications. In contrast, Django follows the Model-View-Controller (MVC) architectural pattern, where the application is divided into models, views, and templates. It is highly suitable for rapid development and encourages convention over configuration. Rails, similar to Django, also follows the MVC pattern and promotes the "Convention over Configuration" philosophy.

  3. Development Time: Due to the nature of the languages used, .NET applications may take longer to develop compared to Django or Rails. C# and Ruby both provide concise syntax and powerful libraries that allow developers to write code quickly and efficiently. Django further speeds up development with its built-in administrative interface, which provides automatic CRUD operations and authentication capabilities. Rails, with its focus on convention over configuration, also aims to minimize the development time required.

  4. Community and Ecosystem: .NET benefits from a large and active developer community, as well as comprehensive documentation and support from Microsoft. It also has a vast ecosystem of third-party libraries and frameworks. Django, being built with Python, also enjoys a vibrant community and benefits from the extensive Python ecosystem. Rails, built with Ruby, has its own active community and a rich collection of Ruby gems that provide additional functionality.

  5. Portability and Deployment: .NET applications can be deployed on both Windows and Linux servers, but they are considered to be more suitable for Windows environments. Django, being based on Python, offers excellent portability and can be deployed on various operating systems. Rails, built with Ruby, also enjoys portability and can be deployed on different platforms.

  6. Scalability and Performance: .NET applications are known for their scalability and performance, making them particularly well-suited for enterprise-level applications with high demands. It leverages the power of the .NET Framework and provides access to various performance optimization techniques. Django, being built with Python, may not scale as well as .NET for extremely high traffic websites but still performs adequately for most applications. Rails, built with Ruby, is generally considered to have lower performance compared to .NET and Django, although it can still handle medium-scale projects effectively.

In summary, .NET, Django, and Rails differ in the programming languages used, architectural approach, development time, community support, portability, and scalability. Each framework has its own strengths and weaknesses, and the choice depends on the specific requirements and preferences of the project at hand.

Advice on Django, .NET, and Rails
Needs advice
on
DjangoDjangoFirebaseFirebase
and
LaravelLaravel

I need advice. Am currently building a real estate marketplace mobile app using Flutter for frontend. I am not sure which backend solution to use, and thinking of using Firebase, Django or Laravel for backend and MongoDB/MariaDB for the database. I want to build an API backend and then use RESTful API calls for the frontend.

See more
Replies (1)
Recommends

I think you should first choose either a database or server side programming language then you can streamline your other choices based on that, but I think if you are building a big project then going with django + firebase / mongodb would be a good choice else choose laravel + firebase.

See more
Abhi ram
Needs advice
on
.NET.NET
and
.NET Core.NET Core

Hey everyone, I am a backend developer who specializes in Java and Spring Boot having an experience of 4 years. And due to my shift in the project, now I need to deal with the .NET Core technology, as a Java developer before I need to know where to start in order to support the project and build REST API.

Can I get advice on how to move on to the new backend stack and what to learn and how to get hands-on with the .NET?

See more
Replies (3)
Aghogho Bernard
Lead Software Developer/Eng. at VOYD AB · | 7 upvotes · 30.7K views
Recommends
on
.NET.NET.NET Core.NET Core

IMHO I think it is the best framework to build software on. Since you are coming from Java, It should not be too difficult to adjust to C#. NET Core has come a long way. NET6 is just amazing. With the minimal API, https://docs.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis?view=aspnetcore-6.0 REST API should be very easy work for starters. When you settle in, you can go more advanced.

Although this is dated - https://download.microsoft.com/download/D/E/E/DEE91FC0-7AA9-4F6E-9FFA-8658AA0FA080/CSharp%20for%20Java%20Developers%20-%20Cheat%20Sheet.pdf it provides you side by side comparison of syntax. Another cool read is - https://betterprogramming.pub/java-to-c-c-to-java-f766c9f659c4

Feel free to reach out if you need any assistance.

Welcome aboard

See more
Jason Starr
.NET Developer at Performance Systems Development · | 4 upvotes · 27.3K views
Recommends
on
.NET.NET.NET Core.NET Core

You will find that the transition from Java to C# is pretty smooth. Working with .NET has become much more intuitive and has a lot to offer. I highly recommend using Visual Studio as your IDE. It makes things much easier and is not too different than other IDEs like IntelliJ. There are also Visual Studio templates for web APIs that make it really easy to get up and running. Microsoft has good documentation and tutorials to help you get familiar with the technology. I would start there.

See more
Recommends
on
.NET Core.NET Core

I would recommend that you become familiar with the C# language. J. Albahari's reference book is suitable for this. To learn rest api development, read Andrew Lock's book "Asp Net Core in Action"

See more
Needs advice
on
DjangoDjangoLaravelLaravel
and
SpringSpring

Hi all. I want to rewrite my system. I was a complete newbie 4 years ago and have developed a comprehensive business / finance web application that has been running successfully for 3 years (I am a business person and not a developer primarily although it seems I have become a developer). Front-end is written in native PHP (no framework) and jQuery with backend and where many processes run in MySQL. Hosted on Linux and also sends emails with attachments etc. The system logic is great and the business has grown and the system is creaking and needs to be modernised. I feel I would stick with MySql as DB and update / use Django / Spring or Laravel (because its php which I understand). To me, PHP feels old fashioned. I don't mind learning new things and also I want to set the system up that it can be easily migrated to Android/iOS app with SQLite. I would probably employ an experienced developer while also doing some myself. Please provide advice -- from my research it seems Spring/Java is the way to go ... not sure. Thanks

See more
Replies (4)
Recommends
on
LaravelLaravelVue.jsVue.js

PhP might be old fashionned but Laravel is really great. I've tried nodeJs backend with express, python with flask and a little bit of serverless, and quite frankly, laravel was by far the best in my opinion. It has a lot of official packages that speeds up development (from authentification to serverless deployement), it also uses Eloquent ORM that support Mysql databases. Finally it works great with VueJs for the front end development.

See more
Harry Jin

I recommend ExpressJS or NestJS as BackEnd and React as Front-End and PostgreSQL as the database. The reason is as follows. First of all, since it is a financial system, various services will exist, and each service must be well connected and combined with each other. The organic combination of small services that work very well is the foundation of a great system. For this, it is best to use Node.js based, and I think ExpressJS or NestJS is the best choice. We recommend choosing React or Vue as the FrontEnd. PostgreSQL is currently the best performing database. These three combinations have many examples, and their superiority has been confirmed by my implementation in many projects already. If you are interested in my advice and have any questions, please feel free to contact me.

See more
Jayson Pamittan
Software Engineer - Level III at Arch Global Services · | 4 upvotes · 91.6K views
Recommends
on
LaravelLaravel

On my end for me it's better to choose Laravel. It has very good documentation and easy to code. The framework supports MVC and you can create either monolithic or API only. The community is also big. If you combined a Domain Driven Development (DDD) and Test Driven Development (TDD) on Laravel then it will be a superb.

See more

Since you are using PHP more natural is Python - it can handle high traffic - Python is very effective in coding. Python is superset of Java and C++ - True Object Oriented and have very clear syntax (Spring is hard to learn and debug - you can be confused many times). It is human readable you can code 2-4 times faster with small speed sacrifice. Jinja2 is more faster/flexible Django - whatever Django is better with ORM. Flask is just proposal - many other options of web servers.

See more
Amir Beheshtaein
Needs advice
on
JavaScriptJavaScriptNext.jsNext.js
and
RailsRails
in

I've inherited a monolithic Rails app for an MVP product. We're planning to slowly migrate away from RoR to build the remaining parts of the app. App requirements: - Video streaming w/ audio - Real time chat - User authentication & roles - Payment system Performance, scalability, and attracting dev talent(s) are important to our team.

I'm considering the microservices approach, SSR + CSR & caching with Next.js (prefer Svelte-kit but it's in beta). I also prefer to keep this a full JS household. What other JavaScript frameworks/libs would you recommend? Keep in mind the existing RoR will not be deprecated. We'll be consuming the APIs and slowly moving away from them until they can safely be deprecated.

See more
Replies (2)
Paul Keen
Recommends
on
RailsRailsStimulusStimulus

Moving from Rails will reduce development velocity (if you want to have easy support and update the app) and will require more skilled (expensive) developers to support it.

Without previous experience (5+ years) do not suggest moving to node.js. That code will easily become hard to learn and support.

You always can implement microservices with Ruby, but this approach should be considered only after Series-A and when you will have more than 5 developers and dedicated SRE/DevOps.

See more
Ray Arayilakath
Full-stack Developer && Software Engineer at Self-employed · | 4 upvotes · 18.9K views

I see it's been some time since this was posted, but I'm glad you are migrating to Next.js 🎉!

Me personally, I would run an Express.js backend so that frontend and backend logics don't feel blurred, especially if you want to attract more developers to your project. Keeping frontend separated from the backend makes for a healthier workspace ecosystem and often confuses people less. Furthermore, implementation is a lot easier and later on as you move from RoR to an Express.js server there won't be too much confusion as to how certain parts mesh together.

Based on the features you're looking at I would consider using websockets (WSS or Socket.IO) for the chat application or rolling that with features from WebRTC, which you would need to support video streaming anyways. For authentication you could look at Auth0 which has some very nice libs for authentication or you could rig up your own stitching individual OAuths (Google, Facebook, etc.) along with a simple User/Pass signup that you manage in your database. For payment I would consider using Stripe, it's very popular in the JS ecosystem right now, has lots of documentation and features, and is also pretty cost-effective.

I know it's been some time since you have posted this and you have already made some decisions, but if you (or anyone else reading this) has any question feel free to let me know :)

See more
Aleyna ARSLAN
Entrepreneur at Oblong Digital Marketing & Ads · | 5 upvotes · 86.1K views
Needs advice
on
DjangoDjango
and
.NET.NET
in

Hi everyone, I have a new venture project, we do frontend development mainly with Tailwind CSS, JavaScript, CSS, HTML, and React. This project will run on a cloud platform and it will be a web platform with data analysis. At Backend, we can't decide which technology to continue with. We will necessarily use Python for data analysis and algorithms, but should the backend be written with Django or C# .NET, can I get your suggestions within the cloud platform? Price performance is our priority.

See more
Replies (2)
Miles Fawcett
Recommends
on
DjangoDjango

If you are already committed to Python for the data analysis then it would make sense to use Django for the framework and stick with Python throughout. In general the fewer technologies you use (unless there is real justification) will improve process and long term costs.

All things being equal the fact you would not have less (likely no) licensing costs with a Python based solution will overall reduce your long term costs.

See more
Recommends
on
DjangoDjango

If you will be doing data analysis and complex algorithms Django is best suited for this because of it' maturity and the huge communities providing lots of Python libraries for data analysis and more.

See more
Needs advice
on
DjangoDjangoRailsRails
and
SpringSpring
in

Hi everyone! I'm starting a personal project that I've been postponing for a little while and I'm starting with the backend first.

  • It's an app that needs to query open APIs (It could go up to a hundred APIs) and do filtering and other manipulations onto the data and then store it in my own database. So basically, the end result medium/long term is a lot of data!

  • Besides filtering/storing data from other APIs, the API will interact with my client application. I should note that the client app attempts to give real-time information.

Question: I would want to launch the API within 6 months as I'm also planning to make it available for other devs through platforms like RapidAPI. With all being said, my question is twofold:

  1. Which backend framework would allow me to do these operations with the best response time possible?

  2. Which framework would be the easiest to deal with deployment on AWS?

Background:

I have a background in Spring since I'm using it at work, I have none in Rails and Django but I don't mind trying something new as long as the learning curve isn't crazy. I know python but not Ruby. Beginner on AWS and choose that one after some research.

Thank you very much, sorry it was a bit long. Cheers

See more
Replies (1)
Jorge Velasco
Full Stack Developer at Fintual · | 8 upvotes · 88.5K views

The most relevant part is the central architecture more than the specific backend. For me, it makes sense to go for an event-driven solution. In this case, an event is emitted on every new data, and one or more listeners react to it. In AWS, you can easily get this by storing your data in DynamoDB, which is pretty fast, and have as many lambdas working on the received data (here you can find more details). This way, you keep your worker(s) busy fetching data while others consolidate it. I wouldn't get too crazy on the lambdas, and I'd start with one as there will be only one client by your description. My only concern is how similar the APIs you're consuming are. Depending on that, it may be easier to have different lambdas by target API. My only note on the backend language is that if you want low latency, I'd discard Python and Ruby and choose Go (I know that is not in the list, but given that you're open to learning a new language, you could give it a try). It is easy to learn, has excellent performance, and is the only Lamdba runtime with an X (1.X) in the supported language, making it a great choice.

See more
Needs advice
on
ASP.NET CoreASP.NET Core
and
DjangoDjango

Hi, I am a professional accountant, not a computer programmer but I know programming concept and love it, in past have learned VB.Net in the year 2008. I want to use my accounting experience in programming by developing Web-Based ERP/Accounting Software integrated with to eCommerce platform. I want to develop ERP and eCommerce for a particular industry which can be used by 100+ companies. I am not very sure which programming language and framework I should use for the project. I found that Python-Django is the most powerful platform/framework to build any kind of application. Sometimes I am thinking about ASP.NET because I have learned little .Net concept. Now I want to invest my time and money in something which is very robust and helps to develop my project. So, I am very much confused between ASP.Net or Django. Please could anybody advise me which framework would be ideally good to develop this project which will carry for coming many years... Many thanks for your suggestions and advice.

See more
Replies (4)
Guillaume Maka
Full Stack Web Developer · | 6 upvotes · 58.4K views
Recommends
on
ASP.NET CoreASP.NET CoreDjangoDjango

If you already have some knowledge in C# you can go with ASP.NET Core MVC and continue your learning path (if you liked the language in the first place). but both solution will allow you to build an ERP/eCommerce project.

There is not too much difference between Django and ASP.Net Core MVC both follow the same design principles for building application, they both flexible, provide a lot of library, have a great community support..

The downside (thats my opinion) with ASP.Net Core you are going to follow the Microsoft philosophy of doing thing and you will mostly by tight to there products lineup. Instead of Django where you'll have more freedom.

If your concern is - Robustness: both are valid choice - Long Term Support: Go ASP.Net why? Because the project is maintained by Microsoft the chance that the project go unmaintained is low. Django is more Open Source we never know when it will stop be maintained.

The best I can give you, it's to try both and make your own opinion. Build a Proof of Concept and see by yourself.

See more

If you are starting from scratch, I would recommend Express.js as a backend web framework. It is faster and more flexible than Django. Express makes it easy to build web applications offering numerous benefits such as efficiency and quicker development times. Some features that are worth mentioning: middlewares, templating, routing, and debugging.

The most important element that is missing the stack is the database. A Web-Based ERP/Accounting Software require a powerful Relational Database to comply with ACID princliples (Atomicity, Consistency, Isolation and Durability). By atomicity, we mean that that database is able to perform the transactions in an atomic manner. A transaction is just a single unit of work, which can either be one query, or multiple queries. Let's say that we have two accounts. And we need to transfer $100 from account one to account two. Now this transfer is just one transaction, but it is going to consist of three different steps. The first step is checking if the account one does have $100. The second would be upgrading the amount of account one to be $900. And the third would be taking this $100 and making the balance and account two be $200. If the database does support atomic transactions, if one of these three steps fail, the whole transaction should fail. This is what atomicity is.

Consistency means that the database should help in achieving the correct data state, adding certain constraints. We can add a constraint on the amount column that it can never be negative, and the database must make sure that this constraint must always be followed.

Then, we have isolation, which is mainly about the concurrency control. Let's say that we have an account which has $1,000, and there are two persons A and B trying to get the money out of this account. So $1,000 and $100. If we let both of these transaction happen at the same time, this would result in the reduction of $1,100. So the balance will result in the negative $100. Isolation prevents this to happen.

Finally, durability means that once a transaction is committed, the data must be written to the non volatile memory or the storage. So that even if the crash happens or something wrong happens with the database, the data must be there and not be corrupted.

In terms of relational database my recomendation is using Postgres. Postgres is an object-relational database, while MySQL is a purely relational database. This means that Postgres includes features like table inheritance and function overloading. Postgres also adheres more closely to SQL standards.

See more
Oleksandr Krakovetskyi
Recommends
on
ASP.NET CoreASP.NET Core
at

I found that Python-Django is the most powerful platform/framework to build any kind of application. It's not. Even you change "Python-Django" to something else, it still will not be a valid statement. Each tool/service/language/framework has advantages and disadvantages and should be considered in each case separately.

Next, Python is a scripting language, C# is a typed one. For serious projects in most cases typed languages are the better choice.

Finally, if you have some .NET experience, ASP.NET Core looks obvious choice.

See more
Recommends
on
DjangoDjango

ASP.NET will work better in a windows environment. Django probably works better in a Unix environment. I feel like there are a lot more hosting options for Django on Unix (digitalocean, Heroku, Linode, AWS, ...).

So, I think Django.

However, I like Unix and python better, so I'm biased.

See more
Needs advice
on
DjangoDjango
and
Spring BootSpring Boot

I have 1 year of experience as a Django developer but my main role is as a frontend developer and my current company is not using Django they are using Spring Boot and I also want to do backend work.

my perception is spring boot developers get paid much higher than Django and can be there in the market for a long time.

Please give me valuable comments and guidance.

See more
Replies (3)
Adrien Horgnies
Recommends
on
Spring BootSpring Boot

Globally, Spring Boot is more demanded than Django. For example, there are about ten times more open positions for Spring Boot than for Django in Brussels. So this naturally drives up the price of developers mastering Spring Boot. If you have an opportunity to work with Spring Boot, I suggest you take it, as it is a sound career decision. Furthermore, your experience with Django will help you to master Spring Boot, as both frameworks share many concepts. That said, Django positions do also exist, and it's absolutely not a bad decision to become an expert with that framework either. Django developers seem to like it very much.

See more
Mayank Choudhary
Senior Software Engineer at Cisco · | 11 upvotes · 61.4K views
Recommends
on
DjangoDjango

My mantra is not sticking to a particular technology. That is what I'd suggest. Going by that, I recommend you learn both, Django and Spring Boot. But if you want to choose one among the two, I'd say stick with Django. Saves you the effort of learning a new language and a new framework. Rather, you can spend that time honing your Django skills. It is a wrong notion among young graduates that organizations decide pay based on your technology stack. You just need to be good at a technology that is in demand. You'd be paid well no matter the technology. Django is a wonderful framework and there are tons of companies looking for Django experts. The same can be said about Spring Boot. Both are wonderful technologies in their own accord. As for you, just go with the technology you are already familiar with. It is a misconception that Spring Boot developers get paid better than Django developers.

See more
Recommends
on
DjangoDjangoSpring BootSpring Boot

Learn both. Spring boot takes more time to learn, because you need to understand spring core first, then spring MVC, then build tools like maven, pom (to truly master spring boot application deployment) One specific technology is never going to land you a job. Go for the whole stack. Example, organizations that use spring boot, won't just look for candidates with spring boot. They might ask for docker, Kubernetes, JavaScript, some ui framework like angular/react, maven, git, etc. Learning curve for python django is easy and small. Focus one technology at a time. Learn it in a couple of weeks. Then go on to another technology in the stack. If you master multiple stacks say java stack, data science stack, web development stack then you should not be short of opportunities. More opportunities means more bargaining power. Having said that, don't run behind money. Money is necessary to sustain but it is not worth pursuing. Pursue moral values, or at least technical excellence. And money will follow wherever you go.

See more
Needs advice
on
DjangoDjango
and
Node.jsNode.js
in

Situation: I need to make a website for my Final Year Project. It's the website for brain analysis. The website features include chat, blogs, posts, users, payment methods. One of the main features includes the use of AI, which I know only in Python.

Decisions and Confusions: I decided to make two backends and one front-end. One backend will be using Django with GraphQL/RestAPI that will be running my AI models. The other backend is for the website. It will add users, chat, post, etc. I'm thinking of using TypeScript, Prisma, ExpressJS, GraphQL, MongoDB/PostgreSQL.

Please guide me to the latest and stable tech stack I can use. Because one of the requirements of our Final Year Project is to use the latest tech stacks. 1st Backend advice? (This will be used to run AI models) 2nd Backend advice? Frontend to 2nd Backend advice?

Thank you.

See more
Replies (2)

Hey there 👋,

Daniel from the Prisma team here.

I think your choice of a stack would work well for your final year project.

Some recommendations: - Use PostgreSQL if you need a stable stack. Prisma support for MongoDB is currently in Preview and therefore isn't stable. Moreover, PostgreSQL being a relational database enforces a schema more strictly than MongoDB which is useful given that your data model involves multiple relations. - If your Django backend exposes a REST API, you can also expose it over the GraphQL API by proxying requests from the GraphQL API to the REST API. That way, you have a unified API for all operations. This is typically known as wrapping. - Regarding the GraphQL part, I would consider looking at Nexus and nexus-prisma.

For inspiration, check out the Prisma Examples ​repository which contains many ready-to-run examples.

Here's another fully-fledged example using Prisma, Fastify, GraphQL, and PostgreSQL: https://github.com/2color/fastify-graphql-nexus-prisma

See more
Recommends
on
FastAPIFastAPIKubernetesKubernetes

Hi. Maybe you can try use FastAPI instead Django https://fastapi.tiangolo.com It could be faster. The FastAPI documentation is so useful and elegant.

Also you can try split a little more the backend and use an "microservice" architecture. Using Kubernetes to deploy your services.

See more
Abdullah Adeel
Needs advice
on
DjangoDjangoNode.jsNode.js
and
RedisRedis

Hey everyone, I am planning to start a personal project that would be yet another social media project with real-time communication facilities like one-to-one chat, group chat, and later voice and video chat using WebRTC. The thing I am concerned about is Django being able to handle all the real-time stuff using websockets. I can use Django Channels, but I don't think that would be a very scalable solution. Moreover, django_channels require alto of configurations, and deployment is also a pain. My plan is to use a separate Node.js server to handle all the socket connections and have it talk to the main django server through Redis. My question is whether the above-mentioned solution is a good choice? If yes, how this can be achieved, keeping in mind all the authentication other related problems. It might be simple, but I have never done this before, which might be the main reason I am concerned. But any suggestion will be appreciated.

Thanks in advance 😊

See more
Replies (1)
Sergey St.

Try to do it with less - Nodejs + Redis + socket.io, optionally you can always communicate with django, but you can do it all in Nodejs, use pm2 and cluster too. For Redis you can also use Pub/Sub, is a good combination for future scaling.

See more
Decisions about Django, .NET, and Rails
Noe Osorio
FullStack Engineer at Finloop · | 9 upvotes · 98.2K views

Node Js have worked incredible great for me on every project I had. It is fast enough to support big and small apps, you do not have to worry about performance, because it is very capable of building a big REST API.

One advantage is that the learning curve is lower when you have used javascript on web browser as frontend, so, it is easy to migrate from Frontend to Backend with node.

Node Package Manager (NPM) has an incredible amount of packages from many developers, so you can use them on your project as you need them.

Code is easy to support, way different than Java Legacy code.

See more
Tyrell Perera
Director - Software & Systems Engineering at Telstra · | 5 upvotes · 85.1K views
Migrated
from
DjangoDjango
to
Spring BootSpring Boot

I inherited a large Python Django application as part of a corporate re-structure. After careful analysis, working with the new team, we decided to break the monolith into a microservices architecture. While doing so, we managed to port some of those microservices into Spring boot. Better performance and widely available expertise within my current team made me make this decision.

See more
Ing. Alvaro Rodríguez Scelza
Software Systems Engineer at Ripio · | 12 upvotes · 353.9K views

I was considering focusing on learning RoR and looking for a work that uses those techs.

After some investigation, I decided to stay with C# .NET:

  • It is more requested on job positions (7 to 1 in my personal searches average).

  • It's been around for longer.

  • it has better documentation and community.

  • One of Ruby advantages (its amazing community gems, that allows to quickly build parts of your systems by merely putting together third party components) gets quite complicated to use and maintain in huge applications, where building and reusing your own components may become a better approach.

  • Rail's front end support is starting to waver.

  • C# .NET code is far easier to understand, debug and maintain. Although certainly not easier to learn from scratch.

  • Though Rails has an excellent programming speed, C# tends to get the upper hand in long term projects.

I would avise to stick to rails when building small projects, and switching to C# for more long term ones.

Opinions are welcome!

See more

We’re a new startup so we need to be able to deliver quick changes as we find our product market fit. We’ve also got to ensure that we’re moving money safely, and keeping perfect records. The technologies we’ve chosen mix mature but well maintained frameworks like Django, with modern web-first and api-first front ends like GraphQL, NextJS, and Chakra. We use a little Golang sparingly in our backend to ensure that when we interact with financial services, we do so with statically compiled, strongly typed, and strictly limited and reviewed code.

You can read all about it in our linked blog post.

See more

This website was originally written in Yii as PHP was my main language back then. After learning Django, I realized just how quickly you could build a web app with less lines. So I migrated my website to Django in a week or two and managed to cut down the lines of code by half. Some of the lines saving came from the models, the views, and the expressiveness of Python. Django requires like config for the models and they provide many generic views that abstracts away common patterns.

See more

I am planning to develop project management system SAAS based. Can any one help me with selection of platforms from Django or Laravel and for database MongoDB or Firebase/Firestore or MySql? On front end I am going to use Quasar Framework (VueJS). Note : project will be Webapp, Mobile app and desktop app.

See more
Shiqi Lin
Software Developer at BigClarity · | 3 upvotes · 211K views

We will use Django to set up our backend and Django REST Framework (DRF) for our API creation. The easiness of performing development tasks (eg. user authentication, URL routing, and schema migration) attracts our attention. Also, Django with PostgreSQL provides many benefits: 1. Some data types in Django will only work with PostgreSQL; 2. Django offers django.contrib.postgres to operate on PostgreSQL; 3. Django supports many features of PostgreSQL. Moreover, Django is compatible with Redis.

See more
Hampton Catlin
VP of Engineering at Rent The Runway · | 7 upvotes · 420.5K views

Starting a new company in 2020, with a whole new stack, is a really interesting opportunity for me to look back over the last 20 years of my career with web software and make the right decision for my company.

And, I went with the most radical decision– which is to ignore "sexy" / "hype" technologies almost entirely, and go back to a stack that I first used over 15 years ago.

For my purposes, we are building a video streaming platform, where I wanted rapid customer-facing feature development, high testability, simple scaling, and ease of hiring great, experienced talent. To be clear, our web platform is NOT responsible for handling the actual bits and bytes of the video itself, that's an entirely different stack. It simply needs to manage the business rules and the customers experience of the video content.

I reviewed a lot of different technologies, but none of them seemed to fit the bill as well as Rails did! The hype train had long left the station with Rails, and the community is a little more sparse than it was previously. And, to be honest, Ruby was the language that was easiest for developers, but I find that most languages out there have adopted many of it's innovations for ease of use – or at least corrected their own.

Even with all of that, Rails still seems like the best framework for developing web applications that are no more complex than they need to be. And that's key to me, because it's very easy to go use React and Redux and GraphQL and a whole host of AWS Lamba's to power my blog... but you simply don't actually NEED that.

There are two choices I made in our stack that were new for me personally, and very different than what I would have chosen even 5 years ago.

1) Postgres - I decided to switch from MySql to Postgres for this project. I wanted to use UUID's instead of numeric primary keys, and knew I'd have a couple places where better JSON/object support would be key. Mysql remains far more popular, but almost every developer I respect has switched and preferred Postgres with a strong passion. It's not "sexy" but it's considered "better".

2) Stimulus.js - This was definitely the biggest and wildest choice to make. Stimulus is a Javascript framework by my old friend Sam Stephenson (Prototype.js, rbenv, turbolinks) and DHH, and it is a sort of radical declaration that your Javascript in the browser can be both powerful and modern AND simple. It leans heavily on the belief that HTML-is-good and that data-* attributes are good. It focuses on the actions and interactions and not on the rendering aspects. It took me a while to wrap my head around, and I still have to remind myself, that server-side-HTML is how you solve many problems with this stack, and avoid trying to re-render things just in the browser. So far, I'm happy with this choice, but it is definitely a radical departure from the current trends.

See more
Chose
RailsRails
over
DjangoDjango

I have used both the tools . Both of them are super awesome , very reliable and their learning curve is also super easy. But, the reason I choose Ruby on Rails over Django is the fact that the dependency injection is super easy in Rails than Django. What I mean is the fact that, Django requires a lot of import statement to do a lot of work, which remembering is not so easy and even after that you may need to write a lot of code. But Ruby on Rails uses gem to add addition feature or dependency in the project. Which requires just copying the gem statement from github and pasting it in the Gemfile, then running bundle install(these days just bundle works super fine). And there you are with the new feature in your app. You can see this with the example of Authentication, where in Django you require several steps like adding class based views and many more, but in rails it's just as easy as installing the 'devise' gem . And if you want to make it beautiful use bootstrap_template gem to make it look prettier. Now with Rails 6 , Rails is a total developer's fervent friend because it has come up with features like Action Mail and Action Text.

See more
washie mugo
Chose
DjangoDjango
over
LaravelLaravel

i find python quite resourceful. given the bulk of libraries that python has and the trends of the tech i find django which runs on python to be the framework of choice to the upcoming web services and application. Laravel on the other hand which is powered by PHP is also quite resourceful and great for startups and common web applications.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Django
Pros of .NET
Pros of Rails
  • 669
    Rapid development
  • 486
    Open source
  • 423
    Great community
  • 378
    Easy to learn
  • 275
    Mvc
  • 231
    Beautiful code
  • 222
    Elegant
  • 205
    Free
  • 202
    Great packages
  • 193
    Great libraries
  • 78
    Restful
  • 78
    Comes with auth and crud admin panel
  • 77
    Powerful
  • 74
    Great documentation
  • 70
    Great for web
  • 56
    Python
  • 42
    Great orm
  • 40
    Great for api
  • 31
    All included
  • 27
    Fast
  • 24
    Web Apps
  • 22
    Easy setup
  • 22
    Clean
  • 20
    Used by top startups
  • 19
    Sexy
  • 18
    ORM
  • 14
    The Django community
  • 14
    Convention over configuration
  • 13
    Allows for very rapid development with great libraries
  • 11
    King of backend world
  • 10
    Great MVC and templating engine
  • 9
    Full stack
  • 7
    Batteries included
  • 7
    Its elegant and practical
  • 7
    Mvt
  • 7
    Fast prototyping
  • 6
    Very quick to get something up and running
  • 6
    Easy to develop end to end AI Models
  • 6
    Cross-Platform
  • 6
    Have not found anything that it can't do
  • 5
    Zero code burden to change databases
  • 5
    Easy Structure , useful inbuilt library
  • 5
    Python community
  • 4
    Many libraries
  • 4
    Modular
  • 4
    Easy to use
  • 4
    Easy
  • 4
    Map
  • 4
    Easy to change database manager
  • 4
    Great peformance
  • 3
    Full-Text Search
  • 3
    Just the right level of abstraction
  • 3
    Scaffold
  • 1
    Great default admin panel
  • 1
    Fastapi
  • 1
    Scalable
  • 1
    Built in common security
  • 1
    Node js
  • 1
    Gigante ta
  • 0
    Rails
  • 271
    Tight integration with visual studio
  • 261
    Stable code
  • 189
    Great community
  • 182
    Reliable and strongly typed server side language.
  • 140
    Microsoft
  • 119
    Fantastic documentation
  • 89
    Great 3rd party libraries
  • 80
    Speedy
  • 71
    Great azure integration
  • 63
    Great support
  • 34
    Highly productive
  • 34
    C#
  • 34
    Linq
  • 31
    High Performance
  • 28
    Great programming languages (C#, VB)
  • 25
    Open source
  • 19
    Powerful Web application framework (ASP.NET MVC)
  • 16
    Clean markup with razor
  • 16
    Fast
  • 15
    Powerful ORM (EntityFramework)
  • 13
    Dependency injection
  • 10
    Constantly improving to keep up with new trends
  • 10
    Visual studio + Resharper = <3
  • 9
    High-Performance
  • 8
    Security
  • 8
    TFS
  • 7
    Huge ecosystem and communities
  • 7
    Integrated and Reliable
  • 7
    Job opportunities
  • 6
    Light-weight
  • 6
    Lovely
  • 5
    Asynchrony
  • 5
    Variations
  • 5
    {get; set;}
  • 4
    Concurrent
  • 4
    Support and SImplicity
  • 4
    Default Debuging tools
  • 4
    Useful IoC
  • 4
    Scaffolding
  • 4
    Entity framework
  • 3
    Blazor
  • 2
    F♯
  • 2
    Nuget package manager
  • 856
    Rapid development
  • 652
    Great gems
  • 606
    Great community
  • 484
    Convention over configuration
  • 417
    Mvc
  • 348
    Great for web
  • 343
    Beautiful code
  • 310
    Open source
  • 270
    Great libraries
  • 261
    Active record
  • 108
    Elegant
  • 90
    Easy to learn
  • 88
    Easy Database Migrations
  • 82
    Makes you happy
  • 75
    Free
  • 62
    Great routing
  • 54
    Has everything you need to get the job done
  • 41
    Great Data Modeling
  • 38
    MVC - Easy to start on
  • 38
    Beautiful
  • 35
    Easy setup
  • 26
    Great caching
  • 25
    Ultra rapid development time
  • 22
    It's super easy
  • 17
    Great Resources
  • 16
    Easy to build mockups that work
  • 14
    Less Boilerplate
  • 7
    Developer Friendly
  • 7
    API Development
  • 6
    Great documentation
  • 5
    Easy REST API creation
  • 5
    Quick
  • 4
    Intuitive
  • 4
    Great language
  • 4
    Haml and sass
  • 4
    Easy to learn, use, improvise and update
  • 2
    Metaprogramming
  • 2
    It works
  • 2
    Jet packs come standard
  • 2
    Easy and fast
  • 2
    Legacy
  • 1
    It's intuitive
  • 1
    Convention over configuration
  • 1
    Easy Testing
  • 1
    Cancan

Sign up to add or upvote prosMake informed product decisions

Cons of Django
Cons of .NET
Cons of Rails
  • 26
    Underpowered templating
  • 22
    Autoreload restarts whole server
  • 22
    Underpowered ORM
  • 15
    URL dispatcher ignores HTTP method
  • 10
    Internal subcomponents coupling
  • 8
    Not nodejs
  • 8
    Configuration hell
  • 7
    Admin
  • 5
    Not as clean and nice documentation like Laravel
  • 4
    Python
  • 3
    Not typed
  • 3
    Bloated admin panel included
  • 2
    Overwhelming folder structure
  • 2
    InEffective Multithreading
  • 1
    Not type safe
  • 13
    C#
  • 12
    Too expensive to deploy and maintain
  • 8
    Microsoft dependable systems
  • 8
    Microsoft itself
  • 5
    Hard learning curve
  • 3
    Tight integration with visual studio
  • 3
    Not have a full fledged visual studio for linux
  • 1
    Microsoft itself 🤡🥲
  • 24
    Too much "magic" (hidden behavior)
  • 14
    Poor raw performance
  • 12
    Asset system is too primitive and outdated
  • 6
    Heavy use of mixins
  • 6
    Bloat in models
  • 4
    Very Very slow

Sign up to add or upvote consMake informed product decisions

What is Django?

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.

What is .NET?

.NET is a general purpose development platform. With .NET, you can use multiple languages, editors, and libraries to build native applications for web, mobile, desktop, gaming, and IoT for Windows, macOS, Linux, Android, and more.

What is Rails?

Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Django?
What companies use .NET?
What companies use Rails?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Django?
What tools integrate with .NET?
What tools integrate with Rails?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Git.NETCloudBees+3
6
1064
Jun 6 2019 at 5:11PM

AppSignal

RedisRubyKafka+9
15
1634
GitHubDockerReact+17
40
36156
GitHubPythonReact+42
49
40690
GitHubPythonNode.js+47
54
72279
What are some alternatives to Django, .NET, and Rails?
Flask
Flask is intended for getting started very quickly and was developed with best intentions in mind.
Node.js
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
Laravel
It is a web application framework with expressive, elegant syntax. It attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching.
PHP
Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.
WordPress
The core software is built by hundreds of community volunteers, and when you’re ready for more there are thousands of plugins and themes available to transform your site into almost anything you can imagine. Over 60 million people have chosen WordPress to power the place on the web they call “home” — we’d love you to join the family.
See all alternatives