MobileDev: panoramica sullo sviluppo Mobile e sulle possibili alternative .Net

FocusDayCiao a tutti,

volevo pubblicizzare il Focus Day di Overnet che si terrà a settembre. In particolare l’evento “MobileDev: panoramica sullo sviluppo Mobile e sulle possibili alternative .Net“. In questo evento di circa 4 ore discuteremo sul mondo Mobile (I mercati, i device ed inoltre vedremo una valida alternativa per riutilizzare codice .Net: XAMARIN). Naturalmente il relatore saro’ io.. Spero possa interessare e spero di vedervi numerosi. Di seguito il link dell’evento: http://overneteducation.it/DettaglioCorso.aspx?corso=EV030&v=1

 

L’evento si terrà a Milano. L’indirizzo è il seguente:

OverNet Education
Strada 4 Palazzo Q7, 1°piano
Centro Direzionale Milanofiori
20089 – Rozzano MI

 

Annunci

MONODROID: Una valida alternativa .NET per sviluppare con Android

Introduzione

In questo articolo cercheremo di introdurre un modo alternativo allo sviluppo di applicazioni Android, utilizzando la potenza della tecnologia .Net come alternativa a JAVA. Ci focalizzeremo sui vantaggi e sugli svantaggi nell’utilizzare uno strumento diverso da JAVA, cercando di capire quali benefici si possono acquisire.  Con lo sviluppo di dispositivi mobili sempre più potenti, le aziende, non solo quelle legate all’intrattenimento, ma anche quelle nel mondo enterprise cercano di trovare un posto di comando nel rispettivo mercato.  In questo mondo concorrenziale, molte volte  ciò che ci distingue è l’applicazione che rendiamo disponibile. Un’azienda cerca sempre di avere le proprie applicazioni sulle principali piattaforme presenti in commercio: ANDROID, IOS, WINDOW PHONE che dispongono di un sistema operativo e di un modello di sviluppo totalmente differente l’uno dall’altro. Con Android sviluppiamo in JAVA, con IOS sviluppiamo in Objective C o XCode mentre in Windows Phone  in C#. Figure professionali distinte, non tutte le realtà aziendali possono permettersele ed è difficile ma soprattutto costoso, avere le competenze necessarie a coprire tutte e tre le piattaforme. Pensiamo ad un’impresa dove il core business è focalizzato su un settore diverso dall’informatica e dove ogni investimento, specialmente in questo momento di crisi e’ sempre fatto col contagocce.  Ma allora come possiamo concorrere con aziende che hanno l’opportunità di investire e quindi avere tutte le applicazioni su tutti i dispositivi? Semplicemente cerchiamo di riciclare il codice ed utilizzare qualcosa che ci possa aiutare in questo. Unsupporto è dato dalla XAMARIN e dalle sue alternative che permettono di sviluppare su tre piattaforme utilizzando .NET, proponendosi quindi a noi sviluppatori che lavoriamo con Visual Studio, programmiamo con C# e sviluppiamo già sulle tecnologie basate su XAML, come Window Phone.
Continua a leggere

Multiple Instances of MonoDevelop on a Mac

Yet another shortcoming in OSX: multiple instances. Who thought that it would be a good idea to by default only allow 1 instance of a program? In Windows, that decision is made by the software author. If you think your users might want/need multiple instances, then you do nothing. If you need the application to only have 1 instance, then you restrict it. It makes sense. But that’s just another example of the control-freak mentality that comes out of Cupertino. Apple just screws things up with their freakish need to limit what you can do on an Apple device.

1) In a terminal run:

open -n /Applications/MonoDevelop.app

2) Open multiple solutions in 1 instance by unchecking the “Close current solution” checkbox.

NOTE: I cannot see that in MonoDevelop, so I don’t know how accurate that is. I have not found any preferences for it either.

3) Create multiple copies of MonoDevelop. You need to open subsequent copies 2x to get them to run. A hack.

So, that’s the summary.

It’s just infinitely annoying to only have 1 instance of MonoDevelop open.

Original post : click here

Inviare Email automaticamente con monotouch

Per un servizio che ho creato, ho avuto la necessità di inviare automaticamente email senza utilizzare MFMessageComposeViewController ma direttamente con smtp e la libreria System.Net. Ho pensato: “Nulla di più facile. copio il codice che ho sempre utilizzato in c# ed è fatta” :

sing System.Net;
using System.Net.Mail;

..

MailMessage mm = new MailMessage();
mm.To.Add(new MailAddress("mail@gmail.com"));
mm.From = new MailAddress("mail2@gmail.com");

