I miei libri finalmente in formato digitale!

Ho fatto parecchie prove di pubblicazione dei miei libri prodotti in self-publishing, sia in PDF, sia in formato Kindle, ma i risultati sono sempre stati abbastanza scadenti.

Proprio oggi ho scoperto un nuovo servizio italiano che permette di caricare un PDF (il tuo libro o la tua rivista) e di pubblicarlo gratuitamente, con conversione automatica in PDF e che può essere letto anche a video in versione “sfogliabile”.

Il servizio si chiama “Sfogliami.it” e si trova all’omonimo dominio Internet.

Non ho perso tempo e ho provato subito a pubblicare due miei libri, attivando anche la modalità di vendita: le operazioni da effettuare sono semplicissime e in pochi passi i libri sono disponibili in versione sfogliabile.

Ecco i miei primi due libri pubblicati e in vendita a un prezzo concorrenziale:

Office 2013 (6,00 €)

Visual Studio Express 2013 for Windows Desktop (4,99 €)

Fatemi sapere cosa ne pensate!

25 libri gratuiti da Syncfusion.com

image

Nella Rete si trovano moltissimi articoli gratuiti che ci permettono di imparare un linguaggio di programmazione o una nuova tecnica di programmazione.

Purtroppo gli articoli sono pubblicati alla rinfusa e su molti siti diversi. Inoltre non tutti gli articoli sono scritti bene e talvolta forniscono informazioni imprecise, incomplete o addirittura sbagliate.

Per chi inizia da zero, quindi, una delle possibili soluzioni è quella di acquistare un libro su un determinato linguaggio di programmazione o su una tecnica specifica.

Di solito, si tratta di libri di molte centinaia di pagine e anche molto costosi: tanto per fare un esempio pratico, io ho pubblicato vari libri di programmazione. Uno di questi, riguardante Visual Basic 2010, è composto da circa 800 pagine. Sono però a conoscenza di libri sullo stesso argomento di 1400 pagine e più!

Scrivere un libro di queste dimensioni richiede un lavoro complesso e lungo (diversi mesi), con il risultato che il costo del libro diventa elevato, il lettore avrà bisogno di molto più tempo per leggere il libro, e il libro diventerà rapidamente obsoleto, data la velocità con cui vengono distribuite le nuove versioni dei software (da Visual Studio 2012 a Visual Studio 2013 è passato solamente un anno).

Ecco quindi che Syncfusion ha avviato un progetto interessante: ha chiesto a vari autori di livello internazionale di scrivere alcuni libri sui più svariati argomenti. Questi libri hanno una dimensione media di circa 100 pagine e sono assolutamente gratuiti.

Alla pagina seguente potete trovare l’elenco dei libri pubblicati fino ad oggi e i relativi link per poterli scaricare in locale, in formato PDF o Amazon Kindle:

http://www.syncfusion.com/resources/techportal/ebooks

La dimensione ridotta di questi libri permette ai lettori di leggere un intero libro in poche ore (magari durante la “pausa pranzo”), per avere subito le informazioni essenziali per iniziare rapidamente a lavorare con un linguaggio o con una tecnica di programmazione.

Questo è anche un ottimo punto di partenza per chi parte da zero, perché questi libri contengono solo le informazioni strettamente necessarie, senza l’aggiunta di numerose altre informazioni di dettaglio che possono essere approfondite successivamente, attraverso la Rete.

Un plauso, dunque, a Syncfusion per avere avuto un’idea innovativa nell’ambito della divulgazione tecnica e soprattutto per aver messo a disposizione di tutti questi libri in forma gratuita, agevolando così molti studenti, molti lavoratori e molti appassionati nella programmazione del software.

Il mio nuovo “giornale quotidiano”

Da qualche giorno ho iniziato a sperimentare la pubblicazione di un mio “giornale quotidiano” con notizie sul mondo .NET, con un occhio particolarmente attento a quelle riguardanti il linguaggio F# (Fsharp).

Il giornale si trova qui: http://paper.li/mariodeghetto/1386411509.

image

Per il momento non ho scelto di acquistare un dominio specifico per il mio giornale. Questa scelta dipenderà da quanto interesse riesco a raccogliere con questa nuova iniziativa.

Se vi interessa rimanere aggiornati sulla pubblicazione del giornale, vi consiglio di cliccare sul pulsante “SUBSCRIBE”.

Naturalmente resto in attesa di vostri eventuali suggerimenti per migliorare la pubblicazione e fornire così uno strumento realmente utile per il vostro lavoro e le vostre passioni.

Evento IT/Dev Connections – Las Vegas 30 settembre – 4 ottobre 2013 – SCONTO SPECIALE!!!

Vi annuncio che è possibile iscriversi all’evento IT/Dev Connections, un evento per sviluppatori che si terrà dal 30 settembre al 4 ottobre 2013 a Las Vegas.

image

L’agenda prevede sessioni su:

  • Windows Server e Windows 8
  • SQL Server
  • SharePoint
  • Exchange
  • Platform Development Tools

Tra gli speaker di fama internazionale c’è anche il nostro italianissimo Dino Esposito, con il suo workshop dal titolo “Architecting Device-Driven Mobile Web Solutions” e con una sessione dal titolo “Fast Facts of Social Network Programming”.

image

ATTENZIONE – SCONTO SPECIALE!!!

Se volete uno sconto speciale di ben 100 dollari, potete procedere nel seguente modo:

  1. Durante la registrazione, inserite il seguente “promo code”: ITDMVP13
  2. Quando vi verrà chiesto “How did you hear about IT/Dev Connections?”, selezionate “friend/colleague” e inserite “MVP: Mario De Ghetto” nell’apposito spazio.

Mi raccomando, seguite scrupolosamente queste semplici istruzioni, perché potete risparmiare 100 dollari e di questi tempi non è poco!

Visual Studio 2013: nessuna novità sui linguaggi Visual Basic e C#

Nella nuova versione 2013 di Visual Studio non ci saranno particolari novità nei linguaggi Visual Basic e C#, perché tutte le novità riguarderanno principalmente l’IDE (cioè l’ambiente di sviluppo) e i suoi strumenti, nonché gli strumenti per la gestione del ciclo di vita delle applicazioni (ALM). Lo ha scritto il Team di sviluppo dei due linguaggi:

http://blogs.msdn.com/b/csharpfaq/archive/2013/07/17/no-new-c-and-vb-language-features-in-vs-2013.aspx

http://blogs.msdn.com/b/vbteam/archive/2013/07/17/no-new-vb-and-c-language-features-in-vs-2013.aspx

