—
Giorgio Borelli
Il controllo RadioButtoList di ASP.NET rientra nella famiglia dei WebServer Control List, ossia di quei controlli che forniscono informazioni a forma di lista. I list control sono tutti accomunati dal fatto che posseggono una proprietà Items per la gestione dei singoli elementi della lista, che nel caso del RadioButtoList si traduce in una lista di pulsanti Radio che consentono di specificare una sola scelta tra quelle possibili.
L'uso del RadioButtoList con l'attributo runat="server" quindi gestito lato server dal .NET Framework facilita l'uso di questo controllo, che in HTML classico deve essere implementato da più button Radio gestiti poi via Javascript, inoltre il RadioButtonList così come tutti i list control si adattano molto bene a gestire automaticamente la rappresentazione di dati derivanti da una qualsiasi sorgente dati (database, xml, ecc...) con un semplice databinding.
L'uso dei RadioButtonList è frequente nelle pagine web, per sondaggi, moduli e scelte di selezione in genere, spesso a questo controllo è necessario associare un'azione al cambio della selezione di un radio button. Questo comportamento viene implementato a mezzo dell'evento SelectIndexChanged del RadioButtonList. Semplicemente all'interno dell'evento SelectIndexChanged andiamo ad inserire il codice lato server per il comportamento che vogliamo generare allo scatenarsi di tale evento; eppure, sebbene possa sembrar un'azione banale l'evento SelectIndexChanged del RadioButtonList una volta implementato non sembra funzionare correttamente, e quasi come se non ci fosse, cosa succede? Come possiamo risolvere?
Prosegue...
—
Giorgio Borelli
Windows PowerShell è una shell creata da Microsoft per gestire i sistemi Windows completamente da riga di comando, molto più potente del classico prompt dei comandi basato sulla vecchia shell MS-DOS.
Windows PowerShell, il cui nome in codice è Monad, è una shell dalla quale è possibile eseguire script orientati agli ogetti, basata sul .NET Framework (dalla versione 2.0), ed è supportata dai Sistemi Operativi Windows a partire da Windows XP in poi. Per XP e Vista viene rilasciato come aggiornamento, mentre in Windows 7 è preinstallato di default con il SO. Molto utile per gli amministratori di sistema ed i professionisti IT, Windows PowerShell risiede anche nei sistemi server, come Windows Server 2003 e Windows Server 2008, tramite i suoi comandi, detti cmdlet, non solo è possibile eseguire tutte le funzioni svolte dall'interfaccie grafiche di windows (GUI), ma si possono scrivere script (basati sui linguaggi ad oggetti) che consentono di personalizzare ed automatizzare l'uso di Windows.
Dopo questa premessa, è chiaro che Windows PowerShell, rappresenta uno strumento avanzato, utile per lo più ai sistemisti windows che ai normali utenti fruitori dei servizi di uso quotidiano del computer; pertanto questo risulta praticamente inutile a chi non sà cosa farne o addirittura non sappia nemmeno cosa sia.
Se non ne facciamo uso, possiamo allora disinstallare windows powershell dal nostro sistema, ma questo non presenta alcuna voce di "uninstall" nè tantomeno compare tra l'elenco dei programmi installati richiamabile dal pannello di controllo, come fare allora per disinstallare Windows Powershell? La soluzione è pressochè banale, andiamo a vedere come fare.
Prosegue...
—
Giorgio Borelli

