.NET

Microsoft <3 Open Source (?)

Lo scorso dicembre, su invito di Microsoft Italia ho partecipato in qualità di relatore al meetup “Microsoft e la openness” organizzato in seno a WPC; è stata una serata interessante ed alcuni partecipanti mi hanno riferito che molte tra le informazioni che ho fornito non erano loro note: ho pensato quindi di raccogliere in questo post un sunto di quanto mostrato in quella sede. Ossimoro L'ossimoro (dal greco ὀξύμωρον, composto da ὀξύς, «acuto» e μωρός, «ottuso»[1]) è una figura retorica che consiste nell'accostamento di due termini di senso contrario o comunque in forte antitesi tra loro.[Wikipedia] Apparentemente...

Sito UGIdotNET, beta 2

Ho pubblicato un aggiornamento della versione beta del nuovo sito UGIdotNET, ecco il changelog: [UPDATE] Alcuni cambiamenti in home page, sia estetici (es: appaiono gli abstract anche per i tip e il numero di video è stato aumentato a 4) sia “sotto il cofano” (es: video e blog nella barra di dx vengono popolati mediante AngularJS). [NUOVO] Le pagine “lista” di articoli, news e tip hanno i feed atom/rss [NUOVO] E’ disponibile la sezione “Eventi” [NUOVO] Aggiunta la pagina “Collabora” [UPDATE] La pagina di...

Never mind the bollocks: here’s the MvcMate

Premessa: l’ho mostrato durante la mia sessione ai #CDays13 di Roma e mi stanno arrivando alcune mail al riguardo, quindi approfitto del blog per una risposta “pubblica e cumulativa”: ecco il sorgente di MvcMate, disponibile anche come package NuGet. Per coloro che non erano presenti, MvcMate è una libreria che sviluppiamo in Managed Designs a supporto dei nostri progetti web: fondamentalmente, è nata quando ho deciso di iniziare a impacchettare tutte quelle primitive che, pur generalmente utili, erano invece sparpagliate all’interno dei vari progetti (uno su tutti: la beta del nuovo sito UGIdotNET). Al momento, la libreria contiene:...

Upload di file in applicazioni ASP.NET MVC: un paio di approfondimenti

Mi riaggancio a questo mio tip pubblicato su UGIdotNET per fare un paio di approfondimenti: Se usate l’attributo accept dell’elemento input e il browser protesta anche se il file che avete referenziato per il download è corretto, probabilmente siete incappati nello stesso bug di jQuery Validate che anche io ho potuto “gustare”: aggiornate la suddetta libreria all’ultima versione (va benissimo quella disponibile su NuGet) e il problema sarà risolto Se il vostro server è a 64 bit e l’application pool è configurato per usare questa word length, ove voleste (come nel mio...

Community Days, ma anche Community Dinner

Alla vigilia dell’inizio della bolgia, parliamo della parte veramente importante dell’agenda, ossia… La cena :-) Il baccanale avrà luogo presso l’Hosteria il Castelletto, dotata di 2 assett fondamentali: Si trova a Peschiera, quindi ad un tiro di schioppo dall’Innovation Campus di Microsoft Gnocco fritto, salumi, tigelle e Gutturnio E a ben pensarci, “chissene” del primo punto perché il secondo è già una ragione più che sufficiente. :-) Poichè, oltre ad aver ridefinito il concetto di “limite di presenze permesso dalla omologazione dell’Innovation Campus”, rischiamo di dover fare override anche...

Do ut des

Ultimamente, uno dei dischi del server UGIdotNET decide di dichiararsi “offline” ogni tanto. Poi riparte, ma il fenomeno è fastidioso (il volume deve essere ricostruito). Nessun reale problema per la “salute” dei nostri dati (blog, forum, news, …) perchè: il server dispone di una catena RAID6 (ergo, dovrebbero rompersi simultaneamente 2 dischi per essere faulty e “addirittura” 3 per perdere il volume) effettuiamo un backup “online” dei dati ogni 4 ore effettuiamo un backup offline dei dati (“qualche” Gb di database) 2 volte alla settimana ...

Domain Driven Design @ Community Days

Con dei tempi decisamente troppo lunghi (mea culpa, e “millegrazie” a Daniele per la pazienza), da qualche giorno l’agenda dei Community Days è completa, con l’inserimento (grazie al supporto di GUISA) delle sessioni della track “Software architecture”. Riguardando l’agenda, mi sono reso conto che “spunta” un vero e proprio mini tutorial di Domain Driven Design imperniato su 3 sessioni: DATA01 - Build a LINQ-enabled Repository WEB01 - MVC++ ARCH02 - "Beyond" DDD: uno sguardo a CQRS and event sourcing La sessione di Alessandro è dedicata...

Comunicazione di servizio

Ho pubblicato slide e demo della mia sessione del NHDay sul mio blog in inglese; in linea generale, pubblicherò su di esso i contenuti potenzialmente di interesse per i “non italofoni” (es: NSK, la seconda edizione del mattoncino, …) Technorati Tags: NAAE,NHDay,NSK

it.comp.dotnet

C’è voluto tempo, ma finalmente ce l’abbiamo fatta: in data 6/5/2002 inviai al GCN la prima RFD per l’apertura di it.comp.dotnet.lang.visual-basic e it.comp.dotnet.framework, ricevendo pochi giorni dopo (14/5/2002, per la precisione) una risposta che iniziava con un lapidario: “Per ora è prematuro parlarne”. Nel tempo, un altro paio di RFD si sono succedute ed una volta si arrivò addirittura alla CFV, senza però mai ottenere l’apertura di un NG dedicato al framework .NET; qualche mese addietro, grazie all’iniziativa di Alessandro Ravera, io Raf e Alessandro Riolo abbiamo deciso di riprovarci sottoponendo una RFD per l’apertura del gruppo it.comp.dotnet:...

UGIdotNET PhoneSevenizzato

Ricordate quel “anche UGIdotNET sarà presto WindowsPhoneSevenizzato” che ho scritto qui ieri? Il “bottegaio” Davide si è scatenato ed abbiamo pubblicato una piccola preview sul feed Twitter di UGIdotNET. Commenti? Suggerimenti? Ci “vediamo” sul forum! Technorati Tag: UGIdotNET,Windows Phone 7

Cavar il sangue dalle rape: siiiii puòòòòò… Faaareeeee!

Basta spremere mooooolto forte: questa fa il paio con la “scoperta” di POCO (ricordate?) e vince a mani basse l’edizione 2010 del premio “Meglio tardi che mai”. Non sono cattivi, è solo che stanno imparando cosa sia un O/RM (e cosa serva ai dev che li vogliano/debbano usare *seriamente*) man mano che lo sviluppano. Ricapitolando: Scoprono a “sviluppo di v1 ultimato” che il mondo conosce da anni il concetto di “Persistence Ignorance” Scoprono a “sviluppo v2/v4 finito” che il mondo ha scoperto le gioie “refactoring safe” del mapping “by code” ...

Community Days, “Tour Edition”

Come annunciato sul feed Twitter di UGIdotNET, si svolgeranno a Milano nei giorni 16 e 17 dicembre i Community Days “Tour Edition”, organizzati da: ASPItalia, GUISA ed UGIdotNET. Il format sarà un po’ diverso da quello “solito” e speriamo sarà apprezzato: in attesa della pubblicazione della agenda e di tutti i dettagli sul sito, userò il feed Twitter di UGIdotNET per ogni aggiornamento. Technorati Tag: community days,ASPItalia,GUISA,UGIdotNET

Andrea&MVC @ DomusDotNet

Sentirsi a casa anche se, da casa, sei lontano più di 700 km. E’ questa la miglior descrizione che potrei dare della mia partecipazione al primo evento di DomusDotNet, e per questo posso solo ringraziare. Le slide sono qui, la demo è la solita. Alla prossima, e speriamo che sia presto :-) Technorati Tag: community,DomusDotNet,NSK,MVC

NSK: status update

Piccolo recap: A partire dal post di Giulio sul forum GUISA, il mapping fluent/POCO/code only con EF4 è la domanda che ultimamente ricevo più spesso. Un po’ per rispondere a tutti in “colpo unico”, un po’ perché la documentazione è effettivamente molto carente (in fondo si tratta di una feature in CTP3), ho iniziato a lavorare “seriamente” sul DAL EF4 di NSK: è ben lungi dall’essere finito, ma la “raffica” di check-in di ieri dovrebbe iniziare ad essere un significativo supporto per coloro che desiderassero intraprendere questa strada Con la definizione dei...

Stringa, tu mi hai provocato… E io te distruggo

De gustibus tutta la vita, però io le stringhe cablate nel codice non le sopporto proprio. Una vita intera a tentare di evitarla e poi ti arriva MVVM che, a botte di implementazioni di INotifyPropertyChanged ti fa spuntare come funghi “robe” di questo tipo: private string emailAddress; /// <summary> /// Customer e-mail address /// </summary> public string EmailAddress { get { ...

Real World MVC: “Il tutto è più della somma delle sue parti” (cit.)

Quando, preparando l’agenda dell’ormai prossimo workshop “Community Tour v4” (tra parentesi, posso tranquillamente affermare che sia uno dei nomi più orribili che abbia mai “sfornato”), scelsi di “infilare” una sessione dedicata ad MVC, mi chiesi quale potesse essere un “taglio” in grado di dare valore aggiunto: il toolkit è ormai disponibile da quasi due anni e, v1 o v2 che sia, ormai il web offre “chilate” (ennesima unità di grandezza del S.I. <g>) di documentazione ed esempi dedicati alle varie feature di questo engine. Il mio tentativo, quindi, consisterà nel farle vedere “insieme”, ossia cercare di mostrare come...

Workshop “Community Tour v4”: ultim’ora

Visto che ormai mancano pochissimi giorni al workshop, ecco 2-info-2 dell’ultima ora: l’evento è “sold out”, e questa sarebbe una “cosa buona e giusta” (nonché, fortunatamente per UGIdotNET, tutt’altro che inusuale) se non nascondesse un “naturale” drop rate: in pratica, data la gratuità dell’evento, capita che vi siano delle iscrizioni (e nemmeno poche, tra l’altro) che non generano una reale presenza. Poiché però vi sono delle persone in waiting list, prego coloro che sanno che *non* parteciperanno di annullare la propria iscrizione in modo da permettere l’accesso alle persone in attesa. Grassie :-) ...

NSK, alcune risposte

Ok, a valle del mio precedente post su NSK ho ricevuto via mail/blog alcune domande, quindi “impacchetto” tutto qui e rispondo a quelle più ricorrenti: MVVM/Prism: ci sto lavorando (valido sia per NSK sia per la seconda edizione del libro). “Attendere prego!” (cit.) FluentNH (e suburbia, quindi anche ConfORM): sorry, probabilmente è che sono talmente abituato ai “cari vecchi file xml” da non riuscire ancora ad apprezzare il mapping “by code”. Prometto di riprovarci con più convinzione :-) Vedi punto precedente: nel DAL basato su Entity Framework sto mappando “by...

