Download - Projetos Mono e Moonlight
Copyright © 2007-2009 Vsoft Tecnologia
Projetos Mono e Moonlight
Trazendo os Desenvolvedores Windows para o Mundo Linux
Pedro Alves JuniorDiretor de DesenvolvimentoVsoft TecnologiaLíder do .NUG - .NET User Group
Copyright © 2007-2009 Vsoft Tecnologia
Agenda
• Introdução ao .NET• Frameworks alternativos • Ferramentas alternativas• Principais projetos• Demonstração• Java no .NET/Mono• Principais vantagens em relação ao Java• Introdução ao Silverlight• Moonlight
Copyright © 2007-2009 Vsoft Tecnologia
Introdução ao .NET• Definição
• Plataforma única de desenvolvimento e execução de software.
• Tipos de aplicações suportadas• Aplicações WEB (Sites e Webservices)• Aplicações desktop• Jogos para PC, XBOX 360, Wii e iPhone• Aplicações para dispositivos móveis• Aplicações embarcadas
• 100% orientado a objetos• Ambiente multilinguagem
Copyright © 2007-2009 Vsoft Tecnologia
Introdução ao .NET• Ambiente multilinguagem
• Suporte a mais de 40 linguagens:• VB.NET, C#, C++, Java, Delphi, Cobol, Fortran,
Haskel, Lua, Boo, Perl, PHP, Python, Ruby, F#, Prolog …
• Common Language Infrastructure• Common Type System (CTS)• Common Language Specification (CLS)• Just-In-Time Compiler (JIT)• Virtual Execution System (VES)
• Aberto e padronizado (ECMA)• http://www.ecma-international.org/publications/standards/Ec
ma-334.htm• http://www.ecma-international.org/publications/standards/Ec
ma-335.htm
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosProjeto Rotor
• Implementação criada pela própria Microsoft• Também conhecido como Source Common
Language Infrastructure – SCLI• Funciona com:
• FreeBSD e MAC OS• Implementação de referência para padronização do
C# e CLI (Common Language Infrastructure)• Comunidade acadêmica pode desenvolver seu
próprio CLI e compilador C# baseado no Rotor• Licença não permite venda de novas versões• http://msdn.microsoft.com/net/sscli/
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosDotGNU
• Fundado por Richard M. Stallman (presidente da Free Software Foundation - FSF)
• Iniciativa para desenvolver uma versão baseada em GNU/Linux como Software Livre, da plataforma .NET
• Inclui:• Implementação do CLI • Compilador C#
• Funciona com:• Windows, NetBSD, FreeBSD, Solaris, MAC OS e Linux
• Licença GPL• http://www.dotgnu.org
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosMono
• Esforço da comunidade patrocinado pela Novell para implementação de um framework de desenvolvimento .NET
• Inclui:• Compiladores C# e VB.NET• CLI• CLR compatível com .NET e classes extras• ADO.NET, ASP.NET e Windows Forms• Roda .NET, Java, Python, Boo, Ruby e mais…
• Open Source e Free Software• Comercialmente suportado• Atualmente em uso comercial• http://www.mono-project.com
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosMono
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosMono
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosMono
• Possui compatibilidade binária com Microsoft .NET• Roda .NET exe e DLLs• Somente .NET, mas não Win32• Você pode re-compilar com mcs mas você não
precisa• Você encontrará no diretório do Mono:
– Arquivos .exe (mono application.exe)– Arquivos .dll– Bibliotecas compartilhadas– Arquivos de mapeamento
• Inclui suporte a GAC (Global Assembly Cache)– Proteção a DLL-Hell
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosMono e Windows
• Mono também está disponível para Windows• Suporta:
• Co-host com Microsoft .NET• XSP (Webserver ASP.NET)• Gtk#/GTK+ para Windows• Plugin para Visual Studio .NET• Documentação• Desenvolvimento Gtk# (Glade)• …
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosASP.NET no Mono
• Suporte a Web applications e Web services• XSP
• Servidor Web Standalone• Suporte a ASP.NET e HTML estático• Uso em desenvolvimento• Base para mod_mono
• mod_mono• Plugin para Apache (v1 e v2)• Usa Apache para todas as tarefas comuns de
servidor web• Comunicação socket Unix
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosMono e P/Invoke
• Suporte a Platform Invocation services• Suporte a código não seguro• …• Maior problema em portar de Windows para outras
plataformas• O código nativo que você invoca em Windows existe
em Linux?• MoMa – verificação de chamadas a APIs
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosMono e componentes de terceiros
• Business Logic, GUI controls, Web Controls, Web services, Bibliotecas estáticas …
• É uma implementação pura ou um wrapper de um componente ou código Windows?
• É uma aplicação .NET limpa?• O time do Mono está trabalhando em uma
certificação para provedores de componentes• MoMa – validação de componentes
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosMono - IDEs
• Visual Studio com Mono Tools for Visual Studio• http://go-mono.com/monovs/
• #Develop• http://www.icsharpcode.com/OpenSource/SD
• MonoDevelop• http:/www.monodevelop.com
• x-develop• http://www.x-develop.com
• Eclipse•
http://www.improve-technologies.com/alpha/esharp
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosMono e a Novell
• Novell patrocina projeto• Equipe de desenvolvedores
• Novell usa Mono em vários projetos• NLD, iFolder, iPrint, VO, Red Carpet/Zen, Beagle, F-
Spot photo management, Hula Groupware Server, Banshee media player, CASA, ZenWorks Linux Management, …
• Novell oferece suporte comercial e consultoria em Mono
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosUso do Mono por outras empresas
• Inúmeras empresas no mundo todo já adotaram o Mono• Novell, Yahoo!, Electronic Arts, Mozilla,
Metrosharp, Codice, MindTouch, Medsphere, VistaDB, Mainsoft, SourceGear, Coversant, Wikipedia, GovTrack.us, …
• Projetos dos mais variados tipos• Sansa MP3 player baseado em Mono• Virtuoso Universal Server• Unity3D Game Development System• SplendidCRM• VistaDB Database• DekiWiki• Sims 3
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosSansa (SanDisk)
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosBanshee MP3 Player
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosUnity 3D Game Development System
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosUnity 3D Game Development System
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosUnity 3D Game Development System
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosSplendidCRM
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosPlastic Source Control Management
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosPaint.NET
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosGraffiti CMS
Copyright © 2007-2009 Vsoft Tecnologia
Frameworks alternativosRoadmap do Mono
• Atualmente na versão 2.4• Totalmente compatível com .NET 1.0, 1.1 e 2.0• Suporte a C# 2.0 e 3.0 e parcial a .NET 3.0 e 3.5• Compilador VB.NET concluído (VBNC)
• Mono 2.6 (segundo trimestre de 2009)• Suporte total a ASP.NET MVC• Suporte a LINQ to DB• Plugin para debug e deploy no Visual Studio
• Mono 2.8 (quarto trimestre de 2009)• Moonlight 2.0• MonoDevelop 2.4• Compilador C# 4.0
Copyright © 2007-2009 Vsoft Tecnologia
Ferramentas alternativasIDEs
• #Develop• Suporta:
• Design de formulários Windows Forms C#, VB.NET e Boo
• Code completation para C#, VB.NET e Boo• Debugger integrado• Code Analysis e Refactoring• Suporte a .NET 1.1, 2.0, 3.5, Mono e Compact
Framework• Poderoso editor de código com suporte a XML e
outros• Suporte a criação de instaladores no formato
Windows Installer• Integração com Subversion
• Funciona com Windows
Copyright © 2007-2009 Vsoft Tecnologia
Ferramentas alternativasIDEs - #Develop
Copyright © 2007-2009 Vsoft Tecnologia
Ferramentas alternativasIDEs
• MonoDevelop (porte do #Develop)• Suporta:
• Design de formulários Gtk#• Code completation para C#• Class Management• Ajuda on-line• Suporte a projetos .NET 1.1, 2.0, Mono e Moonlight• Suporte a projetos Gtk#, console e ASP.NET• Suporte as linguagens C#, Visual Basic, Boo, Java
(IKVM) e C++• Suporte a Add-ins• Suporte a abertura de projetos do Visual Studio• Suporte a Subversion
• Funciona com Linux, Windows e MAC OS
Copyright © 2007-2009 Vsoft Tecnologia
Ferramentas alternativasIDEs – MonoDevelop
Copyright © 2007-2009 Vsoft Tecnologia
Ferramentas alternativasIDEs
• X-develop (comercial)• Suporta:
• Design de formulários Windows Forms e Gtk#• Code completation, Code inspections, Error
checking e Refactoring• Debugger integrado • Linguagens C#, J#, VB.NET e Java• Suporte a .NET, Mono e Java• Suporte a projetos do Visual Studio .NET• Suporte a CVS, SubVersion, SourceSafe e outros
• Funciona com Linux, Windows e MAC OS
Copyright © 2007-2009 Vsoft Tecnologia
Ferramentas alternativasIDEs – X-develop
Copyright © 2007-2009 Vsoft Tecnologia
Ferramentas alternativasIDEs
• Plugin C# para Eclipse• CodeGear RAD Studio 2009 (comercial)
• Delphi .NET
Copyright © 2007-2009 Vsoft Tecnologia
Demonstração
Copyright © 2007-2009 Vsoft Tecnologia
Principais projetosProjetos mantidos pela comunidade .NET
• CMS• DotNetNuke, umbraco, Rainbow, …
• Persistência de objetos• NHibernate, Gentle, Sooda, BATIS.NET, XPrevail, …
• Banco de dados• Todos os banco de dados conhecidos Open Source
suportam .NET atualmente • Inúmeros projetos para os mais variados propósitos• http://csharp-source.net• http://www.codeplex.com• http://www.sourceforge.net
Copyright © 2007-2009 Vsoft Tecnologia
Java no .NETRodando Java no .NET e .NET no Java
• IKVM.NET• Uma máquina virtual Java implementada para .NET e
Mono• Uma implementação em .NET da class library Java• Ferramentas para possibilitar interoperabilidade Java
e .NET• Permite utilizar bibliotecas Java em aplicações .NET• Permite transformar myapp.jar Java em
myapp.exe .NET• http://www.ikvm.net
Copyright © 2007-2009 Vsoft Tecnologia
Java no .NETRodando Java no .NET e .NET no Java
• Mainsoft Enterprise Edition (comercial)• Desenvolvimento em C# ou VB.NET no Visual Studio• Acesso a componentes Java externos• Compilação para J2EE• Suporta WebSphere® Application Server e Portal
Server, JBoss® e Tomcat application servers• Versão Professional disponível gratuitamente• Programadores Java podem se beneficiar da
produtividade do C# e Visual Studio• http://www.mainsoft.com
Copyright © 2007-2009 Vsoft Tecnologia
Java no .NETRodando Java no .NET e .NET no Java
• Mainsoft Enterprise Edition (comercial)
Copyright © 2007-2009 Vsoft Tecnologia
Java no .NETRodando Java no .NET e .NET no Java
• Mainsoft Enterprise Edition (comercial)
ASP.NET e Server Applications instaladas em um Java EE application server
Copyright © 2007-2009 Vsoft Tecnologia
Java no .NETMainsoft Enterprise Edition (comercial)
Copyright © 2007-2009 Vsoft Tecnologia
Java no .NETMainsoft Enterprise Edition (comercial)
Copyright © 2007-2009 Vsoft Tecnologia
Principais vantagens em relação ao Java• Diversidade de linguagens;• JIT Compilation para código nativo, garantindo
melhor performance;• Simplicidade na criação de Webservices;• Ambiente de desenvolvimento mais produtivo -
Visual Studio.
Copyright © 2007-2009 Vsoft Tecnologia
Introdução ao Silverlight• Definição
• Silverlight é o nome de uma nova tecnologia de apresentação na Web criada para ser executada em diversas plataformas. Ele permite a criação de experiências elaboradas, interativas e visualmente impressionantes que podem ser executadas em qualquer lugar; em navegadores ou em vários dispositivos e sistemas operacionais de desktop.
• Principais características• Baseado na linguagem XAML (eXtensible Application Markup
Language).• É pequeno e de fácil instalação, possuindo menos de 2
MegaBytes.• Pode criar e trabalhar com gráficos vetorizados, assim como
textos, animações e sobreposições que interagem com gráficos e efeitos de alta qualidade.
• Os desenvolvedores podem criar aplicativos programando em diversas linguagens, dentre elas: C#, Python, Ruby e Visual Basic.
• Foi projetado para funcionar em plataforma-cruzada.
Copyright © 2007-2009 Vsoft Tecnologia
Moonlight• O Moonlight é a implementação Open Source do Silverlight da
Microsoft, ele é desenvolvido pelo projeto Mono que é patrocinado pela Novell e também pela Microsoft através do acordo de interoperabilidade entra as duas empresas.
• Principais características• Funciona em Linux e outros sistemas baseados em Unix/X11;• Provê um SDK para desenvolvimento Silverlight em Linux;• Instalação simples como Plugin para o Firefox;• Licenciado sob GNU LGPL.
• Disponível em http://www.mono-project.com/Moonlight
Copyright © 2007-2009 Vsoft Tecnologia
Dúvidas
?
Copyright © 2007-2009 Vsoft Tecnologia
Contatos
www.vsoft.com.brBlog: www.pedrojr.net
MSN: [email protected]