Novità interessanti ci saranno invece in altri ambiti e anche in altri linguaggi come F#. Per trovare materiale in italiano su F# potete consultare il mio nuovo blog dedicato proprio a questo linguaggio:

http://fsharpdazero.wordpress.com.

Recensore autorizzato per le pubblicazioni O’Reilly

Un breve post per informarvi che sono stato accettato nel “Blogger Review Program” di O’Reilly, ovvero sono stato autorizzato a chiedere copie di libri pubblicati da O’Reilly per poi pubblicare le mie recensioni.

Da questo momento posso utilizzare anche questo “badge”:

Blogger Review Program

Chiuso per ferie!

E’ arrivato il momento di concedermi una pausa di due settimane che trascorrerò con la mia famiglia a Lignano Pineta.

E’ un peccato, sotto un certo punto di vista, dovermi assentare proprio adesso che sono uscite le Preview di Visual Studio 2013 e di Windows 8.1, ma ogni tanto bisogna pur “disintossicarsi”, altrimenti si fa la fine del tizio della foto qui sotto…  Sorriso

Buone vacanze a tutti!

Articolo su HTML.it

E’ stato pubblicato il mio primo articolo su HTML.it, dal titolo “Librerie di classi VB e namespace Global con Visual Studio 2012”:

http://www.html.it/articoli/librerie-di-classi-vb-e-namespace-global-con-visual-studio-2012/

Il mio nuovo libro “Visual Studio Express 2012 for Windows Desktop – Primo contatto” della collana “I Componibili”

Vi annuncio che ho pubblicato il mio 10° libro di informatica!

copertina

Il mio nuovo libro, insieme agli altri che faranno parte della collana de “I Componibili”, vuole essere una risorsa utile, sia come guida teorico-pratica per chi già conosce la programmazione .NET, sia per chi vuole utilizzare questo ambiente di sviluppo per imparare a programmare o per insegnare ad altri a programmare.

La spiegazione è dettagliata, ma anche espressa con un linguaggio semplice e accessibile a tutti i lettori. In questo modo, può costituire una guida completa degli argomenti trattati, per essere un utile supporto per chi volesse reperire le informazioni che gli servono per lavorare o per chi volesse utilizzare questo libro come “libro di testo” per dei corsi di programmazione.

Come autore di libri di informatica e di programmazione (prima di questo ne ho pubblicati nove), finora ho avuto la tendenza, peraltro comune a molti altri autori di manuali di informatica, a scrivere libri sempre più voluminosi. Il libro più grande che ho pubblicato (“Visual Basic 2010 spiegato a mia nonna”, edito da Edizioni FAG) ha una dimensione di circa 800 pagine e contiene tutto il materiale che può essere utile per imparare a programmare con questo linguaggio e per conoscere molte tecniche utili. Tuttavia un solo libro non può fornire TUTTE le informazioni tecniche che al giorno d’oggi servono a un programmatore (di qualsiasi linguaggio e su qualsiasi piattaforma tecnologica).

Come seconda considerazione, un manuale voluminoso ha anche un costo importante che non tutti, oggi, sono in grado di sostenere a causa della grave crisi economica che ha colpito gli italiani, ma anche la maggior parte del mondo.

Ecco quindi che si rende necessario avere dei contenuti a costi accessibili e magari dei libri che non pesino quanto un mattone.

Vorremmo anche, probabilmente, avere solo i contenuti che ci interessano e non tutti i contenuti che possono essere anche solo lontanamente immaginati. Se siamo programmatori di applicazioni per Windows 8 e non ci interessa programmare per l’ambiente Desktop di Windows, probabilmente non saremo interessati ad avere un libro in cui metà dei contenuti sono dedicati alla programmazione di applicazioni per Console, con Windows Form o con WPF. Viceversa, se dobbiamo imparare il linguaggio Visual Basic per fini didattici, probabilmente non ci interesserà più di tanto la programmazione con XAML o con Windows 8: potrebbe essere sufficiente utilizzare la Console o le finestre di Windows Form.

Da qui l’idea de “I Componibili”: una serie di libri leggeri, snelli, monotematici. Quasi delle “monografie” dedicate a un singolo argomento o a una categoria di argomenti. Alcuni libri della serie “I Componibili” saranno dedicati a ciascuna edizione di Visual Studio Express 2012, uno alle istruzioni “pure” di Visual Basic, uno a C#, uno all’IDE, uno alle tecniche di programmazione per Windows 8, uno sulle basi della OOP (programmazione orientata agli oggetti) e così via.

La collana, quindi, sarà formata da più libri, dal costo notevolmente più economico dei classici “manualoni”, ma “componibili”: ognuno potrà scegliere se acquistarne uno solo, più di uno o anche tutti, in base alle proprie possibilità economiche, ai propri interessi e alle proprie necessità.

L’elenco dei libri che compongono la collana “I Componibili” è disponibile nel sito http://books.deghetto.it, dove potrete trovare esempi di capitoli in formato PDF, riferimenti, informazioni sui prezzi e sulle modalità di acquisto e così via.

Contenuti del libro

Questo libro è un “primo contatto” con Visual Studio Express 2012 for Windows Desktop, l’ambiente di sviluppo dedicato alle applicazioni per Console e per il Desktop di Windows.

È formato dai seguenti capitoli:

1. nel primo capitolo vengono esaminate tutte le edizioni di Visual Studio 2012, da quelle più costose a quelle gratuite (Express). Sono indicati i requisiti hardware e software richiesti per poter installare l’ambiente di sviluppo, la compatibilità con la versione 2010 e un cenno ai linguaggi VB e C#;

2. nel secondo capitolo viene analizzata a fondo la procedura di installazione di Visual Studio Express 2012 for Windows Desktop, con tutte le modalità per la registrazione e per l’attivazione del prodotto;

3. nel terzo capitolo si esamina cosa succede al primo avvio dell’ambiente di sviluppo e quali sono le scelte che ogni utente deve necessariamente effettuare per poter iniziare a lavorare;

4. nel quarto capitolo esaminiamo le modalità di installazione degli aggiornamenti, sia attraverso i nuovi “Update” di Visual Studio 2012, sia attraverso NuGet. È spiegato anche come fare per installare su più macchine un aggiornamento di tipo “Update” scaricando il pacchetto di installazione una sola volta;

5. nel quinto e ultimo capitolo esaminiamo la guida nelle sue due forme: la guida locale e la guida online. Potrete così conoscere come si installano le sezioni della guida in locale e come si può procedere all’aggiornamento dei contenuti.

