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();
            }

Visual Studio 11 – Prime impressioni

Oggi ho iniziato ad utilizzare e muovere i primi passi con Visual Studio 2011. Abbiamo decisio di inizare ad utilizzare VS2011 e MV4 per sviluppare un nostro nuovo progetto anche se ancora in versione developer e non in versione definitiva. Questo perche’ lo sviluppo durera’ circa 15 mesi e per allora ci saranno le versioni definitive.

La prima cosa che si puo’ notare e’ la sinergia tra la nuova versione di Microsof Windows, Windows 8, e Visual Studio 11. L’interfaccia visuale, molto semplice ed intuita e diciamo anche essenziale, mostra i seguenti punti di forza:
Continua a leggere ‘Visual Studio 11 – Prime impressioni’

Maskedtextbox and SelectAll()

I had a problem with maskedit and the selectAll. I wanted that when clicked on maskedit, all text was selected. The problem had a simply solution: I had to use the SelectAll() method in the Focus Event

.
.
.
mskBox.GotFocus += new EventHandler(mskBox_GotFocus);
.
.
.
.
void mskBox_GotFocus(object sender, EventArgs e)
{
  mskBox.SelectAll();
}

But this did not run. I found this solution:
Maskedtextbox and SelectAll()

private delegate void SetMaskedTextBoxSelectAllDelegate(MaskedTextBox txtbox);

private void maskedTextBox1_Enter(object sender, EventArgs e)
{
   this.BeginInvoke(new SetMaskedTextBoxSelectAllDelegate(SetMaskedTextBoxSelectAll), new object[] { (MaskedTextBox) sender });
}

private void SetMaskedTextBoxSelectAll(MaskedTextBox txtbox)
{
   txtbox.SelectAll();
}

And this run!!!!!

Italian Agile Day 2011 – Roma – LEGO Agile prototyping

Ecco le slides della mia sessione. Grazie a tutti per aver partecipato

Lasciatemi un feedback. Ecco il link: http://joind.in/4525

MONODROID: SVILUPPARE IN C# SU ANDROID

Finalmente disponibile il video della mia presentazione di monodroid alla conferenza WHYMCA 2011

Office 2010 professional eng: Reinstallazione su notebook dell

Ho acquistato un portatile nuovo e, come il mio solito formatto tutto e reinstallo. Mi sono accorto di una cosa: non ho trovato il dvd di installazione del pacchetto Microsoft Office 2010. Dopo aver litigato col supporto tecnico, ho iniziato a girare su google per capire come fare. Ho trovato questo bellissimo servizio per poter scaricare il proprio prodotto Microsoft. Per poter però procedere con il download, bisogna utilizzare la chiave di attivazione allegata al pc. Finalmente un buon servizio di Microsoft.
Ecco il link per il pacchetto di Office 2010 professional : http://office.microsoft.com/en-gb/buy/netbook-FX101829141.aspx

NB: Questo servizio è valido per tutte le applicazioni Microsoft in versione OEM

TweetDeck

Ciao,
oggi volevo condividere con voi un ottimo strumento: TweetDeck. Tweet Deck permette di pubblicare con un unico click un post su tutti i profili di twitter, facebook, linkedin, etc. Avendo diversi profili : il profilo personale, quello aziendale, quello su linkedin, quello su facebook cercavo un programma che mi gestisse tutti con un semplice click. TweetDeck è quello che fa per me: grafica semplice, tutto a portata di mano e configurazione facile.

Il link per scaricare il programma è : http://www.tweetdeck.com/

Consiglio!!!

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);

Proposte pazze per un mondo Agile!

Ciao a tutti, finalmente belle notizie. Il non postare, era dovuto al fatto che sono stato impegnato alla creazione del primo laboratorio ispirato al FABLAB del MIT a Milano : il FRANKENSTEIN GARAGE.

io, Andrea ed Paolo, abbiamo partecipato al bando della provincia : “diamo casa a 10 idee creative“. E finalmente la bella notizia: l’abbiamo vinto. Per l’occasione abbiamo presentato l’idea di aprire un laboratorio ispirato al FabLab del MIT anche a Milano. La proposta è stata presentata assieme ad un business plan e ad una presentazione impeccabile con tanto di Lego ed Arduino. Risultato: ci hanno selezionato.

Ecco la presentazione del progetto Frankenstein Garage

Nella stessa settimana è passata su Twitter la call4paper per la IAG2011. Perchè non provarci con il Frankenstein Garage? Ecco che tutto il team ha postato le proprie idee. In realtà, saremo presenti sempre tutti e tre e i lavori saranno preparati in team. Speriamo vengano accettate tutte e tre!

Le nostre proposte un poco eclettiche, se volete, sono nello stile del Frankenstein Garage:

Corso di cucina fusion Elettro-Agile con Arduino
Prendete un Arduino board, alcune linee di codice, una cucchiaiata di breadboard. Spolverate con dei componenti passivi. Saldate a 200° con buono stagno. Versate in una pentola e mescolate il tutto con metodo AGILE. Lasciate raffreddare per pochi secondi. Servite il vostro prototipo elettronico e lasciate di stucco i vostri clienti! Ecco la ricetta per creare rapidamente prototipi elettronici su cui sviluppare i vostri prodotti di successo. Lo sviluppo agile si puo’ applicare anche all’elettronica senza essere grandi esperti di circuiti. Durante il workshop costruiremo insieme a voi un prototipo per dimostrare il nostro approccio.

LEGO Agile prototyping – Design agile non convenzionale
E’ possibile utilizzare strumenti insoliti come i Lego per lavoro? Noi crediamo di si! e non siamo “bamboccioni”. I famosi mattoncini sono rapidi e flessibili: quanto di più AGILE esiste per prototipare un’idea e trasformarla rapidamente in prodotto. Analizzeremo i problemi del product development classico e vedremo come rendere il design agile. Esploreremo con voi un caso pratico: e non dimenticate di portare i vostri mattoncini!

Startup senza falldown: la pianificazione strategica oltre il wishful thinking
“Fare una app, anche se di successo, non significa fondare una startup. Una startup serve per trovare e sperimentare un modello di business sostenibile, quindi la prima cosa che i finanziatori chiedono è un business plan. Il modo migliore per prepararne uno è tirare un po’ di dadi (meglio quelli con tante facce del D&D per variare un po’ i numeri) e metterli su un foglio di calcolo, possibilmente accompagnato con una presentazione farcita di bullet point, grafici incomprensibili e descrizioni lunghissime mescolate a immagini di cattiva qualità. E poi? poi ci si scontra con il mercato. Per fortuna esistono strumenti alternativi: vedremo insieme come combinare customer development e il business model canvas per analizzare il business e verificare la bontà del modello scelto.”

PS: So che è molto simile all’articolo di paolo ma è solo apparenza… ahahahah

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.

Pagina successiva »



Iscriviti

Get every new post delivered to your Inbox.