Ecco quale doveva essere in origine la schermata di ringraziamento che appare al termine dell'installazione di Windows Vista:
Fonte: PuntoDiVista
Da questo indirizzo è possibile scaricare un nuovo plug-in che consente di inserire emoticon nei post scritti con Windows Live Writer. L'aspetto carino di questo plug-in è che, oltre a supportare gli emoticon di MSN e di Yahoo, consente anche di inserire nella raccolta le proprie immagini preferiti semplicemente modificando un file di testo. Inutile dire da dove proviene l'emoticon che chiude questo post... 
Ormai sto iniziando a perdere il conto... Ieri è stata rilasciata la beta 8 di WinRAR 3.70:
- WinRAR shell extension did not work in Windows NT 4.0;
- when unpacking ZIP archives in command line mode WinRAR returned "write error" (numeric 5) code in situations when it should return "create error" (numeric 9).
Riusciremo mai a vedere la versione finale?
L'SDK per Windows Home Server è ancora in versione preliminare, quindi il materiale a disposizione è molto poco (si limita al sito MSDN e al forum Microsoft) e gli esempi di codice sono praticamente inesistenti. Ho voluto comunque provare a realizzare un add-in che aggiunge un nuovo tab nella Windows Home Server Console:
Realizzare un add-in per la Console è abbastanza semplice, ma è importante rispettare le convenzioni sui nomi dei namespace, delle classi e degli assembly, altrimenti l'add-in non viene caricato:
- Il namespace dell'assembly deve essere Microsoft.HomeServer.HomeServerConsoleTab.NomePersonale (dove al posto di NomePersonale si può mettere il nome della propria estensione);
- L'add-in deve essere contenuto in una classe di nome HomeServerTabExtender;
- Il costruttore delle classe deve avere la seguente firma:
public HomeServerTabExtender(int width, int height, IConsoleServices consoleServices)
- Il nome della DLL deve coincidere con la parte finale del nome del namespace, ovvero deve essere HomeServerConsoleTab.NomePersonale.dll.
Seguendo questi accorgimenti, insieme alle altre linee guida di Microsoft (in particolare quelle riportate qui e qui), si arriva a produrre uno scheletro di add-in che dovrebbe apparire simile al seguente:
using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.HomeServer.Extensibility;
namespace Microsoft.HomeServer.HomeServerConsoleTab.TestTab
{
public class HomeServerTabExtender : IConsoleTab
{
private int width;
private int height;
private IConsoleServices services;
private Control tabControl;
public HomeServerTabExtender(int width, int height, IConsoleServices consoleServices)
{
this.width = width;
this.height = height;
this.services = consoleServices;
tabControl = new Panel();
tabControl.Width = width;
tabControl.Height = height;
}
public string TabText
{
get { return "Tab Name"; }
}
public Bitmap TabImage
{
get { return Properties.Resources.TabIcon.ToBitmap(); }
}
public Control TabControl
{
get { return tabControl; }
}
public bool GetHelp()
{
return false;
}
public Guid SettingsGuid
{
get { return Guid.Empty; }
}
}
}
Nel prossimo post dedicato all'argomento parlerò di come si effettua il deploy di questo add-in.