Tutti i capitoli terminano con utili esercizi di autoverifica, così che ogni lettore potrà verificare autonomamente di aver acquisito tutti i concetti fondamentali.

A completamento, è stata inserita l’Appendice A che permette di conoscere le modalità per registrarsi e per ottenere le proprie credenziali Windows Live ID.

Visual Studio Express 2012 for Windows Desktop: il primo capitolo di un possibile libro

Ho pubblicato il primo capitolo di un libro che sto pensando di finire e pubblicare su Amazon.it e su ilmiolibro.it. Cosa ne pensate? Lasciate qui i vostri commenti.

Visual Studio Express 2012 for Windows Desktop - Capitolo 1

Nota: è anche il primo esperimento con il servizio gratuito di Youblisher.com che permette di creare una rivista o comunque una pubblicazione sfogliabile come una rivista cartacea: l’esperimento mi sembra particolarmente ben riuscito, anche se il servizio è molto scarno e privo di molti servizi (per esempio non ci sono statistiche delle visite, non si possono pubblicare contenuti a pagamento …).

Visual Studio 2012 Update 2

Come è ormai noto, il team di sviluppo di Visual Studio si è impegnato nel rilasciare degli aggiornamenti periodici di Visual Studio che sono denominati “Visual Studio 2012 Update ‘x’”, al posto dei tradizionali Service Pack (SP1, SP2 …).

Gli Update ‘x’ hanno l’obiettivo di correggere i bug rilevati e di aggiungere nuove funzionalità che non erano disponibili in precedenza, permettendo così un aggiornamento continuo dell’ambiente di sviluppo.

image

Dopo l’Update 1 è ora il momento dell’Update 2 (“Visual Studio 2012 Update 2”) che è stato annunciato proprio ieri nel blog di Somasegar, con un post che illustra anche le principali novità introdotte da questo aggiornamento.

Attualmente il sistema automatico di aggiornamento di Visual Studio 2012 non rileva ancora l’Update 2, ma è comunque possibile utilizzare una modalità “manuale”, scaricando il pacchetto di installazione da qui.

Altre informazioni potete trovarle in questo post del blog del team di sviluppo (anche qui con ampi riferimenti alle nuove caratteristiche introdotte dall’Update 2) e anche nella pagina specifica dedicata ai “Visual Studio 2012 Update ‘x’”.

Il file che viene scaricato è denominato VS2012.2.exe e ha il supporto multilingue, per cui è sufficiente scaricarne uno per aggiornare tutte le lingue installate sulla macchina. Il pacchetto aggiorna tutte le istanze presenti, quindi se avete installato Visual Studio 2012 in versione “full” (per esempio Professional o Ultimate) e anche le edizioni Express, vedrete che il pacchetto aggiorna tutto.

Il pacchetto ha una dimensione di 1.3 Mb, perché si tratta solo di un “launcher”: sarà questo eseguibile che si incaricherà di scaricare il file completo di installazione. La scelta di questo metodo è sicuramente pratica quando si ha una macchina sola da aggiornare, mentre è meno comoda se le macchine da aggiornare sono più di una: in questo caso, infatti, sarebbe più comodo poter scaricare la versione “full” del pacchetto di installazione, da copiare su tutte le macchine da aggiornare.

Video “Visual Studio 2012 <in pillole>”–1 Sviluppare le prime applicazioni con Visual Basic 2012

Ho pubblicato un nuovo video, nel mio sito http://corsi.deghetto.it e precisamente nella pagina dedicata agli sviluppatori, intitolato “Sviluppare le prime applicazioni con Visual Basic 2012”.

VS2012inpillole01

Nel video, destinato a chi inizia proprio “da zero”, spiego come si crea la prima applicazione nelle seguenti tecnologie/piattaforme:

- Applicazione Console

- Applicazione Windows Form

- Applicazione WPF

- Applicazione ASP.NET

- Applicazione Silverlight

- Applicazione Windows Store (per Windows 8)

Nelle sei applicazioni affronto lo stesso problema: come si fa a inserire un controllo (tranne in applicazioni Console, ovviamente), come si visualizza una stringa (Label o input da Console), come si legge un valore inserito dall’utente (TextBox o da Console) e come si visualizza una finestra di messaggio (o come si scrive in Console).

Il video dura 48 minuti.

Confronto dei controlli per Windows 8 e Windows Phone 8

Se sviluppate applicazioni sia per Windows 8 (Windows Store), sia per Windows Phone 8, potete constatare che molti controlli sono in comune tra le due piattaforme. Tuttavia, alcuni controlli sono presenti solo in una delle due piattaforme. Come far sì che le nostre applicazioni possano girare tranquillamente in entrambi gli ambienti o che siano facilmente adattabili?

Per risolvere questo problema potete visitare questa pagina che include un confronto dei controlli presenti in entrambe le piattaforme, così da permettervi di scegliere solo i controlli comuni.

Overlap of Xaml controls

Lascio la Community DotNetWork.it

Ogni tanto ho bisogno di rivedere le scelte fatte e ho la necessità di cambiare per trovare nuovi stimoli.

La Community DotNetWork.it (DNW) mi ha dato tanto in questi anni e ho cercato di dare a mia volta quello che potevo per contribuire alla crescita della Community.

Ora mi rendo conto di non poter dare di più, perché devo trovare stimoli nuovi, nuove avventure.

Da oggi, quindi, lascio la Community, ringraziando i due founders Alberto De Luca e Sabrina Cosolo per quello che hanno fatto per me e con me in questi anni.

Un augurio di buona continuazione e speriamo di rivederci in qualche occasione, in giro per qualche evento tecnico.

Un nuovo blog: “A caccia di bufale”

BufalaStop_banner

Con questo post voglio annunciare il mio nuovo blog “A caccia di bufale”:
http://acacciadibufale.wordpress.com.

Questo nuovo blog è dedicato alle numerose bufale che girano su Facebook e sui social network in generale, ma anche via e-mail con una sorta di Catene di S. Antonio che fanno circolare facilmente informazioni false e non verificate.

Purtroppo pochi si premurano di verificare le informazioni che ricevono o che leggono sui social network e quindi tutti prendiamo per oro colato quello che leggiamo. Invece molte informazioni sono false, create per divertimento, per curiosità o per aumentare le visite alla propria pagina. In alcuni casi si tratta, purtroppo, di casi di “phishing”, dove la notizia falsa è utilizzata come veicolo per acquisire informazioni sui visitatori o per raccogliere donazioni che vengono versate per cause nobili che tanto nobili non sono.

