Regalo di Addio!!


Questa mattina in ufficio ho festeggiato il mio ultimo giorno con un bel rinfresco con prodotti tipici della regione Campania, di cui fanno parte le mie radici.
Non è potuta quindi mancare la mitica Pastiera fatta dalla mia mamma e il classico Babbà!

Come regalo, i miei colleghi mi hanno ops, regalato una bella fotocamera, che mi mancava proprio.
Eccola qua in tutto il suo splendore:
Exslim S10
Davvero un bellisimo regalo visto che il mio futuro Hobby sarà proprio quello di Intasare un pochino FlickR ...
Grazie ancora a tutti di cuore!!

Ops dimenticavo, come è usanza qui in Svizzera anche un bellissimo Victorinox

Victorinox

author: Raffaeu | posted @ martedì 29 aprile 2008 0.10 | Feedback (3)

Consulenza Informatica in Ticino


Dopo aver preso la decisione di abbandonare la Svizzera Italiana e il mio paese di origine, l' Italia, per un periodo di tempo non definito ritengo opportuno ringaziare chi ha contribuito alla mia crescita professionale.
Ringrazio tutti gli ex colleghi della società EQUUS INFORMATICA SA di Lugano, presente in tutta la Svizzera e in Italia, che offre un ottimo servizio per quel che riguarda:
  • Consulenza e Outsourcing su piattaforme Microsoft, SUN, UNIX e AS400
  • Check-up dei sistemi informativi
  • Consulenza IT e Project Management
Potete contattare la società direttamente a questo indirizzo http://www.equus.ch/.

I miei ex colleghi sono tutte persone preparate e "skillate" potete richiedere sia persone certificate Microsoft, che su altre piattaforme. Vi garantisco che sarete soddisfatti sia del lavoro svolto che dei prezzi competitivi!!

author: Raffaeu | posted @ giovedì 24 aprile 2008 20.26 | Feedback (0)

Relocating Overseas


Ho aspettato fino ad oggi, un po' per scaramanzia ed un po' per mancanza di tempo.
Grazie anche ad un carissimo amico che oggi mi ha dato uno stimolo ho deciso di comunicare ufficialmente che:

  • A partire dal 30 Aprile non saro' piu' dipendente della nota Banca Instesa SanPaolo presso la quale lavoravo come sviluppatore.
  • Non saro' piu' Italian NET Developer, ma bensi' un Italian NET Developer Relocated to Bermuda.
Ebbene si mi aspetta una nuova avventura, al di là del mare.
Per chiunque volesse continuare a seguirmi qui potete trovare il mio Blog, rigorosamente in lingua Inglese, nel quale ho iniziato a descrivere proprio questa nuova avvenura.
http://blog.raffaeu.com/Raffaeu.

La mia missione nel tenere aggiornato il blog di Scott Guthrie qui non termina, anzi continua, e spero in futuro di poter continuare a tenere aggiornato anche il mio Blog in Italiano.

Per adesso non posso far altro che ringraziare questa Community che mi ha fatto crescere e mi ha dato lo stimolo per mettermi in gioco un' altra volta ancora.
Uè resta il fatto che se qualcuno passa di li' ... beh venitemi a trovare, l' Isola non è cosi' grande come si possa pensare.

author: Raffaeu | posted @ giovedì 24 aprile 2008 0.48 | Feedback (7)

SubVersion, Visual Studio 2008. La mia esperienza.


Non posso certo permettermi di mettere in discussione prodotti come TFS (Team Foundation Server) che non hanno eguali, ma ho voluto partecipare alla discussione sul gruppo UGIALT di una via alternativa ai Repositories messi a disposizione da casa Microsoft.

Un primo problema che ho dovuto affrontare è stato quello economico, ho un piccolo Team e non posso acquisire un prodotto come TFS perchè purtroppo non esiste una MSDN Subscription e altre problematiche burocratiche.

Ho quindi pensato ad una via alternativa che per me è stata SubVersion. Di seguito vi elenco i prodotti che vi servono per poter avere un piccolo e semplice repository fatto in casa ed OpenSource.

