Claudio Brotto

Sono MVP su Windows SharePoint Services!

Dopo oltre tre anni dalle ultime ferie, questa volta ce l'ho fatta e sono partito - per la Sicilia, splendido posto - con il proposito di godermi il caldo ed il relax.

La sfida e' stata quella di non accendere il computer per 7 giorni (sette!!).

Ho perso la sfida, ho controllato la posta e...

Insomma, ho ricevuto il premio MVP (Microsoft Most Valuable Professional) su Windows SharePoint Services!!

MVP 2009

Grazie :-)

E' un grazie generico, senza nomi e senza link.

E' un grazie rivolto a tante persone, e so che ciascuna di loro può leggersi in esso.

Buon anno :-P

Posted: gen 06 2009, 08.36 by devlizard | with no comments
Filed under: ,
[GREENPOINT#2] gp_RegExpField

Abbiamo appena reso disponibile su GreenPoint una nuova release del progetto (1.0.1.0) che contiene due custom field type, anch'essi rielaborazione (più che altro cosmetica) del materiale della SharePoint Conference 2008: gp_RegExpField e gp_CoordinatesField.

Per una disquisizione sullo sviluppo di custom field per SharePoint vi rimando ad MSDN, qui.

Mi soffermo, invece, molto rapidamente sul primo dei due esempi disponibili in GreenPoint (inutile dire che la parte due è in arrivo ASAP :-P)

gp_RegExpField

Esempio classico, che più classico non si può.

Definisce un field di tipo text (derivato da SPFieldText, dal punto di vista della gerarchia di classi) che aggiunge alle funzionaliltà di base il supporto alla validazione parametrica, affidata ad una regular expression.

Se ne trovano molti, probabilmente perchè la realizzazione è semplice e l'utilizzabilità è discreta (al di là del fatto che, poi, le regular expressions piacciano o siano parte del bagaglio delle nostre competenze).

A fronte del deploy del solution package e a seguito dell'aggiunta di una colonna (su una lista o come site column a livello di web), tra le opzioni a disposizione c'è anche:

In fase di selezione del tipo di dato che deve essere configurato, SharePoint interroga la field definition per verificare:

  • L'esistenza di un field editor control (al quale verrebbe delegato il rendering della sezione di pagina utilizzata per le proprietà specifiche di ogni campo)
  • L'esistenza di field properties (aka metadata properties) per le quali è possibile fornire un rendering out-of-the-box che non faccia affidamento su controlli custom

Nel caso di gp_RegExpField, il sistema estrae la definizione delle property custom è propone all'utente l'area di selezione seguente:

Non rimane che impostare il campo Regular Expression Pattern (e qui... vai di copia e incolla :-P) ed un campo atto a contenere il messaggio di errore che sarà visualizzato in caso di mismatch.

Voila, almeno relativamente alla configurazione della colonna.

In fase di editing, l'utente avrà di fronte un campo del tutto simile a quello di testo standard (non sono state effettuate personalizzazioni al di fuori della logica di validazione):

Ma in seguito all'inserimento di un valore "invalido", il salvataggio è inibito:

Dal punto di vista del funzionamento interno, qui trovate i sorgenti.

Il punto di intervento, in questo caso, è stato davvero minimo: per definire una logica di validazione è sufficiente effettuare l'override del metodo GetValidatedString, che riceve in input un generico object contenente il dato da validare e deve restituire la versione serializzata dello stesso (senza aggiunte relative alla logica di rendering, che nei custom field è delegata ad altri componenti).

Insomma, pochissimo sforzo e, tutto sommato, un buono spettro di utilizzo :-P

ARF: Alternative Rendering Framework for SharePoint

Direttamente dal blog dell'autore, Vincent Rothwell:

[...] it is a set of components which help with building your SharePoint site. ARF was initially designed to help with accessible SharePoint websites, but is also useful in other scenarios including XHTML compatibility [...]

e

ARF contains over 30 controls for you to use and it is entirely possible that you could develop a complete publishing site, conforming to XHTML and accessible without having to write a single line of code.

Controls include...

Compatibility Panel - Ensuring the HTML produced by its child controls are XHTML compliant
SiteQuery - Allow you to develop complex queries to list content
QSVisibility Panel - Allowing you to show and hide content based upon query string values
Calendar View - Allowing to to show calendar entries in your chosen format
Contact Form - Creating a contact form without writing any code

Nei mesi scorso ho avuto modo di discutere un po' di accessibilità e XHTML compliance applicate ai siti SharePoint (ehm... effettivamente ho avuto modo di *ascoltare* Betta e Barbara che ne parlavano!!).

Il progetto è estremamente interessante, e poi il mio "lato dev" è felice del fatto che ci siano i sorgenti a disposizione, giusto per "rubare" qualche buona idea, o semplicemente per la curiosità di indagare :-P

Posted: ott 23 2008, 08.49 by devlizard | with no comments
Filed under:
[GREENPOINT#1] STSADM Extension: gp-getalloc

Inizia la serie "vera" (le premesse le potete leggere qui).

Vi illustro brevemente il primo "artifact" che trovate in GreenPoint.

E' una custom extension per STSADM che abbiamo mostrato (molto rapidamente) alla SharePoint Conference.

Un po' di ordine :-)

STSADM

Non credo abbia bisogno di presentazioni, è *il* tool di amministrazione di SharePoint da riga di comando. Ok, è altro, se lo vogliamo vedere dal punto di vista architetturale/developer. Ma per ora accontentiamoci. Anche perchè possiamo scrivere delle...

STSADM Extensions

Sono classi .NET che implementano l'interfaccia Microsoft.SharePoint.Administation.ISPStsadmCommand, definendo quindi i metodi GetHelpMessage e Run.

Condizione, questa, necessaria ma non sufficiente a renderle utilizzabili "come fossero" operazioni out-of-the-box.

La condizione numero due è che il sistema sia reso edotto della loro presenza.

Occorre semplicemente distribuire in [12]\CONFIG un file xml, con i seguenti requisiti:

  • Sintassi opportuna :-)
  • Nome rispondente ad un pattern preciso: stsadmcommands.*.xml (dove * deve essere sostituito da un identificatore univoco

Provare per credere :-)

Questo il link ad un breve tutorial su MSDN.

gp-getalloc

L'esempio che trovate su CodePlex è realizzato con un duplice obiettivo:

  • Illustrare le genericità di una custom extension
  • Essere utile anche a chi le extension non le scrive, ma le usa :-)

