April 2009 Blog Posts

Facebook: Applicazione Pet Society e RAM a GoGo

Sono un patito di Pet Society, applicazione in flash di PlayFish usufruibile tramite Facebook e MySpace. Altro non è che un giochino dove devi far crescere il tuo pet, costruirgli una casa con i soldi che accumuli partecipando a delle gare, farlo interaggire con gli altri pet, etc; la formula di gioco non è niente di nuovo sotto al sole, ma anche gli errori di sviluppo sembrano sempre gli stessi. Questa è la prima schermata di gioco: 234 Mb di ram. Dopo neanche 1 min:     341 Mb, e poi: 419 Mb, e adesso: 527 Mb. A questo punto ho concluso di prelevare informazioni. Comunque...

Indecent Exposure: Encapsulate Classes with Factory

Continuiamo con lo smell: Indecent Exposure   Problema: Il client istanzia direttamente un oggetto che risiede in una libreria.   Motivazione: Durante la realizzazione di una libreria, si potrebbe cadere nella tentazione di creare delle classi che istanziano oggetti di cui il client necessita. Un esempio di logica errata: Ciò significa dare al client la responsabilità di conoscere tutti gli oggetti presenti nella nostra libreria. class Program { ...

Solution Sprawl: Move Creation Knowledge to Factory

Continuiamo con lo smell: Solution Sprawl    Problema: La creazione di un oggetto avviene recuperando dati e codice in giro per il nostro progetto.   Motivazione: Quando la creazione di un oggetto avviene tramite il passaggio di più classi si ha uno smell di tipo creation sprawl (Code Smells), questo tipo di smell nasce da un design dell’applicazione nato troppo presto (questo capita quando siamo convinti che l’analisi del sistema possa essere completa e corretta al 100%).   Un esempio di logica errata: Il client ha bisogno di un oggetto Button che deve essere disegnato a seconda del sistema operativo. L’oggetto Button per essere disegnato deve chiamare il metodo...

Error: The language-neutral solution package was not found

Altro giro altro errore sul deploy di un progetto WebPart: Error: The language-neutral solution package was not found La solutione l'ho trovata quì: http://www.mindsharpblogs.com/aaron/archive/2007/08/23/2603.aspx In pratica nel file solution.xml il nome del progetto da deployare è diverso da quello che avete nella solution. Chiudete Visual Studio Modificate il file solution.xml Riaprite il progetto e deployate   Tags: SharePoint

VSeWSS Service Error: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

Sto utilizzando Visual Studio 2008 extensions for Windows SharePoint Services 3.0, v1.3 - Mar 2009 CTP per deployare una WebPart come Provider. Questa ha la sua interfaccia in un'altro progetto (Class Library). Quando deployio ricevo il seguente errore: VSeWSS Service Error: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information. Togliendo l'implementazione dell'interfaccia, tutto ricominciare a funzionare... Soluzione 0.5 beta: Linkare la dll non il progetto (pessima soluzione) Sembra che, settata correttamente la dll nel file solution.xml, rimuovendo la vecchia dalla GAC e rideployando, insernedo questa volta il progetto nelle reference, il deploy funzioni. Soluzione 1.0 beta: Questa soluzione sembra funzionare: http://oidatsmyleg.wordpress.com/2009/01/28/problems-with-vsewss/   ...

WebPart in un piatto di SharePoint con una spruzzata di WebUserControl

Creare WebPart con un'UI un pò carina è IMHO qualcosa di alquanto complicato. E' interessante, in questi casi e non, utilizzare le WebUserControl. Purtroppo ancor'oggi con le Visual Studio 2008 extensions for Windows SharePoint Services 3.0, v1.3 - Mar 2009 CTP non è stato creato un progetto che ne supporta direttamente l'utilizzo. Ma, con un paio di accorgimenti, è possibile utilizzarle. Vediamo come. Installiamo le extensions di cui sopra. Creiamo un progetto di tipo SharePoint -> WebPart Create/disegnate il vostro WebUserControl in un progetto di tipo ASP.NET Web Application (per questo esempio utilizzerò...

Expression Trees

Avevo postato questo link nella sezione link del blog, così facendo non gli ho dato una certa visualizzazione. Ecco il link, l'articolo è molto interessante: http://msdn.microsoft.com/en-us/library/bb397951.aspx   Tags: Language

Replace Constructors with Creation Methods

Continuando la serie di post sui smells, inizio ad introdurre i possibili smell e le relative possibili soluzioni. Il primo che affronteremo riguarda una classe con 5 costruttori (anche se personalmente già 2 costruttori sono troppi):   public class Loan { public Loan(string commitment, int riskRating, int maturity) public Loan(string commitment, int riskRating, int maturity, DateTime expiry) public Loan(string commitment, string outstanding, int riskRating, int maturity, DateTime expiry) public Loan(int capitalStrategy, string commitment, int riskRating, int maturity, DateTime expiry) public Loan(int capitalStrategy, string commitment, string outstanding, int riskRating, int...

Code Smells

Far Refactoring, o migliorare il design del codice esistente, richiedere innanzitutto capire qual’è il codice da migliorare. Quindi avere un elenco di ciò che è smell nel vostro codice è fondamentale: Duplicato Non chiaro Complicato Questi criteri possono certamente aiutarci a scoprire il codice da migliorare. Questa lista, per alcuni, risulta troppo generica. Per questo motivo, Martin Fowler e Kent Beck, hanno creato una libro per identificare i problemi di design (fate pure riferimento all’indirizzo: http://foozle.berkeley.edu/projects/streek/agile/bad-smells-in-code.html#DuplicatedCode. L’autore ha fatto un riassunto del libro di MF e KB). In questo post elencheremo solamente di 12 dei...

Famoso portale internazionale…

Ecco cosa mi propone un famoso portale internazionale, mentre mi preparo ad una prenotazione: Chi indovina di quale porta sto scrivendo, Alle, offrià una cena completa. Tags: Altro

Video MVVM per WPF

Dal blog di Lester un video carino su un esempio di MVVM per WPF. Buona visione: http://blogs.msdn.com/llobo/archive/2009/03/09/mvvm-sceencasts.aspx Tags: MVVM|WPF