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

Community Days 2013, ultimi giorni per iscriversi!

Ormai ci siamo i Community Days 2013 (ricordo il 27 e 28 febbraio a Milano) avranno luogo a breve, come indicato in questo post.

Rinnovo quindi l’invito ad iscriversi (sono rimasti gli ultimi posti)..
10602_CD1
Quest’anno c’è una novità, il “community plaza” un posto con comodi divanetti dove potremo fare due chiacchiere direttamente dal vivo.
Come già dicevo dotnethell sarà presente fisicamente, oltre a me troverete anche Michael Denny e Alessandro Alpi, coi quali potrete divertirvi a chiacchierare sul fronte DEV (C#/infrastruttura e Agile development).
Cercateci, mi raccomando!
Vi aspettiamo numerosi!

Community Days – Milano

Il 27 ed il 28 Febbraio 2013 ritorna il più importante evento “community” italiano organizzato dagli user group e community italiani.

Stiamo parlando dei Community Days 2013, a Milano presso Microsoft Italia.

263_community-days-2013_1

Il tema portante della conferenza è lo sviluppo basato sul .net framework, con particolare attenzione sulle novità che Windows 8 e Windows Phone 8 hanno portato sullo scenario informatico internazionale.

264_community-days-2013_2

Come ogni anno, la partecipazione è totalmente gratuita! Le iscrizioni sono già aperte e l’agenda completa sarà live a breve. E tra poco sarà online anche la lista degli speaker.

Tra le community che contribuiranno alla realizzazione dell’evento, per la prima volta, comparirà anche dotnethell.it e sono certo che potremo incontrarci direttamente là anche di persona.

Quindi mi raccomando, vi aspettiamo numerosi, e ricordate che l’iscrizione gratuita, vi consentirà l’accesso a tutte le sale, fino a disponibilità effettiva di spazio!

Per ogni sessione, una pausa di 15 minuti vi consentirà di spostarvi di track.

Attenzione: L’iscrizione deve essere effettuata per entrambe le giornate!

Per ulteriori informazioni e per la logistica, leggete qui.

Stay Tuned!

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

MessageBox in monodroid

Displaying error messages with Android and MonoDroid

One of the most annoying things when I build a desktop app in .NET is MessageBox.Show() for displaying images or using a alert() in Javascript is that I have to click on the popup dialog to make it go away. I love the little messages at the bottom of an Android screen that come up, display some text, and then go away. Its a Toast. Here’s a simple call to make one display.

Toast.MakeText(this, "some info goes here", ToastLength.Short).Show();

In my case, I wanted to report an error, so I did this:

            catch (System.Exception e)
            {
                // log the error to the android logs.
                Android.Util.Log.D("MEDIA_PLAYER", e.Message);
                Toast.MakeText(this, e.Message, ToastLength.Short).Show();
            }

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.