Corso su Reporting Services

Pur avendo fatto diversi corsi su Reporting Services negli ultimi 3 anni, non avevamo messo sul sito una scheda tecnica del corso, che ora è finalmente presente sul sito DevLeap.

Visto che cito l’argomento: un paio dei problemi più grandi che lamentavo su Reporting Services, e in particolare la mancanza di un componente “Rich TextBox”, sarà risolto da SQL Server 2008. Anche con questa nuove versione, però, non sarà ancora quel prodotto perfetto che uno potrebbe desiderare, ma avendolo in produzione da diversi clienti posso dire che è un prodotto che fa il suo dovere – fino a oggi quasi nessun problema di affidabilità, errori imprevisti o altro. Fare un passo alla volta a qualcosa serve.

Rilasciato WTL 8.0 – considerazioni su "shared/open source"

Di solito evito di mettere sul blog annunci che compaiono in moltissime altre fonti, ma l’eccezione di oggi è dovuta al commento che vorrei fare (da qui in avanti userò “open source” comprendendo anche “shared source”).

La notizia è il rilascio di WTL 8.0.

La curiosità è che il forum di supporto stia su Yahoo, con tanto di link da parte del sito Microsoft.

Il commento è che WTL ha una tempestività di rilascio maggiore di MFC e Windows Forms rispetto al supporto di Windows Vista. Il che mi porta a riflettere (ancora una volta) sul fatto che il sistema di rilascio di nuove funzionalità da parte di Microsoft negli ambienti di sviluppo (legati a ogni “ondata” di Visual Studio) lasci un gap di 2-3 anni in cui si può giocare con tante versioni beta ma è sempre difficile (e un po’ costoso) provare ad adottarne una per un prodotto “reale” prima che ci sia un rilascio ufficiale.

Facendo il paragone su un altra tecnologia: perché legare Integration Services e Analysis Services a SQL Server? Sono prodotti diversi, possono essere installati in modo indipendente, non hanno dipendenze. Certo, ci sono i Service Pack, ma le feature escono con il nuovo SQL Server per una questione di licenze. E il problema è che alcuni “bug” diventano “by design”, così si spostano nella release successiva dove sono allocate le “risorse” che possono intervenire…. risorse che però poi hanno come priorità le “nuove” feature. Un paio di settimane fa a TechEd mi sono visto rispondere (da una persona del team di sviluppo) che un problema segnalato da oltre un anno su Integration Services non sarà risolto in Katmai e forse (forse) ci pensano per la release successiva. Facendo i conti, prima del 2010 (ottimisticamente) non c’è soluzione se non arrangiarsi (per quel problema).

Ecco, di solito non penso che l’open source sia in assoluto meglio del software commerciale (la discussione sarebbe lunga e non è mia intenzione dedicarci altro tempo), ma in questi casi specifici si vede quale sia il suo punto di forza: se un “problema” per Microsoft non è così importante ma lo è abbastanza per un suo cliente che è disposto a investire per correggerlo… con il software open source ha la possibilità di farlo. Senza, ha la possibilità di cambiare tecnologia (se trova qualcosa di meglio).

Pur restando delle mie idee, credo che questa cosa induca a molte riflessioni. Personalmente uso diversi software di produttori come Axosoft, SourceGear, JetBrains e Red-Gate: aziende relativamente piccole, con pochi prodotti e un supporto quasi “fanatico”. Una risposta del tipo “hai ragione, ma aspetti fino al 2010” da queste parti sarebbe semplicemente impensabile. Le release sono mediamente annuali, non c’è un ciclo “triennale”. Qui sinceramente non mi è mai venuto in mente che sarebbe stato bello avere i sorgenti, perché il supporto funziona così bene che non sarebbe economico fare da sé. Quindi mi viene da pensare che il problema non stia nella licenza, ma da qualche altra parte. Forse però è inevitabile che le aziende grandi creino delle sacche di inefficienza.

Non ho risposte né suggerimenti, ma mi piacerebbe leggere le considerazioni di qualche VP di Microsoft rispetto a queste problematiche.

Collaborazione con UGISS

