ASP.NET 4.5 - Model Binding e Strongly Typed Data Controls

by Andrea Dottor 20 September 2012 21:52

Con questo video inizieremo a vedere le novità che il Microsoft .NET Framework 4.5 porta ad ASP.NET, ed andremo in dettaglio nelle funzionalità di Model Binding e Strongly Typed Data Controls.

Il video è visibile al seguente link http://youtu.be/nuHngcPZKWE

Potete approfondire l’argomento con le slide ed il codice che trovate in questo post:
Codice e slide della sessione What's New in ASP.NET 4.5 and Visual Studio 2012

Tags: , ,

ASP .NET | .NET | Microsoft

Visual Studio 2012 – Page Inspector

by Andrea Dottor 18 September 2012 15:56

Ecco un nuovo video dove vediamo la funzionalità di Page Inspector di Visual Studio 2012.
Visual Studio 2012 - Page Inspector

In questo post Codice e slide della sessione What's New in ASP.NET 4.5 and Visual Studio 2012trovate codice e slide sull’argomento nel caso voleste approfondire il tutto, mentre a questo link (Using Page Inspector in ASP.NET MVC) trovate un tutorial passo passo, direttamente dal sito di asp.net.

Tags: ,

ASP .NET | Microsoft | .NET

Primo video: Visual Studio 2012 - Cosa c'è di nuovo negli editor HTML, CSS e JavaScript?

by Andrea Dottor 18 September 2012 00:01

Come annunciato all’ultimo meeting, ecco il primo di una (speriamo lunga) serie di video riguardanti Visual Studio 2012 ed ASP.NET 4.5.
Ho deciso di provare una nuova forma di comunicazione che fosse parallela al blog, dei video/screencast di breve durata (dai 5 ai 15 minuti) dove spiego in modo molto pratico vari argomenti riguardanti ASP.NET e tutto ciò che lo circonda.

I video sono molto informali…e per me si tratta di un primo esperimento, e spero siate voi a dirme se la cosa può interessare oppure se preferivate i post sul blog. Attendo quindi i vostri feedback!

In questo primo video, mi scuso già in partenza, ma mi sono reso conto tardi delle molte ripetizioni…ed onestamente non l’ho volutamente ri-registrato per non stancarmi già da subito di questa nuova “forma”. Vedrete che nei prossimi video il risultato è nettamente migliore, ma da qualche parte bisogna pur cominciare.

In questo video parlo delle novità presenti negli editor di Visual Studio 2012 per lo sviluppo web, e quindi l’editor HTML, CSS e JavaScript. Vi farò vedere quelle che ritengo essere le novità più importanti, così da iniziare a prendere subito confidenza con quello che sarà il nostro strumento di sviluppo per tutti i prossimi video.

Trovate il video su youtube a questo link: Visual Studio 2012 - Cosa c'è di nuovo negli editor HTML, CSS e JavaScript?

In questo post Codice e slide della sessione What's New in ASP.NET 4.5 and Visual Studio 2012trovate codice e slide sull’argomento nel caso voleste approfondire il tutto.

Tags: ,

ASP .NET | .NET | Microsoft

Codice e slide della sessione What's New in ASP.NET 4.5 and Visual Studio 2012

by Andrea Dottor 17 September 2012 23:59

Venerdì 14 Settembre 2012 ho tenuto la sessione What's New in ASP.NET 4.5 and Visual Studio 2012 ed ecco qui il codice di esempio e le slide pronte al download:

Abstract: Il Microsoft .NET Framework è in continua evoluzione, e con la prossima versione verranno rilasciate interessanti funzionalità riguardanti ASP.NET.All'interno di questa sessione conosceremo tutte queste novità, ed andremo invece più in dettaglio in alcune di esse, permettendo a chi conosce già ASP.NET di poter essere più produttivo (Strongly Typed Data Controls, Model Binding, Asynchronous, WebSocket, ... ), mentre, per chi invece non ha molta esperienza con questa tecnologia, potrà vedere come i nuovi template di progetto e Visual Studio 2012 potranno aiutarlo ad approcciare correttamente queste tipologie di applicazioni.

