Architecture

AgileZen: applicativo online per la gestione dei progetti basato su filosofia Lean

Nate Kohari, "inventore" di Ninject, ha appena annunciato il suo nuovo progetto: AgileZen. Cos'è AgileZen: è un'applicativo di project management basato sulla filosofia lean. Tutto ruota intorno ad una Kanban-board online, dove si "appendono" i vari work-items, che si muovono tra le fasi del progetto, e sui quali si possono aggiungere commenti, tag, ecc... Ogni modifica è notificata a tutto il team, e il tutto può essere monitorato con grafici di avanzamento e di performance. Per maggiori informazioni: http://agilezen.com/ E per un registrarsi per un account demo: https://agilezen.com/signup?sku=free Cosa ne pensate? Technorati...

Microsoft® .NET: Architecting Applications for the Enterprise

Mi è appena arrivata a casa la copia del libro scritto da Andrea Saltarello e Dino Esposito: Microsoft® .NET: Architecting Applications for the Enterprise. Ora dovrò aspettare che Andrea torni dalle ferie per farmelo autografare. Technorati Tags: Libro,Saltarello,Esposito

L’importanza degli schematics

Tornando sull’argomento UI e usabilità, Daniela ha scritto un paio di post sugli schematics: Cosa sono gli schematics? SCHEMATICS: perchè e come? Il primo spiega cosa sono gli schematics, mentre il secondo perchè è importante farlo e come farli. La progettazione delle UI è un elemento troppo spesso tralasciato (ed il motivo per cui “software sucks”). Chissà se prima o poi i manager riusciranno a capirlo e inizieranno a far fare questo lavoro a degli esperti invece che ai soliti junior che...

Uscire dalla monotonia degli schematics tutti uguali

Probabilmente anche a voi sarà capitato di dover fare degli schizzi di interfacce di applicazioni, sia desktop che web. E come avete fatto? Probabilmente avrete usato Visio o PowerPoint. Ma con qui due non si ha complate libertà: la soluzione ideale sarebbe avere un programma tipo Adobe Illustrator, ma per fare “solo” schematics è un po’ troppo (sia per costo della licenza, che per tempo di apprendimento). Nonostante sia un designer, anche Daniela ha avuto questo problema e questa è la soluzione che ha trovato: Inkscape. Technorati Tags: grafica,UIX

Urlare in mezzo al deserto dei tartari

Se in Italia l’IT è considerato alla stregua dei servizi di un elettricista, lo sviluppo di UI è considerato ancora di meno. In “Urlare in mezzo al deserto dei tartari” Daniela da la sua opinione su questa ulteriore grande mancanza dell’IT italiano. Se ben ci pensate è vero: quanti di voi hanno una persona dedicata ed esperta nello sviluppo e la progettazione di UI nel proprio team di sviluppo? Quanti di voi hanno progettato la UI delle proprie applicazioni, sia web che winform che, forse peggio ancora, WPF? Tutti si lamentano dei bancomat o dei...

Vodafone e le Google apps

Ogni tanto mi capita di collegarmi a internet usando la scheda UMTS di Vodafone che, a parte il costo un po' altino, funziona ottimamente (a Milano riesce anche ad arrivare a qualche Mbit/s di banda). Per cercare di ottimizzare lo scaricamente delle pagine, il loro "proxy" scarica le pagine dal server di origine e le processa: rende le immagini più leggere, ricomprimendole, e riscrivendo l'url originale con una loro url temporanea mette "inline" le chiamate a file JS e CSS esterni in modo da ridurre il numero di richieste che il browser...

And the winner is...

Ieri si è chiuso il sondaggio sull'uso di Ajax tra gli sviluppatori .NET: hanno risposto in più di 1000 in meno di due giorni. Va bando alla ciance, veniamo ai risultati: come era pensabile, il toolkit maggiormente usato ASP.NET Ajax di Microsoft con 73,7% delle preferenze. Se a questi 73% aggiungiamo anche quelli che hanno detto di usare l'Ajax Control Toolkit senza ASP.NET Ajax la percentuale sale a 84%: questo significa che su 10 sviluppatori .NET che usano Ajax, più di 8 usano, coscientemente o per "caso", ASP.NET Ajax. Dopo i tool MS, troviamo...

Alla faccia della SQL Injection

Voi passereste mai come querystring ad una pagina la stringa SQL da effettuare per caricare i dati? Io no, e probabilmente nessuno di voi. Oggi, grazie a <edit>, il blog di HTML.it, ho scoperto che un CMS in vendita (non sono riuscito a capire quale) usa questa strategia, e quindi gli url delle pagine spesso contengono robe del tipo newssearch.asp?strSQL=SELECT+*+FROM+news+WHERE+(+lingua+%3D+'ENG')ORDER+BY+data+DESC non oso immagina cosa potrebbe succedere se a qualcuno venisse in mente di mettere un bel "DROP TABLE NEWS" al posto del "SELECT..." E se fate una ricerca su Google, con "allinurl:sql select from where" ne trovate di CMS...

