novembre 2009 - Posts
Sto seguendo la sessione di Ed Pinto a proposito delle novità di WCF 4.0. Qualche nota utile:
- Configurazione:
- Sono stati aggiunti i default endpoint ai servizi, basati su una ProtocolMapping table che per ogni scheme definisce il corrispondente binding di default, che verrà applicato se non viene specificato altro in modo esplicito.
- Possiamo specificare delle binding configuration senza nome (name=””) e queste diventeranno la configurazione di default per i binding assegnati di default dai default endpoint.
- Anche sul fronte dei behaviors ci saranno i default behaviors applicati ai default endpoint.
- Le impostazioni di cui sopra sfruttano anche l’ereditarietà dei web.config in una gerarchia di directory.
- Di fatto in questo modo possiamo pubblicare un servizio, senza bisogno di avere un .config apposito. Molti odiavano :-) i file di configurazione di system.ServiceModel e questo è un segnale di “disponibilità” :-) nei loro confronti.
- Possiamo fare a meno dei file .svc espliciti, sostituiti da una sezione di configurazione specifica (ServiceHostingEnvironment/ServiceActivations)
- Ovviamente c’è tutta la parte di Windows Server AppFabric (aka Dublin) che sarà finalmente disponibile il prossimo anno. Ne abbiamo già parlato a DevCon 2009 a maggio 2009 e torneremo presto a parlarne in DevCon 2010 e sui nostri blog. In questo ambito in particolare avremo:
- Strumenti di monitoring “umani” ;-) e usabili
- Configurazione dei service host, della persistenza, del throttling e della sicurezza dei servizi direttamente dall’interfaccia di IIS7 tramite le estensioni di AppFabric
- Avremo a disposizione un RoutingService che ci consente di gestire in modo comodo delle “message pump” che possono servire per gestire problematiche di routing, versioning, service bus, ecc. il tutto con delle logiche di message filtering basate su delle implementazioni specifiche di classi MessageFilter. Inoltre è molto interessante il routing tra diversi binding e tra diverse versioni di protocollo (da SOAP 1.1. a SOAP 1.2 per es.) o tra diverse piattaforme di sicurezza (da claim based a message based identity).
- Hanno migliorato il supporto al discovery dei servizi. C’è un nuovo DynamicEndpoint pensato per questo scopo da usare client-side.
Nella keynote di oggi a PDC09 hanno presentato la preview di Silverlight 4.0.
Tra le novità:
- Supporto a camera e microfono
- Supporto ad hardware esterno
- Migliorato il supporto alla comunicazione SOAP con WCF
- WCF RIA Services
- Lettura di barcode direttamente dalle immagini acquisite dalla camera
- Supporto allo SmoothStreaming
- Capacità di includere contenuti HTML (inclusi i plug-in … non immaginate che bello vedere Flash hosted in SL4 :-) …)
- Sandboxing “apribile” con le dovute cautele
- Accesso al file system locale
- Accesso alla stampante
- Ecc.
- Funzionalità di editing interattivo di contenuti
- Ecc.
Ma ha ancora senso pensare ad HTML5 e ai browser di prossima generazione?
Oppure abbiamo trovato il modo di superare il problema dei numerosi limiti che i browser hanno oggi, rispetto alle aspettative degli utenti finali che si scrontano con la realtà dei fatti: HTML un metalinguaggio pensato (ai tempi) per erogare contenuti ipertestuale e non per creare applicazioni gestionali, social networks, soluzioni multimediali, ecc.
Occorre riflettere …
La beta di Silverlight 4.0 è disponibile per il download (http://silverlight.net/)
Sono ormai parecchi anni (dal 2004 per l’esattezza) che portiamo avanti un modello di architettura software. Era appunto il 2004 quando organizzammo il primo DevCon OneDay, a Brescia, e dove fu mostrato DevLeap Estates Management. Il nostro sito dell’evento non è più online, ma l’amico Sandro ha ancora la scheda sul suo sito personale (grande!).
Perché vi parlo di queste cose? Perché oggi, nei tempi morti della conferenza, ho letto un articolo di MSDN Magazine a proposito della architetture software di oggi con Entity Framework 4.0 dal titolo “Building N-Tier Apps with EF4”.
Ho letto con piacere l’articolo perché l’autore (Daniel Simmons – Architect di EF in Microsoft) illustra come organizzare un’applicazione N-Tier con EF 4.0 e di fatto, in particolare nella sezione intitolata “Data Transfer Objects” ribadisce l’utilità dell’avere un modello fortemente disaccoppiato, senza ignorarne il costo implementativo per carità … ma chi più spende, meno spenderà!
E questo cosa c’entra con Estates Management e con DevCon OneDay SOA? C’entra perché appunto nel 2004 l’architettura da noi proposta, e ancora oggi valida e day by day aggiornata da .NET 1.x a .NET 4.0, era esattamente pensata in quel modo. C’era un forte disaccoppiamento tra i layer e c’erano molte delle idee illustrate in questo articolo.
Beh scusate il post forse un po’ autocelebrativo, ma mi ha fatto piacere vedere riconosciuto il valore di idee in cui crediamo e che professiamo da diversi anni, anche considerando il fatto che le applicazioni reali che sviluppiamo per i nostri clienti si basano su questo modello architetturale e ad oggi siamo molto soddisfatti della scelta.
Da ieri sono scaricabili SharePoint 2010 (sia Foundation che Server) e Office 2010 in versione Beta2 pubblica (o quasi, visto che bisogna accedere ad MSDN Downloads). Ormai tutti avrete finito il download, tuttavia mi sembra utile segnalare un documento su MSDN, utile per avere la procedura consigliata per installare la beta su un server Windows Server 2008 SP2 o R2 (x64 ovviamente :-) …) o su una Developer Workstation con Windows Vista o Windows 7.
Ecco il link al documento e buona installazione.
In questa sessione di Don Box e Chris Anderson è stata presentata la filosofia di Microsoft per l’accesso ai dati da .NET, e non solo, nei prossimi anni.
Di fatto tutto si sta spostando su REST/POX e AtomPub. In effetti un po’ ovunque sono stati introdotti i Data Services, basti pensare anche a SharePoint 2010 che si rende accessibile tramite il ListaData.svc via REST. Altrettando dicasi per gli ADO.NET Data Services, per Entity Framework 4.0 che semplifica ulteriormente il publishing di dati via REST, potendo esporre anche modelli di entità custom e non solo le entità di Entity Framework.
Anche WCF 4.0 investirà parecchio su OData (Open Data Protocol, sì si chiama così adesso), che Don Box oggi con una battuta ha definito il nuovo ODBC.
Insomma a dispetto dei miei gusti personali (chi mi conosce sa che non amo REST/POX) mi sa che dovrò mandare giù il pillolone :-) e abituarmi a lavorare con i Data Services. D’altra parte nell’ultimo anno, seppur controvoglia :-), ma l’ho fatto pesantemente in diverse situazioni e in particolare nell’applicazione WPF 4.0/Touch che abbiamo realizzato per il MilanLab.
Per chi volesse approfondire il discorso qui (http://msdn.microsoft.com/en-us/data/ee844254.aspx) e qui (http://odata.org/) ci sono un po’ di informazioni utili.
Sono ormai due settimane che Microsoft SharePoint 2010 è “cosa pubblica”. In questo post è mia intenzione evidenziare gli aspetti secondo me più importanti della nuova versione del prodotto. Poi vi saranno post futuri in cui andrò a dettagliare alcuni degli aspetti e delle funzionalità qui evidenziate.
In ordine sparso (forse inconsciamente di preferenza) ecco alcune delle novità di SharePoint 2010:
- WSS non si chiamerà più così ma ormai si parla di Microsoft SharePoint Foundation 2010. Della serie ovunque ormai c’è una Foundation (WCF, WF, WPF, WIF) e poi eventualmente una parte advanced del prodotto.
- Il Business Data Catalog è stato ampliato e in parte riscritto. Ora si chiama Business Connectivity Services. Prevede un’architettura aperta, a provider, anzi connectors. Nativamente supporta fonti dati di tipo DBMS, servizi SOAP in genere, servizi WCF, librerie .NET personalizzate. Inoltre possiamo creare con VS2010 altri connettori custom. Caratteristica fondamentale dei BCS è il fatto che ora sono sia in lettura che in scrittura, quindi possiamo realizzare interfacce CRUDQ (Create, Read, Update, Delete, Query) sui repository terzi con cui ci interfacciamo.
- Quando creiamo soluzioni BCS, possiamo poi vederne i dati tramite External Content Type, External List e External Data Columns all’interno dei siti SharePoint.
- Client side, in Office 2010, possiamo portare offline i dati sia in Outlook 2010 che in SharePoint Workspace 2010. I dati in offline potranno essere letti e modificati esattamente come se fossimo su SharePoint. Attenzione che nel caso di dati che risiedono su un DBMS, il client Office 2010 dovrà poter accedere direttamente al DBMS e non passerà attraverso SharePoint per arrivarci. Questo introduce qualche problematica di sicurezza di rete. Ovviamente lo stesso vale anche per fonti dati SOAP/WCF, ma almeno in questo caso i requisiti di sicurezza sono più ragionevoli.
- È stato introdotto il supporto nativo a LINQ con un provider specifico per le liste e i content-type di SharePoint. Si chiama LINQ for SharePoint. Tramite un tool (SPMetal.exe) si creano i modelli di dati e poi si interrogano con query, restrizioni, join, proiezioni personalizzate via query LINQ.
- Sul fronte del workflow non ci sono novità particolarmente eclatanti per gli sviluppatori, ci sono solo dei template di progetto e di file più comodi da utilizzare. Il motore di workflow su cui ci si basa è ancora il WF 3.5. Per ora di WF 4.0 non se ne parla. Tuttavia è ora possibile creare dei custom handler per gli External Data Exchange di workflow ospitati in SharePoint ed è stata aggiunta la possibilità di intercettare degli eventi tramite dei nuovi appositi SPWorkflowEventReceiver. La vera novità di workflow è però per i Site Builder. Infatti in SharePoint Designer 2010 potremo importare workflow disegnati con Visio 2010, esportarli verso Visual Studio 2010 o riutilizzarli su diverse liste o content-type. Inoltre ci sono una significativa quantità di nuove activity. Ad esempio c’è una nuova activity per eseguire delle azioni con elevation di privilegi. Il designer di workflow in SPD2010 è stato completamente riscritto.
- Visual Studio 2010 supporterà nativamente SharePoint 2010. Dovrà essere installato su PC con SharePoint 2010 installato, ma da questa versione SharePoint 2010 sarà installabile anche su PC Windows 7 e non solo su sistemi operativi di fascia server, quindi non è una richiesta impossibile avere SP2010 sul PC di sviluppo.
- Dentro a VS2010 hanno predisposto una serie di designer di package WSP, features, contenuti da installare nei folder \14 di SharePoint 2010. Inoltre ci sono una serie di template di progetto e di item specifici per SharePoint 2010 e c’è uno SharePoint Connector dentro al Server Explorer, che consente di navigare un site SharePoint 2010.
- Sono state previste una serie di API lato client per lavorare in .NET (codice managed) su macchine che non montano SharePoint 2010 ma che vi si collegano via SOAP/REST. Inoltre per i client SilverLight c’è una API dedicata. Infine c’è una API JavaScript per applicazioni AJAX/JQuery.
- Non esiste più il concetto di Shared Services ma esistono invece gli Application Services. Questi ultimi possono anche essere condivisi tra più farm SharePoint e possono essere sviluppati anche da noi, in ottica di espandibilità SOA, visto che ogni Application Service può parlare con il resto del mondo via SOAP/WCF.
- Tutte le viste sui dati sono ottenute tramite trasformazioni XSLT.
- A livello di gestione documentale sono stati introdotti degli speciali content-type chiamati “Document Set”, che altro non sono che specializzazioni del concetto di folder, con associata una Welcome Page e un modello di documenti di base di cui può essere costituito un Document Set. Possiamo fare provisioning dei Document Set anche da codice, esattamente come qualsiasi altro modello di content-type personalizzato. Esiste poi il concetto di versioning a livello di Document Set e non solo a livello di singoli documenti.
- Sempre nell’ambito della gestione documentale è stata introdotta una feature di “Document Id” che consente di associare a qualsiasi documento di un sito web e può sfruttare un provider personalizzato, realizzabile tramite codice .NET, per la generazione degli ID. Tutti i documenti dodati di un ID avranno una UniqueUrl che li andrà a rendere univocamente raggiungibile anche nel caso in cui vengano spostati tra diverse cartelle/document library.
- L’amministrazione del sistema può avvenire da remoto via PowerShell. Questo segna una tappa importante sia per IT Pro che per Developer.
- Sul fronte della capacità di storage, i limiti dimensionali logici e teorici sono ben più elevati di prima. Da un punto di vista pratico e razionale, occorre comunque tenere presente che una lista con 1 milione di items forse :-) è da organizzare, frazionare o dividere in cartelle perché sia “usabile” per un utente.
- Sono state introdotte regole di integrità referenziale “soft” tra le liste, nel momento in cui si definiscono colonne di lookup tra una lista e un’altra.
- Sono state inserite delle regole di validazione configurabili a livello di singolo metadato/campo.
- Sono state introdotte regole di automatic-foldering dei contenuti, pensando alla parte di CMS/ECM, per meglio organizzare e raggruppare i contenuti.
- Hanno introdotto un nuovo servizio di Word File Conversion, pensato per aprire e salvare i documenti Word. Offre anche la possibilità di salvare i documenti Word in formato PDF o XPS. Il tutto lato server, senza alcuna esigenza di avere Office sul server.
- Sul fronte del ECM sono stati introdotti i Managed Metadata, che consentono di avere terms e keywords gestiti a livello centralizzato e condivisibili cross-farm. A questa funzionalità si affianca poi la possibilità di navigare i metadati con modalità di ricerca ad albero.
- Sono stati poi introdotti gli shared content-type, dove il concetto di shared è a livello cross-farm.
- In tutto SharePoint 2010 è stato introdotto il supporto al social networking e al web 2.0.
- Ora i siti potranno essere multi-lingua, nel senso che avranno una lingua di base/riferimento e poi la possibilità di attivare N altre lingue secondarie. Gli utenti potranno scegliere di vedere il portale nella loro lingua preferita. Attenzione però che i contenuti delle liste non saranno multilingua, se non saremo noi a prevederlo a livello di strutture dati e di field personalizzati.
- Sono stati introdotti tutta una serie di strumenti e funzionalità orientati al Digital Asset Management. Ad esempio è possibile avere campi di contenuti “multimediali” mostrabili all’interno di player SilverLight. A questo scopo sono stati introdotti content-type nuovi per video, audio, image e funzionalità orientate allo streaming.
- L’interfaccia utente di SP2010 è interamente basata sui Ribbon già presenti in Office 2007 Client. Il modello di accesso alle funzionalità, basato su Ribbon, è estendibile e potremo creare le nostre custom action in forma di Ribbon.
Se queste idee e spunti vi hanno stimolato ... registratevi (http://sharepoint2010.microsoft.com/try-it/Pages/Trial.aspx) per la beta pubblica di SharePoint 2010 e aspettate la fine del mese per metterci le mani.
Inoltre state pronti ad aderire alla Italian SharePoint Community (http://www.sharepointcommunity.it/) e segnatevi sul calendario i giorni 9-10-11 Marzo 2010, date della prossima edizione della Microsoft SharePoint & Office Conference 2010 (http://www.sharepointconference.it/).
In questi ultimi 2 mesi sono letteralmente impazzito per riuscire a far funzionare, senza riuscirci, il software Corel WinDVD su Windows 7 RTM a 64bit per vedere i DVD Blue-Ray sul mio Media Center a casa.
Ho iniziato con WinDVD 9 Pro, regolarmente comprato (circa 60€ di spesa) che su Windows Vista per l’onore della verità funzionava. Ho installato poi la RC di Windows 7 e non ha più funzionato nulla, quando inserivo un BD nel player non si vedeva nulla, ma Windows rilevava il disco e il contenuto, tanto è vero che Media Center mi diceva che era un disco BD e di usare un player dedicato. I dischi DVD non Blue-Ray si vedevano invece correttamente.
Ho cercato sul supporto di Corel e ho scoperto che serviva la nuova versione WinDVD 2010 per poterla usare con Windows 7, sul sito c’era il logo di compatibilità. L’ho comprata (altri 79€, l’aggiornamento dalla versione 9 costava 59€ … non un grande affare, quindi ho pensato di tenere anche la licenza del 9 e di non farne l’upgrade). Installo il software e ogni volta che inserisco un DVD BD nel player il software va in crash e mi tocca farne kill da task manager. Se metto dentro un DVD invece non vedo nulla, ma almeno non va in crash. Verifico sul supporto e vedo che danno la compatibilità con Windows 7 da quando sarà in RTM, quindi aspetto la RTM.
Aggiorno il PC alla RTM quando si rende disponibile e non cambia nulla. Mando email a Corel per chiedere spiegazioni e non mi risponde nessuno. Faccio una richiesta di supporto esplicita dal sito di supporto del prodotto e stavolta finalmente mi rispondono, dopo 2gg ricevo una email che mi consiglia 3 step:
1) Aggiornare i driver della scheda video (erano ovviamente già aggiornati) e intallare i DirectX più recenti (e anche questi c’erano già).
2) Reinstallare WinDVD disattivando la scheda di rete (?!) e spegnendo lo UAC (ma non era compatibile con Windows 7?!)
3) Eseguire WinDVD con un utente di livello Administrator, diverso da quello attualmente in uso (secondo loro …) perché poteva esserci il profilo utente corrotto
Ovviamente nessuna delle 3 azioni ha dato frutti. Preso dalla disperazione ho scaricato un prodotto concorrente: PowerDVD 9 della CyberLink. Ho scaricato la versione trial valida per 30gg. Al primo colpo ha funzionato tutto e mi sono finalmente visto un bel film in Blue-Ray.
Ho risposto al supporto Corel segnalando la cosa e dicendo che se mi fossi trovato costretto a comprare PowerDVD, avrei voluto indietro i soldi spesi per WinDVD. Mi è arrivata indietro oggi una risposta automatica che diceva che, essendo trascorse 72 ore dal mio ultimo contatto senza risposte (ma come?! gli ho scritto ieri!), consideravano il mio problema risolto.
NON HO PAROLE! Posso solo lasciare questa traccia sulla rete, per evitare che altri come me regalino 79€ a Corel per un prodotto venduto come compatibile con Windows 7 ma che a questo punto mi chiedo se qualcuno in Corel abbia mai installato su Windows 7 …
Oggi ho comprato PowerDVD e sono contento!