mercoledì 30 maggio 2007
Oggi sono polemico
... Perché i controlli inseriti in una Form C# hanno la proprietà Modifiers impostata su Private nel caso di C# e su Friend (= Internal) in Visual Basic .NET? Ad ogni modo, anche in VB .NET il valore di default di tale proprietà è Private: infatti, cliccando su di essa con il tasto destro del mouse e selezionando il comando Reset, essa viene reimpostata su Private.
Nel giugno del 1975 Alan Curtis Kay partecipò a Pisa alle celebrazioni per i venti anni dell’informatica italiana e presentò una relazione che apriva a una visione rivoluzionaria del computer, trasformato da strumento per applicazioni tecnico-scientifiche o commerciali a mezzo di facile uso anche per i bambini. A più di trenta anni di distanza, il professor Kay tornerà nella città della Torre per ricevere la laurea specialistica honoris causa in Informatica da parte dell’Università di Pisa.
Tra le altre cose, Alan Kay mostrerà in anteprima il laptop da $100 a cui sta collaborando con la fondazione no-profit OLPC (One Laptop Per Child, www.laptop.org). Il calendario dell'evento è disponibile qui.
Ho notato un comportamento strano di Visual Studio. Nei Form C#, di default i controlli hanno la proprietà Modifies impostata su Private, quindi non sono modificabili dai form ereditati. Infatti, creando un form ereditato, se si seleziona un controllo del form padre che ha modificatore Private, tutte le sue proprietà, nella relativa finestra, appaiono disabilitate. Come è lecito aspettarsi, se nel padre si modifica la proprietà Modifiers del controllo, impostandola su Protected, nel figlio diventa possibile accedere a tutte le proprietà dell'oggetto.
Proviamo però ad impostare Modifiers nel padre su Internal. Questo modificatore indica che l'oggetto è accessibile da ogni punto dell'assembly in cui è dichiarato, quindi in teoria anche dal form figlio. Ma non è così: se torniamo nel figlio, notiamo che adesso la finestra delle proprietà del controllo è disabilitata. Resta comunque possibile accedere all'oggetto da codice, quindi ad esempio modificarne le proprietà all'interno del costruttore del form.
A conferma ulteriore del problema, fate questa prova: inserite un controllo su un form e impostatene la proprietà Modifiers su Protected. Ora create un form ereditato e da quest'ultimo modificate alcune proprietà del controllo, ad esempio il testo o la dimensione. Tornate nel padre e cambiate Modifiers su Internal. Dopo la ricompilazione, noterete che l'oggetto nel form ereditato ha di nuovo l'aspetto con cui è definito nel padre. A questo punto Eseguite l'applicazione e caricate il form ereditato... Sorpresa: il controllo utilizza le proprietà che erano state impostate quando il suo modificatore era Protected.
In conclusione, il bug sembra limitato all'editor di Visual Studio.
E' stata rilasciata ieri la versione 3.08 beta di Paint.NET. Si tratta essenzialmente di una bug-fixing release:
- Fixed: Pasting an image from Office 2003 applications now works (e.g. Excel 2003 graphs).
- Fixed: Some dialogs were not indicating which command button was the default. These buttons now have a highlight to indicate which one will be activated if the user presses Enter or Space.
- Fixed: Some minor keyboard navigation issues with task dialogs
- Fixed: Performance issue with the File->Acquire submenu taking a long time to appear
- Fixed: Window activation issue when the Print wizard was finished / closed
- Fixed: Crash when there was 1 image open and the user pressed Ctrl+Q and then Ctrl+W
- Fixed: Minor performance issue if the user had 1 modified image open and then canceled the "Save changes?" dialog
- Fixed: Misbehaving filetype factory implementations (plugins) will no longer cause a crash
Il download è disponibile qui.
Dopo ben 8 versioni beta, è stata finalmente rilasciata la versione definitiva di WinRAR 3.70. Per il change log complessivo di questa versione, fare clic qui. Il download è disponibile su CNet per la versione inglese e qui per quella italiana.
Per chi ancora non lo sapesse, intorno alla metà di aprile i progetti che erano ospitati sul server TFS03 di CodePlex sono sono stati cancellati a causa dell'errore di un operatore. Nei giorni a seguire alcune cose sono state ripristinate, in particolare i Work Item. Nulla da fare, invece, per i check-in.
Il problema ha riguardato anche i miei progetti, in particolare Windows Disguiser e Windows Vista Controls for .NET 2.0. Mentre per il primo non ci sono stati problemi, poiché avevo una copia di backup in locale, dell'altro avevo cancellato tutto (lo so... Mea Maxima Culpa
). Fortunatamente avevo postato il codice più significativo sul mio blog, quindi con un po' di pazienza sono riuscito a ricostruire tutto. Il progetto è di nuovo disponibile al solito indirizzo: http://www.codeplex.com/vistacontrols.
Inoltre, qualche giorno fa un programmatore che ha deciso di partecipare al progetto. I lavori quindi procedono alacremente e a breve saranno aggiunti altri due nuovi controlli per Windows Vista... Per la serie A volte ritornano 