SlideShare a Scribd company logo
1 of 49
Alessandro de Oliveira Binhara
Projeto MONO BRASIL
binhara@monobrasil.org
Interoperabilidade
Java e .NET
2
Agenda
Sun (Oracle) X Microsoft
A Plataforma Java A Plataforma Mono
O Projeto Mono
Histórico, Motivações, Rodmap, Features,,
Interoperabilidade de Aplicativos .Net e Java
IKVM
Exemplo Prático
Cases
3
Sun X Microsoft
Sun (Oracle)
Uma Linguagem
Padrão, Manutenção, Comunicação
Foco na Empresa
Microsoft
Muitas Linguagens
Facilidade, Aprendizado, Preferência
Foco no Desenvolvedor
Plataforma JAVA
5
Plataforma Java
Linha do Tempo
Green Oak (1991)
*7 (1992)
Internet!!!!
HotJava (1995)
Netscape 2.0 Java enabled (1996)
Primeiro Release Java 1.02 (1996)
6
Mire no elefante e acerte na mosca!
7
Padrões X Implementações
Padrões
Especificação da linguagem Java - java.sun.com/docs/books/jls
Especificação da JVM - java.sun.com/docs/books/vmspec
Especificações da plataforma J2EE - java.sun.com/j2ee
Implementações
www.java.sun.com- implementação dos padrões Java
www.ibm.com - implementação dos padrões Java
www.gnu.org/software/classpath - implementação livre do JavaCore
www.ikvm.net/ - implementação da JVM e suas classes em .NET e
também ferramentas que permitem interoperabilidade entre Java e .NET
Plataforma .NET
9
Plataforma .NET nasce em 2001
Microsoft Lança a plataroma .Net
Coloca o C# como um padrão
O Core do .Net é colocado como padrão
Plataforma Microsoft .Net
Mult-linguagem
Coletor de Lixo
C# tem mais recursos que o java
10
O Padrão é ECMA/ISO
As especificações do Framework .Net
padronizadas pelo ECMA abordam o compilador
e a runtime
O compilador C# é o ECMA 334
O CLI (Common Language Infrastructure) é o
ECMA 335
Permite que as aplicações rodem independentes
de plataforma de hardware e de software básico
11
Interoperabilidade entre Linguagens
12
Linguagens Disponíveis
Ada for .NET – A# (http://www.usafa.af.mil/df/dfcs/bios/mcc_html/a_sharp.cfm)
VisualBasic.NET – mbas e bmcs (http://www.mono-project.com)
ANSI C
CSCC - http://www.gnu.org/projects/dotgnu/pnet.html
ICC - http://www.cs.princeton.edu/software/lcc/
C# - mcs (mono-project) e cscc (DotGNU)
Eiffel - Eiffel ENViSioN! (Eiffel Software)
Fortran - Lahey/Fujitsu Fortran for .NET (Lahey Computer Systems, Inc.)
Cobol
NetCOBOL - COBOL for .NET (Fujitsu -)
Net Express (Micro Focus)
KICKS for .NET™ (Intensity Software)
Hasquel - Hugs98 for .NET http://galois.com/~sof/hugs98.net/
Lisp
RDNZL - http://www.weitz.de/rdnzl/
Foil - http://foil.sourceforge.net/
L Sharp .NET - http://www.lsharp.org/
13
Linguagens Disponíveis
Python
IronPython - http://www.ironpython.com/
Python for .NET compiler - http://starship.python.net/crew/mhammond/dotnet/
Python for .NET - http://www.zope.org/Members/Brian/PythonNet/index_html
Boo
Liguagem Boo - http://boo.codehaus.org/
Ruby
Ruby/.NET - http://www.saltypickle.com/rubydotnet/
NETRuby - http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/nrb.html
Smalltalk
SmallScripts - http://www.smallscript.org/
#Smalltalk
LSWVST.Net - http://www.lesser-software.com/en/content/products/lswvst/lswvst-net.htm
Prolog
P # - http://www.dcs.ed.ac.uk/home/jjc/psharp/psharp-1.1.3/dlpsharp.html
TCL/TK
Mailframe - http://www.mailframe.net/Products/TCL/
TickleSharp - http://forge.novell.com/modules/xfmod/project/?ticklesharp
14
Common Language Runtime CLR
Motivos:
Diminuir a combinação Linguagens x CPUs
Operações simplificadas e unificadas entre plataformas
Portabilidade e Segurança
História:
~ 1970: P-Code (Pascal), D-Code (Gardens):
1 byte por instrução
~ 1990: Bytecode Java
Informação simbólica embutida
Offsets resolvidos na hora do “deployment”
Plataforma Mono
16
Motivações
Projeto MONO
17
Plataforma Mono
Muitas Linguagem e Muitas Plataformas
Aproveita todas as características do mundo
OpenSource
Grande acesso a documentação JAVA e .NET
Diversos Centros de capacitação já constituídos
Comercialmente já aceito
“Existe alguma grande empresa que de
suporte?”
18
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
19
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.
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
20
Multi-Linguagem e Multi-plataforma
21
O que é ?
Projeto MONO
22
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
23
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.
IKVM
Interoperabilidade JAVA e
.NET
25
O que é O IKVM?
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
26
Java Virtual Machine
27
JAVA na IKVM
28
JAVA na IKVM
29
Instalação da IKVM
apt-get install IKVM
SUSE use o YAST
No redhat tem pacotes prontos
30
Como posso usar o IKVM?
Rodando uma Classe Java (dinamicamente)
Complilando um ByteCode para CLI (.jar->.dll)
Compilando um CLI para ByteCode (.dll -> .jar)
Usar uma classe Java no C#
Usar uma classe C# no Java
31
Rodando uma aplicação java no Mono
-> javac *.java
-> jar cfm hello.jar manifest.mf Hello.class
-> ikvmc -reference:/usr/lib/ikvm/IKVM.GNU.Classpath.dll
hello.jar
-> mono hello.exe
32
Usando uma Classe Java dentro do C#
(jar -> dll)
-> mcs -reference:IKVM.GNU.ClassPath hodgepodg.cs
-> mono hodgepodge.exe
Classe Java
Código Java
33
Usando as bibliotecas do Mono dentro do
Java (dll -> jar)
PASSOS:
1) Gerar os stubs de .NET para Java, isto irá resultar em um
arquivo mscorlib.jar
2) Quando compilar as classes java irão fazer uso das bilbiotecas .NET
bastando incluir o mscorlib.jar no classpath
3) Podemos ter 2 resultados:
- criação dos binários Java para executá-los no IKVM
- ou a conversão desses binários Java para . NET
COMANDOS
-> ikvmstub mscorlib.dll
-> javac -classpath mscorlib.jar *.java
-> ikvmc -reference:IKVM.GNU.Classpath.dll CreateFile.class
-> ikvmc -reference:IKVM.GNU.Classpath.dll ShowDir.class
34
CreateFile.java
Biblioteca Mono
35
ShowFile.java
Biblioteca Mono
36
Estendendo uma classe Java em C#
1) Criar a classe Java : “Subject.java”
2) Extender essa classe dentro do C#: “Exntesion.cs”
3) Compilar a classe java e gerar o .JAR
4) Converter o .JAR para um .DLL com o IKVM
5) Compilar a classe extension.cs com mono
COMANDOS
-> javac *.java
-> jar cvf subject.jar *.class
-> ikvmc -reference:IKVM.GNU.Classpath.dll subject.jar
-> mcs -reference:IKVM.GNU.Classpath.dll -reference:subject.dll
extension.cs -out:extension.exe
37
Herança!!!!! Subject.java
38
Herança !! Extencion.cs
39
Mono Movies Flash
Aplicação Multi-linguagem
Criar classe MyClass.java (desenha um gráfico na tela)
A classe java usa as bibliotecas Mono (GTK#) para desenhar
na tela
Criar uma aplicação Boo para executar a classe Java
Passos: compilar o Java -> converte para DLL -> compilar a
aplicação Boo
40
Exemplo
41
Figure.java
42
Ellipse.boo
import system
class Ellipse (Figure)
protected w
protected h
def construct (x,y,rw,rh)
super(x,y)
w = rw
h = rh
override def print ():
Console.Write("Ellipse [w:" + w + " h:" + h "] ")
super()
Herança
Chamada a super
Classe
43
Circle.cs
Herança
Chamada a super
Classe
44
CASE Kidux
Sistema para controle parental em uma distribuição linux para
crianças
Softwares em suma maioria escritos em java
Mudança de requisito: Rodar no Windows
Tem que ser simples de instalar
Alta integração com windows
Problemas :
Necessidade da VM java
Instalador grande(+10MB) difícil de fazer donwload
Com IKVM
Não precisa mais do java
Caiu para menos de 2MB o tamanho
Fácil integração com windpw
45
Case Projeto Rhodes
Projeto Militar
Requisitos:
Desenvolvimento Rápido
Prototipagem rápida
Baixo consumo de Banda
Várias interfaces com usuário
Redundância de Plataforma (Java, Mono e .NET)
46
CASE Jsenna
47
CASE : Arquitetura Jsenna
Regras de Negócio em XML
Framework Jsenna
Abstração servidor de aplicação
Implementação
Em Aspx Mono
Implementação
J2EE
Refactoring JSenna,
JBanana, Jolt
Frameworks Portados
JBanana
Jolt
Venus
Log4J
Jasper
JDBC
PostgreSQL
MySQL
É possível hoje
conectar no MySQL
usando JDBC no
Mono!!
48
Alessandro de Oliveira Binhara
Projeto MONO BRASIL
binhara@monobrasil.org
O Projeto Mono: Aplicações
.NET para sistemas não
Windows

More Related Content

What's hot

Adobe Phonegap
Adobe PhonegapAdobe Phonegap
Adobe Phonegapwlsilva
 
Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...
Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...
Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...Marco Gomes
 
Desenvolvimento web ágil com Python e web2py #qconsp #qcon
Desenvolvimento web ágil com Python e web2py #qconsp #qconDesenvolvimento web ágil com Python e web2py #qconsp #qcon
Desenvolvimento web ágil com Python e web2py #qconsp #qconBruno Rocha
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorGustavo Bellini Bigardi
 
FirefoxOS - A plataforma Open Web
FirefoxOS - A plataforma Open WebFirefoxOS - A plataforma Open Web
FirefoxOS - A plataforma Open WebGuilherme Farias
 
Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Fernando Gonçalves
 
Orquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com SymfonyOrquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com SymfonyFlávio Lisboa
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisJavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisWilliam Oliveira
 
Silverlight 4 e Expression Blend 4
Silverlight 4 e Expression Blend 4Silverlight 4 e Expression Blend 4
Silverlight 4 e Expression Blend 4Rodrigo Kono
 
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3Loiane Groner
 
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsersGustavo Bellini Bigardi
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão GeralEder Nogueira
 
Tecnologias Web 2.0
Tecnologias Web 2.0 Tecnologias Web 2.0
Tecnologias Web 2.0 Duarte Nunes
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front endDouglas Matoso
 

What's hot (20)

Adobe Phonegap
Adobe PhonegapAdobe Phonegap
Adobe Phonegap
 
Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...
Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...
Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...
 
SPA's com Blazor e .NET Core
SPA's com Blazor e .NET CoreSPA's com Blazor e .NET Core
SPA's com Blazor e .NET Core
 
Desenvolvimento web ágil com Python e web2py #qconsp #qcon
Desenvolvimento web ágil com Python e web2py #qconsp #qconDesenvolvimento web ágil com Python e web2py #qconsp #qcon
Desenvolvimento web ágil com Python e web2py #qconsp #qcon
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com Blazor
 
FirefoxOS - A plataforma Open Web
FirefoxOS - A plataforma Open WebFirefoxOS - A plataforma Open Web
FirefoxOS - A plataforma Open Web
 
Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
Orquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com SymfonyOrquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com Symfony
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisJavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
 
Silverlight 4 e Expression Blend 4
Silverlight 4 e Expression Blend 4Silverlight 4 e Expression Blend 4
Silverlight 4 e Expression Blend 4
 
PHP versus Java
PHP versus JavaPHP versus Java
PHP versus Java
 
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
 
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão Geral
 
Tecnologias Web 2.0
Tecnologias Web 2.0 Tecnologias Web 2.0
Tecnologias Web 2.0
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
File3
File3File3
File3
 
Desenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHPDesenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHP
 

Viewers also liked

C sharp feup10set2001
C sharp feup10set2001C sharp feup10set2001
C sharp feup10set2001leojr_0
 
Construindo Apps Com SignalR
Construindo Apps Com SignalRConstruindo Apps Com SignalR
Construindo Apps Com SignalRIvan Paulovich
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLFábio Delboni
 
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoMinicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoVinicius Quaiato
 
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulasTOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulasFábio Delboni
 
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONITOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONIFábio Delboni
 
Programação c# - banco de dados
Programação   c# - banco de dadosProgramação   c# - banco de dados
Programação c# - banco de dadosdouglasschaefler
 
Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)Feliz Bunguele
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#André Luiz
 