Per chi si occupa di BI in Italia non ci sono molti punti di aggregazione. Oltre un anno fa ho provato, con SQLBI.IT, a creare un punto “di raccolta”, con esiti che non sono entusiasmanti. Ben diversa la situazione di SQLBI.EU che, in lingua inglese, raggiunge un bacino di persone molto più vasto e dove si trova no materiale e forum interessanti per un uso avanzato di Integration Services e Analysis Services.

Durante SQL Server Conference 2007, chiacchierando con Davide Mauri è emersa l’opportunità di “riprovarci” ancora una volta, dando maggiore visibilità ai forum di UGISS (lo User Group Italiano di SQL Server). Nella mia attività di formazione e consulenza trovo spesso aziende che sono ben lungi dall’avere skill e competenze necessarie per affrontare le problematiche di Data Warehouse che, per un motivo o per l’altro, si trovano a dover affrontare. Non si può essere ovunque e aumentare l’offerta di assistenza e supporto attraverso uno user group che ha come obiettivo quello di “partire dal basso” fornendo contenuti più introduttivi di quelli che per esempio si trovano nei forum di SQLBI non può che fare del bene a tutti.

Da parte mia cercherò di contribuire ai forum di UGISS su Analysis Services, dove già interviene Francesco De Chirico, che conosco da anni ed è una delle poche persone con cui posso parlare in italiano di formule MDX per più di 10 minuti (nel senso che mi sopporta così a lungo…).

DateTime e DateTimeOffset

Magari non è uno dei massimi problemi per chi lavora in Europa e generalmente ha a che fare con un solo fuso orario… comunque, nel nuovo .NET Framework 3.5 ci saranno novità anche nelle BCL (Base Class Library) e una di queste riguarda il tipo DateTime. Che resta, affiancato da DateTimeOffset, che in realtà ne prenderà il posto come tipo di riferimento per la gestione delle date.

Una trattazione dettagliata dell’argomento è disponibile su questo post del team di BCL, nello stesso blog segnalo anche la storia di DateTime. Nei commenti si trovano già molte considerazioni interessanti, non ho molto da aggiungere se non che in alcune circostanze questi tipi possono risultare decisamente comodi, anche se non è così frequente averne bisogno.

La domenica tra due conferenze

La scorsa settimana sono stato a Orlando per TechEd 2007, ma domani sarò già a Milano per SQL Conference 2007. Dopo una domenica di (quasi) riposo, provo a fare alcune considerazioni su ciò che è successo la settimana scorsa.

  • SQL Server 2008 CTP: rilasciato lunedì scorso, l’ultima cosa che ho potuto fare in questi giorni è stato installarlo. In realtà mancano ancora molte funzioni (soprattutto per la parte BI) che cominceranno a emergere nelle prossime CTP. Il che non è un buon motivo (per me) per rinunciare a installarla. Così potrò iniziare a lamentarmi per le cose che ancora mancano. Da quello che ho capito, i vari editor (Reporting Services quasi sicuramente) funzionano solo avendo come target il server nuovo. Spero davvero che non sia così per Analysis Services.
  • Microsoft ha acquisito Stratature, entrando così nel mercato del Master Data Management. Suggerisco la lettura di questo post di Jamie Thomson per avere puntatori utili. Apparentemente non è una cosa che riguarda aziende medio-piccole (gli attuali clienti sono prevalentemente multinazionali…) ma è chiaro che Microsoft integrerà questa soluzione nei suoi prodotti (non ci sono date, ma si parla della versione successiva a SQL Server 2008…) e questo potrebbe rendere molto più accessibile questa tecnologia.
  • WPF avanza e non è solo perché qualcuno inizia a usarlo, ma perché Microsoft sta lavorando a dei framework come Acropolis che rende WPF più facilmente utilizzabile in applicazioni “business”. Il risultato magari non è entusiasmante perché sembra di vedere un’applicazione “Windows Forms”, ma forse è esattamente ciò che serve ad alcuni.
  • Introducing Microsoft LINQ sullo scaffale del bookstore a TechEd. Chiaramente per me e Paolo è stata la prima cosa da fare a Orlando (non saremmo credibili se lo negassimo), ma non è la cosa più importante per chi ci legge… Comunque, i libri che abbiamo visto il lunedì erano finiti il venerdì – e questo ci ha reso molto felici – ma per dirla tutta, va detto che la libreria non aveva altri libri su LINQ. Non abbiamo ancora ricevuto recensioni (solo qualche errore, ahimé), per adesso raccogliamo il vantaggio di essere il primo libro Microsoft Press sull’argomento (anche questo bisogna ammetterlo).
  • LINQ to SQL vs. LINQ to Entities – potremmo ragionare per ore e per giorni su quale sia il giusto posizionamento dei due. Lo faremo sui blog dedicati. Ma la vera verità è che tra i due c’è qualche sovrapposizione. Nel lungo periodo saranno unificati (detto da persone Microsoft). Quanto sia lungo questo periodo e cosa comporti l’unificazione, questo è tutto da decidere. Considerazioni non tecniche: LINQ to SQL esce prima, LINQ to Entities è più ambizioso ma esce qualche mese dopo. In termini di ridistribuibili e di adozione di massa, questo avrà un qualche impatto. Comunque la storia è ancora tutta da scrivere e vi assicuro che non avevo ancora visto un tale livello di competizione tra due team (abbiamo parlato con persone di entrambi…) all’interno di una stessa azienda. L’idea che mi sono fatto è che il problema esiste soprattutto in prospettiva: cosa potrebbe fare una versione 3 dei due prodotti che non possa essere fatta anche dall’altra?

