Microsoft Solver Foundation

Tempo fa è stata rilasciata un’estensione al .NET Framework chiamata MSF (Microsoft Solver Foundation) che permette di definire modelli matematici, per ottenere la soluzione di problemi che possono essere risolti in modo più efficace, appunto, con un modello matematico ottimizzato.

Potete scaricare il pacchetto di installazione della Express Edition dal portale di MSF (versioni a 32 e a 64 bit).

Somasegar ha pubblicato un post su questo rilascio che trovate a questo indirizzo.

Tra i numerosi esempi, trovate l’utilizzo di MSF insieme a Microsoft Excel e anche esempi di codice per C# ed F# (come il classico esempio di problema delle “mappe a 4 colori”). Gli esempi si trovano all’interno della cartella di installazione della libreria (C:\Program Files\Microsoft Solver Foundation\3.0.1.10599\Documents).

Un documento su alcuni casi di utilizzo di F# nelle imprese

Tempo fa, Don Syme mi ha segnalato che è stato pubblicato un documento che riassume alcune caratteristiche interessanti del linguaggio F# e che espone molti casi di successo nell’utilizzo di F# in vari ambiti delle imprese: finanza, statistica, analisi e valutazione di rischi, assicurazioni e sviluppo di applicazioni.

Il documento, denominato “Accelerated Analytical and Parallel .NET Development with F# 2.0si trova a questo indirizzo, oppure nel Microsoft F# Developer Center.

Sia nel documento, sia nel portale di F#, trovate una grande quantità di risorse aggiuntive che possono aiutarvi nella conoscenza di questo linguaggio e nello sviluppo di applicazioni, anche con librerie open source per F#.

Esempi di applicazioni F# open source

Su CodePlex sono presenti tantissimi progetti scritti in F#, per chi volesse iniziare a dare un’occhiata e provare cosa si può fare con questo linguaggio:

http://www.codeplex.com/site/search?TagName=F%23&query=%22F%23%22

Ci sono ovviamente applicazioni matematiche, ma anche custom control per WPF, applicazioni WPF, estensioni all’editor di codice e molto altro.

I commenti nel codice F#

E’ molto importante poter inserire dei commenti nel codice, per esempio per spiegare una certa istruzione o un algoritmo.

I commenti si possono scrivere in due forme diverse: commenti a singola riga o commenti multi-linea. I commenti a singola riga si scrivono iniziando la riga con la coppia “//”.

I commenti multi-linea, invece, si scrivono all’interno di un blocco (* … *). Per esempio:

// questo è un commento

(* anche questo è un commento *)

(*
   un commento si può mettere
   su più righe senza alcun
   problema
*)

(*
un commento si può mettere
su più righe senza alcun
problema, anche senza rientri
*)

Esiste un’alta forma di commento che permette di automatizzare la produzione di documentazione del codice: per questo tipo di commento si utilizza “///”. Per esempio:

/// questo è un esempio di codice autodocumentato

WCF è Open Source

Buongiorno a tutti!

E’ una notizia di ieri, 20 maggio 2015, la libreria WCF (Windows Communication Foundation) è ora stata rilasciata con licenza Open Source e disponibile sul repository GitHub, per uno sviluppo condiviso da parte della community di sviluppatori open source.

Se volete contribuire allo sviluppo, il progetto si trova a questa pagina:
http://www.dotnetfoundation.org/blog/wcf-is-open-source

.NET Foundation

Happy coding!

Try F# 3.0

Da qualche tempo è disponibile il sito “Try F# 3.0” che permette di imparare a utilizzare il linguaggio F#, scrivendo le istruzioni direttamente nella pagina web e verificando i risultati. SPET-TA-CO-LA-RE!

Lo trovate qui: http://www.tryfsharp.org/.

Ecco l’annuncio ufficiale dal blog del team di sviluppo:
http://blogs.msdn.com/b/fsharpteam/archive/2013/01/22/try-f-3-0-launches-today.aspx

Curiosità…

Lo sapevate che la prossima edizione di Visual Studio 2015 è numerata come versione 14, saltando a piè pari la versione 13? La stessa cosa era successa con Office (salto da versione 12 a versione 14).

Ma quanto sono superstiziosi questi sviluppatori?  :)

Le funzioni “printf” e “printfn”

Una delle funzioni predefinite di F# è denominata printf. Molti conosceranno già questa funzione, dato che esiste da molto tempo in altri linguaggi come il C.

Vedremo alcuni esempi dell’uso di questa funzione, utilizzata per “stampare” a video un valore, come una parola o una frase, per mostrarlo a un utente. Può servire, per esempio, a visualizzare il risultato di una funzione o di una elaborazione. Per utilizzare questa funzione, possiamo adottare una delle seguenti forme:

printf "Risultato da visualizzare"
printf ("Risultato da visualizzare")
printf "Risultato da visualizzare";
printf ("Risultato da visualizzare");

Come indicato in un precedente post, selezioniamo le 4 righe sopra indicate in Visual Studio 2012 e premiamo la combinazione ALT+INVIO. Questa operazione aprirà la finestra F# interactive, eseguendo le funzioni di cui sopra e visualizzando il seguente risultato:

Risultato da visualizzareRisultato da visualizzareRi
sultato da visualizzareRisultato da visualizzare>

