Negli ultimi giorni ho utilizzato il wizard per la creazione di un ObjectDataSource. Nella prima schermata, dove vengono mostrati gli oggetti che si possono utilizzare come sorgente, c'è una casella di nome Show only data components, di cui ignoravo il significato. Questa mattina, mentre cercavo tutt'altro, ho capito a cosa serve: si tratta di una funzione che ha che fare con gli attributi DataObject, DataObjectMethod e DataObjectField. Questi sono una sorta di "aiuti" per il wizard: grazie ad essi, infatti, la procedura guidata è in grado di proporre automaticamente le scelte più corrette per la definizione dell'ObjectDataSource.
Mi spiego meglio. Mettendo il segno di spunta su Show only data components, nella casella Choose your bunisess object vengono mostrate solo le classi decorate con l'attributo DataObjectAttribute. Poi, nella schermata successiva, in cui si selezionano i metodi da eseguire per le operazioni di SELECT, UPDATE, INSERT e DELETE, ogni ComboBox propone di default il metodo della classe decorato con il DataObjectMethodAttribute corrispondente. Ad esempio:
[DataObjectMethod(DataObjectMethodType.Update)]
public static void UpdateMethod(/*parametri*/)
{
throw new NotImplementedException();
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public static void InsertMethod(/*parametri*/)
{
throw new NotImplementedException();
}
Con queste dichiarazioni, il wizard propone rispettivamente, per le operazioni di UPDATE e INSERT, i metodi UpdateMethod e InsertMethod. Infine, l'attributo DataObjectField consente di specificare se il campo della sorgente dati corrispondente alla proprietà decorata con tale attributo è una chiave primaria, è un campo identità e ammette valori null. Queste informazioni sono utilizzate per impostare alcune proprietà del controllo collegato con l'ObjectDataSource in questione.
Come avevo anticipato, la parta relativa al remoting nel Self-Paced Training Kit per l'esame 70-529 è piena di errori e imprecisioni. A pagina 204 è presentato un esempio di configurazione di un client, tramite file di configurazione, per l'utilizzo di un oggetto remoting di tipo Client-Activated. La sintassi mostrata, tuttavia, è sbagliata. Il tag <client>, infatti, deve contenere anche l'url da cui prelevare l'oggetto, come chiaramente spiegato qui: The <client> element must have a url attribute specified if there is an <activated> element specified, or an exception will be thrown.
Oggi è stata rilasciata la versione 2.7.0 del Krypton Toolkit, un insieme di controlli per la realizzazione di interfacce grafice in stile Office 2007. In questa release sono stati aggiunti numerosi nuovi controlli:
- KryptonTextBox
- KryptonMaskedTextBox
- KryptonRichTextBox
- KryptonComboBox
- KryptonContextMenu
- Ribbon Application Menu
- Navigator/Ribbon use of KryptonContextMenu
Per il download, fare clic qui.
IronPython Studio is a free full IDE (Integrated Development Environment) for the Python programming language. It is based on the existing IronPython example that is included in the VS SDK.
IronPython Studio is based on the Visual Studio 2008 Shell runtime (royalty free) and can be installed without requiring any version of Visual Studio.
Il programma, di cui è stata da poco rilasciata la CTP di Dicembre, è disponibile su CodePlex. Oltre che per il suo valore intrinseco, secondo me è interessante anche perché mostra cosa si può davvero fare con il nuovo Visual Studio 2008 Shell (basta dare un'occhiata agli screenshot pubblicati nella Home Page per farsene un'idea).