Tipicamente, nel momento in cui si iniziano a sviluppare extension, l'appetito vien mangiando e il refactoring è il dolce a fine pasto :-) Si estrae una classe di base che esponga funzionalità di validazione dei parametri o helpers di contesto, si astrae la generazione dell'help message, ...

In questo caso la custom extension è "nuda", cosa significativa forse solamente a scopo didattico... ma almeno così si vede bene che "non c'è trucco, non c'è inganno".

Utile, si diceva, forse anche senza doverne per forza ispezionare il codice.

Eseguendo stsadm -o gp-getalloc (ehm... eseguendo il deploy della extension e poi stsadm!!) la console suggerisce i parametri di invocazione:

GREENPOINT Extensions: Get Storage Allocation
(Display the storage space for the specified files)

Parameters:
  -url (the url of the web site)
  [-user] (a string which contains the user display name)
  [-outputFile] (the file you want your output to be stored in)

gp-getalloc ritorna all'utente (in standard output o, se specificato, anche memorizzando un outputFile su file system) un documento XML che descrive lo spazio allocato dai documenti delle document library di un sito. Quello che segue è un frammento generato sulla mia macchina di sviluppo:

<?xml version="1.0" encoding="utf-8"?>
<Allocation Web="http://spdemo.devlizard.inc/areas/sb" User="none" Space="4684274" Files="120">
    <Web Title="Site Builders" Url="http://spdemo.devlizard.inc/areas/sb" Space="231523" Files="72">
        <List Name="Converted Forms" Space="0" Files="0" />
        <List Name="Form Templates" Space="0" Files="0" />
        ...
        <Web Title="Virtual Earth" Url="http://spdemo.devlizard.inc/areas/sb/dataviews/virtualearth" Space="22665" Files="2">
        ...
        </Web>
    </Web>
