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.

Wednesday, May 6, 2015

Silverlight Dead, WPF Fading and WinRT for future

This is just a heads up, regarding one of the most praised technology in .NET world.

microsoft-silverlight-logo-mini

As you might already know, Silverlight is dead. WPF seems to fade away. This is apparent, from the below points;

1.  WPF certifications is about to be discontinued by Microsoft

2.   No seamless integration of WPF.4.5 to Windows 8+ (Probably also in upcoming Windows10)

3.   No Windows RT Support

4.   Windows Store, will not support WPF. Its now moved to a new technology called WinRT. The new way of doing Thick UI.

5.   WPF team has announced to trim down in size and Official WPF blog is inactive for a long time.

6.   The new WinRT, a new emerging technology grabbing the share of WPF.


There is a case by case analysis provided in this code project article:
WPF Future - Code Project Article

The new emerging technology for thick client development (that might replace WPF) for cloud, devices and even desktop is named as WinRT. So developers, who are thinking to invest in WPF should rethink and consider WinRT as an option.


Note: To those, who’ve put too much into WPF. Don’t worry, as the basic Xaml scripting, resource based architecture will also serve as a basis for WinRT as well.