Domain Model e filosofia

Probabilmente sotto gli effetti dei "campi verdi" di Janky, Daniela ha appena postato sul suo blog un interessante spunto di discussione: La programmazione ad oggetti, è una forma di aprioristico kantiano oppure la realizzazione della teoria delle idee platonica? E per i non avvezzi alla terminologia filosofica, include anche due link che spiegano cosa sono quelle due teorie filosofiche. Che ne pensate? Andate sul suo post e commentate con le vostre idee.

Il prossimo Windows sarà fatto per i multicore?

Manca ancora 1 anno (o poco meno) al rilascio di Windows Vista, e già si pensa al suo successore: Bryan Barnett, program manager in Microsoft Research, in un suo intervento alla conferenza The Venture Forum, lascia intuire che il successore di Vista sarà sviluppato per sfruttare al meglio le capacità delle nuove architetture multicore: "Taking full advantage of the processing power that those multicore architectures potentially make available requires operating systems and development tools that don't exist largely today" ...

Il problema delle sessioni utente

Anche se la web application è la stesse, se la si accede da due domini differenti le sessioni utenti sono diverse!!! Se me ne fossi "accorto" oggi alle 14, non avremmo passato tutto il pomeriggio in due a cercare di capire perchè passando da una pagina all'altra si perdevano tutti i dati di sessione: la web application risponde sia al dominio www1.example.com che al dominio www2.example.com, e per ragioni troppo complesse da spiegare, la seconda pagina veniva sempre chiamata con www2.example.com/pagina2.aspx, anche se la prima era www1.example.com/pagina1.aspx. Ovviamente passando da un dominio all'altra la sessione del browser cambiava, e i dati di...

Software Factories: report dell'evento

