do more with less

Scrum for Team System: è possibile registrarsi per la Beta 1 della Task Board

clip_image001Trovare una metodologia adeguata da utilizzare nei team di sviluppo non è certo una cosa semplice. Dopo qualche anno di esperienza con Team Foundation Server utilizzando MSF Agile for TFS, sono arrivato a Scrum for Team System. Scrum è una metodologia agile che, a mio parere, bene si sposa con il nostro mercato in cui non si ha sempre un team con la maturità adeguata per essere completamente autonomo nella conduzione delle attività assegnate ed in cui il concetto di qualità test e qualità spesso lascia a desiderare. In questo e per altri motivi, questa metodologia aiuta a migliorare la qualità delle soluzioni realizzate e a mantenere il giusto livello di controllo sull'andamento di un progetto software.

Perchè vi ho parlato di Scrum? Semplicemente perchè, se qualcuno lo utilizza, oggi può entrare a far parte dei beta tester della Task Board, strumento perfetto per seguire e gestire progetti basati sulla metodologia agile seguita dal template di Scrum for Team System. Se siete interessati potete iscrivervi e scaricare la Task Board da questo link: Task Board for Team System - Beta 1 Registration.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Pex: Automated Exploratory Testing for .NET

Qualche giorno fa un amico mi ha segnalato questo tool per la generazione parametrizzata di test con un'elevato code coverage. Le principali funzionalità sono:

  • Unit Tests: metodi senza parametri per il test di una singola unità di codice
  • Parameterized Unit Tests: come il precedente ma con parametri
  • Automated Exploratory Testing: un tool in grado di supportare il processo di esecuzione, apprendimento e test allo stesso tempo
  • Dynamic Symbolic Execution: una combinazione di analisi statiche e monitoraggio a runtime per valutare test inputs

Lo schema seguente da un'idea di quanto indicato in precedenza:

parameterzedtestsschema

 

Se la cosa vi stuzzica, ecco i link al sito di Microsoft Research dove potete trovare maggiori informazioni: Pex: Automated Exploratory Testing for .NET.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

.NET 3.5 Enhancements Training Kit: disponibile per il download

Qualche giorno fa Jonathan Carter (aka JC), nel suo blog ha annunciato la disponibilità del .NET 3.5 Enhancements Training Kit. Il download contiene sei labs relativi alle seguenti tecnologie:

  • ADO.NET Data Services
  • ADO.NET Entity Framework
  • ASP.NET AJAX History
  • ASP.NET Dynamic Data
  • ASP.NET MVC
  • ASP.NET Silverlight controls

Per chi volesse scaricarlo senza passare per il blog di JC, ecco il link: .NET 3.5 Enhancements Training Kit.

Technorati Tags: ,,,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

LINQ to Sql: singolare no grazie. Occhio al nome delle vostre tabelle !

Incredibile. Non posso credere di aver perso ore e ore di debug cercando di risolvere un errore a cui non trovavo una spiegazione logica. Cerco di riassumere.

Sto facendo per un cliente un ASP.NET User Control (un .ascx per intenderci) che contiene una GridView e un LinqDataSource. L'obiettivo è quello di ottenere un controllo per la gestione delle tabelle di look up, riutilizzabile in situazioni diverse, e che non richieda oneri di amministrazione e configurazione troppo elevati. Quando mi è stato chiesto di farlo con tecnologie in RTM (altrimenti avrei usato altri controlli) ho pensato subito che LINQ To Sql potesse soddisfare brillantemente questa richiesta grazie anche all'editor visuale che permette di trascinare le tabelle direttamente sul ORM mapper che si apre creando un file di tipo LINQ to Sql Classes (.dbml).
Come previsto la facilità di creazione del controllo è stata inizialmente rispettata fino a quando non ho iniziato a testare il cambio di DataContext (necessario per soddisfare uno dei requisiti del progetto e cioè la riutilizzabilità del componente). Da quel momento è iniziato un calvario in debug. Ho riscritto il codice almeno una dozzina di volte pensando che fosse dovuto a qualche errata sequenza di impostazioni che stavo eseguendo. Macché, continuavo a ricevere questo errore:

