views:

117

answers:

3

Is Mono appropriate for developing server applications, or only desktop applications? I'd like to develop server applications in C# for Linux. I want to write a First Person Shooter (FPS) game in C#/XNA, and I've a Linux dedicated server. But this question is generally for all types of server applications...

+3  A: 

Mono handles ASP.NET (including ASP.NET MVC) quite well. Most other server implementations work very well, as well. It does depend, slightly, on what exactly you are trying to serve, and how you are going to use it.

Mono also supports WCF directly in the core, which allows most non-web service applications to be written very effectively.


Edit:

Given your edit, and your desire to handle the server side of a multi-player FPS game, Mono should work fine. You will likely want to avoid using the high level interfaces like WCF and ASP.NET, and go straight to the System.Net namespace (depends a bit on how many players you'll be synchronizing, but if it's large, you'll want speed here over ease). Mono supports this quite well.

That being said, Mono's support of the System.Net namespace is very good, and quite mature, so you should have no problems using it for the server side of a multiplayer FPS game.

Reed Copsey
A: 

I don't see why not. I believe FogBugz uses Mono to deploy to apache servers.

Here is a conversation about running the FogBugz application on mono as an example of having a server app running on it.

Kevin
A: 

It looks like your needs cover a broad range of different applications.

I think the overall answer would be yes, Mono is appropriate for developer server applications.

As others have pointed out, Mono has ASP.NET support as well as WCF built-in.

You also have the ability of working directly down to the Socket level if you need to squeeze every last bit of performance out of your server application (although you'll have to figure out how to persist state if the need is there).

I'd definitely be interested in seeing the performance difference of something like that between the two platforms (I wouldn't expect much difference...it's possible that Mono might even get slightly better performance because of the rest of the *NIX stack).

Justin Niessner