Projeto MonoBrasil: O retorno no Jedi
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Projeto MonoBrasil: O retorno no Jedi

  • 246 views
Uploaded on

Depois de um longo tempo sem participar em evento de Software livre o MonoBrasil retorno ao Latino Ware em 2009 falando do Mono de usa novidades como IronPython, IronRuby, Mono CLI, C# shell,......

Depois de um longo tempo sem participar em evento de Software livre o MonoBrasil retorno ao Latino Ware em 2009 falando do Mono de usa novidades como IronPython, IronRuby, Mono CLI, C# shell, MonoGames, Unity e muitas outras tecnologias como o inicio do MonoDroid e MonoTouch

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
246
On Slideshare
246
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.     http://www.monobrasil.orghttp://www.monobrasil.org Alessandro Binhara MONO BRASIL
  • 2.     http://www.monobrasil.orghttp://www.monobrasil.org AgendaAgenda ● O lado Negro da Força ● Projeto Mono – O que é ? Status. RoadMap, Plataforma,  – Características, C# 3.0, Linq ● Além do .NET – Mono CLI, MonoDevelop – MoMA, VSTools, MonoTouch – MoonLigth, MonoGames
  • 3.     http://www.monobrasil.orghttp://www.monobrasil.org Nascimento do MONONascimento do MONO ● Criado por Miguel de Icaza em 2001 ● Mono é uma implementação OpenSource do .NET Permite a execução e desenvolvimento de  software .Net em ambiente Não Windows. – Inicialmente ● 5 engenheiros, Foco em aplicações desktop – Necessidade da criação de uma comunidade ● Uso de licenças GPL,LGPL e MIT
  • 4.     http://www.monobrasil.orghttp://www.monobrasil.org Microsoft em 2000Microsoft em 2000 ● Microsoft Lança a plataforma .Net – Coloca o C# como um padrão – O Core do .Net é colocado como padrão ● Plataforma Microsoft .Net – Multi-linguagem – Coletor de Lixo – C# tem mais recursos que o java
  • 5.     http://www.monobrasil.orghttp://www.monobrasil.org O Lado Negro da ForçaO Lado Negro da Força ● Armadilha do .NET ● Boicote ao Mono ● Lembram: “Não usem o  KDE(RMS)” ● Risco de Patentes ● Miguel de Icaza é o Anakin  Skywalker do Software  Livre!!!
  • 6.     http://www.monobrasil.orghttp://www.monobrasil.org O Lado Negro da ForçaO Lado Negro da Força ● Patentes de Software ● Acordo Microsoft e NOVELL ● Microsoft Patent License ● CodePlex Foundation??? ● Flex ou Moonligth ? Mono é Software Livre ! – LGPL, MIT, BSD Para o lado negro seria  o Mono um caminho ? 
  • 7.     http://www.monobrasil.orghttp://www.monobrasil.org Runtime do MonoRuntime do Mono ● É a máquina virtual do Mono ● O runtime do Mono está pronto e tem possibilidade de executar programas através de: – um compilador JIT (mono), com e sem otimizações – um interpretador (mint) – Atualmente estão trabalhando na implementação de um gerenciador de memória mais eficiente ● Os programas podem ainda ser precompilados com um Ahead-of- Time Compiler (aot)
  • 8.     http://www.monobrasil.orghttp://www.monobrasil.org Mono Compilador C# 3.0Mono Compilador C# 3.0 ● Compilador C# escrito em C# – Primeiro bootstrap em 2001, 10.000 linhas em 17s – Hoje tem 82.000 linhas, compila em 2.2s – 1.6x mais lento que o csc  '
  • 9.     http://www.monobrasil.orghttp://www.monobrasil.org Suporte C# 3.0Suporte C# 3.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  parar 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. 
  • 10.     http://www.monobrasil.orghttp://www.monobrasil.org ● Compatibilidade Binária com Microsoft .NET 1.0 / 1.1/ 2.0 / 3.0 , 3.5 e 4.0 (preview) ● Completamente escrito em licenças LGPL e BSD ● Integração completa com ambientes Linux e Windows ● Diversos toolkits gráficos: GTK, QT, Coca, Wxwindows, Windows.Forms 1.0 e 2.0 !! ● Suporte completo a ASP.NET 1.0 / 1.1/ 2.0 , Asp.NET MVC • Ajax.NET , • Silverligth/Moonligth e Silverligth ToolKit ● Suporte a Banco de Dados ● Todas as ferramentas da plataforma são escritas em C# ● Várias bibliotecas estendidas: Mozilla, OpenGL, Zip#, oog# Caracteríticas do MonoCaracteríticas do Mono
  • 11.     http://www.monobrasil.orghttp://www.monobrasil.org APISAPIS
  • 12.     http://www.monobrasil.orghttp://www.monobrasil.org PlataformasPlataformas
  • 13.     http://www.monobrasil.orghttp://www.monobrasil.org Linguagens DisponíveisLinguagens 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) C# - mcs (mono-project) e cscc (DotGNU) 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/
  • 14.     http://www.monobrasil.orghttp://www.monobrasil.org Linguagens DisponíveisLinguagens Disponíveis Logo • TurtleTracks Logo - http://www.mech.upatras.gr/~robgroup/logo/turtletracks/index.html • Mono Logo - http://monologo.sourceforge.net/ Perl • PerlSharp - http://taubz.for.net/code/perlsharp/ LUA • Lua.NET - http://www.lua.inf.puc-rio.br/luanet/ Pascal • TMT .NET Project • RemObjects Chome - http://www.chromesville.com/ JavaScript • JScript .NET • Jscript - (DotGNU) • JANET - http://janet-js.sourceforge.net/ PHP • IronPHP - http://ironphp.sourceforge.net/ • PHP4Mono - http://php4mono.sourceforge.net
  • 15.     http://www.monobrasil.orghttp://www.monobrasil.org Linguagens DisponíveisLinguagens 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/ • LSWVST.Net - http://www.lesser- software.com/en/content/products/lswvst/lswvst-net.htm Criada pelo Brasileiro Rodrigo Bamboo
  • 16.     http://www.monobrasil.orghttp://www.monobrasil.org Suporte ao JavaSuporte ao Java O IKVM é uma VM JAVA escrita em C# que  possibilita executar byte code Java no Mono  com o uso do GNUClassPath além de um  conjunto de ferramentas para:  conversão bytecode (java) ­> IL (mono) e IL (mono)­> bytecode (java) ✔ http://www.ikvm.net
  • 17.     http://www.monobrasil.orghttp://www.monobrasil.org Mono 1.0 Mono 1.1.5 Python 2.3 Pyhon 2.4 0 10000 20000 30000 40000 50000 60000 Pystones/second Atualmente o IronPython é financiado pela Microsoft e  licenciado sob uma Linceça de Software Livre. 
  • 18.     http://www.monobrasil.orghttp://www.monobrasil.org www.trypython.orgwww.trypython.org
  • 19.     http://www.monobrasil.orghttp://www.monobrasil.org http://ecn.channel9.msdn.com/o9/ch9/5/3/4/2/9/4/techtalkmdccironpython_2MB_ch9.wmv . 
  • 20.     http://www.monobrasil.orghttp://www.monobrasil.org www.ironruby.netwww.ironruby.net
  • 21.     http://www.monobrasil.orghttp://www.monobrasil.org CASE Brasileiro – Mono BasicCASE Brasileiro – Mono Basic ● Números do Mono Basic – Engenheiros de Software : 2 – Programadores: 4  – Suporte: 2  – Coordenação e Administração: 5 – Prof. Colaboradores: 5 – Parceiros: 10 – Voluntários : 28 – Países: EUA, México, Índia, Itália, Alemanha,  Liechtenstein, Christmas Island, Brasil. 
  • 22.     http://www.monobrasil.orghttp://www.monobrasil.org Indo Além do .NETIndo Além do .NET
  • 23.     http://www.monobrasil.orghttp://www.monobrasil.org Escrita em C#  com GTK#. Integra o  browser de  documentação,  como pode ser  visto. O debugger está  sendo  atualizado. MonoDevelopMonoDevelop
  • 24.     http://www.monobrasil.orghttp://www.monobrasil.org MONO CLIMONO CLI ● Compiler service ● C# shell ● Mono linker ● Injeção de Código num processo vivo
  • 25.     http://www.monobrasil.orghttp://www.monobrasil.org C# ShellC# Shell ● Um shell interativo  para C# como python  ou ruby.  ● Em console ou em  GTK ● Demonstração
  • 26.     http://www.monobrasil.orghttp://www.monobrasil.org C# ShellC# Shell
  • 27.     http://www.monobrasil.orghttp://www.monobrasil.org C# ShellC# Shell  
  • 28.     http://www.monobrasil.orghttp://www.monobrasil.org LINQ!!!LINQ!!!
  • 29.     http://www.monobrasil.orghttp://www.monobrasil.org LINQLINQ public void Linq1() {     int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };     var lowNums =         from n in numbers         where n < 5         select n;     Console.WriteLine("Numbers < 5:");     foreach (var x in lowNums) {         Console.WriteLine(x);     } }
  • 30.     http://www.monobrasil.orghttp://www.monobrasil.org LINQLINQ     string [] cities = { “Auckland”, “Oslo”, “Sydney”,            “Seattle”, “Paris”, “Los Angeles” };     IEnumerable places = from city in cities            where city.Length > 5                  orderby city descending            select city;
  • 31.     http://www.monobrasil.orghttp://www.monobrasil.org MoMAMoMA
  • 32.     http://www.monobrasil.orghttp://www.monobrasil.org Suse StudioSuse Studio http://susestudio.com/
  • 33.     http://www.monobrasil.orghttp://www.monobrasil.org Mono ToolsMono Tools ● Verifique a compatibilidade do seu Verifique a compatibilidade do seu  aplicativo com o Mono Migration aplicativo com o Mono Migration  Analaizer diretamente do Visual Analaizer diretamente do Visual  StudioStudio ● Teste no Windos, Teste no LinuxTeste no Windos, Teste no Linux ● Debug remoto no LinuxDebug remoto no Linux ● Empacote para linuxEmpacote para linux ● Crie um Distro customizada para Crie um Distro customizada para  seu aplicativo com o Suse Studioseu aplicativo com o Suse Studio
  • 34.     http://www.monobrasil.orghttp://www.monobrasil.org Don't talk , WALK!!!Don't talk , WALK!!!
  • 35.     http://www.monobrasil.orghttp://www.monobrasil.org Mono­TouchMono­Touch ­ Versão comercial do mono para IPHONE­ Versão comercial do mono para IPHONE ­    C# and .NET on the iPhone­    C# and .NET on the iPhone           .NET Bindings to Native APIs.NET Bindings to Native APIs           Distribute on the Apple App StoreDistribute on the Apple App Store           Enterprise deployableEnterprise deployable           MonoDevelop IntegrationMonoDevelop Integration           XCode IntegrationXCode Integration http://monotouch.net/http://monotouch.net/ http://monotouch.net/Tutorialshttp://monotouch.net/Tutorials http://www.youtube.com/watch?v=M0VoyhKFmWg http://monotouch.info/MonoTouch/Videos http://monotouch.net/ http://www.codesnack.com/storage/screencasts/
  • 36.     http://www.monobrasil.orghttp://www.monobrasil.org Mono­touchMono­touch
  • 37.     http://www.monobrasil.orghttp://www.monobrasil.org Mono no NOKIA!Mono no NOKIA!
  • 38.     http://www.monobrasil.orghttp://www.monobrasil.org MoonLightMoonLight ● Implementação do SilverLigth da Microsoft ● Baseado em XAML  ● Integração com qualquer linguagem .NET ● Construção de RIA – Rich Internet Aplication ● Concorrente do Flash, Java FX
  • 39.     http://www.monobrasil.orghttp://www.monobrasil.org MoonLightMoonLight See me in ACTION!! GO MONO! VIDEOS
  • 40.     http://www.monobrasil.orghttp://www.monobrasil.org WEB com MonoWEB com Mono ● Suporte para : – Apache + Modmono – FastGCI – XSP – Novo Site Mono Brasil
  • 41.     http://www.monobrasil.orghttp://www.monobrasil.org MONO GAMESMONO GAMES MONO.SIMD Cases SencondLive mudou do LSL para Mono ­ 50x a 300x mais rápido Unit3d  ­ Usa C#, Boo, unityScritp Demo Video
  • 42.     http://www.monobrasil.orghttp://www.monobrasil.org Mono GamesMono Games
  • 43.     http://www.monobrasil.orghttp://www.monobrasil.org CASE Brasileiro ­ DARUMACASE Brasileiro ­ DARUMA
  • 44.     http://www.monobrasil.orghttp://www.monobrasil.org CASE Brasileiro ­ DARUMACASE Brasileiro ­ DARUMA ● 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.
  • 45.     http://www.monobrasil.orghttp://www.monobrasil.org Aplicações mono
  • 46.     http://www.monobrasil.orghttp://www.monobrasil.org DemosDemos ● F­spot ● Tomboy ● MonoDevelop ● Videos...
  • 47.     http://www.monobrasil.orghttp://www.monobrasil.org Paint.NETPaint.NET
  • 48.     http://www.monobrasil.orghttp://www.monobrasil.org ● Simplificando o deployment (em multiplataforma) ● Zip Install – Baixe – Descompacte – Rode a primeira vez – Está instalado Problemas: Zip install funciona por empacotar todas as dependências  nas versões adequadas o que pode custar espaço em disco de  bibliotecas instaladas múltiplas vezes.  Alguma solução de compromisso onde grandes pacotes de alto reuso  serem preinstalados e referenciados pode ser aceitável. DeployDeploy
  • 49.     http://www.monobrasil.orghttp://www.monobrasil.org $ 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/ Hello WorldHello World
  • 50.     http://www.monobrasil.orghttp://www.monobrasil.org $ cat alomundo­gtk­boo.boo import Gtk Application.Init() button = Button("Clique aqui!") button.Clicked += { Application.Quit() } window = Window("Alô mundo em Boo!",                 DefaultWidth:  300,                 DefaultHeight: 150) window.Add(button) window.DeleteEvent += { Application.Quit() } window.ShowAll() Application.Run() $ booc `pkg­config ­­libs gtk­sharp` alomundo­gtk­boo.boo $ mono alomundo­gtk­boo.exe Hello worldHello world
  • 51.     http://www.monobrasil.orghttp://www.monobrasil.org ConclusãoConclusão O Mono: ● É mais uma tecnologia para desenvolvimento de aplicações ● Dá flexibilidade na escolha de linguagens ● Endereça problemas de estabilidade de APIs/ABIs e de  empacotamento ● É relativamente fácil de usar com ou sem ferramentas  sofisticadas ● Já está em uso por vários desenvolvedores livres e tem  futuro...