Visão geral da segurança em Java EE
Visão geral da segurança em Java EEVisão geral da segurança em Java EE
Visão geral da segurança em Java EEHelder da Rocha
 
Asp julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp julio battisti - criando sites dinamicos com asp 3.0leojr_0
 
105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.net105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.netFernando Helen
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net codersRenato Groff
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.netleojr_0
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Vinicius Vieira
 

Viewers also liked (20)

C sharp feup10set2001
C sharp feup10set2001C sharp feup10set2001
C sharp feup10set2001
 
Construindo Apps Com SignalR
Construindo Apps Com SignalRConstruindo Apps Com SignalR
Construindo Apps Com SignalR
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoMinicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
 
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulasTOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
 
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONITOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
 
Apostila php
Apostila phpApostila php
Apostila php
 
Programação c# - banco de dados
Programação   c# - banco de dadosProgramação   c# - banco de dados
Programação c# - banco de dados
 
Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
 
Visão geral da segurança em Java EE
Visão geral da segurança em Java EEVisão geral da segurança em Java EE
Visão geral da segurança em Java EE
 
Curso asp - intermediario
Curso   asp - intermediarioCurso   asp - intermediario
Curso asp - intermediario
 
Asp julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp julio battisti - criando sites dinamicos com asp 3.0
 