Could not find a property or field called 'Supplier' on the data context type 'NorthwindDataContext' of LinqDataSource 'ldsMain'.

Ma il tipo Supplier esisteva nel NorthwindDataContext e quindi non capivo il perchè dell'eccezione. Sono tornato al precedente DataContext ed ho aggiunto una tabella e di nuovo, ma solo per la tabella nuova, ancora lo stesso errore:

Could not find a property or field called 'ProductModel' on the data context type 'AWLDataContext' of LinqDataSource 'ldsMain'.

Dopo aver cercato in lungo e in largo; in un momento di rara lucidità ho trovato l'arcano. Mi sono ricordato che da qualche parte avevo letto che LINQ To Sql pluralizza il nome delle tabelle. Tra me e me ho pensato ma va, vuoi che sia proprio quello? Io sono un patito della normalizzazione ma mai e poi mai mi sognerei di farlo in modo così subdolo. Ed invece era proprio quello: le tabelle con nome al singolare non generavano un entità utilizzabile a run-time. Mi è bastato plurarizzare il nome delle classi dal designer e tutto ha iniziato a funzionare come atteso. Ecco un esempio della modifica da apportare:

NON FUNZIONA

image

FUNZIONA

image

Non ho parole. O meglio le ho ma non è il caso che le scriva.

Technorati Tags: ,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Launch {Community} Tour

image Come molti di voi già sapranno, questo mese è segnato dal lancio di Microsoft Windows Server 2008, Microsoft SQL Server 2008 e Microsoft Visual Studio 2008. Per chi non potrà essere a Milano durante le due giornate dell'evento di lancio,  potrà contare sul Roadshow che toccherà 6 diverse città italiane tra cui Padova, il 6 marzo. In quella data, dopo le sessioni istituzionali previste per il lancio, noi di XE.NET, grazie alla disponibilità di Microsoft Italia, avremo il piacere di tenervi compagnia con alcune sessioni pratiche sull'utilizzo di alcune delle ultime tecnologie. In un inedito, per il nostro paese, Community After Hour, ci confronteremo analizzando pratici esempi utili durante la nostra normale attività di sviluppatori.

Che dire se non che vi aspettiamo numerosi? Per maggiori informazioni ecco il link all'agenda e alla registrazione dell'evento.

Currently rated 1.0 by 1 people

  • Currently 1/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

ONE-Day Web Development: slide ed esempi su Windows Live ID

Come promesso in questo post trovate il link per scaricare le slide e le applicazioni di esempio utilizzate durante la mia sessione. Gli esempi fanno uso sia del Windows Live ID SDK che dei Windows Live Tools for Visual Studio 2008 (December 2007 CTP). Per poterli utilizzare sono necessari:

  • Visual Studio 2008 o Visual Web Developer 2008 Express Edition
  • SQL Server 2005 Express Edition
  • Windows Live ID SDK (opzionale)
  • Windows Live Tools for Visual Studio 2008

Predisposizione e configurazione degli esempi
Prima di poter eseguire gli esempi è necessario provvedere a:

1. Registrare le applicazioni per l'uso di Windows Live ID andando alla pagina Use Windows Live ID for Your Web Site e autenticandosi con il proprio account di Windows Live.

2. Modificare i file web.config delle due applicazioni presenti nella soluzione inserendo in ognuno le rispettive informazioni (Id applicazione e password segreta) come indicato di seguito:

Applicazione WindowsLiveIDSdk - Copy Code
<appSettings> <add key="wll_appid" value="TuoApplicationID1"/> <add key="wll_secret" value="TuaSecretKey1"/> <add key="wll_securityalgorithm" value="wsignin1.0"/> </appSettings>

