Archivio mensile:luglio 2012

Libro "VB 2010 spiegato a mia nonna" (17)

Polimorfismo

Il concetto di polimorfismo non è facile da spiegare ed è uno dei più difficili da comprendere, ma ci proveremo.

Prima di tutto il significato della parola polimorfismo: questa parola deriva dal greco, dalla composizione di due parole, “poli = molte” e “morfo = forma”, quindi rappresenta la possibilità di avere molte forme diverse in base al contesto.

Per polimorfismo si intende la possibilità di interagire con due o più classi, dotate di un insieme di metodi e di proprietà comuni, senza dover identificare esattamente il tipo di oggetto con il quale si sta lavorando.

Per esempio, potremmo realizzare una collezione di oggetti di tipo Animali in grado di accogliere uno o più riferimenti a oggetti di tipo Cane, Gatto e Canarino. Ognuna delle classi specializzate Cane, Gatto e Canarino avrà anche dei metodi e degli attributi specializzati che caratterizzano la particolare classe. Per esempio il Gatto miagola, ma il Cane abbaia.

Altri metodi e attributi, invece, saranno comuni: tutti gli animali mangiano, si muovono, dormono ecc. Questi elementi comuni permettono di classificarli come animali e quindi di inserirli in insiemi omogenei, come la citata classe Animali.

Non preoccupatevi se non avete capito completamente i tre pilastri della programmazione orientata agli oggetti: ereditarietà, incapsulamento e polimorfismo.

Ci sono ancora tanti aspetti da esaminare e quindi lo faremo in un capitolo dedicato, con molti esempi di codice.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Annunci

Libro "VB 2010 spiegato a mia nonna" (16)

Incapsulamento

Un altro principio importante della programmazione orientata agli oggetti è l’incapsulamento.

Il termine aiuta già in parte a capire il concetto cui si riferisce: non tutti gli attributi vengono esposti all’esterno per essere visibili anche dalle altre classi.

Anzi, la maggior parte degli attributi rimane nascosta all’interno della classe e chi la osserva dall’esterno non sa nemmeno che questi attributi esistono.

Un’opinione diffusa, tanto da essere considerata una delle best practice (= migliori pratiche) della programmazione orientata agli oggetti, è quella che prevede che nessun attributo sia visibile dall’esterno: in tal caso non potremo accedere direttamente a tali attributi ma potremo leggere o manipolare solamente gli attributi per i quali sono stati definiti appropriati metodi di lettura e/o scrittura.

L’incapsulamento è un concetto che rende una classe molto simile a una “scatola nera”: l’interazione con tale scatola nera è limitata ai metodi che possono essere richiamati e non è possibile in alcun modo modificare lo stato della scatola nera (della classe) se non in modo fortemente controllato attraverso i metodi.

In questo fatto c’è un vantaggio collaterale: se non vengono modificati i “punti di contatto” della scatola nera (della classe), possiamo modificare anche pesantemente il codice interno alla classe senza dover cambiare anche solo una riga di codice in tutto il resto dell’applicazione. C’è quindi un alto grado di isolamento tra l’interno e l’esterno della classe.

(…segue…)

Fonte: Cap. 2 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (16)

Incapsulamento

Un altro principio importante della programmazione orientata agli oggetti è l’incapsulamento.

Il termine aiuta già in parte a capire il concetto cui si riferisce: non tutti gli attributi vengono esposti all’esterno per essere visibili anche dalle altre classi.

Anzi, la maggior parte degli attributi rimane nascosta all’interno della classe e chi la osserva dall’esterno non sa nemmeno che questi attributi esistono.

Un’opinione diffusa, tanto da essere considerata una delle best practice (= migliori pratiche) della programmazione orientata agli oggetti, è quella che prevede che nessun attributo sia visibile dall’esterno: in tal caso non potremo accedere direttamente a tali attributi ma potremo leggere o manipolare solamente gli attributi per i quali sono stati definiti appropriati metodi di lettura e/o scrittura.

L’incapsulamento è un concetto che rende una classe molto simile a una “scatola nera”: l’interazione con tale scatola nera è limitata ai metodi che possono essere richiamati e non è possibile in alcun modo modificare lo stato della scatola nera (della classe) se non in modo fortemente controllato attraverso i metodi.

In questo fatto c’è un vantaggio collaterale: se non vengono modificati i “punti di contatto” della scatola nera (della classe), possiamo modificare anche pesantemente il codice interno alla classe senza dover cambiare anche solo una riga di codice in tutto il resto dell’applicazione. C’è quindi un alto grado di isolamento tra l’interno e l’esterno della classe.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (15)

I concetti fondamentali della programmazione orientata agli oggetti

La programmazione orientata agli oggetti (OOP = Object-Oriented Programming) si basa su tre concetti fondamentali: l’ereditarietà, l’incapsulamento e il polimorfismo.

Per poter parlare di programmazione orientata agli oggetti vera e propria è quindi necessario che siano presenti questi tre concetti, altrimenti non è programmazione orientata agli oggetti ma, tutt’al più programmazione basata sugli eventi o programmazione basata sugli oggetti.

Essendo l’argomento molto importante, analizziamo brevemente uno a uno i concetti, per poi riprenderli nel corso del libro in modo più approfondito.

Ereditarietà
Una classe può essere derivata da un’altra classe ed ereditare così tutte le caratteristiche base, eventualmente aggiungendo alcune caratteristiche più specializzate.

Negli ultimi esempi abbiamo illustrato le caratteristiche di un ipotetico oggetto della classe Automobile. Per definire una gerarchia di oggetti più corretta e flessibile, probabilmente potremmo organizzare le classi nel seguente modo:

Veicolo
   VeicoloStradale
   VeicoloAPedali
   Bicicletta
   …

VeicoloAMotore
   Moto
   Automobile
   Autocarro
   …

VeicoloVolante
   VeicoloAMotore
      Elicottero
      Aereo
      …
   VeicoloSenzaMotore
      Aliante
      …

VeicoloNatante
   VeicoloAMotore
      Motoscafo
      Nave
      …
   VeicoloSenzaMotore
      BarcaARemi

 

Da questa struttura riusciamo a capire meglio che la classe Automobile deriva dalla classe VeicoloAMotore che, a sua volta, deriva da VeicoloStradale. Risalendo ancora di livello, le classi citate derivano dalla classe generica Veicolo.

Un altro particolare interessante è dato dal fatto che esistono più classi di nome VeicoloAMotore.

Tuttavia, tali classi sono inserite in rami della gerarchia differenti, quindi non interferiscono tra loro. Naturalmente, sarà necessario fare riferimento alla corretta classe VeicoloAMotore, indicando anche il riferimento al “padre”, cioè alla classe da cui deriva la specifica classe VeicoloAMotore: in questo modo diventerà evidente il fatto che con VeicoloStradale.VeicoloAMotore e con VeicoloNatante.VeicoloAMotore ci si riferisce a due ben distinte classi. Non si potrà fare riferimento alla classe VeicoloAMotore senza specificare il padre, altrimenti ci si troverà in presenza di un’ambiguità.

Con questo ultimo paragrafo abbiamo introdotto anche la notazione del punto (.). Il punto tra due elementi (due classi o una classe e il suo metodo o attributo) significa semplicemente che l’elemento posto a destra del punto appartiene all’elemento posto a sinistra.

Possiamo spiegare il concetto di classe derivata anche in un altro modo: le classi che si trovano in un livello più alto della gerarchia sono classi più generiche, mentre le classi dei livelli inferiori, che derivano dalle classi generiche, sono classi più specializzate, poiché aggiungono ulteriori specificazioni. Tali specificazioni sono costituite da un maggior numero di attributi e/o da un maggior numero di metodi.

Abbiamo già accennato che per “metodi” intendiamo delle unità di codice espresse nella forma di subroutine (Sub) o di funzioni (Function). Queste unità di codice definiscono le azioni (il comportamento) degli oggetti della stessa classe.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Le mie prime due storie brevi su "ilmiolibro.it", in valutazione

Potete trovare le mie due storie brevi (in valutazione) a questa pagina:

http://reader.ilmiolibro.kataweb.it/talent-scout/storiebrevi

La prima si intitola “La lezione” (fantascienza), la seconda storia è “Ho ucciso il mio capo” (giallo-noir).

La lettura è gratuita, le recensioni anche… 🙂

Libro "VB 2010 spiegato a mia nonna" (14)

Il programma per guidare

Abbiamo fatto l’esempio dell’automobile e quindi ci viene spontaneo pensare a come potrebbe essere formulato un programma per guidare.

Nel programma dovremmo avere una sequenza di istruzioni per avviare il motore, per innestare la marcia, per avviare l’automobile, per inserirci nella carreggiata, per accelerare o rallentare, per accostare, per fermarci, per spegnere il motore e altro.

Non basta: nel momento in cui l’automobile è in movimento sulla strada, ci saranno, probabilmente, anche molti altri oggetti-automobile sulla stessa strada, oltre a oggetti-pedone, oggetti-autobus, oggetti-sbarre del passaggio a livello. Non finisce qui.

Dovremo anche prendere in considerazione la variabilità della strada: buche nell’asfalto, divieti o sensi unici, curve, incroci, passaggi pedonali, segnalazione  verticale (cartelli e semafori) o orizzontale (strisce), condizioni climatiche, condizioni di
luce (giorno-notte), condizioni di traffico.

Tutte le situazioni che si presentano sulla strada, davanti a noi, dietro di noi, a destra e a sinistra sono eventi che possono condizionare molto la nostra possibilità di movimento o di comportamento alternativo al semplice “andare avanti”.

Queste alternative sono quelle che, nei linguaggi di programmazione, sono chiamate istruzioni di scelta: in alcuni punti dei programmi è necessario decidere quale delle varie possibilità bisogna prendere in considerazione.

La decisione che sarà presa nell’ambito del programma dipenderà da vari fattori: lo stato attuale dell’oggetto o degli oggetti interessati e, in alcuni casi, la scelta dell’utente.

Nella vita reale, spesso, ci poniamo delle domande, anche inconsciamente, le cui risposte possono essere positive, negative o… una via di mezzo, perché le cose non sono mai solo bianche o nere ma possono avere varie sfumature di grigio.

Per un computer il grigio non esiste (tranne nei colori dello schermo!). Infatti, le scelte hanno in ogni caso una risposta riconducibile a due sole possibilità: vero o falso.

Le risposte “vere a metà” o “un po’ false” per il computer non esistono, perché non sa in alcun modo interpretare queste sottili sfumature.

Tornando alle nostre istruzioni di scelta, il percorso spesso si divide in due strade diverse: se la risposta è vera si prosegue verso un’istruzione, se è falsa si prosegue verso un’istruzione diversa.

In alcuni casi le scelte possono essere anche più di due. Supponiamo, per esempio, che il nostro lavoro si svolga in un ciclo settimanale di cinque giorni:

  1. tutti i Lunedì registriamo gli ordini di acquisto che arrivano dai clienti;
  2. tutti i Martedì andiamo in magazzino e prepariamo le merci da spedire;
  3. tutti i Mercoledì emettiamo e registriamo le fatture;
  4. tutti i Giovedì consegnamo i pacchi e le fatture al corriere per le consegne;
  5. tutti i Venerdì registriamo i pagamenti.

Se dovessimo scrivere un programma in grado di offrirci un piano di lavoro della giornata, potremmo scrivere qualcosa del genere (in linguaggio naturale):

Che giorno è oggi?
   Se è Lunedì:
      registrare gli ordini
   Se è Martedì:
      preparare le merci


Oppure potremmo considerare ciascuna scelta individualmente:

Oggi è Lunedì?
   Se sì: registrare gli ordini
   Se no: ignora
Oggi è Martedì?
   Se sì: preparare le merci
   Se no: ignora

In genere si preferisce la prima forma, perché è più strutturata e quindi anche più comprensibile ed efficiente. Nulla ci vieta, tuttavia, di preferire la seconda forma, quando le condizioni di scelta sono più complesse o quando si ritiene che si possa ottenere maggiore comprensibilità nel flusso del programma.

Un altro tipo di flusso di esecuzione è quello costituito dalla ripetizione di una o più istruzioni. Si definisce un blocco di istruzioni che devono essere eseguite un certo numero di volte oppure che devono essere eseguite finché non cambia una condizione (ovvero lo stato di un oggetto).

Se prendiamo in considerazione le azioni di una certa giornata del caso precedente, per esempio il Lunedì, il programma potrebbe essere strutturato come segue:

Prendi il pacco di ordini;
Inizia dal primo ordine;
Per ogni ordine:
   Inserisci i dati anagrafici del cliente
   Inserisci i dati dell’ordine
   Per ogni riga dell’ordine:
      Inserisci il codice del prodotto
      Inserisci la quantità ordinata
   Ripeti finché ci sono altre righe
   Conferma l’inserimento
   Sposta l’ordine in un altro pacchetto
Ripeti finché ci sono altri ordini
Archivia gli ordini

Se la struttura del programma diventa troppo complessa o se il gruppo di istruzioni deve essere eseguito in varie parti del programma, è opportuno definire un sottoprogramma, cioè una subroutine (Sub) o una funzione (Function):

Prendi il pacco di ordini;
Inizia dal primo ordine;
Per ogni ordine:
   Passa a SUB Inserisci i dati
   Sposta l’ordine in un altro pacchetto
Ripeti finché ci sono altri ordini
Archivia gli ordini

SUB Inserisci i dati
   Inserisci i dati anagrafici del cliente
   Inserisci i dati dell’ordine
   Per ogni riga dell’ordine:
      Inserisci il codice del prodotto
      Inserisci la quantità ordinata
   Ripeti finché ci sono altre righe
   Conferma l’inserimento
Ritorna

Se in un altro punto del programma dobbiamo eseguire le stesse istruzioni, non abbiamo la necessità di riscrivere nel programma principale la sequenza di istruzioni elementari necessaria, ma possiamo invece avvantaggiarci del fatto che nel programma principale possiamo semplicemente fare una chiamata al sottoprogramma “Inserisci i dati”.

Ci sono due principali vantaggi in questo modo di operare: prima di tutto non complichiamo il programma principale con tutti i dettagli, rendendolo molto più leggibile e comprensibile; secondariamente, potremmo in futuro cambiare la sequenza di istruzioni che compone il sottoprogramma senza modificare in alcun modo il programma principale.

Infatti, nel sottoprogramma si potrebbe cambiare l’ordine di esecuzione delle istruzioni oppure si potrebbe definire una sequenza di istruzioni completamente diversa.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (13)

Programmazione orientata agli oggetti

Ecco finalmente che arriviamo al paradigma della programmazione orientata agli oggetti che, per Visual Basic 2010, è come essere arrivati a casa. Infatti, abbiamo già accennato che per i linguaggi gestiti dal Framework .NE T tutto è un oggetto: il computer, i dati, il database, l’utente, i file, i flussi in lettura o scrittura di un file o di un video.

In questo libro vi spiegheremo: cosa sono gli oggetti, come si creano, come si gestiscono, come si utilizzano, come si distruggono e altro.

Il paradigma della programmazione orientata agli oggetti parte da un presupposto ben preciso: l’applicazione non sarà nient’altro che una rappresentazione di una parte della realtà che ci circonda e, in particolare, di quella parte che ci interessa gestire nell’applicazione stessa.

Questa realtà di interesse conterrà alcuni oggetti, con le loro caratteristiche e con il loro comportamento:

  • per caratteristiche intendiamo le proprietà (dette anche attributi) di un certo oggetto. Per esempio, per un’automobile, le proprietà sono il colore della carrozzeria, il numero di persone trasportabili, la cilindrata del motore, il tipo di alimentazione (gas, benzina verde, gasolio…), la marca, il modello, il numero di telaio, l’attuale posizione della frizione (per esempio “in folle”), lo stato attuale del motore (acceso, spento), lo stato delle frecce di direzione (spente, accese a destra, accese a sinistra, accese tutte) ecc.;
  • per comportamento intendiamo le azioni che un oggetto può eseguire. Per esempio, la stessa automobile avrà la possibilità di compiere varie azioni: avviare il motore, spegnere il motore, innestare la marcia, frenare, accendere le luci, ruotare il volante a destra ecc.

Riepilogando, un oggetto ha un proprio stato (i dati) e un proprio comportamento (i metodi). Inoltre lo stato di un oggetto può cambiare nel tempo: il motore può essere spento e poco dopo essere acceso perché è stata eseguita l’azione di accensione del motore.

Lo stato dell’oggetto può determinare non soltanto la rappresentazione attuale dell’oggetto, ma può anche permettere l’esecuzione o meno di alcune azioni. Per esempio, non si può accendere un motore già acceso e non si può spegnere un motore spento.

Lo stato, quindi, è la situazione istantanea dell’oggetto che può cambiare nel tempo.

Un altro aspetto importante della programmazione orientata agli oggetti è il fatto che più oggetti possono avere lo stesso tipo di attributi e di comportamenti. Tali oggetti, cioè, appartengono alla stessa classe di oggetti.

La classificazione di vari oggetti è un’attività che troviamo già a scuola, nelle scuole primarie: per esempio, provate a classificare i seguenti “oggetti” nelle classi “viventi” e “non viventi”: mucca, gatto, ferro, girasole, insalata, acqua, sale. Non è difficile, vero?

Infatti siamo abituati fin da piccoli a classificare gli oggetti e a riconoscere a quale classe appartiene un oggetto qualunque. Diventa come una dote naturale, quasi istintiva.

Facciamo un passo avanti: parlare di classe o di tipo è la stessa cosa.

Anche nel linguaggio comune possiamo dire che il gatto fa parte della classe degli animali (o più propriamente della classe dei felini), oppure possiamo dire che il gatto è un tipo di animale (o un tipo di felino).

Nella programmazione orientata agli oggetti si può parlare allo stesso modo di classe o di tipo, a seconda del contesto in cui ci si trova.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (12)

Programmazione orientata agli eventi

La programmazione orientata agli eventi è un particolare tipo di programmazione in cui il flusso del programma non segue un percorso sequenziale prestabilito dal programmatore, salvo che nei punti dove si effettua una ramificazione del percorso, a seguito di una scelta. Il flusso logico della programmazione a eventi è determinato, in gran parte, dal verificarsi di particolari eventi che influiscono sull’esecuzione del programma.

