—
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
Il Server Web di casa Microsoft, Internet Information Server (IIS) soddisfa le richieste di pagine e risorse da parte dei browser (i client), e per farlo correttamente necessità di essere opportunamente configurato, in particolare per le applicazioni web sviluppate con tecnologia ASP.NET, bisogna selezionare l'opportuna versione del .net framework con cui l'applicativo è stato realizzato, questo però non succede con la versione 3.5 di ASP.NET, andando nel pannello di IIS per la configurazione di ASP.NET, nel menù a tendina non è presente la voce relativa a questa versione del framework, come mai?
Andiamo a scoprire perchè in IIS non è possibile impostare la versione 3.5 o la 3.0 del .NET framework e come possiamo fare per usarla nelle nostre applicazioni web.
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...
—
Giorgio Borelli
Sia che parliamo di programmazione per Windows Form o Web Form la gestione degli eventi in C# è un'aspetto fondamentale che ogni buon programmatore deve conoscere.
Il meccanismo degli eventi consente di notificare dei messaggi tra gli oggetti della mia applicazione al verificarsi di determinate condizioni. Allo scatenarsi di un evento è possibile gestirlo opportunamente per effettuare operazioni ed intraprendere azioni per variare il comportamento dell'applicazione come reazione al cambiamento del suo stato.
Un oggetto che genera un'evento, lo notifica ad un'altro che lo prende in carico e lo gestisce (handler dell'evento), tale meccanismo viene implementato per mezzo dei delegates, gli eventi in C# non sono altro che particolari tipi di delegate multicast.
Prosegue...
64173b40-9ef3-4366-b4e6-968e64bf54da|4|2.8|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Categorie: C#
Tags: C#, .NET framework