</Allocation>

L'esecuzione prosegue in maniera ricorsiva, riportando lo spazio occupato per ogni sottosito e, ovviamente, i totali ad ogni livello, memorizzati come attributi della struttura XML restituita in output.

La versione attuale *non* tiene in conto il versioning (aspettatevelo in una prossima release) e non discrimina tra library "utente" e library di sistema (master page gallery, data sources, ...).

Ma è già uno strumento mediamente indicativo :-)

(continua...)

Prossimamente su questi schermi: custom fields e utilities :-)

SharePoint Permissions Dependency Chart

John Holliday ha pubblicato un diagramma che illustra le dipendenze tra i permessi utilizzabili nella configurazione dei permission level.

Seguire le frecce :-)

[GREENPOINT#0] Prima di iniziare

Come anticipato da Igor, abbiamo appena pubblicato su Codeplex il progetto GreenPoint.

Il nome dovrebbe essere abbastanza indicativo, quindi tralascio la sezione "who should read this book" e vi segnalo solamente alcune informazioni.

Innanzitutto i requirements. Trovate tutto descritto nelle Setup Instructions disponibili qui.

L'installazione del package non si discosta dal procedimento classico.

Leggete, invece, con attenzione la sezione dedicata alla procedura di build, se intendete utilizzare il codice sorgente per test o modifiche (occhio in particolare alla versione e al percorso di installazione di STSDEV, che utilizziamo per la generazione del wsp).

GreenPoint è un progetto in itinere. Il significa che, in particolar modo nella prima fase, è passibile di modifiche anche abbastanza frequenti.

Tra le prime "feature" disponibili troverete buona parte del codice demo che abbiamo utilizzato durante la Microsoft SharePoint Conference 2008 di ottobre.

Stay tuned :-P

Sharepoint Application Lifecycle Management

Leggo con piacere sul blog di Brian Harry che si stanno muovendo un po' di cose relativamente all'Application Lifecycle Management applicato a soluzioni SharePoint.

Su MSDN è stata pubblicata una pagina di overview che si pone come punto di accesso per una serie di articoli a riguardo, tenendo presente che:

[...] SharePoint application development and practices can differ from Web and Windows-based development processes and procedures [...]

Mi spiace non aver potuto seguire la sessione di RoB alla SharePoint Conference, ma mi fa piacere constatare che l'argomento è "caldo" e che iniziano ad esserci guideline "ufficiali" :-)

SharePoint Conference. Grazie :-)

Mamma mia quanta gente!

Venerdì scorso si è conclusa la Microsoft SharePoint Conference 2008 e il primo, più evidente parametro di successo dell'evento è la quantità di persone che hanno partecipato.

"Dire" quattrocento (arrotondato per difetto) fa una certa impressione, ma è un numero scritto.

"Sentire" quattrocento è un'altra cosa. E' stato quasi difficile muoversi tra una sessione e l'altra!

Tantissime domande, segno anche queste dell'interesse verso una piattaforma che, ormai, non ha più bisogno di presentazioni. Spero di essere riuscito a dedicare il tempo sufficiente a chi mi ha chiesto consigli o suggerimenti (una voce c'è stata per tutti, purtroppo in alcuni casi troppo sintetica per essere esaustiva... beh, dai, sapete dove scrivermi!).

Tantissimi commenti e considerazioni più "tecniche" da fare... ma proverò a dar seguito a questo post nei prossimi giorni.

Per ora, visto che la stanchezza si fa sentire, mi limito a ringraziare tutti (uno per uno :-P) perchè il successo di queste manifestazioni è fatto anche da chi partecipa in maniera entusiasta e dinamica, come è stato questa volta.

E infine grazie a Igor e a Paolo, che con Microsoft hanno reso possibile tutto questo. Perchè in fondo, pensateci un po', senza di loro ci si ritrovava in 400 a giocare a pallone al parco :D

Le nostre sessioni alla SharePoint Conference: STSADM

E così si conclude la breve serie.

Anche in questo caso al plurale. E anche in questo caso l'aspetto che ho avuto modo di apprezzare maggiormente è la completezza che si può ragguingere quando si uniscono punti di vista differenti. L'altro pundo di vista è quello di Igor...  e direi proprio che Igor non ha bisogno di presentazioni !!