NSK: da 'vnext' a 'vnow'

Complici una serie di motivi (a partire dalle prime chiacchiere sulla ipotetica/futuribile seconda edizione del mattoncino), ultimamente ho introdotto un po' di codice "nuovo" in NSK. Per chi non lo conoscesse, NSK è il progetto open source che Managed Designs ha avviato nel 2004 per poter disporre di una reference implementation di architetture layered basate sul .NET stack: il lato positivo della vicenda è che una quota significativa della codebase e delle scelte di architettura/design proviene dai progetti "real world" che realizziamo in bottega, il lato negativo è che essendo un "toy project" al quale da un...

DotNetCampus 2010: slide & recap

(Come al solito) In ritardo, ecco le slide della mia sessione “Architecting Web Applications” @ DotNetCampus; la demo è il “solito” NSK: la codebase online non è ancora aggiornata, ma cercherò di “committare” ASAP gli update. Colgo l’occasione per ringraziare e complimentarmi con lo staff per la splendida riuscita dell’evento: grande partecipazione di pubblico (quasi 500 presenti) ed addirittura un “passaggio televisivo” a TG3 Neapolis (per gli stomaci forti, al minuto 5:40 appaiono anche il sottoscritto ed il “portatile eretico”, a.k.a. “lo stronzetto” <g>). Un “grazie” particolare, infine, a RoB per la graaaaaaande pazienza che ha avuto con il...

UGIdotNET @ Roma

Ok, ricapitoliamo: Domani saremo a Roma in occasione del DotNetCampus: l’agenda è molto varia e tocca un “sacchissimo” (unità di misura da poco entrata nel S.I. <g>) di argomenti interessanti. ‘nzomma, se fa ancora troppo freddo per andare in giro a caXXeggiare, potreste pensare di venirci a trovare :-) Il prossimo mese torneremo a Roma grazie alla ospitalità di BASTA! Italia, che anche quest’anno ci permette di organizzare un “Community After Hour” gratuito in combutta con i ragazzi di ASPItalia. 3 sessioni, 2 delle quali già in agenda e potenzialmente “rissose” giacché dedicate...

Grazie NHibernate

Era giugno 2002, e partecipavo ad un private meeting con alcuni PM di Microsoft Corporation ed alcuni soliti noti: ad un certo punto, Ingo chiese lumi sullo stato di avanzamento della implementazione un “certo” ObjectSpaces. ObjectSpaces, per la cronaca, era l’O/RM che avrebbe dovuto fare la comparsa all’interno del framework 2.0: alla facciazza di quelli che pensano che MS sia sempre indietro nell’adottare pratiche e soluzioni, a Redmond stavano lavorando per fornirci un O/RM “out of the box” nel 2004 (prima del famoso/famigerato “Longhorn Reset” che portò sia Vista sia il FX 2.0 ad essere rilasciati in ritardo). Il...

Che sfiga: richiede il framework!

Chi legge PC Professionale sa che ogni recensione include un pagellino che comprende “pro” e “contro” del prodotto in oggetto. Bene, a pagina 85 del numero di settembre la pagellina di un password manager contiene i seguenti “contro”: Richiede .NET Framework 2.0 o superiore Non dispone di add-on per IE o FireFox Mi sento un po’ in colpa: tutte le applicazioni che ho realizzato negli ultimi 5 anni sono macchiate dal primo dei due succitati “marchi di caino”, e temo lo saranno anche le future. Chiedo scusa a tutti. <g>

La potenza è nulla senza controllo

“questa è classe, coglionazzo!” (cit.) o “si salvi chi può” (cit.)? public class DiscussionGroupDto {     public int Id;     public string Description;     public string Name;     public int NumberOfPosts;     public int NumberOfThreads;     public DiscussionMessageDto LastMessage; } public class DiscussionMessageDto {     public int Id;     public string AuthorName;     public DateTime DateOfPublishing;     public string Subject;...

VS10 beta1 vs. UML

Ricapitoliamo: BENE: la versione UML di riferimento è della famiglia 2.x BENE: permette di creare/associare work item TFS agli elementi presenti nei modelli. *Fantastico* MALE: non genera codice quindi il modello è messo lì solo per essere “ammirato”. Immaginate che divertimento (e che spreco di tempo) modellare (e mantenere in sync) 2 volte un “party pattern” (logical class diagram *e* EDM/Class Diagram). Ridicolo. “This feature is by design”? Grottesco. MALE: la modalità di configurazione degli elementi dei diagrammi è *totalmente* da rivedere: ad esempio, usare la propertygrid...

“I predict a riot” (cit.) @ #sqlconf09

Domani, con il beneplacito di Greenpeace e WWF (che supportano la causa “Tutela per gli O/RM”) terrò presso la SQL Server & BI Conference 09 una sessione intitolata “Impact of using an O/RM with SQL Server”. Due-info-due per i potenziali interessati: durante i 75 minuti non ci saranno effetti speciali o fuochi d’artificio, ma “solo” le considerazioni derivanti dai 5 anni di esperienza d’uso di vari O/RM (EF, iBatis, NHibernate, …) nei progetti che abbiamo realizzato in azienda, dando anche (ove possibile) una “sbirciata” al loro codice sorgente (“loro”==dei progetti :-) ). P.S.: che titolo del Kaiser (Chiefs) per...

Non è mai troppo tardi

Sono commosso: un post pubblicato dal team di Entity Framework ci informa che finalmente in MS qualcuno ha capito che un O/RM che non gestisca entità “self tracking” è *improponibile* in scenari distribuiti. La notizia è molto positiva, perchè fino ad oggi tutte le notizie riguardanti la v2 erano relative a feature “carine” e in alcuni casi anche “importanti” (lazy load, PI, …) ma tutto sommato non *fondamentali*: adesso è sufficiente che si accorgano anche che, finchè non supporteranno seriamente il behaviour degli oggetti, adottare EF significa “buttare via” un bel pezzo di OOP, e a quel punto...

Linq to NHibernate?

Premessa: trattasi di pura speculazione. Ciò premesso, Ayende informa che terrà a Londra un corso di 3 giorni dedicato ad NH: nulla di sorprendente, però uno degli argomenti trattati è proprio il tanto desiderato “Linq to NHibernate”. Beh, io non inserirei nell’agenda di un corso che si terrà a maggio un argomento “inutile”; evidentemente lui (che è uno dei developer di NH) sa “qualcosa” che noi ancora non sappiamo. <g> Nel dubbio, io inizio ad incrociare le dita: se son rose... Technorati Tag: linq,nhibernate

Difficoltà nella installazione di Enterprise Library 4.1?

Mi è capitato su entrambi i PC, quindi probabilmente è una problematica ricorrente. Malgrado avessi disinstallato ENTLIB40, tentando di installare la v4.1 ricevevo l'errore: "This version of the Enterprise Library cannot be installed side-by-side with version 4.0. Please uninstall Enterprise Library v4.0 and try again.". La (banale) soluzione consiste nella cancellazione della chiave "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Enterprise Library v4" dal registro di sistema. Technorati Tag: Enterprise Library

Technical After Hour: cambio di programma

Avviso ai naviganti: abbiamo modificato l'agenda del Technical After Hour di martedi prossimo. La sessione "Model Driven Development con Visual Studio" è stata sostituita con "Framework 3.5 SP1: un caso reale" poichè abbiamo pensato che, dato il contesto, fosse più interessante una tematica "real world". In pratica sbirceremo nella (seppur incompleta) nuova codebase del sito UGIdotNET, una (semplice ma "vera") applicazione ASP.NET implementata usando il framework MVC nella quale i controller insistono su un layer di servizi che "scripta" un domain model gestito con Entity Framework. Il tutto, integrando la registrazione sito/blog mediante un servizio transazionale implementato con WCF e...

Siiii...Puòòòòò...Faaaa-reeeeeeee!!!!

Con stupore, ho appreso oggi che il libro che ho scritto con Dino è risultato essere il più venduto al bookstore della PDC, più venduto dei libri dedicati ad argomenti "mainstream" quali Linq e Silverlight. Lo stupore è ancor maggiore se si pensa che il libro ha raggiunto come picco massimo la posizione 4140 nella classifica dei libri venduti di Amazon. Quattromilacentoquarantesimo, nella stessa categoria che contiene i best seller *veri*, quelli di Stephen King e Wilbur Smith, per intenderci. In una parola... WOW! "WOW" perchè la community degli sviluppatori "MS centrici", solitamente protezionista giacchè affezionatissima ai tool/fx di mammà,...

"A che cavolo serve l'attributo Serializable?" (cit.)

Se lo chiedono, come riferito dal mitico ughetto, anche il Cradle nonchè il Mostardone. Parliamone :-) Innanzitutto, leggete sia il post originale sia il thread dei commenti, che IMVHO è anche più interessante della domanda in oggetto <g> Ma torniamo a quel "cavolo" di SerializableAttribute: perchè essere costretti a decorare un oggetto in tal modo? A prima vista, in effetti è inutile: io voglio "solo" che EF/WCF/vattelapesca possa restituire col minimo sforzo un grafo e "minimo sforzo" significa "usa le mie classi as is e non chiedermi nulla di più". Insomma: parafrasando una famosa canzone eighties (Imagination) "Serialization, that's all I...

Beyond Persistence Ignorance: *real* POCO

Negli ultimi mesi, complice anche la querelle "PI or not" portata alla luce da "vorrei ma non posso (ancora)" Entity Framework, ho ulteriormente riflettuto sul valore di un Domain Model agnostico alla persistenza ed ho concluso che PI non basta. Quello che "voglio" è un DM agnostico alla infrastruttura: non voglio PI, non mi basta. Voglio POCO, ma sembra che sia... Troppo <g> (interessante gioco di parole) Detta "seriamente", vorrei poter modellare un DM concentrandomi sulla soddisfazione dei requisiti "business" (DDD anyone?), ed avere uno stack tecnologico in grado di "appiccicare" in qualche modo il codice necessario alla infrastruttura....

Refresh4 per NSK

Ho migrato NSK alla versione refresh4 del framework ASP.NET MVC rilasciata ieri, "fondendo" la web app con il sample project standard in modo da avere "gratis" l'implementazione della login: poichè è basata sul SqlMembershipProvider, è necessario creare il "solito" aspnetdb.mdf in App_Data. Non ho sperimentato alcun problema particolare, se non un "bisticcio" con la custom controller factory che ho implementato per iniettare nei controller l'istanza del data context: sono incappato in un comportamento quanto meno "particolare" di Unity ed ho piazzato un piccolo hack workaround in Application_OnStart per risolverlo. Technorati Tag: ASP.NET,MVC,NSK,Unity

"MS vs. Solution Architects": ricapitoliamo

