December 2006 - Posts
Me lo ero perso: è disponibile al download la nuova CTP http://www.microsoft.com/downloads/details.aspx?familyid=2B01EC7E-C3B8-47CC-B12A-67C30191C3AA&mg_id=10056&displaylang=en
Articolo da me pubblicato su week.it del 26/10/2006.
N.B. il 7/12/2006 è uscito il prodotto in versione finale.
Prosegue a grandi passi lo sviluppo dell’ultimo componente della famiglia Visual Studio Team System dedicato a chi progetta, implementa e amministra database.
Una delle funzionalità più interessanti del prodotto è la possibilità di mettere sotto controllo sorgenti (grazie anche all’integrazione con Team Foundation Server) e gli schemi dei database progettati.
Questo consente di mantenere diverse versioni (e la storia delle modifiche) dello stesso database con lo stesso paradigma usato per il normale controllo sorgenti.
Le modifiche effettuate a uno schema possono essere «inviate» direttamente al database con una fase di test preliminare. È possibile comparare gli schemi di database in test e in produzione con la versione sotto controllo sorgenti per verificarne la consistenza e successivamente generare gli script d’aggiornamento.
Così come nelle edizioni rivolte a Tester e Developer, anche in questa edizione è possibile creare Unit Test e Unit Test sugli elementi del database. L’interfaccia di gestione è integrata nel Test View e Test Manager e ogni singolo unit test può essere incluso in test più ampi, per esempio Ordered Test. È possibile testare codice T-Sql o managed direttamente nel nuovo editor di test.
L’idea di questa edizione è integrare nell’intero ciclo di sviluppo del software anche il progettista di database che potrà beneficiare degli strumenti di collaborazione offerti da Team Foundation Server e dagli altri componenti della Team Suite. Come il portale, i meccanismi integrati di Change Management e il repository comune per il source control, nonché work item e bug tracking.
I progetti di tipo «Database» vengono creati dal Database Project direttamente di menù di Visual Studio. È possibile importare schema di database esistenti. Una funzionalità importante è la possibilità di fare Refactoring (per adesso solo rename) di oggetti database e ottenere in automatico l’aggiornamento di tutti i riferimenti nel codice verso l’oggetto. SchemaCompare è lo strumento che consente di verificare lo schema di due database, per esempio test e produzione o test e versione, sotto Scc per verificare le differenze e creare script d’aggiornamento.
Sul fronte dati, DataCompare offre le stesse funzionalità applicabili alle strutture anche ai informazioni memorizzate: è possibile generare script d’aggiornamento dati per allineare due database. Infine, DataGenerator consente di creare set di dati per eseguire test o alimentare un database in produzione.
Permette, per esempio, di leggere i dati del database reale e creare set di dati per il database di test prima di effettuare Unit Testing sul database stesso.
Da qualche giorno è disponible la versione RC dei componenti core di ASP.NET AJAX.
Basta seguire 3 passi per ottenere componenti core, sample e extender, e furures.
1) Installare AJAX core: è un msi che installa il core di Ajax per ASP.NET 2.0
http://www.microsoft.com/downloads/details.aspx?FamilyId=8FA6E076-582B-440F-95CB-C40ED23FDF59&displaylang=en
2) Installare il Control Toolkit di CodePlex; componente non necessario ma pieno di esempi e controlli aggiuntivi
http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=AtlasControlToolkit
3) Installare il AJAX Futures: per adesso ancora in CTP di dicembre, contiene una serie di aggiunte al core (punto 1 di questo post)
http://www.microsoft.com/downloads/details.aspx?FamilyId=29B6B62B-A25A-498D-AA14-90B68CF2E392&displaylang=en
Buon divertimento e soprattutto non abusate di queste caratteristiche: il web per adesso...è ancora il web.
Alla prossima DevCon (stay tuned) avremo modo di parlarne in modo approfondito.
Come accennato in un post precedente la versione RTM di Windows Vista non ha a bordo nessuno strumento di sincronizzazione "Outlook".
Tramite il Sync Center si possono sincronizzare video e con altri strumenti si possono importare le foto fatte dal device.
Per avere una sincronizzazione completa (la più importante direi) di contatti, task, email occorrerà installare il Windows Mobile Device Center for Windows Vista.
Questo signore ad oggi è disponibile in Beta3 come aggiornamento di driver. Ad oggi non è incluso nel Windows Update visto che è ancora in Beta3.
Per il download partite da questo indirizzo: http://www.microsoft.com/windowsmobile/devicecenter.mspx per poi scegliere la versione corretta in base a X86 o X64.
Il problema di sincronizzazione esiste anche su XP SP2 se installate Office 2007 (Outlook 2007 nello specifico). In questo caso occorre installare ActiveSync versione 4.5...anche questo in beta.
Ad ora è disponibile su http://www.microsoft.com/downloads/details.aspx?familyid=0E19BD46-F101-4852-96AA-398CB3B54681&displaylang=en.
Per fare un po' di chiarezza sui vari nomi dell'ormai famoso SQLCE. SQLCE nasce nel 98 (se la memoria non mi inganna) in versione 1.0.
CE indica Compact Edition oppure semplicemente la piattaforma su cui gira, Windows CE appunto.
SQLCE 2.0 prese poi il nome di SQL Server 2000 Compact Edition oppure SQL Server 2000 for Windows CE.
SQLCE 3.0 esce con Visual Studio 2005 nel novembre 2005: il nome varia da SQLCE 3.0 (si vedano vari post sull'argomento nel mio blog, su www.thinkmobile.it e su alcuni articoli che ho scritto per www.weekit.it), a SQL 2005 Mobile Edition oppure SQL Server 2005 Mobile Edition.
A gennaio 2006 si sente parlare di SQL Everywhere (anche su questo argomento trovate numerosi miei post) che in pratica è SQL CE senza la limitazione che ne impone l'utilizzo su Windows CE (ricordate che Windows Mobile 5.0 è basato su Windows CE 5.0), sul Tablet PC e sulla macchina di sviluppo con Visual Studio. Il nuovo prodotto (che in realtà tanto nuovo non è) doveva essere appunto SQL Everywhere e girare anche su un normale PC. Ci sono metodi di accesso specifici per un database destinato a girare in-process rispetto al chiamante (Base Table Cursor, si veda la demo su www.thinkmobile.it/files, oppure SqlCeResultSet, sempre utilizzato nella demo per mostrarne le performance). Sul sito www.thinkmobile.it trovate anche due articoli sulle performance di SQLCE.
Tutto OK fino quì ? Bene, dimenticate l'ultima parte in quanto il nuovo SQLCE si chiamerà SQL Compact Edition (il buon vecchio nome..che tra l'altro ha fatto la sua fortuna su Windows CE).
La versione sarà la 3.1 e girerà appunto su Windows CE, su Windows XP Tablet Edition (come già fa oggi SQLCE 3.0) e su macchine desktop Windows XP e Vista. Quindi per ricapitolare SQL Server Mobile Edition (o SQLCE 3.0)è stato rilasciato insieme a Visual Studio 2005 ormai un anno fa. SQL Server Compact Edition (3.1) sarà rilasciato fra poco e girerà anche su desktop e piattaforme Windows 32.
Non finisce quì :-): la nuova versione sarà la 3.1, ma all'interno di Visual Studio trovere le reference alla versione fisica 3.0. Considerate quindi la 3.1 come un service pack per la 3.0.
Per il futuro...ad oggi sembra che una versione 3.5 verrà rilasciata insieme a Orcas e avrà un nuovo motore di replica dei dati che va oltre l'attuale RDA e Merge Replication e che funzionerà solo sulla 3.5. La notizia buona è che potranno girare Side By Side...la 3.1 e la 3.5.
Come annunciato da tempo (anche su questo blog) è sparito !!!
In parte è stato sostituito dal ben più completo e integrato Sync Center di Windows Vista.
Le connessioni dei device adesso si fanno direttamente da lì (dopo un upgrade sullo stesso sistema ritroverete le vecchie partnership...almeno a me è successo così).
Ricordatevi di attivare DMA per accedere agli emulatori. Per default il mio si era spento :-)
Fra poco un altro post sulla sincronizzazione con Office
FYI: Installa anche il Service Pack 1 per il Team Explorer nel caso sia installato sulla stessa macchina TFS.
Il Service Pack 1 di Visual Studio 2005 (compreso Team Suite) contiene un aggiornamento al Web Application Project. Questo componente era un download separato per VS per "ritornare" al modello di gestione progetti di Visual Studio 2003 (Build e Bin per capirci).
Occorre disinstallare questo componente prima di procedere all'applicazione del service pack.
Uno spettacolo. Da anni ormai lavoro con VMWare per testare software in beta oppure per testare mie applicazioni su Windows 2003 Server.
La nuova versione (la 6.0 per adesso in Beta) consente di agganciare periferiche USB 2.0: molto comodo per testare applicazioni connesse ad un device via ActiveSync.
La cosa impressionante di questa nuova versione è il supporto al Debug di Visual Studio (anche di Eclipse per dirla tutta): in pratica si possono debuggare applicazioni che girano nella Virtual Machine da Visual Studio installato solamente nell'host. Il risparmio di tempo di installazione di VS e tutti gli "aggeggi" mobile che lo accompagnano (vedi SDK, GAX, GAT, etc etc) e il risparmio di RAM nella VM è notevole.
Pensate ad esempio ad una applicazione mobile che gira sul device e che invoca servizi SOA (con WCF o con classico ASMX): si può testare il codice su 2003, debuggandolo, nel suo ambiente finale, con gli application pool, la security, l'impersonation corretta; tutte cose che su XP sono (giustamente) impossibili.
Solo quest'ultima vale l'acquisto...purtroppo dovremmo aspettare ancora un po' per la versione finale.
Date un occhio anche al post di Alessandro (http://www.virtualization.info/2006/12/improve-software-development.html) per altre info.
Articolo da me pubblicato su week.it del 15/11/2006. Riporto as was:
Mobile Client Software Factory è un progetto del team Pattern & Practices di Microsoft che include una serie di Application Block per lo sviluppare soluzioni basate su Windows Mobile 5.0 (ma in alcuni casi anche con Mobile 2003) e una replica (leggermente ridotta) del Composite Ui Application Block per il .Net Framework. Ci sono pareri contrastanti sull’uso di pattern nello sviluppo di soluzioni: a chi è “pattern-oriented” interesserà l’intero pacchetto; chi, invece, è “pattern-far-from-me-please” troverà comunque interessanti gli Application Block riutilizzabili in ogni applicazione. Configuration Application Block: componenti per gestire la configurazione applicativa.
Sia nel .Net Cf 1.0 che nel 2.0 non esistono le classi del namespace System.Configuration disponibili nel framework .Net completo. Questa libreria espone un’implementazione custom dei metodi per leggere sezioni di configurazione e creare proprie sezioni associabili a classi custom. Fornisce anche classi astratte implementate negli altri application block che usano sezioni di configurazione.
Connection Monitor Application Block: classi per enumerare le connessioni registrate sul device tramite un’apposita sezione del file .config (usa il Configuration Application Block). A ogni connessione è possibile associare un “prezzo” in modo da poter scegliere durante le operazioni in rete la connessione da usare e dare una priorità ai messaggi in base a questo valore. Altre classi consentono d’enumerare le reti disponibili e per ognuna ottenere informazioni dettagliate. Per ogni connessione o rete è possibile registrare Event Handler per monitorare i cambi di stato. Per esempio è si può capire quando la rete Wi-Fi o la connessione Gprs è disponibile o meno.
Data Access Application Block: rivisitazione in chiave Sql Mobile (o SqlCe) del famoso Application Block per il .Net Framework. Oltre alle classiche funzioni d’esecuzione, dispone di comandi per ottenere DbDataReader e offre metodi per farsi restituire SqlCeResultSet, oggetto nativo in Sql 2005 Mobile non presente su Sql Server. Mancano, purtroppo, i metodi che usano i Base Table Cursor di Sql 2005 Mobile che sono più efficienti per leggere i dati da una sola tabella sfruttando direttamente gli indici e bypassando il query processor (sul sito www.thinkmobile.it, nella sezione files, c’è una classe helper, simile a questo application block, ma che fornisce anche i metodi citati).
Data Subscription Application Block: classi helper la gestione client-side della Merge Replication nei confronti di un Sql Server 2000 o 2005. Espone eventi per lavorare con le repliche asincrone (disponibili da Sql 2005 Mobile) e un meccanismo semplificato di gestione delle credenziali. Non fa usare però Remote Data Access, metodo alternativo più semplice in alcuni scenari.
Disconnected Service Agent: consente l’accodamento delle richieste verso Web service quando il device non dispone di connettività. Tramite una coda locale vengono accodate tutte le richieste verso Web service che verranno processate nel momento in cui la linea torna disponibile: per ogni richiesta è possibile indicare la callback da invocare al termine dell’esecuzione della richiesta.
EndPoint Catalog Application Block: fornisce una serie di configurazioni dei vari endpoint remoti usati dal device per invocare Web service o iniziare una replica dei dati. Consente di definire centralmente per ogni endpoint i meccanismi d’autenticazione.
Password Authentication Block: fornisce una serie di meccanismi per autenticare gli utenti e per creare chiavi di encryption basate sul Pin del device. Consente, inoltre, di criptare le informazioni di configurazione in base a questi parametri.
Orientation Aware Control Application Block: è rappresentato da un controllo derivabile che espone le funzionalità per adattare i controlli alle diverse risoluzioni video e Dpi dei device attuali.
Nota finale: per l’installazione del pacchetto occorre installare le Guidance Automation Extension per Visual Studio 2005 e il Guidance Automation Toolkit in quanto il Mobile Client Software Factory contiene un Automated Guidance Package.
Articolo da me pubblicato su Week.it. Riporto as was :-)
Sql 2005 Mobile durante l’uso può diventare frammentato occupando più spazio del necessario e se la frammentazione è elevata le performance possono abbassarsi. Sql Mobile (e sembra che così sarà Sql Everywhere/Compact Edition) non è un servizio, quindi non ha e non può avere caratteristiche di recovery paragonabili a un database server. Per la precisione, i file .sdf sono divisi in pagine logiche di 4 Kb. La versione 2005 espone una proprietà (impostabile nella stringa di connessione sui vari oggetti dell’engine) per controllare le caratteristiche di autoshrink: ssce:autoshrink threshold rappresenta la percentuale di spazio libero permesso (frammentazione) raggiunta la quale avviene una operazione di autoshirnk. Il valore di default è 60. Il valore 100 disabilita l’autoshrink. È possibile eseguire uno shrink da codice tramite il metodo Shrink: con questo metodo vengono riorganizzati i record e eliminati i record vuoti.
Un secondo metodo, più invasivo, è usare Compact: tramite questo metodo dell’engine viene creato un nuovo database, vengono riorganizzate le pagine di dati per usare pagine del database adiacenti e lo spazio inutilizzato (frammentato) viene recuperato riscrivendo tutti i dati nelle nuove pagine. Vengono ricreati gli indici durante la creazione del nuovo database e resettati gli identity seed dei campi identity autoincrementali al valore successivo all’ultimo record. Durante un Compact è possibile indicare il nuovo database .sdf da creare, modificare la password e impostare un diverso Locale Id (LcId). Durante una compattazione il database deve essere chiuso, il database di destinazione non deve esistere e ci deve essere lo spazio per tenere entrambi i sulla memoria (o scheda di memoria) del device. Anche se il database ottenuto sarà più piccolo rispetto al database originale, durante la compattazione vengono utilizzate tabelle temporanee per eseguire le operazioni e vengono usate cache per migliorare i tempi d’esecuzione: questo fa sì che sia necessario uno spazio libero uguale ad almeno il doppio della dimensione del file .sdf da compattare.
Il database si corrompe raramente: il codice di utilizzo del database restituisce un’eccezione con un codice di errore nativo 25017. In questo caso è possibile usare il metodo Repair con opzione RecoverCorruptedRows per provare a recuperare le righe o DeleteCorruptedRows per eliminare le righe corrotte. Tramite il metodo Verify è invece possibile eseguire un controllo dei checksum delle varie pagine per capire se ci sono problemi di corruzione. Una nota: come per tutti i database conviene fare un backup (in SqlCe è semplicemente la copia del file .sdf) dei dati a cadenza regolare.
Ricordate però che se si usano meccanismi di replica remota (Rda o Merge Replication) è possibile ricostruire il tutto semplicemente forzando una reinizializzazione della replica pagando solo il costo del downlod dei dati.
Come dice giustamente Lorenzo nella sua guida di installazione a TFS, occorre molta attenzione nell'applicazione delle componenti e nella successiva configurazione di utenti/ruoli/gruppi.
Vi consiglio di dare un occhio al suo articolo in italiano(http://www.microsoft.com/italy/msdn/risorsemsdn/team/install.mspx) per iniziare la corretta installazione seguendo scrupolosamente quanto indicato nei dettagli.
Date un occhio veloce anche al mio post di marzo sull'installazione single server: http://blogs.devleap.com/rob/archive/2006/03/29/7048.aspx
Al termine del setup ufficiale, da oggi, sarebbe bene applicare il Service Pack 1 a Visual Studio 2005, il Service Pack 1 di Team Foundation Server e se avete VS 2005 su Windows Vista il Service Pack 1 Beta di VS 2005 per Windows Vista.
Trovate tutti i file da scaricare a partire da questo link:
http://msdn.microsoft.com/vstudio/support/vs2005sp1/default.aspx
Buona installazione e auguri di buone feste
Oggi ho preso una decisione che non avevo mai preso in vita mia: fare l'upgrade di una macchina al nuovo sistema operativo. Lo so e lo dico da sempre, converrebbe sempre partire con un boot pulito. Avendo però ormai due portatili e usando uno solo per posta, office e test, ho preso questa storica decisione.
Perchè dico quando il software è scritto bene ? Perchè prima di fare l'upgrade ho scaricato l'apposito Upgrade Advisor (lo consiglia anche il setup per questo ribadisco software pensato bene) che dopo qualche minuto mi ha fatto un report spettacolare di cosa avrebbe funzionato, cosa no e sopratutto quali sarebbero state le performance e le features attivabili sulla mia macchina.
Penso all'utente meno esperto, quello che a casa vuole installare il tutto e ha uno strumento potente e gratuito per capire se conviene fare l'upgrade, se è possibile farlo, quali software (ad esempio Daemon Tools) occorre disinstallare prima di procedere e cosa controllare dopo l'upgrade.
La cosa "strana" è che anche Visual Studio 2005 non è detto che funzioni (quando nell'altro PC con Vista va benissimo) e SQL Server 2000 sembra che possa dare problemi.
Il Firewall di ISA 2004 è stato disinstallato da solo, mentre ho qualche problema con il pannello di controllo di ATI (la scheda funge, solo il pannellino da problemi). I driver USB della mia vecchia macchina fotografica Sony (del '99) potrebbero avere problemi e Windows Messenger 5.1 è stato fatto fuori (tanto non serve più da tempo).
Su VMWare Workstation ho qualche dubbio, ma cercherò un update sul loro sito, se vedo che da problemi.
Ho scoperto con piacere che il mio PC (un Dell 9100 del marzo 2004) dopo ben 3 anni è ancora un PC valido: certo non sarà il massimo, ma Aero è disponibile. Sono curioso di sapere il rating finale che controllerò appena finito l'upgrade (sperando che vada a buon fine :-)), ma queste cose sicuramente non vi interessano.
E' uscito venerdì scorso. Vi consiglio di leggere il readme per capire bene le compatibilità dei progetti con le varie versioni di SQL Server se non lavorate con la 2005.
Inoltre si possono scaricare le due process guidance per Agile e CMMI che contengono il nuovo ruolo di "Database professional". Questo il link http://msdn2.microsoft.com/en-us/teamsystem/aa718795.aspx