In questi giorni ho fatto il “grande salto”. Dopo 13 anni con TIM sono passato a Vodafone e contestualmente ho preso una chiavetta USB per collegarmi ad Internet senza allocare la banda del cellulare (sino ad oggi mi collegavo con il mio cellulare Windows Mobile via USB o Bluetooth, ma questo comportava che avessi quasi sempre il cellulare occupato).
Sul mio PC ho installato Windows 7 build 7100 a 64bit. Sono molto soddisfatto della scelta fatta, ma la chiavetta Vodafone non ne voleva sapere di funzionare. Scrivo qui una traccia perché magari serve anche ad altri. Ho provato a collegare la chiavetta su un PC con Windows 7 a 32bit e tutto ha funzionato correttamente. Allora ho cercato nel Device Manager e ho scoperto che viene installata una periferica modem di tipo “Globe Trotter GI41x” con produttore “Option NV”. Ho cercato sulla rete e ho trovato che il produttore sul suo sito offre sia i driver a 32bit che quelli a 64bit, oltre ad un client molto più rapido da usare rispetto a quello fornito da Vodafone. Mi è bastato inserire il codice IMEI/Seriale della mia VIK. Risultato: questo post lo sto scrivendo via VIK con Windows 7 a 64bit.
Sinceramente non mi spiego perché (apparentemente) il setup fornito da Vodafone non supporti i 64bit, comunque il problema ora è risolto.
Come molti di voi avranno notato, nella CTP di VS2010 uscita il mese scorso manca il template di workflow di tipo State Machine. Con .NET 4.0 il motore di WF4 è stato praticamente riscritto, il prodotto è stato completamente integrato con WCF4 (i due team di prodotto infatti si sono fusi, forse dovremmo parlare di “fusione per incorporazione” di WF :-) …). Ora in WF4 i workflow saranno orientati solo al markup e non dovrebbe più esistere il concetto di code beside di un workflow. Anche il set di activity di base (vedi qui per averne un’idea) e il modello di estendibilità delle activity personalizzate sono cambiati. Ora le activity non sono più classi derivate dalla classe base Activity, ma classi di una delle seguenti tipologie:
- WorkflowElement: classe base astratta per tutte le tipologie di activity
- Activity: definite come markup e frutto della composizione di altre activity, come i workflow stessi
- CodeActivity: classe base per le activity definite come codice, con l’override del metodo di Execute
- NativeActivity: classe base per le activity definite come codice, che devono interfacciarsi con il motore di base di WF4, con il sistema di messaggi a code (ora ribattezzate bookmark), ecc.
In questo contesto sono stati inseriti dei nuovi modelli di workflow. Nello specifico esiste ancora, seppur ridefinito con nuove activity e con un nuovo designer, il modello di Sequential workflow. Esiste un nuovo modello di workflow chiamato Flowchart, che può anche essere una parte di un workflow Sequential. Come citavo all’inizio del post poi non esiste più il modello di tipo State Machine. Mentre inizialmente (lo scorso anno) si ipotizzava che la causa di questa assenza fosse un porting non ancora completato del motore, ora è chiaro che lo State Machine non sarà supportato, almeno inizialmente. Infatti come spiegato in questa serie di documenti sulla migrazione da WF3 a WF4 con un modello di tipo Flowchart è possibile riprodurre il comportamento di uno State Machine.
Ovviamente, per quella che è la natura di .NET Framework, in .NET 4.0 sarà possibile avere comunque il supporto ai workflow definiti con il motore di .NET 3.0 e di WF3, come è spiegato anche qui, quindi non dobbiamo necessariamente buttare tutto il lavoro già svolto in WF3, soprattutto se abbiamo lavorato con le State Machine. Tuttavia è consigliabile iniziare a pensare ad un percorso di migrazione.
Oggi ho perso un paio d’ore a trovare un problema “improvviso” e “inaspettato” sul mio ambiente di sviluppo SharePoint.
Il problema era che di colpo non riuscivo più a fare logon sui siti con autenticazione Windows, trovandomi un errore con Event ID 537.
Mi sono per fortuna reso conto che non ero l’unico e che sul supporto Microsoft c’era la soluzione.
Siccome si è trattato di un problema quantomeno fastidioso, lascio una traccia nel blog per me o per altri.
Da poco è stato annunciato il rilascio del SP2 per MOSS 2007/WSS 3.0.
Le novità sono di vario genere. Tra le più importanti segnalo:
- Supporto alla migrazione a SharePoint 2010, ergo questo SP2 diventa indispensabile da applicare per migrare un domani una farm MOSS2007 a SharePoint 2010
- Migliorie alla “Client Integration” nel caso di autenticazione FBA
In questi giorni abbiamo pubblicato un altro sito web realizzato utilizzando WSS 3.0, le Content Editor WP, le DataView, un bel po' di XSLT e un pizzico di Silverlight 2.0. Si tratta del sito della Microsoft SQL Server & BI Conference 2009. Devo dire che è una bella soddisfazione vedere come XML, XSLT e SharePoint lavorino in gruppo per dare risultati anche piacevoli graficamente. Mi permetto di postare a proposito di questo argomento perché credo sia utile a chi magari ha dubbi rispetto al potenziale, anche di impaginazione e grafica, di uno strumento come SharePoint. Anzi in questo caso non abbiamo nemmeno usato MOSS, ma solo WSS (quello gratuito insomma).
In particolare ci tengo a segnalare la pagina dell'agenda (http://www.sqlconference.it/Agenda.aspx) dove sfruttando una DataView che lavora su delle normalissime liste custom di Speaker e Sessioni, abbiamo realizzato una mappa dinamica in JavaScript che mostra le sessioni organizzate per giorno, track e orario e in grado di adattare il layout in modo corretto in caso di stampa. Altrettanto è stato fatto per la pagina delle tracks/sessioni (http://www.sqlconference.it/Sessioni.aspx) e per quella degli Speaker (http://www.sqlconference.it/Speaker.aspx). Il banner degli sponsor, così come la pagina relativa (http://www.sqlconference.it/Sponsor.aspx), poi sono realizzati sempre usando una lista custom di Sponsor e un feed che genera i loghi da mostrare in Silverlight.
Ovviamente il merito del risultato, dal punto di vista grafico, è di chi ha disegnato la grafica del portale (http://www.tagproof.com/).
Nell'ambito di un intervento di ristrutturazione delle schede dei nostri corsi, segnalo che ho appena aggiornato e ampliato la scheda del nostro corso SharePoint 2007 Development.
Come annunciato dal team di prodotto, oggi è stata rilasciata una nuova CTP delle Visual Studio Extensions for Windows SharePoint Services 3.0 in versione 1.3.
Tra le novità dal mio puinto di vista più interessanti segnalo:
- Supporto alle piattaforme x64
- Comandi di package, deploy e retract separati (questo era anche nella mia lettere a Babbo Natale ...) e tool a riga di comando per utilizzarli al di fuori di VS2008
- Migliorie al Solution Generator, tra cui anche la possibilità di creare modelli di sito a partire da siti di publishing
- Possibilità di fare il rename delle WebPart
- Deploy in grado di risolvere conflitti di features, esigenza tipica negli ambienti di sviluppo dove a forza di monta e smonta :-) prima o poi il deploy con la v.1.2 si incastrava
- Capacità di includere nel deployment anche gli assembly collegati ai progetti SharePoint, per esempio i classici BIZ, DAL, Entities, ecc.
E altre novità per così dire "minori".
Attenzione che è una CTP e non una versione finale, però per fortuna stavolta è stata mantenuta la compatibilità tra i progetti della v.1.2 e la v.1.3.
Si è appena concluso un anno molto impegnativo. Alcune delle tappe (e degli impegni) più importanti del 2008 che mi piace ricordare, in ordine cronologico:
Questi impegni, e molti altri che non cito per brevità, hanno comportato un sacco di sforzi e mi hanno consumato un tantissime risorse. Per questo nel periodo di Natale/Capodanno/Befana ho cercato di staccare il più possibile, per rigenerarmi.
Vi è poi stato un altro fatto, che metto per ultimo, ma è la prima e più importante novità del 2008: il 26 gennaio 2008 è nato mio figlio Andrea. Mi ha cambiato la vita, in termini di qualità, di quantità di tempo che dedico a me o meglio che dedico a lui sottraendolo a tutto il resto e di gioia che mi trasmette.
Per tutte queste soddisfazioni devo ringraziare tanti amici e colleghi che mi hanno aiutato e supportato nel raggiungere questi importanti obiettivi. Tra loro voglio ringraziare in modo particolare tutta DevLeap e DevLead, i miei collaboratori di PiaSys, i miei collaboratori in EventHandler, Igor Macori, Gabriele Castellani e tutta MSDN Italia, Roberto D'Angelo, Giovanni Librando.
E il 2009?! Bene per il 2009 ci sono già in cantiere una serie di nuove attività:
- La DevLeap Conference 2009
- La Microsoft SharePoint Conference 2009 (... stay tuned ... la "wave 14" sta arrivando ...)
- Le novità di .NET 4.0, WCF, WF, Dublin, ecc. su cui ho intenzione di investire pesantemente
- Windows 7 e le tecnologie multi-touch, su cui dovrei seguire un progetto di early adoption molto interessante
- Niente libri (ho bisogno di un periodo sabatico :-) ... e poi quest'anno c'è già mio figlio che non mi fa dormire, non c'è bisogno di aggiugere anche un libro)
- Un paio di nuovi progetti SharePoint che sono già in cantiere
E per il resto vedremo cosa ci porterà la sorte. Buon anno a tutti e buon lavoro!
Spesso durante le consulenze mi viene chiesto come creare con makecert dei certificati di test assimilabili a quelli veri. Ecco i comandi da impartire, che lascio come reference per me e per chiunque altro ne abbia bisogno:
- makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=WCFService -sky exchange -pe
Questo comando crea un certificato con SubjectName "WCFService" e lo salva nello store personale di certificati della macchina locale. Il parametro -sr (store location) e -ss (store) indicano dove salvare il certificato. Il parametro -a indica il tipo di hash da usare. In questo caso sha1. Il parametro -n indica il CN (Common Name) del Subject del certificato. Il parametro -sky exchange indica che la chiave verrà usata per lo scambio di dati. Infine il parametro -pe indica che la chiave privata deve essere marcata come esportabile.
Un'altra richiesta molto inflazionata è relativa a quali comandi usare per autorizzare un utente non admin (come dovremmo essere tutti sulle nostre macchine) ad utilizzare porte HTTP non standard per mettersi in ascolto con self host WCF. Ecco i comandi da impartire al sistema:
- netsh http show urlacl
- netsh http add urlacl url=http://+:XXXX/ user=DOMAIN\Username
Il primo comando mostra le URLACL attive. Il secondo, mettendo la porta al posto di XXXX e il dominio e nome utente nella proprietà user, abilita l'utente fornito a mettersi in ascolto sulla porta indicata.
Di seguito trovate le demo delle mie sessioni a TechDays 2008:
Come ho già segnalato durante la sessione DEV321, l'esempio di applicazione asincrona basata su Northwind lo renderò disponibile in forma completa, sempre su questo blog, indicativamente nel periodo di Natale, quando avrò il tempo di finirlo con tutti i pezzi mancanti (security, service agent con MEP request/reply, ecc.).
Buon lavoro.
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.
More Posts
Next page »