Per prima cosa vediamo cosa serve per partire:

A questo punto abbiamo il Core del nostro repository. Purtroppo arrivando fino a qui andiamo in contro a due problematiche che per chi usa Visual Studio, sono davvero problematiche.

  1. Non abbiamo un IDE che ci consente di gestire il versioning, ma un semplice strumetno a riga di comando (che io personalmente odio!!)
  2. Non abbiamo una integrazione in Visual Studio, con il quale, io personalmente, faccio tutto, anche il caffè!!

La soluzione parziale è quella di usare uno dei tanti strumenti Open per l' integrazione grafica di SVN (SubVersion) in Windows Explorer. Di preciso ho voluto usare:

TortoiseSVN che vi integra tutte queste caratteristiche nella finestra di Windows Explorer e quindi anche nel menu' contestuale di Windows stesso. Di seguito uno screenshot:

Context menu for unversioned folders

Certo avendo fatto 30 perchè non fare anche 31. Quindi mi son detto, vuoi vedere che non hanno fatto una mezza integrazione con Visual Studio?? E cerca che ti ricerca ho trovato questo altro progetto, che purtroppo è a pagamento  ma si è dimostrato (per i suoi 49$) davvero utile.

VisualSVN è uno strumento che integra i comandi visuali di TortoiseSVN all' interno di Visual Studio fornendovi cosi' un vero e proprio repository integrato in VS. Di seguito lo screenshot della 'Mutazione' con la versione Visual Studio 2008 Standard ... (quella del MIX Italiano per intenderci)

VisualSVN screnshot Integrazione nei singoli file, con presenza di luci in stile semaforo.

Ampliamento del menu' contestuale di Visual Studio, con i classici comandi Commit, Update e RollBack

Nota: SubVersion non va paragonato a TFS, ma al massimo al buon vecchio SourceSafe. Lo scopo è semplicemente quello di costruire un Repository dei files modificati e non è in grado di gestire un sistema in rete di Versioning come fa TFS, nè tantomento di Builds differenziate. Ma se cercate qualcosa di leggero e free potrebbe fare al caso vostro.

author: Raffaeu | posted @ venerdì 18 aprile 2008 14.14 | Feedback (16)

Gadget, Controlli Ajax? Script#!


Technorati Tag:

Questa mattina bazzicavo in quel del Web quando mi son trovato davanti una libreria, template per Visual Studio davvero interessante.

Questa cosa l' ho sognata tempo fa quando ho costruito il primo Gadget per Windows Vista! Molto utile per chi lavora con ASP.NET e AJAX la componente Script# vi consente di controllare e compilare i vostri codici C# in funzioni Javascript.

Il progetto e i file contengono una serie di template, che funzionano anche con Visual Studio 2008 e vi propongono queste soluzioni:

image

Potete creare una semplice Libreria, una Libreria per siti web, Un progetto completo per un Gadget di Vista, o Librerie per ASP.NET AJAX.

In questa pagina trovate un tutorial per partire. In pratica voi create la Pagina .aspx e il Code Behind, al resto ci pensa il compilatore con Script#, per avere come risultato finale un bel file .js con la traduzione delle nostre funzioni in codice Js!!

E questo è solamente una parte del lavoro che Script# puo' fare per voi.

author: Raffaeu | posted @ martedì 15 aprile 2008 11.29 | Feedback (0)

Reporting Services, tutti i record o filtrati per ID


Normalmente quando si sviluppa la parte di reportistica di un programma, la prima problematica che bisogna affrontare è proprio quella legata alla selezione di uno, tutti o qualche records. Le soluzioni sono svariate, certo che costruire un report per un singolo record ed uno per tutti, mi sembra un po' eccessivo.

Nel mio caso, molto molto semplice, dovevo produrre dei formulari anagrafici e quindi l' utente finale deve poter stampare uno, tutti o qualcuno.

Pensiamo alla struttura dati, per prima cosa, davvero semplice come quella sotto:

Nuova immagine (4)

A questo punto basta creare il modulo che vogliamo stampare con Reporting Services, all' interno di un oggetto List, fornire allo stesso l' opzione di Group by tramite ID che è univoco per Record.

