ottobre 2005 - Posts
Segnalo questo post di Scott Woodgate a proposito di BizTalk 2006 e le RTM che fanno da star di queste ore insieme a WinFX.
Come indicato in questo post di Dan Fernandez, la cosa migliore sarebbe avere un PC "pulito" cosa che mi devo accingere a fare per ora in VmWare e dopo DevCon, WPC e tutti gli altri impegni che mi renderanno "vivo" il mese di novembre :-) farò sicuramente formattando il mio PC ufficiale!
Nel frattempo si può usare il tool segnalato nel post, per fare un po' di pulizie di Natale.
 |
Nel numero di VBJ di questo bimestre è presente un reportage su PDC05 curato da noi della ciurma di DevLeap, visto che siamo andati tutti al gran completo a seguire la conferenza. Scriverlo è stato una bella esperienza, perché abbiamo lavorato a 8 mani e siamo riusciti a coordinarci nel tentativo di produrre dei contenuti che fossero al giusto livello tecnico e di dettaglio. Speriamo di esserci riusciti.
Inoltre sempre su questo numero è presente anche un mio articolo sul SOAP messaging con WSE2.
Vi ricordo che VBJ è distribuito solo in abbonamento, quindi non lo trovate in edicola, ma dovete sottoscrivere un abbonamento (online e/o offline) dal sito di Infomedia. |
Utile tabellina di conversione:
http://spaces.msn.com/members/davidpallmann/Blog/cns!1pgpChl8yiT4S0igleziRuxA!166.entry
Curioso il fatto che sia "sparito" dall'attributo ServiceContract il flag per supportare la formattazione con XmlSerialization ... però è comparso un attributo XmlSerializerFormatAttribute del quale al momento non c'è reale documentazione nel Reference.
Mi è stato chiesto come ho realizzato il "Wizard di iscrizione" alla nostra conferenza. Con ASP.NET 2.0 infatti abbiamo un controllo Wizard fatto apposta per questo, ma in ASP.NET 1.x non c'è nulla di tutto ciò e vi è l'aggravante del non avere il cross-form posting delle form ASP.NET.
Siccome può servire anche ad altri, pubblico il progetto .NET WebWizard che ho utilizzato con tutti i suoi pregi e tutti i suoi difetti :-) (a suo tempo l'avevo creato come demo per un cliente di un corso) e che da allora ogni tanto mi utilizzo.
Il suo funzionamento è molto semplice:
- occorre referenziarlo, ovviamente
- decorare con l'attributo WebWizardStoreAttribute i controlli dei quali si vuole persistere lo stato tra una pagina del Wizard e l'altra
- derivare le pagine web non più da System.Web.UI.Page ma bensì da WebWizard.WebWizardPage (che ovviamente a sua volta deriva da Page)
A questo punto per andare avanti o indietro nel wizard si può invocare il metodo MoveToPage, andando avanti o indietro negli step del Wizard. Il codice della pagina modificata si farà carico di persistere e ricaricare dal ViewState i controlli di ciascuna pagina decorati con l'attributo WebWizardStoreAttribute.
Ecco un estratto di una delle pagine di iscrizione, che lo usano:
public class Registration : WebWizardPage
{
protected System.Web.UI.WebControls.Button goForward;
[WebWizard.WebWizardStore("Text")]
protected System.Web.UI.WebControls.TextBox attendeeNumber;
[WebWizard.WebWizardStore("Text")]
protected System.Web.UI.WebControls.TextBox reservationCodes;
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.goForward.Click += new System.EventHandler(goForward_Click);
}
#endregion
private void goForward_Click(object sender, EventArgs e)
{
if (this.IsValid)
{
MoveToPage("CompanyData.aspx");
}
}
}
ATTENZIONE: il controllo non è perfetto, sicuramente avrà N bug, l'ho usato poco ma è più per dare un'idea da cui partire che non per darvi il controllo "faccio tutto io" :-) ... se trovate dei bug ... ditemelo così lo fixo anche per me, grazie. Non abusatene perché il ViewState di una pagina è tutt'altro che gratis! Se potete passare ad ASP.NET 2.0 .... tanto meglio! :-)
Enjoy.
Giovedì ore 00:30 (stanotte insomma).
Rientro dalla birra con la mia ragazza e passo dall'ufficio, per sostituire un disco SCSI che si era guastato la scorsa settimana (capita :-( ...). Per fortuna sul controller RAID avevo il disco di hot-spare in stand-by e il danno è stato minimo.
Mi dico: metto ora il disco nuovo nel server, tanto se anche a quest'ora succedesse qualcosa ... è notte :-) e i clienti dormono (è un pensiero scaramantico ... mica penso davvero di avere così sfortuna!).
Qui da me ho una piccolissima server farm (12 server concentrari in un paio di armadi rack) e non mi piace creare disservizi ai clienti.
Inserisco il disco nuovo ... faccio il rescanning del bus SCSI ... cavoli! Schermo blu!!!! Mi dico: sarà colpa di Windows Server 2003 :-) ....
Riavvio il server: "invalid partition table". Il server non risale!!! Oh c*cc**o!! :-)
Spengo e riaccendo il server ... nulla da fare. Si tratta del server SQL (giusto perchè la sf**a ci vede bene!). Avvio il BIOS del controller RAID: tutti i dischi del RAID sono marcati come "Defunct". Panico e gola secca (nonostante le birre!).
Chiamo il numero verde del produttore hardware. Schedano il caso come "critico". In 5 minuti mi richiama un tecnico gentilissimo e disponibilissimo. Mi guida nel recupero del server. In circa 50 minuti dal down il server è up (compresi DevLeap e DevCon che sono in un CMS i cui dati sono su quel database server). Ora il RAID è in stato di rebuilding e domattina verrà da me in ufficio il tecnico a controllare tutto il sistema per essere certi della causa del guasto.
Che dire: il 24x7 si paga, ma se è veramente valido si paga volentieri!!! La marca dell'hardware? La dico volentieri perché ne vado fiero e ne sono estremamente contento: IBM!
Ho fatto pubblicità? Lo so... è meritata! Che sia tutto organizzato perché IBM è sponsor di DevCon? Magari! Almeno sarei andato a letto prima stanotte ... :-) purtroppo però il guasto c'è stato davvero (capita!), ma ho apprezzato davvero molto la tempestività e la professionalità di intervento! Grandi!
Adesso posso andare a letto tranquillo ....
Da pochi minuti sono ufficialmente aperte le iscrizioni on-line sul sito della DevLeap Conference 2005!
Potete iscrivervi on-line utilizzando la carta di credito oppure off-line tramite bonifico..... a questa pagina trovate tutti i dettagli.
Chi si è già prenotato prima del 30 settembre, usufruendo del prezzo scontato, riceverà (o meglio .... SMTP permettendo :-) dovrebbe aver già ricevuto) una email con i dettagli per confermare la sua iscrizione a prezzo agevolato.
A chi si è prenotato rivolgo un grazie personale, per la fiducia accordataci "in anticipo", avendoci consentito di pianificare meglio l'evento.
A tutti quelli che non si sono prenotati: cosa aspettate? Forza! Questo è il link per iscrivervi. Ci vediamo a DevCon2005!!!
Dopo la DASKeyboard segnalata da Sergio e Marco un mesetto fa, eccone un'altra ancora più folle:
http://www.artlebedev.com/portfolio/optimus/
ScottGu in questo post spiega che se salviamo nella root di un'applicazione web ASP.NET 2.0 un file di nome App_Offline.htm la nostra applicazione farà shutdown, scaricherà l'appDomain e inizierà a rispondere a tutte le richieste inviando questo file anziché la pagina realmente richiesta dall'utente. Tutto questo finché il file non sarà cancellato, spostato o rinominato.
Io non la trovo una "bella feature" perché se in qualche modo qualcuno che vuole fare hacking del nostro server riesce a eseguire l'upload di un file con quel nome, questa "feature" diventa uno strumento di denial of service.
Non mi convince ....
Ne parlano più o meno tutti in questi giorni:
Charles Petzold sta scrivendo un libro su Avalon. Considerando
chi è e
cosa ha scritto Charles Petzold ... non resta che aspettare l'uscita del libro e seguirne l'evoluzione nel suo
blog!
http://www.microsoft.com/downloads/details.aspx?FamilyId=6BAFE8A6-CDC9-4AE6-9625-E6260CCDEF24&displaylang=en
Considerando che con l'arrivo di VS.NET 2005 dovrebbe da lì a poco arrivare anche WSE3 RTM, forse questa è l'ultima o la penultima CTP.
"Enjoy the SOA life style" :-)
In DevLeap abbiamo un amico il cui contributo è prezioso anche dal punto di vista professionale e non solo umano.
Si tratta di Eugenio La Mesa, esperto di marketing e in particolare di email marketing e "comunicazione elettronica".
Grazie al suo contributo ci siamo resi conto che il blog della nostra conferenza era poco evidente ai visitatori del sito e quindi sotto-utilizzato rispetto alle nostre intenzioni!
È proprio vero che ognuno deve fare il proprio mestiere a questo mondo! Noi che siamo programmatori e consulenti IT, non sempre "ci prendiamo" quando si tratta di marketing e comunicazione! :-)
Comunque grazie alla segnalazione di Eugenio abbiamo sistemato il problema mettendo un link diretto al blog, dal menu del sito di DevCon 2005.
Ho comprato una nuova chiavetta USB, perché quella che avevo prima me l'ha fulminata il mio caro amico :-) RoB inserendola nel suo PC, quando eravamo a PDC.
Ho preso una chiavetta da 1GB USB2 (mi sembra sufficiente, in 2GB non saprei cosa metterci...).
La chiavetta in sé sembra andare bene. Non dirò la marca perché non mi interessa fare pubblicità né positiva né negativa. Apro la chiavetta per la prima volta e mi trovo un bel software per proteggere il contenuto della chiavetta stessa. Mi sembra una buona idea, in molti produttori di chiavette oggi offrono servizi simili. Mi viene in mente quando 1 anno fa persi a Napoli in un taxi la mia chiavetta da 256MB .... che dispiacere, soprattutto per i documenti che avevo al suo interno, che erano in parte riservati.
Quindi provo subito il software. Per farlo girare (la prima volta, penso io) occorre essere amministratori, e fin qui tutto bene. Io non lavoro come admin sulla mia macchina, quindi faccio un bel "Run As". A questo punto il software mi propone di configurare la chiavetta in modo sicuro: inserisco una password, prevedo una dimensione dell'area riservata e siamo a posto! Il software riformatta la chiavetta creando 2 aree: quella libera e quella sicura, protetta con password.
Il programma finisce il suo lavoro e io da utente normale cerco di accedere alla chiavetta: vedo la partizione "libera" con dentro un link per accedere alla parte riservata. Provo ad eseguire il link e scopro che anche per accedere successivamente alla chiavetta devo essere admin, perchè il software si è installato in parte nella cartella Program Files e in parte nella Documents and Settings dell'utente admin (non nei Common Files al limite!) quindi per eseguire il link bisogna essere admin. Se lo eseguo come utente non admin tra l'altro ottengo un bel errore MFC con la classica possibilità di inviarlo a Microsoft.
Allora, un po' deluso, rieseguo il software con un "Run As" amministrativo, e mi viene richiesta la password. Sempre in questa stessa schermata però, ancor prima di aver messo la password, posso riformattare la chiavetta e cambiare la configurazione dell'area protetta, senza però dover immettere prima la password!
Insomma il simpatico software oltre a non essere stato progettato per essere utilizzabile realmente da utenti non admin (mica solo gli admin hanno bisogno di conservare dati riservati su una chiavetta USB!) non è nemmeno realmente sicuro, perchè se qualcuno dovesse fregarmi la chiavetta potrebbe tranquillamente (come admin) riformattarla o accedere al suo contenuto cambiandone la configurazione!!!
Manderò una email di segnalazione del "problema" al produttore, ma mi sembra che troppo spesso si voglia fingere di essere sicuri o di voler fornire servizi sicuri che poi sicuri non lo sono per nulla!
Segnalo che il prossimo 12 ottobre a Roma ci sarà un evento di Microsoft Italia a proposito di Visual Studio Team System. Per chi è da quelle parti credo proprio che ne valga la pena!
In questo articolo si parla della difficile scelta tra Team System e SourceSafe:
http://msdn.microsoft.com/vstudio/default.aspx?pull=/library/en-us/dnvs05/html/VSTmSysvsVSS.asp
Io metto sul tavolo anche SourceGear, che utilizzo ormai da oltre 1 anno e che seppur con dei problemi (in particolare su progetti grossi) ... mi ha semplificato e migliorato la vita rispetto a SourceSafe.
Ora ho intenzione di portare dentro a Team System un progetto al quale sto lavorando, per vedere se "regge" in modo da decidere se aggiornare SourceGear alla versione per VS.NET 2005 oppure se tenermi buono Team System.