[code camp 2009] monos y manzanas - aplicaciones .net para mac (pablo zaidenvoren + sergio borromei)
DESCRIPTION
[Code Camp 2009] Monos Y Manzanas - Aplicaciones .NET Para MAC (Pablo Zaidenvoren + Sergio Borromei)TRANSCRIPT
Motivaciones
¿Por qué desarrollar .NET en Mac? Portar código existente usando elementos
gráficos nativos
Las herramientas nativas tienen una curva de aprendizaje pronunciada Salto similar de C# a C++
.NET Rocks! La plataforma de desarrollo mas completa de la
actualidad
Proyecto open-source iniciado en 2001 Patrocinado por Novell (si…. Los mismos del
NetWare)
ECMA compliant.
Inicialmente proveía una implementación del CLR y C# para Unix
Hoy incluye soporte para: Mac OS X, Linux, BSD, Sun Solaris, Nintendo Wii, Sony
Playstation 3 y también Windows
X86, x86-64, ARM, s390, PowerPC, SPARC, IA64, Alpha, MIPPS, HPPA
C#, VB, F#,Java, Boo, Nemerle, Python, Jscript, Oberon, PHP, Object Pascal, LUA, Cobra, Smalltalk
http://go-mono.com
Alcances
.NET 2.0 Feature Complete
.NET 3.0 / 3.5
Soporte básico WCF
Silverlight
Compilador 100% compatible
“code once run anywhere”
Limitaciones
WPF / WWF pre-alpha state
Coming soon….
LINQ 2 SQL Si hay LINQ
Entity Framework
Debugger En realidad una limitación de Mono-Develop
Aunque siempre se puede usar el de Visual Studio
Windows
CLR
Tu Aplicación .NET en C#, VB, etc
Librerías .NET (System.*)
Arquitectura
Sistema Operativo
Mono CLR
Bridge entre las librerías .NET y las APIs de Objective-C / Max OS-X
Open-source
Desarrollado en .NET
Compatible con Tiger y Leopard
Soporte para Intel y PowerPC
Mono
CLRMonobjc
Cocoa
Webkit
DiskRecording
ImageKit
OpenGL
QuickTime
Security
Otras
Otras herramientas
MoMA
Mono Migration Analyzer
Monotouch
Equivalente de Monobjc para iPhone
Tipos de Aplicación
Tipos de Aplicación
Tipos de Aplicación
Estrategia de Desarrollo
1. Desarrollar la lógica en Visual Studio!!
Heredar de NSObject para exponer las clases al runtime de ObjectiveC
Utilizar los atributo [ObjectiveCClass] y [ObjectiveCMessage] para exponer métodos y propiedades
2. Xcopy de assemblies a Mac
3. Desarrollar la UI con Interface Builder
4. Binding de la UI utilizando el patrón MVC
Consideraciones
Para que las clases sean visualizables por el runtime de ObjectiveC , deben :
Tener el atributo [ObjectiveCClass]
Heredar de NSObject
Para que las propiedades sean “bindeables” hay que agregarles el atributo [ObjectiveCMessage([mensaje])]
Para el get basta ponerle el nombre de la propiedad
Para el set hay que usar “set[Propiedad]:”