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.
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.
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.....
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?
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"
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 :)
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");
Oggi voglio segnalare un ottimo articolo introduttivo circa la modifica dei dati con l'
Entity Framework.
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 :)