Ecco, quindi, che questo blog vuole essere un modo per fare chiarezza, per far sì che i cittadini digitali siano più consapevoli e più informati.

Ho creato anche una pagina Facebook:
http://www.facebook.com/acacciadibufale

Visitatelo!

E’ arrivato Office 2013!

image

Finalmente anche Office 2013 è tra noi!

Potete scoprire le novità alla pagina http://www.microsoft.com/italy/office/, ma se volete acquistare un mio libro su Office 2013: trovate tutte le informazioni e i riferimenti per l’acquisto a questa pagina:
http://books.deghetto.it/main/office2013.aspx.

Il libro è composto da circa 300 pagine ed è incentrato soprattutto su Office 2013 nel suo complesso e poi, in maggiore dettaglio, su Word 2013 ed Excel 2013.

Office 2013 è straordinario, io lo sto utilizzando da 2-3 mesi e mi trovo veramente bene.

Una novità su tutte: finalmente Word 2013 può aprire anche i file PDF, modificarli e risalvarli in PDF oppure in formato Word!!!

Visual Basic: Aprire un documento Word con password

Se volete aprire un documento Word dotato di password (e naturalmente conoscete la password Sorriso) potete utilizzare un semplice programma in Visual Basic:

  1. per prima cosa create un documento Word di prova e impostategli una password;
  2. create un’applicazione Visual Basic (per comodità io userò un’applicazione di tipo Windows Form);
  3. copiate il documento Word nella cartella del progetto;
  4. cliccate sul pulsante Mostra tutti i file nella finestra Esplora Soluzioni, per visualizzare anche il file Word;
  5. cliccate con il tasto destro del mouse sul nome del file Word e selezionate la voce Includi nel progetto;
  6. nella finestra delle Proprietà, con il file Word selezionato, impostate la proprietà Copia nella directory di output al valore Copia sempre.

Quest’ultima operazione permette di copiare il file di Word nella cartella Debug o Release, in modo che l’applicazione che viene eseguita da una di queste cartelle possa trovare il file da aprire.

A questo punto aggiungete una casella di testo e rinominatela con il nome txtPassword, poi aggiungete un pulsante (che sarà denominato Button1).

Scrivete, infine, il seguente codice:

Public Class Form1

    Dim objWord As Object

    Private Sub Button1_Click(
                ByVal sender As System.Object,
                ByVal e As System.EventArgs) _
                Handles Button1.Click

        Dim strPassword As String = Me.txtPassword.Text
        Dim nomeFile As String =
            Application.StartupPath & "/Prova.docx"
        Dim aperto As Boolean
        aperto = ApriDocWord(nomeFile, strPassword)
        If aperto = True Then
            Process.Start(nomeFile)
            MessageBox.Show("File Word con password: aperto")
        Else
            MessageBox.Show("File Word con password: non aperto")
        End If
        objWord.Quit()
        objWord = Nothing
    End Sub

    Private Function ApriDocWord(
                nomeFile As String,
                password As String) _
                As Boolean
        Dim risultato As Boolean = False
        objWord = CreateObject("Word.Application")
        objWord.visible = False
        objWord.application.WindowState = 2
        objWord.application.DisplayAlerts = False
        Try
            objWord.Documents.Open(
                nomeFile, PasswordDocument:=password)
            risultato = True
        Catch ex As Exception
            risultato = False
        End Try
        Return risultato
    End Function
End Class

L’istruzione objWord.Quit() è fondamentale, perché la sua mancanza provocherebbe il permanere del processo “Microsoft Word” in memoria: più chiamate del metodo, poi, aprirebbero ulteriori istanze del processo, causando un’occupazione di memoria anomala, fino al punto di iniziare ad avere qualche problema di funzionamento.

VB.NET: avviare un’applicazione all’interno di un form (Windows Form)

La tecnologia Windows Form è tutt’altro che morta: qualcuno mi chiede ancora informazioni su “come si fa questo e come si fa quello”. In questo articolo, quindi, voglio affrontare il problema dell’avvio di applicazioni esterne (eseguibili) in tre distinti contesti:

1. L’avvio puro e semplice di un eseguibile esterno;

2. L’avvio di un eseguibile esterno all’interno di un form VB.NET;

3. Il posizionamento della finestra dell’eseguibile esterno.

PRIMA DI INIZIARE

Create un’applicazione Windows Form, nel linguaggio Visual Basic e inserite un pulsante nel form per poter eseguire il codice che vedremo in seguito.

Nelle prime righe del codice, prima ancora della definizione del form, inserite le seguenti due istruzioni, perché ci serviranno in seguito.

Imports System.Diagnostics

Imports System.Runtime.InteropServices

AVVIO DI UN ESEGUIBILE ESTERNO

Per semplicità, immaginiamo di voler far partire un’istanza di NOTEPAD.EXE. I concetti che vedremo valgono, comunque, per quasi tutti i tipi di applicazioni.

Per avviare un’applicazione esterna si utilizza il metodo Process.Start, come segue:

Process.Start(“NOTEPAD.EXE”)

Inseriamo questa istruzione nel metodo gestore dell’evento Click del pulsante.

Dopo aver avviato l’applicazione, clicchiamo sul pulsante e osserviamo cosa succede: l’applicazione NotePad sarà avviata, ma in modo indipendente rispetto all’applicazione Windows Form (che a sua volta sarà visibile solamente con il form contenente il solo pulsante).

In qualche caso può essere la modalità preferita di avvio delle applicazioni, per esempio se vogliamo creare un’applicazione con una serie di “pulsanti-scorciatoia” per avviare alcune applicazioni di varia utilità.

In molti casi, la modalità precedente non è opportuna, perché causa disordine e fa pensare a un’applicazione non ben congegnata. Una modalità migliore è quella che visualizza le applicazioni esterne all’interno del form stesso.

AVVIO DI FORM “FIGLI” E APPLICAZIONI ESTERNE ALL’INTERNO DEL FORM

Prima di vedere cosa succede con le applicazioni esterne (eseguibili), vediamo come si crea un normale form “figlio” nel form principale (che deve essere impostato come form MDI) e come si posiziona.

‘ imposto il form principale come form MDI:

Me.IsMdiContainer = True

‘ creo un form secondario

‘ Nota: in questo esempio creiamo un form “al volo”, ma in

‘ genere si crea un form dalla finestra Esplora Soluzioni

Dim f2 As New Form

‘ il form f2 viene impostato come form “figlio” del principale (Me)