Tags: , ,

ASP .NET | .NET | XeDotNet

Inviare email tramite un SMTP con certificato self-signed

by Andrea Dottor 05 September 2012 23:14

Può capitare (in fase di sviluppo) di dover inviare delle mail ad un server SMTP che ha un certificato self-signed.
Se provate ad inviare una mail da codice vi ritroverete con una bella eccezzione a causa del fallimento della validazione del certificato.

Un possibile work-around è quello di forzare il check della validità dei certificati in modo da far ritornare sempre true.
Il codice necessario è il seguente:

ServicePointManager.ServerCertificateValidationCallback =
                                (sender, certificate, chain, sslPolicyErrors) => true;

NOTE: il codice in questione è valido ogni qualvolta vi troviate a dover bypassare degli errori dovuti ai certificati.
Per ovvi motivi di sicurezza, siate ben consci di utilizzare questo codice solamente durante le fasi di sviluppo, altrimenti tanto varrebbe evitare l’uso del certificato.

Ed ecco il codice completo da utilizzare, compreso di invio della mail

ServicePointManager.ServerCertificateValidationCallback =
                                (sender, certificate, chain, sslPolicyErrors) => true;

MailMessage mail = new MailMessage();
mail.To.Add(new MailAddress("mail del destinatario"));
mail.Subject = "Oggetto";
mail.Body = "Corpo della mail";
mail.From = new MailAddress("mail del mittente");

SmtpClient smtp = new SmtpClient("smtp.miaazienda.it");
smtp.Credentials = new NetworkCredential("user", "password", "dominio");
smtp.EnableSsl = true;

smtp.Send(mail);

Tags: ,

ASP .NET | .NET

Creare uno schedulatore con poche righe di codice - Quartz.NET

by Andrea Dottor 05 September 2012 22:34

Il bello di fare community è che spesso si ha l’occasione di scambiarsi consigli e link che prima o poi possono tornare utili. Un caso è proprio questo, quello di Quartz.NET, una libreria consigliatami da Davide Senatore ed utile per eseguire del codice a intervalli schedulati.
A molti sarà capitato di scrivere un applicativo che doveva (per esempio) inviare delle mail alle 24.00 di ogni giorno, oppure eseguire qualche operazione ogni x ore…ed ecco che questa libreria ci permette di fare proprio questo, e con veramente poche righe di codice.

Un esempio è il seguente:
Sviluppiamo una classe che conterrà il codice da eseguire in un determinato momento. Per fare ciò è sufficiente creare una classe e fargli implementare Quartz.IJob:

public class MyCustomJob : Quartz.IJob
{
  public MyCustomJob()
  {
  }

  public void Execute(Quartz.IJobExecutionContext context)
  {
    // TODO: implementare il codice che dovrà essere eseguito
  }
}

Se vogliamo far richiamare questa classe ogni 30 minuti, il codice per realizzare lo scheduler sarà il seguente:

ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler = schedulerFactory.GetScheduler();

IJobDetail job = new JobDetailImpl(
                  "MyCustomJob",
                  null,
                  typeof(MyCustomJob));

ITrigger trigger = new Quartz.Impl.Triggers.SimpleTriggerImpl(
              "trigger",
              DateTime.UtcNow,
              null,
              Quartz.Impl.Triggers.SimpleTriggerImpl.RepeatIndefinitely,
              new TimeSpan(0, 30, 0));

scheduler.ScheduleJob(job, trigger);
scheduler.Start();

Come è possibile vedere, Quartz.NET permette di semplificare notevolmente la creazione/esecuzione di job ad eventi programmati. La libreria è molto completa anche dal punto di vista delle configurazioni, il che permette di adattarla ai casi di utilizzo più disparati.

Ed ecco che grazie ad un consiglio “giusto” ho risparmiato (e fatto risparmiare) un bel pò di lavoro.

Tags:

.NET

Json.Net - Deserializzare JSON con un AnonymousType

by Andrea Dottor 17 July 2012 22:42

