How can I serve an ASP.NET application on a Linux Server? - asp.net

Is it possible? If so, please explain how to do it.

I think you are looking for mono.

You can run most ASP.Net applications on Linux using Mono:
http://www.mono-project.com/ASP.NET
Mono is an open source implementation of (most of) .Net

As other posters have noted, you can use Mono and Apache with mod_mono. I have no idea whether it's robust and feature-rich enough for your needs. (Mono's current implementation of WCF is only skeletal, for example.) So whether it's advisable depends on what you plan on doing. If other people's money is riding on your applications being robust, it's safest to just plonk some money down on a windows server and going full Microsoft.
Update: in the comments, you suggest that price is a concern. In the long run, what you pay for hosting is tiny compared to the costs involved in using inferior software. I'd recommend either using Windows hosting, or using a different development environment altogether if you have a choice. LAMP, Java, Ruby on Rails--each of these are perfectly fine choices, and I'm sure there are many others. But if you are constrained to using .NET for some reason, Microsoft is really the only choice right now for enterprise-quality ASP.NET.

I wouldn't try using Mono. You could use VMware or something but I would try go a different route. You can run a very basic ASP.NET site on Mono; but I mean very basic. If your site is non-trivial, I wouldn't recommend this approach.

It's possible to run ASP.NET on Linux. You should take a look at the Mono project, Mono has an implementation of ASP.NET and ASP.NET AJAX.

You need to use mono and XPS (which is the server that runs the ASP.NET framework on mono). There is a standalone version of XPS and one that works through Apache. That is the best way to serve the files on Linux.

It may be possible with the use of WINE (or something similar, Mono, thats it.) but you will require all the .NET framework so it may be a bit much to setup

Related

ActiveX on Linux using Mono?

Is there any way for ActiveX controls to work on Linux? I'd imagine the answer is no, but just want to be sure.
My company is considering a Linux port of a ASP.NET project (using Mono), but it uses ActiveX controls quite heavily, so we wonder if it's even feasible.
Sorry if the question is dumb!
Even if ActiveX were supported on Linux, you still should not use it, since it is rather alien (as in 'hard to maintain') on that environment.
My advice is to rewrite the entire project with AJAX or flash in such a manner that it will run in any browser on most any platform.
Mono is not ActiveX! Even if you could rewrite using client side mono for activeX, your code would only run if the client machine has a mono installation.
If you're forced to use some third-party ActiveX controls, you can't use them directly on Linux - they expect a certain runtime enviroment thats not trivial to provide (it could be done, but its not viable).
The best thing you can do is to write a small host-program, running in WINE, that loads the controls and provides an alternative interface to them via a IPC mechanism.
As a variation on gf's answer, you could run Mono within Wine on Linux. Mono has some COM Interop support, and Wine supports COM, so in theory this will work.
Whether you want to run Mono atop Wine atop Linux is another matter, as it increases the number of things that can break.

ASP.Net on Linux

I want to use ASP.Net on Linux because of license problems and costs. Can you compare its performance?
We coded a few asp.net applications and work well on windows server, can we migrate to linux + apache + mono without any changing? Framework version is 2.0.
You might be interested in this question:
Performance of ASP.NET in Mono(Linux) vs IIS(Window)
And here's the FAQ from mono on ASP.NET:
http://www.mono-project.com/FAQ:_ASP.NET
Last time I checked the port is not fully complete. Depending on how familiar you are with the language you may find that something is missing. Then you will deal with performance!
Well to run .Net on Linux you'll need Mono.
I don't really know about it's performance as I am not a big fan of .Net.
Also please reformat your question into something more formal.
'Coz' doesn't really make you look good.
You can take a look into this doc:
http://www.mono-project.com/FAQ:_ASP.NET
so you can check if all the stuff that you use in your app is implemented or not.
You can speed up things if you use mod_mono+apache.
I think you would need to give us more details. ASP.NET does not natively run on Linux. The only thing that I know of that can do this is Grasshopper. Given these details, and true answer could probably be provided

ASP.NET - Source control tool for .NET 3.5

