This question's answers are a community effort. Edit existing answers to improve this post. It is not currently accepting new answers or interactions.
For a developer with a Java background, I am interested in exploring software development using the ASP.NET tools/platform as well.
Java web applications (.jsp and servlets) can run on many server platforms.
Question: Will a .NET web application be able to run in a Linux based server? Considering the scenario of not being able to use a Windows server for hosting a web app.
So I know this is an older question but I think it could stand an updated answer.
Microsoft has officially released asp.net vnext and its open source and deploy-able to both Linux and Mac. Its all still pretty new but does rely on the latest builds of mono and thus currently needs you to compile the mono-framework but in time I suspect that it will be easier to access as various linux distros release updated versions of mono. This is a how to setup guide
This information may be somewhat volatile and with updates is due to change.
Update ASP.NET CORE 11/10/2017
asp.net vnext is now known as asp.net core.
asp.net core is being treated as a high priority in Microsoft due in part to its use with microservice architecture and docker and container technologies
It has become much more compatible with existing .net libraries due to .net standard 2.0.
It performs well when compared to other technology stacks such as go and node.js
It depends what specific .NET technologies you're using. The Mono Project provides an Apache module (mod_mono) for running ASP.NET sites, and from what I gather it works well.
Mono doesn't support all the .NET APIs, though - notably WPF (and possibly WCF too, I can't remember) - but it does provide good support for much else of the framework.
If you're starting from scratch and particularly want to target non-Windows servers, then ensuring your project works with Mono would be a good goal to aim for. However, if you need particular APIs or language features that are not supported by Mono, then you will need to use a Windows server for deployment. It's a design-time/architectural choice that should make up front.
You might want to consider this guide that helps Windows developers port their code to Mono/Linux:
Guide: Porting ASP.NET Applications - Mono
I can speak from experience. Even if your ASP.net website only uses .NET libraries supported by Mono you are going to have a hard time getting it to run if its anything beyond Hello World.
You won't have to re-write much code but you will spend hours/days/weeks dealing with little issues with mod_mono/xsp/apache configuration and file permissions and error handling and all the little things that go into a large website. (Be prepared to spend a lot of time asking questions on serverfault :) )
The problem is that a lot of people don't use Mono for ASP.net websites and so there aren't as many people reporting bugs so a lot of things that are minor bugs go un-fixed for a long time.
Now you can publish ASP.NET 5 app to Docker on Linux with Visual Studio. See the below post from Scott Haselman
http://www.hanselman.com/blog/PublishingAnASPNET5AppToDockerOnLinuxWithVisualStudio.aspx
Since the technologies evolve and this question is top ranked in google, we need to include beyond the mono the new asp.net core, which is a complete rewrite of the asp.net to run for production in Linux and Windows and for development for Linux, Windows and Mac:
You can develop and run your ASP.NET Core apps cross-platform on
Windows, Mac and Linux. ASP.NET Core is open source at GitHub.
Yes we can. get familiar with Mono Project and read this article to get started.
For ASP.NET on Linux, check out Mono.
That said, thousands of sites run on Windows Server without any issues. A poorly-configured server with any OS will be vulnerable; Linux won't save you from a poor admin.
So I guess my "best practice" for deplying an ASP.NET app would be to use Windows Server 2008 (likely Web edition). And hire a good administrator.
You can use Mono to run ASP.NET applications on Apache/Linux, however it has a limited subset of what you can do under Windows. As for "they" saying Windows is more vulnerable to attack - it's not true. IIS has had less security problems over the last couple of years that Apache, but in either case it's all down to the administration of the boxes - both OSes can be easily secured. These days the attack points are not the OS or web server software, but the applications themselves.
dotnet is the official home of .NET on GitHub. It's a great starting point to find many .NET OSS projects from Microsoft and the community, including many that are part of the .NET Foundation.
This may be a great start to support Linux.
Now a days .Net is run in multiple platforms,like linux ,Mac os etc.
but mono is not fully platform independent ,Because to deploy .NET in another OS required
third party software.so it is not like java platform independent.
Mono is running in different platform ,because of JIT is there in different os.
Mono is not fully success in moonlight(silver light in .NET) .Not only Research is going on.
Mono uses XSP2 server or apache . some of the big companies are using this project,Some of the robotic project are also running on mono.
For more details http://www.mono-project.com/Main_Page.
There is the Mono Project from Novell that will allow you to run ASP.Net on Apache.
http://www.mono-project.com/Main_Page
The Mono project is your best option. However, it has a lot of pitfalls (like incomplete API support in some areas), and it's legally gray (people like Richard Stallman have derided the use of Mono because of the possibility of Microsoft coming down on Mono by using its patent rights, but that's another story).
Anyway, Apache supports .NET/Mono through a module, but the last time I checked the version supplied with Debian, it gave Perl language support only; I can't say if it's changed since, perhaps someone else can correct me there.
I moved some Classic ASP sites from Windows Server 2003-32 to 2008-64.
It required few adjustments. All is running smoothly.
Now I'm moving these same Classic ASP sites to Windows Server 2012-64.
Are there any big differences [in respect to running Classic ASP] between 2008 and 2012 I need to know about?
It seems like 2008 maintained much backwards compatibility with Classic ASP and I want to make sure 2012 still supports Classic ASP as well.
Primarily I'm looking for suggestions as to any IIS settings I need to change. Luckily, I'm not depending on any 3rd party components. Note: I'm using CLSupload, which is merely some functions that rely on Microsoft ActiveX Data Objects 2.5 Library 2.5.
I consider to use ASP.NET for developing a real-time appication that will be shown on a browser (IE, FF, Chrome etc.).
I'm wondering what are the system requirements for the server side where the application will be deployed?
Do I have to use IIS or I'm free to choose any web server I want? If IIS only - does it part of any Windows installation (so users do not have to pay extra charge for that?)
Do I have to install .NET Framework?
anything else?
Thank you!
You don't have to use IIS, you could use Apache, nginx, or xsp, but doing so means you have to use mono which is an open source version of the .NET framework, it's a couple of versions behind the real thing, you can find out more info here: http://www.mono-project.com/ASP.NET
If you choose to use Windows/IIS, then IIS is a feature of Windows that can be installed free of charge. You will need to install the .NET framework in order to host an ASP.NET web application, like IIS, the .NET framework and ASP.NET are features of Windows Server 2008 and above that can be installed/uninstalled whenever you like, for free.
We have a legacy system that uses both classic ASP and VB6/COM+, and are planning a migration to the .NET stack.
We are attempting to develop a migration schedule, and one key driving point will be "when will our old stuff stop working?".
For VB6/COM+, Microsoft has stated that it has no plans to include the VB6 runtime in versions of Windows after Windows 7 (yes I am aware that this is open to interpretation).
I have yet to find a similar statement for classic ASP. I have seen people reference the Microsoft end-of-life schedule for Windows 2008 Server R2 (which is sometime in 2018) and infer that:
(a) since classic ASP runs on Win2008R2 and
(b) Win2008R2 is good until 2018 then
(c) classic ASP is good until 2018.
Not sure I buy that, especially because we have contractual obligations to support new versions of Windows xx months after they come out, so staying on Win2008R2 as a solution is not an option.
Can anyone point me to something from Microsoft concerning end-of-life for classic ASP?
It will stay with us for some more years to come, according to this blog post:
Here's some interesting news from ScottGu and team. I was wondering what the lifecycle for ASP "Classic" was. I looked on the Microsoft Lifecycle page and didn't see it. I was fortunate enough to talk to ScottGu as well as Rich Ersek and was told:
Classic ASP is actually very much alive. It will ship again with Windows Vista and Windows Longhorn Server – so will be supported at least 10 years from that ship date. - ScottGu
and
Asp.DLL is part of VISTA so the runtime will continue to be supported based on the Vista support lifecycle.
All classic ASP development tools (i.e., Visual Interdev) are now in their extended support period and we will not be updating tools for classic ASP.
To get the best tooling/platform option ASP.NET is the way to go. - Rich Ersek
Windows Vista final release date as far as I've found is January 30, 2007 so it means classic ASP will be supported in new versions at least until 2017 and probably much further.
Scott Guthrie is Microsoft's Corporate Vice President, Server & Tools Business so he knows what he's talking about.
Edit: Finally (January 30th 2012) - official confirmation that classic ASP is going to stay with us for long years, including Windows 8:
The next major version of Internet Information Services (IIS) will be shipped as part of the Windows 8 operating system. The use of ASP pages will be supported on Windows 8 for a minimum of 10 years from the Windows 8 release date.
Here is a technet article on how to install on Windows Server 2012, so it should be supported for a long time...
http://technet.microsoft.com/en-us/library/hh831387
if you scroll to the properties section of that article it says it applies to Microsoft Active Server Pages 4.0. it doesn't say classic asp, or asp 1.0, or asp 1.1.
http://support.microsoft.com/kb/2669020
I have a web solution which uses ASP.NET AJAX Controls and has been running on Windows Server 2008 32 bit machine very well.
Now the server admins want to move this web to a new Windows Server 2008 64 bit machine, I was just wondering if ASP.NET AJAX is compatiable to this system, I can't seem to find anything about this issue by googling (Maybe I wasn't asking the right questions :)). Do I have to build the .dll's specifically for a 64 bit machine ? Is AJAX included for machines with .NET framework 3.0 installed (my solution is in .NET 3.0) ?
No, you don't have to build a special version for the 64-bit machine, that's the beauty of managed code as it isn't compiled for a specific platform until it is actually being run by the VM.
Also, AJAX 3.5 is included in .NET Framework 3.5, so you might want to install that.
Here's a blog post covering this issue.