What is our primary use case?
I am mainly developing backend solutions, microservices, and monolithic web backends with
ASP.NET.
I tried Angular and Blazor; I worked with Angular a long time ago, but I worked with a small project using Blazor and .NET MVC quite a while ago. I think Blazor has a strong future with WebAssembly and related technologies, but I am not primarily a front-end developer.
ASP.NET has become an old term; now it is called .NET simply with the .NET 9 and .NET 10 versions.
I have been developing ASP.NET for years, and I have also been developing with Java for years.
What is most valuable?
The ability to customize ASP.NET is valuable, with a great community and the way the framework is built around customizable components, configurations, dependency injection, security, and excellent documentation. Entity
Framework is a really good ORM compared to other ORMs such as Hibernate in Java or
Liquibase, and it stands at a higher level as a very good ORM.
The data flow in ASP.NET MVC was easy to understand; we had the views, the views use models, and models get fetched from the controllers. It was straightforward for everyone on the project to work with, and we had standards in place; we followed the same flow, which really helped us maintain structure and organization in the codebase.
I would rate this ten out of ten. I work with Spring Framework, and comparing the three of them, I think .NET is ten out of ten with excellent support for web services.
What needs improvement?
With the Aspire project, the community is working well on third-party tools for integration, but as a framework, it is solid for almost all normal use cases. For some advanced use cases, I do not see an inconvenience or something that really needs to be improved; I think overall, it is complete and a well-rounded framework.
Regarding minor improvements for ASP.NET, the cache they have been working on in the latest version is noteworthy; the hybrid cache extensions demonstrate good work around cache, distributed cache, and memory. The ORM is solid, and the support for REST services is also solid for what we use quite often every day and even in some edge cases. I do not have in mind something that really bothered me while using .NET. The CLI support for running migrations and creating projects is good.
.NET is free and open source. One last thing that needs to be improved is the Azure developer experience, the AZD commands, and how to deploy Aspire applications using different methods, especially on Kubernetes.
What do I think about the scalability of the solution?
Scalability depends on the developers who write code. If they write well and the framework provides the tools, I think scalability depends on your code and how you structure things. A framework may be a really good tool, but in the end, what scales is your code and how you structure things.
How are customer service and support?
I did not have a chance to or a situation where I needed to talk to Microsoft technical support directly.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
I have been developing applications, and at my previous job, we tried
SonarQube. After reading many articles about the false positives that
SonarQube generates, I am considering
DeepSource for my current position at my new job.
I did not use it previously, but I had some experience with it at my previous work experience. We are establishing a new solution for a static code analysis tool, and I think we are going to pick DeepSource.
How was the initial setup?
Setup is straightforward. You install the SDK and create your project depending on your project structure, whether it is monolithic or microservices. We almost always have the main solution, then the src and test folders. We have cross-service integration tests, unit tests, architecture tests, and similar components. We structure the tests and put tests next to the microservice if we are dealing with microservice architecture, so it really depends on what your application architecture overall is.
Which other solutions did I evaluate?
I would have to switch the framework. I do not have loyalty to a certain organization and framework; I just want a reliable tool because the framework is not a business, just a tool to build solutions for customers and earn money in the end. I just need a tool that I can rely on, and if .NET was not the right tool to do so, I would switch it off.
What other advice do I have?
I have experience developing Java applications and .NET applications. I tried
Azure and
AWS, so I have quite a bit of experience.
I am mainly a .NET developer. I work as a consultant and also as a freelancer, but I am primarily a .NET developer.
The official documentation from Microsoft is very good.
Blazor was very easy to get started with. Since I am not a front-end developer, using Blazor I was able to deploy a beautiful UI to the customer in a small project with good components. I used another tool called MudBlazor, which is a framework built on top of Blazor components. MudBlazor is very good and easy to use, and I deployed multiple screens in a few days with a really good UI, so Blazor was a great framework to use.
I have used the ASP.NET MVC architecture.
ASP.NET is solid overall. I rate this review nine out of ten.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Microsoft Azure
Disclosure: My company does not have a business relationship with this vendor other than being a customer.