Monday, May 18, 2015

ASP.net MVC-WebAPI Development-Deployment in Linux/Mac/OSX

Most of us already know, Microsoft has open sourced, its .NET Framework. Active work has been going on, to make the .NET Framework and related technologies like (IIS webserver) to run in both Linux and Mac. They have to come a long way, as only .NET Core is available as a port under Linux till today. OWIN and Katana, may answer the replacement of IIS in Linux. But it will takes a while to settle down.

But I'm checking the current technology on how to make the complete .NET/Asp.net stack to work under Linux/MAC, including .NET Framework 4.5, MVC and WebAPI.

In short, we would like to

Develop and Deploy ASP.net MVC applications under Linux and Mac/OSx environments?

Hmm..Quite ambitious right? Certainly not. This is perfectly possible, given we answer the below questions.

1. .NET Development IDE for Linux?

First we need to have an IDE. We know Visual Studio is only available for Windows OS. But there is an IDE that works under Linux and Mac for .NET developments including MVC, WebAPI and WinForms.

Its the
MonoDevelop. This IDE is cool and provides similar features as that of Visual Studio.

This IDE is available for free, and backed by 'Xamarin' (The team, who introduced the 'Xamarin Studio', to develop native mobile applications using C# for Mac, Android and Windows Phones)

monodevelop


2. .NET Framework for Linux?

Well,
Mono is not a child's play. Its a .NET Framework implementation under Linux. It's not like Wine, the popular Windows Emulator under Linux and Mac. Mono is robust and you can host .NET applications under Mono.

Mono is sponsored by Xmarin now.

3. ASP.net for Linux?

Mono Asp.net, a popular implementation of Asp.net under Linux and Mac by Mono, now supports WebForms, WebServices, Ajax, MVC and WebAPI development.

4. IIS7 (WebServer) replacement for Linux?

The final missing piece. We need a web server to host ASP.net applications. What could be the IIS counter part under Linux/MAC?

Here we've plenty of options:

a. Apache Hosting (using MOD_MONO):

If you've a running Apache webserver, you can use it to host ASP.net using
MOD_MONO extension.

b.Nginx (using FastCGI Protocol):

Nginx, is an high performance web server supports ASP.net and MVC using FastCGI. This is even used for production systems.

c. XSP (A full webserver written using C#, that works under Mono):

XSP is available with Mono download or you can directly download from
Git.

No comments:

Post a Comment