IIS as a web application server is perfectly suited for .net, .net core, asp.net applications. Our core ESB runs on IIS and has hundreds of gigabytes of data moved through it every day spread across millions of transactions. We have other mission critical applications that deliver our results to patients and doctors relying on IIS web application servers. If you stay in the Microsoft development stack, IIS is a top tier, efficient, and reliable web server.
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.
A big advantage that we use all the time is reviewing the logs that automatically get generated in IIS. It has helped us troubleshoot various problems in our applications over the years.
IIS integrates really well with Visual Studio and TFS. We are able to quickly deploy new applications and changes to applications when requested by the business.
IIS has proven that it is easy to configure and maintain with minimal effort.
.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.
We have no intention to replace all applications running on top of the IIS platform. Not all applications support other platforms and not all support staff are skilled in Linux/Apache platform support. Whereas IIS may not be the best performing or most secure web platform available, for the aforementioned reasons, it is impossible not to continue use of this product.
In general, Microsoft IIS is an alright product. It comes natively with Windows Server. It has good enough GUI to set things up & tweak things around. Once properly setup, it runs stably enough. And with enough Powershell magic, having a CI/CD pipeline to automatically deploy a new version of the application is doable.
.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.
ARR (application request routing) in Microsoft IIS Server enables the web-admins to increase the web app reliability and availability through the rule based routing and load balancing of HTTP requests which in turn provides highly available server. IIS 7.0 Manager also provides kernel as well as user mode caching for faster performance and in case if the server fails, the IIS server has good amount of details logged in its log files which help understand and debug the cause quickly. Load balancing facilitates IIS server to fight against availability issues.
In my experience, I have never had significant issues with IIS performance. Sometimes I've experienced issues with loading time, but it is mostly related to the web site code. However Amazon, Microsoft and Google providing free cloud services with very limited resources, and in that scenario, "heavy" websites on IIS could be the issue. In other situations - performance is good.
As mentioned earlier there is so much documentation or guides or stack overflow questions out there that someone will have faced the same or very similar scenario to what you are going through that you will almost certainly find a solution to what you are after.
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.
On Windows, Microsoft IIS is easier to implement and maintain than Apache web service. Normally if you need to host PHP or other apache native content on a Windows server, it's recommended to use WAMP or equivalent software to simplify the installation, administration, and configuration of resources. However, you can use Microsoft IIS and other web services on the same server, taking care to keep separate folders and port usage for each system.
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.
Microsoft IIS Server is scalable if the underlying server configuration is done correctly. Use x64 edition v/s 32bit and using 32bit mode application pools are some of the tweaks to be done to make the IIS server scalable. There are too many small configurations need to be carried out in order to make a highly scalable IIS server hence not giving full score in this area.
Speed of development. You don't need to be an expert to expose your website through some DNS
Robust, there has never been any downtime because of IIS itself.
The ease of use can have (and has had) some negative impact because it's too easy to implement something, and then forget. When a server is taken down, those unthoughtful implementations come to light the hard way.
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.