Ricapitoliamo: MS ammette pubblicamente che la PI è un punto fondamentale per un O/RM Per evitare di soffrire ulteriormente di problemi di eiaculazione precoce, MS ha allestito un focus group dedicato alla v2 di Entity Framework coinvolgendo *finalmente* gente esperta di queste tematiche: Eric Evans, Jimmy Nilsson, Martin Fowler, Pavel Hruby, ... Per supportare *seriamente* PI c'è bisogno di poter "proxare al volo" il DM Per "proxare" al volo senza eccessive penalizzazioni in performance serve Reflection.Emit Reflection.Emit è incapsulato egregiamente da...

Community Days 2008: le track

Anche se l'agenda è ben lontana dall'essere completa, l'impianto dei Community Days 2008 è ormai delineato: 5 track e, in generale, un "taglio" un po' differente da quello degli eventi precedenti. Spesso, in passato, ci siamo scientemente concentrati sulla presentazione o sull'approfondimento di tool/tecnologie/metodologie, cercando di essere (tra) i primi ad affrontare le novità a qualunque livello di approfondimento: dalla "mia" sessione dedicata ad OOD a marzo 2003 fino alla presentazione di ASP.NET MVC svolta lo scorso dicembre, passando per l'Agile workshop di settembre 2003 o il "double Whidbey" del 2004, questo è spesso stato il nostro modus operandi. ...

Cercasi Sus... Developers disperatamente

Attenzione: questo post contiene offerte di lavoro. Leggere attentamente le avvertenze <g> Se: non siete ancora stufi di dover continuare ad utilizzare le "solite, trite e ritrite" tecnologie quali: ASP.NET/AJAX, Castle Project, Linq 2 Whatever, NHibernate, Silverlight, WCF, WPF, ... chissenefrega di "MbUnit vs. MSTest vs. NUnit vs. xUnit" perchè l'unica cosa importante è che "se non è testato... è rotto!" la vostra sede di lavoro può essere a Bergamo (e dintorni) o Milano (e dintorni) o Torino (e dintorni) non vedete l'ora che...

Education @ Managed Designs

Comunicazione aziendale spicciola: grazie ad un paio di edizioni pilota che abbiamo erogato nelle ultime settimane, SuperCorrado ha aggiornato l'agenda del corso "Introduzione a Windows Presentation Foundation". Passando al "lato Web della Forza", mi dicono dalla regia che c'è ancora qualche posto libero per il corso "AJAX+Silverlight" che Dino erogherà settimana prossima presso Microsoft Italia. Technorati Tag: ajax,managed designs,silverlight,wpf

Community After Hour: comunicazione di servizio

Come anticipato sul forum, sono disponibili le slide e le demo mostrate nel corso del "Community After Hour" svoltosi a Bologna. Poichè gli assenti potrebbero potrebbero avere qualche difficoltà nel districarsi con il codice del LINQ provider, ecco un "riassunto delle puntate precedenti": In Managed Designs stiamo provando a implementare un "mini" Linq 2 SQL Mobile: la codebase della demo è fondamentalmente lo stato attuale di questo "esercizio di stile" quindi non sparate sul pianista solo perchè non sono (ancora) supportate funzionalità indispensabili quali: transazioni distribuite, object tracking, persistence ignorance, ... <g> Non provate...

CommunityAfterHour.About(ContentType.Speech);

Suppongo che ormai anche i sassi sappiano che lunedi martedi prossimo UGIdotNET organizza, in appendice alla tappa di Bologna del roadshow di Microsoft, un workshop "after hour". Per coloro che fossero interessati a partecipare, segnalo di aver appena cambiato il titolo della sessione che io e SuperMauroBros stiamo preparando; il nuovo titolo è "The LINQ Backroom" e riflette sicuramente meglio le nostre intenzioni. Poichè ormai si sprecano gli (spesso validissimi) articoli/eventi/post/podcast/tip/tutorial/vattelapesca dedicati ai "mille gusti di LINQ", abbiamo pensato di evitare l'ennesima sessione sul tema e di concentrarci invece su un caso d'uso di LINQ che a volte...

Nuovo ModelViewPresenter @ NSK

Ho approfittato di alcuni viaggi in treno effettuati negli ultimi giorni per estendere l'implementazione di Model View Presenter in NSK. Nulla di trascendentale, ma le nuove view sono basate su un subset ("sanitizzato", come direbbero i Microsoft guys) del mini-framework MVP che io e Markino abbiamo implementato per i progetti che realizziamo in Managed Designs. In pratica, oltre alle "solite" interfacce che definiscono i contratti caratteristici di view e presenter, offre alcune implementaziono concrete e generiche utilizzabili come scorciatoia. Technorati Tags: Managed Designs, model view presenter, NSK, northwind starter kit, software architecture

"Persistence Ignorance: OK, I think I get it now" (cit.)

Persistence Ignorance: OK, I think I get it now. (cit.) Preferirei essere io l'autore di questa frase. Forse anche Janky (che me la ha segnalata e, a differenza del sottoscritto, sta contanto fino a 10-mila- prima di postare al riguardo) lo preferirebbe. Ma l'autore è uno dei membri del team di Entity Framework, e il post è del 2 giugno. *2007*. Che "ObjectSpaces, atto III" non brillasse già lo sospettavo (vedi il punto 2: "potrò definire *liberamente* il mio Domain Model"), ma adesso sappiamo che -nonostante il delay nel rilascio- la versione 1 non sarà in grado di gestire entità "persistence ignorant" perchè......

2 LINQ al prezzo di 1? Magari!

Questo post di Marco si conclude così: LINQ to SQL vs. LINQ to Entities - potremmo ragionare per ore e per giorni su quale sia il giusto posizionamento dei due. Lo faremo sui blog dedicati. Ma la vera verità è che tra i due c'è qualche sovrapposizione. Nel lungo periodo saranno unificati (detto da persone Microsoft). Quanto sia lungo questo periodo e cosa comporti l'unificazione, questo è tutto da decidere. Considerazioni non tecniche: LINQ to SQL esce prima, LINQ to Entities è più ambizioso ma esce qualche mese dopo. In termini di ridistribuibili e di adozione di massa, questo avrà un...

Mono Day @ Modena

Domani a Modena si svolgerà il "Mono Day", cui non potrò partecipare causa "solita" trasferta di lavoro... Se qualche anima pia dovesse riuscire a partecipare e mi spedisse slide/demo farebbe un favore sia a me sia al mio MacMini :-)  Technorati tags: mono

Corsi e ricorsi storici: G.B. Vico? No: LINQ!!!

ObjectSpaces posticipato. WinFS posticipato perchè avrebbe dovuto basarsi proprio su ObjectSpaces. ObjectSpaces tagliato. WinFS tagliato. PDC 2005, ed ecco quell'obbrobrio chiamato DLINQ. E mazzate, tante mazzate a MS: da tutti, da subito. Bouma, Ayende, anche (nel proprio piccolo) dal sottoscritto. Semplicemente, alcuni pazzi furiosi (siculo incluso, ovviamente) si sono resi conto che un ORM *vero* "si può fare!" (cit.) La risposta di MS fu "Entity Framework", tra le cui sfavillanti caratteristiche possiamo sicuramente includere: layer supertype imposto, SQL Server only, ... Ed ecco il colpo di scena: forse hanno capito che tirar fuori l'ennesima opera incompiuta non avrebbe avuto molto senso. Ecco...

Tour "Architect Day" @ Trento: ci si organizza?

Dopo Omid e Lorenzo, lunedi prossimo toccherà a me concludere presso l'università di Trento il mini tour co-organizzato da GUISA e Microsoft Italia. Innanzitutto, parliamo di cose serie: poichè io sarò a Trento per tutta la settimana, potremmo organizzare una cena post-evento. Gli interessati facciano un fischio. <g> Largo, ora, alle... Amenità: sto introducendo qualche modifica alle slide perchè la settimana trascorsa a Redmond mi permette di introdurre (NDA vari permettendo) qualche considerazione "futurista" inerente le tematiche: data mapping, testing e presentation layer (soprattutto lato web). In ogni caso, l'agenda rimarrà molto pragmatica ed orientata alle soluzioni/scelte operabili *oggi*, motivo per il quale includerò...

GUISA in tour... Finalmente!

Ci stavamo lavorando da un po', e finalmente siamo riusciti ad organizzarlo: come anticipato da Giorgio, a marzo si svolgerà presso alcune università italiane (Bologna, Pisa e Trento) il primo ciclo di conferenze itineranti organizzate da GUISA in collaborazione con Microsoft Italia. Ho redatto l'agenda cercando di condensare in una giornata full immersion i contenuti degli Architecture Days, contando però sul preziosissimo supporto del "senno di poi": in pratica, non mi sto limitando ad assemblare il materiale, ma lo sto integrando con le osservazioni nate dopo il workshop, nonchè grazie al feedback ricevuto dai partecipanti. Ad esempio, le parti relative al...

NSK: Tu chiamale, se vuoi... Emozioni!

Cappuccino e brioche al cioccolato (sono ottime, parola di lupetto!) al bar di Jack: 2 euro. Biglietto per il concerto dei Muse all'arena di Verona: 34,50 euro (ben spesi) L'università di Copenhagen che basa su Northwind Starter Kit il proprio studio di comparazione tra architetture layered implementate con J2EE e .NET (citando -vedi pagina 48- Managed Designs): impagabile! P.S.: Peccato abbiano usato la codebase (cambiando i nomi dei namespace) di maggio 2006; si sono "persi" l'implementazione di: unit of work, query object, model view presenter e un bel refactoring generale... Technorati tags: NSK, Northwind Starter Kit, Managed Designs

Webcast Day

Con i 2 episodi di oggi si conclude la seconda serie di webcast per "aspiranti" architetti che GUISA ha organizzato in collaborazione con Microsoft Italia. Ne avevo già parlato, ma poichè ho (appena) finito le slide posso finalmente essere più preciso. Credo che il titolo del primo ("SO != OO"), che si svolgerà alle 11:00 ed al quale è possibile iscriversi qui, sia decisamente esplicativo: cercherò infatti privare di fondamento il diffusissimo luogo comune secondo il quale SOAP sia "RPC over HTTP" e permetta di distribuire oggetti. Il secondo, intitolato "soluzioni del mondo reale", inizierà alle 14:30 ed avrà una durata "indefinita" (va beh,...

.NET Architectures in the Real World

Lorenzo mi ha ricordato che sul numero di PC Professionale attualmente in edicola è stata pubblicata la registrazione della sessione ".NET Architectures in the Real World" che ho erogato durante WPC. Durante la sessione mostro l'architettura (e l'implementazione) di due progetti dei quali sono stato architetto e che considero interessanti perchè sfatano un paio di luoghi comuni. Uno dei due progetti è l'ormai famigerato GazzaTown, ossia l'e-commerce della Gazzetta dello Sport che ho progettato per conto di Fattore K. In un mondo che (fondamentalmente) pensa che l'architetto sia "quello che conosce i pattern e disegna i diagrammi", questo progetto mostra l'importanza...

Program to an interface, not an implementation

