Confessions of a Dangerous Mind

Brain.FlushBuffer()
posts - 176, comments - 234, trackbacks - 93

Tech Tips

SQL Server: strano comportamento della clausola IN

Oggi mi è stato sottoposto un problema veramente curioso. Una collega mi ha fatto notare che durante un’operazione di manutenzione di un DB SQL Server 2008 R2 ha lanciato una query di DELETE che non si è comportata come previsto. In pratica, questa query stava cancellando arbitrariamente i dati dalla tabella senza rispettare la clausola WHERE che compariva regolarmente nel testo della query. Il comando dato al server è il seguente: DELETE FROM dbo.Utenti WHERE IDUtente IN (SELECT IDUtente FROM dbo.Operatori) Come mai il comportamento è strano? Perchè effettivamente in questa query c’è...

posted @ Wednesday, July 27, 2011 12:42 PM | Feedback (17) | Filed Under [ Tech Tips ]

Bad habits: non avere un (buon) processo di release e deployment

Alle volte resto sconcertato: la maggior parte delle persone pensa che l’unica cosa importante per fornire il classico “programmino” ad un cliente sia scriverlo. Non mi stancherò mai di ripeterlo: il nostro obiettivo in qualità di sviluppatori è CONSEGNARE il software e non solamente scriverlo. Ecco perchè il processo di release/deploy di un software è di estrema importanza per la qualità e la gestione del ciclo di vita del software stesso. Inoltre, non si deve mai dimenticare che il processo di rilascio di un software deve essere ripetibile, ovvero non devo ogni volta impazzire dietro a mille variabili per rilasciare la...

posted @ Sunday, October 4, 2009 6:48 PM | Feedback (0) | Filed Under [ Tech Tips ]

Nuova versione del tool VB6(2)XAML

Ho rilasciato una nuova versione del tool da me realizzato VB6(2)XAML. In questa nuova versione ho aggiunto/risolto: una lista dei controlli "sconosciuti" che vengono rilevati nella form durante il parsing; un filtro di output per la modifica del codice XAML generato dopo il parsing; risolto il baco della mancanza della proprietà "Caption" nei controlli VB6. Ora il parser non va più in errore. Per chi fosse interessato, può scaricare la nuova versione qui. Chiunque volesse è invitato ad inviarmi feedback. ENGLISH Version: I have released a new version of my VB6(2)XAML tool. In this new version I have added/fixed: ...

posted @ Monday, December 18, 2006 11:50 AM | Feedback (0) | Filed Under [ Tech Tips ]

VB6(2)XAML: il convertitore di Forms Visual Basic 6.0

Dopo averlo "coltivato" per le varie CTP di WINFX e .net Framework 3.0, ed aver cercato di realizzare qualcosa di veramente aperto e modificabile, ho deciso di rilasciare gratuitamente il convertitore VB6(2)XAML. Questo convertitore consente di convertire una Form di Visual Basic 6.0 in una Windows di Windows Presentation Foundation, utilizzando XAML come linguaggio di descrizione. Il progetto è MOLTO in beta, nel senso che non è completo e non è testato a fondo... Mi attendo da voi tutti suggerimenti ed idee su cosa implementare e su come farlo per massimizzare le potenzialità di questo strumento. Per il momento, il...

posted @ Sunday, November 26, 2006 6:49 PM | Feedback (8) | Filed Under [ Tech Tips ]

Microsoft Expression Web

Oggi mi sono imbattuto nella versione BETA 1 di Microsoft Expression Web (prima conosciuto come Microsoft Expression Web Designer). La potete trovare qui. Io l'ho scaricata ed installata... ma devo ancora apprezzarne le innovazioni...di primo acchito sembra un Frontpage con i controlli di ASP.net 2.0. A mio modesto avviso, uno strumento per la creazione di pagine web deve ASSOLUTAMENTE velocizzare il flusso di creazione delle pagine stesse, altrimenti non ha senso di esistere. Indagheremo...

posted @ Tuesday, October 17, 2006 3:39 PM | Feedback (2) | Filed Under [ Tech Tips ]

Utilizzare la referenza ad un SubReport in Reporting Services

Impiegando SQL Server 2005 reporting Services, mi è capitato di utilizzare l'oggetto Subreport. Una volta inserito all'interno del report, è possibile impostare la proprietà ReportName. Questa viene "suggerita" da una combo, e di primo acchito si potrebbe pensare che i subreport debbano trovarsi nella stessa cartella dove si trova il report "ospite". Questo non è vero, in quanto è possibile utilizzare reports presenti in altre cartelle, semplicemente utilizzando come ReportName il percorso completo che individua la posizione del subreport. Possiamo vedere il frammento XML che modella tale oggetto subreport: <Subreport Name="subreport1"><Left>0.25cm</Left><Top>1cm</Top><Width>7.5cm</Width><ReportName>/SimpleReport/MySubreport</ReportName><Height>3cm</Height></Subreport> In questo modo è possibile creare una "libreria" di subreport da...

posted @ Thursday, September 7, 2006 12:04 AM | Feedback (0) | Filed Under [ Tech Tips ]

EnableVisualStyles() e le icone dei controlli *View

Il supporto per i Temi di Windows è presente nelle applicazioni Windows Forms sin dalla versione 1.0 del Framework .net. Dalla versione 1.1, per evitare l'onere di aggiungere un file .manifest da distribuire con l'applicazione, è stato introdotto il metodo EnableVisualStyles() della classe Application. L'abilitazione dei temi, però, soffriva di un fastidioso bug, che consisteva nella "sparizione"  delle icone delle toolbar presenti nella nostra applicazione. Tale bug può essere risolto richiamando Application.DoEvents() appena dopo Application.EnableVisualStyles().Nel Framework 2.0 il bug è stato risolto, ma ieri sera ho comunque trovato dei problemi relativi ai controlli ListView e TreeView, ovvero le icone sparivano...

