Vito Arconzo's Blog

.net, .net, .net & windows presentation foundation

Recent Posts

Tags

News

  • This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights. The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer

    MVP



    Ciao Flavio!

    Add to Technorati Favorites

    Subscribe in NewsGator Online

    Skype Me™!

Community

Email Notifications

Link Utili

Archives

June 2007 - Posts

Un mattone in meno sul muro di DotNetSide

Con molto dispiacere mi sono accorto che DotNetSide ha perso un "contributor" molto importante. Da qualche giorno, infatti, Mighell ha deciso di togliere il suo blog dal muro di DotNetSide per diversi motivi che non sto io a discutere...

A me personalmente dispiace davvero tantissimo ma... auguro un grosso in bocca al lupo a Michele per questa sua nuova avventura.

Fonte : Blog, muro, feed, scelte

Technorati tags: , ,
Posted: Jun 29 2007, 12:51 AM by VitoA | with 1 comment(s)
Filed under: ,
HTC Touch : preso!

Nelle scorse settimane avevo letto diverse recensioni ma vederlo dal vivo è tutt'altra storia!!!

Così oggi pomeriggio, spinto anche dal mio "Consulente in acquisti compulsivi"  non ho resistito e l'ho preso...FANTASTICO! Il nuovo sistema TouchFLO poi...è meraviglioso!

HTC_Touch

Posted: Jun 29 2007, 12:37 AM by VitoA | with 6 comment(s)
Filed under: ,
Multipoint non solo con Surface

Tutti siamo rimasti senza parole (anzi...sconvolti ) vedendo il video del funzionamento dell'ormai famoso Surface.

E' possibile, comunque, utilizzare una funzionalità simile (ma forse non con lo stesso effetto ) su normali pc anche con più mouse grazie al Microsoft Windows MultiPoint Software Development Kit (SDK).

"The Microsoft Windows MultiPoint Software Development Kit (SDK) helps developers create programs that enable the use of multiple mice on a single computer."

Da provare

Info & Download : Microsoft Windows MultiPoint Software Development Kit (SDK)

 

Posted: Jun 27 2007, 06:13 PM by VitoA | with no comments
Filed under:
[OT] Oggi non esco dall'ufficio...

...stamattina alle 9 il termometro a Bari segnava 39°...adesso il gadget nella sidebar inizia a dare i numeri...anzi..a non darli.

temperatura

Non ho il coraggio di uscire dall'ufficio...meglio rimanere al fresco

UPDATE: Sono le 19:20 e ci sono 46°

Technorati tags: , , ,
Posted: Jun 25 2007, 11:37 AM by VitoA | with 5 comment(s)
Filed under:
Una Window trasparente con WPF

Una delle caratteristiche che fanno più "scena" nelle demo WPF sono i Forms (anzi...Windows) con trasparenze e forme "non standard".

Untitled

Con Windows Presentation Foundation è molto semplice creare interfacce simili a quella in figura (non che sia granchè...però ).

Innanzitutto impostiamo le property WindowStyle, AllowTransparency e Background dell'oggetto Window:

<Window x:Class="TransparentWindowSample.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="TransparentWindowSample" Height="300" Width="300"
    WindowStartupLocation="CenterScreen" WindowStyle="None"
    AllowsTransparency="True" Background="Transparent"
    MouseLeftButtonDown="Window_MouseLeftButtonDown"
    >
    <Grid>

    </Grid>
</Window>

A questo punto, per creare la forma rettangolare con gli angoli arrotondati utilizzeremo, semplicemente, un oggetto Rectangle di WPF.

<Rectangle Fill="Aquamarine"
           Margin="20" Opacity="0.5" RadiusX="10" RadiusY="10" >
</Rectangle>

E per creare l'effetto ombra applicheremo al rettangolo un BitmapEffect.

<Rectangle.BitmapEffect>
  <DropShadowBitmapEffect/>
</Rectangle.BitmapEffect>

