Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mobile development .net

1,892 views

Published on

Published in: Software
  • Be the first to comment

  • Be the first to like this

Mobile development .net

  1. 1. Writing appsfor iOS with.NETMOBILE DEVELOPMENT WITH .NET
  2. 2. Chi sono  Raffaele Fanizzi  Membro di DotNetSide – www.dotnetside.org  Microsoft Certified Professional Developer – MCPD  Microsoft Certified Technical Specialist – MCTS  Email – vifani@gmail.com  Blog – www.vifani.com  LinkedIn – www.linkedin.com/in/raffaelefanizzi
  3. 3. Agenda Introduzione Perché sviluppare per iOS ? Un po’ di storia Monotouch Limitazioni e Costi Sviluppo nativo vs web app Q&A
  4. 4. Introduzione  Il mondo sta cambiando…
  5. 5. Introduzione
  6. 6. Introduzione
  7. 7. Introduzione
  8. 8. Introduzione  Tra computer, tablet e smartphone, oltre il 50% dello share è in mano ai dispositivi portatili  Oltre il 15% delle pagine viste su internet è realizzato da tablet e smartphone  Gli smartphone hanno superato i telefoni cellulari
  9. 9. Introduzione  Sviluppo software -> Un mondo sempre più specializzato  Quanti tipi di sviluppatori?  Desktop  Web  Mobile web  Enterprise  Database  Mobile  Embedded
  10. 10. Introduzione  Quale futuro per chi conosce .NET?  Roseo per lo sviluppo  Desktop  Web  Web mobile  Enterprise  E per lo sviluppo mobile?
  11. 11. Introduzione  Windows Phone si sta facendo strada…  …ma nel frattempo sarebbe meglio sfruttare le competenze acquisite e sviluppare anche sulle altre piattaforme
  12. 12. Introduzione  Fortunatamente per noi esiste Mono, Monotouch e Mono for Android 
  13. 13. Perché sviluppare per iOS ?
  14. 14. Perché sviluppare per iOS ?
  15. 15. Perché sviluppare per iOS ?
  16. 16. Un po’ di storia  Mono è un’implementazione opensource del .NET Framework  E’ composto essenzialmente da un Common Language Runtime e dalle Base Class Library  E’ legale e supportato  Sfrutta gli standard ECMA pubblicati da Microsoft sul .NET Framework  Sfrutta il codice rilasciato con license opensource sempre da Microsoft  Disponibile per sistemi operativi Windows, Mac OS X, Linux, Solaris, ecc…
  17. 17. Un po’ di storia  Inizialmente sviluppato da Miguel de Icaza (GNOME, Novell, Ximian)  Oggi è il core business di Xamarin  Mono 1.0 – 2004  C# 1.0, .NET 1.1  Mono 2.0 – 2008  C# 2.0, 3.0 e 4.0  .NET 2.0, 3.0, 3.5 e 4.0  ASP.NET, MVC  Mono 3.0 – 2012 in beta  C# 5.0, Async
  18. 18. Un po’ di storia  Supporta tutto il .NET Framework tranne  Windows Presentation Foundation  Windows Workflow Foundation  WCF è supportato solo per il sottoinsieme di Silverlight (BasicBinding)
  19. 19. Monotouch  Monotouch è la soluzione di Xamarin per lo sviluppo di applicazioni native per iOS utilizzando C# e Mono  iOS non consente il funzionamento di compilatori Just In Time  Monotouch si basa su un compilatore ahead-of- time (AOT) che compila le applicazioni in linguaggio assembly per processori ARM v6, v7 e v7s  Monotouch espone la totalità dell’SDK CocoaTouch di Apple come classi .NET
  20. 20. Monotouch  Supporta i seguenti assembly del .NET Framework:  System.dll / mscorlib.dll  System.Core.dll  System.Data.dll (ADO.NET)  System.Data.Service.Client.dll (OData support)  System.Json.dll  System.Runtime.Serialization.dll  System.ServiceModel.dll (WCF stack di Silverlight, senza parte server)  System.ServiceModel.Web.dll  System.Transactions.dll  System.Web.Services  System.Xml.dll  System.Xml.Linq.dll
  21. 21. Monotouch  Oltre ai propri seguenti assembly:  monotouch.dll (CocoaTouch API)  Mono.Data.Sqlite.dll (SQL Lite ADO.NET provider)  Mono.Data.Tds.dll (supporto a SQL Server)  Mono.Security.dll (API di crittografia)  OpenTK.dll (OpenGL e OpenAL)
  22. 22. Monotouch  Di cosa abbiamo bisogno?  Di un Mac con Mac OS Lion (10.7) o Montain Lion (10.8)  Xcode (SDK e IDE di sviluppo Apple)  MonoDevelop (IDE di sviluppo Mono)
  23. 23. Monotouch  Perché usare Monotouch?
  24. 24. Monotouch  Perché usare Monotouch?  Per sfruttare le proprie conoscenze in ambito .NET: ADO.NET, WCF, Task Parallel Library, garbage collection, ecc…  Per utilizzare C#, un linguaggio molto più moderno e potente di Objective C: lamba expression, LINQ, tipi anonimi, eventi, ecc…  Perché le app risultanti sono native né più né meno di quelle sviluppate con XCode
  25. 25. Monotouch  Perché usare Monotouch?  E’ sviluppato attivamente: ad ogni nuova versione dell’SDK Apple corrisponde entro 24/48 ore una nuova versione di Monotouch  E’ ampiamente supportato: Infragistics, Telerik, Shinobi, ecc…  E’ utilizzato da grandi nomi: Microsoft, National Instrument
  26. 26. Monotouch  Profiling: è possibile utilizzare sia quello integrato di Monodevelop che quello di XCode
  27. 27. DemoHELLO WORLD
  28. 28. DemoDOTNETSIDE
  29. 29. Limitazioni  Essendo Monotouch basato su un sottoinsieme di .NET, tutti gli assembly di un progetto devono essere compilati espressamente per Monotouch (analogamente a quanto accade con Silverlight)  Non è possibile utilizzare direttamente librerie di terze parti native sviluppate in Objective C, ma esistono due alternative:  Farsi fornire la versione Monotouch   Costruirsi a mano le classi di interfacciamento 
  30. 30. Limitazioni  Supporto limitato ai generics  Niente metodi virtuali generici  Niente classi generiche con P/Invoke  Nessun supporto alla generazione dinamica di codice  Niente System.Reflection.Emit  Nessun supporto a COM
  31. 31. Costi  Xcode, Mono e Monodevelop sono gratuiti  Iscrizione all’Apple iOS Developer Program - $ 99 all’anno  Guadagni  30% va ad Apple  70% allo sviluppatore
  32. 32. Costi
  33. 33. Sviluppo nativo vs webapp  Web app  Potenzialmente si sviluppa una volta per supportare tutte le piattaforme  Riutilizzo delle skill dello sviluppo web  HTML5 e CSS3 consentono di realizzare web app complesse  Native app  Hanno accesso a tutte le potenzialità del sistema operativo e del dispositivo  Look and feel integrato con l’OS  Massime prestazioni
  34. 34. Q&ADOMANDE?
  35. 35. Riferimenti  DotNetSide www.dotnetside.org  Il mio blog www.vifani.com  Mono www.mono-project.com  Monodevelop monodevelop.com  Xamarin www.xamarin.com  Apple Developer developer.apple.com
  36. 36. GRAZIE 

×