Discussioni come questa sono un classico, e classica è la domanda: "devo definire i miei tipi base sotto forma di interfaccia o classe?" Il principio di design "program to an interface, not an implementation" [GoF, 18] sembrerebbe consigliare la prima ipotesi, apparentemente in contrasto con Cwalina che, nelle Design Guidelines, afferma: "Do prefer classes over interfaces". Chi ha ragione, quindi? (continua)

"Meglio tardi che mai" (cit.)

Ecco, finalmente, i video degli Architecture Days :-)

Le slide dei webcast "Aspire Architect"...

...Saranno pubblicate sul sito GUISA, nella sezione "Download" (gruppo Webcast/Aspire Architect 2006). Al momento, ho pubblicato quelle del webcast di lunedi scorso. Technorati tags: software architecture, GUISA, webcast

[INETA] Ask the Expert @ WPC06

Siete a Milano (o zone limitrofe) il 15 novembre e non sapete cosa fare nel tardo pomeriggio? Ecco una possibilità interessante :-)

CastleProject.ActiveRecord: errata corrige

Durante una delle mie sessioni erogate in occasione degli "Architecture Days" ho citato il toolkit CastleProject.ActiveRecord che, fondamentalmente, incapsula NHibernate per permettere di implementare in maniera molto agevole il pattern ActiveRecord. In tale occasione, ho affermato che il progetto "Generator" (ossia il tool in grado di derivare le entità dal database sotto forma di classi) è dichiarato sospeso (nella nuova versione del sito CastleProject la pagina ed esso dedicata è addirittura stata rimossa). Diego Guidi, invece, mi riporta che l'autore del suddetto tool sta proseguendo indipendentemente il suo sviluppo anche se l'unico modo per ottenerne una copia funzionante, al momento, richiede di scaricare e compilare autonomamente...

Il corso OOD cambia data

Comunicazione di servizio: precedentemente previsto dall'11 al 13 dicembre, il mio corso "OOD ed architettura delle soluzioni .NET" è invece stato spostato al 20 dicembre. La location è invece confermata: Training Room 2 presso Microsoft Italia a Segrate. Maggiori informazioni qui (il codice del corso è MDE105). Technorati tags: software architecture, Microsoft, Managed Designs

[WPC] Ecco i tutorial

Pian piano (ok, lo ammetto: con imperdonabile ritardo) anche l'agenda WPC emerge: ecco i tutorial. A breve l'abstract completo e i primi titoli delle sessioni. Non sparate sui pianisti :-)

E va bene così... Senza parole! (cit.)

Ingolosito dal post di Janky, ho installato la CTP dell'entity designer per ADO vNEXT (o LINQ, se preferite); sembra che a Redmond abbiano le idee chiare: gli sviluppatori .NET non hanno bisogno di un ORM e l'ereditarietà a livello di Domain Model non serve a una mazza, quindi si può "bruciare" con il loro layer supertype. Ineccepibile, anzichenò! <g>

Windows Vista vs. NET developers

Dura la vita dello sviluppatore .NET sotto Vista, soprattutto se della tipologia "early adopter": già sapevamo che VS 2002 e 2003 non sono supportati dal nuovo OS. La novità di oggi è che anche la CTP di Visual Studio 2007 (Orcas) è dotata della stessa sfiga feature. <g>

Open Source @ Managed Designs: NSK e VAB cambiano casa

Come "qualcuno" già ha notato, Northwind Starter Kit e Validation Application Block hanno abbandonato i lidi di Sourceforge per approdare su CodePlex. Ogni eventuale (improbabile) ulteriore spostamento sarà comunque segnalato nella home page ufficiale dei progetti. Technorati tags: Northwind Starter Kit, nsk, Managed Designs, Codeplex

Implicit Interface Implementation: si stava meglio quando si stava peggio (?)

I blog sono una risorsa fantastica, peccato siano così dispersivi: quando il numero di sottoscrizioni inizia ad essere "importante", ti ritrovi a leggere i post velecemente e (ahimè) superficialmente. Certo, la mia abitudine di ignorare i commenti ai post mi fa risparmiare un po' di tempo, ma evidentemente non abbastanza (in fondo, vorrei *anche" lavorare ed avere una vita privata <g>). Fortunatamente, "a volte ritornano" (cit.) e quindi stamattina ho riletto questo post di Martin Fowler, che offre un interessante punto di vista sulla implementaziona di interfacce implicite (che è tutt'altra cosa rispetto alla "implementazione implicita di interfaccia"). Come Martin spiega,...

Data Access Layer 101

Forse ha ragione David: la mia risposta al post di Giulio (per quanto sintetica e quindi non esaustiva) non è proprio da buttar via. Per dovere di cronaca, la riporto qui. (Clicka per leggere)

Microsoft e i "miei" webcast per architetti

Forse non tutti se ne saranno (ancora) accorti, ma il focus di Microsoft Italia in merito alle tematiche di design architetturale è in deciso aumento, e ciò non può che rendermi felice. E' quindi con immenso piacere che, a luglio, ho accolto la proposta di Giuseppe e Sara relativa alla preparazione di una serie di webcast architetturali "griffati" Managed Designs. (Clicka per leggere)

"ADO.NET vNext will not be included in .NET 3.0" (cit.)

Leggo con piacere dal blog di Stefano che Pablo Castro ha nuovamente confermato (già lo si sapeva), che LINQ (o come lo vogliamo chiamare) non farà parte del FX 3.0; speriamo che il tempo a disposizione del product team permetta loro di recepire il concetto di domain model... <g>

Italians do it better

SIAM PRONTI ALLA MORTE, L'ITALIA CHIAMO' <g>

TFS vs. VS2003

Fortunatamente, Microsoft ha rilasciato un provider che permette di usare Team Foundation Server come sistema di source control anche per i progetti di Visual Studio .NET 2003 (ed altri dev tools, ad esempio Visual Studio 6 e -addirittura- PowerBuilder 10.5). Fortunatamente, ciò permette di "abbandonare" Visual SourceSafe e passare a TFS anche per i "vecchi" progetti. Sfortunatamente, VS2003 rende apparentemente difficoltoso affrontare la tipica fase nella quale avete qualche progetto già gestito da TFS ma altri "ancora" sotto VSS, perchè l'IDE permette di avere attivo solo un provider. Fortunatamente (e 3!) ho trovato in rete un tool piccino piccino picciò...

[WPC06] Io speriamo che me la cavo (cit.)

http://wpc.education.mondadori.it/Document.asp?IdDoc=1113

Roy goes ORM

Sarà perchè in un suo post affermò: "Typed Datasets are not the answer to everything.", ma il blog di Roy è sicuramente uno dei primi che sottoscrissi, anni addietro. Di lui mi attirò anche la precoce volontà di parlare di tematiche quali architettura e agilità, quanto meno per... Sentirmi meno solo. <g> Beh, oggi Roy ha annunciato (pur avendone già parlato) il lancio di un sito "community" totalmente dedicato agli ORM. Se son rose...

ADO .NET Entity Framework: DLINQ Strikes Back

Ok, lo ammetto: mi ero illuso. Pensavo che la Forza avesse fatto il suo corso, sconfitto il Lato Oscuro e che avremmo avuto un ORM incluso nel framework. Pensavo che il significato di "definire il *mio* domain model e realizzarne il mapping verso uno store relazionale in modo non invasivo" fosse abbastanza chiaro. Lette le specifiche, non riesco a pensare che un tool che genera il domain model a partire dallo schema relazionale sia una buona soluzione. Nemmeno se il mapping è estraneo al domain model. E... No, il fatto che le classi siano generate come "parziali" non mitiga affatto...

ADO.NET Entity Framework: una nuova speranza

Le specifiche esordiscono con: While the relational model has been extremely effective in the last few decades, it’s a model that targets a level of abstraction that is often not appropriate for modeling most business applications created using modern development environments. Ed ecco già 10 minuti di standing ovation di "Fantozziana" memoria ("La corazzata Potemkin, è una ****** pazzesca!..." [cit]). Ora ditemi che: butteranno quell'ignobile meccanismo di tagging del domain model potrò definire liberamente il *mio* domain model (opzionale, ma non troppo) avrò un tool *decente* per produrre il file xml di mapping espresso a pagina 31 non sarò obbligato a "ricompilare" per cambiare il mapping E il 5 per mille lo...

WinFX diventa ".NET 3.0": e quindi?

Giorgio sembra stupito da questa notizia, ma in fondo noi lo avevamo già detto a gennaio quindi... Niente di nuovo sul fronte occidentale (cit.)

Northwind Starter Kit: è tempo di MVC

Ho cambiato idea: la prima GUI *architetturalmente* decente disponibile per il Northwind Starter Kit sarà web e basata su Model View Controller, quindi nisba (per il momento) Model View Presenter. Non solo: l'implementazione MVC sarà molto semplice, e non utilizzerà toolkit esterni; il motivo è semplice: uso NSK come applicazione reference per i miei corsi ed eventi/webcast, ed alla domanda "Che libri consigli per studiare le tematiche relative al design?" rispondo sempre "Almeno GoF e P of EAA". Spesso, inoltre, questi testi sono già posseduti dai partecipanti. Ebbene, in [P of EAA] Martin presenta una semplice implementazione ASP.NET di MVC, fondamentalmente...

Cosa lega: aspnet_regsql.exe, l'Inter e Sherlock Holmes?

Se c'è una caratteristica della quale proprio non sono dotato, beh... E' quella dell'avere "buona memoria". I maligni dicono che in realtà la mia memoria è *ottima*, ma purtroppo totalmente impegnata a ricordare l'ultimo scudetto dell'Inter indebolendo in tal modo la memoria breve. <g> Premettendo il solito "no comment" al riguardo, oggi per l'ennesima volta ho "dovuto" utilizzare aspnet_regsql.exe per creare le tabelle necessarie ai provider di default di ASP.NET 2.0, e per l'ennesima volta sono ricorso a MSDN Online per ricordarne gli switch. Probabilmente però oggi ero più attento del solito, perchè mi sono *finalmente* accorto che esiste uno...

Una promessa è una promessa (cit.)

I ragazzi di JetBrains hanno mantenuto la promessa: la versione 2 di ReSharper è stata appena rilasciata, e già mi hanno spedito la mail che conferma la gratuità dell'upgrade per i possessori della versione 1.x. Bravi-bravi-bravi :-)

Bella notizia: upgrade gratuito a ReSharper 2