Solitamente ci si trova a deserializzare JSON basandosi su classi precedentemente create. Spesso queste classi hanno quest'unico scopo, quello di mappare i dati che arrivano in formato JSON. Ed ecco che oggetto dopo oggetto, ci troviamo con molte di queste classi, che vengono utilizzate in un'unico punto.

Esporando la classe Newtonsoft.Json.JsonConvert della libreria Json.Net ho notato un metodo DeserializeAnonymousType, ed ho subito indagato sul come funzionasse, e se potesse fare al caso mio.
Questo metodo si occupa di deserializzare una stringa JSON utilizzando un AnonymousType come tipo...ed ecco che mi si è accesa la lampadina.
Open-mouthed smile

Ecco come poterlo utilizzare:

var dummy = new
{
  Description = "",
  Code = "",
  Data = "",
  CategoryID = -1,
};

var product = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(objToSave, dummy);

product sarà del tipo specificato nell'oggetto dummy creato come AnonymousType, ed avrà quindi le proprietà Description, Code, Data e Category esattamente come specificato nella dichiarazione.
Questo permette quindi di evitare la scrittura di classi utili alla sola deserializzazione degli oggetti JSON.

Tags: ,

.NET | ASP .NET

Baroliere - L'app per vincere/barare ai giochi di parole

by Andrea Dottor 12 June 2012 00:30

La mia esperienza con Windows Phone non si è assolutamente fermata, ed infatti ecco che me ne sono uscito con un'applicazione dedicata a chi ha difficoltà a vincere ai giochi di parole come ad esempio scrubble, scarabeo, o simili.
Se vi serve un aiuto per battere un vostro amico o familiare a questi giochi, ecco l'app che fa per voi!

La potete trovare al seguente link:
http://www.windowsphone.com/it-IT/apps/6753e7e0-4de1-4d56-854f-fdedf980cc4d

Barare+parole=BAROLIERE
Vincere ai giochi di parole non è mai stato così facile.
Immetti le lettere che hai a disposizione e ti verranno visualizzate tutte le parole disponibili nel dizionario italiano.

Paroliere, scrubble, scarabeo sono solo alcuni dei giochi in cui quest'applicazione ti può facilitare la vita.

Sviluppare per Windows Phone è divertente ed immediato, e quest'app lo dimostra...

Una sera, giocando a scrubble online, mi sono ritrovato di fronte ad un file txt contenente tutte le parole presenti all'interno del dizionario Italiano, e subito mi è nata l'idea di utilizzarlo per realizzare un'applicazione Windows Phone. Ed allora eccomi, qualche sera davanti a Visual Studio e questo è il risultato.

SplashScreenImagemainPageinfoPage

L'app è disponibile a pagamento con 3 giorni di trial...più che sufficienti per capire il funzionamento di questa semplice applicazione.
Ho aggiornato il prezzo a 1,29€ che per barare mi sembrano il minimo Winking smile

Tags: , , ,

Tempo libero | .NET | Windows Phone

La mia prima esperienza da DEV con Windows Phone

by Andrea 18 April 2012 00:49

Tempo fa vi ho scritto della mia prima esperienza di sviluppo con Android (link), ed all'epoca ne ero anche entusiasta....ma perchè ancora non avevo provato a sviluppare per Windows Phone.
In termini di diffusione dei dispositivi purtroppo non si può dire lo stesso...ma in questo post voglio concentrarmi solo in quel che riguarda la parte di sviluppo.

Emulatore

La cosa che adoro in assoluto è la velocità e la leggerezza dell'emulatore Windows Phone, e chi ha provato a sviluppare per android sa bene la differenza abissale che c'è rispetto all'emulatore di android (lento e molto molto pesante). Già solo questo aspetto permette di velocizzare e non di poco la fase di sviluppo di un'applicazione.

Metro Style

Per chi mi conosce sa che con xaml non sono espertissimo, ma ad aiutarmi nello sviluppo per Windows Phone è stato proprio lo stile metro del telefono. Ebbene si, l'utilizzo dei controlli panorama e pivot, uniti alla semplicità dello stile metro fanno si che un'applicazione possa essere accativante ed usabile, senza necessariamente dover essere dei guru di xaml. 

