aprile 2005 Blog Posts

Visual Studio 2005 - Installato la beta 2 di Aprile

Finalmente sono riuscito a portare a termine lo scaricamento e l'installazione di Visual Studio 2005 Beta 2.   Non si tratta della pre-beta di febbraio, questa è la Beta 2 "Ufficiale".   Visto che è la quarta volta che scarico delle build di VS 2005 mi piacerebbe sapere se ci saranno una o più "Release candidate"   Scottato da una beta precedente che mi aveva dato dei problemi con Sql Server 2000 non ho installato nulla di Sql Server 2005, mi riservo eventualmente di attivarlo su un altro server predisposto allo scopo.   Una sola considerazione, tendenzialmente l'installer tenta di propinarti tutto quanto con annessi e connessi, una cosa che non capisco...

DataGrid - Rendere editabile la riga in base al valore della DataGridTextBoxColumn

Questa piccola subclassing della DataGridTextBoxColumn consente di rendere editabile dinamicamente la riga della DataGrid.   La prova è stata fatta con il classico database "Northwind" su SQL Server.   Creare un nuovo form ed inserire una DataGrid (dataGrid1).   Creare inoltre sulla form un evento load e/o richiamare il seguente:   C#   private void InizializzaDataGrid() {    SqlConnection conn;    string strConn;    SqlDataAdapter da;    ds = new DataSet("Prodotto");    strConn = "Server = (local);Database = NorthWind;Integrated Security = SSPI;";    conn = new SqlConnection(strConn);    da = new SqlDataAdapter("SELECT * FROM Products", conn);    da.Fill(ds, "Prodotti");    DataGridTableStyle ts = new DataGridTableStyle();    ts.MappingName = ds.Tables["Prodotti"].TableName;    DataGridBoolColumn colEditable = new DataGridBoolColumn();    colEditable.MappingName = "Discontinued";    colEditable.HeaderText = "Editable";    colEditable.Width...

Cups e Samba impostazioni per far funzionare la stampante da Windows

Ogni volta che aggiorno uno dei due mi capita sempre di dover litigare con i files di configurazione per poter ricominciare a stampare da Windows.   Lo fisso qui così magari può essere utile a qualcuno:   Editato il file /etc/samba/smb.conf # vi /etc/samba/smb.conf   [printers]   comment = All Printers   path = /var/spool/samba   browseable = no# Set public = yes to allow user 'guest account' to print   public = yes   guest ok = no   writable = no   printable = yes # vecchie impostazioni con formato LIFO#   print command = lpr -r -P %p -o raw %s ; rm %s #using client side printers drivers#print command = lpr-cups -P...

E' un bug o una feature?

"A piece of the program that does not work as intended. Note that if a piece of the program is not working the way you would like, that does not make it a bug. Only if it does not work as it was intended to work by [omissis], it is a bug."   La lettura di questo brano di un manuale che dà la propria definizione di bug mi porta a dire:   Non tutti i bugs nascono per nuocere, o per lo meno anche i più nocivi determinano che "positivamente" il software viene riconsiderato e rivalutato, se non ci fossero i bugs non...

Risalire dalla Version alla data di build dell'assembly usando la Reflection

Questo piccolo esempio consente di risalire dal numero di build della Version alla data di compilazione dell'assembly. La Build dell'assembly contiene il numero dei giorni intercorsi dal primo gennaio 2000. La Revision contiene il numero dei "mezzi" secondi.   C# private DateTime GetDataVersione() {   System.Version = VersioneCorrente  System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;   DateTime DataVersione = new DateTime(2000, 1, 1);   DataVersione = DataVersione.AddDays(VersioneCorrente.Build);   DataVersione = DataVersione.AddSeconds(VersioneCorrente.Revision * 2);   return DataVersione; }   VB.NET Private Function GetDataVersione() As DateTime   Dim VersioneCorrente As System.Version = System.Reflection.Assembly.GetExecutingAssembly.GetName.Version   Dim DataVersione As DateTime = New DateTime(2000, 1, 1)   DataVersione = DataVersione.AddDays(VersioneCorrente.Build)   DataVersione = DataVersione.AddSeconds(VersioneCorrente.Revision * 2)   Return DataVersione End Function  

Intercettare il resize delle colonne del DataGrid

Un piccolo esempio su come intercettare il ridimensionamento delle colonne di un controllo DataGrid.   Per la prova è necessario inserire una StatusBar (statusBar1) ed una DataGrid (dataGrid1), sulla DataGrid va inserito un evento "MouseMove".   Nota: per la prova ho utilizzato SharpDevelop che notoriamente NON ama il carattere di sottolineatura e diversamente da Visual Studio non lo mette nel metodo creato per la gestione dell'evento.   Mi sono servito della classe DataGrid.HitTestInfo che fornisce ulteriori informazioni relativamente al controllo DataGrid.   C#   void DataGrid1MouseMove(object sender,   System.Windows.Forms.MouseEventArgs e) {   DataGrid.HitTestInfo htInfo;   htInfo = dataGrid1.HitTest(e.X, e.Y);   if (htInfo.Type == DataGrid.HitTestType.ColumnResize)     this.statusBar1.Text = String.Format("Colonna Ridimensionata {0}", htInfo.Column); }   VB.NET   Sub DataGrid1MouseMove(ByVal sender As Object, ByVal e...