Quando si realizza un software, il programmatore detta le istruzioni al computer tramite la scrittura di un codice sorgente in un determinato linguaggio di programmazione. Il codice sorgente però non è direttamente eseguibile dalla CPU (Central Processing Unit), è necessario “tradurlo” in linguaggio macchina, ossia un file binario contenente microistruzioni gestibili dal processore. Inoltre diverse architetture di processori prevedono linguaggi macchina differenti.
La traduzione viene compiuta in maniera del tutto automatica, con opportuni programmi detti, Compilatori ed Interpreti, ognuno con le proprie caratteristiche, vantaggi e svantaggi. A seconda di come il linguaggio di programmazione viene tradotto nel linguaggio macchina, si parla dunque di linguaggi compilati e linguaggi interpretati.
Andiamo quindi a scoprire le principali differenze tra linguaggi compilati ed interpretati, quali processi seguono per generare il codice macchina sino ad arrivare alla creazione dell'eseguibile.
Prosegue...
—
Giorgio Borelli
Non sono solito recensire le ultime news dal mondo dell'informatica, ma questa, anche se sono già in ritardo, merita una menzione speciale, anche perchè ci riguarda da vicino.
Sebbene con un piccolo spostamento rispetto alla data ufficiale (22 Marzo), il 12 Aprile è stato rilasciato ufficialmente il nuovissimo Visual Studio 2010, stiamo ovviamente parlando dell'ultimissimo IDE (Integrated development environment) di casa Microsoft, il quale porta in dote niente po po di meno che l'ultima versione della piattaforma di sviluppo preferita, ovvero il framework.NET 4.0.
Giustamente la curiosità, le pretese, e le aspettative su questo nuovo ambiente di lavoro sono tante, andiamo a fare pertanto una breve panoramica sulle novità principali introdotte con il rilascio di Visual Studio 2010 e del .NET framework 4.0.
Prosegue...
—
Giorgio Borelli
Il Common Language Runtime (CLR) del .NET framework è in grado di eseguire applicazioni scritte in uno qualsiasi dei linguaggi supportati dalla piattaforma, quali C# o VB.NET, anche misti fra loro, questo è possibile grazie al Common Type System (CTS), ovvero l'insieme comune e condiviso dei tipi all'interno del framework.
In altre parole, ad esempio, il tipo int di C# ed integer di VB, durante l'esecuzione non sono altro che il tipo comune System.Int32 del framework.NET, tutto questo sempre ammesso che i linguaggi utilizzati soddisfino determinate specifiche (CLS - Common Language Specification) che li rendano compatibili con quelli comuni del framework.
Fatta questa premessa dovuta per avere un quadro più completo dell'argomento, diciamo che tra i tipi comuni del CLR, vi è un tipo generico da cui derivano tutti gli altri, il tipo System.Object, infatti si suole dire che nel .NET framework qualsiasi cosa è un'oggetto, sia questo un tipo intero, booleano o una classe stessa. La possibilità di avere un tipo generico che rappresenti qualsiasi dato all'interno del nostro programma ci consente di usarlo per potergli associare un qualsivoglia oggetto, sia esso un Tipo Valore o Tipo di Riferimento. Ad un primo impatto questo approccio potrebbe risultare molto comodo, uso solo tipi Object, e l'applicazione gira ugualmente, fregandomene della definizione dei tipi e della loro opportuna gestione.
Ma siamo certi che questo approccio sia corretto, purtroppo no, usare un tipo Object generico porta ad un decadimento delle prestazioni dell'applicazione, poichè avvengono le operazioni di Boxing e Unboxing per la conversione dà Tipi Valore a Tipi di Riferimento e viceversa, andiamo quindi a scoprirne di più su cosa avviene nelle operazioni di Boxing e Unboxing.
Prosegue...
—
Giorgio Borelli
I linguaggi supportati dal .NET framework quali C# e VB si dice che sono strongly-typed, ossia fortemente tipizzati, in parole povere ogni variabile od oggetto dichiarato all'interno del programma deve definire un tipo e lo deve rispettare (pena un errore di compilazione).
Pertanto un tipo descrive le caratteristiche dell'informazione che esso dovrà andare a rappresentare all'interno del programma a mezzo di una variabile, sia esso un numero, una sequenza di caratteri od oggetti più complessi come istanze di classi, in ogni caso ogni elemento all'interno di un programma sviluppato col .NET framework deve essere dichiarato a mezzo di un tipo e ne deve rispettare le funzionalità durante l'uso.
I tipi non si differenziano però solo per il dato che rappresentano, ma anche per la gestione che di questi se ne fà in memoria. All'interno del .NET framework, o meglio del CLR (Common Language Runtime) sono definite due categorie di tipi, i Tipi di Valore (Value Types) e Tipi di Riferimento (Value References), l'una e l'altra categoria presenta le proprie caratteristiche e soprattutto ha un diverso metodo di allocazione della memoria, per chi vuole iniziare a programmare in .NET non può prescindere dalla conoscenza di queste nozioni di base relative ai tipi per valore e per riferimento, andiamo a vedere pertanto le principali caratteristiche e differenze.
Prosegue...
—
Giorgio Borelli
Nel .net framework non poteva di certo mancare una classe per gestire i numeri random (casuali), questa è la classe System.Random, la quale ci permette di generare numeri casuali interi, double o riempire array di byte. Possiamo specificare anche un valore massimo, o un range di valori nel quale il nostro numero casuale deve ricadere.
Tramite la classe Random generare numeri casuali in C# è davvero un gioco da ragazzi, dobbiamo porre però attenzione a questo argomento, poichè nasconde un'insidia, infatti è bene sapere che la classe Random permette di generare numeri pseudo-casuali, i numeri generati non sono completamente casuali, poiché sono generati da un'algoritmo matematico (algoritmo sottrattivo) che per sua natura stessa non può essere casuale.
La genereazione di un numero casuale avviene partendo da un valore d'inizializzazione, detto seme, scegliendo sempre lo stesso seme si otterrà sempre la stessa sequenza di numeri pseudo-casuali, proprio perchè generati da un'algoritmo matematico. Per ottenere dei numeri veramente casuali è necessario variare il valore del seme in base ad un qualche fattore, molto utile potrebbe essere il fattore tempo, affidandoci magari al clock di sistema.
Andiamo a vedere come usare la classe Random per generare numeri casuali in C#, facendo bene distinzione tra quelli pseudo-casuali e quelli casuali puri.
Prosegue...