Ho appena ricevuto da JetBrains una mail che annuncia la disponibilità della versione 2.0 beta di ReSharper: sono felicemente sopreso dalla comunicazione che, per gli utenti registrati della versione 1.x, l'upgrade alla nuova versione sarà completamente gratuito. Considerando che: acquistai la v1.0 a "soli" 99 dollari grazie alla offerta che JetBrains dedicò ai partecipanti dal workshop "Data Management", che prevedeva uno sconto del 20% già l'upgrade alla versione attuale (1.5) fu effettuato gratuitamente il prezzo della v2 *sarebbe* più elevato di 50$ (da 149 a 199) Beh, direi che questi "ragazzi" sanno proprio come soddisfare i propri clienti giacchè (altro "dettaglio di...

Slide e demo del roadshow Microsoft

Meglio tardi che mai: ecco il materiale mostrato nel corso del roadshow dedicato da Microsoft Italia al lancio di Visual Studio 2005: Slide (alcune immagini apaiono distorte: cambierò il tool di creazione dei pdf, parola di lupetto) VSTO: demo introduttiva Excel. Demo introduttiva Word. Demo Excel in versione VB e C#. Applicazione smart device (Compact Framework) Esempio "Outerlook Express" (GUI Windos Forms 2.0) Esempio di accesso ai dati in applicazione windows forms (richiede il db Northwind) 

Validation Application Block 0.3

Grazie al contributo di Marco De Sanctis (e nonostante la mia lentezza nel pubblicare l'aggiornamento), il Validation Application Block raggiunge la versione 0.3: commenti e suggerimenti (nonchè contributi) sono benvenuti (magari anche di persona ai Community Days).

"Yes, we are bringing C# programming to the Mac" (cit.)

In un post sul proprio blog, Mike Harsh cita una propria dichiarazione "ad effetto" snocciolata durante la conferenze MIX06; la prima CTP è schedulata per l'estate, con una ipotesi di rilascio per metà 2007. Il mio (bellissimo) MacMini è già pronto per l'inevitabile smanettamento. <g> Se son rose...

Webcast C#: ecco slide e demo

Come promesso durante la... "diretta", ecco le slide e le demo mostrate durante i webcast dedicati al linguaggio C# 2.0 che ho erogato per Microsoft Italia. A breve dovrebbero essere disponibili anche le registrazioni audio/video, che saranno pubblicate nell'archivio dei webcast.

Corsi Learn & Get, è il turno di UGIdotNET

Credo che l'esistenza dei corsi "Learn & Get" sia ormai di pubblico dominio; sintetizzando per i meno informati, si tratta di corsi di breve durata (2 giorni) organizzati da Microsoft Italia e destinati ai soci delle community aderenti all'iniziativa. I corsi prevedono una quota di iscrizione, che però include una licenza di Visual Studio .NET rendendo il "pacchetto" decisamente appetibile. Tutto ciò premesso, è arrivato il turno del "L&G" promosso da UGIdotNET e riservato ai suoi soci. Dopo il "VB6 2 VB2005" di VB T&T e il "ASP 2 ASP.NET" di ASPItalia, ecco quindi il "Learn & Get for Experienced...

Episodio III: la rivincita dei generics

Come promesso, abbiamo organizzato un terzo webcast dedicato a C# per poter dedicare il tempo necessario a parlare dignitosamente di "quisquilie" quali: delegates, anonymous methods, generics, predicates e robetta di questo genere. Niente di complicato, visto che si presume che le abbia capite anche io. <g>Se martedi 21 non avete di meglio da fare tra le 10 e le 12, iscrivetevi e ci "vediamo" su LiveMeeting.

Model View Presenter per NSK

Chiunque abbia scaricato il famigerato Northwind Starter Kit si sarà accorto che, mentre i layer business e data sono già strutturati in modo abbastanza adeguato, lo stesso non si può affermare per la parte GUI. Ciò è avvenuto per motivi "storici" che potrei spiegare in separata sede (un altro post ?), se qualcuno fosse interessato al "dietro le quinte" di questo progetto. Rimanendo in tema, però, rimane la "questione GUI": ho quindi deciso di focalizzarmi, in questo periodo, sullo sviluppo di questa parte di progetto. Mi piacerebbe, ad esempio, che NSK disponesse di GUI multiple, implementate con strategie differenti: per esempio,...

Webcast C#: non c'è 2 senza 3!

Vi ricordate che oggi avrei dovuto erogare la seconda ed ultima parte dei webcast Microsoft dedicati a C#? Poichè la lista degli argomenti era *davvero* ampia (i webcast sono intesi come tutorial di C# 2.0 tout court, e non come introduzione alle nuove feature), sentirmi chiedere nel Q&A: "Ma perchè non fate 3 puntate, invece di 'sole' 2?" non mi ha -francamente- sorpreso più di tanto. Ne ho parlato con Sara e... Si fa! Non sappiamo ancora darvi una data (il programma di webcast/eventi di Microsoft Italia è davvero denso in questo periodo), ma ci stiamo organizzando per comunicarla al...

Community Days: iscrizioni aperte!

Ce l'abbiamo fatta! All'interno dell'agenda pubblicata sul sito comune, sono apparsi i link di registrazione. Poichè un evento di 2 giorni dotati ognuno di 2 track è complicato da gestire e non vorremmo fare... "stupidate", abbiamo pensato di suddividere le iscrizioni in modo da poter selezionare separatamente le due giornate. E' inoltre necessario specificare per ogni giornata la track che preferite: malgrado sia possibile selezionarle entrambe, direi che non è una mossa saggia, poichè in questo caso l'iscrizione sarà considerata relativa alla track che risulterà più "scarica" il giorno dell'evento. Iscritto avvisato, ... <g>

Corrado e Avalon

Dopo il mio esordio (dedicato ad ASP.NET e "scoperto" da Emanuele), questa volta è toccato a Corrado scrivere un editoriale dedicato a Windows Presentation Foundation per la newsletter "Beta Experience" di Microsoft. Sono i primi due episodi di una piccola serie di contenuti analoghi che Managed Designs produrrà per Microsoft nei prossimi mesi: speriamo di non esagerare con gli strafalcioni! <g>

7000 nuove funzioni Win32 in... Vista

Che Windows Vista non sia (più) il primo OS *basato* su .NET/WinFX ormai lo avevamo capito sin dal famigerato longhorn reset, ma almeno ci si aspettava che Win32 fosse meno "esposto" a favore del framework .NET;  in un interessante thread di discussione apparso sul NG microsoft.public.windows.developer.winfx.general, la risposta di Lori Pearce (membro del product team) alla domanda "Will WinFX replace Win32?" (che poi è anche il titolo del thread) è "resounding no" (cit.). Addirittura, veniamo a sapere che il futuro OS di Microsoft arricchisce Win32 di 7000 nuove funzioni, e che Win32 rimane un "fully supported programming model". Io mi metto sulla riva del fiume... <g>

Workshop UGIdotNET: come eravamo

Ho ricevuto i risultati aggregati estratti dai moduli di feedback del workshop "WinFX & Vista", ed ho pensato che a qualcuno potesse interessare il dato che mostra la composizione dei partecipanti in termini di occupazione/mansione, quindi... Eccolo :-) Sviluppatore 33.0% Web developer 11.6% Capo progetto 12.9% Architetto di soluzioni 18.2% Architetto di infrastruttura 3.5% Manager/Direttore IT 6.9% Sistemista 4.4% Responsabile sicurezza informatica 0.9% Studente 2.2% Docente 2.8% CIO 0.6% Altro 2.8% Tralasciando battute ovvie e scontate ("Responsabili di sicurezza ad un evento in Microsoft? Ma Microsoft e sicurezza non sono un ossimoro?", "Sistemisti ad un evento per sviluppatori? Lo vedi che sotto sotto lo sanno cosa dovrebbero imparare a fare?", ...), direi che emergono dati interessanti: siamo fondamentalmente sviluppatori (quasi il 45%), ma c'è una...

Lavori in corso...

...Nel frattempo, bloccate l'agenda. Ci vediamo (tutti?) qui

Webcast: questa volta mi "tocca" C#

La "Ruota dei Webcast" questa volta "dice" C#, quindi vi comunico che le puntate saranno due: 22/02/2006, h 14:30 - Visual C# 2005 - Introduzione [iscrizione on line] 24/02/2006, h 14:30 - Visual C# 2005 - Advanced [iscrizione on line] Aggiungete "predicates" al secondo abstract e credo non tralasceremo nulla di significativo. Come al solito, i commenti sono benvenuti. 

(Anche) Brad Abrams è fuori dal gruppo

Ammetto di aver sottoscritto troppi feed nell'aggregator, ed a volte rimango "indietro". Oggi, spulciando gli "arretrati", mi sono accorto di un post che è stato (un po' da tutti, aquanto pare) trascurato: Brad Abrams, PM storico del CLR team, passa (con lo stesso ruolo) al "nuovo supergruppo" dedicato alle tecnologie di presentazione (WinForms, WPF e ASP.NET/Atlas). Conoscendo la qualità del blog di Brad, sono davvero curioso di vedere qualche suo post dedicato a "roba" come l'ObjectDataSource o il provider model.

[UGidotNET] A million things to say

Profetica fu "Lights" degli Editors: Corrado e Raf prerannunciano che hanno un sacco di cose da dire, quindi ho aggiornato l'agenda del workshop aggiungendo 15 minuti alle sessioni di entrambi. In pratica, si dovrebbe quindi finire alle 16:45. Rimanga tra noi... Io porterò il sacco a pelo: Raf che dice che andrà lungo? Faremo notte <g> 

Del workshop "WinFX & Vista" e del soppalco

Ok, sembra che qualcuno stia ancora provando ad iscriversi  al workshop "WinFX & Vista" del 26 gennaio ricevendo "picche": a questo punto, non resta che soppalcare la sala trasformandola nel primo "auditorium a castello"; abbiamo sbloccato le iscrizioni per altri 10 posti per arrivare "là, dove nessun overbooking era mai giunto prima" <g>Se volete aggiudicarvi un posto, non perdete tempo ed iscrivetevi. Rinnovo, invece, l'invito a chi sa che *sicuramente* non potrà partecipare ad annullare la propria iscrizione, per permettere agli interessati di "infilarsi". Grazie 1000, vi saremo debitori.

Workshop "WinFX & Vista": informazione di servizio

Magari interessa a qualcuno:http://forum.ugidotnet.org/default.asp?m=57188

Windows Live Local (Reloaded)

Non posso farci niente... E' più forte di me: dedicati al "gioco" i primi 10 minuti, puntuale arriva la "curiosità dello smanettone". Un bel "view source" (sia con IE sia con FF) ed ecco cosa emerge ad un primo sguardo: il codice non è XHTML, visto che sono molti i tag non chiusi (es: META, IMG) forte attenzione alla compatibilità con il maggior numero di browser possibile: i tag SCRIPT usano language="javascript" e non type="text/ecmascript" (credo per le versioni non recentissime di FF) Credo che il toolkit AJAX utilizzato sia Atlas, come sembra dimostrare l'inclusione di AtlasCompat.js Piccola considerazione personale: se davvero Microsoft intende usare Atlas,...

Ad ogni VS il suo framework

Chi di noi non si è posto, almeno una volta, la domanda sui motivi per i quali ogni release di Visual Studio è strettamente legata ad una specifica release del framework? Chi di noi non ha ricevuto, almeno una volta, questa domanda? Chi di noi non ha, almeno inizialmente, pensato che la ragione fosse fondamentalmente... "commerciale"? Beh, per i "curiosi" ecco una spiegazione che arriva direttamente dal product team.