Tutto quello che avreste voluto sapere sui manuali ma che nessuno ha il coraggio di dirvi

Talvolta passo in libreria a spulciare le nuove pubblicazioni (settore informatico perché altrimenti un qualsiasi altro commento non sarebbe esaustivo).   Alla libreria dove vado ormai mi conoscono e mi sopportano con pazienza quando chiedo libri di autori o con titoli che immancabilmente sbaglio perché magari mi sono dimenticato di annoterli sull'Ipaq.   Riguardo al repertorio di libri presente nella libreria ho trovato alcune cose che mi lasciano personalmente perplesso.   C'è una certa omologazione nei titoli che mi sconcerta, sono interessato al C# e a VB.NET e trovo che quasi tutti gli editori / autori scelgono immancabilmente di titolare in modo molto omologato i loro libri, avrei...

Mantenere il binding sui TabControls

Avevo una form con alcune TabPages dove avevo distribuito i campi della mia tabella ciascuno dei quali era naturalmente "bindato" con la base dati. Mi sono accorto che se variavo/inserivo dei dati e poi passavo da un tab all'altro il valore dei controlli veniva riscritto (update) o azzerato (insert). Ho dovuto inserire questa routine che risolve il problema. C#  public void SyncroniseBindingContexts(Control con)   {             // if HasChildren è una proprietà che per gli oggetti contenitore indica se ci sono dei controlli contenuti     if (con.HasChildren)    {    foreach (Control subcon in con.Controls)     {     if (subcon is Panel || subcon is TabControl || subcon is TabPage      || subcon is GroupBox || subcon...

Migrazione da Fedora Core 2 a Fedora Core 3 Tramite apt-get

Ho realizzato la migrazione del mio Linux da FC2 a FC3 utilizzando apt-get Per portare a termine il lavoro sono partito con il modificare il file /etc/apt/sources.list impostando su Core 3 dove prima era definito Core 2. Ho dato i comandi: # apt-get update per far aggiornare la lista dei repositories # apt-get dist-upgrade Ha scaricato la release "FC3" di tutti i pacchetti installati Ho fatto copia / incolla dei messaggi (perché non si sa mai!) Ho rimosso con: # rpm -e <pacchetto> alcuni pacchetti che mi segnalava come problematici per errore nelle dipendenze per librerie mancanti o non aggiornate (synaptic è stato uno di questi). Naturalmente mi sono...

Tra Yumi e Synaptic scelgo definitivamente il secondo

Anche se l'ultima riorganizzazione del menù l'ha relegato tra gli "Oggetti Smarriti" e cioè insieme ad altri moduli senza un vero padre difensore ho deciso definitivamente di utilizzare solamente Synaptic. Entrambi è notorio sono dei tool dedicati all'aggiornamento del sistema, ciascuno pescando i dati dai propri repositories. Quello che mi ha fatto scartare il primo è la sua estrema lentezza rispetto al secondo. Trovo yum una scopiazzatura di apt-get e la sua interfaccia grafica "yumi" propriamente ridicola. E andata in crash 2 volte durante la scelta dei pacchetti da aggiornare e ha passato la maggior parte del tempo facendo periodicamente la ricerca e lo scarico...

Archivio sportelli bancari codici Abi Cab d'Italia disponibile

E' disponibile sull'area download http://www.visual-basic.it/scarica.asp?ID=839  un file aggiornato al 26/03/2005 contenente i dati degli sportelli bancari italiani.A differenza degli altri contiene anche i codici non più attivi da settembre 2004 in avanti. E' possibile riconoscere i records "vecchi" in quanto riportano nel campo  "Aggiornamento"  una data diversa da quella di aggiornamento. E' ovvio che la vecchia codifica non deve essere più utilizzata,  il suo scopo è quello di mantenere l'integrità referenziale e fornire un supporto per l'individuazione degli sportelli chiusi o, come avviene più spesso, con il codice abi riferito ad altro istituto.

Nuova preview di Avalon e Indigo disponibile per il download

Avalon and Indigo Community Technology Previews Microsoft has provided a version of the March 2005 Avalon and Indigo Community Technology Previews for the general public (3/29/2005).  

Valore di default dei campi nei dataset

Mi è venuto l'impulso di fare dei test sulla gestione della proprietà DefaultValue dell'oggetto DataColumn appatenente ai DataSet.Avendo a disposizione diversi database e driver ho voluto provare la stessa cosa con- Postgresql- Sql Server- AccessQuando il DataAdapter riempie il DataSet con FillSchema e/o con il comando Fill alcune proprietà presenti nei campi del database NON sono riversate nei dataset.DefaultValue è appunto una proprietà che non è ricopiata dalla fonte dati.Tale fatto, per me disdicevole, lo si può anche intuire da come il CommandBuilder genera i comandi sul DataAdapter: using Npgsql;using System.Data;using System.Data.OleDb;using System.Data.SqlClient; private DataSet ds;private string[] cnText = new string[3];private DataSet ds;private string...

Copyright © Luciano Bastianello

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski