in

dotNet Umbria

Il primo User Group in Umbria sul mondo .Net

Andrea Cruciani' blog

parlando di .Net: i miei libri, architettura, il Web, le applicazioni mobile, Wpf, MicroFramework...
  • [OT] 70-562: Mcts Asp.Net 3.5 !

    E' un periodo "prolifico" per le certificazioni, ho appena saputo di aver passato la beta dell'esame 70-562: "Microsoft .NET Framework 3.5, ASP.NET Application Development".

    [update] anche il 70-561 (Ado.Net 3.5) è andato. Questo esame m'è sembrato proprio tosto, non credevo di averlo passato, ed invece ieri la sopresa.

    Entro dicembre è prevista l'uscita dell'upgrade per l'MCPD, per chi fosse interessato alle certificazioni .Net e può aspettare qualche mese forse vale la pena di partire direttamente con le nuove certificazioni per Visual Studio 2008.

  • Di ritorno dal Workshop di DotNetMarche

     Venerdì un piccola rappresentanza di dotnetUmbria è andata al workshop dei nostri amici delle Marche.

    Si parlava di test delle applicazioni ed del prossimo framework MVC di Asp.Net, argomenti interessantissimi e molte volte indebitamente snobbati. E' stata l'occasione per fare la conoscenza di Gian maria, Simone (i due speakers dell'occasione, anche se alla fine con Simone non c'e' stata occasione di presentarci, sarà per la prossima) e Diego. E' proprio bello ritrovarsi cosi' in sintonia con persone che avevi conosciuto solo per mezzo dei loro blog, sono sicuro che d'ora in poi non mancheranno le occasioni per altri incontri (soprattutto se culinari :D)

     

    Quindi un Bravi agli amici marchigiani, e un grazie di cuore!

  • Development Board per Microframework

     Riposto una notizia letta sul blog di Lorenzo Barbieri su un nuvo kit a basso costo per fare test sul micro framework... quasi quasi gli tocca Smile

    Dev Board

    Sembra che il prodotto sarà disponibile a 99$

    Qui un link

     

  • Piccola soddisfazione

    L'altro giorno ho passato l'ultimo esame per diventare MCPD Win 2.0. Ho fatto passare troppo tempo temo, devo già convertirlo alle nuove certificazioni . Cmq la soddisfazione c'è stata lo stesso... A proposito di certificazioni...
  • Book review: Essential Silverlight 2 - UpToDate !

     Periodo di molte letture questo :-).

    In questi giorni, volendo approfondire Silverlight, ho letto il libro di Christian Wenz (da notare che nel suo bog si parla di Asp.Net e Php, nel blog spazia proprio su tutto! ) mi sono trovato alle prese con un nuovo genere di libro... un libro molto Web 2.0!

    Il libro è interessante e propone gli argomenti base di Silverlight 2 in modo abbastanza conciso, forse troppo... arrivati a metà libro, sorpresa! La restante metà del libro è composta da pagine bianche, un po' troppe per essere pagine per gli appunti...

     

    Essendo Silverlight 2 una tecnologia drasticamente in movimento Christian ha capito che non poteva scrivere subito un libro compiuto, ha così reso il libro dinamico, oltre agli esempi sul sito O'Reilly ne usciranno continui aggiornamenti mano a mano che la tecnologia si evolverà. Ciascuno potrà scegliere se scaricarsi i pdf degli aggiornamenti e stamparseli oppure se ordinare le nuove pagine già stampate (per circa 4$). E' già stato pubblicato un nuovo aggiornamento a Maggio 2008, la cosa intrigante è che gli stessi lettori possono partecipare al forum e chiedere di approfondire un argomento (per esempio è stato chiesto un approfondimento sulla Sicurezza).

    E' sicuramente un format interessante, forse non sarà troppo popolare perchè in questo mondo dove si và troppo veloci pochi si prenderanno cura di aggiornare un "vecchio" libro cartaceo  e si terranno i pdf in una cartella... ma, almeno per me, il fascino della carta stampata rimane sempre. Cmq compliementi a Christian ed alla O'Reilly per il coraggio!

  • Rilasciato Silverlight 2 beta 2

     E' notizia "vecchia" di qualche giorno ma non posso evitare di riproporla: è stata rilasciata la versione beta 2 di Silverlight 2.

    Tra le novità una di quelle più interessanti per capire la direzione che sta prendendo Silverlight 2 è che lo Xaml sta diventanto sempre più conforme a quello utilizzato in Wpf, per chi avesse seguito la mia sessione all'ultimo evento capisce quale possa essere l'importanza strategica di questa notizia.

    In attesa del rilascio dell'SDK altre novità potete trovarle riassunte in questo post di Pietro Brambati, che rimanda anche ad alcune breaking changes con la beta 1.

    Immancabile il "solito" post di Scott Guthrie sull'argomento

    Una nota sulla licenza di rilascio. SL 2 beta 2 è rilasciato in Go-Live che permette l'utilizzo a fini commerciali del prodotti.

    Happy SL !

  • Book review: Expert .Net Micro Framework

    Era da un po' che volevo dedicare del tempo a capire meglio il MicroFramework e il libro  di Jens Kühner è stata la scusa per iniziare a dargli uno sguardo. Il MicroFramework mi permette di unire i miei vecchi (ed impolverati) studi di elettronica al mio "pane quotidiano", la programmazione con .Net. Leggendo il libro (adatto anche a chi conosce il .Net framework "standard" non approfonditamente) si scopre un mondo di microcontrollori già predisposti per l'utilizo del Microframework, uno tra tutti un dispositivo costituito da una porta di rete "intelligente" che trovate qui.

    Oltre al controllo delle porte hardware (GPIO: Genera Purpose Input/Output), al threading, alla crittografia (!!) è possibile pilotare diplay lcd per visualizzare dettagli (anche grazie ad un SDK aggiuntivo SideShow, creato ad hoc per il Micro Framework) nonchè gestire le comunicazioni via socket TCP ed UDP. Proprio nel capitolo del networking ho scopeto l'esistenza delle specifiche DPWS (Device Profile for Web Service) un subset delle specifiche dei Web Services che permettono di offrire le capacità del dispositivo tramite un web service hostato dal device stesso!! Ovviamente tale funionalità e' rivolta ai dispositivi che possiedono un'interfaccia di rete. Immaginate una serie di dispositivi che fanno monitoraggio ambientale e la possibilità di visualizzare lo stato di un ambiente (temperatura, umidità, ...) in un mesh up che riassume tutti i dati dai vari dispositivi, il tutto utilizzando le normali tecniche di interrogazione dei web services... Sinceramente questo framework mi ha intrigato tantissimo. Spero di poter iniziare presto a fare qualche esperimento, poi vi dirò come procede. Per chi fosse interessato all'argomento credo che il libro aiuti, in modo veloce e puntuale, a capire quale sia la situazione attuale del prodotto e la panoramica delle funzionalità che offre.

    Se volete iniziare a guardare l'argomento vi segnalo alcuni links:

    MicroFramework SDK 2.5
    Windows SideShow Device SDK for .NET Micro Framework

    .Net Microframework

  • Applicazione Silverlight 2 - VS 2008 {Community} Launch

    Un mese di attesa per pubblicare la demo fa sicuramente molto poco "web 2.0" ma spero che mi perdonerete.

    Trovate in allegato due demo:

    • Silverlight 2
    • Conversione "brutale" in WPF

    Mentre la parte WPF non ha requisiti particolari per SL è necessario installare un ambiente che abbia i seguenti requisiti:

    Per l'editor consiglio di installare Expression Blend:

    La parte SL funziona nell'inserimento dei dati e nella consultazione. La conversione in Wpf è solo parziale (non e' stato sviluppata la parte di persistenza), l'obiettivo era quello di verificare come fosse possibile utilizzare uno Xaml pressocchè uguale in entrambe le situazioni.

    Nei prossimi post vorrei analizzare alcune parti di questa demo in profondità e magari sfruttarla per introdurre qualche concetto architetturale.

     

    Demo SL: Demo SL.rar

    Demo Wpf: Wpf Version.rar

  • Impressioni a caldo sull'evento di ieri

    Quando s'era partiti con il nostro .NetUmbria chi avrebbe pensato mai che dopo poco ci saremmo ritrovati a fare un evento di questo genere? Tanta, ma tanta gente che è rimasta fino alla fine (dai conti sulle 160-170 persone) e che ci ha espresso la sua soddisfazione.

    Un grazie paticolare ai ragazzi di Desktop ed Osmosit che hanno sponsorizzato l'evento e a PcsNet che ha sponsorizzato il coffee break.

    La soddisfazione più grande in assoluto? Vedere crescere lo user group, con Simone e Fabrizio all'arrembaggio (bravissimi vero?) e tanti che hanno espresso la voglia di iniziare a scrivere articoli e a mettersi in gioco con noi per crescere tutti assieme.

    Si parla già di fare un appuntamento fisso (per 5-10-30 persone? questo lo vedremo) al mese: una pizza, un aperitivo, una birra... qualsiasi scusa per trovarci, scambiarci alcune impressioni, magari scegliedo un argomento diverso ogni volta.

    Un grazie dal cuore anche a Pietro e Sara di Microsoft che ci hanno seguiti e sostenuti fin dall'inizio.

    In questi giorni pubblicheremo foto e sessioni (slides + codice) sui blog e le foto gallery dello User Group.

    Grazie infine a tutti quelli che sono stati con noi, aspettiamo un vostro commento e la vostra proposta su quello che fare in futuro, già si parla di Wcf e Wpf. Ancora web e forse qualcosa di architetturale qua e là

  • dotNetUmbria cresce!

    Con grande piacere vi segnalo l'apertura di due nuovi blog di dotNetUmbria!

    Benvenuti Fabrizio e Simone !

    Per chi non li conoscesse potrete farlo all'evento dell'8 Aprile...

    Nel frattempo, non dico il numero per scaramanzia, gli iscritti all'evento sono lievitati in modo sconcertante, abbiamo raddoppiato le stime iniziali... forse ci voleva proprio quest'iniziativa in Umbria.
    Grazie a tutti, e chiunque volesse contrinuire con articoli, rispondendo ai forum o soggerimenti è sempre gradito.

  • Testare il layout delle applicazioni web: alcuni tools utili

    La scorsa settimana nell'affrontare con un nuovo team un applicativo web ci siamo scontrati (frontalmente) con la creazione di css coerenti per i vari browser. Guardando le tipologie dei browser che accedono al nostro sito aziendale e ad altri ho visto che IE 6 è sempre molto diffuso, allo stesso tempo è proprio con IE6 che abbiamo trovato le maggiori discrepanze.

    Per chi avesse bisogno di fare qualche test di questo genere vorrei segnalare alcuni link di tools web utili allo scopo:

    http://ipinfo.info/netrenderer/ :
    ottimo per velocità restituisce il rendering per IE 7.0, 6.0, 5.5

    http://browsershots.org/ :
    se si ha un po' di pazienza (l'elaborazione può richiedere anche più di mezz'ora!) offre una grandissima varietà di browsers. Occhio ad alcuni browser che paiono non renderizare bene: in realtà lo screenshot viene scattato prima che la pagina sia renderizzata completamente. A pagamento è possibilie avere il risultato in tempo reale.

    http://tredosoft.com/Multiple_IE
    un'utility che effettua l'installazione di istanze multiple di IE. Forse la 4.0 possiamo evitare di installarla pero'... almeno spero :-)

  • Silverlight 2.0 beta 1

    Come già Andrea Boschin ha annunciato nel suo blog: "...e finalmente arriva Silverlight 2" in occasione del MIX08.
    La cosa mi interessa molto da vicino anche in vista  del Community Technical Workshop dell'8 Aprile prossimo venturo dove vedremo in azione SL 2 e capiremo come può incidere nella nostra vita di sviluppatori.

    Per brevità vi segnalo i links principali sull'argomento:

    - Silverlight 2.0 Beta 1

    - Microsoft Silverlight Tools Beta 1 for Visual Studio 2008

    - Source Code and Unit Tests for Silverlight 2 Beta 1 Controls

    - Microsoft Expression Blend 2.5 March 2008 Preview

    Un riferimento ad un prossimo webcast di Peter Brown che voglio assolutamente vedere:

    - Silverlight 2 for Business Applications Webcast

    E per finire sempre Andrea Boschin ci rimanda al licensing di SL 2.0 beta 1.

     

    Che dire? Buon divertimento a tutti Smile


  • Asp.Net Base Page

    Nel pensare una architettura per un nuovo applicativo web a metà tra un gestionale e un CMS mi sto interrogando su come strutturare una BasePage da cui far derivare tutte le pagine dell'applicativo. Oltre ad introdurre meccanismi funzionali al progetto ho trovato degli interessanti spunti in rete che volevo consigliare a tutti che Steve Smith ha raccolto in questa pagina.

    In particolare fa riferimento a questo articolo di Tim Haines che ha avuto un'idea semplice e potente: iniettare lo script di Goole Analytics direttamente dalla base page. Avete altre dritte da condividere sull'argomento?

     

  • Book review: Pro Linq - Language Integrated Query in C# 2008

    La serie "Pro" di APress mi piace molto, ho già apprezzato i volumi su WPF e WCF ma, a chi fosse interessato a Linq, non posso che segnalare questo nuovo volume sull'argomento scritto da Joseph C. Rattz. L'autore affronta la problematica partendo da un concetto interessante: poniamo l'attenzione sui punti cruciali prima di approfondire i presupposti della tecnologia. Questo approccio "top down" è estremamente efficace soprattutto per un libro di approfondimento come quelli della serie "pro".

    Gli argomenti sono trattati con grande chiarezza e con un grado di dettaglio più che sufficiente (a volte anche estremo come la parte in cui viene descritta tutta la grammatica delle query). In particolar modo ho personalmente molto gradita la parte di Linq to Objects, in cui vengono espressi molti dei concetti che saranno comuni a tutto Linq, in particolare l'attenzione nella descrizione degli operatori che vengono divisi in Deferred Operators e NonDeferred Operators. Parte da leone, ovviamente, la fa Linq to Sql con 7 capitoli ad esso dedicati.

     

    Un libro che non posso che consigliare a tutti coloro che vogliono approfondire in modo organico Linq.

    Titolo: Pro Linq - Language Integrated Query in C# 2008
    Autore: APress
    Data pubblicazione: Novembre 2007
    Pagine: 600

  • Linq to SQL InheritanceMapping

    L'altro giorno mi sono ritrovato a fare una chiacchierata con Simone, grande supporter di NHibernate, su alcune delle features di Linq e ci siamo trovati concordi nel dire che l'Inheritance mapping è una tra le più interessanti per i nostri porgetti reali.
    Per chi non avesse ancora visto Linq to Sql và fatta una piccola premessa: il modo più immediato ed intuitivo di mappare le tabelle del nostro db (Linq to Sql al momento supporta solo Sql Server) è quello di aggiungere un nuovo item al nostro progetto di tipo "Linq to Sql classes", di creare una connessione in Server Explorer al db che vogliamo utilizzare e tramite drag&drop trascinare le tabelle che ci interessano. Vediamo il risultato in figura:

     

    Questo tipo di mapping prevede l'utilizzo degli attributi per legare le proprietà delle entità generate con i campi presenti nelle tabelle del db. Alternativamente è possibile utilizzare un mapping esterno su files Xml che però non ci interessa per l'esempio corrente.

    L'idea è quella di avere una classe per rappresentare un generico item di una rubrica (chiamato fantasiosamente Rubrica) e di andare a specializzarlo in classi specifiche per la rurbrica dei fornitori, clienti e magari delle aziende. VS2008 ci genera una classe Rurbica che mappa in modo semplice la nostra tabella. Ereditiamo qundi questo tipo nelle classi che rappresentano Clienti,Fornitori ed Aziende:

     

    All'interno della tabella esiste un campo denominato ContactType (tinyint ovvero byte in .Net) che ho stabilito mi specificherà il tipo di contatto. Ora voglio che Linq to Sql mi restituisca l'entità giusta a seconda del valore del ContactType, per fare questo devo agire in due step sulla classe Rubrica generatami da VS2008.

    Sulla proprietà che mi mappa il ContentType imposto l'attributo IsDiscriminator a true per l'attributo Column. In questo modo specifico che sarà questa la proprietà che definirà il tipo da generare.

    [Column(Storage = "_ContactType", DbType = "TinyInt NOT NULL", IsDiscriminator = true)]
    public byte ContactType

    Successivamente applico i seguenti attributi al tipo Rubrica:

    [Table(Name = "dbo.Rubrica")]
    [
    InheritanceMapping(Code = TipoContatto.Rubrica, Type = typeof(Rubrica), IsDefault = true)]
    [
    InheritanceMapping(Code = TipoContatto.Cliente, Type = typeof(Cliente))]
    [
    InheritanceMapping(Code = TipoContatto.Fornitore, Type = typeof(Fornitore))]
    [
    InheritanceMapping(Code = TipoContatto.Azienda, Type = typeof(Azienda))]
    public partial class Rubrica

    L'attributo InheritanceMapping determina quale sia il valore del campo per cui mi verrà generato uno specifico tipo. Nel primo attributo abbiamo anche impostato quale sia il valore di default (nel caso che il ContentType no nricadesse in nessuno dei valori esplicitati).

    Avrete notato che a fronte di un ContentType numerico sto utilizzando un enum per specificare i vari casi, la scelta è stata fatta solo per aumentare la leggibilità , è bastato definire l'enum TipoContatto come segue:

    public enum TipoContatto : byte
    {
         Rubrica = 0,
         Cliente = 1,
         Fornitore = 2,
         Azienda = 3,
    }

    Fatto questo il motore di Linq to Sql interpreterà il valore del parametro discriminante e restituirà gli oggetti corretti. All'interno di ciascun oggetto potremo apportare le modifiche volute e dei metodi specifici per ciascuna entità.

    Nell'esempio allegato trovate un'implementazione che utilizza un campo CodiceUnivoco per inserire, a seconda del caso, il codice fiscale o la partita iva. Avrei potuto allo stesso modo inseire dei validatori differenti per i due casi. Nello zip trovate anche la query per generare la tabella del database se volete fare una prova completa.

More Posts Next page »
dotNet Umbria 2007-2008
Powered by Community Server (Commercial Edition), by Telligent Systems