Como parte dos esforços da Microsoft o ASP.NET vem sendo desenvolvido especialmente para plataformas cruzadas, trabalhando ativamente para fazer aplicações escritas em ASP.NET serem fáceis de implantar e portar no Linux e no Mac OS X. O Mono disponibiliza o servidor XSP que é um pequeno servidor web que hospeda o Mono e as classes System.web para executar o que é comumente conhecido como ASP.NET. O XPS é um servidor web independente que trabalha com o Mono e o MS Runtime. É usado para debug/completar classes. O MonoApplicationHost e MonoWorkerRequest pode ser utilizado para incorporar um servidor ASP.NET em sua aplicação. Quando você instala XSP, um monte de páginas ASP.NET e serviços web de amostra são instalados também.
Você também pode usar o mod_mono que é um módulo do Apache 2.0 / 2.2 / 2.4.3 que fornece suporte para o ASP.NET. O módulo passa solicitações de páginas ASP.NET para um programa externo, mod-mono-servidor, que realmente lida com os pedidos. A comunicação entre o módulo do Apache e mod-mono-servidor é estabelecida através de um socket Unix ou um soquete TCP.
mod_mono: http://www.mono-project.com/docs/web/mod_mono/
Criando uma aplicação ASP.NET em Linux
1 – Para criar sua primeira aplicação ASP.NET no sistema operacional Linux você pode utilizar o servidor StandAlone chamado XPS. Para isso precisamos instalar o XPS4:
sudo zypper install xsp
2 – Você precisa iniciar o servidos XPS para rodar sua aplicação ASP.NET:
xsp4 --port 9000
3 – Abra o Visual Studio Code ou o editor ou IDE de sua preferencia e cria uma pagina ASP.NET:
4 – Para testar sua aplicação rode o comando a seguir:
http://localhost:9000/hello.aspx
Pronto! você criou sua primeira aplicação ASP.NET no sistema operacional Linux, você já pode portar suas aplicações Windows para qualquer plataforma que use o Mono.
Exemplo:
Neste exemplo criamos uma simples página ASP.NET utilizando o servido XPS.
ASP.NET
<%@ Page Language="C#" %>
<html>
<head>
<meta charset="utf-8" />
<style>
.center {
margin-left: auto;
margin-right: auto;
width: 70%;
background-color: #b0e0e6;
}
.auto {
text-align: center
}
.calendario {
margin-left: auto;
margin-right: auto;
width: 30%;
}
</style>
<title>Desenvolvimento Aberto - Hello World ASP.NET</title>
</head>
<html>
<Body>
<h1 class="auto">Mono 4 - ASP.NET 5 </h1>
<h2 class="auto">Hello World Web - Linux - openSuse</h2>
<h3 class="auto">Desenvolvimento Aberto</h3>
<div class="center">
<p>“Rê, Uma parte de você cresceu em mim, juntos para sempre seremos, nunca distante,
talvez na distância, mas não no coração.”</p>
</div>
<div class="calendario">
<asp:calendar showtitle="true" runat="server"></asp:calendar>
</div>
</body>
</html>




