La roadmap per i client passa da Acropolis

Questa settimana è stata rilasciata la prima CTP di Acropolis: si tratta di un framework che andrà a fornire una piattaforma di sviluppo per i “rich-client” basata su WPF (oggi, ma supporta diverse UI – potenzialmente anche ASP.NET e Windows Forms) e orientata alle applicazioni business. Chi a DevCon ha seguito la sessione “WPF per il gestionale” avrà visto che WPF offre molte funzioni importanti per un’applicazione “business” (come il data binding) ma lascia molta libertà (senza offrire particolari strumenti e/o un pattern ben definito) per aspetti come l’interfaccia utente, la navigabilità, ecc.

Acropolis affronta molti temi, come la navigabilità e in generale lo stato dell’interfaccia utente, il disaccoppiamento tra “azioni” e “interfaccia”, la separazione dalla “business logic” e molto altro ancora. L’aspetto interessante è che tutto l’approccio è molto dichiarativo, sfruttando xaml come “grammatica” descrittiva di elementi e operazioni ma senza legarsi indissolubilmente a una libreria particolare (come può essere WPF) come elemento portante dell’interfaccia utente.

L’elemento che mi preme sottolineare è la caratteristica di “programmazione dichiarativa” che emerge in questo framework. Stessa caratteristica che contraddistingue WPF, WF e LINQ, tanto per fare un esempio di tecnologie già rilasciate o prossime al rilascio. Una sessione (a TechEd) di Chris Anderson faceva riflettere sull’avvento di questo paradigma, che consente di avere una forma descrittiva di un programma a un livello più modulare e facilmente “manipolabile” di quella offerta dal codice. Oggi ci sono i mattoni fondamentali per intraprendere questa strada, in Microsoft ci sono molti team che stanno lavorando per costruire qualcosa intorno a questi punti di partenza, si può intuire come in un futuro a medio/lungo termine (5/10 anni, direi) il modo di scrivere il software evolverà in ambienti dove il “codice” come oggi lo conosciamo sarà sempre più legato a piccoli componenti, estremamente specializzati, eliminando di fatto la necessità di scrivere quel “plumbing code” che tiene insieme gli strati dell’architettura.

In realtà potrebbe tornare in auge il “programmatore VB6” con i programmi “all-in-one”, creati però all’interno di un ambiente in grado di discernere a monte quello che è interfaccia utente da quello che è business logic da quello che è accesso ai dati. Sarebbero ambienti in cui non si scrive molto codice e soprattutto lo si scrive solo per compiti/operazioni assolutamente circoscritte e limitate. In realtà, non è impossibile pensare a un modello di programmazione in cui (stando all’interno di determinate regole e pattern) il “programmatore” non conosce al 100% l’ambiente in cui opera, ma riesce a realizzare il suo applicativo in maniera piuttosto immediata, senza però rinunciare a un’architettura sottostante in grado di evolvere nel tempo senza crolli improvvisi.

