Sembra interessante questo nuovo programma Microsoft:
PackageThis! allows you to choose documentation sets from the MSDN Library to save as HXS or CHM format files. Simply select nodes in the MSDN Library Tree View to package as your own local mini-library, or to build into your own library.
Il programma è scritto in C# ed è stato pubblicato su CodePlex.
Il .NET Micro Framework è stato rilasciato già da qualche mese, tuttavia in giro non si trovano molte informazioni ed esempi al riguardo. Questo post di Dario Airlodi fornisce una breve introduzione al framework ed alla sua architettura, e presenta una serie di link di approfondimento.
Spell checker works in Source view, it is able to extract text from markup elements and use Office 2003 spell checker to check the text. Spell checker is able to handle entities to some extent (they are considered whitespace for now). It is also able to spell check values of attributes that typically contain human readable text.
Tutti i dettagli e il link per il download sono disponibili in questo post.
Il mio precedente post dedicato all'argomento ha suscitato un piccolo dibattito, cosa che mi fa molto piacere
. Come promesso, oggi parlerò di LINQ to SQL Desisgner, che consente di creare il DAL utilizzato da LINQ in maniera completamente visuale. Per accedere a questo strumento, bisogna aggiungere al progetto un elemento di tipo LINQ to SQL File. Supponiamo di chiamarlo Database. Nel progetto viene inserito un file di nome Database.dbml con due file collegati, ovvero Database.dbml.diagram e Database.dbml.cs (nel caso si stia utilizzando C#). In realtà ci si può dimenticare dell'esistenza di questi file, perché da ora in poi il DAL sarà creato tramite Drag & Drop, utilizzando la finestra delle Proprietà per modificarne le impostazioni.
E' sufficiente selezionare un database nel Server Explorer, quindi trascinare le tabelle desiderate all'interno del designer. Se esistono relazioni di chiave esterna tra di esse, verranno automaticamente aggiunte al diagramma. Ad esempio, consideriamo due tabelle di nome Users e Cities, legate dalla chiave CityID; ecco come appaiono dopo averle inserite nel LINQ to SQL Designer:
Dietro le quinte viene generato il codice che consente di accedere al database utilizzando LINQ. Il layer prodotto si occupa anche di effettuare automaticamente le eventuali giunzioni tra le tabelle, cosicché da un oggetto di tipo User è possibile accedere ai valori del record City corrispondente, senza dover indicare il join in modo esplicito. Come sempre un esempio vale più di mille parole:
1 using (DatabaseDataContext db = new DatabaseDataContext())
2 {
3 var query = from user in db.Users orderby user.UserName select user;
4 foreach (var record in query)
5 MessageBox.Show(record.UserName + " - " + record.City.CityName);
6 }
La query alla riga 3 recupera tutti gli utenti, ordinandoli per nome. Il ciclo successivo li visualizza con la relativa città. La proprietà City dell'oggetto record viene riempita automaticamente, in base alla relazione esistente tra le due tabelle (User.CityID = City.CityID).