105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.net105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.net
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
Tutorial EJB 3.0 (2009)
Tutorial EJB 3.0 (2009)Tutorial EJB 3.0 (2009)
Tutorial EJB 3.0 (2009)
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.net
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#
 

Similar to Interop itcare: Interoperabilidade Java e .NET

Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não WindowsPalestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não WindowsAlessandro Binhara
 
O Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não WindowsO Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não WindowsAlessandro 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
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem JavaUFPA
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java FundamentosWilson Lima
 
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
 
Projetos Mono e Moonlight
Projetos Mono e MoonlightProjetos Mono e Moonlight
Projetos Mono e MoonlightPedro Alves Jr.
 
JAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagemJAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagemliverig
 

Similar to Interop itcare: Interoperabilidade Java e .NET (20)

O projeto Mono
O projeto MonoO projeto Mono
O projeto Mono
 
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não WindowsPalestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows
 
O Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não WindowsO Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não Windows
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java Fundamentos
 
Java 01
Java 01Java 01
Java 01
 
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
 
Projetos Mono e Moonlight
Projetos Mono e MoonlightProjetos Mono e Moonlight
Projetos Mono e Moonlight
 
.NET Open Source
.NET Open Source.NET Open Source
.NET Open Source
 
Java e Software Livre
Java e Software LivreJava e Software Livre
Java e Software Livre
 
