SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
Alessandro de Oliveira Binhara
Projeto MONO BRASIL
binhara@monobrasil.org
O Projeto Mono: Aplicações
.NET para sistemas não
Windows
2
Agenda
O Projeto Mono
Histórico, Motivações, Rodmap, Features,
Compatibilidade, Estrutura, Ferramentas,
Interoperabilidade de Aplicativos .Net
Orientações para porte de aplicativos: Linux, Mac,
Iphone, Android , Cases de Sucesso.
Demonstração e Cases
WindowsForms, GtkSharp, C# Shell, Empresas
usuárias, Etc…
3
Motivações
Projeto MONO
4
Microsoft lança o .NET
Projeto MONO
Miguel busca uma nova plataforma
para melhorar seus projetos.
Microsoft Lança a plataforma .Net
Coloca o C# como um padrão
O Core do .Net é colocado como padrão
Padrões ECMA 334 , ECMA 335
Plataforma Microsoft .Net
Multi-linguagem
Coletor de Lixo
5
Nascimento
Projeto MONO
Criado por Miguel de Icaza em 2001
Criou o Gnome e a empresa Ximian para
dar suporte ao Gnome.
6
O que é ?
Projeto MONO
Mono é uma implementação OpenSource do
.NET Permite a execução e desenvolvimento de
software .Net em ambiente Não Windows.
Mono 2.6 (atual)
WCF client e servidor,
LLVM support, LINQ para SQL usando o DbLinq.
Novo debuger.
CSharp shell agora suporta auto-completion
3.5 API agora está mais completa
ASP.NET MVC 1 e 2
xbuild agora realiza o build de projetos msbuild
Mono Compiler : C# 3.0
7
Mono 2.8
Is coming!!!
Suporte a C# 4.0 como padrão
Parallel Framework
Performance
Large performance improvements
LLVM support has graduated to stable
Preview of the Generational Garbage Collector
Version 2.0 of the embedding API
WCF Routing
OpenBSD support integrated
http://mono-project.com/Roadmap
8
O que é ?
Projeto MONO
9
Contribuições Microsoft
MS-PL or Apache Licensed Libraries
Ajax.NET, ASP.NET MVC1, MVC2,
Silverligth ToolKit, Silverligth Tests
Managed Extensibility Framework (MEF)
System.Data.Services.Client (OData)
Dynamic Language Runtime
10
Suporte C# 3.0 e 4.0
mcs: compilador para rutime 1.1.
gmcs: compilador para runtime the 2.0 runtime.
smcs: compiledor para rutime 2.1para compilar
aplicações Moonlight.
dmcs: iniciado com Mono 2.6 para C# 4.0
Características já suportadas:
anonymous methods , iterators,partial classes , Generics , Nullable Types,
friend assemblies , static classes, property accessor accessibility, fixed
buffers, external assembly alias, namespace alias qualifier , inline warning
control , Extension Methods, LINQ syntax, Expression trees, Automatic
properties, Lambda expressions, Anonymous types.
11
Suporte JAVA
Interoperabilidade
O IKVM é uma VM JAVA escrita em C# que
possibilita executar byte code Java no Mono
além de um conjunto de ferramentas para:
conversão bytecode (java) -> IL (mono)
e IL (mono)-> bytecode (java)
http://www.ikvm.net
12
Suporte Python e Ruby
Interoperabilidade
Atualmente o IronPython e IronRuby são
financiado pela Microsoft e licenciados sob
Licença Apache 2.0
13
É a máquina virtual do Mono
O runtime do Mono está pronto
e tem possibilidade de executar
programas .NET formato
Binário.
Compilador JIT (mono), com e
sem otimizações.
Novo GC já disponível, melhorando a performance e
reduzindo o uso de memória em cerca de 50%.
14
Plataformas Suportadas
Supported Architectures Runtime Operating system
s390, s390x (32 and 64
bits)
JIT Linux
SPARC (32) JIT Solaris, Linux
PowerPC JIT Linux, Mac OSX, Wii, PlayStation 3
x86 JIT
Linux, FreeBSD, OpenBSD, NetBSD,
Microsoft Windows, Solaris, OS X
x86-64: AMD64 and EM64T
(64 bit)
JIT Linux, Solaris
IA64 Itanium2 (64 bit) JIT Linux
ARM: little and big endian JIT
Linux (both old and new ABI),
iPhone
Alpha JIT Linux
MIPS JIT Linux
HPPA JIT Linux
15
Início do Mono
Interoperabilidade
Uso das ferramentas da microsoft
Como criar um compilador Csharp sem um
compilador.
Primeira versão do mcs foi escrita no Visual
Studio.
Inicialmente
5 engenheiros, Foco em aplicações desktop
Toda a infra-estrutura do mono é escrita em C#
16
Desenvolvedores
Comunidade
Rafael Teixeira, Alexandre Marcondes, Everaldo Canuto, Rodrigo
Bambo, Francisco Figueredo, mais de 500 pessoas na
comunidade.
17
Compilador C# - MCS
EXECUTAEXECUTA
USAUSA
USA
COMPILA /USA
COMPILA
18
Build Farm
Desenvolvimento
Consulta da implementação do framework em comparação ao
MS.NET
http://wrench.mono-project.com/builds
19
Mono Test Suite
Desenvolvimento
http://mono-project.com/Test_Suite
20
Documentação
Desenvolvimento
Site intenacional :
www.mono-project.com
MonkeyGuide :
http://mono-project.com/Monkeyguide
Mono APIs :
http://www.go-mono.com/docs/
Esforço de tradução do Mono Brasil
http://www.monobrasil.org
21
Suporte
Desenvolvimento
Listas de Discussão
http://mono-project.com/Mailing_Lists
http://www.go-mono.org/forums/
IRC: Irc.gnome.org
Média 100 pessoas online , 24 horas por dia
Mais de 50 canais
22
Crie no VS e rode no Linux
Portando aplicativos
Compatibilidade Binária
Monte o disco do linux e copie seus binários no
linux
Compartilhe no windows e acesso no linux
Testando
Uso de máquinas virtuas: Ex: Virtual PC
Donwload das VM e LiveCD no site do mono
23
Sistema de Arquivos
Portando aplicativos
Cuidado com os caminhos
Cuidado com letras Maiúsculas e minúsculas
Não use caminhos absolutos, eles não vão funcionar em outros sistemas.
Use algum mecanismo como um arquivo de configuração para localizar seus
arquivos e caminhos
Busca manual de Separadores
int index = exePath.LastIndexOf("");
exeDir = exePath.Substring(0, index);
exeFile = exePath.Substring(index+1);
Código mais portável
exeDir = Path.GetDirectoryName (exePath);
exeFile = Path.GetFileName (exePath);
24
Variáveis de Ambiente
Portando aplicativos
Variáveis de ambiente o o PATH no Windows
usa “;” o linux e outros sistemas unix usam “:”
Você pode usar System.IO.Path.PathSeparator
para separa o path nas variáveis de ambiente
Console.WriteLine ( "Subdiretorios encontrados no PATH :“ );
string path_env = Environment.GetEnvironmentVariable ( "PATH“ );
string[] path_dirs = path_env.Split (Path.PathSeparator);
foreach (string pathdir in path_dirs)
Console.WriteLine(pathdir);
25
P/Invoke
Portando aplicativos
Chamadas a DLLs nativas a API Windows não
irão funcionar em outros sistemas, pois a API
não está la.
Caso você dependa de bibliotecas em C, você
deverá substituir por equivalentes no ambiente
Linux.
Sua aplicação deverá identificar o sistema que
está rodando e chavear entre as bibliotecas.
26
MOMA
Portando aplicativos
27
Banco de Dados
Portando aplicativos
Mono faz acesso ao SQLServer , não existe
necessidade de mudar de banco para rodar sua
aplicação no linux.
Mono Disponibiliza os dataproviders para os
bancos : MySQL, Postgresql, Oracle, DB2, SyBase
É possivel usar os dataproviders do mono no
.NET com VS para acessar os bancos livres.
28
Interface Gráfica
Portando aplicativos
Windows.Forms
Atualmente o Mono esta suportando windows.Forms 1 e 2
http://www.mono-project.com/WinForms
Status do Windows.Forms:
Sem suporte a windows.forms rodando em múltiplos threads. Todos os
formulários devem ser criados no mesmo thread.
Temas windows suportados a partir do mono 2.2
Suporte de transparência no linux através do composite
Todo código Windows.Forms é em C# gerenciado
Windows.Forms é suportado no Mac a partir da versão 1.9
29
Interface Gráfica
Portando aplicativos
Pode ser usados outros tool kits gráficos para outras plataformas
http://www.mono-project.com/Gui_Toolkits
GTK# -> Ambientes Linux , BSD e Windows
COCA# -> MacOSX
QT# -> Linux
Qyoto http://techbase.kde.org/Development/Languages/Qyoto
wxNet
http://wxnet.sourceforge.net/
30
Ferramentas
Portando aplicativos
Mono Develop
Importa soluções do Visual Studio
Versões Windows, Linux e MAC
Suporte para GTK# , Iphone, MacOX
Debug integrado, controle de versão
Bando de Dados, Sistema de Testes,
www.monodevelop.com
Prj2make
Converte uma solução do Visual Studio em script para o make, gerando os
make files.
31
Mono Plug IN
Portando aplicativos
Verifique a compatibilidade do seu
aplicativo com usando o MOMA
diretamente do Visual Studio
Teste no Windows, Teste no Linux
Debug remoto no Linux
Empacote para linux
Crie uma Distribuição linux
customizada para seu aplicativo
com o Suse Studio
32
ASP.NET
Portando aplicativos
Mono Suporte Asp.NET 1 e 2
Suporta Asp.NET MVC 1 e 2
Rodando no Apache, Ngnix:
XSP, Mod_Mod , FastCGI
Suporta WebServices
Suporta Ajax.NET (Microsoft)
Exemplo
www.monobrasil.org
33
Moonlight
Portando aplicativos
Implementação do open source do
SilverLight da Microsoft
Baseado em XAML
Em setembro de 2007 , a Microsoft e a
Novel anunciaram a colaboração técnica isso
inclui o acesso aos sistemas de teste do
Silverligth e a distribuição do pacote de
media para usuários Linux contendo as
licenças de codec para áudio e vídeo.
Recentemente a Microsoft disponibilizou
também o Silverligth Tool Kit e este foi
integrado ao Moonlight
34
Moonligth
Portando aplicativos
Moonlight 3
Mooonlight 3 Pre-Alpha compatível com Silverlight 3
3D graphics
Pixel shaders
Application library caching
Out-of-browser capabilities and offline support
Pluggable media pipeline to support 3rd party codecs
HD Smooth Streaming
Native support for MPEG-4-based H.264/AAC Audio
Release Date Alpha Q1 2010 Beta Q2 2010 Final Q3 2010
35
C# no IPHONE
Portando aplicativos
Versão comercial do mono para IPHONE
C# and .NET on the iPhone
.NET Bindings to Native APIs
Distribute on the Apple App Store
Enterprise deployable
MonoDevelop Integration
XCode Integration
http://monotouch.net/
http://monotouch.net/Tutorials
36
C# no Android
Portando aplicativos
Versão comercial do mono para Android
Pluing para Visual Studio
Usa o mesmo profile do MonoTouch
Suporte OpenGL , GC, Multi-threading, .NET 3.5,
C# 3.0 e LINQ
.NET Bindings to Native APIs
http://monodroid.net/
http://monodroid.net/Tutorials
37
C# Shell
Demos
Shell Interativo
Suporte a code completion
Suporte a GTK#
38
GAMES em C#
Demos
MONO.SIMD Cases
SencondLive mudou do LSL para Mono
50x a 300x mais rápido
Unit3d
Usa C#, Boo, unityScritp
39
Daruma
Case Brasileiro
Apartir de Março de 2006 a
Daruma passou a surportar o uso
de suas impressoras em ambiente
Mono com Linux.
Foram realizados treinamentos da
equipe desenvolvedora no Brasil, e
foram feitas melhorias internas na
estrutura dos device drives linux
das impressoras para ficarem 100%
compatível com Mono.
40
Empresas usando Mono
Cases internacionais
Electronic Arts' Sims3
http://thesims3.ea.com/
Unity3D
Unity 3D é um editor de jogos cross-platform , Wii, XBOX, IPHONE, PC, etc (http://unity3d.com).
Chrome Compiler
Um compilador Pascal, Delphi (http://chromesville.com/)
DekiWiki
Is an advanced WYSIWYG Wiki system powered by Mono. (http://wiki.mindtouch.com)
SplendidCRM
Cross platform, CRM system. (http://www.splendidcrm.com)
Plasma
Source Code Management system from Codice Software.
(http://pnunit.codicesoftware.com/opproducts.aspx)
Medsphere OpenVista
A cross-platform, real-time, point-of-care, patient-centric information resource for clinicians.
(http://www.medsphere.com)
41
Cidade de Munich
Case internacional
Maior migração já feita para Linux
Software ActiveEntry - Software para provisão e gerenciamento
usando pelo governo Alemão. (Munich)
Foram migrados todos os servidores da cidade de
Munich para linux e portado as aplicações para Mono
http://www.novell.com/success/volcker.html
"Mono is now a critical part of our cross-platform development,"
said Matthias Bauer, head of development for Völcker Informatik
AG. "Using Mono was the only way for us to leverage our existing
software and give our customers what they need on Linux.“
Uso de C# aplicação com mais de 2milhões de linhas
350 Servidores, 40mil estações, 150mil usuários
42
Título da Demo
43
HELLO WORLD!!!
$ cat alomundo-cs.cs alomundo-vb.vb alomundo-boo.boo
class AloMundo {
public static void Main(string[] args){
System.Console.WriteLine("Alô mundo!!! em C#");
}
}
Module AloMundo
Public Sub Main(args as string())
System.Console.WriteLine("Alô mundo!!! em MonoBASIC")
End Sub
End Module
print "Alô mundo!!! em Boo"
$ mcs /codepage:utf8 alomundo-cs.cs
$ mbas alomundo-vb.vb
$ booc alomundo-boo.boo
$ mono alomundo-cs.exe
Alô mundo!!! em C#
$ mono alomundo-vb.exe
Alô mundo!!! em MonoBASIC
$ mono alomundo-boo.exe
Alô mundo!!! em Boo
A linguagem Boo foi desenvolvida pelo
Rodrigo 'Bamboo' Oliveira, para o ambiente
CLI (Mono/.NET).
É similar ao Python mas com tipagem
estática, o que lhe permite interagir mais
facilmente com as outras linguagens CLI.
Ver http://boo.codehaus.org/
44
Aplicações
Demos
F-spot
Tomboy
MonoDevelop
45
Título do Vídeo
46
Moonligth - videos
Bing Maps
PhotoSynth
ShowCase
DesktLets
Smooth Stream
47
Alessandro de Oliveira Binhara
Projeto MONO BRASIL
binhara@monobrasil.org
O Projeto Mono: Aplicações
.NET para sistemas não
Windows

Weitere ähnliche Inhalte

Was ist angesagt?

Projetos Mono e Moonlight
Projetos Mono e MoonlightProjetos Mono e Moonlight
Projetos Mono e MoonlightPedro Alves Jr.
 
App CrossMobile com C# para Android, Iphone e WindowsPhone
App CrossMobile com C# para Android, Iphone e WindowsPhoneApp CrossMobile com C# para Android, Iphone e WindowsPhone
App CrossMobile com C# para Android, Iphone e WindowsPhoneAlessandro Binhara
 
Apresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasicApresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasicAlessandro Binhara
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Felipe Pedroso
 
It’s all about the game
It’s all about the gameIt’s all about the game
It’s all about the gameBruno Cicanci
 
Windows 8 Developer Preview
Windows 8 Developer PreviewWindows 8 Developer Preview
Windows 8 Developer PreviewCharles Fortes
 
Plataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em CelularesPlataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em CelularesAndré Otero
 
Desenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-xDesenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-xBruno Cicanci
 
Desenvolvimento de Jogos
Desenvolvimento de JogosDesenvolvimento de Jogos
Desenvolvimento de JogosKelvinSalton
 
Xna Touch Campus Party
Xna Touch  Campus PartyXna Touch  Campus Party
Xna Touch Campus PartyJosé Farias
 
Desenvolvimento de jogos para Windows Phone com XNA
Desenvolvimento de jogos para Windows Phone com XNADesenvolvimento de jogos para Windows Phone com XNA
Desenvolvimento de jogos para Windows Phone com XNAMurillo Grubler
 

Was ist angesagt? (16)

Projetos Mono e Moonlight
Projetos Mono e MoonlightProjetos Mono e Moonlight
Projetos Mono e Moonlight
 
App CrossMobile com C# para Android, Iphone e WindowsPhone
App CrossMobile com C# para Android, Iphone e WindowsPhoneApp CrossMobile com C# para Android, Iphone e WindowsPhone
App CrossMobile com C# para Android, Iphone e WindowsPhone
 
Apresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasicApresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasic
 
Minicurso as3 games
Minicurso as3 gamesMinicurso as3 games
Minicurso as3 games
 
Plataforma Maemo
Plataforma MaemoPlataforma Maemo
Plataforma Maemo
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8
 
Xamarin plataform
Xamarin plataformXamarin plataform
Xamarin plataform
 
It’s all about the game
It’s all about the gameIt’s all about the game
It’s all about the game
 
Windows 8 Developer Preview
Windows 8 Developer PreviewWindows 8 Developer Preview
Windows 8 Developer Preview
 
Palestra BrOffice.org
Palestra BrOffice.orgPalestra BrOffice.org
Palestra BrOffice.org
 
Plataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em CelularesPlataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em Celulares
 
Desenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-xDesenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-x
 
Desenvolvimento de Jogos
Desenvolvimento de JogosDesenvolvimento de Jogos
Desenvolvimento de Jogos
 
Xna Touch Campus Party
Xna Touch  Campus PartyXna Touch  Campus Party
Xna Touch Campus Party
 
Windows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - BrasilWindows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - Brasil
 
Desenvolvimento de jogos para Windows Phone com XNA
Desenvolvimento de jogos para Windows Phone com XNADesenvolvimento de jogos para Windows Phone com XNA
Desenvolvimento de jogos para Windows Phone com XNA
 

Ähnlich wie O Projeto Mono: Aplicações .NET para sistemas não Windows

Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010Alessandro Binhara
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETAlessandro Binhara
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioGeovani Ferreira Gonçalves
 
Desenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhoneDesenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhoneBruno Pires
 
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework CoreUm novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework CoreRogério Moraes de Carvalho
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010Norton Guimarães
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Fabrício Lopes Sanchez
 
Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Julian Correa
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Seminário sistemas operacionais móveis
Seminário sistemas operacionais móveisSeminário sistemas operacionais móveis
Seminário sistemas operacionais móveisArthur Azevedo
 

Ähnlich wie O Projeto Mono: Aplicações .NET para sistemas não Windows (20)

.NET Open Source
.NET Open Source.NET Open Source
.NET Open Source
 
Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
.NET Open Source 2009
.NET Open Source 2009.NET Open Source 2009
.NET Open Source 2009
 
Mono Codebits
Mono CodebitsMono Codebits
Mono Codebits
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NET
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 
Introdução ao .NET
Introdução ao .NETIntrodução ao .NET
Introdução ao .NET
 
Desenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhoneDesenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhone
 
Hello World usando c#.net
Hello World usando c#.netHello World usando c#.net
Hello World usando c#.net
 
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework CoreUm novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
 
Novidades do .NET 3.5
Novidades do .NET 3.5Novidades do .NET 3.5
Novidades do .NET 3.5
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
 
Introdução a Plataforma .NET 4.0
Introdução a Plataforma .NET 4.0Introdução a Plataforma .NET 4.0
Introdução a Plataforma .NET 4.0
 
Android juliana-mono
Android juliana-monoAndroid juliana-mono
Android juliana-mono
 
Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Seminário sistemas operacionais móveis
Seminário sistemas operacionais móveisSeminário sistemas operacionais móveis
Seminário sistemas operacionais móveis
 

Mehr von Alessandro Binhara

Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxAlessandro Binhara
 
BigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenhariaBigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenhariaAlessandro Binhara
 
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnósticaCase RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnósticaAlessandro Binhara
 
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediLatinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediAlessandro Binhara
 
2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtual2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtualAlessandro Binhara
 
Realidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinowareRealidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinowareAlessandro Binhara
 
Realidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de DadosRealidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de DadosAlessandro Binhara
 
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...Alessandro Binhara
 
BIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  AplicaçõesBIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  AplicaçõesAlessandro Binhara
 
Introduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação WebIntroduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação WebAlessandro Binhara
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoAlessandro Binhara
 
Xamarin Interop - hands on android -
Xamarin Interop - hands on android - Xamarin Interop - hands on android -
Xamarin Interop - hands on android - Alessandro Binhara
 
O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???
O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???
O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???Alessandro Binhara
 
Interoperabilidade com BigData Hadoop para Windows Azure
Interoperabilidade com BigData Hadoop  para Windows AzureInteroperabilidade com BigData Hadoop  para Windows Azure
Interoperabilidade com BigData Hadoop para Windows AzureAlessandro Binhara
 
Usando c# para desenvolver app iphone e ipad!!! sim é possível!!!
Usando c# para desenvolver app iphone e ipad!!! sim é possível!!!Usando c# para desenvolver app iphone e ipad!!! sim é possível!!!
Usando c# para desenvolver app iphone e ipad!!! sim é possível!!!Alessandro Binhara
 

Mehr von Alessandro Binhara (20)

Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
 
BigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenhariaBigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenharia
 
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnósticaCase RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
 
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediLatinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
 
2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtual2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtual
 
Realidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinowareRealidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinoware
 
Realidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de DadosRealidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de Dados
 
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
 
Curso de Férias - Robótica
Curso de Férias -  Robótica Curso de Férias -  Robótica
Curso de Férias - Robótica
 
BIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  AplicaçõesBIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  Aplicações
 
Introduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação WebIntroduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação Web
 
Bigadata casese opotunidades
Bigadata casese opotunidadesBigadata casese opotunidades
Bigadata casese opotunidades
 
Abertura - interopmix2014
Abertura - interopmix2014Abertura - interopmix2014
Abertura - interopmix2014
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto Basico
 
Treinamento csharp mono
Treinamento csharp monoTreinamento csharp mono
Treinamento csharp mono
 
Xamarin Interop - hands on android -
Xamarin Interop - hands on android - Xamarin Interop - hands on android -
Xamarin Interop - hands on android -
 
Quarto Encontro GUX
Quarto Encontro GUX Quarto Encontro GUX
Quarto Encontro GUX
 
O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???
O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???
O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???
 
Interoperabilidade com BigData Hadoop para Windows Azure
Interoperabilidade com BigData Hadoop  para Windows AzureInteroperabilidade com BigData Hadoop  para Windows Azure
Interoperabilidade com BigData Hadoop para Windows Azure
 
Usando c# para desenvolver app iphone e ipad!!! sim é possível!!!
Usando c# para desenvolver app iphone e ipad!!! sim é possível!!!Usando c# para desenvolver app iphone e ipad!!! sim é possível!!!
Usando c# para desenvolver app iphone e ipad!!! sim é possível!!!
 

Kürzlich hochgeladen

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Kürzlich hochgeladen (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

O Projeto Mono: Aplicações .NET para sistemas não Windows

  • 1. Alessandro de Oliveira Binhara Projeto MONO BRASIL binhara@monobrasil.org O Projeto Mono: Aplicações .NET para sistemas não Windows
  • 2. 2 Agenda O Projeto Mono Histórico, Motivações, Rodmap, Features, Compatibilidade, Estrutura, Ferramentas, Interoperabilidade de Aplicativos .Net Orientações para porte de aplicativos: Linux, Mac, Iphone, Android , Cases de Sucesso. Demonstração e Cases WindowsForms, GtkSharp, C# Shell, Empresas usuárias, Etc…
  • 4. 4 Microsoft lança o .NET Projeto MONO Miguel busca uma nova plataforma para melhorar seus projetos. Microsoft Lança a plataforma .Net Coloca o C# como um padrão O Core do .Net é colocado como padrão Padrões ECMA 334 , ECMA 335 Plataforma Microsoft .Net Multi-linguagem Coletor de Lixo
  • 5. 5 Nascimento Projeto MONO Criado por Miguel de Icaza em 2001 Criou o Gnome e a empresa Ximian para dar suporte ao Gnome.
  • 6. 6 O que é ? Projeto MONO Mono é uma implementação OpenSource do .NET Permite a execução e desenvolvimento de software .Net em ambiente Não Windows. Mono 2.6 (atual) WCF client e servidor, LLVM support, LINQ para SQL usando o DbLinq. Novo debuger. CSharp shell agora suporta auto-completion 3.5 API agora está mais completa ASP.NET MVC 1 e 2 xbuild agora realiza o build de projetos msbuild Mono Compiler : C# 3.0
  • 7. 7 Mono 2.8 Is coming!!! Suporte a C# 4.0 como padrão Parallel Framework Performance Large performance improvements LLVM support has graduated to stable Preview of the Generational Garbage Collector Version 2.0 of the embedding API WCF Routing OpenBSD support integrated http://mono-project.com/Roadmap
  • 8. 8 O que é ? Projeto MONO
  • 9. 9 Contribuições Microsoft MS-PL or Apache Licensed Libraries Ajax.NET, ASP.NET MVC1, MVC2, Silverligth ToolKit, Silverligth Tests Managed Extensibility Framework (MEF) System.Data.Services.Client (OData) Dynamic Language Runtime
  • 10. 10 Suporte C# 3.0 e 4.0 mcs: compilador para rutime 1.1. gmcs: compilador para runtime the 2.0 runtime. smcs: compiledor para rutime 2.1para compilar aplicações Moonlight. dmcs: iniciado com Mono 2.6 para C# 4.0 Características já suportadas: anonymous methods , iterators,partial classes , Generics , Nullable Types, friend assemblies , static classes, property accessor accessibility, fixed buffers, external assembly alias, namespace alias qualifier , inline warning control , Extension Methods, LINQ syntax, Expression trees, Automatic properties, Lambda expressions, Anonymous types.
  • 11. 11 Suporte JAVA Interoperabilidade O IKVM é uma VM JAVA escrita em C# que possibilita executar byte code Java no Mono além de um conjunto de ferramentas para: conversão bytecode (java) -> IL (mono) e IL (mono)-> bytecode (java) http://www.ikvm.net
  • 12. 12 Suporte Python e Ruby Interoperabilidade Atualmente o IronPython e IronRuby são financiado pela Microsoft e licenciados sob Licença Apache 2.0
  • 13. 13 É a máquina virtual do Mono O runtime do Mono está pronto e tem possibilidade de executar programas .NET formato Binário. Compilador JIT (mono), com e sem otimizações. Novo GC já disponível, melhorando a performance e reduzindo o uso de memória em cerca de 50%.
  • 14. 14 Plataformas Suportadas Supported Architectures Runtime Operating system s390, s390x (32 and 64 bits) JIT Linux SPARC (32) JIT Solaris, Linux PowerPC JIT Linux, Mac OSX, Wii, PlayStation 3 x86 JIT Linux, FreeBSD, OpenBSD, NetBSD, Microsoft Windows, Solaris, OS X x86-64: AMD64 and EM64T (64 bit) JIT Linux, Solaris IA64 Itanium2 (64 bit) JIT Linux ARM: little and big endian JIT Linux (both old and new ABI), iPhone Alpha JIT Linux MIPS JIT Linux HPPA JIT Linux
  • 15. 15 Início do Mono Interoperabilidade Uso das ferramentas da microsoft Como criar um compilador Csharp sem um compilador. Primeira versão do mcs foi escrita no Visual Studio. Inicialmente 5 engenheiros, Foco em aplicações desktop Toda a infra-estrutura do mono é escrita em C#
  • 16. 16 Desenvolvedores Comunidade Rafael Teixeira, Alexandre Marcondes, Everaldo Canuto, Rodrigo Bambo, Francisco Figueredo, mais de 500 pessoas na comunidade.
  • 17. 17 Compilador C# - MCS EXECUTAEXECUTA USAUSA USA COMPILA /USA COMPILA
  • 18. 18 Build Farm Desenvolvimento Consulta da implementação do framework em comparação ao MS.NET http://wrench.mono-project.com/builds
  • 20. 20 Documentação Desenvolvimento Site intenacional : www.mono-project.com MonkeyGuide : http://mono-project.com/Monkeyguide Mono APIs : http://www.go-mono.com/docs/ Esforço de tradução do Mono Brasil http://www.monobrasil.org
  • 22. 22 Crie no VS e rode no Linux Portando aplicativos Compatibilidade Binária Monte o disco do linux e copie seus binários no linux Compartilhe no windows e acesso no linux Testando Uso de máquinas virtuas: Ex: Virtual PC Donwload das VM e LiveCD no site do mono
  • 23. 23 Sistema de Arquivos Portando aplicativos Cuidado com os caminhos Cuidado com letras Maiúsculas e minúsculas Não use caminhos absolutos, eles não vão funcionar em outros sistemas. Use algum mecanismo como um arquivo de configuração para localizar seus arquivos e caminhos Busca manual de Separadores int index = exePath.LastIndexOf(""); exeDir = exePath.Substring(0, index); exeFile = exePath.Substring(index+1); Código mais portável exeDir = Path.GetDirectoryName (exePath); exeFile = Path.GetFileName (exePath);
  • 24. 24 Variáveis de Ambiente Portando aplicativos Variáveis de ambiente o o PATH no Windows usa “;” o linux e outros sistemas unix usam “:” Você pode usar System.IO.Path.PathSeparator para separa o path nas variáveis de ambiente Console.WriteLine ( "Subdiretorios encontrados no PATH :“ ); string path_env = Environment.GetEnvironmentVariable ( "PATH“ ); string[] path_dirs = path_env.Split (Path.PathSeparator); foreach (string pathdir in path_dirs) Console.WriteLine(pathdir);
  • 25. 25 P/Invoke Portando aplicativos Chamadas a DLLs nativas a API Windows não irão funcionar em outros sistemas, pois a API não está la. Caso você dependa de bibliotecas em C, você deverá substituir por equivalentes no ambiente Linux. Sua aplicação deverá identificar o sistema que está rodando e chavear entre as bibliotecas.
  • 27. 27 Banco de Dados Portando aplicativos Mono faz acesso ao SQLServer , não existe necessidade de mudar de banco para rodar sua aplicação no linux. Mono Disponibiliza os dataproviders para os bancos : MySQL, Postgresql, Oracle, DB2, SyBase É possivel usar os dataproviders do mono no .NET com VS para acessar os bancos livres.
  • 28. 28 Interface Gráfica Portando aplicativos Windows.Forms Atualmente o Mono esta suportando windows.Forms 1 e 2 http://www.mono-project.com/WinForms Status do Windows.Forms: Sem suporte a windows.forms rodando em múltiplos threads. Todos os formulários devem ser criados no mesmo thread. Temas windows suportados a partir do mono 2.2 Suporte de transparência no linux através do composite Todo código Windows.Forms é em C# gerenciado Windows.Forms é suportado no Mac a partir da versão 1.9
  • 29. 29 Interface Gráfica Portando aplicativos Pode ser usados outros tool kits gráficos para outras plataformas http://www.mono-project.com/Gui_Toolkits GTK# -> Ambientes Linux , BSD e Windows COCA# -> MacOSX QT# -> Linux Qyoto http://techbase.kde.org/Development/Languages/Qyoto wxNet http://wxnet.sourceforge.net/
  • 30. 30 Ferramentas Portando aplicativos Mono Develop Importa soluções do Visual Studio Versões Windows, Linux e MAC Suporte para GTK# , Iphone, MacOX Debug integrado, controle de versão Bando de Dados, Sistema de Testes, www.monodevelop.com Prj2make Converte uma solução do Visual Studio em script para o make, gerando os make files.
  • 31. 31 Mono Plug IN Portando aplicativos Verifique a compatibilidade do seu aplicativo com usando o MOMA diretamente do Visual Studio Teste no Windows, Teste no Linux Debug remoto no Linux Empacote para linux Crie uma Distribuição linux customizada para seu aplicativo com o Suse Studio
  • 32. 32 ASP.NET Portando aplicativos Mono Suporte Asp.NET 1 e 2 Suporta Asp.NET MVC 1 e 2 Rodando no Apache, Ngnix: XSP, Mod_Mod , FastCGI Suporta WebServices Suporta Ajax.NET (Microsoft) Exemplo www.monobrasil.org
  • 33. 33 Moonlight Portando aplicativos Implementação do open source do SilverLight da Microsoft Baseado em XAML Em setembro de 2007 , a Microsoft e a Novel anunciaram a colaboração técnica isso inclui o acesso aos sistemas de teste do Silverligth e a distribuição do pacote de media para usuários Linux contendo as licenças de codec para áudio e vídeo. Recentemente a Microsoft disponibilizou também o Silverligth Tool Kit e este foi integrado ao Moonlight
  • 34. 34 Moonligth Portando aplicativos Moonlight 3 Mooonlight 3 Pre-Alpha compatível com Silverlight 3 3D graphics Pixel shaders Application library caching Out-of-browser capabilities and offline support Pluggable media pipeline to support 3rd party codecs HD Smooth Streaming Native support for MPEG-4-based H.264/AAC Audio Release Date Alpha Q1 2010 Beta Q2 2010 Final Q3 2010
  • 35. 35 C# no IPHONE Portando aplicativos Versão comercial do mono para IPHONE C# and .NET on the iPhone .NET Bindings to Native APIs Distribute on the Apple App Store Enterprise deployable MonoDevelop Integration XCode Integration http://monotouch.net/ http://monotouch.net/Tutorials
  • 36. 36 C# no Android Portando aplicativos Versão comercial do mono para Android Pluing para Visual Studio Usa o mesmo profile do MonoTouch Suporte OpenGL , GC, Multi-threading, .NET 3.5, C# 3.0 e LINQ .NET Bindings to Native APIs http://monodroid.net/ http://monodroid.net/Tutorials
  • 37. 37 C# Shell Demos Shell Interativo Suporte a code completion Suporte a GTK#
  • 38. 38 GAMES em C# Demos MONO.SIMD Cases SencondLive mudou do LSL para Mono 50x a 300x mais rápido Unit3d Usa C#, Boo, unityScritp
  • 39. 39 Daruma Case Brasileiro Apartir de Março de 2006 a Daruma passou a surportar o uso de suas impressoras em ambiente Mono com Linux. Foram realizados treinamentos da equipe desenvolvedora no Brasil, e foram feitas melhorias internas na estrutura dos device drives linux das impressoras para ficarem 100% compatível com Mono.
  • 40. 40 Empresas usando Mono Cases internacionais Electronic Arts' Sims3 http://thesims3.ea.com/ Unity3D Unity 3D é um editor de jogos cross-platform , Wii, XBOX, IPHONE, PC, etc (http://unity3d.com). Chrome Compiler Um compilador Pascal, Delphi (http://chromesville.com/) DekiWiki Is an advanced WYSIWYG Wiki system powered by Mono. (http://wiki.mindtouch.com) SplendidCRM Cross platform, CRM system. (http://www.splendidcrm.com) Plasma Source Code Management system from Codice Software. (http://pnunit.codicesoftware.com/opproducts.aspx) Medsphere OpenVista A cross-platform, real-time, point-of-care, patient-centric information resource for clinicians. (http://www.medsphere.com)
  • 41. 41 Cidade de Munich Case internacional Maior migração já feita para Linux Software ActiveEntry - Software para provisão e gerenciamento usando pelo governo Alemão. (Munich) Foram migrados todos os servidores da cidade de Munich para linux e portado as aplicações para Mono http://www.novell.com/success/volcker.html "Mono is now a critical part of our cross-platform development," said Matthias Bauer, head of development for Völcker Informatik AG. "Using Mono was the only way for us to leverage our existing software and give our customers what they need on Linux.“ Uso de C# aplicação com mais de 2milhões de linhas 350 Servidores, 40mil estações, 150mil usuários
  • 43. 43 HELLO WORLD!!! $ cat alomundo-cs.cs alomundo-vb.vb alomundo-boo.boo class AloMundo { public static void Main(string[] args){ System.Console.WriteLine("Alô mundo!!! em C#"); } } Module AloMundo Public Sub Main(args as string()) System.Console.WriteLine("Alô mundo!!! em MonoBASIC") End Sub End Module print "Alô mundo!!! em Boo" $ mcs /codepage:utf8 alomundo-cs.cs $ mbas alomundo-vb.vb $ booc alomundo-boo.boo $ mono alomundo-cs.exe Alô mundo!!! em C# $ mono alomundo-vb.exe Alô mundo!!! em MonoBASIC $ mono alomundo-boo.exe Alô mundo!!! em Boo A linguagem Boo foi desenvolvida pelo Rodrigo 'Bamboo' Oliveira, para o ambiente CLI (Mono/.NET). É similar ao Python mas com tipagem estática, o que lhe permite interagir mais facilmente com as outras linguagens CLI. Ver http://boo.codehaus.org/
  • 46. 46 Moonligth - videos Bing Maps PhotoSynth ShowCase DesktLets Smooth Stream
  • 47. 47
  • 48. Alessandro de Oliveira Binhara Projeto MONO BRASIL binhara@monobrasil.org O Projeto Mono: Aplicações .NET para sistemas não Windows