Quali sono questi eventi? Potremmo innanzi tutto classificare gli eventi in due principali categorie: gli eventi di sistema e gli eventi dell’utente.

Gli eventi di sistema sono tutti gli eventi generati dal sistema operativo o dall’hardware e rilevati dal sistema operativo: uno degli esempi più evidenti è il timer, poiché gli impulsi del timer scattano a intervalli regolari, in modo indipendente dall’utente.

Gli eventi dell’utente sono costituiti da tutti quegli eventi generati da un’azione dell’utente: uno spostamento del mouse, un clic su un pulsante, la pressione di un tasto della tastiera e altro.

La gestione degli eventi viene realizzata attraverso, appunto, dei gestori degli eventi.

Ciascun gestore di evento è associato al corrispondente evento e, al verificarsi di quest’ultimo, avvia l’esecuzione di una serie di istruzioni. Inoltre un evento può innescare a sua volta una serie di altri eventi a cascata, ciascuno dei quali viene processato dal corrispondente gestore di evento, e così via, finché tutta la coda degli eventi non si è esaurita.

La programmazione a eventi è in genere utilizzata nell’ambito delle interfacce grafiche
e non è quindi un caso che abbia visto la luce con i primi linguaggi visuali, come Visual Basic per Windows.

Visual Basic 2010, come i suoi predecessori, aderisce anche al paradigma della programmazione orientata agli eventi e quindi in quasi tutti gli esempi di questo libro vedremo del codice contenuto nei gestori degli eventi.

Un breve esempio di codice con il gestore di un evento Click di un pulsante (Button1) è il seguente (Figura 1.6):

Esempio 01.02
Public Class CiaoMondo
Private Sub Button1_Click(
ByVal sender As System.Object,
ByVal e As System.EventArgs) _
Handles Button1.Click
MessageBox.Show(“Ciao a tutti!”)
End Sub
End Class

 

image

Figura 1.6 – L’applicazione Windows Forms
“CiaoMondo” in fase di sviluppo.

Nota – No, nonna, il computer non può dirti “salute!” quando starnutisci: non è un evento che il computer può riconoscere. Uhm … non può? Però, adesso che ci penso …

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

WPC 2012

 

 

 

 

 

 

 

 

 

 

I motori di WPC 2012 si sono messi in moto anche quest’anno, per la più grande conferenza italiana sulle tecnologie Microsoft.

La 19^ edizione vedrà numerose nuove versioni di software Microsoft, da Windows Server 2012 a Windows 8, da Visual Studio 2012 al nuovo Windows Phone, da SQL Server 2012 a Sharepoint Server 2013 e molto altro.

Cliccate sull’immagine e iscrivetevi al più presto, prima di perdere il posto!

Nuova mailing list

Se volete restare aggiornati sulle mie pubblicazioni, ricevendo un avviso direttamente nella vostra e-mail, inviate un messaggio all’indirizzo mailinglist@deghetto.it con il seguente contenuto:

Oggetto: “iscrizione” (o “cancellazione” se non volete più ricevere)
E-mail: indirizzo e-mail (se non è lo stesso del messaggio che inviate)
Note: eventuali note aggiuntive o messaggio

Libro "VB 2010 spiegato a mia nonna" (11)

Programmazione funzionale

La programmazione funzionale è un paradigma che prevede un flusso di programmazione costituito completamente da una serie di funzioni matematiche da valutare.

I vantaggi principali di questo tipo di programmazione sono costituiti dall’assenza di effetti collaterali e quindi da una più semplice manutenzione dei programmi, da un’assenza di errori e da una maggiore ottimizzazione.

La troviamo più in ambito accademico che in ambito industriale.

Un esempio di linguaggio che aderisce al paradigma della programmazione funzionale è F# (si legge “èf-sciàrp”), il nuovo linguaggio di Microsoft disponibile in Visual Studio 2010, quindi un linguaggio della grande famiglia .NET. Altri linguaggi molto noti che aderiscono alla programmazione funzionale sono LISP e LOGO, ma anche Ruby, Python e Perl possono utilizzare uno stile funzionale.

Un breve esempio di programmazione funzionale in F#:

(* Commento *)
printf “I’m VB or I’m F#?”
(* funzione ricorsiva per stampare una lista di elementi *)
let rec printlist lst =
   if lst = [] then ()
   else printfn “%d” (List.hd lst)
      printlist (List.tl lst)

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (10)

Programmazione imperativa

Il termine “imperativa” chiarisce già in parte il fatto che ogni istruzione impartita al computer, attraverso un programma, è sostanzialmente un “ordine” per il computer.

La programmazione imperativa si contrappone alla programmazione dichiarativa,dove non vengono impartiti ordini ma vengono fatte delle “affermazioni” che la macchina è implicitamente tenuta a considerare o a rendere vere.

Abbiamo già fatto un esempio di programmazione imperativa (il cosiddetto spaghetti-code), ma in realtà quasi tutti i linguaggi di programmazione e quasi tutti i paradigmi di programmazione aderiscono al paradigma di programmazione imperativa.

La programmazione orientata agli oggetti e la programmazione strutturata, per esempio, sono anche paradigmi di programmazione imperativa.

Esempi di programmazione dichiarativa, invece, sono tutti i linguaggi descrittivi, detti linguaggi di markup: per esempio, HTML e XAML, non ordinano nulla al computer, ma piuttosto descrivono, rispettivamente come deve essere la pagina web o l’interfaccia grafica dell’applicazione.

Un esempio di codice XAML è il seguente (Figura 1.5):

Esempio 01.01
<Window x:Class=”MainWindow”
xmlns=”
http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
Title=”MainWindow” Height=”350″ Width=”525″>
<Grid Height=”67″ Width=”321″>
<Label Content=”Label”
Height=”28″
HorizontalAlignment=”Left”
Margin=”29,21,0,0″
Name=”Label1″
VerticalAlignment=”Top” />
<TextBox Height=”23″
HorizontalAlignment=”Left”
Margin=”73,21,0,0″
Name=”TextBox1″
VerticalAlignment=”Top”
Width=”120″ />
<Button Content=”Button”
Height=”23″
HorizontalAlignment=”Left”
Margin=”210,22,0,0″
Name=”Button1″
VerticalAlignment=”Top”
Width=”75″ />
</Grid>
</Window>

 

image

Figura 1.5 – L’applicazione WPF in fase di sviluppo.

Il codice definisce semplicemente una finestra (Window), all’interno della quale dispone un’etichetta (Label), una casella di testo (TextBox) e un pulsante (Button).

Troveremo ancora XAML in questo libro. Infatti è il nuovo linguaggio scelto per descrivere le interfacce grafiche delle applicazioni .NET (Windows Presentation Foundation). Anche l’ambiente di sviluppo di Visual Studio 2010 è stato riscritto in WPF e quindi preparatevi!

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (9)

Spaghetti-code

Il cosiddetto “spaghetti-code” è un non-paradigma di programmazione, adottato nelle prime versioni del BASIC fino agli anni Ottanta inclusi. Chi ha utilizzato i primi personal computer probabilmente ricorderà il linguaggio GW-basic oppure il Commodore BASIC.

Il linguaggio richiedeva che ogni istruzione avesse un numero progressivo che identificava l’istruzione stessa. Se era necessario inserire un certo numero di istruzioni tra due istruzioni esistenti non era raro dover rinumerare alcune istruzioni.

La pratica, quindi, suggeriva di numerare le istruzioni saltando la numerazione di dieci in dieci.

Le variabili erano globali e non c’era la possibilità di isolarle in procedure o funzioni.

Si poteva simulare una procedura o funzione solamente con un gruppo di istruzioni posto al di fuori della numerazione del programma principale e saltando da un punto del programma alla pseudo-procedura con l’istruzione GOTO X o con l’istruzione GOSUB X, dove “X” è il numero identificativo dell’istruzione cui si cedeva il controllo.

Al termine della pseudo-procedura si tornava poi all’istruzione successiva a quella chiamante.

Se occorreva rinumerare le istruzioni per fare spazio ad altre istruzioni, bisognava ricontrollare tutte le istruzioni GOTO e GOSUB per verificare che i riferimenti fossero
corretti.

GW-basic adottava il paradigma di programmazione strutturata in modo molto grezzo. Per esempio l’istruzione IF … THEN … ELSE doveva trovarsi su un’unica riga, non poteva essere distribuita su più righe.

Un esempio di programma in GW-basic è il seguente:

10 dim i
20 i = 1
30 i = i * 2
40 if i <= 20 then goto 70
50 print “Fine programma.”
60 end
70 print i & ” al cubo = ” & i * i * i
80 goto 30

Sebbene questo sia un programma semplicissimo, già a questo livello di semplicità può risultare complesso capire cosa faccia effettivamente il programma. Immaginiamo di avere un programma con centinaia o migliaia di istruzioni e capiremo perfettamente perché questo tipo di programmazione sia stata chiamata spaghetti-code (Figura 1.4).

image
Figura 1.4 –
Spaghetti-code.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (8)

Paradigmi di programmazione

