If you need to build anything from a quick-and-dirty GUI utility to a full-fledged desktop application, .NET is the way to go. It doesn't require extensive knowledge of the languages as Visual Studio is extremely helpful in its autocomplete, refactoring, and prompts, and lets you build out your solution easily without worrying about the details of [the] setup and boilerplate.
Red Hat JBoss Enterprise Application Platform (JBoss EAP) is well suited for deploying high transaction Java EE based applications. It supports many popular Java EE web-based frameworks such as Spring, Angular JS, jQuery Mobile, and Google Web Toolkit.
MOD_CLUSTER integration. JBoss EAP integrates pretty well with mod_cluster. This is an intelligent load balancer especially useful in highly clustered environments.
Supports enterprise-grade features such as high availability clustering, distributed caching, messaging etc.
Supports deployment in on-premise, virtual and hybrid cloud environments.
.NET is heavily Microsoft Windows oriented, and while .NET core tried to resolve that with MacOS and Linux support, .NET Core is still waiting for wider adoption.
While free for small projects, additional features for big projects can be a little expensive.
Can be resource-heavy upon deployment. We continuously have our more senior staff optimize the code of our junior developers for performance. Other languages are a little bit more forgiving in comparison.
Jboss CLI is a great tool but we had trouble using it to get values that are displayed on Jboss GUI. It also has limitations parsing the applications.xml files and we had to use a mix of jboss-cli and linux bash commands to automate certain application administrative tasks.
JBoss doesn't really provides performance tuning recommendations. It would have been nice if it could learn from the current demand vs current settings for things like connection pool, server configurations, garbage collection etc.
.NET frameworks are fantastic overall. There are no limitations to what you can accomplish with it. The most important part is that you'll have access to developer community support and that .NET is always being improved every month. Be it in web applications, back-end servers, or integrations, .NET enables developers to do it all.
As Microsoft Gold Partners, we do have access to a lot of additional information and support from Microsoft. Still, the availability of "open and free" documentation, community, and enthusiasts of the platform is vast. Added to that, the quality of resources provided for all the Microsoft ecosystem is very impressive.
If it was up to me, I'd rather use something like Node.js hands down. Things are simpler, there is no gigantic convoluted class hierarchy to learn like there is with .NET. Also Node is really fast and lightweight. I find .NET these days to be a totally solid product and it certainly has its place - but it seems a bit dated and boring to me now.
WebSphere Application Server is propriety and increases project cost. It is slightly complicated to learn when compared to Jboss EAP. These were the two main reasons why we chose Red Hat JBoss EAP over WebSphere Application Server. Also, JBoss EAP is light weight and requires less server resource
We are slowly switching from a dying programming language to .NET because it was too expensive to hire developers for the old programming language. There are way more .NET developers around and an amazing community which has allowed us to keep our costs low.
Our development time has been greatly reduced because now we're not developing applications for each OS platform. We do it once and deploy accordingly.
.NET Core has been a big mindshift in terms of how to program. The learning curve has been quite high for existing .NET developers.
Jboss EAP is easy to deploy and configure. This lead to lower cost and faster delivery.
Even though we have large number of machines running JBoss, we have only two Jboss Administrators. It doesn't requires too much administration and maintenance on daily basis and reduces number of administrators required for large implementations.