Come potete vedere, il risultato delle 4 funzioni viene proposto visualizzando le 4 stringhe una accanto all’altra, senza mai andare a capo.

Inoltre potete vedere che le parentesi tonde sono facoltative, così come il punto e virgola (;) inserito alla fine della riga da eseguire: la sintassi più comoda, quindi, è quella senza parentesi tonde e senza punto e virgola (salvo nelle occasioni in cui vogliamo effettivamente far capire come è delimitato il risultato che vogliamo mostrare).

Ecco un altro esempio:

printf ("Benvenuti nel meraviglioso mondo ”)
printf (“della programmazione funzionale”)

Notate che alla fine della prima stringa abbiamo incluso uno spazio, per poter unire le due stringhe nel modo corretto.

Se però vogliamo che la visualizzazione di ciascun risultato venga disposta su righe separate, possiamo utilizzare una variante di questa funzione, anche questa già conosciuta dai programmatori di altri linguaggi: printfn (la “n” sta per “new line“).

La sintassi di printfn ha le stesse regole di printf:

printfn "Risultato da visualizzare"
printfn ("Risultato da visualizzare")
printfn "Risultato da visualizzare";
printfn ("Risultato da visualizzare");

Ecco quindi il risultato finale (nella finestra F# interactive):

Risultato da visualizzare
Risultato da visualizzare
Risultato da visualizzare
Risultato da visualizzare

Visual Studio 2015 RC

Con questo post vi voglio far vedere l’interfaccia grafica del nuovo Visual Studio 2015 RC. La prima immagine riguarda l’edizione Enterprise (con il tema “scuro” o “dark”) e la seconda riguarda l’edizione Community (con il tema “chiaro” o “light”):

 Visual Studio Enterprise 2015 RC su Azure

Visual Studio Community 2015 RC su Azure

 

La cosa ancora più interessante è che queste immagini le ho “scattate” dalle macchine virtuali collegate in remoto e “posizionate” all’interno della piattaforma Azure.

Infatti, ora è possibile creare macchine virtuali con Visual Studio 2015 RC già installato, nelle edizioni Enterprise, Professional e Community. In questo modo, se avete un’abbonamento MSDN, potete sviluppare direttamente su Azure senza installare nulla sulla vostra macchina e con una spesa praticamente azzerata (senza contare il fatto che potete lavorare da qualsiasi postazione, basta avere una buona connessione ADSL).

Cosa c’è di meglio di questo?

Di meglio c’è che su Azure avete anche Visual Studio Online e quindi potete avere anche un ottimo software di controllo sorgente e la possibilità di condivisione con i vostri colleghi e collaboratori!

“F# Italia User Group” su LinkedIn

LinkedIn.com è un social network di tipo professionale: potete avere la vostra pagina gratuita, mettervi in connessione con altri professionisti, offrire o cercare lavoro, pubblicare il vostro “curriculum” LinkedIn, segnalando i lavori che fate o che avete fatto, le vostre competenze, cosa cercate, dove state andando…

Da oggi, su LinkedIn c’è un nuovo gruppo: “F# Italia User Group”:
(
http://www.linkedin.com/groups?home=&gid=6545166&trk=anet_ug_hm)
dove potete iscrivervi, rispondere al primo sondaggio sulle vostre conoscenze sul linguaggio F#, discutere con gli altri programmatori F# e così via.

Tutto questo, rigorosamente in italiano, perché è un gruppo di utenti italiani!

image

(Per rispondere al sondaggio non scrivete la vostra
risposta qui, ma andate su LinkedIn.com!)

Risorse utili su F#

In italiano non c’è quasi nulla, tutti i materiali su F# sono prevalentemente in inglese.

Qui sotto riporto molti link, tra quelli più interessanti che ho trovato nelle mie esplorazioni.

Libri su F# 3.0:

http://shop.oreilly.com/product/0636920024033.do

http://www.apress.com/9781430246503

Il sito “Try F#” di Microsoft Research permette di imparare e di provare il codice direttamente online:

http://www.tryfsharp.org/

Articoli su MSDN Magazine:

http://msdn.microsoft.com/en-us/magazine/ee336127.aspx

http://msdn.microsoft.com/it-it/magazine/cc164244.aspx

http://msdn.microsoft.com/en-us/magazine/gg598923.aspx

Un articolo da MSDN:

http://msdn.microsoft.com/en-us/vstudio//gg634701

Un’altra introduzione con esempi:

http://tomasp.net/articles/fsharp-i-introduction/article.pdf

Esempi di codice:

http://code.msdn.microsoft.com/site/search?f[0].Type=ProgrammingLanguage&f[0].Value=F%23&f[0].Text=F%23&f[1].Type=User&f[1].Value=BrianMcN&f[1].Text=BrianMcN

http://www.codeproject.com/Tips/125781/Reading-Zip-files-in-F

Altro articolo:

http://tomasp.net/blog/functional-overview.aspx

Varie risorse su MSDN:

http://msdn.microsoft.com/en-US/vstudio/hh388569

Articolo su DevX.com:

http://www.devx.com/dotnet/Article/42170

Molte risorse dal blog di Rick Minerich:

http://www.atalasoft.com/cs/blogs/rickm/

Video su F# in Channel9:

http://channel9.msdn.com/search?term=F%23

Risorse sul blog di Tomas Petricek:

http://tomasp.net/

Grafici 3D:

http://vslab.codeplex.com/

http://cvslab.di.unipi.it/vslab/blog/page/Visual-Tutorial.aspx

Quali strumenti si possono utilizzare per programmare in F#?

Per la programmazione in Visual Basic e in C# o per la programmazione sulle piattaforme ASP.NET, Windows 8 e Windows Phone (sempre con i linguaggi VB e C#) abbiamo a disposizione Visual Studio Express 2012 in varie edizioni (for Desktop, for Web, for Windows 8, for Windows Phone).

Purtroppo, per programmare in F# non esiste un’edizione di Visual Studio Express. Uno dei motivi di questa scelta è probabilmente il fatto che F# non è forse (attualmente) la migliore scelta per lavorare sulle UI (interfacce utente), ovvero le schermate visuali con i relativi controlli. F# è invece utilizzabile in modo proficuo nelle modalità “interattiva”, nelle applicazioni Console e per compilare librerie di funzioni (DLL).

Per creare queste tipologie di programmi e librerie, il migliore strumento possibile è Visual Studio 2012. Qualcosa si può fare anche con SharpDevelop, ma solamente in Console (ved. immagine qui sotto). Ovviamente si possono creare programmi anche da NotePad (o simili) e compilando da riga di comando, ma questo modo di lavorare può andare bene solo per piccoli frammenti di codice, non per programmi e librerie più estesi.

image

F#: un linguaggio multi-paradigma

F# utilizza tre paradigmi di programmazione: oltre alla programmazione funzionale, già citata, adotta anche il paradigma della programmazione imperativa e quello della programmazione orientata agli oggetti, permettendo di utilizzarli tutti insieme in modo coerente e ben orchestrato.

Questo approccio multi-paradigma può quindi essere utilizzato con le librerie .NET per eseguire attività di quali l’implementazione di interfacce grafiche (GUI), l’accesso ai dati, la programmazione distribuita e molto altro.

La programmazione funzionale, adottata dal nuovo linguaggio F#, è forse quella che meno è conosciuta da molti programmatori e questo richiede del tempo per impararla e per padroneggiarla, ma rende la programmazione più semplice, per vari motivi: i programmi F# tendono ad essere scritti in modo più formalmente corretto e l’inferenza dei tipi rende i programmi più corti e chiari.

Sebbene sia un linguaggio di derivazione FORTRAN e quindi orientato anche al calcolo scientifico, non è un linguaggio confinato solo nell’ambito scientifico e accademico: può essere utilmente impiegato per migliorare gli algoritmi utilizzati nelle nostre applicazioni e quindi migliorare le prestazioni di queste ultime.

Con F# la programmazione funzionale diventa realmente pratica, facile da imparare e una potente estensione della piattaforma .NET.

F# – Il blog di Don Syme su F#

Un blog interessante sulla programmazione in F# di Don Syme:
http://blogs.msdn.com/b/dsyme/.

Vi sorprenderà scoprire che i post iniziano a Gennaio 2005, sul linguaggio F# definito un linguaggio di ricerca (nato nei laboratori di Microsoft Research). Questo “nuovo linguaggio”, alla fine non è poi nemmeno così tanto nuovo, visto che ha già ben 10 anni di “vita”.

Sicuramente, però, è un linguaggio nuovo per quasi tutti gli sviluppatori e per le aziende.

Sono pronto a scommettere che questo linguaggio avrà un grande futuro…

Una chiacchierata sulla programmazione funzionale

Prima di continuare con la pubblicazione di altri frammenti di codice F# vorrei fare alcune considerazioni su F#, sulla programmazione funzionale e sul perché questa è così importante.

Molti hanno letto o sentito dire che F# deriva da FORTRAN e che quindi è fortemente predisposto alla soluzione di problemi matematici e scientifici. Queste considerazioni sono vere e inconfutabili, ma F# può esprimere molto di più: non solo programmi matematici e scientifici, ma tutta la gamma possibile di applicazioni, praticamente alla stregua di C# e Visual Basic .NET.

Anzi, con l’aggiunta del paradigma della programmazione funzionale che è strettamente legato a F#, quest’ultimo linguaggio può fare molto di più dei suoi “cugini” e con molto meno codice.

Ovviamente la programmazione funzionale, da sola, non poteva esprimere alcuni costrutti che in un’applicazione del mondo reale sono essenziali, come la gestione di risorse del computer, le comunicazioni in rete e molto altro. Ecco perché F#, al contrario di altri linguaggi funzionali, permette di utilizzare tutti gli elementi del Framework .NET: namespace, classi, interfacce, oggetti, attributi ecc. ecc.. F# quindi non è un “puro” linguaggio funzionale, ma questo non è un limite, ma bensì la sua forza.

Una volta che si sono appresi alcuni elementi del linguaggio e che si è visto cosa si può fare con F#, anche le ultime “resistenze mentali” cadono e si riesce finalmente ad apprezzare tutta la potenza di questo linguaggio.

Perfino la sua propensione a risolvere molti problemi con la ricorsività e il fatto che l’assegnazione di variabili non è la cosa più importante di questo linguaggio, alla fine vengono accettati con piacere, vedendo quanto F# è coerente e pulito e con quante istruzioni in meno si risolve lo stesso problema. Meno istruzioni = “meno codice” = meno tempo perso a scrivere codice = meno errori = meno tempo perso per correggere gli errori. Tutto questo senza però perdere chiarezza e comprensione del codice.

Ovviamente tutto questo ha un prezzo: un altro linguaggio da imparare, un altro paradigma di programmazione da conoscere. Per chi conosce già altri linguaggi (magari PIU’ di un linguaggio), questo non è un problema: come si sono imparati i linguaggi precedenti, più facilmente si imparerà questo nuovo linguaggio.

E’ anche un linguaggio adatto alla didattica (non è un caso che sia stato adottato in diversi corsi universitari), ma anche al mondo reale dello sviluppo di software di vario genere: applicazioni desktop, client-server, ASP.NET, Windows Azure, Windows Phone 7, scripting ecc. ecc.

Nella programmazione funzionale tutto è una funzione: anzi, sparisce completamente la differenza tra valori e funzioni, dove le funzioni stesse sono trattate come valori (o i valori sono trattati come funzioni…). Possiamo così concatenare più funzioni, per ottenere un risultato corretto con minori ostacoli e con maggiore efficienza.

Le funzioni, poi, vanno ancora oltre: quando una funzione richiede argomenti multipli, possiamo passare alla funzione stessa anche un insieme di argomenti inferiore a quello richiesto. La valutazione della funzione rimarrà in sospensione finché non forniremo gli argomenti mancanti. Una funzione, poi, può restituire anche più valori alla funzione chiamante, la quale è libera di utilizzarli come meglio crede.

Una domanda che mi è stata fatta in un evento tecnico è questa: le caratteristiche della programmazione funzionale saranno portate, prima o poi, anche nei linguaggi tradizionali come C# e VB.NET? La risposta è sì… anzi, alcune caratteristiche ci sono già: per esempio la programmazione parallela e le istruzioni asincrone (Async).

L’estensione “funzionale” più conosciuta che già esiste in C# e in VB.NET è LINQ: una libreria per l’accesso ai dati che ha forti caratteristiche funzionali. Allo stesso modo la programmazione parallela è già stata introdotta nel nuovo Framework .NET ed è utilizzabile dai nostri cari “vecchi” linguaggi .NET.

Insomma, F# è il precursore dei tempi e chi lo utilizza è già nel futuro. Adottatelo come un cucciolo: è molto affettuoso e fedele e vi sarà di piacevole compagnia!

La programmazione funzionale

Un linguaggio di programmazione funzionale, detto anche “linguaggio funzionale“, è un linguaggio che tratta un’assegnazione come un oggetto. In pratica, una funzione è qualcosa che ha un nome, memorizza un valore e può eseguire delle azioni.

Una funzione è il punto centrale di un linguaggio funzionale. Può eseguire un’azione, definisce uno scopo e può produrre un valore.

Per assisterci nella programmazione, il linguaggio F# fornisce molte funzioni già pronte, indicate come funzioni predefinite.

Visual Studio 2015 RC

Ancora una volta ci siamo, una nuova versione di Visual Studio!

Le edizioni distribuite sono 4:

  • EXPRESS (gratuite e liberamente utilizzabili)
  • COMMUNITY (gratuite e liberamente utilizzabili ma non all’interno di strutture aziendali di una certa dimensione)
  • PROFESSIONAL (singoli sviluppatori)
  • ENTERPRISE (team di sviluppo)

Non esistono più le edizioni Premium e Ultimate, assorbite dalle nuove licenze.

Per scaricare i prodotti vi consiglio di partire da qui:

https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs.aspx

Vi consiglio anche, se ne avete la possibilità, di provare ad installare Windows 10 (preview), in modo da poter provare anche a sviluppare le Universal App con Visual Studio 2015…

Happy coding!

F# Interactive

Come vi ho indicato nel precedente post di oggi, è opportuno che io vi fornisca una spiegazione sulla modalità “F# Interactive”: cos’è e come si utilizza.

F# Interactive è una modalità di esecuzione “in console” che in Visual Studio 2012 si concretizza nella visualizzazione della finestra “F# Interactive”. In tale finestra sarà visualizzato tutto l’output del programma e anche alcune informazioni accessorie (per esempio il tipo di dati utilizzato). Per il momento non entriamo troppo in profondità di questo aspetto, perché i tipi di dati meritano un’attenzione speciale.

Per visualizzare la finestra F# Interactive non si deve avviare il programma nel modo che tutti gli sviluppatori Visual Studio conoscono (F5 o pulsante Avvia), ma bisogna invece procedere nel modo seguente:

  1. selezionare le istruzioni che vogliamo eseguire (tutte le istruzioni o solo una parte del programma);

  2. premere la combinazione ALT+INVIO.

L’utilizzo di F5 o del pulsante Avvia eseguirà tutto il programma e non solo un insieme di istruzioni selezionate, ma lo farà in una finestra Console (cioè la finestra DOS, detta anche “prompt dei comandi”). In questa modalità, però, è necessario aggiungere anche un’istruzione di lettura di un valore di input, altrimenti la finestra Console si chiuderà immediatamente, senza permettere all’utente di leggerne il contenuto.

La modalità F# Interactive è molto utile per testare parti di un programma o anche un’istruzione singola e vedere quale risultato restituisce.

The Galaxy of .NET (su Paper.li)

Vi ricordo che all’indirizzo http://galaxydotnet.bell1.net/ potete trovare il mio aggregatore di articoli su Paper.li che raccoglie alcuni dei più importanti articoli trovati in rete su F# e su .NET (quindi anche altri linguaggi come VB e C#).

Fino ad oggi la pubblicazione era giornaliera, ma d’ora in poi le pubblicazioni avverranno automaticamente ogni lunedì alle ore 8.00, quindi settimanalmente. Questo per evitare inutili ripetizioni di articoli o selezioni di articoli meno significativi.

Vi ricordo comunque che sotto alla barra dei titoli tematici (“headlines, science, technology ecc.”) trovate anche un link “Archives” che fa apparire un calendario: selezionando il giorno evidenziato in colore più “nero” troverete gli articoli pubblicati in tale giorno.

Detto questo, buona lettura!

printfn “Hello World!”

Ebbene sì, il titolo di questo post è esattamente l’istruzione che in F# permette di stampare la stringa “Hello World!“, come previsto dal copione di qualsiasi presentazione di un linguaggio di programmazione!

Nell’immagine seguente potete vedere l’istruzione printfn e il risultato ottenuto eseguendo tale istruzione (sulla modalità di esecuzione con F# Interactive tornerò successivamente):

image

In questo blog raccoglierò informazioni su F#, il linguaggio “managed” sulla piattaforma .NET di Microsoft, un linguaggio funzionale che esce un po’ dagli schemi classici della programmazione in Visual Basic e in C#.

Ritorno a “casa”

Quasi due anni fa ho deciso di dedicarmi a F# e quindi ho aperto un blog dedicato espressamente a questo linguaggio (http://fsharpdazero.wordpress.com), nella considerazione che in italiano ci fossero pochi articoli e poca informazione.

L’esperimento ha funzionato bene, dato che ho raccolto qualche migliaio di visite, ho ricevuto vari commenti e messaggi e perfino il cambio di categoria nella mia nomina a Microsoft MVP, dato che l’anno scorso ho ricevuto l’MVP Award per Visual F#.

Nel frattempo, il “vecchio” blog (questo) ha continuato ad esistere, anche se non ho quasi più pubblicato articoli per Visual Basic. In effetti avevo lasciato il blog un po’ sotto la soglia delle 500.000 visite e ora mi ritrovo con ben 571.000 visite.

Questo fatto mi dà da pensare e visto che Microsoft sta unificando le categorie dei linguaggi (Visual Basic, C# e F#) sotto un unico cappello “.NET”, mi sembra giusto e doveroso riunificare anche da parte mia i linguaggi che conosco (appunto tutti e tre quelli citati) nell’unico blog che mi ha dato tanta soddisfazione.

In conclusione, nel blog dedicato a F# il viaggio finisce qui (almeno per ora) e ci ritroviamo tutti “di qua”, dove pian piano trasferirò anche i contenuti dell’altro blog in modo che non vengano dispersi.

Ultima cosa: ho avuto un po’ di problemi in famiglia, di salute e altro, quindi non ho potuto fare altrimenti che dedicarmi ai miei cari. Terminata l’emergenza mi sono preso un periodo di riposo e di riflessione, evitando il computer di casa per diversi mesi. Abbiate pazienza, quindi, se non trovate tanti nuovi contenuti in quest’ultimo anno…

Happy coding!

Visual Studio Community 2013

Visual Studio 2015 Preview è appena uscito che subito c’è un’altra novità che riguarda la “vecchia” versione 2013: infatti è stato rilasciato Visual Studio Community 2013.

Trovate alcune notizie qui:

http://www.visualstudio.com/en-us/news/vs2013-community-vs.aspx

mentre potete scaricare il prodotto da qui:

Download Visual Studio Community 2013

Dato che il link permette di scaricare solo un programmino che ha il compito di scaricare dalla rete il pacchetto “full” e di installarlo, in alcuni casi può essere un po’ scomodo (per esempio se dovete installare il prodotto su più di un PC).

Una soluzione è quella di avviare una sessione “Prompt dei comandi” (ex finestra DOS), di cambiare la cartella corrente fino ad arrivare alla cartella in cui avete scaricato il “pacchettino” e poi di lanciare l’installazione così:

vs_community.exe /layout

In questo modo, la procedura di installazione vi chiederà di specificare la cartella sul disco in cui volete scaricare il pacchetto “full” e non procederà nell’installazione che potrete così fare in un secondo momento.

Qualche altra informazione la potete trovare nel blog di Somasegar (ovviamente con molte altre cose!):

http://blogs.msdn.com/b/somasegar/archive/2014/11/12/opening-up-visual-studio-and-net-to-every-developer-any-application-net-server-core-open-source-and-cross-platform-visual-studio-community-2013-and-preview-of-visual-studio-2015-and-net-2015.aspx

Tantissime novità per Visual Studio

Proprio così! Sono state annunciate moltissime novità:

– Visual Studio 2015 Preview

– .NET 2015

– Visual Studio Community2013

– Visual Studio 2013 Update 4

– compatibilità con Linux e Mac

– open source per il .NET Framework…

Tutte le novità annunciate in questo post di Somasegar

http://blogs.msdn.com/b/somasegar/archive/2014/11/12/opening-up-visual-studio-and-net-to-every-developer-any-application-net-server-core-open-source-and-cross-platform-visual-studio-community-2013-and-preview-of-visual-studio-2015-and-net-2015.aspx

Visual Studio 2015 Preview – emulatore per Android

Che dire di un emulatore per Android in Visual Studio?

E cosa possiamo dire della nuova versione di Visual Studio in anteprima, cioè Visual Studio 2015 Preview?

Se ne parla in questo articolo:

http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/12/introducing-visual-studio-s-emulator-for-android.aspx

Happy coding!

Recensione del libro “SQL Server 2012 Bible”

Autori: Adam Jorgensen, Jorge Segarra, Patrick LeBlanc, Jose Chinchilla, Aaron Nelson

ISBN: 978-1-118-10687-7

1416 pages – August 2012

Pagina web: http://eu.wiley.com/WileyCDA/WileyTitle/productCd-1118106873.html

9781118106877_cover.indd

Ho scritto molte recensioni sui libri della serie “Bible” e ancora una volta non posso evitare di sottolineare l’ottima qualità di questi libri, sia dal punto di vista “fisico” (qualità della carta e della rilegatura, impaginazione, uso dei font e delle immagini ecc.), sia dal punto di vista dei contenuti.

In questo caso il libro si focalizza su Microsoft SQL Server 2012, un DBMS di livello professionale e distribuito con vari tipi di licenze. L’edizione SQL Server 2012 Express è addirittura distribuita gratuitamente, con il solo limite di 10 Gb per database, per permetterne l’utilizzo anche per applicazioni più limitate (studio, produttività personale, piccole realtà commerciali e così via).

Il libro è molto ben strutturato: parte dalle nozioni fondamentali, per poi passare alla programmazione con T-SQL e le stored procedure, fino ad arrivare alle informazioni necessarie per l’uso in una azienda, tra le quali anche la sua piattaforma di Business Intelligence.

Nella parte relativa alla progettazione dello schema del database è presente una parte teorica che spiega un po’ di teoria delle basi di dati (chiavi, relazioni, forme normali), assolutamente essenziali per chi non ha pratica con i database, ma anche per chi ha bisogno solo di una semplice “rinfrescata” della memoria.

Infine, se andate nella pagina web (indicata all’inizio di questo articolo), potete trovare tutti gli esempi e i frammenti di codice TSQL.

In conclusione, un libro notevole e fondamentale per chiunque voglia cimentarsi con SQL Server 2012.

Ecco l’elenco dei 59 capitoli del libro:

Part I: Laying the Foundations 1

Chapter 1: The World of SQL Server

Chapter 2: Data Architecture

Chapter 3: Installing SQL Server

Chapter 4: Client Connectivity

Chapter 5: SQL Server Management and Development Tools

Part II: Building Databases and Working with Data

Chapter 6: Introducing Basic Query Flow

Chapter 7: Relational Database Design and Creating the Physical Database Schema

Chapter 8: Data Types, Expressions, and Scalar Functions

Chapter 9: Merging Data with Joins, Subqueries, and CTEs

Chapter 10: Aggregating, Windowing, and Ranking Data

Chapter 11: Projecting Data Through Views

Chapter 12: Modifying Data In SQL Server

Part III: Advanced T-SQL Data Types and Querying Techniques

Chapter 13: Working with Hierarchies

Chapter 14: Using XML Data

Chapter 15: Executing Distributed Queries

Part IV: Programming with T-SQL

Chapter 16: Programming with T-SQL

Chapter 17: Developing Stored Procedures

Chapter 18: Building User-Defi ned Functions

Part V: Enterprise Data Management

Chapter 19: Confi guring SQL Server

Chapter 20: Policy Based Management

Chapter 21: Backup and Recovery Planning

Chapter 22: Maintaining the Database

Chapter 23: Transferring Databases

Chapter 24: Database Snapshots

Chapter 25: Asynchronous Messaging with Service Broker

Chapter 26: Log Shipping

Chapter 27: Database Mirroring

Chapter 28: Replicating Data

Chapter 29: Clustering

Chapter 30: Confi guring and Managing SQL Server with PowerShell

Chapter 31: Managing Data in Windows Azure SQL Database

Part VI: Securing Your SQL Server

Chapter 32: Authentication Types in SQL Server

Chapter 33: Authorizing Securables

Chapter 34: Data Encryption

Chapter 35: Row-Level Security

Part VII: Monitoring and Auditing

Chapter 36: Creating Triggers

Chapter 37: Performance Monitor and PAL

Chapter 38: Using Profi ler and SQL Trace

Chapter 39: Wait States

Chapter 40: Extended Events

Chapter 41: Data Change Tracking and Capture

Chapter 42: SQL Audit

Chapter 43: Management Data Warehouse

Part VIII: Performance Tuning and Optimization

Chapter 44: Interpreting Query Execution Plans

Chapter 45: Indexing Strategies

Chapter 46: Maximizing Query Plan Reuse

Chapter 47: Managing Transactions, Locking, and Blocking

Chapter 48: Data Compression

Chapter 49: Partitioning

Chapter 50: Resource Governor

Part IX: Business Intelligence

Chapter 51: Business Intelligence Database Design

Chapter 52: Building, Deploying, and Managing ETL Workflows in Integration Services

Chapter 53: Building Multidimensional Cubes in Analysis Services with MDX

Chapter 54: Confi guring and Administering Analysis Services

Chapter 55: Authoring Reports in Reporting Services

Chapter 56: Configuring and Administering Reporting Services

Chapter 57: Data Mining with Analysis Services

Chapter 58: Creating and Deploying BI Semantic Models

Chapter 59: Creating and Deploying Power View Reports

Nomina MVP rinnovata! (ma con una novità…)

E’ passato un altro anno ed eccomi qui a parlare ancora della mia nomina a Microsoft MVP, avendo ormai raggiunto “quota 7” con il rinnovo ricevuto il 1° ottobre!

Quest’anno, però, c’è una novità: la mia nomina non si riferisce più alla categoria “Visual Basic” ma ho avuto il passaggio alla categoria “Visual F#” (nuovo blog principale di riferimento: http://fsharpdazero.wordpress.com/).

Un cambio epocale, per me, perché significa rimettermi in gioco con un linguaggio di programmazione nuovo e che mi spinge a studiare e a fare sempre nuove scoperte.

Purtroppo devo ammettere che non credevo di ottenere il rinnovo, né di riuscire a cambiare categoria, perché negli ultimi 6/8 mesi ho fatto poco e niente. Infatti sono stato travolto da molti gravi problemi familiari che non mi hanno consentito di essere sereno e di potermi dedicare alla mia passione per la programmazione, specialmente quella studiata e sperimentata.

Ovviamente la famiglia ha la priorità, specialmente nei momento di grande difficoltà. Sono situazioni che fanno crescere e maturare, anche alla mia veneranda età di mezzo secolo.

Verranno tempi migliori e verrà il momento che riprenderò a “spingere sull’acceleratore” per portare vicino a tutti voi il linguaggio F#.

Nel frattempo lasciatemi godere di questa nuova nomina che è sempre motivo di soddisfazione e di orgoglio personale.

Un grazie particolare agli amici di Microsoft, ai miei lettori, ai tanti amici e colleghi di tutta Italia e del mondo con cui condivido la stessa passione.

Tornerò presto sull’onda e quando tornerò ve ne accorgerete subito! Non una minaccia, ma una promessa.  :)

Recensione del libro “Access 2013 Bible”, Wiley.com

http://eu.wiley.com/WileyCDA/WileyTitle/productCd-1118490355.html
Michael Alexander, Dick Kusleika
ISBN: 978-1-118-49035-8
1296 pages
May 2013

clip_image001

I libri della collana “Bible” sono il migliore acquisto che si possa fare nell’ambito del software, perché contengono tutte, ma proprio tutte, le informazioni utili al neofita come all’esperto.

Nel caso di “Access 2013 Bible”, nelle quasi 1300 pagine di cui è composto troviamo argomenti che approfondiscono la conoscenza dei vari oggetti e delle numerose funzionalità di Access 2013, per permetterci di utilizzare questo prodotto nel migliore dei modi.

Il neofita vi troverà molte informazioni utili per iniziare a utilizzarlo, mentre l’esperto vi troverà sicuramente molti trucchi e suggerimenti per strutturare meglio e per arricchire di funzionalità le proprie applicazioni di database Access.

Naturalmente molti capitoli sono dedicati alla programmazione, utilizzando le Macro di Access ma anche il linguaggio VBA. L’accesso ai dati di Access e di SQL Server è realizzato con le librerie ADO e DAO, in modo da soddisfare qualsiasi esigenza. Le informazioni fornite permettono di realizzare delle vere e proprie applicazioni eseguibili per mezzo di Access stesso o del runtime gratuito (scaricabile gratuitamente dal seguente indirizzo: http://www.microsoft.com/it-it/download/details.aspx?id=39358).

Non manca una parte dedicata all’interazione di Access con i servizi di SharePoint, per chi ha la necessità di creare applicazioni aziendali di alto livello.

Nella pagina web (http://www.wiley.com/go/access2013bible) sono presenti:

– la correzione al capitolo 14 pagine 411-414
– gli esempi del libro
– n. 3 database di esempio

In conclusione, questo è un libro che, senza dubbio, non può mancare nella “cassetta degli attrezzi” dell’utilizzatore e dello sviluppatore di database Access.

Ecco quindi l’elenco dei 36 capitoli del libro (più 4 appendici):

Part I: Access Building Blocks  1

Chapter 1: An Introduction to Database Development  3

Chapter 2: Getting Started with Access  19

Part II: Understanding Access Tables 31

Chapter 3: Creating Access Tables  33

Chapter 4: Understanding Table Relationships  89

Chapter 5: Working with Access Tables 129

Chapter 6: Importing and Exporting Data 167

Chapter 7: Linking to External Data 201

Part III: Working with Access Queries 227

Chapter 8: Selecting Data with Queries 229

Chapter 9: Using Operators and Expressions in Access 261

Chapter 10: Going Beyond Select Queries 301

Part IV: Analyzing Data in Access  337

Chapter 11: Transforming Data in Access 339

Chapter 12: Working with Calculations and Dates 363

Chapter 13: Performing Conditional Analyses 389

Chapter 14: Fundamentals of Using Access SQL 407

Chapter 15: Subqueries and Domain Aggregate Functions 427

Chapter 16: Running Descriptive Statistics in Access 451

Part V: Working with Access Forms and Reports 469

Chapter 17: Creating Basic Access Forms 471

Chapter 18: Working with Data on Access Forms 509

Chapter 19: Working with Form Controls 541

Chapter 20: Presenting Data with Access Reports 575

Chapter 21: Advanced Access Report Techniques 631

Part VI: Access Programming Fundamentals  675

Chapter 22: Using Access Macros 677

Chapter 23: Getting Started with Access VBA 715

Chapter 24: Mastering VBA Data Types and Procedures 757

Chapter 25: Understanding the Access Event Model 799

Chapter 26: Debugging Your Access Applications 821

Part VII: Advanced Access Programming Techniques 853

Chapter 27: Accessing Data with VBA Code 855

Chapter 28: Advanced Data Access with VBA 897

Chapter 29: Integrating Access and SQL Server 915

Chapter 30: Customizing the Ribbon 957

Chapter 31: Preparing Your Access Application for Distribution 993

Part VIII: Access and Windows SharePoint Services   1037

Chapter 32: Understanding Windows SharePoint Services 1039

Chapter 33: Integrating Access with SharePoint 1045

Chapter 34: Understanding Access Services 1059

Chapter 35: Deploying Access Applications to SharePoint 1067

Chapter 36: Using Access Data Macros 1089

Part IX: Appendixes 1109

Appendix A: Access 2013 Specifications 1111

Appendix B: Optimizing Access Applications 1117

Appendix C: Understanding Query Performance and Database Corruption 1139

Appendix D: Function Reference for Data Analysts 1147

Visual Studio Professional 14 CTP in Windows Azure

Windows Azure ora permette di creare una macchina virtuale con “Windows Server 2012 R2″ e “Visual Studio Professional 14 CTP”!!!
Una volta creata la macchina virtuale dalla “Raccolta”, ci potete lavorare collegandovi in “Desktop remoto”. Non è fantastico?

I miei libri finalmente in formato digitale!

Ho fatto parecchie prove di pubblicazione dei miei libri prodotti in self-publishing, sia in PDF, sia in formato Kindle, ma i risultati sono sempre stati abbastanza scadenti.

Proprio oggi ho scoperto un nuovo servizio italiano che permette di caricare un PDF (il tuo libro o la tua rivista) e di pubblicarlo gratuitamente, con conversione automatica in PDF e che può essere letto anche a video in versione “sfogliabile”.

Il servizio si chiama “Sfogliami.it” e si trova all’omonimo dominio Internet.

Non ho perso tempo e ho provato subito a pubblicare due miei libri, attivando anche la modalità di vendita: le operazioni da effettuare sono semplicissime e in pochi passi i libri sono disponibili in versione sfogliabile.

Ecco i miei primi due libri pubblicati e in vendita a un prezzo concorrenziale:

Office 2013 (6,00 €)

Visual Studio Express 2013 for Windows Desktop (4,99 €)

Fatemi sapere cosa ne pensate!

25 libri gratuiti da Syncfusion.com

image

Nella Rete si trovano moltissimi articoli gratuiti che ci permettono di imparare un linguaggio di programmazione o una nuova tecnica di programmazione.

Purtroppo gli articoli sono pubblicati alla rinfusa e su molti siti diversi. Inoltre non tutti gli articoli sono scritti bene e talvolta forniscono informazioni imprecise, incomplete o addirittura sbagliate.

Per chi inizia da zero, quindi, una delle possibili soluzioni è quella di acquistare un libro su un determinato linguaggio di programmazione o su una tecnica specifica.

Di solito, si tratta di libri di molte centinaia di pagine e anche molto costosi: tanto per fare un esempio pratico, io ho pubblicato vari libri di programmazione. Uno di questi, riguardante Visual Basic 2010, è composto da circa 800 pagine. Sono però a conoscenza di libri sullo stesso argomento di 1400 pagine e più!

Scrivere un libro di queste dimensioni richiede un lavoro complesso e lungo (diversi mesi), con il risultato che il costo del libro diventa elevato, il lettore avrà bisogno di molto più tempo per leggere il libro, e il libro diventerà rapidamente obsoleto, data la velocità con cui vengono distribuite le nuove versioni dei software (da Visual Studio 2012 a Visual Studio 2013 è passato solamente un anno).

Ecco quindi che Syncfusion ha avviato un progetto interessante: ha chiesto a vari autori di livello internazionale di scrivere alcuni libri sui più svariati argomenti. Questi libri hanno una dimensione media di circa 100 pagine e sono assolutamente gratuiti.

Alla pagina seguente potete trovare l’elenco dei libri pubblicati fino ad oggi e i relativi link per poterli scaricare in locale, in formato PDF o Amazon Kindle:

http://www.syncfusion.com/resources/techportal/ebooks

La dimensione ridotta di questi libri permette ai lettori di leggere un intero libro in poche ore (magari durante la “pausa pranzo”), per avere subito le informazioni essenziali per iniziare rapidamente a lavorare con un linguaggio o con una tecnica di programmazione.

Questo è anche un ottimo punto di partenza per chi parte da zero, perché questi libri contengono solo le informazioni strettamente necessarie, senza l’aggiunta di numerose altre informazioni di dettaglio che possono essere approfondite successivamente, attraverso la Rete.

Un plauso, dunque, a Syncfusion per avere avuto un’idea innovativa nell’ambito della divulgazione tecnica e soprattutto per aver messo a disposizione di tutti questi libri in forma gratuita, agevolando così molti studenti, molti lavoratori e molti appassionati nella programmazione del software.

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 844 follower