I paradigmi di programmazione sono gli stili fondamentali di programmazione, intesi come un insieme di strumenti concettuali a disposizione del programmatore in un determinato linguaggio di programmazione.

Un programmatore, quindi, può scrivere un programma utilizzando degli elementi di programma (per esempio variabili, oggetti, funzioni) e dei procedimenti ben precisi per eseguire delle elaborazioni sui dati (cicli, assegnazioni, calcoli ecc.).

Esistono numerosi paradigmi di programmazione, perché molte buone pratiche stimolano la creazione di nuovi linguaggi e di nuovi paradigmi che, di volta in volta, offrono nuove potenzialità e spesso un incremento di produttività degli sviluppatori.

I paradigmi di programmazione adottati sino a oggi, alcuni più noti, altri meno, sono i seguenti:

  • programmazione modulare;
  • programmazione orientata agli aspetti;
  • programmazione orientata agli utenti;
  • programmazione orientata agli oggetti;
  • programmazione strutturata secondo patterns;
  • programmazione per pattern matching;
  • programmazione procedurale;
  • programmazione strutturata;
  • programmazione per tipi di dati astratti;
  • programmazione concorrente;
  • programmazione logica;
  • programmazione funzionale;
  • programmazione orientata agli eventi;
  • programmazione a vincoli.

Alcuni linguaggi aderiscono a più di un paradigma di programmazione. Per esempio, potremmo dire che Visual Basic 2010 (come tutte le versioni di Visual Basic .NET) aderisce ai seguenti paradigmi: innanzitutto all’importantissimo paradigma della programmazione orientata agli oggetti, perché in Visual Basic 2010 “tutto” è un oggetto, anche l’utente. In Visual Basic 2010 troviamo anche gli aspetti del paradigma della programmazione orientata agli eventi, in particolare per la definizione dei comportamenti delle interfacce grafiche, e possiamo utilizzare anche le tecniche della programmazione strutturata. Avrete ormai capito che il mondo non è solo bianco o nero, poiché vi si possono trovare mille colori e sfumature. Allo stesso modo, in Visual Basic 2010, si può programmare con vari paradigmi di programmazione, anche se il paradigma fondamentale utilizzato ovunque è quello della programmazione orientata agli oggetti.

Prima di proseguire, analizziamo alcuni dei più importanti paradigmi di programmazione: i più “storici” e gli attualissimi.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (7)

Programmare o sviluppare?

Probabilmente avrete sentito parlare di programmatori e di sviluppatori. Qual è la differenza tra queste due figure professionali?

Il programmatore è colui che è incaricato di scrivere fisicamente un programma. Nella suddivisione storica del lavoro in ambito informatico, si distingue il programmatore dall’analista, cioè colui che analizza il problema e lo traduce in un documento di specifica, per descrivere gli algoritmi utilizzati nel programma. Talvolta si sente parlare anche di analista-programmatore, cioè quella figura che si occupa sia dell’analisi che della codifica del programma.

Altre figure professionali dell’informatica sono: l’architetto di sistema, il sistemista, il beta tester, il database administrator (dba), il webmaster, il team manager e il responsabile della sicurezza.

La figura dello sviluppatore svolge maggiori attività rispetto a quella del programmatore, occupandosi di numerose fasi del ciclo di vita del software.

Soprattutto quando lo sviluppatore lavora da solo o in piccoli team, non è raro che debba occuparsi dell’analisi, dell’architettura del sistema, della codifica, dei test, della documentazione e della preparazione dei pacchetti di installazione (e magari anche del marketing, della manutenzione del proprio sito Internet, dell’assistenza ai clienti e degli aspetti commerciali).

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (6)

Algoritmi in cucina

La parola algoritmo, utilizzata soprattutto in matematica e in informatica, indica, principalmente, un procedimento per ottenere un certo risultato, attraverso una serie di semplici passi, precisi e ordinati.

Esprimendo questo concetto in modo più rigoroso:

  • l’algoritmo è un insieme ordinato di operazioni;
  • tali operazioni non possono essere ambigue ma devono essere ben determinate
    e calcolabili;
  • l’algoritmo produce un risultato che deve corrispondere con il risultato atteso;
  • il tempo di esecuzione deve essere finito.

Questa definizione ci porta a fare alcune considerazioni.

Per prima cosa, abbiamo un insieme ordinato di operazioni: tali operazioni hanno un ordine preciso che non può essere modificato a pena della non validità dell’algoritmo stesso o della produzione di un risultato diverso da quello atteso. Per esempio, una ricetta di cucina indica un procedimento ben preciso per ottenere il risultato voluto (una torta). Se viene cambiato anche un solo dettaglio, è un algoritmo diverso: otterremo una torta di tipo diverso oppure un pasticcio.

Nella descrizione delle operazioni da eseguire non può esserci alcuna ambiguità e ciascun passo deve essere espresso in modo semplice. Per esempio, per preparare le lasagne alla bolognese dobbiamo preparare pure la besciamella: bisognerà quindi descrivere l’algoritmo per preparare anche la besciamella, altrimenti tale passo non sarà un passo espresso in forma semplice e non ambigua.

Naturalmente l’algoritmo deve produrre un risultato conforme a quello atteso: se utilizziamo un algoritmo per fare una torta e alla fine ci ritroviamo con le lasagne alla bolognese, allora non è l’algoritmo corretto per cucinare una torta.

Infine, il tempo di esecuzione deve essere finito, perché non si può stare all’infinito a cucinare una torta (immaginate quali consumi di gas o di corrente elettrica potremmo avere!). Se utilizziamo un algoritmo che non termina in un tempo adeguato o non termina affatto è come se non avessimo alcun algoritmo.

Vediamo, per esempio, come potrebbe essere un algoritmo per cucinare una torta alle fragole:

  1. preparare la base;
  2. preparare il ripieno alle fragole;
  3. versare il ripieno sulla base;
  4. cuocere in forno per quarantacinque minuti a duecento gradi centigradi.

In questo algoritmo vediamo che c’è una sequenza di passi ordinata, il risultato sembra quello atteso e il tempo di esecuzione è finito (pari a quarantacinque minuti di cottura più il tempo necessario alla preparazione della base e del ripieno).

Esaminando bene l’algoritmo, ci rendiamo però conto che i primi due punti non sono ben determinati e non ci permettono nemmeno di valutare se il tempo di esecuzione sia finito e di quantificare tale tempo.

Se l’esecutore dell’algoritmo è uno specialista (per esempio un pasticcere) sicuramente saprà eseguire correttamente i primi due punti senza ulteriori specificazioni.

In caso contrario, dobbiamo aggiungere le informazioni necessarie per permettere anche a un esecutore inesperto di eseguire l’algoritmo.

In quest’ultimo caso, quindi, dobbiamo includere altri due algoritmi: l’algoritmo per la preparazione di una base per la torta e l’algoritmo per la preparazione di un ripieno alle fragole.

L’algoritmo finale (Figura 1.3) diventa come il seguente:

  1. preparare la base;
    1.1. prendere un terzo di tazza di farina;
    1.2. setacciare la farina;
    1.3. miscelare in una terrina la farina, mezza tazza di burro e un quarto di acqua;
  2. preparare il ripieno alle fragole;
    2.1. pulire duecento grammi di fragole;
    2.2. tagliare le fragole a pezzi in una terrina;
    2.3. aggiungere cento grammi di marmellata di fragole;
    2.4. mescolare per distribuire i pezzi di fragola in modo uniforme;
  3. versare il ripieno sulla base;
  4. cuocere in forno per quarantacinque minuti a duecento gradi centigradi.

Anche in questo caso abbiamo un passo, setacciare la farina (passo 1.2.), che potrebbe essere svolto da un esecutore esperto senza alcuna esitazione, mentre per un esecutore inesperto dovrebbe essere ulteriormente dettagliato. Pensiamo, comunque, che il concetto sia ormai sufficientemente chiaro e che non sia necessario proseguire nella spiegazione di questa ricetta.


 

image
Figura 1.3 – Diagramma di flusso di un algoritmo ed
eventuale  espansione con due ulteriori algoritmi.

Nella Figura 1.3 notiamo che non tutto l’algoritmo è incluso nel percorso principale.

Infatti sono evidenziati, all’interno delle nuvole, altri due algoritmi che vengono richiamati dall’algoritmo principale. Una volta terminati gli algoritmi secondari, il controllo dell’esecuzione del programma torna al passo successivo dell’algoritmo principale.

Potremmo chiamare gli algoritmi secondari anche sottoprocedure o, con un termine più comunemente utilizzato, subroutine (Sub in linguaggio Visual Basic). Se consideriamo, tuttavia, che queste subroutine restituiscono un risultato all’algoritmo chiamante (la “base” nel primo caso e il “ripieno” nel secondo caso) potremmo anche considerarle due funzioni (Function in linguaggio Visual Basic).

Le Sub e le Function sono due elementi del linguaggio molto importanti in Visual Basic, pertanto le vedremo apparire in tutti gli esempi di questo libro.

Approfondiremo meglio nei capitoli successivi i dettagli delle parole riservate di Visual
Basic 2010.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

L’installazione di Office 2013 Preview "rompe" Visual Studio 2012: soluzione

