sabato 31 gennaio 2009

Recensione del libro Photoshop CS4 Fotoritocco creativo













In questa recensione vedremo Adobe Photoshop CS4 Fotoritocco creativo. Si tratta di un libro completamente a colori scritto da Luca Bertolli per Edizioni FAG di Milano. Leggendo questo libro imparerete a usare la nuova versione di Photoshop in modo semplice e intuitivo, con esempi pronti all'uso, predisposti per apprendere i potenti strumenti di fotoritocco di questo programma.

La scheda del libro:

Autore: Luca Bertolli
Editore: Edizioni FAG Milano
Prezzo: € 29,90
Caratteristiche: 224 pag - 17x24 col.
ISBN: 9788882337735
Anno di edizione: 2009
Numero dell'edizione: 1

I capitoli del libro

Questo libro nasce dalla collaborazione tra il portale Come fare a... (http://www.comefarea.it) e Edizioni FAG di Milano. Si compone di diciannove capitoli tramite i quali, grazie anche alle numerose illustrazioni a colori, potrete imparare a padroneggiare Adobe Photoshop CS4, seguendo i numerosi esempi di fotoritocco e fotomontaggio disponibili.
Una cosa molto importante è che gli esempi dell'intero libro sono realizzati con strumenti non distruttivi, infatti disattivando tutti i livelli si ritorna alla foto originale che rimane quindi sempre ricuperabile. Ma vediamo in dettaglio come è composto il libro

Capitolo 1: Impostiamo l'ambiente di lavoro
Il primo capitolo del libro è di tipo introduttivo, ma è molto importante perché spiega come impostare l'ambiente di lavoro per seguire gli articoli e le novità principali del nuovo Adobe Photoshop CS4. Per i nostalgici alla fine del capitolo è presente anche una guida per riportare l'interfaccia del programma alla versione precedente.

Capitolo 2: Primi passi nel fotoritocco
Già nel secondo capitolo si comincia subito con i fotoritocchi pratici, in questo caso si parte da delle cose di base, come correggere il colore e le tonalità delle nostre foto, fare un po' di pulizia e correggere gli occhi rossi.

Capitolo 3: Creiamo una ragazza copertina
Con il terzo capitolo si passa a qualcosa di più divertente, riprendendo la foto ritoccata nel capitolo precedente, si realizza una ragazza copertina, come quelle che si vedono sulle riviste e i calendari, mostrando come si possa ricostruire completamente la pelle.

Capitolo 4: Make-up digitale degli occhi
Il quarto capito che può essere agganciato al quinto, si occupa di trucco digitale degli occhi, mostrando come applicare eye liner e ombretti, trasformandoci in perfetti truccatori digitali.

Capitolo 5: Rossetto digitale
Dopo aver truccato gli occhi nel capitolo precedente, nel quinto capitolo si passa alla realizzazione di un effetto di rossetto digitale, che sarà applicato sulle labbra carnose di una bella modella.

Capitolo 6: Cambiare il colore degli occhi
Il sesto capitolo di questo libro, spiega come cambiare il colore degli occhi con una tecnica molto efficace che può essere usata anche per evidenziare maggiormente il colore naturale.

Capitolo 7: Rimozione delle abrasioni
A volte capita che una bella foto sia rovinata da tagli o abrasioni, nel caso di bambini è una situazione che può capitare. In questo capitolo verrete trasformati in dei medici digitale e vedrete come curare una simpatica bambina che si è fatta male a una guancia.

Capitolo 8: Il fascino del bianco e nero
Le foto in bianco e nero, hanno un particolare fascino che spesso viene usato dai fotografi famosi. Con Photoshop CS4 e lo strumento Bianco e nero, potrete cimentarvi anche voi nella trasformazione delle vostre foto a colori. In questo capitolo, l'ottavo, vedrete come ottenere i risultati migliori.

Capitolo 9: Scontornare oggetti con le maschere
Nel capitolo nove, si parlerà delle maschere, una delle cose più difficili da fare è scontornare gli oggetti. In questo capitolo si partirà da oggetti di facile e media complessità. Si vedranno sia le maschere vettoriali, adatte agli oggetti dai contorni definiti, sia le maschere di pixel, che grazie alla nuova paletta Maschere, permettono di ottenere efficaci maschere anche su oggetti meno definiti.

Capitolo 10: Scontornare i capelli di una donna
Dopo aver visto come usare le maschere vettoriali e di pixel nel capitolo precedente, nel decimo capitolo si passa qualcosa di più complesso, ossia lo scontorno dei capelli spumosi di una donna, con una tecnica molto laboriosa ma efficace.

Capitolo 11: Correzione tonale e di colore con Curve e Livelli
Questo capitolo diverso da tutti i precedenti, non si occupa di un ritocco particolare, ma è molto importante perché spiega come si usano i Livelli con i loro istogrammi e le Curve, per regolare colori e tonalità delle immagini. Si tratta di due strumenti piuttosto complessi, ma molto potenti che vi verranno chiariti in questo capitolo.

Capitolo 12: Trasformarsi in Zombie
Con il dodicesimo capitolo si comincia a giocare sulle foto, con un esempio su come trasformarsi in mostruosi zombie, con gli strumenti di Photoshop CS4 e un semplice fotomontaggio.

Capitolo 13: Trasformiamoci in feroci vampiri
Il tredicesimo capitolo prende in esame un'altra icona dell'immaginario horror, i vampiri. In questo capitolo scoprirete come allungare i vostri canini e come dare uno sguardo famelico con dei fantastici occhi rossi.

Capitolo 14: La ragazza demone
Il capitolo quattordici chiude la parte sui mostri, e lo fa in grande stile, trasformando una splendida ragazza in un mostruoso demone che alla fine del capitolo, viene perfettamente integrata in uno sfondo più adatto di quello originale.

Capitolo 15: le iSiluette
Il capitolo 15 rientra nel settore dei tutorial giocosi, infatti vi mostra come trasformarvi in una delle iSiluette, rese famose dalle pubblicità dell'iPod.

Capitolo 16: Scala in base ai contenuti
Nel capitolo sedici viene spiegato l'uso di una delle novità più incredibili del nuovo Photoshop CS4, si tratta della funzione Scala in base ai contenuti, che permette di ridimensionare le foto, senza deformarle. Ad esempio è possibile trasformare una foto orizzontale un una verticale senza alterare le dimensioni dei personaggi, ma riadattando lo sfondo.

Capitolo 17: Foto panoramiche
Questo capitolo, il diciassettesimo, è molto interessante per chi va in vacanza, infatti tramite una serie di scatti sequenziale è possibile creare una foto panoramica che permette così di rendere meglio l'idea di quegli spettacoli della natura che con un obiettivo normale non è possibile inquadrare per intero. Vengono dati anche dei suggerimenti per eseguire questo tipo di foto senza cavalletto, assumendo una postura del corpo corretta.

Capitolo 18: Effetto luce soffusa
Nel capitolo diciotto, viene preso in esame un effetto molto in uso tra i fotografi dei matrimoni, si tratta dell'effetto luce soffusa, che cala le persone in un effetto fiabesco.
Questo effetto viene inoltre preso come esempio, per imparare a usare le azioni, ossia un insieme di istruzioni che Photoshop è in grado di eseguire in batch su numerose foto, in modo completamente automatico.

Capitolo 19: Riflessi sull'acqua
Con l'ultimo capitolo, il diciannovesimo, si vede come realizzare da zero un affascinate effetto onde sull'acqua. In questo caso la modella viene inserita in un'ambientazione notturna che da un effetto magico al tutto.

Come acquistare il libro

Questo libro lo potete acquistare nelle migliori librerie o direttamente online sul sito di Edizioni FAG all'indirizzo: http://www.fag.it/scheda.aspx?ID=29915

Conclusioni

In questa recensione abbiamo visto un interessante libro che tramite diversi esempi di fotoritocco, insegna come usare il nuovo Adobe Photoshop CS4 e i suoi numerosi esempi. Molto interessante la parte sull'uso delle maschere e per chi si vuole cimentare sono presenti tre esempi di trasformazioni degne di un film horror. Il libro grazie a un linguaggio semplice e chiaro e alle numerose immagini a colori risulta semplice da seguire. Consigliato sia a chi non ha mai usato Photoshop, sia a chi già lo usa e vuole imparare nuove tecniche e i nuovi strumenti messi a disposizione.

regular experssion iban

L'espressione regolare qui di seguito, permette la validazione di un codice formato iban

IT\d{2}[ ][a-zA-Z]\d{3}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{3}|IT\d{2}[a-zA-Z]\d{22}

Introduzione alla programmazione Silverlight 2

Riporto l'articolo pubblicato per il sito iprogrammatori http://www.iprogrammatori.it/articoli/programmazione/art_introduzione-alla-programmazione-silveli_632.aspx



In questo articolo, vedremo come iniziare a muovere i primi passi con la versione 2.0 (beta) di Silverlight.


Con Silverlight 2.0 si possono creare dei siti web, molto interrativi, e con certe animazione, per visualizzare le pagine che utilizzano questa tecnologia, occorre installare per il proprio browser un plug-in, scaricabile dal seguente sito http://www.microsoft.com/silverlight/resources/install.aspx?v=2.0 altrimenti nella pagina web non verrà visualizzato l'animazione ma verrà segnalato all’utente di scaricare tale componente.


Silverlight 2.0 è un Frame work, che permette di migliorare l’interattività tra il sito web e l’utente in modo più accattivante, con questa nuova versione è possibile utilizzare la tecnologia .Net, a differenza della versione precedente in cui si usava solo il linguaggio di scripting Javascript.


Per iniziare a sviluppare siti web per questo tipo di applicazione, potete visitare il seguente sito http://silverlight.net/GetStarted/ portale ufficiale, di Silverlight. Oltre a Visual Studio 2008, occorre installare il plug-in per il browser, in modo che si possano eseguire le applicazione e vedere il risultato finale, ed il componente per Visual Studio 2008 scaricabile dal seguente sito http://www.microsoft.com/downloads/details.aspx?FamilyId=50A9EC01-267B-4521-B7D7-C0DBA8866434&displaylang=en


Ricordiamo che il plung-in può essere installato per qualsiasi browser ed altri sistemi operativi.



Installazione dei componenti.


Dopo aver installato il plung-in e il componente aggiuntivo per Visual Studio 2008 (visitate il seguente sito http://silverlight.net/GetStarted/ ) il nostro ambiente di sviluppo è pronto per realizzare la prima applicazione. Quando si apre Visual Studio 2008, avremo nei tipi di progetti, una nuova voce, denominata silver light, che selezionandola, verranno riportati i modelli di progetto di questo tipi di progetti.

Figura 1


La prima applicazione.


Dopo aver selezionato il linguaggio di proprio interesse (Visual Basic Net o C#) selezionate come tipo di progetto la voce “Silverlight” a questo punto, come modello di progetto, selezionate “Silverlight Application” verrà visualizzata una finestra (Figura 2) la quale che ci chiede in che modo vogliamo testare la nostra applicazione, se una nuova soluzione web per ospitare il controllo o creare una pagina html di test per questo progetto.




Figura 2


Selezioniamo la seconda opzione.


Verrà aperto il nostro ambiente di lavoro, come si vede dalla figura 3, nella parte centrale, troviamo la parte designer, ossia dove collocare i vari controlli e nella parte inferiore centrale, il relativo codice.


La barra degli strumenti (figura 4), presenta alcuni controlli disponibili per questo tipo di progetto.


Nel progetto si trovano due file. Il file App.xaml e App.xaml.vb i quali vengono utilizzati per la configurazione dell’applicazione Siverlight, in questi file, si verificano gli eventi di avvio e chiusura, e risorse. Mentre il file Page.xaml e Page.xaml.vb sono utilizzati per la parte grafica del nostro applicativo, per gestire i vari controlli.




Figura 3

Figura 4



Ora scriveremo un esempio, molto semplice, in pratica avremmo un pulsante, che al click su esso, visualizzerà de testo.


Trascianiamo nella sezione XAML (dove si vede del codice) il controllo StackPanel il quale farà da contenitore.


All’interno di questo tag , trasciniamo il controllo TextBlock ed impostiamo la proprietà Name con il valore “TxtBTesto”, a seguire inseriamo un controllo button, per quest’ultimo impostiamo la proprietà Content con il seguente valore “Visualizza Testo” Name con il valore “BtnProva” e click con il valore “Button_Click”



xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"


xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"


Width="400" Height="300">










La proprietà content, del controllo Button, permette di visualizzare del testo nel pulsante.


A questo punto, facciamo faccio digitiamo il tasto destro del mouse, nel nome evento del click (“Button_Click”) (Figura 5) in questo modo verrà visualizzato un menu di scelta rapida.

Figura 5


Selezionando la voce Navigate to Event Handler, verrà aperto il file per la scrittura nel codice, nel punto dove viene scatenato l’evento click del pulsante.


A questo punto inseriamo scriviamo la seguente riga di codice


TxtBTesto.Text = "Testo"


Questo codice, imposta la proprietà Text, del controllo TextBloc, con il valore che gli stiamo assegnando.


Compilate il progetto, ed esegui telo, verrà aperto il browser predefinito, con una pagina html denominata testpage.html



La pubblicazione:


Se vogliamo condividere con altri utenti, il nostro progetto Silverlight, possiamo usufruire gratuitamente di questo servizio di hosting http://silverlight.live.com/Default.aspx?wa=wsignin1.0 il quale offre ben 10 gb di spazio, messi a disposizione per noi sviluppatori.Content="Visualizzza Testo" Name="BtnProva" Click="Button_Click">



Conclusioni.


In questo articolo, si è visto come prepare l'ambiente per lo sviluppo di applicazione web di nuova generazione, in particolare con Silverlight 2.0, inoltre la creazione di un primo progetto, ha permesso di avvicinarsi all'ambiente di sviluppo.

Salvere in un file immagine, la visualizzazione a video in .Net (VB.Net e C#

Vediamo una tecnica di come catturare ciò che viene visualizzato sullo schermo del pc tramite la tecnologia .Net i linguaggi utilizzati sono Visual Basic Net e C#.



Questa tecnica può tornare utile, nel caso che si vuole salvare in un file immagine (jpg) ciò che viene rappresentato a video.


Creazione del progetto.


Dopo aver creato un progetto di tipo windows applicazion, inseriamo nella form un pulsante, il quale avrà il compito di richiamare una funzione per la cattura delle schermate.


Ora passiamo in visualizzazione codice. Per catturare le schermate, dobbiamo utilizzare le api di windows, inseriamo il namespace per la gestione delle api.
Qui di seguito si riporta il frammento di codice.


VB.Net

Imports System.Runtime.InteropServices

C#

using System.Runtime.InteropServices;


A livello di form inseriamo la dichiarazione di api, che utilizzeremo per la gestione delle grafica e cattura dello schermo.


Le api da utilizzate sono BitBlt della dll gdi32 , getdc e ReleaseDc della dll user32.


Di seguito si riporta le dichiarazioni di api.


VB.Net

'Dichiarazione di api


Private Shared Function BitBlt(ByVal hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hdcSrc As IntPtr, _

ByVal nXSrc As Integer, ByVal nYSrc As Integer, ByVal dwRop As Integer) As Boolean

End Function


Public Shared Function GetDC(ByVal hWnd As System.IntPtr) As System.IntPtr

End Function



Public Shared Function ReleaseDC(ByVal hWnd As System.IntPtr, ByVal hDC As System.IntPtr) As Integer

End Function

C#

//Dichiarazione di api

[DllImport("gdi32.dll")]

private static extern bool BitBlt(


IntPtr hdcDest,


int nXDest,


int nYDest,


int nWidth,


int nHeight,


IntPtr hdcSrc,


int nXSrc,


int nYSrc,


System.Int32 dwRop


);


[DllImport("User32.dll")]

public extern static System.IntPtr GetDC(System.IntPtr hWnd);

[DllImport("User32.dll")]


public extern static int ReleaseDC(System.IntPtr hWnd, System.IntPtr hDC);


Ora non resta che scrivere la funzione per la cattura ed il salvataggio delle schermate


La funzione riportata qui di seguito, utilizza le api elencate in precedenza e salva in un file jpg ciò che si trova video.


Si riporta il frammento di codice relativo alla funzione di cattura video.



VB.Net

Private Sub Cattura()

Dim desktopDC As System.IntPtr = GetDC(System.IntPtr.Zero)


Dim bm As New Bitmap(SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height)


Dim g As Graphics = Graphics.FromImage(bm)


Dim bmDC As System.IntPtr = g.GetHdc()


BitBlt(bmDC, 0, 0, bm.Width, bm.Height, desktopDC, _

0, 0, 13369376)


ReleaseDC(System.IntPtr.Zero, desktopDC)


g.ReleaseHdc(bmDC)


g.Dispose()

' Salvo l'immagine in formato jpeg

Dim filename As String = "c:\immagine.jpg"

bm.Save(filename, System.Drawing.Imaging.ImageFormat.Jpeg)

MessageBox.Show("Immagine salvata: " + filename)




End Sub

C#

private void Cattura()

{

System.IntPtr desktopDC = GetDC(System.IntPtr.Zero);


Bitmap bm = new Bitmap(SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height);


Graphics g = Graphics.FromImage(bm);


System.IntPtr bmDC = g.GetHdc();




BitBlt(bmDC, 0, 0, bm.Width, bm.Height, desktopDC, 0, 0, 0x00CC0020 );




ReleaseDC(System.IntPtr.Zero, desktopDC);


g.ReleaseHdc(bmDC);


g.Dispose();

// Salvo l'immagine in formato jpeg

string filename = "c:\\immagine.jpg";

bm.Save(filename, System.Drawing.Imaging.ImageFormat.Jpeg);

MessageBox.Show("Immagine salvata: " + filename);




}





Dal pulsante, richiamiamo la funzione per la cattura dello schermo.


Di seguito si riporta le suddette operazioni




VB.Net

Private Sub BtnCattura_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCattura.Click

Cattura()

End Sub

C#

private void BtnCattura_Click(object sender, EventArgs e)

{

Cattura();

}



Conclusioni


In questo articolo è stata illustrata una tecnica per la cattura video, il codice può essere implementato per fare software che possono tornare utile per la gestione remota o assistenza.


Tramite la parola download potete scaricare il file di esempio utilizzato nell’articolo.



Download.



venerdì 30 gennaio 2009

Recensione libro: Introducing Microsoft Silverlight 2, Second Edition


Scheda del libro:




























Autore:
Laurence Moroney
Prezzo:$ 34,99
Caratteristiche
352 pagine
ISBN -13:9780735625280
anno di edizione18/06/2008
Livello:Tutti livelli
Argomento:Microsoft & .NET, Architecture and Analysis
LinguaInglese

Il libro Introducing Microsoft Silverlight 2, Second Edition http://www.microsoft.com/mspress/companion/9780735625280/ edito della casa editrice Microsoft press http://www.microsoft.com/mspress/ è un libro rivolto a coloro che si vogliono avvinare a questo nuovo approccio alla programmazione web. Qualche mese fa, è stata rilasciata la versione finale di Silverlight 2.0, il quale permette di visualizzare siti web con una maggiore interratività da parte dell'utente, e rendere il sito più accattivamente.


Il libro scritto in lingua inglese e con il linguaggio di programmazione C#, guida il lettore a comprendere questa nuova tecnologia per la creazione dei siti web, con una certa professionalità.


L'autre del libro Laurence Moroney http://blogs.msdn.com/webnext è un esperto della tecnologia Microsoft, in particolare riguardante Silverlight, sicurezza web e Windows Presentation Foundation, al punto che è stato nominato Evangelist, riconoscimento che Microsoft assegna ai propri dipendenti, che si sono distinti per la loro professionalità. Attualmente l'autore del libro, vanta centinaia di pubblicazioni, tra cui le pubblicazioni di articoli sia on line che su stampa.


Il libro è composto da 14 capitoli, suddiviso in due parti, nella prima parte, vengono fornite le nozioni riguardante la gestione di Silverlight, con i vari strumenti (Visual Studio Express, ecc) e l'architettura del sistema, mentre nella seconda parte, si passa alla vera e propria programmazione di questo nuovo modo di fare web.


Nel libro non è incluso nessun cd-rom o dvd, gli esempi tutti scritti con il linguaggio di programmazione C#, si possono scaricare dal seguente sito http://www.microsoft.com/mspress/companion/9780735625280/


Ma vediamo in dettaglio i vari capitoli di questo libro.


Con il primo capito, inizia la prima parte del libro, in questo capitolo viene fornita al lettore un introduzione allo sviluppo Silverlight. Nelle prime pagine, viene illustrata l'architettura di questo sistema, il suo funzionamento, i file xaml e qualche frammento di codice, per far comprendere al lettore cosa c'è alla base di questa tecnologia. Continunando per il capitolo, viene illustrato come gli strumenti (Expression Encoder) possono aiutare l'utente nella creazione di siti applicando effetti animati.


Il secondo capitolo, riguarda la creazione di siti web con Silverlight, tramite l'ambiente di sviluppo Express Blend. Va ricordato che questi pacchetti, non sono free, ma si possono scaricare delle versioni trial, limitati nel tempo per fare delle prove. In questo capitolo, vedremo diversi esempi di codice, tutti con il linguaggio di programmazione C#. Continuando per il capiolo, sono illustrati le varie finestre messe a disposizione dall'ambiente di sviluppo Microsoft Express Blend, le varie funzionalità offerte. Alcuni esempi di codice riguardante l'elemento grid, canvas, stackpanel, scrollviewer e border ed altro ancora.


Il capitolo terzo, invece illustra un altro ambiente di svluppo, Visual Studio 2008, nelle prime pagine, sono illustrati i passi per l'installazione del componente aggiuntivo per lo sviluppo di soluzioni basate su Silverlight 2.0. Terminata la parte d'installazione, si passa alla creazione di un progetto, illustrando alcuni aspetti inerenti l'ambiente di sviluppo, aspetti come la finestre delle proprietà del progetto, i riferimenti utilizzati, i file del progetto e tanto altro ancora. Terminata questa parte, viene illustrato la creazione di un gioco, questo per fare comprendere alcune forme geometre e funzionalità offerti dalla piattaforma e il ruolo delle classi per la gestione della grafica.


Con il capitolo quarto, si passa al file xaml, dopo una breve introduzione a questo nuovo elemento dello sviluppo web, troviamo nel capitolo, numerosi esempi di codice, riguardante la gestione della grafica, tramite l'ausilio di forme geomentre e classi atti alla gestione della grafica. Rettangoli, colori gradienti, cerchi, ed altri effetti che si possono applicare. Un ottimo capitolo, con numerosi esempi.


Nel quinto capitolo vedremo, come applicare sulle forme geometriche e scritte, alcuni effetti di rotazione, Nel capitolo, si trovano numerosi esempi di codice, che guidano il lettore alla gestione dei contenuti con una certa animazione. La parte conclusiva di questo capitolo, riguarda l'utilizzo di Microsoft Expression Blend, per creare effetti animati.


Con il sesto capitolo, si conclude la prima parte del libro, in questo capitolo vedremo il ciclo di vita di Silverlight nel browser, l'utilizzo di codice Javascript, gli eventi, e tanti altri aspetti, molto importanti. L'utilizzo dell'oggetto Downloader, gli elementi messi a disposizione in ambito di xaml, metodi per la gestione dei vari oggetti. e l'implementazione della tecnica del drag and drop.


Con il settimo capitolo, si passa alla seconda parte, quella dedicata alla programmazione. In questo capitolo vedremo l'utilizzo di alcuni controlli. I controlli illustrati sono il button, il checkbox, hyperlinkbutton, image, listbox, radiobutton, textblock e textbox, ognuno con un semplice esempio di codice, per far comprendere al lettore l'utilizzo del controllo. La parte conclusiva del capitolo riguarda la gestione del mouse.


Nel capitolo successivo, ossia l'ottavo, si passa ai controlli avanzati, come il controllo datagrid, di cui viene illustrato in maniera esaustiva ed approffondita, con diverse immagini ed esempi di codice. Terminata la parte riguardante il controllo datagrid, si passa ai controlli calendar e datepicker. Gli altri controlli illustrati in questo capitolo sono repeatbutton e togglebutton, scrollview, slider e watermarkedtextbox.


Con il capitolo nono, si passa alla creazione di un controllo, argomento complesso, ma che viene affrontata in maniera molto chiara, guidando il lettore passo dopo passo, alla creazione di un proprio controllo.


Nel decimo capitolo, vedremo l'utilizzo di Silverlight, con altre tecnologie, quali PHP e Java, il capitolo, vuole fornire a coloro che utilizzano la tecnologia PHP o Java, come arricchire le proprie pagine web, con questa nuova tecnologia. Inoltre nel capitolo, sono riportai altri scenari che si potrebbero verificare durante lo sviluppo software, come l'utilizzo di Ajax, web services e Asp.Net, Windows Comunication Foundation ed altro ancora.


Il capitolo 11, riguarda la parte video e l'utilizzo dello strumento gratuito Deep zoom. Nel capitolo sono illustrati i passi per la gestione dei video, in formato windows media player, e degli effetti che si possono applicare. Terminata questa parte si passa anche alla gestione dell'audio ed altri aspetti avanzati riguardante il video e suono. La parte conclusiva del capitolo è rivolta alla grafica ed al componente deep zoom.


Il capitolo 12, a differenza dei precedenti, è molto brave, illustrando il concetto e la tecnica di come utilizzare in Silverlight gli stili ed i modelli.


Il penultimo capitolo del libro, illustra l'utilizzo della tecnologia Asp.Net con Silverlight, l'utilizzo dei controlli. Vedremo come accedere al codice html, la gestione del plug in per l'installazione, il controllo mediaplayer, la gestione dei contenuti multimediali ed altro ancora.


Il capitolo 14, conclude la serie dei capitoli di questo ottimo manuale. In questo capitolo, sono illustrati alcuni aspetti, legati ai diversi linguaggi e tecnologie, come l'utilizzo di Asp.Net, Ruby, Javascript, e vari esempi.



Di seguito si riportano i capitoli del libro.



Parte 1 - Introducing Silverlight 2


1) Introducing Silverlight


2) Using Expression Blend With Silverlight 2


3) Using Visual Studio with Silverlight 2


4) XAML Basics


