XeDotNet - One Day Mobile 2014

by andrea 03 April 2014 10:57

logo_xedotnetE’ con gran piacere che vi informo che sono aperte le iscrizioni per l’evento One Day Mobile 2014che si terrà il 15 Maggio 2014 presso il Novotel Castellana di Venezia Mestre.

Si tratta di un evento da un’intera giornata tutto dedicato allo sviluppo mobile: Windows Phone, Windows 8, Xamarin e PhoneGap saranno i principali protagonisti.

Ecco qui l’agenda che vi accompagnerà dalle 9 del mattino:

Andrea Dottor: App connesse con ASP.NET Web API
Realizzare applicazioni connesse può fare la differenza in un mercato in pieno sviluppo.
Aggiornare i dati di un catalogo, caricare/leggere gli score di un gioco, interfacciarsi con applicazioni/database esistenti...tutti validi motivi per non perdervi questa sessione, dove vedremo come sviluppare servizi ASP.NET Web API che implementino l'OAuth2 authentication ed OData, e vedremo come poterli consumare da applicazioni Windows Phone, Windows Store App e Xamarin App.

Andrea Boschin: Condivisione del codice tra W8 e WP8
Lo sviluppo mobile richiede sempre più spesso di fornire applicazioni che siano disponibili su diversi device, siano essi Windows Phone o Windows 8, sfruttando le peculiarità di ciascuno. Questo pone il problema di scrivere codice che possa in qualche modo essere riutilizzato su piattaforme che pur essendo simili hanno diversità marcate. In questa sessione vedremo alcune tecniche che possono aiutare nel migliorare la condivisione del codice quando si sviluppano applicazioni per questi sistemi.