Se installate Office 2013 Preview su una macchina su cui avete installato Visual Studio 2012 Release Preview potreste trovarvi nella condizione di non riuscire ad avviare Visual Studio:

—————————
devenv.exe – Entry Point Not Found
—————————
The procedure entry point _Atomic_fetch_sub_4 could not be located in the dynamic link library C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe.

Questo problema può succedere se non avete installato l’aggiornamento di Luglio 2012 di Visual Studio 2012 RP che si trova a questa pagina:

http://www.microsoft.com/en-us/download/details.aspx?id=30178

Qui trovate le informazioni sull’aggiornamento:

http://support.microsoft.com/kb/2703187

Libro "VB 2010 spiegato a mia nonna" (5)

Io ordino, tu fai

Torniamo con i piedi per terra e cerchiamo di ragionare in modo più concreto, tentando di capire meglio che cosa sia la programmazione.

Principalmente è imporre la propria volontà sul computer: il programmatore decide cosa deve essere fatto e il computer esegue senza discutere. O meglio, il computer non discute se non ci sono errori; se invece gli errori ci sono, discute eccome!

Tanti anni fa, all’inizio delle scuole superiori, ma anche molto prima, l’autore di questo libro non aveva alcuna competenza in campo informatico, anche perché, all’epoca, l’informatica non era alla portata di tutti, come invece avviene oggi.

Gli unici rari riferimenti erano quelli che si potevano ascoltare in qualche notizia televisiva oppure leggere in un articolo o libro.

A un certo punto, in una lezione di macchine per il calcolo, un professore fece un’affermazione che provocò una reazione emotiva negativa nell’autore: “Il computer è stupido”.

Solo dopo molto tempo, iniziando a studiare la programmazione e a utilizzare il primo “vero” computer (un Commodore VIC-20!), l’autore ha scoperto che l’affermazione era assolutamente autentica, ma non doveva essere intesa come un’offesa nei confronti di questo oggetto, così tanto desiderato. Il computer è un oggetto stupido.

Può fare solo quello che il programmatore o l’utente gli dice di fare.

Nota – “I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L’insieme dei due costituisce una forza incalcolabile” (cit. Albert Einstein).

Raramente sbaglia e quando lo fa è sempre colpa di una persona o di un gruppo di persone che l’ha programmato male o dell’utente che l’ha utilizzato in modo maldestro o distrattamente.

Gli americani hanno un termine molto preciso per descrivere questa situazione: “garbage in, garbage out”, cioè se ci metti dentro immondizia, ottieni solo immondizia.

Pensiamo, per esempio, all’automobile: un insieme di parti fisse, unite a parti meccaniche (motore, ruote, trasmissione ecc.) che, per mezzo di strumenti adeguati, come il volante e i pedali, è in grado di muoversi sulle strade.

L’auto, da sola, non è in grado di spostarsi, a meno che non l’abbiate lasciata in folle, senza freno a mano tirato e in discesa! Ecco il primo grave errore che potrebbe fare un utente-guidatore.

Consideriamo ora lo stile di guida: il guidatore deve avere la patente, quindi, prima di tutto, imparare a guidare e a rispettare le norme della circolazione stradale. Deve conoscere i segnali stradali, dare correttamente la precedenza, cercare di evitare gli incidenti anche quando avrebbe il diritto di precedenza ed essere sempre molto attento e prudente.

In queste situazioni, l’automobile non può fare nulla: esegue semplicemente i comandi dati dal guidatore.

Se l’auto tampona l’automobile che la precede, non è colpa dell’auto, né della strada ghiacciata ma del guidatore che si è distratto o che non è stato sufficientemente prudente, rallentando come avrebbe dovuto fare in una strada in condizioni inadeguate.

Anche il computer è messo in moto, cioè viene acceso. Dopo essere stato acceso, è avviato il sistema operativo che contiene tutte le istruzioni necessarie a farlo funzionare.

Senza un sistema operativo in grado di farlo funzionare, il computer è solo un ammasso di ferraglia inutile.

Anche il sistema operativo è un programma: infatti è costituito interamente di istruzioni adatte al microprocessore del nostro computer. Questo permette di creare l’ambiente grafico in grado di semplificare il nostro lavoro (il desktop), di gestire la memoria del computer, di utilizzare tutte le periferiche del computer (monitor, stampante, modem, mouse, tastiera, scheda video, scheda audio, scanner ecc.), di gestire lo scambio di dati da e per gli hard disk e altro. Consente anche di installare e utilizzare vari programmi applicativi: per esempio, Microsoft Office, composto da Outlook, Word, Excel, PowerPoint e, in alcune versioni, Access, ma anche prodotti come giochi di vario tipo, browser per navigare in Internet come Internet Explorer e Firefox, programmi di contabilità, enciclopedie multimediali e altri.

Gli strumenti di sviluppo sono un’altra categoria molto particolare di programmi applicativi: sono programmi che servono a costruire altri programmi. Tra i tanti ambienti di sviluppo esistenti, uno ha avuto forse maggiore successo di tutti: Visual Studio.

Visual Studio è un software che integra al suo interno più linguaggi con lo stesso ambiente di sviluppo. I linguaggi più utilizzati sono Visual Basic e C#, ma Visual Studio
ne supporta molti altri.

In questo libro ci occuperemo esclusivamente di Visual Basic 2010, ma potranno esserci riferimenti anche a concetti e tecniche generali applicabili a qualsiasi linguaggio
utilizzabile con Visual Studio 2010.

Prima di immergerci nello studio della programmazione con Visual Basic, però, analizziamo uno dei fondamenti più importanti della programmazione: l’algoritmo.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Recensione del libro "Introduzione agli algoritmi e strutture dati"

Figura3

Booksite: http://bit.ly/Nst4uE
Autori: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
Traduzione: Livio Colussi, Professore Associato di Informatica presso la Facoltà di Scienze MM.FF.NN. dell’Università degli Studi di Padova
ISBN: 9788838665158
Lingua: italiano
Fogliazione: 1030 pagine
Periodo di pubblicazione: Giugno 2010
Prezzo: 61,00 €

Gli studenti dei corsi universitari di informatica e di ingegneria informatica, ma anche i professionisti che si dedicano allo sviluppo di software, devono spesso confrontarsi con algoritmi e con le strutture dati. In particolare, lo studio di questa materia richiede di trovare gli algoritmi più efficienti per risolvere un dato problema e di utilizzare le strutture dati più adatte.

Testi universitari che trattano questo tema ce ne sono molti, ma pensiamo che il libro “Introduzione agli algoritmi e strutture dati” che presentiamo in questa recensione sia una delle scelte migliori che si possa fare.

Prima di tutto, il libro è molto voluminoso: in 1030 pagine si possono trovare tutti gli algoritmi fondamentali, con spiegazioni dettagliate, sia dal punto di vista teorico che pratico. Ogni capitolo contiene anche numerosi esercizi e problemi da risolvere (alcuni dei quali sono stati risolti dagli autori e pubblicati sul loro sito Internet).

Per quanto riguarda i programmi realizzati, si è scelto di non prediligere alcun linguaggio di programmazione specifico ma di scrivere il codice con una pseudo-codifica che permetta di essere sufficientemente comprensibile, ma anche di rendere abbastanza facile la traduzione del codice in uno qualsiasi dei molti linguaggi di programmazione esistenti.

Il contenuto del libro è organizzato nei capitoli seguenti:

Parte I – Fondamenti

Capitolo 1 – Ruolo degli algoritmi nell’elaborazione dei dati

Capitolo 2 – Per incominciare

Capitolo 3 – Crescita delle funzioni

Capitolo 4 – Divide et impera

Capitolo 5 – Analisi probabilistica e algoritmi randomizzati

Parte II – Ordinamento e statistiche d’ordine

Capitolo 6 – Heapsort

Capitolo 7 – Quicksort

Capitolo 8 – Ordinamento in tempo lineare

Capitolo 9 – Mediane e statistiche d’ordine

Parte III – Strutture dati

Capitolo 10 – Strutture dati elementari

Capitolo 11 – Hashing

Capitolo 12 – Alberi binari di ricerca

Capitolo 13 – Alberi rosso-neri

Capitolo 14 – Aumentare le strutture dati

Parte IV – Tecniche avanzate di progettazione e di analisi

Capitolo 15 – Programmazione dinamica

Capitolo 16 – Algoritmi golosi

Capitolo 17 – Analisi ammortizzata

Parte V – Strutture dati avanzate

Capitolo 18 – B-alberi

Capitolo 19 – Heap di Fibonacci

Capitolo 20 – Alberi di van Emde Boas

Capitolo 21 – Strutture dati per insiemi disgiunti

Parte VI – Algoritmi per grafi

Capitolo 22 – Algoritmi elementari per grafi

Capitolo 23 – Alberi di connessione minimi

Capitolo 24 – Cammini minimi da sorgente unica

Capitolo 25 – Cammini minimi fra tutte le coppie

Capitolo 26 – Flusso massimo

Parte VII – Argomenti scelti

Capitolo 27 – Algoritmi multighread

Capitolo 28 – Operazioni con le matrici

Capitolo 29 – Programmazione lineare

Capitolo 30 – Polinomi e FFT