Applicazione WindowsLiveTools - Copy Code
<appSettings> <add key="wll_appid" value="TuoApplicationID2"/> <add key="wll_secret" value="TuaSecretKey2"/> </appSettings>

Utente per l'applicazione di esempio WindowsLiveTools
Per poter completare un'associazione tra il vostro Windows Live ID e un utente delle Membership, potrete scegliere se creare un nuovo utente (utilizzando l'ASP.NET Configuration Tool presente nell'ambiente di sviluppo) o se utilizzare l'utente creato per l'esempio le cui credenziali sono:

Username: UtenteDemo
Password: OneDay!
Email: demo@oneday.com
Domanda di sicurezza: Cos'e questa?
Risposta di sicurezza: Un'applicazione di esempio

Link utili
Slide & Demo
Windows Live ID
http://dev.live.com/tools/
Windows Live for Developer

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Parola di evangelist: si può usare anche Localhost con Windows Live ID

Questa sera, durante la definizione degli ultimi preparativi per l'evento di domani, parlavo con Pietro Brambati, Developer Evangelist in Microsoft Italia, relativamente al fatto che non fosse possibile registrare una applicazione per Windows Live ID con url locale del tipo http://localhost/MiaApplicazione in quanto l'url doveva riferirsi ad un'applicazione presente in rete (come si leggeva dalla documentazione). Pietro mi ha guardato un pò sorpreso e poi mi ha detto: "No ti sbagli, io l'ho fatto". Incredulo mi sono fatto mostrare il record di registrazione ed effettivamente puntava ad un indirizzo locale del notebook di Pietro. Mi sono ripromesso di provare non appena fossi arrivato a casa e così ho fatto. Risultato? Pietro ha ragione, funziona alla grande. Non posso che dire grazie Pietro; mi ha salvato da un workaround assurdo che avevo pensato per ovviare ad un problema inesistente.

Tradotto in linguaggio C#:

List<Developer> developers = World.Italy.Communities.Developers.GetAll(); foreach (Developer dev in developers) { if (dev.HasIssues) { Evangelist evangelist = new Evangelist("Pietro Brambati"); foreach (Issue issue in dev.Issues) { ParolaDiEvangelist solution = evangelist.ResolveIssue(issue) as ParolaDiEvangelist; issue.Resolved(solution); } } if (dev.AreAllIssuesResolved) dev.PostInBlog(); }

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

ASP.NET: Drag & Drop, una soluzione comoda

Qualche tempo fa ho lavorato su un progetto in qui mi era stato richiesto di sviluppare una funzionalità particolare in cui l'interazione dell'utente avrebbe trovato, in una soluzione basata sul Drag & Drop, la sua miglior implementazione. I tempi, come spesso accade, era troppo risicati per pensare di scrivere una soluzione da zero e quindi ho optato per la ricerca sul web nella speranza di trovare soluzioni di qualità facilmente adattabili alle esigenze specifiche del mio progetto. Ho passato un pò di tempo ma alla fine la soluzione che ho trovato mi ha permesso di raggiungere un ottimo risultato. In poche parole, se vi trovate nell'esigenza di dover implementare una soluzione su web che supporti il Drag & Drop, valutate la soluzione proposta da Omar AL Zabir in questo suo post: ASP.NET Ajax Extender for multi-column widget drag & drop. Esiste, inoltre, un interessante progetto su Codeplex dal quale è stato creato il portale Dropthings a dimostrazione dei possibili risultati ottenibili con l'implementazione di Omar.

Technorati Tags: ,

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Disco.exe: The HTML document does not contain Web service discovery information.

[Are you looking for an english version? Follow this link:  Cannot generate disco and wsdl file for MOSS custom web service to find it]

Sto continuando il mio lavoro con MOSS 2007 e come sempre la cosa mi fa tribolare. Questa volta però la responsabilità è mia e dipende probabilmente da un pò di stanchezza che mi ha portato ad essere disattento. Ma veniamo al problema.