Mirco Vanini: C++ in Windows Phone Apps
In questa sessione vedremmo una panoramica degli strumenti messi a disposizione per lo sviluppo nativo su Windows Phone 8. Verrà posta particolare attenzione al suo utilizzo per lo sviluppo di applicazioni ibride (C#/C++) che hanno la necessità di riutilizzare algoritmi sviluppati su piattaforme desktop.

Davide Vernole: Xamarin do it better!
Xamarin offre un’alternativa al “Write Once, Run Anywhere Approach” permettendo agli sviluppatori di realizzare applicazioni per le principali piattaforme mobile garantendo interfacce utente native, performance native e condivisione del codice tra le diverse piattaforme utilizzando C#, il .NET Framework e Visual Studio. Lo "Xamarin Unique Approach" è il filo conduttore di questa sessione in cui impareremo a conoscerlo meglio. Sfruttate conoscenze, potenzialità e sintassi di C# per ottenere il meglio dalle vostre applicazioni cross-platform; ovviamente con Xamarin!

Lorenzo Barbieri: Architettura WP8

Davide Senatore: PhoneGap & Cordova: building cross platform mobile applications
In questa sessione parleremo di sviluppo mobile cross platform con PhoneGap (AKA Cordova).
Prenderemo in esame tool, skill richieste per iniziare e best practice per non incorrere in spiacevoli scoperte.
Scopriremo come l'investimento in "poche" tecnologie standard possa abilitarci allo sviluppo su tutte le piattaforme mobile al momento disponibili.
Non ultimo, confronteremo anche pro, contro e costi di sviluppo di una soluzione di questo tipo con una soluzione nativa ed una soluzione web-based, prendendo in esame applicazioni realmente sviluppate.

Marco Dal Pino: Sviluppare e pubblicare applicazioni Gestionali (LOB) con Windows Phone
La piattaforma Windows Phone ha raggiunto una buona diffusione di mercato e sempre più si sente la necessità di implementare funzionalità gestionali utilizzando i device WP8. Inoltre la prossima versione di Windows Embedded 8 Handheld sarà basata proprio su Windows Phone, introducendo nuovi device industriali rugged con caratteristiche di lettura barcode o Carte magnetiche; il tutto già compreso nativamente nelle API di Windows Phone. Vediamo come affrontare lo sviluppo di queste applicazioni, quali tipici problemi vanno affrontati e come distribuire il prodotto ai nostri clienti.

Ora non vi rimane che registrarvi…accorrete gente, accorrete!
https://communitydevtool.microsoft.it/public/frmRegister.aspx?eventid=1203PSOSREGTFTMLKGCQHT

Vi avviso che i posti sono limitati Occhiolino

Tags: , ,

Windows Phone | XeDotNet | Microsoft | .NET

Codice e slide della sessione ASP.NET MVC - tutto quello che avresti voluto sapere

by andrea 03 February 2014 21:46

Venerdì 31 Gennaio 2014 ho tenuto la sessione “ASP.NET MVC - tutto quello che avresti voluto sapere”.

Esistono funzionalità di ASP.NET MVC che non vengono spesso menzionate nei principali tutorial o esempi, ma che possono fare la differenza in molte situazioni. In questa sessione mi voglio concentrare proprio in quelle funzionalità/caratteristiche meno note, e farvi vedere come poter risolvere elegantemente "problematiche" comuni. Localizzazione, customizzazione delle view, EditorTemplate saranno alcuni degli argomenti presi in causa.


Tags: ,

ASP .NET | XeDotNet

XeDotNet Community Meeting: The future of the web

by Andrea 20 January 2014 14:55

Venerdì 31 Gennaio terrò assieme a Mauro Servienti il XeDotNet community meeting dal titolo "The future of the web".

Io sarò a presentarvi la sessione "ASP.NET MVC - tutto quello che avresti voluto sapere" dove parlerò di tutta una serie di funzionalità meno note di ASP.NET MVC, ma che permettono spesso di fare la differenza in quanto a produttività:

Esistono funzionalità di ASP.NET MVC che non vengono spesso menzionate nei principali tutorial o esempi, ma che possono fare la differenza in molte situazioni. In questa sessione mi voglio concentrare proprio in quelle funzionalità/caratteristiche meno note, e farvi vedere come poter risolvere elegantemente "problematiche" comuni. Localizzazione, customizzazione delle view, EditorTemplate saranno alcuni degli argomenti presi in causa.

Mauro invece ci delizierà con la sessione "AngularJS: un framework per le Single Page Application":

L'acronimo SPA (Single Page Application) è sempre più presente nelle nostre specifiche e analisi, soprattutto adesso che HTML5, CSS3 e JavaScript, dopo essere tornati in auge, diventano di giorno in giorno piattaforme sempre più mature. Obiettivo della sessione sarà una panoramica introduttiva su AngularJS, un framework JavaScript per lo sviluppo di Single Page Application, utilizzando come pattern client side una curiosa combinazione tra Model View Controller e Model View ViewModel.

Vi consiglio di non mancare!
Per registrarvi: http://www.xedotnet.org/Home/Meeting/20140131

Tags: , , , ,

.NET | ASP .NET | XeDotNet

Materiale del lab su SignalR

by andrea 18 November 2013 21:34

Doc_2Ecco qui disponibile il materiale che ho preparato per il Lab su SignalR che ho tenuto Giovedì 7 Novembre 2013.

Codice iniziale lab: download
Codice finale lab:
download
Documento:
download word, download pdf

Per chi volesse provare ad eseguire in autonomia questo lab, trova il documento (sia in formato word che pdf), e può scaricare il codice iniziale.
In caso di problemi o difficoltà, potete confrontare il vostro progetto con quello “codice finale” che ho messo qui a disposizione.

Il lab è composto da 4 esercitazioni:

  • 1_ Chat semplice. I messaggi vengono inviati a tutti gli utenti collegati
  • 2_ Chat con stanze. I messaggi vengono inviati ai soli utenti appartenenti alla stessa stanza
  • 3_ Messaggi tra browser. I messaggi vengono inviati tra i browser dello stesso utente (raggruppati per username)
  • 4_ Broadcast di messaggi da server verso client. Invio delle informazioni sui processi in esecuzione nel server

Ed ora non vi rimane che scaricare questo materiale e divertirvi un po’ con SignalR.

Tags: , ,

ASP .NET | .NET

Cancellazione di un progetto dal TFS di Visual Studio Online

by Andrea 13 November 2013 23:20

Facendo delle demo durante alcuni corsi di formazione, mi sono ritrovato ad avere alcuni progetti inutilizzati all'interno del mio account di Visual Studio Online.

Nel caso voleste cancellarli definitivamente, lo potete fare dal Developer Command Prompt di Visual Studio, digitando:

TfsDeleteProject /collection:https://NomeAccount.visualstudio.com/DefaultCollection "nome progetto"

Ed ecco ritornato l'ordine! ;-)

link MSDN: Delete a team project [TFSDeleteProject]

Tags: ,

.NET | Microsoft

ASP.NET App Suspend

by Andrea Dottor 12 October 2013 12:12

All’interno del .NET Framework 4.5.1 è stata introdotta una nuova funzionalità dal nome ASP.NET App Suspend, che farà la gioia di molti di voi (me compreso).

Di che cosa si tratta?

AppSuspend_wfASP.NET App Suspend permette di ridurre i tempi di avvio di un’applicazione ASP.NET (che solitamente ricadevano nell’utente che si trovava ad eseguire la prima richiesta), in quanto si ha possibilità di specificare che, dopo il tempo di inattività dell’ApplicationPool invece di terminare il processo, ora potrà andare in uno stato di sospensione, permettendo così alla richiesta successiva di non dover ricompilare totalmente l’applicazione.
Questa novità permette di ridurre i tempi di primo avvio del ben 90%.
Altro aspetto da non sottovalutare è che questa funzionalità permetterà così di poter avere più siti in host all’interno dello stesso server, ben 7 volte i siti attuali.
AppSuspend_stats

Vincoli

Per poter utilizzare questa funzionalità, l’applicazione dovrà essere sviluppata con il .NET Framework 4.5.1 e dovrà essere pubblicata in un server Windows Server 2012 R2.

Abilitare la funzionalità

Per abilitare la funzionalità di dovrà intervenire nei settings dell’ApplicationPool andando a selezionare (all’interno delle impostazioni avanzate) nel parametro “Idle Time-out Action” la voce “Suspend” invece di quella di default che è “Terminate”.
AppSuspend_enable

Ed ora non ci resta che aspettare di aggiornare/migrare i nostri server a Windows Server 2012 R2 e godere di questa nuova funzionalità.

Per maggiori informazioni a riguardo, vi consiglio la lettura dei seguenti post:

Tags: , ,

ASP .NET | .NET

Codice e slide della sessione Il buon programmatore - consigli pratici per una vita felice

by Andrea Dottor 12 October 2013 11:38

Venerdì 11 Ottobre 2013 ho tenuto la sessione “Il buon programmatore - consigli pratici per una vita felice”.

Lavorando come consulente mi sono trovato spesso di fronte a problematiche (a volte banali), ma che erano la causa di gravi problemi di performance dell'appliccazione realizzata, oppure più banali, ma che rendevano il codice meno manutenibile e gestibile, specialmente lavorando in team. Vedere che nel tempo, persone/realtà diverse, commettono gli stessi errori mi ha fatto pensare a questa sessione...dove intendo elencare i problemi più comuni, che per causa di tempo o scarsa conoscenza, vengono commessi, e proporre delle soluzioni semplici da poter applicare fin da subito. (ASP.NET, ma non solo)

 

Questa sessione, e specialmente i vostri commenti post-sessione fanno capire quanto spesso le basi, o funzionalità che abbiamo ogni giorno sotto agli occhi, vengano sottovalutate.
Questa sessione è solo un punto di partenza, e chissà che trovi il tempo di approfondire questi ed altri argomenti simili direttamente qui nel blog.

Ringrazio tutti i partecipanti, vedere la sala piena, e gente che prende appunti da una soddisfazione che non immaginate…grazie.
Vi ricordo il prossimo appuntamento su SignalR giovedì 7 Novembre, e per info:
http://www.xedotnet.org/Home/Meeting/20131108

Tags: , , ,

.NET | ASP .NET | XeDotNet

Il buon programmatore - consigli pratici per una vita felice

by Andrea 07 October 2013 11:21

Venerdì 11 Ottobre 2013 si terrà il XeDotNet community meeting "Best Practices", dove io terrò una sessione dal titolo "Il buon programmatore - consigli pratici per una vita felice".
Ecco qui l'abstract:

Lavorando come consulente mi sono trovato spesso di fronte a problematiche (a volte banali), ma che erano la causa di gravi problemi di performance dell'appliccazione realizzata, oppure più banali, ma che rendevano il codice meno manutenibile e gestibile, specialmente lavorando in team. Vedere che nel tempo, persone/realtà diverse, commettono gli stessi errori mi ha fatto pensare a questa sessione...dove intendo elencare i problemi più comuni, che per causa di tempo o scarsa conoscenza, vengono commessi, e proporre delle soluzioni semplici da poter applicare fin da subito. (ASP.NET, ma non solo)

La sessione è frutto di esperienze/problematiche che ho affrontato nel corso della mia attività di consulente (www.dottor.net). Non vi presenterò soluzioni a problemi complessi, o montagne di codice, ma bensì cercherò di darvi dei suggerimenti pratici che vi faciliteranno la vita.

 

Prima della mia sessione, Davide Vernole ci parlerà di ALM con la sessione "ALM Assessment: a che livello siete?"

Misurare la nostra capacità di gestione del ciclo di vita di un'applicazione non è sempre un'operazione semplice. In questa sessione impareremo a conoscere i livelli di maturità dell'ALM e le discipline a cui si applicano e vedremo come sia possibile misurare la maturità ALM del nostro team.

 

Per partecipare al meeting, registratevi a questo link: http://www.xedotnet.org/Home/Meeting/20131011

Tags: , , ,

.NET | ASP .NET | XeDotNet

Conoscere se un Type è di tipo Nullable<T>

by Andrea 30 September 2013 14:14

Oggi sono re-incappato nel caso di dover verificare su un tipo T all'interno di una funzione generica fosse di tipo Nullable<> o no.

Ed ecco una possibile soluzione:

Type type = typeof(T);
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof (Nullable<>))
{
 
}