I am going to develop my first application (4 members team).I am not aware of source control tool ( Visual
source safe,Tortoise SVN).
My .NET version is 3.5. What is the best source control tool ?
Is CruiseControl a source control tool ?
Definitely avoid Visual Source Safe.
Subversion is probably a safe choice, but you will have to elaborate about your situation (E.g. how big is your team?) to get more specific advice.
Another no vote for Visual Source Safe here.
Might be an idea to get familiar with subversion as - just as others mentioned - it's widely adopted, so might be useful in the future and simply works..oh and it's free too!
TortoiseSVN integrates into the windows explorer and is both easy to use and well documented so I would give it a try.
If it's a small project of yours and you don't want to worry about hosting, I would recommend signing up for a free account at something like beanstalk, to keep it safe, without any hassle.
But if it's your first ever project, it might just give you too many additional things to learn about, so you might want to put it aside for a while.
Try GIT, it's much lighter weight than svn
http://sourceforge.net/projects/gitextensions/
you can use a local repository for just checking in your own work (to keep a history, or to keep a working version before changing everything) Or you can connect to a central repository for enterprise source control.
The company where I work used to use the SVN, Tortoise, Ankh stack but we're using Git now. Plus I use it at home on my on play projects.
(quated part is no more important since you edited your post about team size)
If you are doing some small project on
your own, maybe you shouldn't use code
versioning at all because you probably
don't need it. Code versioning helps
you with central code storage,
multi-person development code merging
(several people working on the same
file and then commit changes) and code
branching to name the most important
ones.
If I were you, and I would be the only
person developing something simple, I
wouldn't use it, because it would also
be a bit of a time-overkill.
But otherwise source control doesn't address technology like .Net framework version. Code control only stores files (with history) and is able to merge text files. Written in whatever language possible.
If you are part of a team I'd suggest using Subversion + TortoiseSVN + AnkhSVN
And No, CruiseControl is not a code versioning system. It's a continuous integration system.
If you have a pure Windows environment then VisualSVN server is a Windows version of SVN server and installs easily and cleanly. You can setup security using Windows usernames and passwords, or SVN usernames and passwords.
You can then use Tortoise to provide integration in Explorer and VisualSVN to provide Visual Studio integration (there's a small cost for VisualSVN) or you could try AnkhSVN if all you want is VS integration and don't want to spend any money. Personally I prefer VisualSVN's integration.
Running a GIT server under Windows is, umm, frankly a pain in the ass, and not a route I'd recommend for beginners. VS integration is also fraught with pain.
As with everyone else I'd say avoid SourceSafe like the plague.
CruiseControl is not a source control system, it's an automated build server. It monitors source control servers looking for changes, then checks everything out, compiles it and runs it through your unit tests, so people know if they've broken the build. Once you have source control up and running it's the next big step towards a better build environment.
Before we start talking about source control, I would like you to consider your actual need for it, if this is to be your first .NET application. Is this your actual first attempt of writing some .NET 3.5 code? If so, I doubt that you need to worry about source control just yet. I would say it's not just a little bit overkill for the first learning projects.
On the other hand, if this is to be your first application that you'll actually sell to someone, it's a completely different matter.
I currently use VisualSVN, an add-in to Visual Studio that lets you do check-in, check-out etc from within the environment. Along with it, I use the free SVN repository service at XP-Dev. It works well for me =)
Your choice of a versioning system does not have to do anything with the .NET version you are using.
I'd vote for Subversion / Tortoise SVN. It's rock-solid, has lots of handy features, widely adopted and free.

"simple" installer for a web application (IIS virtual app + sql server db setup)

I need to create a web application installer.
Install Shield seems like overkill, is there something that can reliably install a web application (IIS setup + sql server db setup).
Suggestions?
CruiseControl.NET (http://sourceforge.net/projects/ccnet/) uses NullSoft's NSIS for this. It does a good job and it's free. The installer setup scripts, including the VBScript program that sets some of the website characteristics in IIS, are all in the source tree (http://ccnet.svn.sourceforge.net/viewvc/ccnet/trunk/ccnet.nsi?view=log and http://ccnet.svn.sourceforge.net/viewvc/ccnet/trunk/install).
Have a look at WIX, schema help, it can do what you want and so much more ...
InstallShield or one of its competitors is the simple solution anything else is going to require you to know way to much about msi(and that is a major headache).
I currently favor Advanced Installer they have a free edition. I believe InstallSheild has a free version as well, I just don't like the InstallShield product any longer and it bothers me that their holding company practacly changes every year.
I can only second NSIS (Nullsoft Scriptable Install System). Supports scripting and is easy to set-up.
installshield is a good way to do this. handles sql server setup and iis config fairly well.
not cheap though I'm afraid but worth it for any type of install. wix might be an good option but how much time can you afford to spend on learning it rather than clicking some wizards in installshield.

Is anyone running a production ASP.NET site on top of Mono?

I'm trying to do an informal feasibility study for work on if Mono/Apache/Linux is realistically 'ready' and in any way comparable to a more traditional .NET/IIS/Windows stack.
Any comparison of performance would be helpful too.
Take a look at companies using Mono.
It even says that Wikipedia uses Mono for its search facilities.
http://Fiducial.Biz, a financial company in France is running on Mono with ASP.NET
We're running a website/bunch of webservices on Mono/Apache/FreeBSD platform for one of our customers. The setup works great.
One thing to remember is 2.0 of Mono is out soon (I think this week) and it is even better now. So if you do any testing make sure you at least use the 2.0 RC
I am running a couple sites off ASP.NET over Mono. I am targeting 2.0 of the framework.
I haven't had Digg numbers, but I have also never had an issue.

Resources