image

Adesso non ci resta che creare un Parametro nel Report al quale passiamo l' ID o la serie di ID che vogliamo valorizzare nelle stampe. Sarà un MultiValue, chiaramente.
Fatto cio' come nella schermata sotto

image

Dobbiamo solamente fornire un Filtro alla Lista di Prima, in questo modo, ovvero, con una clausola IN (valori)

image

Adesso nel nostro codice, dobbiamo solamente passare al Report gli ID dei records che vogliamo stampare!! Davvero utile e molto meno macchinoso di Crystal Report.
Io ad esempio, ho usato una ListBox MultiSelect, dove l' utente seleziona le Anagrafiche che vuole stampare, a quel punto, passo gli ID presenti nella ListBox.

:-D

author: Raffaeu | posted @ giovedì 10 aprile 2008 12.36 | Feedback (1)

ReportViewer, qualche Tips.


Technorati Tag: ,

Dando uno sguardo in giro ho visto che spesso molti DEV incappano in queste problematiche con il controllo ReportViewer presente sia in Visual Studio 2005 che in Visual Studio 2008, che è in grado di visualizzare 2 tipologie di Reports. La prima con estensione (.rdlc) è composta dai reports che possiamo creare all' interno di VS e la seconda (.rdl) è composta dai Reports creati con i Reporting Services di MS SQL 2005 o superiore.

Visualizzare la Preview

Per la preview del nostro report, basta dire al report viewer che:

private void InitializeMargin()
        {
            this.reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
            this.reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent;
            this.reportViewer1.ZoomPercent = 100;
        }