Workshop "WinFX & Vista": le iscrizioni sono aperte!

Finalmente, l'agenda del workshop del 26 gennaio inizia a delinearsi ed è, finalmente, possibile iscriversi. Ragazzi... Questa volta è stata davvero una fatica! :-)

Assert.AreSame(Orcas, VS2007)

Beh, il blog è di un membro del product team, quindi *dovrebbe* essere attendibile. Che dite... E' un refuso o un lapsus? <g>

[SMAU2005] Ecco slide e demo

Sono disponibili sul sito di Microsoft Italia le slide e le demo di tutte le sessioni erogate al teatro MSDN presso SMAU.

[WPC2005] Le mie sessioni

Per il quinto anno, avrò l'opportunità di contribuire ad abbassare il valore di WPC: quest'anno proverò a combinare danni sproloquiando in tema di object oriented design. Ecco, nel dettaglio, l'abstract delle mie sessioni. Si accettano suggerimenti :-) Real world OOD: il business tier [SVI224]Dalle Model-driven Architectures [OMG] alla pratica del Domain Driven Design (D3): il fondamento di un moderno sistema enterprise consiste nel disegno di un Domain Model che esprima le business entity gestite dal sistema, procedendo quindi con la modellazione della business logic che implementi i servizi applicativi. In questa sessione introdurremo i principi di un business layer, adottando pattern...

SMAU... Tanto per cambiare

Anche quest'anno concorro per il premio "strappa uno sbadiglio": se volete concorrere, mi trovate a SMAU nel padiglione Microsoft. Farò spola tra il community booth e il teatro MSDN, nel quale terrò tutti i giorni la sessione "Accedere ai dati con Visual Web Express Edition" (sottotitolo: "Mamma, guarda... senza codice!" <g>) dalle 15 alle 16. Giacchè non potevo cavarmela con così poco nella continua lotta con Darth PowerPoint, sabato dalle 13 alle 14 mi trovate anche a webb.it, in occasione della sessione "Quello che riesco a far vedere di ASP.NET 2.0 in 60 minuti" (Ehm... In realtà il titolo preciso non...

[RANT] Microsoft, dove vuoi andare *domani*?

Grazie a questo post di Lorenzo vengo a sapere che Ward Cunningham, che ho avuto il piacere di incontrare e conoscere 2 settimane addietro presso il summit MVP, lascia Microsoft per diventare il decimo impiegato di Eclipse. E' una perdita grave, ma ancora più grave è IMVHO il fatto che *penso* di poterlo capire e giustificare. Hai nella tua squadra Ward e lo mortifichi nel team delle PAG, quando il suo apporto sarebbe stato manna del cielo nel team di TFS (tanto per fare un esempio). Hai in squadra James Newkirk, e gli "appioppi" lo stesso destino. E fai "uscire"...

Fletto i muscoli e sono su MSDN (cit.)

Chiedetemi: "quale è la feature di ASP.NET 2.0 che preferisci?" E avrete la riposta più ovvia, scontata e banale: "La membership API, ovviamente!". In attesa di annoiare i partecipanti al corso che io e Dino terremo in Microsoft, gli interessati all'argomento possono iniziare a sbadigliare leggendo il nostro articolo pubblicato su MSDN Magazine <g>

Workshop con... Vista

Passato un workshop, se ne fa un altro: a giorni una agenda "presentabile" e il form di iscrizione.

[Workshop Interoperability] Licensing Q&A

Grazie alla disponibilità di Giada (Product Manager dei Developer Tools per Microsoft Italia), durante le giornate del workshop "Interoperability" organizzeremo un piccolo Q&A inerente il licensing Microsoft. Se (come me) avete qualche dubbio su: licensing Team System/Team Foundation Server, MSDN Universal/Premium e quant'altro, inviate le domande sotto forma di risposta al post che ho pubblicato sul forum/NG UGIdotNET, così potrò raccoglierle ed inviarle preventivamente a Giada (per darle il tempo di preparare le risposte).  

[Workshop Interoperability] Sessione "Da ASP a ASP.NET"

Seconda puntata della "Piccola guida del workshoppista provetto": questa volta parliamo della sessione "ASP vs. ASP.NET". Durante questa sessione, effettueremo la migrazione di una "mini applicazione" che implementa la gestione autori del database "Pubs": partendo da una versione ASP 3 che usa ADODB, include file e redirezioni varie (giusto per dare fastidio al modello postback-based di ASP.NET), otterremo pian piano una applicazione ASP.NET introducendo: user control per sostiruire gli include file, ADO.NET al posto di ADODB per sfruttare il databinding, controlli validator al posto di javascript per convalidare l'input dell'utente, ed altro ancora. Per intenderci ed essere onesti sin dal principio, l'applicazione è...

[Workshop Interoperability] Sessione "Da VB a VB.NET"

Con sommo gaudio mio e (penso) di tutti, Corrado ha accettato di condividere la sessione col sottoscritto. In realtà, dato il topic, sarebbe corretto affermare che *io* condivido la *sua* sessione <g>. Scherzi a parte, la sessione sarà trasversale alle versioni di VB.NET ed al framework in generale: in poche parole, non ci faremo molti problemi e mischieremo framework 1.x con 2.0, e VB.NET 1.x con VB 2005, passando per: ADO.NET e data binding, localizzazione delle applicazioni, subclassing, threading, ed altro ancora. Non mancheranno argomenti architetturali o maggiormente "astratti" quali: OOP, generics ed altro ancora. Ci piacerebbe, insomma, presentare ad...

Validation Application Block

Come promesso durante il workshop "Component", ho reso disponibile l'engine di validazione mostrato durante la mia sessione dedicata alle classi attributo. Per quanto le regole attuamente incluse siano in numero ridotto, sto usando questa libreria con soddisfazione in diversi progetti, non ultima la nuova release del sito UGIdotNET. La libreria è scaricabile qui ed è stata rilasciata con licenza open source Common Public License: in pratica, ognuno può farne ciò che vuole purchè renda credito a tutti gli autori. "Autori" al plurale perchè l'idea è quella di lavorarci insieme: perchè, allora, non ho pubblicato tutto su direttamente sourceforge? Semplicemente, prima...

[PDC 2005] dLINQ: Nuova Ossessione

Mr Roberto Faiga a parte (a proposito: tornerà in Italia o rimarrà qui?), il vero tormentone qui a L.A. ha un nome ben preciso: LINQ. Oltre ai suoi "gusti" dLINQ e xLINQ, ovviamente. Dopo una notte di riflessioni e confronti con i miei compagni di viaggio, ho assistito alla sessione di Luca Bolognese, della cui disponibilità ho approfittato per torgliermi alcuni dubbi mediante qualche domanda mirata e forse anche un po' cattivella. Innanzitutto, i miei complimenti a Luca, perchè la sua sessione è stata divertente e ben bilanciata. Lo ringrazio anche per la sincerità con la quale dal palco ha...

[PDC2005] Why dLinq isn't

Nel mare di feedback trionfali, una voce fuori campo: a me dLinq *non* sembra una soluzione ragionevole. dLinq accoppia il Domain Model allo schema fisico dei dati, e questo è Male. Secondo "lui", una classe==Una tabella. Una proprietà==Una colonna. Il tipo della colonna *è* il tipo della proprietà, e anche questo è Male. Il mondo reale non funziona così. Un esempio? Database Northwind (lo abbiamo tutti), tabella Employees, colonna ReportsTo. E' di tipo int, è nullable e, dove specificato, indica il codice dell'impiegato che ci coordina. In un domain model "Real World", la classe Employee *non* ha una proprietà ReportsTo di...

AJAX: chi era costui?

Urka! A breve distanza dal mio "outing" in merito ad AJAX, noto che si è scatenata una vera e propria bagarre. Sembra quasi che sia una ossessione: ed io che credevo che il chiodo fisso dei maschietti fosse tutt'altro :-D Scherzi a parte, i miei quaranta lettori potrebbero essersi accorti (peggio per loro, verrebbe da dire ) che ho pubblicato l'articolo introduttivo ad AJAX, diviso in due parti. E' *assolutamente* introduttivo, e chi volesse solo dare una occhiata a come funzioni il giochino potrà addirittura tralasciare la seconda. Le demo sono online (pubblicherò ASAP anche i sorgenti), ma noterete che non è descritta...

Una promessa è una promessa...

...E Michael Schwarz l'ha mantenuta: per quanto fosse sempre stato dichiarato "open source", in realtà il codice di Ajax.NET non *era* disponibile, per quanto vi fosse la promessa da parte dell'autore di rilasciarlo. Ebbene... Da qualche giorno lo è davvero, come da lui stesso annunciato sul proprio blog. Grazie Michael!UPDATE: Rileggendo con attenzione il post ed i relativi commenti, emerge l'intenzione di Michael di creare una nuova libreria "Ajax" per .NET anche se non cesserà di contribuire a quella attuale che, essendo ora a codice aperto, dovrà evidentemente trovare supporti esterni per evolversi. Per quanto la scelta possa essere comprensibile...

AJAX: prime considerazioni a caldo

Ultimamente sto giochicchiando con Ajax.NET, un toolkit gratuito realizzato da Michael Schwarz per agevolare la programmazione in stile Ajax mediante ASP.NET; devo ammettere che il "giochino" è: comodo, interessante e di sicuro effetto, anche se tecnologicamente non innovativo. Chi tra noi avesse mai provato il behaviour di Internet Explorer che permette il consumo client-side di web services, troverà "addirittura" un assoluto parallelismo: di "qua" si decorano i metodi con l'attributo AjaxMethodAttribute e l'handler http del toolkit inietta il codice JavaScript che funge da proxy nella pagina html, di "là" l'attributo è WebMethodAttribute e l'handler ce lo mette ASP.NET "out-of-the-box", mentre la generazione...

Dopo "Longhorn", anche "Avalon" e "Indigo" ci lasciano...

...Perchè uno sguardo alle release notes di WinFX rivela i nomi definitivi: Windows Presentation Foundation (il "fu Avalon") e Windows Communication Foundation (il "fu Indigo"). Ovviamente, anche i nomi delle sessioni che si svolgeranno a PDC riflettono il cambiamento :-)

Wokshop "Component Development": il malloppo sta arrivando

Ho iniziato a pubblicare slide e demo mostrate durante il workshop "Component Development": mancano ancora quelle di Davide, ma lasciamo che il neo-papà si goda la splendida Andrea nel fine settimana (si, avete capito bene: 1) è una bimbA 2) si chiama Andrea... Bel nome, vero? <g>) e poi avremo a disposizione anche le sue. Un paio di veloci precisazioni: come al solito, il materiale di Fabio è disponibile anche sul suo sito, quindi non perdete tempo nel chiedervi quale versione scaricare... Infine, una precisazione relativa alla libreria degli attributi di validazione: quella pubblicata non è la versione che (come ricorda Simone) rilascerò...

Workshop: aggiungi un posto a tavola, che c'è uno slot in più...