Cosi facendo, però, la nostra Window non potrà più essere spostata visto che sono stati eliminati tutti i bordi che permettono questa operazione. Per ovviare questo problema, nell'evento Window_MouseLeftButtonDown utilizzeremo il metodo this.DragMove().

void Window_MouseLeftButtonDown(object sender, EventArgs e) 
{
    this.DragMove();
}

In questo modo la Window sarà "draggabile" in qualsiasi punto della sua area di disegno.

Posted: Jun 22 2007, 11:16 PM by VitoA | with no comments
Filed under:
Nuovo libro WPF nella mia libreria...

....e questo ha un sapore ancor più particolare perchè mi è stato regalato ...per di più da un MVP .

517RKCmg2lL__AA240_

Ragionandoci un pò....chi mi ha regalato il libro ha conosciuto di persona Chris Anderson (l'autore del libro) quindi...se mi faccio autografare il libro da lui....è come se me lo avesse autografato Chris Anderson...o no???

Scherzi a parte, da una prima occhiata il libro mi sembra molto valido e appena riuscirò a dargli una lettura più approfondita saprò dirvi di più.

Posted: Jun 22 2007, 04:07 PM by VitoA | with 1 comment(s)
Filed under: ,
Expression Blend & Visual Studio 2008

Se state lavorando su un progetto WPF con Visual Studio 2008 "Orcas" CTP o Beta e provate ad aprire, successivamente, il progetto con Expression Blend, questo non avverrà con successo.

Per risolvere questo problema è stato creato un tool che configura Blend in modo da poter essere utilizzato per aprire progetti Visual Studio.

L'utility si chiama BlendConfigurator ed è scaricabile qui.

Fonte : Working with Visual Studio Code Name "Orcas" and Expression Blend

 

Technorati tags: , , ,
Posted: Jun 20 2007, 08:58 PM by VitoA | with no comments
Filed under: ,
TextBox Password in WPF

In Windows Forms, per utilizzare un input di tipo password bastava indicare, nella proprietà PasswordChar del controllo TextBox, il carattere da utilizzare per mascherare l'input dell'utente.

textBox1.PasswordChar = "*";

Nel controllo TextBox di WPF questa funzionalità non è implementata perchè esiste un controllo apposito per questa circostanza, ossia il controllo PasswordBox.

Il motivo principale di questa scelta credo sia dovuta al fatto che la TextBox ha molte funzionalità non necessarie in un campo password come Multiline, Text Decorations, etc.

Anche in questo caso possiamo utilizzare la proprietà PasswordChar per impostare il carattere da utilizzare e, inoltre, per recuperare il valore della password inserite, il controllo, espone la proprietà Password.

<PasswordBox x:Name="txtPassword" />
login 
Posted: Jun 20 2007, 12:53 PM by VitoA | with no comments
Filed under:
[OT] Ricambio Lorenzo....

Lorenzo me lo aveva dedicato....e io, da persona educata che sono, ricambio

bamboo

Posted: Jun 20 2007, 10:44 AM by VitoA | with 1 comment(s)
Filed under: ,
Creare un custom DataSourceProvider in WPF

In Windows Presentation Foundation ci sono due oggetti importanti per caricare dei dati in XAML da una sorgente esterna: ObjectDataProvider e XmlDataProvider che permettono di richiamare anche dei metodi di un oggetto parametrizzati e, successivamente, "bindare" quest'ultimo ai vari controlli presenti.

In questo articolo di Josh Smith viene mostrato come possiamo definirci un nostro provider utilizzando la classe astratta DataSourceProvider da cui provengono i due già esistenti.

Link : Creating a custom DataSourceProvider

Posted: Jun 19 2007, 10:39 PM by VitoA | with no comments
Filed under:
I ColorBrush di WPF

Un buona parte delle proprietà esposte dai controlli di Windows Presentation Foundation è di tipo Brush. Questo non è altro che una sorta di "pennello" con cui rappresentare qualsiasi elemento visuale come il background o il bordo dell'elemento.

E' possibile impostare semplicemente un colore di base:

<Button Content="Button 1" Background="Red"/>

Tuttavia, la classe Brushes, è molto potente e permette la creazione di gradienti e altri tipi di colorazioni.

I Color Brush, che sono i più utilizzati, si dividono in SolidColorBrush, LinearGradientBrush e RadialGradientBrush.

La classe SolidColorBrush permette la definizione di semplici colori e questo può essere fatto utilizzando, come nell'esempio precedente, la stringa “Red” oppure il corrispondete valore esadecimale "#FF0000”. Alla conversione ci penserà WPF attraverso l'opportuno Converter.

SolidColorBrush

LinearGradientBrush permette la creazione di gradienti lungo un percorso.

<Button Content="Button 1" Foreground="White" >
  <Button.Background>
    <LinearGradientBrush>
      <GradientStop Offset="0" Color="Black"/>
      <GradientStop Offset="1" Color="Red"/>
    </LinearGradientBrush>
  </Button.Background>
</Button>
LinearGradient 

LinearGradientBrush contiene una collection di GradientStop che indicano i colori da utilizzare e, quest’ultima, espone la proprietà OffSet che indica l’ordine di apparizione del colore specificato. La proprietà OffSet può contenere un valore Double che va da 0 a 1.

Se ad esempio vogliamo un gradiente che parta dal colore nero per poi diventare rosso a metà “percorso” per chiudersi con il bianco, il LinearGradientBrush va definito nella seguente maniera:

<Button Content="Button 1" Foreground="White" >
  <Button.Background>
    <LinearGradientBrush>
      <GradientStop Offset="0" Color="Black"/>
      <GradientStop Offset="0.5" Color="Red"/>
      <GradientStop Offset="1" Color="White"/>
    </LinearGradientBrush>
  </Button.Background>
</Button>

Per default il punto iniziale del gradiente è l’angolo superiore sinistro mentre, il punto finale è l’angolo inferiore destro. Tuttavia, è possibile modificare questa impostazione utilizzando le proprietà StartPoint e EndPoint. Anche queste due proprietà possono assumere una coppia di valori da 0 a 1.

Infine, abbiamo il RadialGradientBrush che è praticamente identico in funzionalità al LinearGradientBrush con la differenza che il RadialGradientBrush crea un gradiente di forma ellittica.

<Button Content="Button 1" Foreground="White" >
  <Button.Background>
    <RadialGradientBrush>
      <GradientStop Offset="0" Color="Black"/>
      <GradientStop Offset="1" Color="White"/>
    </RadialGradientBrush>
  </Button.Background>
</Button>

radial

Esistono, inoltre, altri diversi tipi di Brushes per utilizzare altri tipi di riempimento come immagini bitmap, immagini create con gli oggetti disponibili in wpf (ellipse, rectangle, ...) o, addirittura oggetti Visual (Button, ComboBox, Page , etc) che vedremo, magari, in un prossimo eventuale post.

Posted: Jun 19 2007, 09:48 PM by VitoA | with 1 comment(s)
Filed under:
WPFpedia.com

Nuova community per Windows Presentation Foundation.

WPFpedia.com is a free community resource that was created to provide an organized one-stop resource guide for Windows Presentation Foundation (WPF) developers.

There is a lot of great WPF-related information out on the web that developers have posted. However the problem used to be finding it. The WPFpedia.com resource guide solves this problem by providing a categorized list of links to various articles, blog posts, tools, and other resources throughout the web.

Link : WPFpedia.com

Posted: Jun 16 2007, 11:00 AM by VitoA | with no comments
Filed under:
Hosting Aruba + MembershipProvider di ASP.NET 2.0 : si può!

Mi è capitato nelle scorse settimane di dover pubblicare due applicazioni ASP.NET 2.0 in cui erano utilizzati i providers Membership, Role e Profile.

Quando ho saputo che le applicazioni dovevano girare su Aruba, per prima cosa ho pensato di scappare  (avevo letto qualcosa a proposito dei problemi relativi all'utilizzo dei provider su Aruba) ma poi, armato di santa pazienza mi sono messo al lavoro .

Il problema principale è dovuto al fatto che, l’implementazione di Microsoft dei tre provider ha, sia nelle classi che nel codice SQL, “embedded” il riferimento all’utente dbo, che non è l’utente che Aruba fornisce per accedere al server MS SQL e quindi qualsiasi storedprocedure, o metodo .net delle classi utilizza dbo.nomemetodo.

Ecco quindi i passi necessari per ovviare alla cosa:

  • Scaricare i sorgenti dei tre provider (http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi)
  • Rimuovere dai sorgenti tutti i riferimenti all’utente dbo
  • Compilare i sorgenti in modo da avere un nuovo assembly ProviderToolkitSampleProviders.dll
  • Copiare l’assembly nella cartella Bin della WebApp
  • Nel web.config nella riga corrispondente alla definizione di ognuno dei tre provider sostituire il contenuto dell’attributo type con il seguente : “Microsoft.Samples.<Nome_della_classe_del_provider>, ProviderToolkitSampleProviders”
  • Esportare gli script di viste e stored procedure, dal vostro db in locale, relative ai tre provider e rimuovete anche in questi script ogni riferimento all’utente dbo.
  • Sostituire con questi nuovi script le viste e le stored procedure presenti sull’hosting di Aruba
  • Copiare, infine, i record contenuti nella tabella aspnet_SchemaVersions dal vostro db a quello su Aruba

Ecco un esempio di modifica del file web.config:

<membership defaultProvider="MioMembershipProvider">
<providers>
<add connectionStringName="db" enablePasswordRetrieval="false" enablePasswordReset="false" requiresUniqueEmail="false" requiresQuestionAndAnswer="false" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" applicationName="MiaApplicazione" passwordFormat="Hashed" name="MioMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership>

Che diventa:

<membership defaultProvider="MioMembershipProvider">
<providers>
<add connectionStringName="db" enablePasswordRetrieval="false" enablePasswordReset="false" requiresUniqueEmail="false" requiresQuestionAndAnswer="false" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" applicationName="MiaApplicazione" passwordFormat="Hashed" name="MioMembershipProvider" type="Microsoft.Samples.SqlMembershipProvider, ProviderToolkitSampleProviders"/>
</providers>
</membership>
Tutto sembra funzionare alla perfezione quindi....Mission Completed! 
Altro libro WPF in arrivo

Charles Petzold, autore del già famosissimo libro Applications = Code + Markup, sta lavorando su un nuovo è interessantissimo titolo: 3D Programming for Windows.

Non ho ancora visto in maniera approfondita lo sviluppo in 3D con WPF ma, da quello che ho visto, è davvero molto interessante ma va studiato per bene.

L'uscita del libro è prevista per fine Luglio 2007.....io l'ho già aggiunto ai libri da comprare

Link : http://www.charlespetzold.com/3D/index.html

Posted: Jun 11 2007, 02:19 PM by VitoA | with no comments
Filed under: ,
Digital-Divide? No, Grazie!

Il paese in cui vivo non è, purtroppo, coperto da connessione ADSL per cui, negli ultimi anni sono stato costretto ad utilizzare la classica connessione 56k .

Da marzo 2007 il 50% della mia attività la svolgo a casa per cui un connessione decente era d'obbligo. Quasi per caso ho scoperto il servizio offerto da WoL che porta, appunto, connessione wireless nelle zone non coperte da ADSL.

Cosi, i primi giorni di maggio, ho deciso di richiedere l'attivazione . Dopo quasi un mese finalmente la chiamata: "Sig. Arconzo....siamo pronti per l'installazione...." .

Ho fatto, al momento, tutte le prove di quello che utilizzo (VPN, FTP, WEB, ...) e tutto funziona alla meraviglia, la connessione va da 1,8 a 2,2 MBps.

Proprio mentre scrivo si avvicina un temporale...giusto in tempo per testare l'affidabilità del servizio .

Posted: Jun 08 2007, 09:58 AM by VitoA | with 5 comment(s)
Filed under: ,