Your SlideShare is downloading. ×
0
×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Mobile development .net

1,147

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
1,147
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
5
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. Writing appsfor iOS with.NETMOBILE DEVELOPMENT WITH .NET
  • 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. Agenda Introduzione Perché sviluppare per iOS ? Un po’ di storia Monotouch Limitazioni e Costi Sviluppo nativo vs web app Q&A
  • 4. Introduzione  Il mondo sta cambiando…
  • 5. Introduzione
  • 6. Introduzione
  • 7. Introduzione
  • 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. Introduzione  Sviluppo software -> Un mondo sempre più specializzato  Quanti tipi di sviluppatori?  Desktop  Web  Mobile web  Enterprise  Database  Mobile  Embedded
  • 10. Introduzione  Quale futuro per chi conosce .NET?  Roseo per lo sviluppo  Desktop  Web  Web mobile  Enterprise  E per lo sviluppo mobile?
  • 11. Introduzione  Windows Phone si sta facendo strada…  …ma nel frattempo sarebbe meglio sfruttare le competenze acquisite e sviluppare anche sulle altre piattaforme
  • 12. Introduzione  Fortunatamente per noi esiste Mono, Monotouch e Mono for Android 
  • 13. Perché sviluppare per iOS ?
  • 14. Perché sviluppare per iOS ?
  • 15. Perché sviluppare per iOS ?
  • 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. 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. 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. 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. 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. 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. 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. Monotouch  Perché usare Monotouch?
  • 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. 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. Monotouch  Profiling: è possibile utilizzare sia quello integrato di Monodevelop che quello di XCode
  • 27. DemoHELLO WORLD
  • 28. DemoDOTNETSIDE
  • 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. 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. 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. Costi
  • 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. Q&ADOMANDE?
  • 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. GRAZIE 

×