Mi è servito qualche giorno per capire, ma credo adesso di avere le idee un po' più chiare sul progetto Oslo. Credo si tratti di una delle novità più importanti presentate a PDC 2008 e di fatto consta di:
- Un nuovo linguaggio (il linguaggio "M") per definire modelli rappresentando direttamente i dati a cui sono correlati. L'editor del linguaggio M si chiama Intellipad ed è scritto in WPF.
- La possibilità di definire grammatiche proprietarie che ci consentono di rappresentare dei nostri DSL (Domain Specific Language)
- Un repository delle strutture dati e delle istanze degli stessi da noi definite (basato su SQL Server 2008)
- Un designer grafico, sempre scritto in WPF, chiamato "Quadrant", pensato per gestire e navigare i modelli e i dati
- Un motore di compilazione che converte i modelli, scritti secondo le nostre grammatiche, in sintassi destinata ad N possibili scopi
- La creazione di un repository di tipo DBMS
- Un file XML o meglio/più probabilmente XAML
- Un output personalizzato
- Pensiamo in generale alla metafora di un file XML (il modello dei dati), di un file XSD (la grammatica) e di un file XSLT (la trasformazione da applicare a quel file XML che rispetta quella specifica grammatica). Il tutto però con uno strumento più semplice e più vicino all'esperienza quotidiana di un programmatore: la scrittura di codice con uno specifico linguaggio, il linguaggio M appunto
I campi di applicazione di questo strumenti sono i più disparati. Tra quelli ad oggi più evidenti:
- La rappresentazione di un modello di entità/dati da pubblicare poi sui nuovi SQL Services "in the cloud"
- La rappresentazione di un modello di entità/dati da convertire poi verso diversi DBMS. Ad oggi si crea un DAL astratto, una serie di implementazioni per ciascuno DBMS e un factory per caricare il DAL specifico. Domani potremo creare un unico modello (usando una sola grammatica!) e poi generare in compilazione del modello i vari output per i vari DBMS specifici
- Rappresentare un workflow e/o un workflow service in termini di ciò che deve fare, in modo dichiarativo, per poi produrre lo XAML corrispondente al workflow service da creare. Noi descriviamo in modo dichiarativo il flusso, il codice non troppo user-friendly corrispondente al workflow service XAML lo genera il compilatore del codice M che scriviamo secondo la nostra specifica grammatica o che disegnamo con Quadrant
- Ecc.
L'idea mi sembra davvero molto valida, il prodotto è ancora giovane, ma va testato e sperimentato per aiutare il team di sviluppo a perfezionarlo. Questo http://msnd.microsoft.com/oslo/ è il punto di partenza ... buone sperimentazioni!
In questa keynote è stato dato enorme rilievo a WPF, giustamente perché si investe ancora troppo poco su una tecnologia che è invece dotata di un notevole potenziale.
In sintesi, come al solito, ecco i messaggi chiave secondo quella che è la mia visione (da developer):
- Visual Studio 2010
- Tutto l'editor sia di codice che visuale/designer sarà realizzato in WPF
- WPF Code Editor
- Estendibile da noi come layout e come logica di funzionamento (molto interessante!)
- Designer WPF e Silverlight integrati nell'ambiente di VS2008
- Office 14
- Office OnLine (supporto per IE e FireFox realizzato con Silverlight e AJAX)
- Hanno mostrato
- OneNote OnLine
- Word OnLine
- Excel OnLine
- Si è trattato di una demo veramente efficace ... davvero "impressive" come dicono in US
- Accesso concorrente ai documenti (anche online via Office Live Workspace)
- Anche questo è un aspetto molto interessante per la collaborazione
- Windows 7 Desktop
- Kernel in comune con Windows Server 2008 R2 (bit in arrivo ...)
- Surface development: supporto nativo in WPF per lo sviluppo di applicazioni Surface (non solo il Microsoft Surface ma anche il nuovo multi-touch di Windows 7)
- Ribbon everywhere: controlli WPF nativi per creare ribbon
- WordPad e Paint: rifatti con ribbon e supporto OpenXML
- Support nativo ai dischi VHD sia come mounting in Windows, sia come device di boot nativo (fico!)
- N mila altre cose che secondo me sono di minore importanza per i DEV ma che aiuteranno gli utenti finali, come:
- Gestione automatica delle reti "Home"
- Aggancio e sharing di risorse (foto, video, musica) tra PC in una stessa rete domestica
- Supporto migliorato ai proiettori e al multi-monitor
- My Documents distribuito e dinamico
- Encryption del contenuto delle chiavette USB (chi non ha mai perso una chiavetta con sopra documenti magari riservati scagli la prima pietra ...)
- Rilascio ipotizzato per fine 2009 (se ho fatto bene i conti, ha detto 3 anni dopo il rilascio di Windows Vista)
Una sessione come sempre interessante presentata da Anders Hejlsberg. Ecco in sintesi le novità previste per C# 4.0, in forma grezza, torneremo poi sull'argomento con maggiore dettaglio:
- Dynamically typed objects
- Dynamic keyword
- Dynamic method invocation
- Dynamic conversion
- Optional and named parameters
- Default value to parameters of methods
- Named arguments while calling methods
- Improved COM interop
- Automatic object -> dynamic mapping
- Optional and named parameters
- Indexed properties
- Optional ref modifier
- Interop type embedding ("no PIA")
- Co- and Contra-variance
- out = Co-variant (cannot be a parameter, so less-derived)
- in = Contra-variant (can only be used as method parameters or write only properties, so more-derived)
Nella prima giornata di PDC Geneva è stato sicuramente l'argomento per me più interessante. Sono stati annunciati/rilasciati:
- Geneva Framework (aka Zermat): la parte di framework per interfacciarsi da .NET con Geneva e la identity federation in generale
- Geneva Server: la parte di server STS in grado di ricevere e trasformare Claim
- Windows CardSpace Geneva: il nuovo CardSpace (più leggero come caricamento e gestione)
- Microsoft Service Connector: per federare (in due click, e non è uno slogan) un dominio AD con la gestione delle identità "in the cloud"
Note importanti:
- Microsoft ha già un Gateway in produzione per federare servizi e consumer. i servizi possono essere quelli di Microsoft Cloud o servizi terzi, ad esempio di ISV. I consumer possono essere utenti di domini tramite Microsoft Service Connector (per federare domini AD) oppure utenti della rete che usano Live ID per autenticarsi.
- Il rilascio di tutta la piattaforma per ora è stato annunciato per H2 Y2009 (seconda metà 2009).
- C'è il supporto per SAML 2.0
- Ci sarà il supporto nativo per OpenID
Ho in particolare seguito un'ottima sessione erogata da Kim Cameron e il "nostro" :-) Vittorio Bertocci dove hanno mostrato a livello generale l'idea di Geneva, seguita poi da un paio di sessioni di dettaglio sulla parte di MSC (Microsoft Service Connector) e sull'uso di Geneva Framework da applicazioni web ASP.NET.
Maggiori dettagli e il download di Geneva sono disponibili qui.
La novità della keynote di oggi è stata sicuramente l'annuncio di Windows Azure: in sintesi un servizio di hosting geograficamente distribuito, proposto e gestito da Microsoft per le aziende che vogliono avere servizi quali .NET Services, SQL Services, SharePoint Online, Dynamic CRM Online e Identity Federation, oltre a potenziali N altri servizi implementati e/o forniti da realtà terze (tutti noi compresi, se lo vogliamo), nella stessa ottica.
La keynote in quanto tale è stata un po' "moscia" più per IT Manager, secondo me, che non per Developers, benché fossimo a PDC (Professional Developers Conference).
Tuttavia l'idea in sé di Windows Azure è buona ed è una naturale conseguenza di quanto sta accadendo con l'evoluzione del mondo nell'ottica dei Software + Services.
Chiave di volta di tutto il discorso è la possibilità di utilizzare servizi di Federation Identity, senza i quali sarebbe impossibile offrire servizi in outsorcing e hosting a qualsiasi realtà terza. Proprio in quest'ottica è stata "impressive" (come dicono gli americani) la demo su Active Directory e le Federated Identity: con 2 click (nel vero senso della parola) si può federare un AD e i relativi account verso dei servizi esterni.
Entro 15/20gg dovremmo avere accesso, come partecipanti a PDC, al primo giro di CTP di Azure, da quel momento potremo provarlo sul campo e vederne la stabilità e solidità.
Intanto mi vengono alcuni dubbi:
- Dal punto di vista commerciale
- Quali costi avrà la soluzione finale?
- Sarà solo per i grandi attori o ci saranno profili di accesso per realtà più piccole? Penso a piccoli ISV o alle PMI italiane, per esempio, che vogliono sfruttare Azure non per raggiungere milioni di utenti, ma semplicemente per dare in outsourcing determinati servizi critici e troppo costosi da gestire internamente.
- Dal punto di vista tecnico
- Come posso gestire dati che per varie ragioni non possono risiedere in SQL Services? Interfaccio il tutto con dei servizi locali? Così però mi creerei un single point of failure a meno che poi non ridondi anche i data services ...
- Come viene gestita la parte di configurazione dei DNS e il deployment/maintenance rispetto alla geo-clusterizzazione?
- Si prevede un sistema di staging del codice per fare testing e poi rilascio delle soluzioni quando si ritengono stabili? Come si concretizza?
- Come avviene il deployment di soluzioni "complesse" diverse dagli "Hello, PDC!" e "Hello, World!" che hanno mostrato in plenaria? Sono interessato alle dinamiche per curiosità e per capire ...
In questi giorni cercherò di approfondire questi ed altri temi ...
Dopo un lungo periodo di astinenza dal blog, causato dai troppi impegni, prima fra tutti l'organizzazione di Microsoft SharePoint Conference 2008, ma anche N progetti SharePoint e .NET sicuramente stimolanti ma anche molto impegnativi, che mi hanno assorbito giorno (e spesso notte!) negli ultimi 4/5 mesi, ora torno alla vita :-) !
Vorrei quindi da oggi riprendere a postare con un pochino più di regolarità e quale occasione migliore del bloggare da PDC 2008? Da domani inizia la vera conferenza, oggi i pre-conference non li ho seguiti perché ho preferito ambientarmi a Los Angeles, tanto di solito i pre-conference non sono poi così utili.
Ci sentiamo da domani ...
Con grande piacere posso annunciare, insieme all'amico Igor, che da qualche giorno è online il sito dedicato alla prossima edizione di Microsoft SharePoint Conference 2008, la conferenza italiana dedicata a Microsoft Office SharePoint Server 2007 e alle tecnologie collegate. Dopo il successo dello scorso anno, questa volta l'organizzazione è il frutto di una partnership diretta con Microsoft Italia che da sponsor, quale era lo scorso anno, con nostra grande soddisfazione diventa quest'anno co-organizzatore.
Sul sito dell'evento si possono trovare agenda, descrizione sessioni e contenuti, biografie degli speaker e istruzioni per l'iscrizione.
L’evento si terrà il 2 e 3 ottobre 2008 a Milano (a breve maggiori dettagli sulla location) e vedrà riuniti in due giorni una dozzina tra i massimi esperti nazionali ed internazionali di Microsoft Office SharePoint Server 2007 e delle tecnologie collegate, per erogare 30 sessioni tecniche per IT Pro, Site Builders e sviluppatori. Obiettivo dell’evento è condividere esperienze reali e riunire la comunità di persone che ad oggi lavorano con SharePoint.
L’evento prevede un "super early bird" che permette un’iscrizione a tariffa agevolata (480€+IVA anziché 600€+IVA). Il "super early bird" scadrà il 20 luglio 2008!
Per chi ha partecipato all'edizione dello scorso anno e per chi scopre per la prima volta questo evento, l'invito è di visitare il sito dell’evento per consultarne i contenuti ed iscriversi al più presto!
Per chi vuole "avviarsi" allo sviluppo di Workflow per SharePoint, segnalo due articoli utili scritti da David Man e pubblicati su MSDN:
http://msdn.microsoft.com/en-us/library/cc546557.aspx
http://msdn.microsoft.com/en-us/library/cc546558.aspx
Ieri sera ho fatto qualche prova con VSeWSS v. 1.2. Ecco qualche feedback:
- Non è in grado di migrare i progetti fatti con VSeWSS 1.1 su VS2005 (e questo non è bello!). Ho provato a migrare diversi progetti, ma il tipo di progetto tra VS2005 e VS2008 è apparentemente diverso, quindi la conversione non va a buon fine. Se qualcuno ha trovato il modo di scavalcare il problema ... sotto ci sono i commenti :-).
- L'editor grafico di solution non è affatto male, è comodo anche se potrebbe essere più "ricco" perché alla fine occorre comunque andare di XML a manina nei file di Feature.XML. Resta comunque comodo il fatto che si possono creare dei package di deployment con al loro interno diverse feature.
- I template di progetto e di elemento sono integrati con la generazione automatica della solution, per cui diventa molto semplice creare progetti di estensione "articolati" fatti di N WebPart, CustomField, ContentTyp, List Template, ecc.
- Il solution generator, a partire da siti/liste esistenti, ha apparentemente gli stessi problemi di stabilità e affidabilità della versione precendente. Esiste però in due versioni: una per VS2005 e una VS2008.
In conclusione strumenti come STSDev restano ancora molto interessanti, ma queste estensioni a VS2008 sono decisamente comode. Speriamo che la futura versione 1.3 (o come si chiamerà) sia in grado di migrare i dati e che non ci costringa a spostare a mano di nuovo i file di progetto da VS2005 a VS2008.
Come già segnalato da Marco, l'altro giorno siamo stati intervistati da Ken Rosen a proposito del nostro nuovo libro su LINQ.
Se volete sentire un bresciano e un torinese che parlano in inglese ... fate un giro sulla home page di TechEd Online (per qualche ora saremo lì, poi ci sposteremo sul link interno - high res e low res).
Le Parallel Extensions per .NET sono sicuramente uno degli argomenti più caldi del periodo. Se ne è parlato anche durante la Keynote di TechEd (l'ultima di Bill Gates come employee di Microsoft). Contestualmente alle sessione sull'argomento tenute a TechEd ecco una nuova CTP disponibile.
Come abbiamo (io e Marco) già detto in diverse occasioni LINQ non è solo LINQ to SQL e non è solo un ORM ... le prospettive che si prefigurano con strumenti come Parallel Extensions e PLINQ ne sono la dimostrazione chiara e tangibile.
Come già segnalato da Marco, in questi giorni siamo ad Orlando per seguire TechEd e soprattutto :-) per promuovere il nostro nuovo libro su LINQ.
Oggi ho assistito ad una sessione in cui è stato annunciato il rilascio a giugno 2008 (cioè in questi giorni) delle estensioni per Visual Studio 2008 per WSS3. Era ora! Tutti le aspettavamo da tempo. A cosa servono?
Queste estensioni, insieme a quanto già offerto nativamente da VS2008, offrono:
- Project Templates
- Team Site Definition
- List Definition
- Empty
- Blank Site Definition
- Web Part
- Workflow Templates
- SharePoint 2007 Sequential Workflow
- SharePoint 2007 State Machine Workflow
- Item Templates
- List Definition
- Content Type
- Field Control
- Web Part
- Module
- Template
- Event Receiver
- List Instance
- List Definition from Content Type
- Custom Viewers
- WSP Viewer
- Con funzionalità di build & deploy
Quali sono i limiti di questo insieme di estensioni?
Non supporta i 64bit sulle macchine di sviluppo (quindi se usate le VM come me non avrete problemi, se usate il PC "ufficiale" e l'avete installato a 64bit ... vi toccherà rivedere i vostri progetti). Non supporta la compilazione da riga di comando e il remote deployment, cioè non potete automatizzare il deploy su server diversi da quello di sviluppo, sul quale state lavorando (di nuovo, va bene su PC DEV dedicati o su VM dedicate). Non ha designer WYSIWYG degli oggetti che si creano (e questo non è un limite :-) ...).
Qui trovate maggiori dettagli sulla versione 1.1 ad oggi disponibile solo per VS2005. Qui invece potete fare il download, della versione per VS2005.
Infine qui potete trovare informazioni sulla documentazione del prodotto.
Ho appena visto l'annuncio di un nuovo LINQ query provider per creare/modificare/cancellare e interrogare contenuti di liste di SharePoint . Sembra un'implementazione molto interessante, almeno in base ai video dimostrativi pubblicati (qui e qui) per ora. Da quando ho iniziato ad occuparmi di LINQ (ormai 3 anni fa) ho sempre pensato che SharePoint sarebbe stato un valido candidato per l'implementazione di un LINQ query provider personalizzato.
More Posts
Next page »