In questo modo il Report Viewer compare in modalità Preview (molto piu' carino) con uno Zoom del 100%, simile alla Preview di Word.

Dilemma dei Margini

Per risolvere questo dilemma, basta impostare i margini all' interno delle proprietà del report stesso in questo modo:

image

Sarà poi il Report Viewer che in automatico rappresenterà il report con i margini impostati. Niente di piu'.

author: Raffaeu | posted @ martedì 8 aprile 2008 8.43 | Feedback (1)

Tips per Reporting Services, Installazione.


Questa mattina ho messo in Test i Reporting Services di MS SQL 2005, ed ho riscontrato alcune problematiche che vogliono condividere:

  1. Per prima cosa è buona norma crearvi un Utente di Servizio con credenziali di Admin, almeno per la macchina che ospiterà SQL Server, in questo modo vi levate un sacco di grane inutili.
  2. Dopo aver lanciato l' installazione dei Reporting Srv usate ove richiesto questo Utente Admin, in questo modo non avrete alcun problema di permessi durante la fase di Configurazione.
  3. Quando state configurando il tutto, dovete già aver installato IIS e dovete già aver creato la Cartella Virtuale, in questo modo avete uno schema predefinito di dove andare a piazzare il tutto.

Infine se il vostro Database è una versione 2005 con SP2, beh purtroppo devo dirvi che dopo aver installato I Reporting Services, dovete reinstallare la SP2, altrimenti le versioni dei Db create da MS SQL e dai Reporting saranno differenti ...

Spero di aver aiutato qualcuno che è caduto come me nella trappla della SP2!

author: Raffaeu | posted @ lunedì 7 aprile 2008 9.34 | Feedback (1)

Che emozione ...


Technorati Tag: ,

Sto avendo uno scambio di E-mail tra Scott Guthrie e Phil Haak riguardo un paio di questioni:

  • La prima è stata proposta dal Mitico a questo , dove appunto parla di una maggiore comprensione dei Tags Technorati, in special modo
    relativo al discorso ASP.NET MVC.
  • La seconda, è qui subentra Phil, è legata semplicemente al Design nelle applicazioni ASP.NET MVC, dei DataContext. Non appena partorisco un' eureka, posto il tutto sul muro.

Per ora posso solamente dire: che emozione!!

author: Raffaeu | posted @ mercoledì 12 marzo 2008 8.10 | Feedback (1)

Non mettete mai in Produzione le Preview e le CTP!!


Predico bene ma come sempre razzolo male! La mia splendida applicazione ASP.NET MVC effettuata con la prima CTP oggi deve essere aggiornata.
Peccato che la produzione deve andare sul Web Server che è Windows 2003 R2.

Sto installando i vari componenti ma la cosa assurda e complicatissima è modificare a mano una marea di reference nel web.config.

Il problema maggiore, per stasera alle 18:00 deve funzionare tutto!!

Se non do i numeri oggi, non li do piu'!

UPDATE

Allora dopo aver seguito passo passo la guida (Vi consiglio di disinstallare ASP.NET EXT CTP e poi di inserire la Preview 2)
sono riuscito a rifar funzionare tutto.

La prima cosa sconcertante è che la Preview 2 ha come versione dell' Assembly dalla 3.6 alla 3.5 (fantastico ...)

Secondo, i metodi di Routing sono proprio cambiati ... mannaggia!

Per il resto la parte di Binding è ancor piu' agevolata, quindi io personalmente mi scordero' la sintassi Request.Form[""].

Adesso devo divertirmi a farla funzionare su Win2003, è li è il bello!!

author: Raffaeu | posted @ lunedì 10 marzo 2008 14.35 | Feedback (11)

I Nullable questi strani cosi ...


Technorati Tag:

Ah ah mi scrivo la mia bella entity tutta ordinata con il codice del tipo:

1 private Nullable<DateTime> data; 2 public Nullable<DateTime> Data 3 { 4 get 5 { 6 return this.data; 7 } 8 set 9 { 10 if (this.data != value) 11 { 12 this.data = value; 13 NotifyPropertyChanged("Data"); 14 } 15 } 16 } 17

Vado a creare il Class Design, smanetto un po e come per magia:

1 public DateTime? Data 2 { 3 get 4 { 5 6 } 7 set 8 { 9 10 } 11 } 12

Mi trovo un bel ? al posto di Nullable<T>. Ok vabene, ma se io fossi un Tradizionalista??

author: Raffaeu | posted @ martedì 4 marzo 2008 14.45 | Feedback (2)

Non sempre l' idea è poi la realtà.


Technorati Tag: ,

Prendo spunto da un articolo a mio parere molto interessante, postato su InfoQ  "".

In pratica viene reso noto, che spesso l' Architetto del Software, durante la fase di analisi deve considerare, non solo la tecnologia, ma anche le esigenze e la realtà. Ok quindi come viene spiegato, potrebbe succedere che:

L' architetto si trova a dover gestire un Team di Sviluppatori VB6 per un progetto web (che sfiga!!) e che la tempistica di consegna è breve.
Quale deve essere la scelta migliore? Usare Ruby che pero' gli sviluppatori non conoscono ma che si adatta benissimo al tipo di progetto (quindi scelta basata sulla tecnologia) o non usarlo perchè potrebbe creare problemi al Team (scelta basata sulla realtà aziendale)?

Beh io direi che la scelta è soggettiva e non oggettiva e vi spiego anche perchè:

  • Se costringo il mio Team a imparare Ruby, è vero non riusciro' a consegnare in tempo il prodotto ma, al prossimo progetto, avro' un Team molto piu' flessibile non trovate?
  • Se mi baso esclusivamente sulle conoscenze del Team, non rischio di realizzare un prodotto obsoleto, perchè il Team non è aggiornato?

Io farei e faccio anche queste considerazioni. Forse il mio status è troppo Tecnologia-Oriented, e poco Realtà-Oriented, ma sul lungo termine ho sempre trovato guadagno perchè la tecnologia che uso e propongo è sempre quella (.NET) e quindi nel tempo riesco ad affrontare le richieste con una sempre maggior conoscenza della tecnologia stessa.

(IMHO)

author: Raffaeu | posted @ martedì 26 febbraio 2008 3.04 | Feedback (5)

Le Collection, meglio chiarire i dubbi.


Technorati Tag: ,

Questo post nasce dal fatto che troppo spesso vedo codice non sfruttato, del tipo, un ArrayList per memorizzare 4 valori stringa, o peggio, una generic List<String> per memorizzare magari un semplice array di stringhe. Mi è sembrato quindi opportuno fare il punto della situazione, con questo post, nel quale voglio semplicemente dire che il Namespace System.Collections ... è un Namespace e non una classe, quindi magari al suo interno possiamo trovare diversi oggetti ... e non solo ArrayList e List<T>.

Collezione Caratteristiche Deriva da Quando va usata
ArrayList le dimensioni posso variare, puo' contenere oggetti, ed infine, utilizza gli indici per accedere agli items System.Collections non conosco l' oggetto che voglio memorizzare
SortedList Una HashTable con funzioni di sort System.Collections ho una coppia chiave/valore e voglio anche ordinarla
Queue Collezione di oggetti con gestione FIFO (First in First out) System.Collections gestisce le code di oggetti
Stack Collezione di oggetti con gestione LIFO (Last in First out) System.Collections come sopra
HashTable Collezione di coppie (chiave-valore) ricercabili per nome System.Collections ho una grossa lista di coppie chiave/valore
BitArray Collezione di valori booleani (true/false) System.Collections devo memorizzare un elenco di valori booleani
StringCollection Collezione di stringhe con dimensioni variabili System.Collections devo lavorare con elenchi di valori stringa e non so quanti sono
StringDictionary Collezione di chiavi/valori di tipo Stringa System.Collections  
ListDictionary Collezione di oggetti, per piccole quantità System.Collections devo usare una HashTable ma gli items sono pochi
HybridDictionary Ibrido tra Hashtable e ListDictionary System.Collections devo usare una HashTable ma non conosco il numero di items
NameValueCollection come la HashTable ma fornisce anche l' indice dell' Item System.Collections devo usare una HashTable ma voglio anche conoscere l' indice di un item
Ogni correzione è ben accetta.

author: Raffaeu | posted @ martedì 19 febbraio 2008 14.35 | Feedback (3)

Alcune modifiche significative su ASP.NET MVC.


Technorati Tag: ,

Non sto qui a ripostare tutto per l' ennesima volta. Comunque, in data 12 Febbraio Scott Guthrie ha reso disponibile una nuova versione di ASP.NET MVC, una preview realizzata appositamente per l' evento MIX08 che si terrà in prima battuta negli U.S.A.

Trovate il link originale qui: http://weblogs.asp.net/scottgu/archive/2008/02/12/asp-net-mvc-framework-road-map-update.aspx

Quello tradotto dal sottoscritto qui: http://blog.raffaeu.com/ScottGu/archive/2008/02/17/resoconto-su-asp.net-mvc-aggiornato.aspx

Di seguito vi elenco solamente alcune delle novità che dovrebbero far gola a tutti:

References   Finalmente possiamo includere la dll System.Web.Mvc nella cartella bin e non piu' nella GAC
Visual Studio 2008   Adesso non solo l' Intellisense ma anche il Designer parla con VS08
Action e filtri   Sono stati introdotti nuovi modi per gestire i filtri nelle chiamate ai COntrollerAction
MVC Toolkit   eliminato adesso è parte integrante di ASP.NET MVC

Oltre a tutto cio' presto verranno introdotte grosse novità sia in ambito ASP.NET AJAX che Data Dynamics.

(IMHO) Io ho iniziato da subito a sviluppare con questo Framework, ancora in CTP, e debbo dire che sicuramente la produttività aumenta alla stragrande, se poi il Dominio e il DAL lo riciclate da una app Windows, come nel mio caso, beh ... la questione si semplifica davvero tanto!!

author: Raffaeu | posted @ lunedì 18 febbraio 2008 9.56 | Feedback (1)

C# 3.0 Design Pattern, un primo libro


Con l' annuncio del nuovo linguaggio non poteva mancare un primo libro che fornisce pratici esempi di Design Pattern applicabili al linguaggio C# 3.0.

A questo Indirizzo la presentazione del testo in lingua Inglese. Già disponibile su portali come Amazon.com.

author: Raffaeu | posted @ domenica 10 febbraio 2008 5.54 | Feedback (3)