ALTernative Paas a Windows Azure

Add Comment | Dec 22, 2011
Per chi sviluppa con .Net e vuole provare a fare qualcosa con il cloud sicuramente la prima scelta è Windows Azure, ma io ultimamente mi sento molto ALT.NET e allora ho deciso di cercare qualche altra soluzione PaaS (Platform As A Service) magari a prezzi più bassi, ed ho trovato AppHarbor.

AppHarbor gestisce sia il deployment che la fase di runtime delle applicazioni .net. E' possibile fare il push del codice, in pratica, da tutti i vcs e dvcs oggi disponibili (git, mercurial, svn, tfs...), AppHarbor farà la build, lancerà i nostri test e se questi daranno esito positivo farà il deployment sull'application server e noi sviluppatori riceveremo tutte le notifiche.

In fase di esecuzione AppHarbor gestirà la scalabilità dell'applicazione (possiamo acquistare più istanze) e il bilanciamento del carico delle richieste.

Una caratteristiche che mi piace molto è l'estendibilità della piattaforma, in quanto AppHarbor mette a disposizione delle api per consentirci di sviluppare nuovi add-on come ad esempio supportare un nuovo vcs o un nuovo sistema di notifiche.

Una chicca è il catalogo degli add-on (in continua crescita) per "pluggare" servizi nelle nostre applicazioni come dbms (sqlserver,mysql,mongodb,redis) o gestiori di log (airbrake), un vero e proprio store di servizi per le applicazioni.

Per chi vuole cominciare a provarlo i prezzi mi sembrano competitivi e la prima istanza è gratis.

Goolge Wave Test

3 Comments | Oct 12, 2009
Da qualche settimana sto provando Google Wave la nuova piattaforma di comunicazione che Google sta preparando come
alternativa alla comunicazione classica dell'email.

Oltre all'invito mi sono ritrovato con la possibilità di invitare altri 8 amici, che sono stati abilitati molto lentamente.
Questo mi fa supporre che la richiesta è molto alta e la piattaforma ancora poco stabile.

Comunque dopo qualche giorno Google ha abilitato i primi amici ed ho potuto finalmente cominciare ad usarlo.
All'inizio Wave mi ha disorientato molto in quanto non sono abituato ad usare una "chat" che mi da la possibiltà di interagire con quello che ho scritto (o che hanno scritto i miei amici) precedentemente.
Ma Wave è mooooolto più di una chat.
La possibilità di far evolvere una discussione tra colleghi (o clienti) è notevole.
Da quello che si vede nei filmati disponibili in rete un ruolo fondamentale lo giocheranno i plugin. Ad esempio, bella la possibilità di interagire con i commenti associati ad un post di un blog.

In definitiva questa prima esperienza non posso che giudicarla positiva.

E' arrivata l'onda.

4 Comments | Oct 01, 2009
Stamattina apro la posta e cosa trovo?

La risposta di Google alla mia richiesta di utilizzare la preview di Google Wave.

Ora ho un altro "giocattolo web" da provare... che bello!!!!

ps. ho ancora un invito disponibile.....

Fluent Validation

2 Comments | Sep 14, 2009
Qualche tempo fa ricordo di un post di Janky in cui descriveva il modo con cui gestiva la logica di validazione del domain model. Quella poche righe di codice mi hanno colpito molto in quanto per la prima volta realizzavo quanto fosse importante poter separare la logica di validazione da tutto il resto. Da allora mi sono imbattuto in molte librerie che in modo più o meno diverso realizzano la validazione.

Ultimamente con il proliferare di librerie fluent like mi è venuta l'idea di creare una mia liberia di validazione che appunto utilizzasse l'approccio fluent, il mio errore è stato quello di non controllare che altri avessero già realizzato ciò.

Per farla breve ho trovato su codeplex Fluent Validation che sembra essere la libreria di Janky  + quello che avevo in testa io.

In pratica si possono scrivere cose di questo tipo:

public class CustomerValidator: AbstractValidator<Customer> {
public CustomerValidator() {
RuleFor(customer => customer.Surname).NotEmpty();
RuleFor(customer => customer.Forename).NotEmpty().WithMessage("Please specify a first name");
RuleFor(customer => customer.Company).NotNull();
RuleFor(customer => customer.Discount).NotEqual(0).When(customer => customer.HasDiscount);
RuleFor(customer => customer.Address).Length(20, 250);
RuleFor(customer => customer.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode");
}
A me piace e a voi?

Codeplex Foundation

Add Comment | Sep 11, 2009
Nella giornata di ieri è stata lanciata una nuova iniziativa open source Codeplex Foundation che ha il compito di:

"Enabling the exchange of code and understanding among software companies and open source communities"

Architecture Tools in VSTS 2010

Add Comment | Aug 30, 2009
Bello il post di Somasegar in cui parla delle nuove caratteristiche da "Architetto" che possiederà il prossimo VS 2010.

Ne beneficeranno anche le mie slides :)

nunitex

5 Comments | Jul 12, 2009
Appello per chi utilizza molto NUnit e ama scrivere codice fluente come me,

vi segnalo questo interessante nunitex di Fabio Maulo che permette di scrivere cose come queste:

const string somethig = "something";
somethig
.Should().Contain("some");
somethig
.Should().Not.Contain("also");
somethig
.ToUpperInvariant().Should().Not.Contain("some");

Good Books

2 Comments | Jul 02, 2009
Microsoft.NET: Architecting Applications for the Enterprise

di Dino e Andrea è tra i libri favoriti di David Chappell.

Concordo con lui.

Modificare i dati con Entity Framework

Add Comment | Dec 22, 2008
Oggi voglio segnalare un ottimo articolo introduttivo circa la modifica dei dati con l'Entity Framework.

Google Application Engine

Add Comment | Dec 18, 2008

Me ne ero completamente dimenticato, ma tempo fà avevo fatto richiesta a Google di poter utilizzare la preview del suo Google Application Engine.

Ieri mi è arrivata l'email di conferma, adesso mi tocca rispolverare le mie scarse conoscenze di pyton :)