Capitolo 31 – Algoritmi di teoria dei numeri

Capitolo 32 – String matching

Capitolo 33 – Geometria computazionale

Capitolo 34 – NP-Completezza

Capitolo 35 – Algoritmi di approssimazione

Parte VIII – Appendici: prerequisiti matematici

Appendice A – Sommatorie

Appendice B – Insiemi e altro

Appendice C – Calcolo combinatorio e delle probabilità

Appendice D – Matrici

Ovviamente il testo è piuttosto impegnativo e richiede parecchio studio, anche se il titolo potrebbe far pensare a un testo semplice (“Introduzione…”). E’ comunque un libro che non può mancare nella libreria di uno studente di informatica, né in quella di uno sviluppatore di software, perché fornisce tutte le informazioni utili per utilizzare i migliori algoritmi attualmente noti.

Fortemente consigliato.

Recensione del libro "Microsoft Silverlight 4 – Guida alla programmazione"

clip_image002

Booksite: http://bit.ly/LUUSJX
Autore: Antonio Pelleriti
ISBN: 9788882339487 (ebook: 9788866040262)
Lingua: italiano
Fogliazione: 336 pagine
Periodo di pubblicazione: 2011
Prezzo: 29,00 € (ebook: 19,99 €)

 

Con Silverlight è possibile creare un’applicazione completa in tutti i suoi aspetti, rendendola compatibile per diverse piattaforme. Infatti, Silverlight è conosciuto come il diretto concorrente della tecnologia Flash, utilizzata per creare applicazioni avanzate e animate per i siti web. Ora che Flash sta per essere abbandonato o quanto meno assume sempre meno rilievo per la sua “pesantezza”, ecco che Silverlight prende sempre di più piede.

Il fatto che il pannello di amministratore di Windows Azure sia stato riscritto interamente in Silverlight è un esempio delle grandi potenzialità di Silverlight.

Silverlight è una tecnologia in continua evoluzione. Un’evoluzione così veloce (un aggiornamento di versione finora annuale) che gli autori di libri su Silverlight non riescono quasi a produrre le nuove edizioni con altrettanta velocità.

In ogni caso, il libro “Microsoft Silverlight 4 – Guida alla programmazione” fornisce le basi necessarie per iniziare a lavorare anche con la versione 5, poiché ogni versione aggiunge nuove caratteristiche, ma lascia invariate (o quasi) le caratteristiche preesistenti.

Il lettore, una volta appreso quanto illustrato in questo libro, potrà semplicemente aggiornare le proprie conoscenze all’ultima versione, attraverso i numerosi articoli tecnici pubblicati sui blog degli sviluppatori che amano condividere le proprie conoscenze con altri sviluppatori.

Il libro comprende undici capitoli:

Capitolo 1 – Introduzione a Silverlight

Capitolo 2 – Primi passi con Silverlight

Capitolo 3 – XAML

Capitolo 4 – Gestione del layout

Capitolo 5 – L’interfaccia utente

Capitolo 6 – Disegni, forme e colori

Capitolo 7 – Animazioni

Capitolo 8 – Multimedia

Capitolo 9 – Risorse, stili, template

Capitolo 10 – Data binding e accesso ai dati

Capitolo 11 – Aspetti avanzati di Silverlight

Come potete vedere dagli argomenti trattati, non si tratta solo di interfaccia utente in sé: uno degli aspetti importanti di Silverlight è la possibilità di associare i controlli a una o più fonti dati per estrarre i dati desiderati e presentarli nel modo migliore nell’interfaccia utente, con l’aggiunta delle funzionalità per l’aggiornamento dei dati stessi.

Lo stile è chiaro e fluido, perfettamente in linea con lo stile dei libri pubblicati da Edizioni FAG: un “must” per chi vuole creare applicazioni Silverlight di sicuro effetto.

Recensione del libro "Beginning Windows Phone 7 Application Development"

clip_image001

Booksite: http://bit.ly/PZTreC
Autori: Nick Lecrenski, Karli Watson, Robert Fonseca-Ensor
ISBN: 978-0-470-91233-1
Lingua: inglese
Fogliazione: 600 pagine
Periodo di pubblicazione: Maggio 2011
Prezzo: £ 23.99 / € 28.00

L’imminente arrivo di Windows 8 (secondo le previsioni, l’edizione RTM sarà disponibile all’inizio di Agosto 2012 e la vendita al pubblico inizierà verso Ottobre) costituisce un momento importante per l’evoluzione dei prodotti Microsoft. Infatti, Windows 8 sancirà definitivamente il decollo del nuovo modello di programmazione basato sull’interfaccia Metro. Tale modello di programmazione sarà lo stesso per le applicazioni destinate ai PC desktop, ai PC portatili, ai tablet (cioè Microsoft Surface) e agli smartphone (ovvero Windows Phone). Diventa quindi importante entrare in contatto con questo modello di programmazione, prendere confidenza con le sue caratteristiche e aggiornarsi per non rimanere esclusi dal mercato del software.

Fortunatamente possiamo già iniziare a prendere contatto con questo nuovo mondo utilizzando quello che già esiste: Windows Phone 7 e gli strumenti di sviluppo per Visual Studio 2010.

Ecco quindi che il libro “Beginning Windows Phone 7 Application Development” è quello che serve per acquisire tutte le basi della programmazione di un’interfaccia “Metro-style” e il nuovo “ciclo di vita” delle applicazioni, riveduto e corretto secondo le nuove tecnologie.

Il testo è suddiviso in 15 capitoli, più un’appendice con le soluzioni agli esercizi proposti alla fine di ogni capitolo:

Capitolo 1 – Introducing Windows Phone 7

Capitolo 2 – Jaw-Dropping Apps with the Help of Silverlight

Capitolo 3 – Spice Up Your Apps with Shapes, Colors, Brushes, and Transforms

Capitolo 4 – Advanced User Interface Techniques: Styles, Templates, and the Visual State Manager

Capitolo 5 – Isolated Storage, Page Navigation, and the Application Life Cycle

Capitolo 6 – Interacting with the Hardware

Capitolo 7 – Launchers, Choosers, and Advanced User Input

Capitolo 8 – Windows Phone 7 Services and Cloud Services

Capitolo 9 – Creating and Consuming Web Services

Capitolo 10 – Web Services Push Notifications

Capitolo 11 – XNA for Windows Phone 7

Capitolo 12 – Microsoft Expression Blend

Capitolo 13 – Using the Silverlight for Windows Phone Toolkit and Creating Panoramic User Interfaces

Capitolo 14 – Patterns, Frameworks, and Tests

Capitolo 15 – Publishing Your Application

Come si può vedere dall’elenco degli argomenti trattati, la gamma di aspetti relativi alla programmazione di applicazioni per Windows Phone è molto ampia e copre tutte le aree fondamentali.

Il lettore tipico del libro è il principiante (beginner) che viene condotto passo-passo verso la conoscenza di tutti gli aspetti fondamentali della programmazione attraverso esempi ed esercizi, per portarlo a una conoscenza completa della piattaforma.

Nel libro sono trattati, tra l’altro, aspetti relativi al ciclo di vita e allo stato dell’applicazione (in esecuzione, sospesa, terminata ecc.), all’interazione con i servizi di cloud (Windows Azure), l’utilizzo di Expression Blend per la progettazione di un’interfaccia utente efficace e piacevole, l’uso di XNA e di Silverlight e molto altro, con molte utili informazioni.

Infine, il Capitolo 15 è molto utile e interessante per chi volesse sviluppare un’applicazione da immettere sul mercato attraverso il Marketplace e magari provare a guadagnare qualcosa.

Naturalmente il libro non contiene informazioni sulla nuova versione “Windows Phone 8” che al momento non è ancora disponibile, sebbene siano già trapelate alcune delle nuove caratteristiche. In ogni caso è un buon libro per iniziare a conoscere tutte le tecniche di programmazione di base, perché tra la versione 7 e la versione 8 non ci sono grandi stravolgimenti dell’esistente, ma quasi solo delle aggiunte. Potrete successivamente integrare solamente le informazioni che vi mancano, consultando altri libri dedicati alle novità di Windows Phone 8 e gli articoli pubblicati sugli innumerevoli blog di altri sviluppatori.

Libro "VB 2010 spiegato a mia nonna" (4)

Il piacere di programmare

Sì, avete capito bene: anche il computer deve essere programmato.

La programmazione per il computer, però, è un po’ più complicata rispetto alla programmazione di un televisore o di una lavatrice. Occorrono programmi realizzati apposta per permetterci di creare nuovi programmi e bisogna acquisire alcune conoscenze fondamentali.

Niente paura! Questo libro è stato scritto per aiutarvi a trovare il modo giusto per conseguire l’obiettivo.

Per imparare a programmare non occorrono doti eccezionali, grandi competenze, memoria di ferro, studi a livello universitario, strumenti costosi e così via.

Le cose che realmente servono sono: un po’ di impegno, di costanza e un po’ di tempo.

Ovviamente le competenze necessarie sono strettamente legate alla complessità del programma: non possiamo pensare, da soli, di creare un programma come Microsoft Word. Questo, come molti altri programmi, è scritto da un grande team di programmatori e di tecnici. Possiamo, però, creare un programma in grado di gestire dei testi, incluse impaginazione, formattazione del testo, memorizzazione e stampa.