Minicurso Java
Minicurso JavaMinicurso Java
Minicurso Java
 
JAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagemJAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagem
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
NetBeans: a IDE que você precisa
NetBeans: a IDE que você precisaNetBeans: a IDE que você precisa
NetBeans: a IDE que você precisa
 
Introdução a tecnologia Java
Introdução a tecnologia JavaIntrodução a tecnologia Java
Introdução a tecnologia Java
 
Introdução a tecnologia Java
Introdução a tecnologia JavaIntrodução a tecnologia Java
Introdução a tecnologia Java
 
Desenvolvimento de Aplicações
Desenvolvimento de AplicaçõesDesenvolvimento de Aplicações
Desenvolvimento de Aplicações
 
Aula1
Aula1Aula1
Aula1
 

More from 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
 
Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.Alessandro 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
 

More from 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
 
Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.
 
Games imersivos
Games imersivosGames imersivos
Games imersivos
 
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
 
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!!!
 

Interop itcare: Interoperabilidade Java e .NET

  • 1. Alessandro de Oliveira Binhara Projeto MONO BRASIL binhara@monobrasil.org Interoperabilidade Java e .NET
  • 2. 2 Agenda Sun (Oracle) X Microsoft A Plataforma Java A Plataforma Mono O Projeto Mono Histórico, Motivações, Rodmap, Features,, Interoperabilidade de Aplicativos .Net e Java IKVM Exemplo Prático Cases
  • 3. 3 Sun X Microsoft Sun (Oracle) Uma Linguagem Padrão, Manutenção, Comunicação Foco na Empresa Microsoft Muitas Linguagens Facilidade, Aprendizado, Preferência Foco no Desenvolvedor
  • 5. 5 Plataforma Java Linha do Tempo Green Oak (1991) *7 (1992) Internet!!!! HotJava (1995) Netscape 2.0 Java enabled (1996) Primeiro Release Java 1.02 (1996)
  • 6. 6 Mire no elefante e acerte na mosca!
  • 7. 7 Padrões X Implementações Padrões Especificação da linguagem Java - java.sun.com/docs/books/jls Especificação da JVM - java.sun.com/docs/books/vmspec Especificações da plataforma J2EE - java.sun.com/j2ee Implementações www.java.sun.com- implementação dos padrões Java www.ibm.com - implementação dos padrões Java www.gnu.org/software/classpath - implementação livre do JavaCore www.ikvm.net/ - implementação da JVM e suas classes em .NET e também ferramentas que permitem interoperabilidade entre Java e .NET
  • 9. 9 Plataforma .NET nasce em 2001 Microsoft Lança a plataroma .Net Coloca o C# como um padrão O Core do .Net é colocado como padrão Plataforma Microsoft .Net Mult-linguagem Coletor de Lixo C# tem mais recursos que o java
  • 10. 10 O Padrão é ECMA/ISO As especificações do Framework .Net padronizadas pelo ECMA abordam o compilador e a runtime O compilador C# é o ECMA 334 O CLI (Common Language Infrastructure) é o ECMA 335 Permite que as aplicações rodem independentes de plataforma de hardware e de software básico
  • 12. 12 Linguagens Disponíveis Ada for .NET – A# (http://www.usafa.af.mil/df/dfcs/bios/mcc_html/a_sharp.cfm) VisualBasic.NET – mbas e bmcs (http://www.mono-project.com) ANSI C CSCC - http://www.gnu.org/projects/dotgnu/pnet.html ICC - http://www.cs.princeton.edu/software/lcc/ C# - mcs (mono-project) e cscc (DotGNU) Eiffel - Eiffel ENViSioN! (Eiffel Software) Fortran - Lahey/Fujitsu Fortran for .NET (Lahey Computer Systems, Inc.) Cobol NetCOBOL - COBOL for .NET (Fujitsu -) Net Express (Micro Focus) KICKS for .NET™ (Intensity Software) Hasquel - Hugs98 for .NET http://galois.com/~sof/hugs98.net/ Lisp RDNZL - http://www.weitz.de/rdnzl/ Foil - http://foil.sourceforge.net/ L Sharp .NET - http://www.lsharp.org/
  • 13. 13 Linguagens Disponíveis Python IronPython - http://www.ironpython.com/ Python for .NET compiler - http://starship.python.net/crew/mhammond/dotnet/ Python for .NET - http://www.zope.org/Members/Brian/PythonNet/index_html Boo Liguagem Boo - http://boo.codehaus.org/ Ruby Ruby/.NET - http://www.saltypickle.com/rubydotnet/ NETRuby - http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/nrb.html Smalltalk SmallScripts - http://www.smallscript.org/ #Smalltalk LSWVST.Net - http://www.lesser-software.com/en/content/products/lswvst/lswvst-net.htm Prolog P # - http://www.dcs.ed.ac.uk/home/jjc/psharp/psharp-1.1.3/dlpsharp.html TCL/TK Mailframe - http://www.mailframe.net/Products/TCL/ TickleSharp - http://forge.novell.com/modules/xfmod/project/?ticklesharp
  • 14. 14 Common Language Runtime CLR Motivos: Diminuir a combinação Linguagens x CPUs Operações simplificadas e unificadas entre plataformas Portabilidade e Segurança História: ~ 1970: P-Code (Pascal), D-Code (Gardens): 1 byte por instrução ~ 1990: Bytecode Java Informação simbólica embutida Offsets resolvidos na hora do “deployment”
  • 17. 17 Plataforma Mono Muitas Linguagem e Muitas Plataformas Aproveita todas as características do mundo OpenSource Grande acesso a documentação JAVA e .NET Diversos Centros de capacitação já constituídos Comercialmente já aceito “Existe alguma grande empresa que de suporte?”
  • 18. 18 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
  • 19. 19 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. 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
  • 21. 21 O que é ? Projeto MONO
  • 22. 22 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
  • 23. 23 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.
  • 25. 25 O que é O IKVM? 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
  • 29. 29 Instalação da IKVM apt-get install IKVM SUSE use o YAST No redhat tem pacotes prontos
  • 30. 30 Como posso usar o IKVM? Rodando uma Classe Java (dinamicamente) Complilando um ByteCode para CLI (.jar->.dll) Compilando um CLI para ByteCode (.dll -> .jar) Usar uma classe Java no C# Usar uma classe C# no Java
  • 31. 31 Rodando uma aplicação java no Mono -> javac *.java -> jar cfm hello.jar manifest.mf Hello.class -> ikvmc -reference:/usr/lib/ikvm/IKVM.GNU.Classpath.dll hello.jar -> mono hello.exe
  • 32. 32 Usando uma Classe Java dentro do C# (jar -> dll) -> mcs -reference:IKVM.GNU.ClassPath hodgepodg.cs -> mono hodgepodge.exe Classe Java Código Java
  • 33. 33 Usando as bibliotecas do Mono dentro do Java (dll -> jar) PASSOS: 1) Gerar os stubs de .NET para Java, isto irá resultar em um arquivo mscorlib.jar 2) Quando compilar as classes java irão fazer uso das bilbiotecas .NET bastando incluir o mscorlib.jar no classpath 3) Podemos ter 2 resultados: - criação dos binários Java para executá-los no IKVM - ou a conversão desses binários Java para . NET COMANDOS -> ikvmstub mscorlib.dll -> javac -classpath mscorlib.jar *.java -> ikvmc -reference:IKVM.GNU.Classpath.dll CreateFile.class -> ikvmc -reference:IKVM.GNU.Classpath.dll ShowDir.class
  • 36. 36 Estendendo uma classe Java em C# 1) Criar a classe Java : “Subject.java” 2) Extender essa classe dentro do C#: “Exntesion.cs” 3) Compilar a classe java e gerar o .JAR 4) Converter o .JAR para um .DLL com o IKVM 5) Compilar a classe extension.cs com mono COMANDOS -> javac *.java -> jar cvf subject.jar *.class -> ikvmc -reference:IKVM.GNU.Classpath.dll subject.jar -> mcs -reference:IKVM.GNU.Classpath.dll -reference:subject.dll extension.cs -out:extension.exe
  • 39. 39 Mono Movies Flash Aplicação Multi-linguagem Criar classe MyClass.java (desenha um gráfico na tela) A classe java usa as bibliotecas Mono (GTK#) para desenhar na tela Criar uma aplicação Boo para executar a classe Java Passos: compilar o Java -> converte para DLL -> compilar a aplicação Boo
  • 42. 42 Ellipse.boo import system class Ellipse (Figure) protected w protected h def construct (x,y,rw,rh) super(x,y) w = rw h = rh override def print (): Console.Write("Ellipse [w:" + w + " h:" + h "] ") super() Herança Chamada a super Classe
  • 44. 44 CASE Kidux Sistema para controle parental em uma distribuição linux para crianças Softwares em suma maioria escritos em java Mudança de requisito: Rodar no Windows Tem que ser simples de instalar Alta integração com windows Problemas : Necessidade da VM java Instalador grande(+10MB) difícil de fazer donwload Com IKVM Não precisa mais do java Caiu para menos de 2MB o tamanho Fácil integração com windpw
  • 45. 45 Case Projeto Rhodes Projeto Militar Requisitos: Desenvolvimento Rápido Prototipagem rápida Baixo consumo de Banda Várias interfaces com usuário Redundância de Plataforma (Java, Mono e .NET)
  • 47. 47 CASE : Arquitetura Jsenna Regras de Negócio em XML Framework Jsenna Abstração servidor de aplicação Implementação Em Aspx Mono Implementação J2EE Refactoring JSenna, JBanana, Jolt Frameworks Portados JBanana Jolt Venus Log4J Jasper JDBC PostgreSQL MySQL É possível hoje conectar no MySQL usando JDBC no Mono!!
  • 48. 48
  • 49. Alessandro de Oliveira Binhara Projeto MONO BRASIL binhara@monobrasil.org O Projeto Mono: Aplicações .NET para sistemas não Windows