f2.MdiParent = Me

‘ visualizzo il form secondario f2 (vuoto):

f2.Show()

‘ nel seguente ciclo, seleziono ciascun form “figlio”

‘ (Me.MdiChildren fornisce un array dei form figli)

‘ e lo sposto nella posizione (x=10,y=10):

For Each f As Form In Me.MdiChildren

   ‘ l’impostazione della proprietà StartPosition al valore

   ‘ FormStartPosition.Manual è importante, perché altrimenti

   ‘ non vedrete il form nella posizione desiderata:

   f.StartPosition = FormStartPosition.Manual

   ‘ nel seguente ciclo, seleziono ciascun form “figlio”

   f.Location = New Point(10, 10)

Next

Ovviamente nel nostro esempio avevamo un unico form figlio e quindi il ciclo verrà eseguito una volta sola, ma nell’ipotesi di avere due o più form figli, vedremo che ciascun form si disporrà nella posizione indicata.

AVVIO DI APPLICAZIONI ESTERNE ALL’INTERNO DEL FORM

Quello che abbiamo visto per i form “figli” (form “nativi” del .NET Framework) non si può applicare alle applicazioni esterne, cioè agli eseguibili. Per poter visualizzare un’applicazione esterna all’interno del nostro form, infatti, dobbiamo utilizzare una API di Windows che si chiama SetParent.

Vediamo come si dichiara questa API in VB.NET:

<DllImport(“user32.dll”, SetLastError:=True, CharSet:=CharSet.Auto)> _

    Public Shared Function SetParent(ByVal hWndChild As IntPtr, _

    ByVal hWndNewParent As IntPtr) As IntPtr

End Function

Una volta dichiarata, possiamo utilizzare la funzione SetParent come se fosse un’istruzione VB.

Il codice di esempio è il seguente:

Imports System.Diagnostics

Imports System.Runtime.InteropServices

Public Class Form1

    ‘ dichiarazione della funzione SetParent:

    <DllImport(“user32.dll”, SetLastError:=True,

        CharSet:=CharSet.Auto)> _

    Public Shared Function SetParent(

        ByVal hWndChild As IntPtr, _

        ByVal hWndNewParent As IntPtr) As IntPtr

    End Function

    Private Sub Button1_Click(

            sender As Object, e As EventArgs) _

            Handles Button1.Click

        ‘ imposto il form principale come form MDI:

        Me.IsMdiContainer = True

        ‘ definisco il processo da avviare:

        Dim pi As New ProcessStartInfo(“NOTEPAD.EXE”)

        ‘ avvio il processo:

        Dim p As Process = Process.Start(pi)

        ‘ permetto al processo di avviarsi correttamente e

        ‘ completamente. Se non lo facessi, potrei incorrere

        ‘ in un errore, se il processo è lento:

        Do While p.MainWindowHandle.Equals(IntPtr.Zero)

            Threading.Thread.Sleep(50)

            p.Refresh()

        Loop

        ‘ imposto l’handle della finestra del processo

        ‘ appena avviato come figlio dell’handle della

        ‘ finestra principale dell’applicazione

        SetParent(p.MainWindowHandle, Me.Handle)

    End Sub

End Class

Avviando l’applicazione e cliccando sul pulsante di avvio, vedremo che l’applicazione esterna sarà effettivamente avviata all’interno della nostra applicazione VB.NET.

Purtroppo l’applicazione appare troppo grande e posizionata in modo errato rispetto alla finestra dell’applicazione VB.NET, con un risultato estetico decisamente insoddisfacente.

Per posizionare correttamente l’applicazione “figlia” potremmo pensare di agire nello stesso modo in cui abbiamo spostato e ridimensionato il form “figlio” nel primo esempio. In questo caso, però, la tecnica non funziona, perché non possiamo agire sulle proprietà dell’applicazione esterna (non abbiamo le proprietà StartPosition e Location da poter modificare).

Non resta che fare ricorso ancora una volta alle API di Windows: vediamo nel paragrafo successivo come si fa.

SPOSTAMENTO DELLA FINESTRA DELL’ESEGUIBILE ESTERNO

Per spostare una finestra di un’applicazione in esecuzione, possiamo utilizzare la funzione MoveWindow, inclusa nelle API di Windows. La definizione della funzione è la seguente:

<DllImport(“user32.dll”, SetLastError:=True,

    CharSet:=CharSet.Auto)> _

Public Shared Function MoveWindow(

    ByVal hWnd As IntPtr,

    ByVal x As Integer, ByVal y As Integer,

    ByVal nWidth As Integer,

    ByVal nHeight As Integer,

    ByVal bRepaint As Boolean) As Boolean

End Function

Posizioniamo e ridimensioniamo, quindi, la finestra di “NOTEPAD.EXE” con i seguenti parametri:

- posizione “X”: 10

- posizione “Y”: 5

- larghezza: 600

- altezza: 500

Nel codice dell’esempio precedentemente visto dobbiamo aggiungere solamente la dichiarazione della funzione MoveWindow e l’istruzione che esegue effettivamente lo spostamento e il ridimensionamento, cioè questa istruzione:

MoveWindow(p.MainWindowHandle, 10, 5, 600, 500, True)

Vediamo quindi il codice completo:

Imports System.Diagnostics

Imports System.Runtime.InteropServices

Public Class Form1

    <DllImport(“user32.dll”, SetLastError:=True,

        CharSet:=CharSet.Auto)> _

    Public Shared Function SetParent(

        ByVal hWndChild As IntPtr, _

        ByVal hWndNewParent As IntPtr) As IntPtr

    End Function

    <DllImport(“user32.dll”, SetLastError:=True,

        CharSet:=CharSet.Auto)> _

    Public Shared Function MoveWindow(

        ByVal hWnd As IntPtr,

        ByVal x As Integer, ByVal y As Integer,

        ByVal nWidth As Integer,

        ByVal nHeight As Integer,

        ByVal bRepaint As Boolean) As Boolean

    End Function

    Private Sub Button1_Click(

            sender As Object, e As EventArgs) _

            Handles Button1.Click

        Me.IsMdiContainer = True

        Dim pi As New ProcessStartInfo(“NOTEPAD.EXE”)

        Dim p As Process = Process.Start(pi)

        Do While p.MainWindowHandle.Equals(IntPtr.Zero)

            Threading.Thread.Sleep(50)

            p.Refresh()

        Loop

        SetParent(p.MainWindowHandle, Me.Handle)

        MoveWindow(p.MainWindowHandle, 10, 5, 600, 500, True)

    End Sub

