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.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I'm a diehard mac lover but my day to day work is shifting towards the .net stack, specifically c#, asp.net mvc, entity framework, multiple project class libraries, ms test, sql server, deployment to azure.
In light of the recent cross platform advancements in .net, what issues (if any) would I face now and later on as I get deeper into development? Is anyone else doing this?
I've installed VSCode (https://code.visualstudio.com) and am able to build and run an asp.net mvc web app using coreclr. That seems to work very well and is closer to the web development experience I'm used to on a mac. I understand I also get vs.net style debugging with VSCode but I've yet to test that.
SQL Server I realise will be a problem, I'm considering either running it in a VM or using a cloud based dev instance.
I've also trialed running full vs.net in a VM but on my 13" MBP i5 8GB it gets a tiny bit sluggish at times under VMWare Fusion, so not ideal. VSCode also gives me a dev experience much closer to what I've been doing previously from my mac (simple text editor, terminal etc) so I prefer that anyway.
So, can I do this? is cross platform .net ready for mid sized asp.net apps? what problems may I run into? I appreciate any feedback.
Since you've already installed VS Code on your Mac, you already know that you can work on ASP.NET projects natively on your Mac. Just keep in mind you can run the cross-platform .NET Core 5 on your Mac, but not the full .NET Framework. So, if you need to work on any projects that need the full framework (such as .NET 4.x), you will need to use Windows. It doesn't matter if it's small, midsized or large enterprise apps.
As you suggested, you can run Windows on your Mac. But instead of VMWare, I would suggest Parallels instead. Running Windows on your Mac will allow you to run the full Visual Studio with the full .NET framework if that's what you need. It would also let you run SQL Server on Windows inside your Mac.
Hope that helps! :)
I installed MonoDevelop and want to use its design view editor. After a bit of browsing I came accross ASP.NET Visual Designer which is supposed to be a part of the IDE. I used the Ubuntu Software Center to install the MonoDevelop application, so I guess it should have downloaded the latest version.
Here is the extract from the mono develop website.
AspNetEdit does not aim to be a complete IDE. After being developed as
a proof-of-concept standalone editor, it now has been integrated into
MonoDevelop
How can I switch to the designer view?
After opening the IDE I am unable to find the designer view anywhere. Do I need to install some kind of a add-in for this?
Monodevelop lacks a lot on this area. A lot of developers, like me, don't use visual designer a lot but I consider important for some people. MD don't have it and also html/css editor is very limited right now but improvements are planned (a lot of cool stuff).
MD as been evolving fast these days but more focused on MonoTouch.
For now you could use and external html/css editor for now. I still use Visual Studio 2010 for this.
AspNetEdit can install by Add-ins from http://mjhutchinson.com/files/md/main.mrep
Will VS2008 be able to develop ASP.NET 4.0 applications when it is released?
I would hate to have to go buy VS2010 just for a couple of features I'm looking forward two like Dynamic Data and session profiles.
You can develop .NET applications without Visual Studio at all, so you could use Visual Studio 2008 as a helpful tool in that regard but looking at the previous Visual Studio releases, it's very unlikely that you'll get first class support for .NET 4.0 features. Personally, I think the short answer to your question is "No."
By the way, ASP.NET Dynamic Data is already available in .NET Framework 3.5 SP1 and VS2008 supports it.
No, you will require Visual Studio 2010.
It may in theory be possible to do some hacks with MSBuild like there was for .NET 1.1 from VS2005 but it'll be completely unsupported, your intellisense wont work right, etc.
You don't need to buy VS2010, you can just download the free Express versions, likw with previous releases.
Visual studio designer for asp.net applications is generally very slow and i would like to know if there are any tips or guidelines for settings in order to get better.
The problem is usually noticed when i try to make a change in design or source view, especially in source view it may get non-responding for a couple of seconds.
I experienced a very similar issue when I first installed Visual Studio Team System 2008 Development Edition. I have issues with VS design view and could not switch to "Split View"
Reference the following ASP.NET thread link to see if any of this information helps..(Warning: It is quite long).
Do you notice any difference when starting in Safe Mode?
devenv.exe /SafeMode
I assume that you have already installed the hotfix for VS2008 ASP.Net Designer performance issues? Link