"Questa volta", mi ero ripromesso, "mi prendo un turno di riposo!". E c'ero quasi riuscito (Fabio, in realtà, mi rispose subito: "Non ci credo finchè non lo vedo"... Aveva ragione <g>), ma poi... Guardando l'agenda del workshop, mi son chiesto perchè non lo avessimo chiamato "Control Development" :-) Intediamoci: i controlli *sono* componenti; è l'affermazione inversa a non essere esaustiva. Quindi, indossata la mia divisa da "Generale Guglielmo Pignolo", ho pensato di aggiungere una sessione, dedicata ad una tipologia di componenti (e già mi immagino il flame che può essere scatenato da questa affermazione) che molto mi affascina: le classi attributo...

.NET e le... "riflessioni sugli attributi" :-)

Avete presente quando venite assaliti da un dubbio e (quasi) non riuscite a pensare ad altro? Ecco: immaginate che il dubbio riguardi una funzionalità di .NET e che MSDN non sia esaustivo al riguardo, immaginate che anche Raf (cui ho rotto le @@ via messenger) non vi sappia dare una risposta al volo... Concorderete con me che è uno di quei casi nei quali ci si sente *obbligati* a "mettere in piedi" un esempietto per: vedere, capire, ....SAPERE. Vaorainonda, il reality show: "Vita da Saltarello: riflessioni sugli attributi" (si, il doppio senso ambiguo carpiato è voluto ). La causa scatenante di cotanto...

Workshop Security: ecco i video... Finalmente!

Toh! Mi sono accorto di non aver mai segnalato che sono stati pubblicati i video registrati durante il workshop "Security" del 7 Aprile... Potrete mai perdonarmi? :-)

TestDriven.NET e VS2005

L'autore di TestDriven.NET comunica sul proprio blog la disponibilità di una build che risolve i problemi che insorgono installando VS2005 beta2 side-by-side con VS2003.

Scaricare la beta1 di Avalon e Indigo

Qualcuno si sarà già accorto (magari grazie alla news pubblicata da Pierre) che è stata rilasciata la versione beta1 di Avalon e Indigo: poichè la pagina di download non si è ancora propagata in tutta la server farm di Microsoft, ho aggiunto una nota alla suddetta news in modo da offrire il link al download diretto del file. Piccola nota personale: scaricare un file che si chiama winfxsetup.exe e che non contiene WinFS mi fa tornare alla mente PDC2003, quando "WinFX era WinFX e il compilation model e di ASP.NET 2 era decente"... Altri (bei ?) tempi! :-)

Miguel introduce C# agli sviluppatori Java

Oggi, leggendo un post pubblicato da Miguel de Icaza (manager del progetto Mono) sul proprio blog, ho trovato un interessante slideshow che offre una introduzione a C# ed al "blocco" CLI/CLS/CLR orientata agli sviluppatori Java. In realtà, è un bel documento che presenta sinteticamente il razionale alla base di .NET e Mono, e IMVHO può risultare interessante leggerlo anche per chi già è stato introdotto ai "misteri della Forza" :-)

Precisione, pignoleria o semplice delirio?

A mio avviso, il .NET framework ed il linguaggio C# sono caratterizzati da un design decisamente brillante, anche se ogni tanto qualche pecca  (o presunta tale) salta fuori. Ricordo ancora quando intervistammo Eric Gunneerson (allora PM di C#) chiedendo lumi sull'uso (ambiguo?) della keyword using sia come direttiva sia come statement ricavandone, a dire il vero, una risposta tutt'altro che soddisfacente. Ecco un paio di considerazioni sulle quali mi piacerebbe conoscere alcune opinioni. Parlando del Dispose Pattern, mi chiedo spesso se abbia senso definirlo tale (pattern, appunto) o se non sarebbe più corretto riferirsi ad esso definendolo un idioma. Se è...

[Roadshow ASP.NET] 4 Speaker al prezzo di 1, cioè... Zero!

Grazie ad una (brillante?) idea di Fabio, l'ultima data del roadshow ASP.NET si trasfoma in una vera e propria festa (almeno per me: ogni tanto un po' di sano egoismo non fa male... <g>): l'idea consiste nell'avere il "Quartetto Cetra" al completo (Daniele, Davide e RoB mi perdonino, ma proprio non ce la faccio a definirci i "Fantastici 4") in occasione dell'ultima edizione, fissata per il 17 Marzo a Milano. Ci stiamo ancora picchian...ehm, confrontando per suddividere le sessioni, ma credo che ci sarà da divertirsi: ci si vede lì? :-)

Roadshow ASP.NET: fu vera gloria? Ai poster, l'ardua sentenza...