5) Trasformations


6) The Silverlight Browser Control


Parte 2 - Programming Silverlight 2


7) Silverlight controls: Presentation and Layout


8) Silverlight controls: Advanced Controls


9) Building you own Silverlight control.


10) building connected applications with silverlight


11) Media, Ink, and Deep Zoom


12) Styles and Templates in Silverlight 2


13) Silverlight Asp.Net Controls


14) Using Dynamic languages in Silverlight 2


Conclusioni:


Un libro molto valido, per coloro che sono interessati alla programmazione web, con questa nuova tecnologia. Il lettore, leggendo i vari capitoli, saprà utilizzare in maniera autonoma e senza troppa difficoltà questa nuova tecnologia.

mercoledì 28 gennaio 2009

Segnalazione sito: blogvista

Per tutti gli utilizzatori di Windows Vista, segnalo questo blog http://www.blogvista.it/ nel quale si trovano notizie riguardante il sistema operativo Windows Vista.
Che dirvi... buona lettura :-)))

Segnalazione sito: Gadget per Vista

Per coloro che sono interessati ai Gadget di Windows Vista, il seguente sito http://www.gadgetpervista.it/vista/ sono riportati interessanti fonti e risorse riguardante i Gadget di Windows Vista.
Il sito è in italiano.

martedì 27 gennaio 2009

