Copyright © 2007 Vsoft Tecnologia .NET Open Source Alternativas a plataforma Microsoft .NET Pedro Alves Junior Diretor de Desenvolvimento Vsoft Tecnologia
May 24, 2015
Copyright © 2007 Vsoft Tecnologia
.NET Open Source
Alternativas a plataforma Microsoft .NET
Pedro Alves JuniorDiretor de DesenvolvimentoVsoft Tecnologia
Copyright © 2007 Vsoft Tecnologia
Agenda
• .NET aberto• Frameworks alternativos • Ferramentas alternativas• Principais projetos• Java no .NET
Copyright © 2007 Vsoft Tecnologia
.NET aberto
Padrões ECMA
• A Microsoft submeteu, desde a primeira versão, as especificações do C#, do ambiente de execução, dos metadados e outros variados pedaços da plataforma de desenvolvimento .NET para o ECMA padronizar (normatizar). • O ECMA (European Computers Manufactures Association) é um orgão de padronização europeu, muitas de suas padronizações tornam-se normas ISO.
Copyright © 2007 Vsoft Tecnologia
Frameworks alternativos
Projeto 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 Vsoft Tecnologia
Frameworks alternativos
DotGNU
• 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 Vsoft Tecnologia
Frameworks alternativos
Mono
• 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 Vsoft Tecnologia
Frameworks alternativos
Mono
Copyright © 2007 Vsoft Tecnologia
Frameworks alternativos
Mono
Copyright © 2007 Vsoft Tecnologia
Frameworks alternativos
Mono
• 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 Vsoft Tecnologia
Frameworks alternativos
Mono 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 Vsoft Tecnologia
Frameworks alternativos
ASP.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 Vsoft Tecnologia
Frameworks alternativos
Mono 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 Vsoft Tecnologia
Frameworks alternativos
Mono 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 Vsoft Tecnologia
Frameworks alternativos
Mono - IDEs
• Visual Studio .NET• http://www.mfcon.com/prj2make
• #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 Vsoft Tecnologia
Frameworks alternativos
Mono 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, Hula, Banshee, CASA, …
• Novell oferece suporte comercial e consultoria em Mono
Copyright © 2007 Vsoft Tecnologia
Frameworks alternativos
Uso do Mono por outras empresas
• Inúmeras empresas no mundo todo já adotaram o Mono• Novell, Sandisk, Yahoo!, 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• OTEE 3D Game Development System• SplendidCRM• VistaDB Database
Copyright © 2007 Vsoft Tecnologia
Frameworks alternativos
Sansa
Copyright © 2007 Vsoft Tecnologia
Frameworks alternativos
OTEE 3D Game Development System
Copyright © 2007 Vsoft Tecnologia
Frameworks alternativos
SplendidCRM
Copyright © 2007 Vsoft Tecnologia
Frameworks alternativos
Vault da SourceGear
Copyright © 2007 Vsoft Tecnologia
Frameworks alternativos
Roadmap do Mono
• Atualmente na versão 1.2.5• Totalmente compatível com .NET 1.0 e 1.1• Suporte a C# 2.0 e compatibilidade parcial com .NET 2.0
• Mono 2.0 (segundo semestre de 2007)• Suporte total a ASP.NET 2.0• Suporte total a ADO.NET 2.0• Versão beta do Windows Forms 2.0• Compilador VB.NET concluído (VBNC)
• Mono 2.2 (primeiro bimestre de 2008)• Suporte total a Windows Forms 2.0• Novas otimizações do JIT• Beta do C# 3.0 e Linq
Copyright © 2007 Vsoft Tecnologia
Ferramentas alternativas
IDEs
• #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, 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 Vsoft Tecnologia
Ferramentas alternativas
IDEs - SharpDevelop
Copyright © 2007 Vsoft Tecnologia
Ferramentas alternativas
IDEs - SharpDevelop
Copyright © 2007 Vsoft Tecnologia
Ferramentas alternativas
IDEs
• MonoDevelop (porte do #Develop)• Suporta:
• Design de formulários Gtk#• Code completation para C#• Class Management• Ajuda on-line• Suporte a Mono• Suporte a projetos Gtk#, console e ASP.NET• Suporte a Add-ins
• Funciona com Linux, Windows e MAC OS
Copyright © 2007 Vsoft Tecnologia
Ferramentas alternativas
IDEs - MonoDevelop
Copyright © 2007 Vsoft Tecnologia
Ferramentas alternativas
IDEs - MonoDevelop
Copyright © 2007 Vsoft Tecnologia
Ferramentas alternativas
IDEs
• 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 Vsoft Tecnologia
Ferramentas alternativas
IDEs - MonoDevelop
Copyright © 2007 Vsoft Tecnologia
Ferramentas alternativas
IDEs – Plugin C# para Elipse
Copyright © 2007 Vsoft Tecnologia
Ferramentas alternativas
IDEs
• CodeGear C#Builder (comercial)• CodeGear Delphi (comercial)
Copyright © 2007 Vsoft Tecnologia
Principais projetos
Projetos 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 Vsoft Tecnologia
Principais projetos
Projetos mantidos pela comunidade .NET
• nDeveloper Framework• Framework de mapeamento objeto/relacional, acesso a multi-banco de dados, geração de código e produtividade.
• http://ndeveloper.vsoft.com.br
Copyright © 2007 Vsoft Tecnologia
Principais projetos
nDeveloper no Windows
Copyright © 2007 Vsoft Tecnologia
Principais projetos
nDeveloper no Linux
Copyright © 2007 Vsoft Tecnologia
Java no .NET
Rodando Java no .NET e .NET no Java
• IKVM.NET• Uma máquina virtual Java implementada em .NET• Uma implementação em .NET da class library Java• Ferramentas para possibilitar interoperabilidade Java e .NET• http://www.ikvm.net
• Mainsoft Visual MainWin (comercial)• Desenvolvimento em C# ou VB.NET no Visual Studio .NET• Compilação para J2EE• Suporta WebSphere® Application Server, BEA WebLogic®, JBoss® e Tomcat application servers• Programadores Java podem se beneficiar da produtividade do C# e Visual Studio .NET• http://www.mainsoft.com
Copyright © 2007 Vsoft Tecnologia
Java no .NET
Rodando Java no .NET e .NET no Java
•Mainsoft Visual MainWin (comercial)
Copyright © 2007 Vsoft Tecnologia
Java no .NET
Mainsoft Visual MainWin (comercial)
Copyright © 2007 Vsoft Tecnologia
Java no .NET
Mainsoft Visual MainWin (comercial)
Copyright © 2007 Vsoft Tecnologia
Contatos
www.vsoft.com.brthespoke.net/blogs/pedrojr
MSN: [email protected]