marzo 2014 Entries

C# vNext: “ctor type inference”

Finalmente :-) class Sample<T> { public Sample( T data ) { } } var instance = new Sample( "this type is infered" ); Non saremo più obbligati a dichiarare i tipi generici sui costruttori, rendendo di fatto utili le Tuple :-P .m Non tutte le feature che vediamo saranno sicuramente implementate, questi post sono basati sui draft pubblicamente disponibili al momento della scrittura

posted @ lunedì 31 marzo 2014 13.16 | Feedback (0)

C# vNext: “null operator”

Questa invece mi piace un sacco, nonostante purtroppo non sia un’implementazione delle Monad in C#: public class Foo { public void Evaluate( Person person ) { var number = person?.Addresses?.FirstOrDefault()?.StreetNumber; } } Se diciamo che, dato che StreetNumber è Int32, il tipo di “number” è Nullable<Int32> il resto direi che è abbastanza ovvio. Ci evita una valanga di noiose e rumorose “if”. .m Non tutte le feature che vediamo saranno sicuramente implementate, questi post sono basati sui draft pubblicamente disponibili al momento della...

posted @ giovedì 27 marzo 2014 11.10 | Feedback (2)

C# vNext: “params on IEnumerable”

Questa non mi piace, nel senso che non mi piace la keyword params in generale, sono più le volte che alla lunga mi ha dato problemi piuttosto che vantaggi, comunque: public ckass Foo { public void Evaluate( params IEnumerable<Whatever> data ) { } } .m Non tutte le feature che vediamo saranno sicuramente implementate, questi post sono basati sui draft pubblicamente disponibili al momento della scrittura

posted @ lunedì 24 marzo 2014 10.03 | Feedback (2)

C# vNext: “expression bodied functions”

Questa è una figata: public class Foo { public Int32 Evaluate( SomeInput data ) => …; } Lasciamo perdere la non-implementazione , ma notiamo piuttosto che Evaluate è un metodo a tutti gli effetti, il cui body invece di essere inutilmente verboso si limita ad una lambda, in realtà è una espressione, non viene generato un expression tree, usa solo una sintassi simile a quella delle lambda. .m Non tutte le feature che vediamo saranno sicuramente implementate, questi post sono basati sui draft pubblicamente disponibili al momento della scrittura

posted @ giovedì 20 marzo 2014 10.25 | Feedback (0)

Global Windows Azure Bootcamp 2014, Io ci sono, e voi?

Accorrete gente, accorrete! “29 marzo 2014, Pordenone. 1nn0va e il Consorzio Universitario di Pordenone organizzano per il prossimo 29 marzo 2014 il Global Windows Azure Bootcamp 2014, evento che si terrà al Consorzio Universitario, in via Prasecco, 3/a, Pordenone. Si tratta di una sessione sulla piattaforma di cloud computing di Microsoft, che segue il format creato dagli MVP mondiali su Windows Azure. Particolarità è che l'evento sarà in contemporanea in oltre 100 location nel mondo, e quella di Pordenone del Consorzio Universitario è al momento l'unica location italiana. Le sessioni quindi si caratterizzeranno come un...

posted @ venerdì 14 marzo 2014 9.39 | Feedback (0)

Node come semplice web server per file statici

Ultimamente mi sto dedicando molto allo sviluppo client con JavaScript e HTML, mi diverto, odio JavaScript, amo JavaScript e comunque mi diverto :-) Una delle cose interessanti dello stack client side è che è totalmente indipendente da Windows come sistema operativo, quindi perché non sfruttare il dettaglio che il mio Mac, quando non uso la macchina virtuale, sta acceso almeno 12 ore a batteria, come ambiente di sviluppo per la parte client? Un web server… …purtroppo vi serve perché se da una pagina caricata dal browser con lo schema “file://” fate una richiesta http con lo stesso...

posted @ giovedì 13 marzo 2014 10.13 | Feedback (2)

C# vNext: “getter auto-property”

Sulla falsariga della inizializzazione delle proprietà automatica sarà possibile inizializzare le proprietà automatiche in solo “get”: public class Foo { public String Bar { get; } = "hi, there!"; } .m Non tutte le feature che vediamo saranno sicuramente implementate, questi post sono basati sui draft pubblicamente disponibili al momento della scrittura

posted @ mercoledì 12 marzo 2014 11.46 | Feedback (0)

C# vNext: “primary constructors” & “auto-property initializers”

Interessante poter scrivere: public class Person( string firstName, string lastName ) { public String FirstName{ get; set; } = firstName; public String LastName{ get; set; } = lastName; } Lo scopo è aumentare drasticamente la compattezza del codice in quei casi in cui praticamente scriveremmo solo plumbing, come nell’esempio di cui sopra. Possiamo quindi: dichiarare 1 costruttore in-line con la dichiarazione della classe stessa; assegnare dei valori di default alle proprietà auto-generate, in questo caso utilizzando i parametri del costruttore di cui sopra, che sono in scope; Ovviamente...

posted @ lunedì 10 marzo 2014 9.50 | Feedback (3)

ma...

...sopportiamo :-) .m

posted @ domenica 9 marzo 2014 10.27 | Feedback (0)

Le pubblicità “video”, grrrr…

…non sopporto di dover sprecare la mia, ripeto mia, banda, che pago cara e salata, soprattutto quando sono in mobilità per non-guardare delle cagate pazzesche che sono pure invasive. Non sono contro la pubblicità, ma non condivido assolutamente che io debba pagare per vederla, già spreco banda per scaricare i banner statici, che poi sa obbligato a sorbirmi i video e le musichette…no grazie, no. .m

posted @ venerdì 7 marzo 2014 6.46 | Feedback (1)

Community Days 2014

Anche quest’anno i Community Days sono finiti, è stata per l’ennesima volta l’esperienza community migliore che si possa avere, il che non è ne scontato ne facile. Andare in crescendo, ogni singolo anno di più, garantendo un evento di qualità, di elevatissima qualità diciamocela tutta, con: 75 speaker; 89 sessioni divise su 11 track; per 3 giorni; è tutto tranne che un’operazione semplice e chiunque pensi il contrario è caldamente invitato a farsi avanti a dare una mano. Quindi complimenti ad Andrea e Daniele per la fatica...

posted @ mercoledì 5 marzo 2014 9.51 | Feedback (0)

C# vNext: “using statics”

Partendo con la nostra carrellata sulle funzionalità che verranno aggiunte al linguaggio la prima interessante (che sinceramente a me fa un po’ storcere il naso) è la possibilità di usare la keyword “using” negli statement per l’aggiunta dei namespace anche per aggiungere interi riferimenti a classi: using System; using System.Math; namespace UsingSample { public class Sample { static void Calculate() { var result = Sqrt( /* ...

posted @ lunedì 3 marzo 2014 9.50 | Feedback (1)