In ogni caso, come sempre, ecco la descrizione di ALL305: STSADM.EXE without limits:

STSADM.EXE: chi non l'ha utilizzato almeno una volta non si può definire un esperto di SharePoint :-)
La console da riga di comando è veramente piena di risorse, che non si finiscono mai di scoprire.
Amministrare e configurare SharePoint da Command Prompt non è una mania per vecchi sistemisti, ma diventa una formidabile risorsa per realizzare automazioni e migliorare la qualità dei servizi offerti. STSADM.EXE può anche essere esteso nelle sue operations, aprendosi così verso nuovi potenti ambiti di utilizzo.
La sessione verrà erogata da un doppio punto di vista: quello dell'IT Pro e quello del Developer... chissà cosa combineranno sul palco! :-)

Parleremo di scipting - non potrebbe essere altrimenti - ma ne parleremo provando a focalizzare l'attenzione sugli scenarie e sulle modalità di estensione.

E vedrete che non serve imparare a memoria, uno per uno, quei 2 o 3 comandi (:-S) disponibili out-of-the-box!!

Quindi - e metto le mani avanti - non vi reciteremo a memoria l'output di stsadm -help :-P

L'altro giorno, durante la messa a punto delle slide, ci siamo trovati a chiederci: "Ma secondo te, STSADM cos'è?".

Per una risposta che vada al di là di "è un programma che serve ad amministrare SharePoint" è altamente consigliata la presenza qui :-P

Le nostre sessioni alla SharePoint Conference: DataView

Terzo e penultimo appuntamento con la mini-serie.

Questo è al plurale. E vi assicuro che il divertimento, durante la preparazione, è ben più che doppio :-)

L'altra metà del plurale è Elisabetta Sasselli. Vedendola lavorare, e soprattutto lavorandoci insieme, mi stava venendo voglia di disinstallare Visual Studio e tuffarmi un po' più spesso nei meandri di SharePoint Designer! E non lo faccio giusto perchè con CTRL-SHIFT-B mi apre il browser quando io, invece, continuo a chiederemi dov'è finita la mia dll :-P

Comunque, io e Betta giocheremo con le DataView - e il titolo la dice già lunga: SB302 DataView and XSLT: codeless revolution!

Ecco l'abstract:

Qualcuno vi ha detto che non è possibile personalizzare siti SharePoint senza utilizzare Visual Studio? Ci avete creduto?
Allora non avete sentito ancora parlare della codeless revolution :-)

In questa sessione Claudio ed Elisabetta spiegheranno come sia possibile intervenire sui siti SharePoint per ottenere velocemente risultati sorprendenti, pur non avendo conoscenze di linguaggi di programmazione. Esempi concreti e demo “dal vivo” mostreranno come, con una buona padronanza di SharePoint Designer e una discreta conoscenza di (X)HTML e XSLT, si possa arrivare in poco tempo e con poco sforzo alla costruzione di soluzioni articolate e accattivanti, in grado di estendere in maniera efficace le funzionalità out-of-the-box della piattaforma.

La sessione è ovviamente incentrata sulle DataView, dissezionate e ricostruite con l'intento di illustrarne il rationale-behind.

Il mondo dataview ha un fascino particolare, a mio modo di vedere.

Innanzitutto perchè la componente tecnica trova, più che in altre occasioni, un essenziale alleato nell'inventiva e nella "visione".

E poi perchè gli strumenti a disposizione (data source controls e trasformazioni XSLT, prevalentemente) sono assai flessibili.

Ruotano intorno al "dato", lo estraggono, lo elaborano e lo presentano. E garantiscono sempre al programmatore/site-builder un buon livello di astrazione, diretta conseguenza dell'approccio dichiarativo su cui si fondano.

Più che in altri casi, qui una demo vale più di mille parole.

Ma la demo, quella no, proprio non ve la voglio anticipare. Venite a vederla live :-)

Le mie sessioni alla SharePoint Conference: InfoPath

Come detto, ecco qualche altra "voce di corridoio".

