What is our primary use case?
My main use cases for Microsoft .NET Framework are not fixed or specific tasks. My job involves working on different dynamic projects. My experience is with workflows and custom workflow engines. I have been the architect in creating workflow engines for BPM software, Business Process Management, where they use an online process for any process running in the company, such as leave requests or employee exit requests. There are many products similar to Kissflow and Microsoft .NET Framework workflow engine.
I have created my own product in one of the companies where we had our own workflow engine. In this company where I'm working, I have worked with multiple products, including Microsoft .NET Framework Workflow Engine. I prepared POCs for that and worked with several other products, including Camunda, which is a Java-based product.
How has it helped my organization?
The role of Microsoft .NET Framework's Base Class Library in facilitating rapid application development in my organization is that the code is much richer in C# because its main competitor is Java. Both compile to bytecode and intermediate language IL code.
Regarding rapid application development framework, Microsoft .NET Framework does not provide any type of that. As an architect, whenever there is a project, I need to choose from other libraries such as ABP Framework and ASP.NET Zero framework. These are open source products that also provide paid versions. If I have to start a project today, I will go for ABP, which runs on top of Microsoft .NET Framework. With ABP.io, you can deploy your application with users, tenants, role-based authentication in one hour. Developing APIs, services, and GUIs are done easily. Tasks that might take three to four days with bare metal Microsoft .NET Framework can be completed in four to eight hours with ABP.io, depending on complexity.
What is most valuable?
Microsoft .NET Framework has two versions. One is legacy, called Microsoft .NET Framework, with its latest version being 4.8.1, where they are maintaining it for legacy products. Their paradigm shift is toward Microsoft .NET, sometimes referred to as Microsoft .NET Core. Microsoft .NET Framework runs only on Windows.
There are many cutting-edge features that have surpassed Java, including delegates, lambda expressions, and async calls. These features make it very easy to write multi-threaded applications and create more responsive applications using the async framework. For parallel tasks, this is exceptional. Microsoft .NET has achieved significant improvements in speed, surpassing other languages including Java.
Memory management is automated in Microsoft .NET Framework through the garbage collector. We implement IDisposable interface in classes to clean up memory and free resources when an instance is not in use. This includes memory, I/O devices, or any resources used by the application. Unlike C language, we cannot manage heap or stack directly in Microsoft .NET Framework as it is automated through the garbage collector.
What needs improvement?
Microsoft .NET Framework has already made significant improvements by becoming open source. Many developers are contributing to Microsoft .NET Framework, not just Microsoft itself. They have ported it to many platforms and allow a healthy ecosystem of open source tools.
They have moved from Visual SourceSafe to supporting Git with Microsoft Visual Studio. Their IDE, Visual Studio Code, is open source and multi-platform. There are many third-party tools available, including AI-based tools such as Cursor and Bolt, which are forks of Visual Studio Code. Based on my understanding, I don't have any suggestions for improvement as they are already doing an excellent job.
For how long have I used the solution?
I have been working with Microsoft .NET Framework since its inception around 2000 when Microsoft announced it. I started from the first version, working with Visual Basic and Visual C#. Now it has evolved into Microsoft .NET, which works on any platform including Linux and Mac.
What do I think about the stability of the solution?
In terms of stability, Microsoft .NET Framework servers have historically been more targeted by hackers and viruses compared to Linux, Unix, or Sun Solaris servers. This vulnerability might be due to greater familiarity with Windows products among hackers.
This vulnerability is inherently related to these products. Linux systems appear more difficult to target, possibly because fewer people have detailed knowledge of these systems. For instance, we once had a Linux server running smoothly for five years without physical maintenance, while Microsoft products occasionally face stability issues when compared to Linux, Unix, and Sun Solaris.
What do I think about the scalability of the solution?
Microsoft .NET Framework is a powerful framework for scalability. We can write applications and native code where needed, and if some features are not provided by the framework, we can write unsafe code that runs directly on the processor. The capabilities are unlimited, but developers and architects need knowledge about working with languages C or C++, and calling those libraries from C#.
Microsoft products excel in terms of scalability. SQL server clusters run effectively in complicated environments such as banks, handling tasks such as deleting millions of records. I would rate its scalability 10 out of 10.
How are customer service and support?
Technical support and service support are excellent because our company is a partner with Microsoft. We receive prompt support when working with ministries and banks. The support from Microsoft deserves a rating of 10 out of 10.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
I prefer working with Java-based products such as Spring Boot and Java Hibernate for persistence. I am working with Microsoft .NET Framework due to job requirements, but I prefer Java products.
How was the initial setup?
Deploying Microsoft .NET Framework is extremely straightforward. The wizard creates a package, and deployment is essentially copy and run. All dependencies can be compiled into one folder. We can also use Docker for deployment, making it even simpler.
What about the implementation team?
Deployment time varies depending on methods used. I write automated scripts that connect to servers, copy files, stop worker processes on IIS, deploy, and restart the cycle, taking approximately five minutes. Manual deployment is also straightforward. Database changes might require more time for script preparation, but application deployment is very simple, often just requiring copy and paste operations.
What other advice do I have?
The overall rating of 8 out of 10 for Microsoft .NET Framework reflects its performance and capabilities. The main reason for not giving a higher score is due to stability concerns when compared to other products.
Which deployment model are you using for this solution?
Hybrid Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?