domenica 21 gennaio 2007
Sapphire è il nome in codice del nuovo Web Form Designer che sarà incluso in Visual Studio Orcas. In questo post è possibile trovare numerose informazioni a riguardo e alcuni screenshot che mostrano Sapphire in azione (clicca sull'immagine per ingrandirla):
Alcune delle principali caratteristiche del nuovo strumento sono:
1. New designer based on the same technology as Expression Web.
2. Extensive CSS tools.
3. Support for nested master pages.
4. Split view.
5. Ability to access all tools that ASP.NET controls provide in Source view.
6. Intellisense and validation in <style> blocks.
7. Support for master pages in web.config.
8. Significantly improved performance of view switching.
9. Unified undo/redo stack that remembers operation is all views.
Sapphire sarà incluso nella CTP di Visual Studio Orcas di Febbraio.
DocProject è un add-in che rende disponibili le funzionalità di Sandcastle all'interno dell'editor di Visual Studio 2005. La Release Candidate rilasciata ieri supporta progetti C#, Visual Basic .NET e ASP .NET.
Come riportato nelle linee guida di Microsoft (di cui ho parlato in questo post), Windows Vista utilizza un nuovo font per le interfacce grafiche, il Segoe UI. Di consenguenza, è auspicabile che un'applicazione, a seconda del sistema operativo su cui viene eseguita, utilizzi il carattere predefinito corrispondente. I form creati con Visual Studio 2005 usano di default il MS Sans Serif, che è lo standard su Windows XP. Il seguente stralcio di codice mostra come modificare il carattere di tutti i controlli presenti in un form qualora il sistema operativo sia Windows Vista:
bool isWindowsVista = (Environment.OSVersion.Version.Major > 5);
if (isWindowsVista)
{
foreach (Control ctrl in this.Controls)
ctrl.Font = new Font("Segoe UI", 9.0f);
}
Questo codice può essere inserito nel costruttore del Form, subito dopo l'invocazione del metodo InitializeComponent. Per avere una soluzione sempre disponibile, si può modificare il template per l'oggetto Windows Form, in modo che il codice sopra riportato venga automanticamente inserito in tutti gli oggetti creati.
Ieri ho parlato del nuovo Framework che consente di sviluppare gadget per Windows SideShow utilizzando NET 2.0. Per completare il discorso, segnalo anche l'articolo Get Started Writing Gadgets For Windows SideShow Devices apparso su MSDN Magazine di Gennaio.
Questo post spiega come realizzare un'applicazione .NET per Windows Vista che all'avvio richiede i privilegi di amministratore. La procedura da seguire è abbastanza semplice, ora vorrei capire come eliminare il messaggio An unidentified program wants to access your computer. Se qualcuno ha già affrontato il problema mi faccia sapere 
Windows SideShow is a new technology that lets Windows Vista drive auxiliary, small displays of various form-factors where ready-access to bite-size bits of information could be imagined. These include displays embedded on the outside of a laptop lid or on a detachable device, enabling access to information and media even when the main system is in a standby mode. Data can also be displayed on cell phones and other network-connected devices via Bluetooth and other connectivity options. [da Wikipedia]
Da qualche giorno è stato reso disponibile il Windows SideShow .NET Framework Components 1.0 (Beta), che consente di creare ed eseguire gadget per Windows SideShow utilizzando il .NET Framework 2.0. In questa pagina, inoltre, è possibile trovare un video introduttivo a Windows SideShow, oltre ad una serie di link di approfondimento.
Recentemente su MSDN è stata pubblicata una serie di tutorial sull'utilizzo di SQL Server 2005 Compact Edition:
I primi tre link contengono esempi di codice in C#, per avere accesso alle versioni Visual Basic .NET fare riferimento a questa pagina.
Ogni volta che reinstallo Visual Studio me ne dimentico... Se si vuole visualizzare automaticamente la finestra Output quando si avvia la compilazione di un progetto, bisogna spuntare l'opzione evidenzata:
Nota: lo screenshot è stato preso utilizzando lo Snipping Tool di Windows Vista 
Se si devono inviare array di byte da un client ad un server e viceversa, attraverso una connessione TCP, comprimendo i dati prima dell'invio si può ridurre il traffico di rete. A questo scopo, è possibile utilizzare una delle classi che fa parte della libreria SharpZipLib:
public byte[] Compress(byte[] buffer)
{
using (MemoryStream ms = new MemoryStream())
{
int size = buffer.Length;
using (BinaryWriter bw = new BinaryWriter(ms))
{
//Scrive la lunghezza originale dell'array.
bw.Write(size);
using (BZip2OutputStream zip = new BZip2OutputStream(ms))
zip.Write(buffer, 0, size);
}
return ms.ToArray();
}
}
public byte[] Decompress(byte[] buffer)
{
using (MemoryStream ms = new MemoryStream(buffer))
{
using (BinaryReader br = new BinaryReader(ms))
{
//Legge la lunghezza dell'array di byte decompresso.
int size = br.ReadInt32();
using (BZip2InputStream unzip = new BZip2InputStream(ms))
{
byte[] result = new byte[size];
unzip.Read(result, 0, size);
return result;
}
}
}
}
Tutto il codice ruota intorno agli oggetti BZip2OutputStream e BZip2InputStream, utilizzati rispettivamente per comprimere e decomprimere gli array. Questo esempio, inoltre, funziona anche se il client oppure il server sono realizzati con il .NET Compact Framework, che è pienamente supportato dalla libreria SharpZipLib.