47
Copyright © 2007-2009 Vsoft Tecnologia .NET Open Source Trazendo os Desenvolvedores Windows para o Mundo Linux Pedro Alves Junior Diretor de Desenvolvimento Vsoft Tecnologia Líder do .NUG - .NET User Group

NET Open Source 2009

Embed Size (px)

DESCRIPTION

Apresentação sobre projetos Open Source ligados a plataforma .NET da Microsoft.

Citation preview

Page 1: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

.NET Open Source

Trazendo os Desenvolvedores Windows para o Mundo Linux

Pedro Alves JuniorDiretor de DesenvolvimentoVsoft TecnologiaLíder do .NUG - .NET User Group

Page 2: NET Open Source 2009

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

Page 3: NET Open Source 2009

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, inclusive

iPhone• Aplicações embarcadas

• 100% orientado a objetos• Ambiente multilinguagem

Page 4: NET Open Source 2009

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 - CLI• 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

Page 5: NET Open Source 2009

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/

Page 6: NET Open Source 2009

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

Page 7: NET Open Source 2009

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

Page 8: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosMono

Page 9: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosMono

Page 10: NET Open Source 2009

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

Page 11: NET Open Source 2009

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)• …

Page 12: NET Open Source 2009

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

Page 13: NET Open Source 2009

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

Page 14: NET Open Source 2009

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

Page 15: NET Open Source 2009

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

Page 16: NET Open Source 2009

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

Page 17: NET Open Source 2009

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, Cogmation…

• Projetos dos mais variados tipos• Sansa MP3 player baseado em Mono• Virtuoso Universal Server• Unity3D Game Development System• SplendidCRM• VistaDB Database• DekiWiki• Sims 3

Page 18: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosSansa (SanDisk)

Page 19: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosBanshee MP3 Player

Page 20: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosUnity 3D Game Development System

Page 21: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosUnity 3D Game Development System

Page 22: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosUnity 3D Game Development System

Page 23: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosSplendidCRM

Page 24: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosPlastic Source Control Management

Page 25: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosPaint.NET

Page 26: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosGraffiti CMS

Page 27: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Frameworks alternativosIscambo

www.iscambo.com

Page 28: NET Open Source 2009

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 (Novembro de 2009)• Suporte total a ASP.NET MVC• Suporte a LINQ to DB• Plugin para debug e deploy no Visual Studio

• Mono 2.8 (não definido)• Moonlight 2.0• MonoDevelop 2.4• Suporte inicial ao compilador C# 4.0

Page 29: NET Open Source 2009

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

Page 30: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Ferramentas alternativasIDEs - #Develop

Page 31: NET Open Source 2009

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

Page 32: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Ferramentas alternativasIDEs – MonoDevelop

Page 33: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Ferramentas alternativasIDEs – MonoDevelop

Page 34: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Ferramentas alternativasIDEs – CodeGear RAD Studio 2010 (Delphi Prism)

Page 35: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Ferramentas alternativasIDEs

• Plugin C# para Eclipse

Page 36: NET Open Source 2009

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

Page 37: NET Open Source 2009

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

Page 38: NET Open Source 2009

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

Page 39: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Java no .NETRodando Java no .NET e .NET no Java

• Mainsoft Enterprise Edition (comercial)

Page 40: NET Open Source 2009

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

Page 41: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Java no .NETMainsoft Enterprise Edition (comercial)

Page 42: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Java no .NETMainsoft Enterprise Edition (comercial)

Page 43: NET Open Source 2009

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.

Page 44: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Introdução ao Silverlight• Definição

• Nova tecnologia de apresentação rica na Web criada para ser executada em diversas plataformas.

• Principais características• Baseado na linguagem XAML (eXtensible Application Markup

Language).• É pequeno e de fácil instalação, possuindo menos de 5

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.

Page 45: NET Open Source 2009

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

Page 46: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Dúvidas

?

Page 47: NET Open Source 2009

Copyright © 2007-2009 Vsoft Tecnologia

Contatos

www.vsoft.com.brBlog: www.pedrojr.net

MSN: [email protected]