Finalmente a casa. 1600 chilometri in auto, 3 tappe e tanta neve: in poche parole... Un divertimento assoluto! Roberta (l'Angelo) che impreca per il cathering, Sara e il suo (tipico) intercalare nella "intro licensing", il banchetto MVP con Raf e Alead, e poi... Altri 300 motivi (circa) per essere felice: tanti motivi quanti sono stati i partecipanti a queste tappe. Ragazzi: come promesso, ecco slide e demo, che al termine del roadshow saranno rese disponibili anche sul sito Microsoft nella sezione apposita. Bando alle ciance, ecco il "malloppo": Slideshow (2.153 Kb) Demo ADO.NET (19 Kb) Demo databinding: C# (152 Kb) e VB (95 Kb) Demo migrazione...

Event-driven developer

Periodo incasinato, e a farne le spese è innanzitutto il blog, dal quale latito ormai da tempo: sembra ieri che ci siamo visti per il workshop "Data Management", ed eccoci alla vigilia delle mie tappe del Roadshow ASP .NET; domani si parte per Padova (dove Riccardo "Photo Reporter" Golia e luKa "Mr. Wiki" Minudel mi attendono al varco per "sistemarmi" con una cena di quelle buone) e giovedi sarà la volta di Treviso. Il "mese del globe-trotter" (che tanto mi ricorda quello della "prevenzione dentale") si conclude la settimana prossima (martedi) con la tappa a casa di Raf, ossia Genova. "Roba"...

Roadshow ASP .NET: non solo ScottGu

E' stato pubblicato sul sito di Microsoft il programma completo del roadshow ASP .NET: come avevo già anticipato, la prima data è fissata per il 7 febbraio a Roma. Per chi dovesse perdersela (magari perchè 3 giorni dopo verrà al workshop "Data Management" :-D ) sarà possibile scegliere tra le altre date, nelle quali però gli speaker saranno dei "comuni mortali": io, Daniele, Davide e RoB (in rigoroso ordine alfabetico) cercheremo di non sfigurare troppo al confronto. L'agenda prevede 5 sessioni, 3 delle quali sono un tutorial ad ampio raggio dedicato ad ASP .NET; avremo poi una sessione nella quale migreremo una (piccola)...

7 Febbraio 2005: ScottGu in Italia!

Vi riporto parte di una mail che mi è arrivata oggi: Microsoft ASP.NET 2.0 Preview Roma, 7 febbraio 2005Un appuntamento con il Product Manager di ASP.NET, Scott Guthrie, per approfondire le nuove caratteristiche di ASP.NET 2.0 e per trattare le tematiche legate alla migrazione da ASP ad ASP.NET. Che dire? Scott è il papà di ASP .NET, e sarà disponibile un servizio di traduzione simultanea per chi proprio non può sopportare la lingua della terra d'Albione.

Work in progress: ecco l'agenda completa del workshop "Data Management"

L'agenda del workshop del 10 febbraio è finalmente completa: i titoli delle sessioni e il roster dei relatori sono finalmente definitivi. Mancano gli abstract e gli orari, che pubblicheremo comunque al più presto: stiamo attendendo alcune info logistiche da Microsoft Italia che (come al solito) ci mette a disposizione una location di tutto rispetto. Infine, una (spero) gradita sorpresa: i presenti al workshop "Web Development" ricorderanno come alcune sessioni siano state "tagliate" per lasciare spazio alla proiezione del film nonostante i ritardi accusati durante il pranzo. Tre esse vi era "ASP .NET Databinding": per cercare di rimediare, abbiamo pensato di proporre una...

Sulla complessità di C++

C++, si sa, è un linguaggio complesso: la sua complessità è sicuramente ricambiata da una potenza espressiva probabilmente ineguagliata, che però tipicamente non ne giustifica l'adozione come linguaggio di sviluppo general purpose. C#, si sa, è stato progettato _anche_ per essere "simile (e sexy) per i dev C++, ma più semplice". Proprio quando (come in questo caso) pensi di aver detto la più banale delle ovvietà, ecco che te la devi rimangiare. Per l'ennesima volta, oggi, ho definito una classe dotata di proprietà pubbliche che fungono semplicemente da accessor per i campi privati: class RenderingEngineInfo {     private string id...

Membership API e 1.1: qualcosa si muove (finalmente)

Certi avvenimenti mi stupiscono. Quando, ormai più di 2 mesi addietro, scoprii che esisteva (o, meglio: "eravamo alla vigilia dell'esistenza di") un backporting della membership API per ASP .NET 1.1, fui sorpreso di constatare un generale disinteresse per l'argomento: solo 2 commenti per quello che mi sembrava invece un annuncio entusiasmante (io _adoro_ la membership API). In realtà fui sorpreso anche poichè nemmeno la sopraggiunta effettiva disponibilità di questo assembly sembrò suscitare reazioni significative. Sembra invece che pian piano il torpore stia scemando, e questo non può che farmi piacere: oltre a dare una chiara visione della direzione dello sviluppo...

E oggi... Webcast!

Oggi alle 14:30 erogherò per Microsoft il primo dei 3 webcast dei quali avevo già parlato qualche tempo addietro; in realtà, da allora qualcosa è cambiato: ho pensato di riformulare i titoli e più in generale l'agenda degli argomenti, a mio avviso ora più lineare. Non nascondo che il feedback ricevuto per il workshop UGIdotNET "Architecture and Management" mi sia stato di grande aiuto per "tarare" anche questi webcast: ennesima occasione per ringraziare chiunque mi abbia regalato il proprio punto di vista (oltre che per ribadire che slide e demo sono in pubblicazione... anche il codice, datemi solo un po'...

DotNetNuke 3: Eccolo (in beta)!

Seppure un po' in ritardo, è finalmente stata resa disponibile la drop beta della versione 3.0 di DotNetNuke: sono davvero curioso di provarla, visto che la feature list che era stata resa pubblica è davvero appetibile. Gradita novità: è disponibile anche un sito dedicato al bug tracking della beta.

IBM, DB2 e .NET

Tutti ormai sappiamo che SQL Server 2005 (codename: Yukon) godrà di una forte integrazione con il CLR; sappiamo anche che questa integrazione permetterà (tra le altre cose) di scrivere stored procedure in linguaggi managed e utilizzare tipi managed per definire colonne nelle tabelle. tutto ciò a partire da qualche giorno del (tardo, si vocifera) 2005.Oggi, in chat, il buon Francesco mi ha chiesto: "Andre, perchè aspettare?" (beh... in realtà le sue parole sono state altre -più colorite- ma il senso era questo <g>). La domanda non è banale giacchè, come ho poi scoperto, l'ultima release di IBM DB2 UDB  già permette quanto...

Posticipato il rilascio di DotNetNuke 3.0

Con un post che (come lui stesso anticipa) non farà certo piacere agli utilizzatori di questo CMS, Shaun Walker ha annunciato un ritardo nel rilascio della prima beta pubblica di DotNetNuke 3.0, in origine prevista per ieri. Superato il disappunto iniziale (e già mi immagino la faccia di Davide, che pensava di usarlo per alcune demo a WPC), risulta comunque apprezzabile l'impegno del team per il quale la qualità di questo progetto da 75.000 righe di codice managed è un obbiettivo molto più importante del "time to market".

Un "altro" Desktop Manager 3D per Windows

E' sorprendente come, navigando alla rinfusa, si trovino stesso informazioni interessanti tanto quanto (ed a volte di più) di quelle che Google ci propone quando lo facciamo con uno scopo. Tutto questo preambolo serve ad introdurre una interessante scoperta: SphereXP. E' un desktop manager 3D (a la Looking Glass, per intenderci) per Windows XP. Cos'ha di tanto interessante? Beh... Innanzitutto è managed, quindi implementato sul .NET Framework e poi, oltre alla solita ridda di screenshot e video (dei quali non si sa mai quanto fidarsi) c'è anche la possibilità di scaricarne una versione beta. Appena ho 5 minuti liberi lo...

Ci si vede a SMAU?

Nei giorni 23, 24 e 25 ottobre sarò a SMAU un po' per lavoro, un po' per diletto. Bazzicherò lo stand Community presso il padiglione Microsoft (è il numero 23) e tra le 12:30 e le 13:30 terrò tutti i giorni la sessione "Sviluppare Web User Control con Visual Studio .NET 2003" presso il teatro MSDN. Se qualcuno avesse voglia di fare 4 "dotnetchiacchiere" o organizzare pantagrueliche cene può considerarmi presente :-D

Ritorno al futuro: Membership API per ASP .NET 1.1?

Avete partecipato ad uno dei "Whidbey Workshop" organizzati da UGIdotNET? Avete provato le versioni alpha/beta/CTP di VS2005 ed ASP .NET 2.0? Se una delle risposte fosse "si", probabilmente vi sarete innamorati (come me) della Membership API: non vi nascondo che, poichè sto lavorando da mesi su un grosso progetto realizzato con ASP .NET 2.0, mi sono subito avvantaggiato della possibiltà di implementare un custom membership/role provider per la mia applicazione (mi serviva esporre al runtime di ASP .NET il mio data mapper di gestione degli utenti). Un lusso apparentemente riservato alle applicazioni a lungo termine, ed invece negato a chi...

Nuova serie di webcast in italiano da Microsoft

Fabio annuncia mediante il suo blog l'organizzazione di una nuova serie di webcast in lingua italiana da parte di Microsoft Italia. La lista degli episodi (che sarà successivamente pubblicata qui) comprende varie tematiche: dallo sviluppo web con ASP .NET a SQL Server, da VB .NET ad Office 2003... Se non vi stuferete di parlare di pattern e architetture durante il workshop "Architecture & Management" organizzato da UGIdotNET, potreste essere interessati a quelli che mi hanno affibb... ehm, assegnato, ossia: 10/12/2004 2:30 PM Progettare Applicazioni .NET : disegno di un' architettura 15/12/2004 2:30 PM Progettare Applicazioni .NET : introduzione ai design pattern 17/12/2004 2:30...

Aprire un buco nella Forms Authentication

E pensare che abbiamo giusto ieri parlato di "ASP .NET Security".... Ledisendgentlemen, in collaborazione con quel buontempone del Barbieri e grazie ad un thread apparso su Sourceforge, ecco come bucare la Forms Authentication di ASP .NET: scaricate il progetto dimostrativo e pubblicatelo su una macchina IIS5 (IIS6 sembra essere immune) _senza_ URLScan (che come testato da Lorenzo offre protezione da questo bug). Provate a questo punto a fare browsing della pagina securepage.aspx contenuta nel folder wannabesecure: http://miosito/wannabesecure/securepage.aspx Come prevedibile, verrete rediretti alla pagina di login. Provate ora: http://miosito/wannabesecure\securepage.aspx Se usate IE, il browser efefttuerà un rewrite dello slash "malizioso"ed ancora una volta vedrete la...

Internet, Intranet e le redirezioni

Un thread nato oggi sul newsgroup Microsoft dedicato ad ASP .NET mi ha riportato alla mente un argomento spesso trascurato. Una delle FAQ più classiche riguardanti ASP .NET (o lo sviluppo web in generale) è sicuramente: "Come faccio a redirigere l'utente ad una pagina differente mediante codice lato server?" La risposta tipica è: "Usa Response.Redirect". Risposta corretta, per carità, ma con una piccola "trappola": questo metodo invia al client lo status code http 302 il cui codice mnemonico è "Found", ossia spostato temporaneamente. Questo è un classico caso nel quale lo sviluppo di applicazioni intranet (o comunque private) differisce da quello orientato a...

[Compact Framework] Cose buone dal Mondo

Spesso le domande inerenti il Compact Framework riguardano presunte mancanze rispetto alla versione "desktop"; spesso, a queste domande, la risposta non può che essere: "Scarica OpenNETCF Smart Device Framework". Questa strepitosa libreria riduce davvero la distanza esistente tra il CF e il fratello maggiore, a partire dal "classico" problema di generare un Guid. Beh... SDF ha raggiunto la versione 1.2 e la lista delle novità è davvero impressionante... C'è anche un "client" per WSE! Per citare una famosa pubblicità: "Poter usare WS-Security con un palmare... Impagabile!" :-D

Arriva il Service Pack 3 per il Compact Framework

Per i temerari che intendano provarlo, è disponibile qui per il download la versione del Service Pack 3 per il Compact Framework.

Un impegno concreto: Unit Testing per tutti! :-)

Ok, non mi ero accorto di questa iniziativa. Ero impegnato per il workshop, e poi ho avuto il raffreddore, e la macchina non partiva, bla bla bla... :-) Ma non è mai troppo tardi, e posso (provare a) rimediare. Scopro dal blog di Scott Watermasysk (chi non lo conosce... Dietro la lavagna!) che è in corso una petizione iniziata da Peter Provost affinchè Microsoft includa il toolkit per lo Unit Testing in tutte le versioni di Visual Studio 2005: I want to start a blog petition. I want everyone who agrees with me to blog the following sentence: Unit Testing support should...

Il vero significato di "language-agnostic"

Un post di Daniele mi ha riportato alla memoria una delle prime Goodies che pubblicai sul sito UGIdotNET, un paio di anni addietro. In effetti, questo compilatore è il classico "giochino" che spesso sfoggio durante corsi e/o conferenze per dimostrare quanto le CLI siano indipendenti dal linguaggio, al fine di introdurre le CLS e chiarire un po' le idee sull'architettura del runtime di .NET; in effetti l'idea che gli opcode x86 siano resi nei corrispettivi MSIL, salvo poi essere JIT-tati in codice macchina (magari) x86 rigorosamente differente dall'originale (altrimenti che JIT-ting sarebbe? ) mi ha fatto sorridere più volte. Fino...

Quando si dice: "Una classe con gli Attributi"

A volte capita di studiare un argomento e, successivamente, di "dimenticarlo" per scarso utilizzo, salvo poi tornare alla memoria quando, per un motivo qualunque, ci si sbatte la testa in un progetto reale. Ieri mi è capitato proprio questo quando, implementando una libreria di test da dare in pasto ad NUnit, stavo implementando un test che verificava la serializzabilità di una classe... "Bene", mi sono detto: "Adesso implemento due test, che chiamerò IsSerializable e CanBeSerialized che verificheranno rispettivamente l'avvenuta decorazione con l'attributo SerializableAttribute e l'effettiva possibilità di serializzare una istanza". Pronti-via, ho scritto il normale codice con il quale è...

Perchè quando ci vuole, ci vuole... Reflection :-)

Avete mai avuto l'esigenza di conoscere l'indice di una riga (una DataRow, per intenderci) all'interno della DataTable che la contiene? Ebbene, se vi fosse capitato, vi sareste accorti che la classe DataRow non espone alcun membro che fornisca questo dato. Ma ne siamo proprio sicuri? In verità, non esiste un membro pubblico che fornisca questa info ma ricorrendo ad un po' di malizia e, soprattutto, a Reflection possiamo utilizzare il campo privato rowID: DataRow unaRiga = unaDataTable.NewRow();FieldInfo rowFieldsInfo = typeof(DataRow).GetField("rowID", BindingFlags.NonPublic | BindingFlags.Instance);int rowId = (int) rowFieldsInfo.GetValue(unaRiga);

E' una FAQ? E' un tip? E' un pattern? Ai "poster" l'ardua sentenza (però risolve un problema)

Sicuramente molti di noi hanno giocato e tratto profitto dal supporto alla serializzazione offerto dal framework .NET; oggi, però, mi sono imbattuto in un caso interessante. Dovevo, infatti, estendere la classe Hashtable (che di per sè è già serializzabile), e rendere la mia classe serializzabile. Ora, poichè l'attributo Serializable non viene ereditato (per ottimi motivi, direi...) ho semplicemente decorato anche la mia classe con tale attributo: [Serializable]public class ExtendedHashtable : System.Collections.Hashtable{    [NonSerialized]    private CampoDocumento campoDocumento=null;    public Hashtable(CampoDocumento campoTarget) : base()    {        this.campoDocumento=campoTarget;    }      //Varie proprietà e metodi} Come mi aspettavo, la classe ExtendedHashtable è risultata serializzabile senza alcun problema, ma... Ogni tentativo...

CLR, CLS, CLI e il mondo reale

Un post di Pierre (e la relativa conversazione via Messenger con lui) mi riportano ad una riflessione iniziata molto tempo addietro quando mi chiesi, per esempio, perchè VB .NET (a differenza dei suoi predecessori) non permetta di specificare differenti access modifier per i metodi getter e setter della stessa proprietà. Oppure, perchè i tipi interi a 16, 32 e 64bit unsigned non siano inclusi nelle Common Language Specifications, mentre per il byte vale esattamente l'opposto. C'è una logica (mi chiesi) che lega queste caratteristiche? Prima che pensiate che io sia impazzito, specifico che mi posi queste domande in fase di preparazione...

Eric Gunnerson e la distruzione deterministica

L'impossibilità di ottenere la distruzione deterministica di un oggetto è uno degli argomenti più discussi relativamente a .NET: Eric Gunnerson (PM per il compilatore C#) ci segnala un favoloso post che spiega i motivi che hanno portato a questa scelta. Imperdibile! (se avete un'oretta da dedicare alla lettura...).

«aprile»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011