Ovvio che conoscere xaml come si deve permette di fare la differenza, non solo in termini di tempo, ma anche nel feedback che l'app può dare. Animazioni, effetti grafici, ... sono aspetti che sicuramente catturano l'attenzione dell'utente finale.

Le mie app

Ed ecco qui il risultato delle prime notti spese per imparare questa piattaforma:

- Date Calculator

http://windowsphone.com/s?appid=3aee2367-41d5-448e-b21b-1f9ed5e7de79

Si tratta di un'app per eseguire calcoli con le date. Poter aggiungere e sottrarre giorni, mesi e anni da una precisa data, oppure calcolare la differenza tra due date inserite.
Un'applicazione semplice che mi ha dato modo di conoscere il controllo panorama, ed iniziare a conoscere il toolkit (controlli aggiuntivi per Windows Phone) che ho utilizzato nel selettore delle date.

- Baby Calculator

http://windowsphone.com/s?appid=707ef9e0-6fe0-44cf-92b2-4e8b66a86a9b

In questo caso la calcolatrice è solo una "scusa" per far usare l'app. Nella realtà è nata per aiutare l'associazione tra numero scritto e la relativa pronuncia per i bambini...infatti alla pressione dei tasti numerici, il numero premuto viene anche "letto" da una voce.
Nell'ultima versione ho aggiunto la possibilità di far registrare l'audio che verrà riprodotto alla pressione dei tasti numerici, in modo di dare la possibilità ai genitori di utilizzare la loro voce oppure per far divertire i bambini registrandoci dei suoni e rumori.
Con quest'app ho approfondito così tutto l'aspetto che riguarda la registrazione e riproduzione audio, per non parlare anche dell'IsolatedStorage utilizzato per il salvataggio dell'audio registrato.

Se avete modo di provarle (specialmente Baby Calculator) ogni feedback è sempre ben accolto ;-)

Conclusioni

Sviluppare per Windows Phone è proprio piacevole. I tool di sviluppo fanno poi l'enorme differenza (rispetto le altre piaforme tipo android e iphone) e permettono di realizzare applicazioni con (quasi) estrema facilità. Microsoft, con Visual Studio ci stà proprio viziando per bene.

Ed ora una nota da utente finale: da quando stò utilizzando il nokia lumia 800 come telefono principale, ammetto di non aver sentito proprio la mancanza di android (se non per un paio di funzionalità devvero minori). 

Speriamo veramente che Windows Phone prenda piede il più possibile!

 

Start Something! Tour – Windows 8 e WP7.5 

Per chi voglia provare questa esperienza, ricordo che ci sarà un lab  a Mestre (Start Something! Tour – Windows 8 e WP7.5 ) il 3 maggio 2012 ed è sufficiente registrarsi qui http://www.xedotnet.org/Home/Meeting/201205031

Buon sviluppo a tutti

Tags:

.NET | Generale | Tempo libero

Codice e slide della sessione ASP.NET e lo sviluppo mobile

by Andrea Dottor 16 February 2012 09:42

Ecco pronte al download le slide ed il codice della sessione ASP.NET e lo sviluppo mobile che ho tenuto al XeDotNet Community Meeting HTML5 e lo sviluppo mobile del 10 febbraio 2012.

Abstract: I dispositivi mobile che permettono di navigare in rete sono sempre più diffusi, e gli smartphone ed i tablet ne sono l'esempio più lampante. In questa sessione vedremo come realizzare un sito ASP.NET che sia ottimizzato per questo genere di dispositivi sia dal punto di vista delle prestazioni ma anche delle problematiche riguardanti i dispositivi touch.

Come database per il codice della demo è necessario scaricare il db AdventureWorks dal seguente link http://msftdbprodsamples.codeplex.com/e modificare la connectionstring del progetto web.

Devo ringraziare tutti i partecipanti all'evento...vedervi così numerosi, e vedere facce nuove, ci da una carica in più e riuscite a farci quasi dimenticare le notti spese a preparare sessioni di questo tipo. Grazie

Tags: , ,

ASP .NET | .NET | XeDotNet