Per creare un Web Service personalizzato per SharePoint, è necessario eseguire un certo numero di istruzioni come si può evincere da questa guida Walkthrough: Creating a Custom Web Service. Però mentre seguivo e adattavo le istruzioni al mio contesto, sono incappato in un errore che apparentemente non era risolvibile ed in rete non si trovavano soluzioni ma solo una serie di conferme che il problema si poteva riscontrare ma nessuna con la soluzione per risolverlo.

Come certamente saprete se l'avete usata, la direttiva @WebService ha un attributo Class che deve contenere queste informazioni:

  • Class - Fully Qualified Name (FQN) della classe

  • Assembly - FQN dell'Assembly che contiene la classe

  • Version - Versione dell'Assembly, per esempio 1.0.0.0

  • Culture - Cultura per cui è stato realizzato l'Assembly, normalmente neutral

  • Public key token - Token della chiave pubblica

La direttiva dovrebbe apparire tipo questa:

<%@ WebService Language="C#" Class="Knodev.Services.ServicesCore.MossService, Knodev.Services.ServicesCore,Version=1.0.0.0, Culture=neutral, PublicKeyToken=96cd654737929a49" %>

Il mio errore iniziale è stato questo:

<%@ WebService Language="C#" Class="Knodev.Services.ServicesCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=96cd654737929a49" %>

Notate la differenza? Nel secondo pezzo di codice manca il FQN della classe. Dopo aver speso un pò di tempo cercando e leggendo in rete come risolvere il problema evidenziato qui:

Microsoft (R) Web Services Discovery Utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.
ERROR: http://test.knodev.com/MossService.asmx
  - The HTML document does not contain Web service discovery information.

senza trovare una soluzione; ho dovuto solo porre maggiore attenzione alle istruzioni che mi venivano fornite dal MOSS SDK su come si implementa un Web Service personalizzato per SharePoint.

Come potete vedere, qualche volta abbiamo bisogno di una pausa per risolvere problemi così sciocchi.

Technorati tags: , ,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Scott Guthrie: .NET Web Product Roadmap (ASP.NET, Silverlight, IIS7)

Scott Guthrie ha tracciato il percorso con le novità che ci aspettano relativamente allo sviluppo web basato su tecnologia .NET. Leggendo il contenuto del post si trovano conferme alle voci dell'ultimo periodo e alle CTP che qualcuno di noi magari ha già iniziato ad utilizzare. Ecco un breve estratto dal post: .NET Web Product Roadmap (ASP.NET, Silverlight, IIS7).

ASP.NET 3.5 Extensions

Release prevista per il prossimo anno. Tra i contenuti di questa futura release troveremo:

  • ASP.NET MVC
  • ASP.NET AJAX Improvements
  • ASP.NET Dynamic Data Support
  • ASP.NET Silverlight Support
  • ADO.NET Data Services

Per la prossima settimana è prevista la prima preview pubblica di queste estensioni.

Silverlight 2.0

Nuovo nome per l'ormai noto Silverlight 1.1. Il cambiamento nasce dal numero di funzionalità aggiunte che hanno fatto propendere per la definizione riservata alle major release. E' attesa per il prossimo anno ed includerà:

  • WPF UI Framework
  • Rich Controls
  • Rich Networking Support
  • Rich Base Class Library Support
  • Visual Studio 2008 tools update for Silverlight 2.0

Prima beta pubblica prevista per il primo quarto del 2008 con licenza Go-Live.

IIS 7.0

Come ormai noto, ad inizio del prossimo anno sarà rilasciato IIS 7.0 come parte di Windows Server 2008. Rappresenta una major release che aggiorna il web server Microsoft introducendo nuove e migliorate funzionalità per l'architettura dell'estendibilità, della configurazione e dell'amministrazione.

Per continuare ad essere aggiornati sull'argomento non vi resta che seguire il blog di Scott.

Grazie a Marco per il ping sull'argomento.

Technorati tags: ,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5