Intro
In the other post I have rapid tested 10 frameworks and settled on 2: Symfony and ASP.Net Core.
I will check the features of each and see how it compares to the other one. If documentation is not approachable to feature discovery I will probably not include it. I also won’t go into detailed features. Routing is a feature. Named routes is details. I will exclude the ones I am not interested in. Ok, let’s go.
Command line tool
Simfony
Symfony has excellent command line tool. I cannot even describe what it has. Check the docs.
List of commands is so big that php bin/console list took like 10 seconds to list them all. Debug, Doctrine, mailer, generators you name it. +
Asp.net core
Command line tool is called dotnet. It’s more of a all around tool more than specifically designed for web development. We can install extra tools, but it’s not in your face like Symfony’s console and probably need to search for them, but who wants to do that? I am not paid to do it so I’d rather not.
Symfony 1 : Asp 0
Template engine
Symfony
It uses Twig. This is stringly template engine and don’t have much to say about it.
Asp
It uses Razor templates. It’s statically typed and allows to use C#. I like that. +
Symfony 1 : Asp 1
ORM
Symfony
Uses Doctrine ORM. Looks like lots of string to me. It is integrated into Symfony. I don’t know much about it. Bulk upsert didn’t provide obvious result in google search.
Asp
Uses Entity Framework Core. It’s not as integrated in framework, no automatic fetching. We can use LINQ for querying which is a killer feature. Bulk upsert provides obvious result. +
Symfony 1 : Asp 2
Forms
Symfony
Has full on forms component. I’ve heard that’s the biggest components and just the documentation for forms is bigger than the whole Laravel documentation. It can be reusable to use in many views. It has form events. +
Asp
No form component. There is automatic model binding via tag helpers.
Symfony 2: Asp 2
Errors/ Debugging
Symfony
Has nicer error pages. Debug toolbar. +
Asp
Ugly error pages. No debug toolbar
Symfony 3 : Asp 2
Mailer
Symfony
It has mailer component. It can use templates for email. +
Asp
GPT says there is not native mailer component. Tutorials are using MailKit.
Symfony 4 : Asp 2
Validation
Symfony
It has validation based on JSR303 Bean Validation specification. Lot of validation, even for Doctrine. It has more validation constraints than Asp out of the box. +
Asp
Also has validation. Less constraints than Symfony. People use library FluentValidation. It has remote validation. Action parameters validation. +
Symfony 5 : Asp 3
Messaging
Symfony
It has messenger component +
Asp
Doesn’t have
Symfony 6 : Asp 3
Scheduling
Symfony
It has scheduler +
Asp
Doesn’t have scheduler. Use Hangfire or Quarts.NET
Symfony 7 : Asp 3
Notifications
Symfony
Asp
No
Symfony 8 : Asp 3
Storage
Symfony
No -
Asp
No -
If you don’t have something essential like managing file uploads you both deserve a minus Symfony 6 : Asp 2
Documentation and Learning Resources
Symfony
Start page. Documentation Book Symfonycast Everything is designed to lead to to the learning path. Me personally documentation, I’ve enjoyed the most. +
Asp
Start Page Documentation. This documentation is for Asp.Net Core MVC. General documentation for Asp.Net Core is here. It’s mixed with Razor Pages, Blazor etc. And then there is general part which applies to all of Asp.Net Core. This is the Microsoft Learning Centre. After some clicking we can find Asp.Net Core Learning Path. It’s obvious Microsoft has a lot of products and Asp.Net Core is not their sole focus. It’s .NET framework and then whatever they build on top of it.
Symfony 7 : Asp 3
Final word
Symfony seems much more oriented around web development. Asp.Net Core is more of a web development addition to the .NET framework. It gives great foundation to build everything you need, but you have to build it. As a hobby developer I’d rather have ready made solutions even if they are opinionated, although for long term project non opinionated might be good. Symfony seems flexible enough, on the first look, to provide opinionated start and enough flexibility to change things down the road.
Asp.Net Core does have another framework built on top of it called ABP Framework which I tried to use, but it couldn’t create a project or I didn’t know how. It seems very opinionated and definitely oriented towards big serious companies. I am not the one, at the moment.
Symfony it is.