Eccomi di ritorno dall'aperitivo post Architect Forum, e non potevo non postare le mie impressioni sulla giornata. (Nota a latere, all'ape non solo stato l'unico ubriacone del gruppo: mi ha fatto compagnia Adrian prendendo un Negroni pure lui ) Giornata all'insegna dei ritardi e degli scioperi: l'evento è iniziato alle 10:30 ed è finito alle 16:45 a causa dello sciopero dell'ATM (ma questi quanti scioperi fanno all'anno??.. mah...) Iniziamo a parlare degli speaker: Ingo e Beat sono grandiosi, molto chiari, soprattutto Beat, che pur essendo uno svizzero di Losanna, parla inglese benissimo, senza nessun'accento, mentre Ingo ha un po' di accento tedesco. Il...

Nuove features di IIS7

Per quelli che come sono stati risucchiati dalle 2 ore di Raffaele Rialdi su Async Programming 101 e si sono persi l'overview di Daniele Bochicchio su IIS7, ScottGu ha appena postato sul suo blog un'elenco delle nuove features.In breve: E' stato rimosso lo strato di ISAPI: ora tutte le richieste passano da HttpModules e HttpHandlers così da poter creare moduli senza dover rimappare le chiamate all'ASP.NET ISAPI La configurazione del site di IIS è integrata nel web.config dell'application ASP.NET Interfaccia di amministrazione aggiornata, che permette di gestire tutti ...

Provider pattern

Ne abbiamo parlato in lungo ed in largo in questi due giorni di Community Days , ed ecco che, ScottGu annuncia il rilascio da parte di Microsoft del codice sorgente per le implementazioni di tutti i 7 provider built-in di ASP.NET 2.0 Today we released the source code for the built-in ASP.NET 2.0 Membership, Role Management, Site Navigation, Session State, Profile, Web Events, and Web Part Personalization providers (basically all of the built-in providers that ship in the .NET 2.0 Framework Redist). You can download them here,...

Alcune aree di mercato sono ancora avverse a Microsoft per motivi filosofici?

Microsoft, si sa, è antipatica a molti, principalmente per motivi "storici" e per i soliti preconcetti. Ma è possibile che IT manager di grosse aziende possano permettersi di preferire altre tecnologie (*nix, flash, real) anche quando queste costano di più e hanno minori performance solo per motivi "filosofici"? La clausola di NDA non mi permette di fare esempi concreti, ma facci un esempio generale, nel mondo dei contenuti multimediali su web (video, audio, streaming), che è quello nel quale ho più esperienza, e che, essendo un'area tecnologica piuttosto recente, dovrebbe essere meno soggetta a questi preconcetti.Ma non è così: Windows Media...

WebEncoder: problematiche affrontate

Nelle scorse settimane ho lavorato alacremente per portare a compimento il mio primo programma winform based serio, basato sul Framework.NET versione 2.0. Giusto per far capire di cosa si tratta: WebEncoder permette di encodare in formato WMV file video, caricare dei metadati, e uploadare il tutto su di un server web all'interno del nostro (di Esperia) CMS specialistico per la gestione di Web-TV. Il tutto rendendo trasparente all'utente l'esistenza delle impostazioni di encoding, l'esistenza di più formati per lo stesso contenuto, la creazione della thumbnail. Quali sono state le problematiche incontrate nello sviluppo di questo applicativo? ...

Agile? ExtremeProgramming? NO!!! meglio Waterfall

Ma perchè sono gli strumenti e le metodologie che devono adattarsi a clienti indecisi e progetti mal concepiti? Guarda come "un processo di sviluppo sequenziale" più giovare alla produttività e alla qualità del proprio software: vai alla Waterfall 2006 - International Conference on Sequential Development. Tra le varie sessions: Put Testing Where It Belongs--At the End Extreme Programming Uninstalled User Feedback: Eliminating the Main Cause of Project Overruns Nailing Down Requirements: Techniques to Prevent Change Eliminating Collaboration: Get More Done Alone Non riesco a capire se sia uno scherzo o una cosa...

Corso Nhibernate

Eccomi ripreso dal corso di ieri su Enterprise Library e NHibernate... dalla serata di degustazione vini alla quale sono andato dopo il corso. Mattinata con Lorenzo: EntLib... Lorenzo, come al solito molto preciso e dettagliato, e capace di far sembrare un gioco da ragazzi anche le cose più complesse, ha fatto un'overview su tutti i componenti dell'EntLib, e infine ha parlato dell'updater application block.Cosa mi è rimasto dalla mattinata? Non usare il logging della EntLib (o meglio, usarlo consapevolmente se serve tutta la parte di instrumentation, perf counter, etc...) DAAB: occhio che, siccome fa tante cose come...

READY LAUNCH GO!!!

Eccomi di ritorno dall'evento di lancio di VS2005, SQLServer 2005 (e BizTalk 2006) Come diceva Igor (anche se solo come portavoce del fratello), è stato un evento grandioso, con video ad effetto, luci tipo discoteca, quasi 3000 persone... Mi sono perso lo stand UGIdotNET (ma dov'eravate??) ma ho visto Michele e Rossella... ehm Eleonora Rossetti (si è svegliata alle 5 di mattina per venire all'evento), Lorenzo, e, alla fine Andrea (che come al solito era intento a parlare con una dolce donzella ). Io ho seguito la session per gli sviluppatori: dopo una intro su Team System, è stata la volta del solito, mitico,...

NHibernate: necessario leggere manuale Hibernate

Come ho annunciato qualche giorno fa, sto iniziando ad approfondire l'uso di NHibernate. Ecco quindi il primo post di una nuova categoria di post.. NHibernate Dopo i primi test fatto nei mesi scorsi, ora sto realizzando un'applicazione vera, e subito mi sono scontrato con i primi problemi "reali": Come usare delle collection tipizzate? Come usare il pattern "Special Case"? Come usare dei mapping + complessi dei soliti "padre/figlio"? Aiutato da Giancarlo Sudano e dal forum di NHibernate sto andando un po' avanti: NH non è facile come sembra guardando il Quick Start, per fare cose più complesse dei semplici mapping è...

Blogging Engine in .NET

Sto pensando di mettere in piedi nel mio sito un motore di blogging e sto facendo un'analisi dei vari motori opensource e/o free esistenti. MovableType, WordPress, bloxsom, .Text, Community Server, NewBlog per DNN, dasBlog, subtext, blojsom

Ben Hammersley e Web 2.0... ovvero SOA

Non sono stato al workshop, ma racconto pure io un evento... Stasera sono stato ad ascoltare Ben Hammersley, che alla Hoepli raccontava la sua visione sul futuro dei media, di Web 2.0. Un ora e mezza spesa ottimamente...  Punto 1:I media tradizionali sono morti, ora, grazie a piccole innovazioni tecnologiche (le più importanti RSS, podcasting, BitTorrent) tutti possono fruire i contenuti ovunque, e quando vogliono... timeshifting e placeshifting...quindi i contenuti vengono fruiti al di fuori del contesto originale... ad es: in italia si può vedere "Six feet under" 6 mesi prima della sua ideale distribuzione (grazie a qualche geek che ha registrato e reso disponibile...

AJAX: ajaxnet, ajaxnetpro, borgworx

Lo scorso luglio è stata rilasciata la Ajax.NET library di Michael Schwarz (http://ajax.schwarz-interactive.de/)... poi ci sono state delle strane vicende di licenze, promesse di opensource non rispettate, ecc... Poi Micheal ha venduto il codice ad una società austriaca che ha reso opensource il progetto, sotto il nome di Borgworx, ha riorganizzato il codice con differenti namespaces, e ci sta costruendo sopra una seria di ajax-enabled webcontrols come textbox, dropdown, bottoni, repeater, ecc... Dopo aver lasciato il suo codice, Micheal ha risviluppatto "from scratch" una nuova libreria ajax.. chiamata Ajax.NET Pro library (http://ajaxpro.schwarz-interactive.de/), anche questa disponibile come la prima, free, ma non open. Sono rimasto...

VirtualEarth o Google Maps?

Poche settimane fa, MS ha rilasciato la documentazione delle sue API per integrare le mappe nei propri siti, e vedo ora, anche l'SDKSfortunatamente le mappe di VE non sono così dettagliate nei paesi al difuori degli Stati Uniti... provate andare andare nel Nord Italia, e il livello massimo di dettaglio è la regione !! Ho scoperto che anche le API di Google Maps sono pubbliche, non so da quanto lo siano. E guardando la documentazione, sono molto più flessibili e "potenti" di quelle di VE (tra le tante, dei popup per i "pins", un caricamento delle location dei "pins" via AJAX)... oltre...

[KEA] - Modello Applicativo aggiornato

Sono finalmente riuscito ad andare aventi con la progettazione di Kea: la fase corrente di sviluppo è la progettazione della struttura dati, e, in particolare, il dettaglio del primo modulo: la gestione del vigneto. Sul solito sito, trovate la documentazione aggiornata, per ora solo in Italiano... a breve anche quella in inglese, ed il diagramma ERD del programma. powered by IMHO 1.2

Singleton

Ultimamente sto mettendo il Pattern Singleton un po' ovunque... e spiegando ad un mio collega cos'è il Singleton gli ho girato il link della DO Factory con in Pattern della GOF spiegati in C#. E ho notato che l'esempio di codice proposto è con la lazy initialization: // "Singleton"class Singleton{  // Fields  private static Singleton instance;  // Constructor  protected Singleton() {}  // Methods  public static Singleton Instance()  {    // Uses "Lazy initialization"    if( instance == null )      instance = new Singleton();    return instance;  }} Nelle mie molte implementazioni invece ho sempre usato la forma senza lazy initialization: class Singleton{  // Fields  private static Singleton instance = new Singleton();  // Constructor  private Singleton() {}  // Properties  public static Singleton Instance  {    get {        return instance;    }  }}  cioè, con l'istanza caricata nella parte "statica" della classe. Mi chiedevo quale fosse il metodo migliore, e dopo un post sul forum di ugi, sono arrivato alla conclusione che il metodo migliore, a meno di problematiche realtive alle cose fatte nel costruttore (tipo accesso...

Domain Object Persistence Pattern

TheServerSide.NET ha pubblicato un articolo su "Domain Object Persistence Pattern" (AKA Domain Model Pattern + Data Mapper, AKA DAO, AKA HEYLTNI... [HowEver You Like To Name It ]). Anche se è la solita minestra riscaldata e già rivista centinaia di volte, anche se l'autore si è inventato l'ennesimo nome per il DAL (usti... eccone un'altro ), anche se nel forum gliene dicono di peste e corna, a mio avviso è un articoletto ben fatto perchè in poche righe spiega perchè e come fare un layer di accesso ai dati e di DTO. Domain Object Persistence Pattern by Iqbal M. Khan. powered...

Dove vuoi andare oggi?

Agosto, mese di scarico lavorativo, invece che stare a girare con le mani in mano, oggi cosa mi invento? Provo a clusterizzare MySql... Tutto gira su normali macchine Linux, sia i nodi server, che i nodi di dati... nessun cestello esterno... Vedremo cosa salta fuori powered by IMHO 1.2

[KEA] - Lista funzionalità e versioni programma

Grazie ai numerosi feedback ricevuti dopo la pubblicazione del documento sugli obbiettivi del progetto sono riuscito a delineare una lista di funzionalità per la prima versione di Kea. Anche questa volta vi chiedo dei feedback sull'elenco delle funzionalità, e la loro collocazione nelle tre categorie (primo rilascia, prossima versione, opzionale).Sul solito sito (http://www.kea-winemaker.com/docs.aspx) ho pubblicato un file di excel (http://www.kea-winemaker.com/docs/feature-vs-release-ita.xls) allo scopo. Questo è l'ultimo documento di ricerca requisiti: appena ottengo un po' di risposte a riguardo inizio "finalmente" la parte più propriamente operativa, cioè cercherò di delineare una struttura dati per salvare su DB tutte le informazioni necessarie... ma in questa fase collaborerò...

Sempre più interesse per AJAX da parte di Microsoft

Prima un articolo di KB di qualche mese fa, poi l'annuncio di Scott Guthrie di Atlas, il framework AJAX che sarà rilasciato con ASP.NET 2.0 (e già disponibile ai "comuni mortale" nella CTP di Settembre). Ora un bell'articolo su MSDN intitolato "Life Without Refresh", che racconta un po' la storia di questa tecnologia (e parte dal IE 3.0 del 96) e come fare per sviluppare un'handler per gestire gli AsyncCallback in attesa del rilascio di AJAX in ASP.NET 2.0. Due note a latere:se volete vedere come si farà a implementare delle AsyncCallback con il nuovo framework 2.0 ci sono dei post (un po'...

Workshop Components Development

Eccomi tornato dal workshop, come al solito interessante, anche se con alcuni appunti da fare ad uno speaker in particolare... ma ne parlo dopo. Ora non c'è nessun post sul workshop... è il primo a blog sul workshop? Ho vinto qualcosa? dai... almeno una maglietta di quelle di fabio.. o una borsa... Premessa: io sviluppo ASP.NET da sempre, e poco, pochissimo, quasi nulla WinForms.UPDATE (me lo ha fatto notare Igor): preciso, ASP.NET da sempre nel mondo .NET, ma prima ho fatto per 5 anni applicazioni ASP Classic e COM con VB6... ma cmq, mai applicativi WinForm Windows Components: entrambe le due sessioni, la prima...

AJAX per ASP.NET

Un po' di tempo fa avevo segnalato un link ad un articolo di KB MS che "spiegava" come fare richieste XMLHTTP. Poi, la "scoperta" che MS sta pensando di inserire in una prossima versione di ASP.NET (non la 2.0, ma in futuro). Ora ho trovato una libreria che permette di integrare chiamate Ajax in ASP.NET: la figata è che si crea automaticamente tutti i proxy JS per chiamare la funzione definita lato server.E si comporta un poco come se fosse un WebService: cioè si fa una classe, si "attributano" dei metodi, e l'handler gestisce da solo tutto.Va registrato un HttpHandler per gestire i file...

[KEA] - Primo rilascio di documentazione

Dopo un po' di tempo dall'ultimo post sull'applicativo OpenSource che sto iniziando a sviluppare, grazie ai contributi delle persone che mi hanno offerto il loro aiuto, in particolar modo le aziende listate nella pagina Sponsor del sito, eccomi ad annunciare il rilascio del primo documento di riassunto delle funzionalità di KEA. E' disponibile alla pagina documentazione ...

Validazione di XML con XSD

Ma è possibile che non esiste un programma per validare un file XML passandogli un XSD? Cercando su internet ho trovato degli IDE per gestire XML, per scrivere XSD, per XSLT, per testare le trasformate, per tutto, e fanno anche la validazione, ma sono programmi da 20Mb, da installare, da comprare, e che fanno anche il caffè in formato XML... ma non uno stupido programma che prende solo un file XML e lo valida contro un XSD. Allora me lo sono fatto io... con .NET è veramente facile... 1  using System;2  using System.Text;3  using System.Xml;4  using System.Xml.Schema;5  6  namespace Com.Piyosailing.Xml.Validator7  {8      public class XmlValidator9      {10          // salvo lo stato della validazione11          private bool _isValid = true;12          private StringBuilder _stringBuilder = new StringBuilder();13  14          //Propretà per fornire al chiamante il risultato della validazione15          public string ValidationErrors 16          {17              get 18              {19                  return _stringBuilder.ToString();20              }21          }22  23          // Metodo che valida24          public bool Validate(string xmlPath, string xsdPath,string targetNameSpace) 25          {26              XmlTextReader reader = null;27              XmlValidatingReader vReader = null;28              XmlSchemaCollection myschema = new XmlSchemaCollection();29              try30              {31                  //Creo XML reader32                  reader = new XmlTextReader(xmlPath);33                  //Incapsulo XML reader dentro Validiting reader34                  vReader = new XmlValidatingReader(reader);35                  vReader.ValidationEventHandler36                          +=new ValidationEventHandler(vReader_ValidationEventHandler);37  38                  myschema.Add(targetNameSpace, xsdPath);39  40                  vReader.ValidationType = ValidationType.Schema;41                  vReader.Schemas.Add(myschema);42  43                  //Leggo il file44                  //Se ci fossero errori viene chiamato l'handler45                  while (vReader.Read()) {}46              }47              catch48              {49                  _isValid=false;50              }51              finally52              {53                  if(reader.ReadState!=ReadState.Closed)54                      reader.Close();55                  if(vReader.ReadState!=ReadState.Closed)56                      vReader.Close();57              }58  59              return _isValid;60          }61  62          //Event Handler per cattuare tutti gli errori di validazione63          private void vReader_ValidationEventHandler(object sender, ValidationEventArgs e)64          {65              _isValid = false;66              _stringBuilder.AppendFormat("\r\nValidation Error: {0}", e.Message);67          }68      }69  } Questa è solo la libreria che valida, l'ho estrapolata dal programmino da linea di comando...

Pensieri sparsi di esperienza sul campo

Ho appena aggiunto la categoria di post "Progetto in corso"... E' il progetto del quale parlavo un po' di tempo fa, e che, nonostante mi faccia stare in ufficio dalle 9 alle 21 tutti i giorni (fortunatamente sono riuscito a schivare i weekend ), mi sa mettendo di fronte a molte problematiche che non avevo mai affrontato prima d'ora: gestione dei thread per eseguire molti task in contemporanea (per fortuna non vanno sincronizzati ) processing "pesante" di file XML, da validare con XSD, e deserializzare salvandolo in un DB utilizzo estensivo...

Come testare DTO gerarchici

Nel progetto appena iniziato sto provando ad adottare varie metodologie scoperte da quando sto seguendo UGIdotNET e, soprattutto dal Workshop "Architecture and Management". Ieri, primo giorno di scrittura codice, mi sono trovato a scrivere i Data Transfer Object, che, per come è strutturato l'ambito applicativo, sono gerarchici, cioè tutti gli oggetti ereditano da un "mainobject". Ma come scrivere dei test per gli assegnamenti, evitando di replicare per ogni oggetto tutti gli assegnamenti delle proprietà comuni? Io ho trovato questa soluzione // Classe DTO Padrepublic abstract class MCObject {        private string _uuid = string.Empty;        private DateTime _data = DateTime.Now;        private DateTime _dataMod = DateTime.Now;        public string Uuid        {            get            {                return _uuid;            }            set            {                _uuid = value;            }        }        public System.DateTime Data        {            get            {                return _data;            }            set            {                _data = value;            }        }}// Classe DTO figliopublic class MCOTappo: MCObject{    private string _url = string.Empty;        public string Url        {        get        {            return _url;        }        set        {            _url = value;        }    }}// Test dell'oggetto padre con i Test per le// proprietà generiche// NOTA: non è marcato [TestFixture]public class MCObjectFixture    {    public MCObjectFixture() {}    private MCObject mco;    public MCObject MCO     {        set         {            mco=value;        }    }    [Test]    public void UuidAssignment()    {        string id = "68d6d186-c6ee-11d9-98ef-0003ba99c667";        mco.Uuid=id;        Assert.AreEqual(id, mco.Uuid);    }    [Test]    public void DataAssignment()    {        DateTime value = DateTime.Now;        mco.Data=value;        Assert.AreEqual(value, mco.Data);    }    }// Test dell'oggetto figlio// è marcata come [TestFixture]// e testa solo la proprietà specifica[TestFixture]public class MCOTappoFixture: MCObjectFixture{    private MCOTappo tappo;    // Nel setup creo l'oggetto da testare    // e lo passo anche al test padre    [SetUp]    public void SetUp()    {        tappo = new MCOTappo();        base.MCO=tappo;    }    [TearDown]    public void TearDown()    {        tappo = null;    }        [Test]    public void UrlAssignment()    {        string value = "http://www.ugidotnet.org";        tappo.Url=value;        Assert.AreEqual(value, tappo.Url);    }} powered by IMHO 1.2

Finalmente un progetto!!! - Plugin pattern

Dopo 3 mesi di analisi e "tappabuchi" inizia finalmente un progetto... anche abbastanza complesso...Mi ero stufato di scrivere analisi e allegati tecnici alle proposte commerciali. E' un bel progetto (del quale, ovviamente, avevo fatto anche l'analisi nei mesi scorsi ) che include la realizzazione di un servizio windows, che legge dei file xml di vario tipo (questo spiega il perchè del "Plugin Pattern" del titolo), li elabora e li mette in un DB.Poi c'è un sito web che visualizza in maniera "graficamente accattivante" i contenuti recuperati. Negli ultimi mesi ho fatto un po' di prove con Enterprise Library di MS, e...

Telemetria Indy Racing realizzate in VB.NET

DotNetRocks ha un bel "talk show" su come è stata implementata la gestione delle statistiche e della telemetria per l'IRL (Indy Racing League) Audio: http://msdn.microsoft.com/dotnetrocks/en/20050419mmannion/dotnetrocks_0109_matt_mannion.asx Case Study: http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=15150 Video Business oriented: http://www.microsoft.com/resources/casestudies/ShowFile.asp?FileResourceID=3971 Video Tech Oriented: http://www.microsoft.com/resources/casestudies/ShowFile.asp?FileResourceID=3972 Case Study in formato word: http://www.microsoft.com/resources/casestudies/ShowFile.asp?FileResourceID=3866 La cosa sconvolgente è che è stato fatto, dall'analisi al deply in 5 settimane di 3 sviluppatori, ok, sono sempre 75gg uomo, e in realtà era solo il porting di un'applicativo fatto in flash+java... ma per la mole di dati e la "real-timeness" è sbalorditivo... magari il fatto di lavorare in un contesto applicativo più divertente dei soliti conti bancari, fornitori, ordini ecc... potrebbe...

AJAX spiegato da MS

Un articolo pubblicato pochi giorni fa sulla Knowledge Base di Microsoft spiega come implementare, usando Javascript, MSXML, e un webservice fatto in C#, una pagina che si aggiorna direttamente senza fare dei postback sul server. Qui potete trovare l'intero documento in questione Dynamic page updates using XMLHTTP Ovviamente nel codice presentato pensano che esista solo IE // create the XML object    objXmlDoc = new ActiveXObject("Msxml2.DOMDocument");    if (objXmlDoc == null)    {            alert("Unable to create DOM document!");    } else {        // create an XMLHTTP instance        objHttp = new ActiveXObject("Microsoft.XMLHTTP"); ma basta modificare la chiamata in modo che istanzi l'XMLHttpRequest per renderlo compatibile anche con i browser che non supportano gli ActiveX, sostituendo il messaggio d'errore con objHttp = new XMLHttpRequest(); A merito di Microsoft va però detto che nonostante questa "ovvia" preferenza per IE stanno cmq cercando di standardizzarsi: Note Microsoft does offer...

Rispolvero la mia tesi: web-services

Con il ritorno di fiamma verso i web-services che si sta avendo ora, con WSE e Indigo rispolvero la mia tesi di DU su SOAP. Il titolo era qualcosa del genere: "Protocolli di testo per la comunicazione tra applicativi eterogenei..." La cerco e la pubblico appena la ritrovo in formato digitale Come programma esemplificativo c'era un sistema di rilevazione e visualizzazione in tempo reale delle azioni di una partita di basket. Era così composto: Client di rilevazione: VB6 con Soap toolkit Server: IIS con Soap toolkit, ASP e  COM in VB Client di visualizzazione: Flash 4 La cosa interessante è stata...

Upgrade da 0.7 a 0.9 per CC.NET

Ho passato un paio di ore pomeridiane a fare l'upgrade dalla versione 0.7 alla nuova versione 0.9 appena uscita. La procedura è stata abbastanza indolore: copio le due directory server e webdashboard sopra le due vecchie aggiorno il vecchio ccnet.config modificandolo in base alla "breaking changes" apportate dalla versione 0.9 Ci sono due cose da cambiare: va cambiato il nome del tag PollingIntervalTrigger con IntervalTrigger è scomparso il tag build ed è stato inglobato tra i task, quindi ho spostato la definizione della build di nant dentro all'elenco dei...

CruiseControl.NET: rilasciata la 0.9

E' appena stata rilasciata la 0.9 di CruiseControl.NET. Sono state modificate parecchie funzionalità, e la WebDashboard è stata completata e migliorata. Le Release Notes ufficiali contengono poi anche l'elenco di tutti i bugs fixati con la release. Consigliato l'upgrade. powered by IMHO 1.2

Architect Day, David Chappel, SOA, Indigo, Biztalk

Eccomi appena tornato dall'Architect Day: come al solito l'impeccabile organizzazione di MS Italia, resa ancora + agevole dalla tessara magnetica che evita la solitamente interminabili code alla reception ci accoglie sorridente. (anche se ora c'è meno interazione con le solite graziose signorine della reception ) Ero venuto per sentire la presentazione di David Chappel, e ne è valsa la pena... un vero "animale" da palcoscenico... se tutti gli speaker fossero così, si potrebbe anche far pagare le conference . Poi, torniamo sul tecnico... SOA... boh, non so, tecnicamente figata, ma, sarà veramento il successone paventato? Forse per applicazioni specifiche, o cmq per...

Tirando le somme di 4 mesi di UGI

Oggi sono quasi 4 mesi (giorno più giorno meno) che seguo le discussioni sui forum e sul blog di UGI.NET.Grazie a queste e anche ai workshop seguiti (sempri targati UGI) sono molto cresciuto, intendo professionalmente, di testa e di altezza sono sempre uguale Ho aperto un mio blog, ho conosciuto un grande strumento come CC.NET e tutta la teoria sulla continuous integration (grazie Lorenzo), ho fatto il mio primo programma windows form (grazie Andrea) e ho iniziato a progettare i sistemi SW usando i Pattern (grazie Andrea2). Oltre a ricevere, ho cercato anche di restituire il "favore" scrivendo un paio di...

Cache su architetture multi-server

Un paio di giorni fa ho pubblicato il mio primo articolo sul sito UGIdotNET. Gestire la cache su architetture multi-server Attendo "impaziente"  vostri commenti a proposito.. grazie powered by IMHO 1.1 with Emoticon Formatter

Gestire la cache su architetture multi-server: il mio primo contributo a UGIdotNET

E' appena uscito sul sito UGIdotNET il mio primo articolo "serio" Su architetture multi-server (server web bilanciati che si spartiscono il carico) la cache nativa di ASP.NET non funziona, o meglio, non viene gestita in maniera sincronizzata: nell'articolo che ho pubblicato parlo di una soluzione interessate per gestire questa problematica. Gestire la cache su architetture multi-server Ed essendo il mio primo articolo, sono anche stato aggiunto nella rosa dei contributors di UGIdotNET. powered by IMHO 1.1 with Emoticon Formatter

CruiseControl.NET - parte 1: L'installazione

Come avevo promesso, provo a riassumere e a "formalizzare" un documento che aiuti altri a installare questo fenomenale strumento di gestione centralizzate delle build che è CruiseControl.NET (d'ora in avanti CC.NET). Ecco il link all'articolo completo: CruiseControl.NET - parte 1: L'installazione In questa prima parte analizzo i pre-requisiti necessari all'installazione, la loro installazione fino ad arrivare alla prima esecuzione del programma. Nella prossima vederemo come è fatto il file di configurazione dei progetti. powered by IMHO 1.1 with Emoticon Formatter

Come essere compatibili con le guidelines .NET

Prima di andare a fare cascate di ghiaccio in quel di Cogne, stavo iniziando a vedere cosa combina FxCop sulle mie dll. Questa mattina ho cercato di razionalizzare il risultato dell'analisi, e ho buttato giù un articolo con quelle che ritengo siano le indicazioni importanti da tener presente. Leggilo qui... powered by IMHO 1.1 with Emoticon Formatter

Web Upload Progress Bar

Mi sono imbattuto in una problematica interessante, cioè quella di realizzare un progress bar per indicare lo stato di avanzamento dell'upload via web. Sfortunatamente non è facile da implementare come in ASP e Java: il Framework nasconde completamente il processo di upload e di decodifica del post (quando arrivail Page_Load tutto il file è già in memoria del server) Per fare una cosa del genere bisogna creare un HttpHandler e salvare da qualche parte (in una hashtable o similare) lo stato di avanzamento dell'upload, in modo da poterlo leggere da una pagina che si aggiorna e scrive l'avanzamento. Avendo solo 2gg per implementare...

Design Patterns: GoF

Alla session di giovedì su Design Patterns tenuta da Andrea mi sono sentito un pesce fuor d'acqua per non aver, non solo mai letto,ma mai sentito parlare del libro sui Design Pattern della GoF. Oggi pomeriggio mi sono diretto alla Hoepli per rimediare, ma oltre al suddetto libro, ne ho trovato anche un'altro che mi pareva interessante e forse anche più utile a livello pratico: Pattern of Entraprise Application Architecture di Fowler. In un altro periodo dell'anno li avrei presi entrambi, ma con il Natale (e i regali di Natale da comprare) sono stato costretto a scegliere: Design patterns contiente le descrizioni...

Paginazione dati direttamente da query con SQL Server

MS SQL Server è un ottimo prodotto, ma secondo me ha una grande mancanza: manca la possibilità di specificare in una query che si vogliono solo le righe dalle 11 alla 20. Qualcuno potrebbe dire che basta fare un Select top 20 * from ... e poi saltare le prime 10 righe in visualizzazione: sfortunatamente il numero dopo il TOP non è parametrizzabile, quindi non si può fare passare ad una stored procedure. Ovviamente ci sono altri mille modi per fare paginazione - salvare la datatable nella session, magari anche nella cache se è una query generica (il comunissimo elenco news), ecc... - ma io dovevo per...

«aprile»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011