Per quanto possa sembrare strano, questo effetto non sarebbe un obiettivo primario ma piuttosto un effetto collaterale di una serie di evoluzioni che, sempre appoggiandosi a una forma di programmazione più dichiarativa che imperativa, offriranno la possibilità di:

  • distribuire le operazioni di calcolo (dove il codice risiede diventa meno fondamentale)
  • parallelizzare il carico di lavoro (scalabilità sia verticale che orizzontale, grazie al punto precedente)
  • modularizzare l’architettura

Tutte cose che si possono (anzi devono) fare già oggi, ma a un prezzo ancora relativamente alto. E’ un peccato che la PDC di ottobre sia stata rimandata, ma a questo punto il “salto” a cui assisteremo più avanti (se devo scommettere, direi entro un anno…) potrebbe essere ancora più grande. Il .NET Framework (e il CLR in particolare) resta in tutti questi scenari una colonna portante imprescindibile, più dello stesso sistema operativo (come Silverlight insegna).

TechEd 2007 – si vede meglio da lontano?

Oggi ho assistito (insieme a qualche migliaio di partecipanti) alla keynote di Bob Muglia… dove non è stato annunciato nessun nuovo prodotto. In realtà ho scoperto che nel frattempo è stata rilasciata la prima CTP di SQL Server 2008.

Viene il dubbio che ormai (come alcuni sport) queste conferenze si vedano meglio “da lontano” (tv/pc) che “da vicino”. Il motivo principale per cui si viene a una conferenza sta diventando la possibilità di allacciare/mantenere rapporti diretti (tra colleghi e/o con persone dei vari team di sviluppo). In realtà per me resta una settimana dedicata a vedere cose nuove o in divenire, tempo che quando si è in Italia è sempre difficile da trovare.

Come trattare i feed RSS

Ho appena scoperto l’esistenza di Yahoo Pipes e devo dire che sono rimasto piacevolmente colpito. In breve, si tratta di un servizio che consente di aggregare una serie di flussi sorgenti (es. feed RSS ma anche dati XML, JSON, Flickr, ricerche, ecc.), applicarvi una serie di regole (dalla traduzione al riordinamento) e ottenere come risultato un output HTML o (e qui viene il bello) un nuovo feed RSS.

Certo, si tratta qualcosa di simile a PopFly e a molti altri servizi di mashup che stanno prendendo piede, ma la caratteristica di Yahoo Pipes che mi ha colpito di più è la possibilità di generare in output un feed RSS e l’editor integrato che funziona bene senza richiedere controlli aggiuntivi di sorta. Inoltre, non necessita di alcun invito per essere provato e utilizzato (al contrario di PopFly).

LiveWriter, TechEd e SQL Conference

Ho appena installato la Beta 2 di Windows Live Writer e per provarlo faccio un rapido aggiornamento su ciò che succederà nei prossimi giorni.

Da domenica io e Paolo saremo a Orlando per seguire il TechEd 2007. Non ci aspettiamo annunci particolari, sarà un’occasione per consolidare un po’ di rapporti e fare qualche approfondimento (ormai a queste conferenze si raccoglie più al di fuori delle sessioni che dentro, ma questo è argomento per un post futuro…). Proverò ad aggiornare il blog con maggiore frequenza se ci saranno informazioni significative.

Tornati da Orlando saremo poi a Milano (questa volta sul palco) per SQL Server Conference 2007. L’edizione di quest’anno dura un giorno in più e sarà ancora più ricca di contenuti e opportunità di contatti diretti, anche con persone del team di sviluppo e di supporto tecnico di Microsoft.

Restando sull’argomento di SQL Server, ricordo che nel mio blog in inglese pubblico post tecnici relativi alla Business Intelligence con SQL Server che non ho sempre il tempo di tradurre o anche solo citare in questo blog. In particolare se usate Analysis Services vi consiglio di leggere il post relativo a BIDS Helper (ormai divenuto per me indispensabile). Non manca anche qualche critica (costruttiva) a Microsoft per i client Olap che mette a disposizione.

Torniamo a Windows Live Writer: ha qualche funzione in più ma soprattutto è più “rifinito”, anche se trovo un po’ ridontante la toolbar con il menu… servirebbe un ribbon per pulire tutto.