Projetos Mono e Moonlight

2,199 views

Published on

Slides da palestra "Projetos Mono e Moonlight: trazendo os desenvolvedores Windows para o mundo Linux" apresentada durante o III ENSOL - Encontro de Software Livre da Paraíba.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,199
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Projetos Mono e Moonlight

  1. 1. Projetos Mono e Moonlight<br />Trazendo os Desenvolvedores Windows para o Mundo Linux<br />Pedro Alves Junior<br />Diretor de Desenvolvimento<br />VsoftTecnologia<br />Líder do .NUG - .NET UserGroup<br />
  2. 2. Agenda<br /><ul><li> Introdução ao .NET
  3. 3. Frameworks alternativos
  4. 4. Ferramentas alternativas
  5. 5. Principais projetos
  6. 6. Demonstração
  7. 7. Java no .NET/Mono
  8. 8. Principais vantagens em relação ao Java
  9. 9. Introdução ao Silverlight
  10. 10. Moonlight</li></li></ul><li>Introduçãoao .NET<br /><ul><li> Definição
  11. 11. Plataforma única de desenvolvimento e execução de software.
  12. 12. Tipos de aplicações suportadas
  13. 13. Aplicações WEB (Sites e Webservices)
  14. 14. Aplicações desktop
  15. 15. Jogos para PC, XBOX 360, Wii e iPhone
  16. 16. Aplicações para dispositivos móveis
  17. 17. Aplicações embarcadas
  18. 18. 100% orientado a objetos
  19. 19. Ambiente multilinguagem</li></li></ul><li>Introduçãoao .NET<br /><ul><li> Ambiente multilinguagem
  20. 20. Suporte a mais de 40 linguagens:
  21. 21. VB.NET, C#, C++, Java, Delphi, Cobol, Fortran, Haskel, Lua, Boo, Perl, PHP, Python, Ruby, F#, Prolog …
  22. 22. Common Language Infrastructure
  23. 23. Common Type System (CTS)
  24. 24. Common Language Specification (CLS)
  25. 25. Just-In-Time Compiler (JIT)
  26. 26. Virtual Execution System (VES)
  27. 27. Aberto e padronizado (ECMA)
  28. 28. http://www.ecma-international.org/publications/standards/Ecma-334.htm
  29. 29. http://www.ecma-international.org/publications/standards/Ecma-335.htm</li></li></ul><li>Frameworks alternativos<br />Projeto Rotor<br /><ul><li> Implementação criada pela própria Microsoft
  30. 30. Também conhecido como Source CommonLanguageInfrastructure – SCLI
  31. 31. Funciona com:
  32. 32. FreeBSD e MAC OS
  33. 33. Implementação de referência para padronização do C# e CLI (CommonLanguageInfrastructure)
  34. 34. Comunidade acadêmica pode desenvolver seu próprio CLI e compilador C# baseado no Rotor
  35. 35. Licença não permite venda de novas versões
  36. 36. http://msdn.microsoft.com/net/sscli/</li></li></ul><li>Frameworks alternativos<br />DotGNU<br /><ul><li> Fundado por Richard M. Stallman (presidente da Free Software Foundation - FSF)
  37. 37. Iniciativa para desenvolver uma versão baseada em GNU/Linux como Software Livre, da plataforma .NET
  38. 38. Inclui:
  39. 39. Implementação do CLI
  40. 40. Compilador C#
  41. 41. Funciona com:
  42. 42. Windows, NetBSD, FreeBSD, Solaris, MAC OS e Linux
  43. 43. Licença GPL
  44. 44. http://www.dotgnu.org</li></li></ul><li>Frameworks alternativos<br />Mono<br /><ul><li>Esforçodacomunidadepatrocinadopela Novell paraimplementação de um framework de desenvolvimento .NET
  45. 45. Inclui:
  46. 46. Compiladores C# e VB.NET
  47. 47. CLI
  48. 48. CLR compatível com .NET e classes extras
  49. 49. ADO.NET, ASP.NET e Windows Forms
  50. 50. Roda .NET, Java, Python, Boo, Ruby e mais…
  51. 51. Open Source e Free Software
  52. 52. Comercialmentesuportado
  53. 53. Atualmenteemusocomercial
  54. 54. http://www.mono-project.com</li></li></ul><li>Frameworks alternativos<br />Mono<br />
  55. 55. Frameworks alternativos<br />Mono<br />
  56. 56. Frameworks alternativos<br />Mono<br /><ul><li>Possuicompatibilidadebinária com Microsoft .NET
  57. 57. Roda .NET exe e DLLs
  58. 58. Somente .NET, masnão Win32
  59. 59. Vocêpode re-compilar com mcsmasvocênãoprecisa
  60. 60. Vocêencontrará no diretório do Mono:
  61. 61. Arquivos .exe (mono application.exe)
  62. 62. Arquivos .dll
  63. 63. Bibliotecascompartilhadas
  64. 64. Arquivos de mapeamento
  65. 65. Incluisuporte a GAC (Global Assembly Cache)
  66. 66. Proteção a DLL-Hell</li></li></ul><li>Frameworks alternativos<br />Mono e Windows<br /><ul><li> Mono tambémestádisponívelpara Windows
  67. 67. Suporta:
  68. 68. Co-host com Microsoft .NET
  69. 69. XSP (Webserver ASP.NET)
  70. 70. Gtk#/GTK+ para Windows
  71. 71. Pluginpara Visual Studio .NET
  72. 72. Documentação
  73. 73. DesenvolvimentoGtk# (Glade)
  74. 74. …</li></li></ul><li>Frameworks alternativos<br />ASP.NET no Mono<br /><ul><li>Suporte a Web applications e Web services
  75. 75. XSP
  76. 76. Servidor Web Standalone
  77. 77. Suporte a ASP.NET e HTML estático
  78. 78. Usoemdesenvolvimento
  79. 79. Base paramod_mono
  80. 80. mod_mono
  81. 81. Pluginpara Apache (v1 e v2)
  82. 82. Usa Apache paratodas as tarefascomuns de servidor web
  83. 83. Comunicação socket Unix</li></li></ul><li>Frameworks alternativos<br />Mono e P/Invoke<br /><ul><li>Suporte a Platform Invocation services
  84. 84. Suporte a códigonãoseguro
  85. 85.
  86. 86. Maiorproblemaemportar de Windows paraoutrasplataformas
  87. 87. O códigonativoquevocêinvocaem Windows existeem Linux?
  88. 88. MoMa – verificação de chamadas a APIs</li></li></ul><li>Frameworks alternativos<br />Mono e componentes de terceiros<br /><ul><li> Business Logic, GUI controls, Web Controls, Web services, Bibliotecasestáticas …
  89. 89. É umaimplementaçãopuraou um wrapper de um componenteoucódigo Windows?
  90. 90. É umaaplicação .NET limpa?
  91. 91. O time do Mono estátrabalhandoemumacertificaçãoparaprovedores de componentes
  92. 92. MoMa – validação de componentes</li></li></ul><li>Frameworks alternativos<br />Mono - IDEs<br /><ul><li> Visual Studio com Mono Tools for Visual Studio
  93. 93. http://go-mono.com/monovs/
  94. 94. #Develop
  95. 95. http://www.icsharpcode.com/OpenSource/SD
  96. 96. MonoDevelop
  97. 97. http:/www.monodevelop.com
  98. 98. x-develop
  99. 99. http://www.x-develop.com
  100. 100. Eclipse
  101. 101. http://www.improve-technologies.com/alpha/esharp</li></li></ul><li>Frameworks alternativos<br />Mono e a Novell<br /><ul><li> Novell patrocinaprojeto
  102. 102. Equipe de desenvolvedores
  103. 103. Novell usa Mono emváriosprojetos
  104. 104. NLD, iFolder, iPrint, VO, Red Carpet/Zen, Beagle, F-Spot photo management, Hula Groupware Server, Banshee media player, CASA, ZenWorks Linux Management, …
  105. 105. Novell oferecesuportecomercial e consultoriaem Mono</li></li></ul><li>Frameworks alternativos<br />Uso do Mono por outras empresas<br /><ul><li>Inúmerasempresas no mundotodojáadotaram o Mono
  106. 106. Novell, Yahoo!, Electronic Arts, Mozilla, Metrosharp, Codice, MindTouch, Medsphere, VistaDB, Mainsoft, SourceGear, Coversant, Wikipedia, GovTrack.us, …
  107. 107. Projetos dos maisvariadostipos
  108. 108. Sansa MP3 player baseadoem Mono
  109. 109. Virtuoso Universal Server
  110. 110. Unity3D Game Development System
  111. 111. SplendidCRM
  112. 112. VistaDBDatabase
  113. 113. DekiWiki
  114. 114. Sims 3</li></li></ul><li>Frameworks alternativos<br />Sansa (SanDisk)<br />
  115. 115. Frameworks alternativos<br />Banshee MP3 Player<br />
  116. 116. Frameworks alternativos<br />Unity 3D Game Development System<br />
  117. 117. Frameworks alternativos<br />Unity 3D Game Development System<br />
  118. 118. Frameworks alternativos<br />Unity 3D Game Development System<br />
  119. 119. Frameworks alternativos<br />SplendidCRM<br />
  120. 120. Frameworks alternativos<br />Plastic Source Control Management<br />
  121. 121. Frameworks alternativos<br />Paint.NET<br />
  122. 122. Frameworks alternativos<br />Graffiti CMS<br />
  123. 123. Frameworks alternativos<br />Roadmap do Mono<br /><ul><li>Atualmentenaversão 2.4
  124. 124. Totalmentecompatível com .NET 1.0, 1.1 e 2.0
  125. 125. Suporte a C# 2.0 e 3.0 e parcial a .NET 3.0 e 3.5
  126. 126. Compilador VB.NET concluído (VBNC)
  127. 127. Mono 2.6 (segundotrimestre de 2009)
  128. 128. Suporte total a ASP.NET MVC
  129. 129. Suporte a LINQ to DB
  130. 130. Pluginpara debug e deploy no Visual Studio
  131. 131. Mono 2.8 (quarto trimestre de 2009)
  132. 132. Moonlight 2.0
  133. 133. MonoDevelop 2.4
  134. 134. Compilador C# 4.0</li></li></ul><li>Ferramentasalternativas<br />IDEs<br /><ul><li>#Develop
  135. 135. Suporta:
  136. 136. Design de formulários Windows Forms C#, VB.NET e Boo
  137. 137. Code completationpara C#, VB.NET e Boo
  138. 138. Debugger integrado
  139. 139. Code Analysis e Refactoring
  140. 140. Suporte a .NET 1.1, 2.0, 3.5, Mono e Compact Framework
  141. 141. Poderoso editor de código com suporte a XML e outros
  142. 142. Suporte a criação de instaladores no formato Windows Installer
  143. 143. Integração com Subversion
  144. 144. Funciona com Windows</li></li></ul><li>Ferramentasalternativas<br />IDEs - #Develop<br />
  145. 145. Ferramentasalternativas<br />IDEs<br /><ul><li>MonoDevelop(porte do #Develop)
  146. 146. Suporta:
  147. 147. Design de formuláriosGtk#
  148. 148. Code completationpara C#
  149. 149. Class Management
  150. 150. Ajuda on-line
  151. 151. Suporte a projetos .NET 1.1, 2.0, Mono e Moonlight
  152. 152. Suporte a projetosGtk#, console e ASP.NET
  153. 153. Suporte as linguagens C#, Visual Basic, Boo, Java (IKVM) e C++
  154. 154. Suporte a Add-ins
  155. 155. Suporte a abertura de projetos do Visual Studio
  156. 156. Suporte a Subversion
  157. 157. Funciona com Linux, Windows e MAC OS</li></li></ul><li>Ferramentasalternativas<br />IDEs – MonoDevelop<br />
  158. 158. Ferramentasalternativas<br />IDEs<br /><ul><li>X-develop (comercial)
  159. 159. Suporta:
  160. 160. Design de formulários Windows Forms e Gtk#
  161. 161. Code completation, Code inspections, Error checking e Refactoring
  162. 162. Debugger integrado
  163. 163. Linguagens C#, J#, VB.NET e Java
  164. 164. Suporte a .NET, Mono e Java
  165. 165. Suporte a projetos do Visual Studio .NET
  166. 166. Suporte a CVS, SubVersion, SourceSafe e outros
  167. 167. Funciona com Linux, Windows e MAC OS</li></li></ul><li>Ferramentasalternativas<br />IDEs – X-develop<br />
  168. 168. Ferramentasalternativas<br />IDEs<br /><ul><li>Plugin C# paraEclipse
  169. 169. CodeGear RAD Studio 2009 (comercial)
  170. 170. Delphi .NET</li></li></ul><li>Demonstração<br />
  171. 171. Principaisprojetos<br />Projetos mantidos pela comunidade .NET<br /><ul><li> CMS
  172. 172. DotNetNuke, umbraco, Rainbow, …
  173. 173. Persistência de objetos
  174. 174. NHibernate, Gentle, Sooda, BATIS.NET, XPrevail, …
  175. 175. Banco de dados
  176. 176. Todososbanco de dados conhecidos Open Source suportam .NET atualmente
  177. 177. Inúmerosprojetosparaosmaisvariadospropósitos
  178. 178. http://csharp-source.net
  179. 179. http://www.codeplex.com
  180. 180. http://www.sourceforge.net</li></li></ul><li>Java no .NET<br />Rodando Java no .NET e .NET no Java<br /><ul><li>IKVM.NET
  181. 181. Umamáquina virtual Java implementadapara .NET e Mono
  182. 182. Umaimplementaçãoem .NET da class library Java
  183. 183. Ferramentasparapossibilitarinteroperabilidade Java e .NET
  184. 184. Permiteutilizarbibliotecas Java emaplicações .NET
  185. 185. Permitetransformar myapp.jar Java em myapp.exe .NET
  186. 186. http://www.ikvm.net</li></li></ul><li>Java no .NET<br />Rodando Java no .NET e .NET no Java<br /><ul><li>MainsoftEnterprise Edition (comercial)
  187. 187. Desenvolvimentoem C# ou VB.NET no Visual Studio
  188. 188. Acesso a componentes Java externos
  189. 189. Compilaçãopara J2EE
  190. 190. SuportaWebSphere® Application Server e Portal Server, JBoss® e Tomcat application servers
  191. 191. Versão Professional disponívelgratuitamente
  192. 192. Programadores Java podem se beneficiardaprodutividade do C# e Visual Studio
  193. 193. http://www.mainsoft.com</li></li></ul><li>Java no .NET<br />Rodando Java no .NET e .NET no Java<br /><ul><li>Mainsoft Enterprise Edition (comercial)</li></li></ul><li>Java no .NET<br />Rodando Java no .NET e .NET no Java<br /><ul><li>Mainsoft Enterprise Edition (comercial)</li></ul>ASP.NET e Server Applications instaladasem um Java EE application server<br />
  194. 194. Java no .NET<br />MainsoftEnterprise Edition(comercial)<br />
  195. 195. Java no .NET<br />MainsoftEnterprise Edition(comercial)<br />
  196. 196. Principaisvantagensemrelaçãoao Java<br /><ul><li>Diversidade de linguagens;
  197. 197. JIT Compilation para código nativo, garantindo melhor performance;
  198. 198. Simplicidade na criação de Webservices;
  199. 199. Ambiente de desenvolvimento mais produtivo - Visual Studio.</li></li></ul><li>IntroduçãoaoSilverlight<br /><ul><li>Definição
  200. 200. 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.
  201. 201. Principaiscaracterísticas
  202. 202. Baseado na linguagem XAML (eXtensible Application Markup Language).
  203. 203. É pequeno e de fácil instalação, possuindo menos de 2 MegaBytes.
  204. 204. 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.
  205. 205. Os desenvolvedores podem criar aplicativos programando em diversas linguagens, dentre elas: C#, Python, Ruby e Visual Basic.
  206. 206. Foi projetado para funcionar em plataforma-cruzada. </li></li></ul><li>Moonlight<br /><ul><li>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.
  207. 207. Principaiscaracterísticas
  208. 208. Funciona em Linux e outros sistemas baseados em Unix/X11;
  209. 209. Provê um SDK para desenvolvimento Silverlight em Linux;
  210. 210. Instalação simples como Plugin para o Firefox;
  211. 211. Licenciado sob GNU LGPL.
  212. 212. Disponível em http://www.mono-project.com/Moonlight</li></li></ul><li>Dúvidas<br />?<br />
  213. 213. Contatos<br />www.vsoft.com.br<br />Blog: www.pedrojr.net<br />MSN: pedro.alvesjr@hotmail.com<br />

×