Giovedì mattina si parla (anche) di... ALL200: InfoPath and Forms Services: practical approach.

Cioè:

Si tratta di un "tutorial" che guida alla scoperta di Microsoft Office InfoPath 2007 e Microsoft Forms Services.
La sessione è rivolta anche a chi non conosce questi prodotti, ma vuole scoprirne il potenziale e iniziare a sfruttarli in soluzioni reali.
Tutta l'esposizione sarà incentrata sulla realizzazione di un caso di implementazione reale.

Sì, la descrizione è giusta :-)

E' una sessione dal taglio decisamente pratico e abbastanza introduttivo.

Credo (e spero !) che sia l'approccio corretto nei confronti di un prodotto, come InfoPath, che si riesce ad utilizzare con buoni risultati dopo un po' di "gioco".

Il che non significa che sia un tool giocattolo. Tutt'altro. Probabilmente è il modo con cui siamo abituati ad affrontare lo sviluppo di form che ci fa dire "oh, ma è così facile ?".

E vi anticipo una considerazione: "No, non è sempre così facile".

InfoPath ha il suo caratterino, che va conosciuto per essere in grado di domarlo all'occorrenza :-)

Però, una volta messi in evidenza certi limiti, è una soluzione che va assolutamente valutata nel momento in cui si devono realizzare applicazioni basate, in qualche modo, su form elettroniche.

Considerazione, quest'ultima, che è avvalorata in maniera particolare in seguito all'introduzione di Forms Services (il motore di rendering e di calcolo di IP ospitato lato server, in poche parole le form compilabili e inviabili direttamente dal browser).

Insomma, proveremo ad inquadrare tutti questi argomenti in un'ora e un quarto, amalgamandoli nel contesto di un esempio che ci seguirà dall'inizio alla fine della sessione.

Ci si vede :-)

Le mie sessioni alla SharePoint Conference - Custom Fields

Inizio a dare qualche anticipazione (ma non troppe :-)) sulle sessioni che terrò alla Microsoft SharePoint Conference 2008.

Inauguro la serie parlandovi di ... DEV400: Custom Field Development in SharePoint.

La descrizione recita:

Tramite campi personalizzati è possibile estendere le funzionalità out-of-the-box di SharePoint, mantenendo omogeneità nei confronti dell'infrastruttura e del layout.
In questa sessione verranno dapprima illustrate le tecniche di base necessarie per lo sviluppo di custom field.
A seguire verranno proposte alcune implementazioni più avanzate, a dimostrazione della flessibilità e della potenzialità di questa feature.

Per la mia esperienza i custom field sono una caratteristica tutto sommato poco nota.

Ed è un vero peccato perchè, una volta affrontata una curva di apprendimento iniziale non sempre banale, sono uno strumento decisamente interessante, che consente di portare a termine estensioni mirate e, a volte, inattese :-)

Uno degli aspetti che li rende, a mio modo di vedere, maggiormente complessi è il numero di building-blocks che si devono mettere insieme per far funzionare il meccanismo.

Per questa ragione la sessione sarà incentrata sulla disamina puntuale di ciascuno di essi, nel contesto di un "pacchetto" che deve essere uniforme e, in qualche modo, adatto agli usi che ne possono derivare.

Parleremo (più o meno in questo ordine) di:

  • Field Type Definition
  • Field Type Class
  • Field Properties
  • Field Rendering Control
  • Field Rendering Control Templates
  • CAML Rendering (l'ho messo per ultimo se no fuggite tutti :-))

Sto completando le demo. L'idea è quella di corredare ciascun "angolo di visuale" con un esempio che ne dimostri uno scenario di applicazione, provando anche a confrontare approcci diversi, qualora disponibili.

Quindi ci si vede !

p.s. Approfitto per ricordare che oggi scade l'early-bird, che consente di risparmiare 60 euro sulla tariffa di iscrizione :-)

La collaborazione, il pesto e altre cose verdi

... e in un titolo assurdo si trovano sintetizzate tre cose speciali !

La collaborazione.

Il sottotitolo può essere "Dev e Site Builder, una miscela esplosiva" (e se volete vedere non una ma due esplosioni :-)).