End Class

PROBLEMI CON ALCUNE APPLICAZIONI

La tecnica che vi ho mostrato funziona in molti casi, ma non in tutti: alcune applicazioni sono restìe ad accettare le nostre imposizioni e quindi si avviano nella solita modalità (per esempio a schermo intero).

Un esempio di questi è dato dalle applicazioni Office. Se provate questa tecnica con Word (eseguibile “WINWORD.EXE”) o con Excel (eseguibile “EXCEL.EXE”) vedrete che l’applicazione sarà, sì, avviata… ma sarà a tutto schermo. La nostra applicazione VB.NET, invece, segnalerà un’eccezione, perché a suo avviso l’applicazione è terminata prima di poter gestire la sua posizione.

In ogni caso, pur con le diverse peculiarità delle applicazioni, possiamo gestire molte applicazioni esterne dalla nostra applicazione .NET.

UN ULTIMO SPUNTO

Riflettendo sulla possibilità di avviare applicazioni esterne nelle nostre applicazioni, c’è un interessante risvolto: potremmo creare varie applicazioni (“moduli” di un applicativo complesso) da compilare singolarmente e poi richiamare come applicazioni esterne da un applicativo “principale”.

In questo modo potrebbe essere trovato il modo per gestire i vari moduli dell’applicativo e anche di creare dei moduli personalizzati da caricare in alternativa a quelli standard, in base al tipo di licenza dell’utente.

In questo ambito, comunque, entriamo in un’altra storia: quella della modularizzazione di un’applicazione.

Il mio libro su SQL Server 2012 è uscito!

E’ finalmente uscito il mio nuovo libro “SQL Server 2012 – Guida all’uso”, edito da Edizioni FAG di Milano.

Il libro è la riedizione, riveduta, corretta e ampliata del precedente libro dedicato alla versione 2008: dalle circa 350 pagine precedenti, in questo libro sono arrivato quasi a 600 pagine.