Asp.Net rilevare il valore della connectionstring nel file webconfig

L'esempio di codice qui di seguito, illustra una tecnica, di come rilevare la connectionstring di SqlServer inserita nel file webconfig.
Di seguito si riporta il tag da inserire nella connectionstring




name, indica il nome della connessione, data source il nome del server, e database indica il nome del database.

A questo punto da codice, possiamo rilevare la connectionstring, da utilizzare nelle classi per la gestione dei dati.
Di seguito si riporta un frammento di codice.
Spazio dei nomi:
VB.Net
Imports System.Configuration

C#

using System.Configuration;

VB.Net
dim sConnectionString as String = ConfigurationManager.ConnectionStrings("ConDati").ConnectionString
C#

string sConnectionString = ConfigurationManager.ConnectionStrings["ConDati"].ConnectionString;

lunedì 26 gennaio 2009

Ado.Net Gestione dell'evento rowupdated per l'aggiornamento dei dati (VB.Net e C#)

La classe SqlDataAdapter, tramite il metodo update, aggiorna i dati di una fonte dati sql server tramite il metodo Update. Al termine dell'aggiornamento, si scatena un evento (rowupdated) . L'esempio qui di seguito, illustra come creare un gestore di evento per tale evento.


VB.Net


Dim con As String = "Data Source=(local);Integrated Security=SSPI; Initial Catalog=test"


Dim Sql As String = "Select * from Dati "


Try

'

Dim DtaDati As New SqlDataAdapter(Sql, con)

Dim cmbDati As New SqlCommandBuilder(DtaDati)

Dim DttDati As New DataTable("Dati")

'gestore dell'evento rowupdated

AddHandler DtaDati.RowUpdated, AddressOf DtaDati_RowUpdated


DtaDati.Fill(DttDati)


'aggiorno il dato


DttDati.Rows(0)("nome") = DttDati.Rows(0)("nome") & " Nuovo"


'metodo che aggiorna il dato


DtaDati.Update(DttDati)


Catch ex As ExceptionMessageBox.Show("Errore:" & ex.Message)


End Try


'Funzione per la gestione dell'evento RowUpdate, si scatena, quando l'aggiornamento Š avvenuto

Private Sub DtaDati_RowUpdated(ByVal sender As Object, ByVal e As SqlRowUpdatedEventArgs)

If e.Status = UpdateStatus.ErrorsOccurred Then

MessageBox.Show("Errore")

Else

MessageBox.Show("Evento: " & e.StatementType.ToString())

MessageBox.Show("Valore modificato " & e.Row("nome").ToString())


End If

End Sub


C#

string con = "Data Source=(local);Integrated Security=SSPI; Initial Catalog=test";

String Sql = "Select * from Dati where id = 1";


try


{

SqlDataAdapter DtaDati = new SqlDataAdapter(Sql, con);

SqlCommandBuilder cmbDati = new SqlCommandBuilder(DtaDati);


//gestore dell'evento rowupdated

DtaDati.RowUpdated += new SqlRowUpdatedEventHandler(DtaDati_RowUpdated);DataTable DttDati = new DataTable("Dati");

DtaDati.Fill(DttDati);


//aggiorno il dato

DttDati.Rows[0]["nome"] = DttDati.Rows[0]["nome"] + " Nuovo";

//metodo che aggiorna il dato


DtaDati.Update(DttDati);



}

catch (Exception ex)

{

MessageBox.Show("Errore: " + ex.Message);

}



//Funzione per la gestione dell'evento RowUpdate, si scatena, quando l'aggiornamento Š avvenuto

void DtaDati_RowUpdated(object sender, SqlRowUpdatedEventArgs e)

{

if (e.Status == UpdateStatus.ErrorsOccurred)

{

MessageBox.Show("Errore di aggiornamento");

}


else


{

MessageBox.Show("Evento: " + e.StatementType);MessageBox.Show("Valore modificato " + e.Row["nome"].ToString());

}


}

Regular Expression Data

Qui di seguito, riporto l'espressione regolare, per la verificata di una data, nel formato dd/mm/yyyy.

([1-9]0[1-9][12][0-9]3[01])[- /.]([1-9]0[1-9]1[012])[- /.][0-9]{4}$

Regular expression rilevare il CRO

L'espressione regolare qui di seguito, illustra come validare il CRO (codice bancario) inserito in una casella di testo.

^[0-9]{11}[\-]{11}$

domenica 25 gennaio 2009

Prezzi di Sharepoint 2007

Dalla seguente pagina http://office.microsoft.com/it-it/sharepointserver/FX102176831040.aspx?ofcresset=1 è possibile consultare i vari prezzi delle versioni di Micrsoft Sharepoint 2007.

Ado.Net Gestione degli errori del metodo Fill della classe SqlDataAdapter tramite VB.Net e C#

Quando si utilizza il metodo fill, della classe SqlDataAdapter, possiamo crearci un gesto di evento, per gestire l'eventualità di un errore.


In questo esempio di codice, (VB.Net e C#) vediamo un esempio pratico. L'errore, voluto, riguarda la mancata creazione di colonne nell'oggetto datatable.


VB.Net


'Esempio dell'evento FillError, si verifica nel caso ci sono errori durante l'utilizzo del metodo fill


Dim con As String = "Data Source=(local);Integrated Security=SSPI; Initial Catalog=test"


Dim Sql As String = "Select * from Dati where id = 'a'"


Try

'

Dim DtaDati As New SqlDataAdapter(Sql, con)

DtaDati.MissingSchemaAction = MissingSchemaAction.Error

Dim DttDati As New DataTable("Dati")


'gestore dell'evento fill error

AddHandler DtaDati.FillError, AddressOf DtaDati_FillError

DtaDati.Fill(DttDati)




Catch ex As ExceptionMessageBox.Show("Errore:" & ex.Message)


End Try

Public Sub DtaDati_FillError(ByVal sender As Object, ByVal e As FillErrorEventArgs)

MessageBox.Show(e.Errors.Message)


e.Continue = True


End Sub


C#



//Esempio dell'evento FillError, si verifica nel caso ci sono errori durante l'utilizzo del metodo fill

string con = "Data Source=(local);Integrated Security=SSPI; Initial Catalog=test";

String Sql = "Select * from Dati where id = 1";


try


{

SqlDataAdapter DtaDati = new SqlDataAdapter(Sql, con);

DtaDati.MissingSchemaAction = MissingSchemaAction.Error;

DataTable DttDati = new DataTable();

//gestore dell'evento fill error

DtaDati.FillError += new FillErrorEventHandler(DtaDati_FillError);

//non valorizzando con i nomi delle colonne genero un eccezione.


DtaDati.Fill(DttDati);



}

catch (Exception ex)

{

MessageBox.Show("Errore: " + ex.Message);

}



//gestore di evento

void DtaDati_FillError(object sender, FillErrorEventArgs e)

{

MessageBox.Show(e.Errors.Message);

e.Continue = true;


}

sabato 24 gennaio 2009

Sharepoint 2007 creare un menu personalizzato in una raccolta documenti modificando il custom action

Riporto l'articolo scritto per il sito iprogrammatori http://www.iprogrammatori.it/articoli/programmazione/art_sharepoint-2007---creare-un-menu-persona_664.aspx riguardante la creazione di un custom action personalizzato.


Introduzione


In questo articolo, vedremo come creare con il linguaggio Visual Basic Net e C#, un menu personalizzato per una raccolta elenco, la voce di menu avrà il compito di copiare il file selezionato in una determinato elenco (documenti library).


Utilizzeremo i file xml per l'installazione di tale voce (figura 1) ed una pagina web, che avrà il compito di copiare il file selezionato in una raccolta elenchi (denominata Amministrazione) creata in precedenza.


Utilizzeremo la classe spfoleder, spfile, listitem e list, per la gestione del file, liste, e cartelle.



Figura 1






Creazione del file xml feature e customAction.


In questa parte, vedremo la creazione dei file xml, che permetteranno di gestire il menu personalizzato, i file xml sono due, uno denominato feature, che avrà il compito di visualizzare nelle impostazioni della raccolta elenco siti di Sharepoint 2007 il componente, mentre il file UICustomAction.xml (il nome può variare) contiene le informazioni riguadante il menu.


Ma vediamo in dettaglio i vari file.


Di seguito si riporta un esempio del file Feature.xml


<
feature
id ="46F90BDF-416F-4eb7-B7CC-23FD5488403A"



Title="Invia amministrazione"

Description="Invia il file selezionato alla direzione amministrativa"

Version="1.0.0.0"

Scope="Web"

xmlns="http://schemas.microsoft.com/sharepoint/">
<
ElementManifests
>
<
ElementManifest Location="UICustomActions.xml"
/>
<
/ElementManifests
>



Il tag Id, è un guid, per generare tale valore, tramite l'ambiente di sviluppo visual studio 2005 o versione successiva, selezionare dal menu Strumenti (tools per la versione inglese) la voce crea guid (create guid). Nella finestra che viene aperta facciamo click sul pulsante copy, in questo modo che si copia il codice guid, lo applichiamo a tale campo.


Per il tag Title, impostiamo un titolo. Mentre il tag Description, sarà la descrizione, entrambi visibili nella pagina caratteristiche raccolta siti.


Il tag vesion, indica la versione.


Il tag Scope, è un tag molto importante, infatti, se lo impostiamo con il valore web, questo componente verrà installato nel sotto sito che indichiamo ,ossia se abbiamo diversi siti nel nostro portale, possiamo far in modo che tale componente venga installato nel sotto sito specifico.


Se invece impostiamo il tag Scope con il valore Site, questo componente verrà installato per tutto il sito compresi i sotto siti.


Ora passiamo all'altro file xml ossia UICustomAction.xml, questo file, riguarderà le impostazioni relative al menu che dovrà essere visualizzato nel singolo elemento della raccolta elenco.


Di seguito si riporta il frammento di codice del file xml.


<
CustomAction

Id="UserInterfaceCustomActions.ECBItemToolbar"

RegistrationType="List"

RegistrationId="101"

ImageUrl = "/_layouts/images/Protocollo.GIF"

Location="EditControlBlock"

Sequence="106"

Title="Invia Amministrazione">


Il tag ID, sta per nome del menu, mentre il tag RegistrationTypy si riferisce al tipo di oggetto che andremo a pesronalizzare, e quindi una lista, mentre il tag RegistrationID, l'id del tipo di menu.


Il tag imageUrl, indica l'immagine, che verrà visualizzata accanto alla voce di menu, mentre il tag Seguence, l'ordine in cui visualizzarlo.


Il tag Title, indica il testo che verrà visualizzato nel menu.


Fate attenzione al tag UrlAction, questo tag è molto importante, perchè una volta selezionata la voce di menù, verrà caricata una pagina (che l'utente non vedrà, perchè ritornerà indietro ) nella quale si trovano le istruzioni per copiare il file nella raccolta elenchi amministrazione.


I parametri che vengono passati, riguardano la lista e l'elemento selezionato, infatti con il parametro ItemId, otteniamo il codice identificativo dell'elemento, mentre con il parametro ListId, otteniamo il codice identificatvo della lista.


Essendo un sotto sito, si è inserito l'urlo del server più il sotto sito, nel caso non era un sottosito, si poteva omettere.


Creazione della pagina.


Terminata la creazione dei file XML, occorre creare la pagina Aspx, la quale avrà il compito di copiare il file selezionato nella raccolta elenchi denominata Amministrazione, e ritornare nella cartella documenti condivisi, una volta terminata tale operazioni. Faccio presente un aspetto da non sottovalutare, infatti, la nostra pagina avrà il compito di cambiare il valore di una colonna della lista Documenti condivisi, e di copiare il file, ma nel caso, che l'utente non ha il ruolo di amministratore o un ruolo di modifica che succede? Semplice, non potrà eseguire il codice, per questo motivo, dobbiamo impersonare il ruolo di amministratore per far si che, la copia del file, avvenga con successo.



Codice C#


<script runat="server">



public void esegui()

{



SPUser user = Web.AllUsers["WIN2KSP2K7/Administrator"];



SPUserToken token = user.UserToken;

SPSite impersonatedSiteCollection = new SPSite(Web.Url , token);

SPWeb WebSito = impersonatedSiteCollection.OpenWeb();

WebSito.AllowUnsafeUpdates = true;

WebSito.Site.AllowUnsafeUpdates = true;

SPList List;

SPListItem ListItem;

string paramList = Request.Params["ListId"];

string paramID = Request.Params["ItemID"];


List = WebSito.Lists[new Guid(paramList)];

ListItem = List.GetItemById(Convert.ToInt32(paramID));

SPFolder DestFolder = WebSito.GetFolder("Amministrazione");






if (List.Title != "Documenti condivisi")

{

//Codice

SPUtility.Redirect("Messaggio.aspx",

SPRedirectFlags.Default,

HttpContext.Current);

return;

}

else

{






if ( ListItem["Stato"] != null)

{

SPUtility.Redirect(List.DefaultViewUrl,

SPRedirectFlags.Default,

HttpContext.Current);

return;



}



//imposto lo stato

ListItem["Stato"] = "In attesa di verifica";

ListItem.Update();

//rilevo il file selezionato

Byte[] FileContents = ListItem.File.OpenBinary();

//Salvo il dato

SPFile NewFile = DestFolder.Files.Add(DestFolder.ServerRelativeUrl + "/" + ListItem.File.Name, FileContents, true);


SPListItem MioFile = NewFile.Item;

DestFolder.Update();

WebSito.Update();


SPUtility.Redirect(List.DefaultViewUrl,

SPRedirectFlags.Default,

HttpContext.Current);



WebSito.AllowUnsafeUpdates = false;

}


}



protected void Page_Load(object sender, EventArgs e)

{


esegui();





}


script>

Codice VB.Net

<asp:content ID="Content1" contentplaceholderid="PlaceHolderAdditionalPageHead" runat="server">



asp:Content>



<script runat="server">

Public Sub esegui()


Dim user As SPUser = Web.AllUsers("WIN2KSP2K7/Administrator")



Dim token As SPUserToken = user.UserToken


Dim impersonatedSiteCollection As New SPSite(Web.Url, token)


Dim WebSito As SPWeb = impersonatedSiteCollection.OpenWeb()

WebSito.AllowUnsafeUpdates = True

WebSito.Site.AllowUnsafeUpdates = True


Dim List As SPList


Dim ListItem As SPListItem


Dim paramList As String = Request.Params("ListId")


Dim paramID As String = Request.Params("ItemID")

List = WebSito.Lists(new Guid(paramList))

ListItem = List.GetItemById(Convert.ToInt32(paramID))

Dim DestFolder As SPFolder = WebSito.GetFolder("Amministrazione")


If List.Title <> "Documenti condivisi" Then

SPUtility.Redirect("Messaggio.aspx", SPRedirectFlags.Default, HttpContext.Current)


Else

If ListItem("Stato") <> Nothing Then

SPUtility.Redirect(List.DefaultViewUrl, SPRedirectFlags.Default,HttpContext.Current)

End If

'imposto lo stato

ListItem("Stato") = "In attesa di verifica"

ListItem.Update()

'rilevo il file selezionato

Dim FileContents As Byte() = ListItem.File.OpenBinary()


'Salvo il dato

Dim NewFile As SPFile = DestFolder.Files.Add(DestFolder.ServerRelativeUrl + "/" + ListItem.File.Name, FileContents, True)

Dim MioFile As SPListItem = NewFile.Item

DestFolder.Update()

WebSito.Update()

SPUtility.Redirect(List.DefaultViewUrl, SPRedirectFlags.Default, HttpContext.Current)

WebSito.AllowUnsafeUpdates = False


End If

End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)


esegui()





End Sub











script>


Installazione.


A questo punto, non ci resta che installare i componenti, per prima cosa, occorre installare il file feature xml, tramite il comando stsadm, come si vede qui di seguito.



C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN>stsadm -o installfeature -filename MenuInvia\Feature.xml


Come si vede, dopo essersi posizionati nella cartella Bin, che contiene diversi tools, viene eseguito il comando stsadm, con i parametri per l'installazione del componente.



Se tutto procede in modo corretto, occorre attivare il componente UICustomAction, ossia il file xml collegato al feature.


Di seguito si riporta il comando per attivare tale componente:



C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN>stsadm -o activatefeature -filename MenuInvia\Feature.xml -url http://win2ksp2k7:

24267/contabile/

Per attivarlo, utilizziamo sempre il comando stsadm, ma tra i vari parametri , utilizziamo activatefeature, che permette l'attivazione del componente.


Faccio presente che dopo il parametro -url, viene digitato il sottosito denominato contabile, che fa parte del sito principale, in questo modo, il componente non sarà installato su tutti siti, ma benì, su quello specificato.






Figura 2




Verifica


A questo punto non ci resta che testare il nostro menu personalizzato.


Prima di tutto occorre creare nella raccolta elenchi documenti condivisi, del nostro sotto sito una colonna denominata stato, ed una raccolta elenchi, denominata Amministrazione.




Conclusioni:


L'articolo proposto, ha voluto illustrare una tecnica di come personalizzare il portale Microsoft Sharepoint 2007, in particolare aggiungendo una propria voce, nel menu di una raccolta elenco.


In allegato a tale articolo, si può scaricare i sorgenti utilizzati, tramite la parola download.


Download