posted @ Wednesday, May 10, 2006 12:43 PM | Feedback (0) | Filed Under [ Tech Tips ]

ASP.net e il nuovo modello di compilazione

Oggi ho fatto intrapreso uno studio del modello di compilazione di ASP.net che ha dato risultati interessanti. Infatti sono riuscito ad utilizzare due linguaggi di programmazione, VB e C#, all'interno della stessa applicazione Web. Come si fa? Bene, è presto spiegato. Come prima cosa, dopo aver creato un progetto di sito web nel linguaggio preferito, aggiungo la directory App_Code. A questo punto, all'interno di App_code, creo due sottodirectory, VB e CS, che conterranno, rispettivamente, i file Visual Basic e C#. Subito dopo, aprendo il file web.config, aggiungo nella sezione <compilation> le due directory di compilazione:<compilation debug="false" strict="false" explicit="true">    <codeSubDirectories>        <add directoryName="VB"/>                  <add directoryName="CS"/>    </codeSubDirectories></compilation>Occhio: non è obbligatorio chiamare le...

posted @ Thursday, May 4, 2006 6:01 PM | Feedback (3) | Filed Under [ Tech Tips ]

Custom TreeView...con .net 2.0 è facile!

Lavorando su WinForms, ho cercato di creare una treeview che mi permettesse di disegnare a piacimento i nodi, le icone ed il testo. Con le "nuove" Windows Forms, è stato esposto l'evento DrawNode e DrawItem dei controlli TreeView e ListView, per cui è possibile gestire in modo autonomo il disegno dei nodi . Facendo l'overrides del metodo OnDrawNode, quindi, mi sono creato una treeview che imita il comportamento della toolbox di Visual Studio. Il codice per l'overrides è riportato qui sotto.    Protected Overrides Sub OnDrawNode(ByVal e As System.Windows.Forms.DrawTreeNodeEventArgs)        'Clear Background        e.Graphics.FillRectangle(SystemBrushes.Control, e.Bounds)        Dim _rect As Rectangle = Rectangle.Inflate(e.Bounds, -1, -1)        If e.Bounds.Width > 0 AndAlso e.Bounds.Height > 0 Then            If e.Node.Parent Is Nothing Then                Dim _boldFont As New Font(Me.Font, FontStyle.Bold)                If e.Node.IsSelected Then                    'Selected Root node                    Dim _backGroundBrush As New SolidBrush(Color.FromArgb(255, 225, 230, 232))                    e.Graphics.FillRectangle(_backGroundBrush, _rect)                    Dim _borderPen As Pen = New Pen(Color.FromArgb(255, 49, 106, 194))                    e.Graphics.DrawRectangle(_borderPen, _rect)                    _backGroundBrush.Dispose()                    _borderPen.Dispose()                Else                    'Standard Root Node                    Dim _gradientBrush As New Drawing2D.LinearGradientBrush(_rect, Color.FromArgb(255, 221, 220, 203), Color.FromArgb(255, 196, 193, 176), Drawing2D.LinearGradientMode.Vertical)                    e.Graphics.FillRectangle(_gradientBrush, _rect)                    _gradientBrush.Dispose()                End If                e.Graphics.DrawString(e.Node.Text, _boldFont, Brushes.Black, e.Bounds.X + e.Node.TreeView.Indent, e.Bounds.Y + 2)                If e.Node.IsExpanded Then                    e.Graphics.DrawImage(My.Resources.Minus, e.Bounds.X + 7, e.Bounds.Y + 4, 9, 9)                Else                    e.Graphics.DrawImage(My.Resources.Plus, e.Bounds.X + 7, e.Bounds.Y + 4, 9, 9)                End If            Else                If Not e.Node.TreeView.ImageList Is Nothing Then                    Dim _image As Image = e.Node.TreeView.ImageList.Images(e.Node.ImageIndex)                    If Not _image Is Nothing Then                        e.Graphics.DrawImage(_image, e.Bounds.X + 9, e.Bounds.Y + 1, 16, 16)                    End If                End If                e.Graphics.DrawString(e.Node.Text, Me.Font, Brushes.Black, e.Bounds.X + e.Node.TreeView.Indent + 7, e.Bounds.Y + 2)            End If        End If    End SubAttenzione!! Dovete creare una vostra treeview, ereditando dal controllo TreeView ed impostare il DrawMode a OwnerDrawAll. Considerando che è possibile far...

posted @ Friday, April 7, 2006 2:49 PM | Feedback (0) | Filed Under [ Tech Tips ]

Componente per il docking gratuito!

In questo periodo sto lavorando su un progetto che necessita di un'applicazione WinForm, la quale funga da Tool di configurazione. Cercando per la rete un componente che permetta il docking delle finestre, in stile Visual Studio, mi sono imbattuto in vari componenti, peraltro tutti molto ben realizzati, ma ahimè, tutti a pagamento. Poi ho trovato la DockPanel Suite di Weifen Luo... che dire?  Il componente è realizzato bene, c'è il codice sorgente, e fa esattamente ciò che promette, con in più anche gli help per il docking, in stile VS2005. Complimenti a Weifen!!!Lo potete trovare qui.

posted @ Friday, April 7, 2006 9:52 AM | Feedback (4) | Filed Under [ Tech Tips ]

Full Tech Tips Archive

Powered by:
Powered By Subtext Powered By ASP.NET