Oppure, se vogliamo allargare il discorso al di fuori dello sconfinato mondo SharePoint, ci sta bene anche "Sviluppatore e Sistemista non sono come cane e gatto".

Quella che si tende a fare, in questi casi, è spesso una "suddivisione".

E, a volte, è una suddivisione necessaria. Pensate alla formazione, ad esempio, settore in cui è forte la necessità di categorizzare gli argomenti per offrirne una differenziazione basata sulle competenze (a livello di prerequisiti così come di obiettivi).

Però, se possiamo mettere in secondo piano l'aspetto delle conoscenze puramente tecniche, lo scenario cambia :-)

Il tuttologo, ad oggi per lo meno, non ha più senso di esistere. Troppe cose, troppo complesse, troppo ampie per essere conosciute in maniera approfondita.

Triste ? Realistico ?

Perchè mai ! In fondo "non sapere fare" è molto, molto diverso da "non sapere che esiste" o "non sapere a chi chiedere".

Io rientro nella categoria dev. So fare le "mie" cose (almeno sulla carta :-D). Me la cavo quando si parla di argomenti "itpro", me la cavo pure quando si parla di argomenti "da sitebuilder". Ma non ho quel "di più" per tirarmi fuori dagli inghippi di una infrastruttura di rete anomala o di una master page troppo particolare. Mi manca la "scintilla".

I progetti che si realizzano (e le demo sono uno di questi) non hanno nozione diretta di questa categorizzazione dei ruoli, ed è giusto che sia così, perchè nel risultato finale le tecniche e gli approcci si devono fondere in una soluzione fluida e omogenea, a prescindere dalla modalità con cui essa viene realizzata.

Questa omogeneità non può essere raggiunta (quasi mai, almeno) se viene meno una visione globale delle esigenze e dei requisiti. E questo non solo in fase di implementazione (dove forse è tardi) ma soprattutto durante la progettazione del sistema.

Ed ecco che le capacità non si misurano più con le competenze nel proprio settore, ma con la capacità di inquadrarle in un contesto più generale.

Un dev che sa "vedere" con gli occhi di un site builder rimane a contatto con la piattaforma che usa, dimenticandosi ogni tanto che "intanto via codice si può fare tutto" e, forse, riuscendo a non reinventare ciò che esiste e che, suo malgrado, è stato fatto meglio.

In questo faccio una critica che è anche autocritica. Ma con un'apertura che ritengo fondamentale e che è, in fondo, l'amalgama per il titolo di questo post.

Perchè una miscela è fatta di ingredienti.

Consentitemi una metafora gastronomica direttamente della mia terra.

Il pesto.

Il pesto si fa tra le altre cose con il basilico e l'olio.

Provate a preparare questa prelibatezza con un olio di bassa qualità e ... il pesto non viene un granchè :-(

Ovviamente, perchè le "competenze" servono e non sono prescindibili.

Dopo, però, provate a fare il pesto senza olio. Metteteci pure il basilico più buono di questo mondo. Viene bene ? Può darsi. Ma non è pesto !!

Nel pesto, probabilmente, la componente basilico è predominante. Questo è normale, anche perchè il bilanciamento in una ricetta non è dato da una divisione in parti uguali tra gli ingredienti.

Ed ecco che l'arte del bravo cuoco sta nel ricercare gli ingredienti giusti e nel saperli miscelare in proporzioni e in tempi opportuni.

In fin dei conti, parlo di cucina ma intendo, più in generale, la collaborazione di cui sopra.

Ed è curioso perchè ne sto parlando nel contesto di una piattaforma, SharePoint, che viene venduta ed è a tutti gli effetti collaborativa per definizione (il nome vorrà pur dire qualcosa, no ?)

Progettiamo soluzioni collaborative. Questo ci viene richiesto, in maniera più o meno diretta. Questo si prova a fare, in maniera più o meno efficace.

E ... Ah sì, un'altra cosa (last but not least, come si dice).

Le cose verdi.

Il pesto ha un colore verde intenso, brilla quasi.

Non credo di avere un colore preferito, come viene chiesto nei quiz sui giornali o nelle domande stile "se hai dimenticato la password, rispondi a questa".

Però adoro il verde del pesto (in realtà adoro la terra che lo produce).

E c'è un'altra "cosa verde" che mi piace un sacco, che è il gruppo in cui sono piombato a pesce dopo 4 anni di vita da libero professionista.

Il pesto mi sa che dovrò introdurlo io, perchè a in quella zona lì non si sa mai cosa mangiare (dopo che uno ha provato 84 tipi di tortellini e di ragù, le lasagne, la gramigna, la salama (aargh), la piadina, i gnocchi fritti, le crescentine e qui mi fermo perchè non vorrei far torto a nessun piatto tipico).

L'ambiente collaborativo è invece una delle tante cose belle che trovo.

E al quale spero di poter dare il mio contributo :-)

Posted: set 12 2008, 01.27 by devlizard | with 1 comment(s)
Filed under:
F# si avvicina a grandi passi

E' stata rilasciata da pochi giorni la September 2008 CTP di F#, il linguaggio funzionale che (e questa release ne è la prova) andrà ad aggiungersi alla suite di linguaggi supportata in maniera nativa da Visual Studio.

Don Syme, leader del progetto F#, linka qui la pagina di download aggiornata (sono state pubblicate alcune fix immediatamente dopo il rilascio della CTP).

Su MSDN è inoltre disponibile il F# Developer Center !

Questo il post con l'annuncio di Somasegar.

Posted: set 12 2008, 10.53 by devlizard | with no comments
Filed under:
SSCLI Essentials v2

Se vi chiedessero di nominare 5 libri di informatica che avete letto e che hanno avuto un contributo significativo per la vostra cultura e per la vostra crescita professionale, quali nominereste ?

Domanda banale ? Domanda troppo complicata ?

Forse sì, anche perchè il confronto può risultare arduo quando si vanno a considerare testi che differiscono non solo per contenuti, ma anche per approccio o, magari, per stile.

Un libro che non posso togliere dalla mia classifica, ad esempio, è il primo che ho letto integralmente, del quale non ricordo nè autore nè casa editrice (sigh ...) ma solo il colore della copertina (rosso acceso) e l'argomento (una sorta di guida di livello intermedio sui PC e sul loro funzionamento).

[Non se ne trovano più in giro. Non so se è una sensazione solo mia, e magari errata, ma adesso la tendenza sembra premiare il "tutorial-che-ti-insegna-a-programmare-in-6-lezioni-da-un'ora" :-(]

Don Box trova posto come autore (così ne occupa solo uno :-P ... insomma, se vinci non puoi anche arrivare secondo).  La Addison-Wesley, spannometricamente parlando, come casa editrice.

E poi c'è questo volumetto da 300 pagine o poco più, edito da O'Reilly, acquistato più per curiosità che per reale interesse (almeno all'epoca) ed entrato in top five a velocità sorprendente.

Shared Source CLI Essentials è un viaggio negli gli internals della "macchina virtuale" .NET.

E' un libro che ti fa venire voglia di prendere in mano un debugger e di fare le pulci a quel runtime che ospita le tue applicazioni di tutti i giorni.

E' un libro che riprenderei in mano volentieri, ad avere anche solo un pochino di tempo.

Ecco perchè sono davvero contento di leggere, da Joel Pobar e da Ted Neward, che è disponibile una bozza della versione 2 del succitato volume, arricchito da:

  • Updated to reflect the 2.0 source code. A *lot* of stuff changed internally, specifically for deeply engrained type system features like Generics.
  • Added a chapter on Reflection and Code Generation features. We talk about new 2.0 features like Lightweight Code Generation (LCG) and the new Reflection caching mechanisms.
  • Added a chapter on Generics to explore how it works under the hood, from metadata changes, right through to runtime data structure changes.
  • Added an Appendix tutorial that walks through step-by-step the changes required to add a new opcode to the runtime (everything from verification, to JIT compilation).
  • Explores a new interface call dispatch architecture called “Virtual Stub Dispatch”.
  • Looks at the new native x86 calling convention.
  • Un must, come si dice. Davvero !!

    Posted: ago 24 2008, 10.19 by devlizard | with no comments
    Filed under: ,
    More Posts Next page »