In questo libro non si ha l’ambizione di farvi impegnare in obiettivi che potrebbero rivelarsi irrealizzabili. Si cercherà di farvi acquisire gli strumenti mentali e conoscere gli strumenti tecnici necessari per realizzare dei progetti, semplici o complessi.

Sarete voi, poi, a decidere se dedicare il vostro tempo a progetti alla vostra portata o a progetti più ambiziosi, magari in collaborazione con altri programmatori.

In ogni caso, imparare a programmare offre diversi vantaggi:

  • stimola il nostro interesse e quando una cosa ci interessa, troviamo piacere nello svolgere anche compiti impegnativi e nel fare qualche “sacrificio” (come restare alzati fino a notte inoltrata per capire perché il programma non fa esattamente quello che ci aspettiamo da lui);
  • soddisfa il nostro desiderio di dominare la macchina: ci dà, cioè, la consapevolezza
    che possiamo fare qualcosa di più del semplice utilizzo di un programma già installato;
  • ci permette di risolvere almeno qualche problema pratico oppure ci aiuta nel raccogliere le informazioni necessarie per ottenere tale risultato;
  • mantiene la mente allenata consolidando le sinapsi, stimola la nostra logica, fortifica la memoria, aumenta l’autostima, rafforza la nostra immagine agli occhi degli altri, incrementa il nostro entusiasmo favorendo buon umore e ottimismo.

Se poi riusciamo a raggiungere un buon livello di conoscenza e di competenza, potremmo anche:

  • aiutare altri programmatori alle prime armi, con il vantaggio di sentirci utili;
  • creare qualcosa di valido che, con un po’ di capacità e/o di fortuna, possa farci
    incrementare le nostre entrate.

Infatti, la programmazione è un’attività che può essere valutata secondo diversi punti
di vista: si può considerare un semplice hobby con cui trascorrere piacevolmente un po’ di tempo, un’attività esclusivamente professionale che ci dà da vivere ma non ci coinvolge emotivamente, oppure qualcosa di intermedio tra questi due punti estremi, soprattutto quando si ha la fortuna di vedere trasformato il proprio passatempo in un vero e proprio lavoro.

In quest’ultimo caso il lavoro diventa anche divertimento, passione.

Per una passione, tutti siamo disposti a fare anche dei “sacrifici”: studiare molto, lavorare di notte, sperimentare nuove tecniche, spendere denaro per migliorare le nostre performance tecniche, magari acquistando un computer avanzato, dei libri e dei software.

Quasi nessuno è disposto a fare gli stessi sacrifici per un lavoro che non piace (a meno che non si sia pagati adeguatamente), ma tutti farebbero anche di più per il proprio hobby preferito.

Non parliamo poi dei fanatici del computer (come l’autore di questo libro!): sono persone che della programmazione fanno una vera e propria filosofia di vita.

Lavorano preferibilmente nel silenzio della notte, sempre collegati a Internet per cogliere eventuali messaggi provenienti da altri esemplari di “animali” della stessa specie o per fare ricerche online su articoli riguardanti la programmazione e altri argomenti di carattere informatico.

Fanno a gara per avere, prima di tutti, una copia di un nuovo software. Appena lo ottengono non resistono alla tentazione di installarlo subito e di provarlo. Manuali? Dopo!

Certo, qui siamo a un livello veramente estremo di passione sfrenata per la tecnologia e per la programmazione, ma la passione può arrivare ben oltre, dove molti non oserebbero spingersi.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (3)

Il computer

Qualcuno probabilmente ha già in casa un computer oppure ha voglia di acquistarlo.
Quali motivi potrebbero indurci a comprare e a utilizzare un computer?
Forse per curiosità, perché l’amico ce l’ha e non vogliamo sentirci inferiori, perché possiamo tenerci in contatto con altre persone, perché abbiamo sentito parlare di Internet e vogliamo capire a cosa serve, perché possiamo cercare le nostre ricette di cucina preferite, perché i nostri figli possano mandarci le fotografie dei nipoti, perché possiamo cercare i numeri di telefono sulle guide disponibili su Internet, perché possiamo scrivere delle lettere da inviare ad aziende o a uffici pubblici e non vogliamo scriverle a mano, perché possiamo leggere notizie fresche senza dover aspettare che esca il giornale del giorno dopo, perché ci sentiamo soli, abitando in una zona un po’ isolata, e possiamo metterci in contatto anche in tempo reale con persone lontane, perché abbiamo scoperto che con Facebook possiamo conoscere tante persone e ritrovare vecchi amici e compagni di scuola.
Potremmo desiderare un computer per arricchire la nostra conoscenza: ormai esistono numerosi programmi didattici per il computer, per tutte le necessità e per ogni età. Corsi di lingue, enciclopedie interattive, quiz, giochi che stimolano la memoria, perfino corsi di laurea a distanza.
Perché perché perché… I motivi possono essere tantissimi per ognuno di voi.

Nota: Perché? Perché… Non so perché. Sono solo fatti miei! (cit.).

Dopo un po’ di tempo che le persone utilizzano il computer, spesso, si chiedono: ma come faranno i programmatori a realizzare tutti questi programmi?
Magari qualche nostro amico ci suggerisce che potremmo utilizzare il computer per gestire i dati dei soci del nostro circolo culturale preferito e anche per organizzare il prossimo torneo di bocce o di scacchi. Oppure ci viene in mente che potremmo registrare e pianificare le spese di casa in modo più efficiente che non utilizzando un semplice foglio di calcolo e tenere sotto controllo i consumi sulle utenze di casa: telefono, gas, acqua, luce, rifiuti ecc. Pensiamo che potremmo registrare anche i compleanni, gli onomastici e le altre ricorrenze e, quando accendiamo il computer ogni giorno, fare apparire un avviso che ci ricordi che dobbiamo chiamare qualcuno per fargli gli auguri, magari indicando anche il numero di telefono da comporre. Potremmo registrare le nostre ricette di cucina per trovarle più facilmente e, anche in questo caso, fare apparire ogni giorno un menu a caso. Potremmo creare un gioco istruttivo per i nostri figli o nipoti per iniziare a insegnare loro una lingua straniera.
Insomma, a un certo punto, può venirci il “prurito” di conoscere meglio questa macchina e di usarla per risolvere qualche nostro problema, o comunque per personalizzarla. Perché no?
Siamo sinceri: anche per far vedere a qualche amico che siamo stati in grado di fare qualcosa di più! Una soddisfazione che ci fa sentire quasi dei grandi campioni: abbiamo creato il nostro primo programma, abbiamo dominato la macchina!

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Office 2013 è in arrivo…

image

E’ ora possibile installare una versione preliminare della nuova versione di Office (Office 2013): http://www.microsoft.com/en-us/news/presskits/office/default.aspx.

Non vi consiglio di installarlo su una macchina “di produzione”, per il momento è meglio utilizzare una virtual machine (è pur sempre un prodotto non definitivo…).

Buon divertimento!

[Evento] Siracusa, 4-5 Ottobre 2012 – Windows 8 e Windows Server 2012

image

Organizzato con il Patrocinio dell’Assemblea Regionale Siciliana da iCubed, l’obiettivo di questo evento è di presentare lo stato dell’arte dei sistemi operativi Microsoft, all’interno del magnifico scenario e delle tradizioni di Siracusa, Patrimonio dell’UNESCO.

Date

  • 4 Ottobre 2012 [S. Francesco d’Assisi – Giornata della Pace, della Fraternità e del Dialogo]
  • 5 Ottobre 2012

Presentazione Conferenza

Windows 8 e Windows Server 2012 non sono da considerare unicamente e semplicemente come i “nuovi sistemi operativi Microsoft Client e Server”.

Per usare un termine in inglese, coniato da Microsoft, essi rappresentano “Windows ReImagened”: dietro questa espressione si può intuire sia l’enorme impegno progettuale profuso, che la rivoluzione che i nuovi sistemi operativi apporteranno in termini di impatto, di integrazione, e di inspirazione generale sia per i sistemisti (ITPRO), che per gli sviluppatori (DEV) che per gli utenti comuni. Sicuramente si tratta del progetto più ambizioso mai realizzato da Microsoft nel campo dei sistemi operativi.

Nei due giorni della conferenza verranno presi in considerazione alcune tra le più importanti funzionalità e tecnologie che concorrono alla costituzione di questo nuovo “Eco-Sistema Operativo”.

ISCRIZIONI E INFORMAZIONI: http://www.meetupitpro.com/

Libro "VB 2010 spiegato a mia nonna" (2)

Perché programmare?

La maggior parte delle persone che utilizza un computer è abituata a farlo in modo passivo, usando programmi scritti da altri e senza grandi possibilità di intervenire sui programmi stessi per adattarli alle proprie esigenze.
Conoscere la programmazione ci permette di essere più attivi nell’uso del computer e ci rende più consapevoli di cosa possiamo realizzare con questa macchina che da alcuni è definita “infernale”.
L’altra domanda che può sorgere subito dopo è: “cos’è esattamente la programmazione?”. In questo libro troverete una risposta esauriente a tale quesito, ma procediamo per gradi.
Ci occuperemo del mondo della programmazione adottando un approccio che può apparire simile alle esplorazioni dei vecchi pionieri, quando in passato, partivano alla scoperta di nuove terre e singolari tesori.
Come sapete, oggi numerosi apparecchi devono essere programmati: pensate, per esempio, a un televisore.