Fonte MSDN: How to: Identify a Nullable Type (C# Programming Guide)

Ci sono operazioni che non si fanno tutti i giorni, dove per ritrovare quella riga di codice necessario basterebbe riaprire del vecchio codice, oppure cercare un pò in rete...ma visto che potrebbe essere utile non solo a me, ho deciso di riportarla qui nel blog.
;-)

Tags: ,

.NET

Leggere un feed RSS grazie alla classe SyndicationFeed

by Andrea Dottor 14 August 2013 10:57

Dalla versione 3.5 del .NET Framework è presente la classe SyndicationFeed all’interno del namespace System.ServiceModel.Syndication, che nel framework 3.5 è contenuta nell’assembly System.ServiceModel.Web mentre dal framework 4 la trovate all’interno dell’assembly System.ServiceModel.

Link MSDN: SyndicationFeed Class

Questa classe fornisce i metodi per leggere e scrivere con facilità un feed RSS 2.0 e/o Atom 1.0.

Ecco qui un esempio che dimostra la facilità di utilizzo di questa classe. Il seguente codice permette di recuperare il contenuto di un feed, come ad esempio l’elenco dei post esposti dal feed di un blog:

/// <summary>
/// Classe che rappresenta un elemento contenuto all'interno di un feed RSS
/// </summary>
public class FeedItem
{
    public string Title { get; set; }

    public string Description { get; set; }

    public DateTime Date { get; set; }

    public string Url { get; set; }
}

/// <summary>
/// Metodo che ritorna gli item di un feed RSS, dato l'url del feed
/// </summary>
/// <param name="feedUrl">Url del feed RSS</param>
/// <returns>Elenco di elementi contenuti nel feed</returns>
public IEnumerable<FeedItem> GetPosts(string feedUrl)
{
    List<FeedItem> posts = new List<FeedItem>();
    using (XmlReader reader = XmlReader.Create(feedUrl))
    {
        SyndicationFeed feed = SyndicationFeed.Load(reader);
        reader.Close();
        foreach (SyndicationItem item in feed.Items)
        {
            FeedItem post = new FeedItem
                {
                    Description = item.Summary.Text,
                    Title = item.Title.Text,
                    Date = item.PublishDate.Date,
                    Url = item.Links.Count > 0 ? item.Links.First().GetAbsoluteUri().ToString() : null
                };
            posts.Add(post);
        }
    }

    return posts;
}

Tags: ,

.NET