mm.Subject = "Customer Signup CSV Export";
mm.Body = "Here are the Customers Signed up";
mm.BodyEncoding = UTF8Encoding.UTF8;
mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
NetworkCredential _Credential = new NetworkCredential("nome", "password");

SmtpClient ss = new SmtpClient("smtp.gmail.com");
ss.UseDefaultCredentials = false;
ss.EnableSsl = true;
ss.Credentials = _Credential;
ss.Port = 587;
ss.SendCompleted+= HandleSsSendCompleted;
ss.Send(mm);

Tutto ok per qualsiasi provider di posta ma quando inserivo i dati di configurazione di gmail mi dava un’errore di autenticazione.
Girando su google ho scoperto che in Mono bisogna inserire anche la gestione di certificati. Il codice per Gmail è il seguente:

sing System.Net;
using System.Net.Mail;
using System.Security.Cryptography.X509Certificates;
using System.Net.Security;

..

MailMessage mm = new MailMessage();
mm.To.Add(new MailAddress("mail@gmail.com"));
mm.From = new MailAddress("mail2@gmail.com");

mm.Subject = "Customer Signup CSV Export";
mm.Body = "Here are the Customers Signed up";
mm.BodyEncoding = UTF8Encoding.UTF8;
mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
NetworkCredential _Credential = new NetworkCredential("nome", "password");

SmtpClient ss = new SmtpClient("smtp.gmail.com");
ss.UseDefaultCredentials = false;
ss.EnableSsl = true;
ss.Credentials = _Credential;
ss.Port = 587;
ss.SendCompleted+= HandleSsSendCompleted;
ServicePointManager.ServerCertificateValidationCallback = 
delegate(object s, X509Certificate certificate, X509Chain chant, SslPolicyErrors error)
{    
   return true;    
};

ss.Send(mm);

Accedere ai dati GPS con IPhone utilizzando Monotouch – Parte 1

Come sapete ho iniziato a sviluppare anche applicazioni IPhone utilizzando monotouch. E’ da qualche mese che ho lasciato Object-C e, ho iniziato a sviluppare in monotouch. Uno dei primi “problemi” che ho avuto è stata la gestione della localizzazione. La mia applicazione doveva leggere Latitudine, Longitudine e, creare un messaggio mail con la mappa e il nome della via. In questa prima parte, vedremo come ricevere i dati di latitudine e longitudine.

Per poter utilizzare la localizzazione, dobbiamo referenziare la libreria MonoTouch.CoreLocation:

using MonoTouch.CoreLocation;

Creiamo un’istanza del location Manager :

private CLLocationManager locManager = new CLLocationManager();

Avviamo il GPS Location Tracking :

locManager.StartUpdatingLocation();

ed infine ottengo i dati:

if (locManager != null)
{
  string lat = locManager.Location.Coordinate.Latitude;
  string lng =locManager.Location.Coordinate.Longitude;
}

Semplice vero… Come sappiamo però l’utente può disabilitare la funzione di localizzazione. Per controllare se questa è attiva possiamo utilizzare le seguenti righe di codice:

CLLocationManager.LocationServicesEnabled 

che restituisce true o false a seconda se è o non è abilitato il sistema di localizzazione.

Monotouch – Inviare email con Iphone

Ci sono due metodi per inviare sms utilizzando monotouch:

  1. Usando OpenUrl (Pre Os 4.0)
  2. Usando MFMessageComposeViewController (Post Os 4.0)

Ho utilizzato i due scenari ma MFMessageComposeViewControllr è preferibile come opzione per le seguenti ragioni :

  1. OpenUrl forza la chiusura dell’applicazione e apre l’applicazione di invio Mail
  2. Non puoi includere HTML o caratteri Unicode nell’oggeto o nel testo del messaggio usando il metodo OpenUrl. Devi decodificare manualmente il carettere prima.MFMailComposeViewController ottimizza la codifica per te.

Continua a leggere

Monotouch – Inviare sms con Iphone

Ci sono due metodi per inviare sms utilizzando monotouch:

  1. Usando OpenUrl (Pre Os 4.0)
  2. Usando MFMessageComposeViewController (Post Os 4.0)

Ho utilizzato i due scenari ma MFMessageComposeViewControllr è preferibile come opzione per le seguenti ragioni :

  1. OpenUrl forza la chiusura dell’applicazione e apre l’applicazione di invio SMS
  2. Non puoi allegare il corpo del messaggio usando il metodo OpenUrl. Puoi solo specificare il numero

Continua a leggere