image

Figura 1.1 – Un televisore.

Un giorno comprate un televisore, lo togliete dall’imballaggio e lo collegate all’antenna e alla presa elettrica. Poi nella scatola trovate anche il telecomando: accidenti, quanti tasti!

image

Figura 1.2 – Un telecomando.

Escludendo i tasti con i numeri da zero a nove, il cui uso è quasi banale, forse saprete anche riconoscere i tasti per cambiare canale e per aumentare o diminuire il volume.
Probabilmente troverete anche il tasto per accendere e spegnere la televisione, ma non riuscite nemmeno a immaginare quali funzioni abbiano tutti gli altri tasti. Sui tasti ci sono dei simboli, ma cosa significano?
Provate ad accendere il televisore. Forse su qualche canale trovate, casualmente, una trasmissione televisiva ma di solito non trovate nulla o le trasmissioni non corrispondono al numero del canale. Ci aspettiamo che Rai 1 si trovi al primo canale del televisore e che Rete 4 si trovi sul quarto canale, ma generalmente dopo l’acquisto di un nuovo televisore, le cose non stanno così.
Ah, ma nella scatola c’è anche un libretto di istruzioni! Bene, lo mettiamo da parte mentre tentiamo di programmare i canali.
Abbiamo detto la parola magica: programmare. Infatti, i canali di un televisore devono essere programmati per svolgere correttamente il proprio lavoro.
Tornando al nostro televisore, probabilmente non siamo riusciti a fare molti progressi senza prima aver letto il libretto di istruzioni, a meno che il televisore non sia talmente lineare da poter essere programmato per tentativi. Di solito però non è così.
In alcuni casi il televisore è abbastanza evoluto da avviare automaticamente la funzione di scansione dei canali, cioè è in grado di autoprogrammarsi.
Scoraggiati, riprendiamo il libretto di istruzioni e iniziamo a leggerlo.
Saltiamo le parti che riguardano la sicurezza nell’uso dell’apparecchio perché sono
quasi uguali a quelle di altri dispositivi che abbiamo acquistato. Tralasciamo di leggere la garanzia (la leggeremo quando l’apparecchio non funzionerà) e anche le pagine sull’installazione dell’apparecchio (non ci vuole tanto, per attaccare una spina e il cavo dell’antenna). Cerchiamo il capitolo che spiega come programmare i canali e le immagini esplicative delle funzioni dei tasti del telecomando.
Di solito un libretto di istruzioni spiega passo passo, quali tasti debbano essere premuti e in quale ordine, per attivare qualsiasi funzione disponibile.
La procedura di programmazione dei canali può coinvolgere dei tasti posti direttamente sul televisore oppure, nella maggior parte dei casi, può richiedere l’uso del solo telecomando. In ogni caso, le spiegazioni dettagliate ci guideranno alla messa in funzione del nostro apparecchio televisivo.
Alla fine, con un minimo di attenzione e di pazienza, otterremo il risultato che ci eravamo prefissi: avere un televisore perfettamente funzionante, con i canali ben impostati e nell’ordine desiderato.
Leggendo il libretto di istruzioni, inoltre, riusciremo a capire il significato dei simboli indicati sul telecomando e quindi della funzione di ciascun tasto.
Dopo queste operazioni che nell’insieme chiamiamo “programmazione”, potremo utilizzare il televisore, digitando semplicemente i comuni tasti del telecomando, per accendere e spegnere l’apparecchio, per cambiare i canali, per modificare il volume e magari per leggere le notizie su Televideo.
Dopo aver programmato l’apparecchio, quindi, ci troviamo nelle condizioni di poter utilizzarlo come “utenti”.
Non è l’unico caso di apparecchio che deve essere programmato: pensiamo, per esempio, alla lavatrice, al videoregistratore, al decoder satellitare, alla radiosveglia, all’impianto hi-fi, alla lavastoviglie, al telefono cordless, al cellulare, all’impianto di allarme della casa, all’impianto di riscaldamento e ai termostati, al forno a microonde ecc.
Certo, nella maggior parte dei casi sopra citati, la programmazione si attua in poco tempo: da pochi minuti a un’oretta.
Inoltre, gli apparecchi che abbiamo menzionato hanno un limite alla loro programmabilità: possono essere utilizzati solo per la classe di funzioni prevista. Per esempio, non possiamo usare il forno a microonde per vedere una trasmissione televisiva, anche se in futuro qualcuno potrebbe pensare di unire queste due funzioni in un unico apparecchio, per risparmiare spazio in cucina. Non sarebbe una novità: pensiamo, per esempio, alle stampanti multifunzione che possono avere anche le funzionalità di scanner, di fax e di fotocopiatrice.
Diversa è la situazione relativa alla programmazione di un computer: un apparecchio programmabile con un’ampia classe di applicazioni pratiche.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (1)

imageCap. 1 – Programmare, che passione

La programmazione è una vera passione per molte persone, ma perché possa diventare tale, è necessario studiare e sperimentare. Una buona conoscenza della programmazione ci permette di apprezzarla e di divertirci.

Non spaventatevi per la presenza delle parole studiare e sperimentare: fanno parte della vita di ogni buon programmatore. Infatti, la veloce evoluzione delle tecnologie e del software, spesso, costringe i programmatori a rincorrere le ultime informazioni disponibili e a sperimentare i nuovi software.

Per questi motivi, il programmatore che non vuole restare indietro deve aggiornarsi continuamente.

Ciò può essere fonte di stress, soprattutto quando il proprio lavoro impone scadenze e ritmi serrati. Il più delle volte, tuttavia, questo aspetto della vita di un programmatore è la parte più piacevole e divertente.

Il solo fatto di poter provare nuove tecniche di programmazione o nuove tecnologie, magari chiedendo informazioni ad altri programmatori e condividendo le proprie scoperte, spesso attraverso le numerose Community di sviluppatori o il proprio blog, è di per sé fonte di gratificazione e di soddisfazione.

A proposito della passione per la programmazione, questa è una citazione interessante (Bruce Eckel, autore di vari libri di programmazione, tra i quali Thinking in Java e Thinking in C++): “Scrivere programmi è qualcosa di assolutamente divertente, è una capacità che trae origine da una sconosciuta miscela di talento innato e allenamento costante. Come la pittura, la programmazione può essere adattata a un insieme di scopi: commerciale, artistico e di puro intrattenimento. I programmatori hanno la meritata reputazione di persone che lavorano senza guardare l’ora ma sono raramente definiti vittime di febbre creativa. I programmatori parlano di sviluppo di software nei weekend, durante le ferie e a pranzo non perché sono carenti di fantasia ma perché la loro immaginazione mostra loro pianeti che gli altri non riescono a vedere.” Non possiamo che condividere, in modo totale, il suo pensiero.

Il fatto che molti programmatori lavorino anche di notte non è una leggenda: lo stesso autore di questo libro lo fa abitualmente. Quando c’è la passione il sonno può attendere.

Se non siete ancora programmatori, ma aspirate a esserlo, siete avvisati! Non dite poi che non vi avevamo avvertito.

Comunque, se avete comprato questo libro, significa che siete sulla buona strada, alla ricerca della chiave giusta per imparare.

Nel caso l’abbiate comprato per errore, riportatelo indietro e fatevi dare in cambio un libro sul giardinaggio o su qualche reality televisivo, forse sono più adatti a voi.

Naturalmente non vi basterà leggere questo libro per diventare dei “guru” della programmazione in Visual Basic .NET: è indispensabile provare gli esempi, cercare di modificarne il comportamento e tentare di realizzare i vostri programmi. In una parola: “Sperimentare”.

Se iniziate da zero e conoscete solo il normale uso del computer e di una qualsiasi versione recente del sistema operativo Windows, questo capitolo e, in generale, questo libro sono per voi.

Se invece siete già un po’ esperti, potreste saltare tranquillamente la lettura di questo capitolo. Tuttavia, se avete tempo e voglia, vi invitiamo ugualmente a leggerlo: cercheremo di rendere interessante l’argomento anche per voi esperti.

(…segue…)

Fonte: Cap. 1 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn.

Libro "VB 2010 spiegato a mia nonna" (0)

Con questo post vi annuncio che ho deciso, con l’accordo dell’editore, di pubblicare su questo blog, a “rate”, il testo del libro “Visual Basic 2010 spiegato a mia nonna”.

Tutti i post saranno numerati in modo sequenziale e li potrete individuare anche con la categoria e/o con il tag “VB2010SAMN“.

Chi volesse acquistare il libro in versione integrale potrà farlo seguendo questo link: http://bit.ly/NRO6Cn.

Spero che questa nuova iniziativa vi possa essere gradita, ma spero anche che il contenuto del libro possa piacervi abbastanza da invogliarvi ad acquistare il libro.  Sorriso

Non mi resta altro che augurarvi buona lettura!