Data la mia natura di programmatore .NET, poi, ci sono ben 7 capitoli dedicati alla programmazione in Visual Studio 2012 (nei linguaggi VB e C#) di applicazioni che utilizzano database di SQL Server 2012.

Tutte le informazioni qui: http://books.deghetto.it/main/sqlserver2012.aspx.

Il mio booksite

Finalmente ho trovato il tempo di creare il mio booksite (http://books.deghetto.it) con le pagine dedicate ciascuna a un mio libro.

In ogni pagina è possibile trovare:

  • informazioni sul libro (formato, paginazione, editore, ISBN, immagine di copertina, collana, descrizione ecc.)
  • indice, indice analitico, introduzione ed eventuale prefazione
  • almeno un capitolo di esempio
  • download degli esempi (database e/o sorgenti di progetti Visual Studio)
  • recensioni
  • eventuali commenti dei lettori

Non ho ancora completato tutte le singole pagine, ma se visitate di tanto in tanto il sito, troverete le informazioni sempre più complete!

 

image

image

Curiosità

Ecco la mappa con segnati tutti i Paesi del mondo dai quali è stato visto il mio blog dal 25 Febbraio 2012 a oggi… Impressionante!

 

image

Nuove iniziative editoriali: monografie

Sono ormai alcuni anni che scrivo libri sulla programmazione .NET e sui database. Inoltre scrivo e pubblico alcune recensioni su libri di altri autori, specialmente stranieri.

Quasi tutti questi libri hanno una caratteristica (compresi i miei): sono dei “tomi” sempre più grandi! Il mio libro su VB 2010 è composto da circa 800 pagine, ma ci sono libri che vanno oltre le 1400 pagine.

Indubbiamente il vantaggio principale è il fatto di avere tutto quello che può servire in un libro solo, in un’opera spesso ben coordinata e senza ripetizioni. L’aspetto negativo è il costo che diventa sempre più importante (e di questi tempi…). Un altro aspetto negativo è il peso del volume, compensato però dai sempre più diffusi ebook (PDF, Kindle…).

Alcuni lettori mi hanno espresso la loro perplessità sulla dimensione dei libri: preferirebbero qualcosa di più compatto, di maneggevole e ovviamente di meno costoso.

Tempo fa avevo proposto al mio editore (Edizioni FAG) di suddividere il “librone” in più libri, ma non c’è stato molto interesse nella mia idea, nella convinzione che i “libroni” vendano di più.

Dato che io sono come “San Tommaso” che non ci crede se non ci mette il naso, ho deciso di lanciarmi in questa nuova idea.

Da un lato continuerò a produrre i “libroni” con la FAG, per chi preferisce questo formato, mentre dall’altro mi produrrò da solo, in self publishing, preparando una serie di libri più compatti (tendenzialmente di 200-250 pagine l’uno), delle “monografie” su alcuni temi.

Il mio progetto potrebbe prevedere i seguenti libri:

  • Visual Studio Express 2012 for Windows Desktop (ambiente di sviluppo)
  • Visual Studio Express 2012 for Web (ambiente di sviluppo)
  • Visual Studio Express 2012 for Windows 8 (ambiente di sviluppo)
  • Visual Studio 2012 Ultimate (ambiente di sviluppo)
  • Il linguaggio Visual Basic
  • Il linguaggio C#
  • La programmazione orientata agli oggetti con Visual Basic e C# (2 libri distinti?)
  • Applicazioni Console e Windows Form in VB e C# (2 libri distinti?)
  • WPF
  • Applicazioni Windows Store (per Windows 8)
  • … altri …

Al momento sto già lavorando al primo libro di questo elenco, mentre per gli altri vedremo quanto interesse susciterà la mia iniziativa.

Una precisazione: i libri qui proposti non saranno una riproposizione del “librone” in forma frammentata. Infatti saranno riscritti interamente, con una loro connotazione specifica (evitando così anche eventuali problemi di copyright e di sovrapposizione commerciale con il “librone”).

Bene, detto questo, a voi la parola!

Se volete commentare o fare le vostre richieste, scrivete a books@deghetto.it.

Se invece volete solo essere informati sulle uscite, potete tenere d’occhio questo blog oppure iscrivervi alla mailing list: mailinglist@deghetto.it.

Cambiamenti alle licenze di Microsoft Expression

image

Microsoft ha annunciato un grande cambiamento nella politica delle licenze per Microsoft Expression (http://www.microsoft.com/expression/index.html).

In particolare, Expression Blend sarà completamente integrato con Visual Studio 2012. In aggiunta, è già disponibile in preview il supporto a WPF, a Silverlight e a SketchFlow, mentre sarà rilasciato come Update 2 di Visual Studio 2012.

Expression Studio 4 Ultimate e Expression Studio 4 Web Professional non sono più commercializzati. Per chi li ha già acquistati, saranno supportati da Microsoft per tutto il loro ciclo di vita.

Expression Design 4 e Expression Web 4 diventano gratuiti e non hanno più supporto tecnico da Microsoft.

Expression Encoder 4 diventa gratuito, mentre la versione “Pro” sarà venduta fino al 2013.

In sostanza aumentano le possibilità per sviluppare applicazioni, abbassando notevolmente i costi di acquisizione delle licenze. Questo fatto è sicuramente positivo, soprattutto in periodi difficili come questo.

Libro "Visual Basic 2012 spiegato a mia nonna" – codice di esempio

Avendo iniziato a preparare la nuova edizione del mio libro “Visual Basic 20xx spiegato a mia nonna” per la versione 2012, ho adottato CodePlex per depositare i sorgenti degli esempi del libro, così come ho fatto per i sorgenti degli ultimi miei libri.

Questa scelta va incontro a due esigenze: maggiore sicurezza nella gestione delle versioni del codice e maggiore facilità nel condividere il codice su Internet con i lettori. Entrambe le esigenze trovano una buona soluzione in CodePlex, ma soprattutto la seconda perché è possibile “navigare” nei sorgenti senza dover scaricare nulla, consultando direttamente dal proprio browser Internet. Se poi qualcuno vuole scaricare l’intera collezione di esempi lo può fare facilmente e gratuitamente.

Se volete seguire, quindi, l’andamento del libro da oggi alla sua pubblicazione, potete farlo visitando il seguente indirizzo:

http://vb2012samnbook.codeplex.com/

I sorgenti si trovano nella sezione Source code e possono essere scaricati cliccando sul pulsante Download.

"OFFICE 2013", il mio nuovo libro è pronto!

Finalmente anche il mio libro su “OFFICE 2013” è pronto: 302 pagine di spiegazioni sull’installazione, sulla documentazione e sulle risorse disponibili, sulle novità di Office 2013 e sulle caratteristiche in generale, oltre a un approfondimento su Word 2013 e su Excel 2013, per utilizzare queste applicazioni al meglio.

Il libro è un buon acquisto per studenti, impiegati e anche, in generale, per chi vuole conoscere questa nuova versione della suite per ufficio tra le più diffuse al mondo.

Il libro è un’ottima scelta anche per chi deve sostenere una prova di concorso per l’assunzione in un ente pubblico o per chi deve sostenere una selezione in ambito privato, quando è richiesto l’uso di Office.

Alla fine di ogni capitolo (tranne quello relativo all’installazione) è inserita una sezione di esercizi da svolgere autonomamente per prendere pratica con le applicazioni di Office.

Per informazioni sul libro potete consultare il sito http://books.deghetto.it (in costruzione) oppure scrivere all’indirizzo books@deghetto.it (casella già attiva).

Se volete acquistare il libro avete le seguenti opzioni:

AMAZON.IT – Kindle (5,14 Euro): http://bit.ly/Vjj4Uw

AMAZON.IT – Libro (24,61 Euro): http://bit.ly/VAbCWQ

ILMIOLIBRO.IT – Libro (25,00 Euro): http://bit.ly/TEEpeA

Per chi non ha Kindle (l’e-reader di Amazon) vi ricordo che potete scaricare un’applicazione gratuita per il PC (Windows XP, Vista, Windows 7 e Windows 8), per tablet (iPad, Android e Windows 8) e per cellulari (per il momento solo iPhone e Android): http://amzn.to/RAAjVF.

In questo modo potrete acquistare il libro con un prezzo veramente economico!

Libro "SQL Server 2012 – Guida all’uso"… La copertina definitiva.

Sono finalmente arrivato alla fase finale del lavoro sul mio nuovo libro “SQL Server 2012 – Guida all’uso“, ovvero la verifica dell’impaginato e la composizione della copertina.

Questa è l’immagine della copertina. Niente male, eh?

In libreria da Gennaio 2013, dopo le vacanze di Natale…

image

Visual Studio 2012 Update 1

Nell’ottica di un aggiornamento continuo di Visual Studio 2012, promesso dal team di sviluppo di Visual Studio, è uscito il primo aggiornamento chiamato Visual Studio 2012 Update 1 ed è quindi disponibile per il download al seguente indirizzo:

http://www.microsoft.com/visualstudio/ita/downloads#d-visual-studio-2012-update

L’aggiornamento non è solamente un insieme di correzioni di bug, ma introduce anche alcune nuove caratteristiche. Per un piccolo approfondimento sulle nuove caratteristiche potete visitare l’articolo pubblicato sul blog di Somasegar:

http://blogs.msdn.com/b/somasegar/archive/2012/11/26/visual-studio-2012-update-1-now-available.aspx

Recensione del libro "Visual Basic 2012 Programmer’s Reference" di Rod Stephens (Wrox)

image

Rod Stephens
ISBN: 978-1-1183-1407-4
840 pagine – Agosto 2012

Booksite: http://bit.ly/U22EBa

Ho avuto il grande piacere e l’onore di ricevere da Wiley.com una copia (in lingua inglese) del libro “Visual Basic 2012 Programmer’s Reference“, edito da Wrox e scritto da Rod Stephens, un Microsoft MVP per la categoria Visual Basic come me. Approfitto, quindi, a fare una breve recensione sui contenuti del libro.

Prima di tutto, un po’ di numeri: il libro è formato da 771 pagine (escluse le varie parti introduttive, indice degli argomenti, indice generale e indice analitico), suddivise in 30 capitoli più 22 appendici. Il libro è piuttosto corposo anche in dimensioni, come potete immaginare, ma è un formato che mi piace molto: 18,5 cm. di larghezza per 23 cm. di altezza, mentre lo spessore è di circa 4 cm.

Il libro è un aggiornamento dell’edizione precedente (Visual Basic 2010 Programmer’s Reference), nell’ottica di fornire una guida pratica e un riferimento alle numerose funzionalità di Visual Studio 2012 correlate al linguaggio Visual Basic 2012.

Il libro è meno corposo dell’edizione precedente (1170 pagine) per vari motivi: è stata eliminata l’intera parte dedicata alla grafica (116 pagine), sono stati ottimizzati gli spazi e la posizione di molte immagini e sono state tolte le note che potevano apparire più banali o irrilevanti. Ciò nonostante è stato aggiunto un paragrafo dedicato alle applicazioni Metro-style che ovviamente nella versione 2010 non esistevano. Il riferimento a “Metro” (il nome in codice della nuova interfaccia di Windows 8 e poi “bandito” da Microsoft) è presente nel libro solo per un aspetto pratico e cronologico: il libro è stato scritto e pubblicato prima del cambio di denominazione delle applicazioni per Windows 8, quindi non poteva essere aggiornato sul nome Metro.

In dettaglio, gli argomenti trattati dai vari capitoli sono i seguenti:

PART I – IDE

Cap. 1 – Introduction to the IDE.
Cap. 2 – Menus, Toolbars, and Windows.
Cap. 3 – Windows Forms Designer.
Cap. 4 – WPF Designer.
Cap. 5 – Visual Basic Code Editor.
Cap. 6 – Debugging.

PART II – GETTING STARTED

Cap. 7 – Selecting Windows Forms Controls.
Cap. 8 – Using Windows Forms Controls.
Cap. 9 – Windows Forms.
Cap. 10 – Selecting WPF Controls.
Cap. 11 – Using WPF Controls.
Cap. 12 – WPF Windows.
Cap. 13 – Program and Module Structure.
Cap. 14 – Data Types, Variables, and Constants.
Cap. 15 – Operators.
Cap. 16 – Subroutines and Functions.
Cap. 17 – Program Control Statements.
Cap. 18 – Error Handling.
Cap. 19 – Database Controls and Objects.
Cap. 20 – LINQ.
Cap. 21 – Metro-Style Applications.

PART III – OBJECT-ORIENTED PROGRAMMING

Cap. 22 – OOP Concepts.
Cap. 23 – Classes and Structures.
Cap. 24 – Namespaces.
Cap. 25 – Collection Classes.
Cap. 26 – Generics.

PART IV – INTERACTING WITH THE ENVIRONMENT

Cap. 27 – Printing.
Cap. 28 – Configuration and Resources.
Cap. 29 – Streams.
Cap. 30 – Filesystem Objects.

PART V – APPENDICES

A – Useful Control Properties, Methods, and Events.
B – Variable Declarations and Data Types.
C – Operators.
D – Subroutine and Function Declarations.
E – Control Statements.
F – Error Handling.
G – Windows Forms Controls and Components.
H – WPF Controls.
I – Visual Basic Power Packs.
J – Form Objects.
K – Classes and Structures.
L – LINQ.
M – Generics.
N – Graphics.
O – Useful Exception Classes.
P – Date and Time Format Specifiers.
Q – Other Format Specifiers.
R – The Application Class.
S – The My Namespace.
T – Streams.
U – Filesystem Classes.
V – Visual Studio Versions.

Da quello che si può vedere nell’indice dei capitoli, l’autore non tralascia nessun argomento importante e inserisce numerosissimi frammenti di codice.

Il codice è commentato bene ed è scaricabile gratuitamente dal booksite (l’indirizzo è indicato all’inizio di questa recensione).

Mi ha stupito la incredibile numerosità di appendici, ciascuna delle quali ha numerose tabelle ma anche delle spiegazioni testuali, completando il libro con moltissime informazioni ben organizzate.

Senza dubbio è un libro che può dare molto a chi conosce la lingua inglese (non è prevista la traduzione in italiano) e che trova una giusta collocazione sulla scrivania, vicino al computer, per essere sempre a disposizione per una rapida consultazione.

L’impaginazione è ottima, il font di caratteri utilizzato è molto leggibile e il codice è bene indentato. È dotato di numerose immagini che semplificano la spiegazione di vari passaggi complessi, ma anche di tabelle chiare che fanno di questo libro un vero testo di riferimento per programmatori.

È un libro da leggere, da consultare e da sperimentare con tutto il codice messo a disposizione dall’autore.

Many thanks to Rod Stephens and to my friend Dave Allen (Wiley.com).

Rilasciato SQL Server 2012 Service Pack 1 (SP1)

Una settimana fa è stato rilasciato il Service Pack 1 (SP1) per SQL Server 2012: potete trovare i pacchetti di installazione alla seguente pagina

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

Prenotate il mio libro su "Office 2013"

In questi giorni sto scrivendo un nuovo libro, questa volta sulla nuova versione di Microsoft Office: Office 2013.

Il libro sarà pubblicato su Amazon.it, in versione cartacea e per Kindle. Sarà anche possibile “prenderlo in prestito”, attraverso i canali di Amazon “Kindle Direct Publishing“, per un costo veramente basso che più basso non si può!

Conterrà una trattazione dettagliata e ricca di immagini, di molti argomenti tra i quali i seguenti:

  • installazione di Office 2013;
  • documentazione e risorse su Office 2013;
  • le novità più importanti della nuova versione;
  • Word 2013;
  • Excel 2013;
  • PowerPoint 2013;

Mentre il mio libro su Office 2010 (pubblicato anch’esso su Amazon.it) era solamente una breve introduzione (meno di 150 pagine), la nuova edizione del libro su Office 2013 sarà decisamente più estesa, con molte spiegazioni in più e quindi anche più voluminosa.

Poiché ho scelto di scrivere questo libro “andando all’avventura”, senza un editore e quindi utilizzando solamente gli strumenti di “self publishing“, ho la necessità di diffondere il più possibile queste informazioni in modo da poter vedere ricompensati gli sforzi che sto facendo per offrire qualcosa di diverso e di più economico, adatto a un pubblico di vario genere: studenti, impiegati, docenti di corsi di alfabetizzazione informatica o semplicemente utenti che vogliono sapere cosa c’è di nuovo nella nuova versione di Office.

Per avere una misura più precisa di come potrà essere il vostro interesse, vi chiedo due semplici cose che non costituiscono nessun impegno da parte vostra, né di tempo, né di denaro:

  1. scrivetemi all’indirizzo books@deghetto.it per manifestare il vostro interesse verso il libro: non si tratta di una prenotazione e non dovete pagare nulla. Semplicemente in cambio del vostro interesse, sarete informati non appena il libro sarà pubblicato: se vi interessa e se il prezzo vi sembrerà adeguato lo potrete acquistare su Amazon.it; se non vi interessa, amici come prima;
  2. aiutatemi a diffondere il più possibile il link sul libro: anche in questo caso potete scrivermi a books@deghetto.it e vi manderò tutte le informazioni necessarie. Tutti i canali sono buoni: Facebook, Twitter, e-mail, blog, community, forum, passaparola, SMS…

Grazie per la collaborazione e a presto!

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 846 follower