do more with less

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

Windows Live: workaround per usare la Delegated Authentication da localhost

Nei giorni scorsi sono stato impegnato nella preparazione di alcuni webcast sulla piattaforma Windows Live. Predisponendo un esempio per dimostrare le funzionalità della Windows Live ID Delegated Authentication, ho scoperto che non riuscivo a proseguire per il seguente errore:

Allow Access to localhost
There's a problem sharing your information with localhost. Please try again later.
[ Return to Localhost] [Go to Live.com]

Cercando una soluzione, ho scoperto un post di Angus Logan in cui si illustrava un workaround per poter testare questa funzionalità anche da una macchina di sviluppo. Si perchè la Delegated Authentication, come altri servizi della piattaforma Windows Live, richiede un FQDN (Fully Qualified Domain Name). Riassumendo, è necessario creare un Fake Domain per ingannare il servizio di Windows Live. Per farlo si deve modificare il file hosts e istruire il Web site in sviluppo su che url aprirsi invece di localhost.

Ecco i passi da seguire:

  1. Modificare il file C:\Windows\System32\drivers\etc\hosts inserendo un record simile a questo:
    127.0.0.1       webcast.knodev.com
  2. Nelle proprietà del Web Site o della Web Application, impostare la proprietà Start URL con il nome del dominio fake. Per esempio: http://webcast.knodev.com:80980/MiaApplicazione
  3. Abilitare l'applicazione, nell'apposito sito di Windows Live, per poter usare la Delegated Authentication.

Per leggere il post originale seguite questo link: FQDN (Fully Qualified Domain Names) - a few dev environment tips.

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

Heroes Happen Here {Comic Series}

Le iniziative per il lancio delle nuove versioni di Windows Server, SQL Server e Visual Studio non conoscono confini. Quella dei fumetti l'ho trovata veramente divertente soprattutto perché l'eroe del fumetto è il tipico sistemista/sviluppatore, un pò sovrappeso e dalla vita normalissima. Vi ritrovate nel personaggio?

Week1_Day6_Full_3

Come dimostra questa striscia, anche i figli degli IT PRO sanno che è meglio essere un DEVELOPER :)

Ah, quasi dimenticavo, per l'evento di lancio in Italia ci sono alcune iniziative molto interessanti. Ne volete sapere di più? Leggete questo post del nostro MVP Lead: Giro-Link in vista del Lancio :).

Currently rated 1.0 by 2 people

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

Visual Studio 2008 issue: problemi di renderizzazione a design-time, risolto!

Oggi ho ricevuto la notifica con la soluzione al bug che ho inserito su Microsoft Connect relativamente all'errore descritto in questo post: Visual Studio 2008 issue: problemi di renderizzazione a design-time. La soluzione indicata è la seguente:

Hi Knodev, The absence of "ViewRendering.get_Visible()" is a telltale sign that your System.Web.dll framework version is incorrect. This could be the result of an incorrect Windows Update patch. You will need to go to Windows\Microsoft.NET\Framework\v2.0.xxxx, right click on System.Web.dll and theck version number. It should be 2.0.50727.13xx or higher. If it is lower that 1300, you will need to uninstall the 3.5 and 2.0 and reinstall. Thanks! Jeff
You may receive a general "Feedback Item Updated" notification as well, if any other changes were made by Microsoft.
Thank you for using Microsoft Connect!
Regards,
the Microsoft Connect Team

Per visionare tutta l'History del problema potete visitare il seguente link: Visual Studio 2008 Team Suite issue with ASP.NET designer.

Technorati Tags: ,

Currently rated 1.0 by 2 people

  • Currently 1/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

Visual Studio 2008: Internet Explorer 7 e il webserver integrato

In questi giorni ho combattuto con un problema che limitava le capacità di debug, di un'applicazione web, utilizzando il WebServer integrato in Visual Studio 2008. Ho trovato una soluzione ma non sono ancora certo delle cause che hanno portato al malfunzionamento ed al mio successivo workaround. Ecco la descrizione del problema e di come applicare il workaround.

Sistema operativo
Microsoft Windows Vista Business 32bit in inglese

Problema
Lanciando il debug di un'applicazione web da Visual Studio 2008 Team Suite, impostata per utilizzare il web server integrato nell'ambiente di sviluppo, ottenevo il seguente errore: Internet Explorer cannot display the webpage (vedi immagine).

image image

Facendo vari test ho scoperto che:

  • modificando l'url da http://localhost:8088/ in http://127.0.0.1:8088/, la pagina funzionava correttamente e io potevo continuare il debug senza problemi.
  • il problema si presentava anche avviando l'applicazione di configuratione ASP.NET Configuration.
  • utilizzando Firefox il problema non si presentava anche utilizzando l'url http://localhost:8088.

La prima cosa che mi è venuta in mente è stato verificare il file di hosts del mio computer che però ritenevo corretto visto che Firefox eseguiva la risoluzione del nome in ip in modo corretto e che, se usavo IIS, il problema non si presentava anche sotto IE7. Questa convinzione era avvalorata anche dal fatto che, quanto presente nel mio file di hosts, era identica a quella di altri computer in cui il problema non si presentava.

Analizzando le varie possibilità; leggendo un numero spropositato di articoli e post; testando n soluzioni; rompendo le scatole ad amici, evangelist Microsoft, ecc; alla fine ho trovato come risolvere il problema anche se non sono certo che la causa scatenante sia quella che indico qui.

Causa ipotizzata
Presenza del servizio Eset HTTP Server (anche se stoppato) installato con ESET NOD32 Antivirus 3.0.621.0.

Soluzione 1: utente senza diritti amministrativi con Firefox installato
Se non avete diritti amministrativi sul PC che utilizzate ed avete Firefox installato, l'unica soluzione che potete utilizzare per ovviare al problema è impostarle Firefox come browser di default in modo che sia il browser chiamato anche dal webserver integrato in fase di debug. Per farlo utilizzate le opzioni di Firefox per abilitare il controllo del fatto che sia il default browser. Avviate Firefox e quindi confermate la seguente schermata:

image

Soluzione 2: utente con diritti amministrativi e file host con record ::1 localhost
Avviate notepad con diritti amministrativi (Run as administrator). Quindi aprite il file hosts che si trova al seguente indirizzo: C:\Windows\System32\drivers\etc . Il vostro file, salvo che non lo abbiate precedentemente modificato, dovrebba apparire simile a questo:

# Copyright (c) 1993-2006 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost ::1 localhost

Commentate la riga del record ::1 localhost come indicato qui:

# Copyright (c) 1993-2006 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost #::1 localhost

Questo è stato sufficiente, nel mio caso, per risolvere il problema.

Sarò grato a chiunque che riscontrando lo stesso problema o, a parita di configurazione, non riscontrandolo volesse commentare questo post con la sua esperienza diretta in modo da rendere statisticamente più precisa la determinazione della causa che genera il problema qui indicato.

Currently rated 5.0 by 1 people

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

Visual SourceSafe 2005: ora compatibile con Visual Studio 2008

Sono al termine delle operazioni che in questi giorni mi hanno impegnato nella ricostruzione del mio portatile. Mentre spulciavo la lista del software da installare mi sono chiesto: "Visual SourceSafe 2005 e Visual Studio 2008 riusciranno a lavorare assieme?". Prima di trovarmi in difficoltà ho deciso di verificare le informazioni in rete ed ho scoperto che lo sono grazie ad un'update di Visual SourceSafe che è stato rilasciato da qualche settimana. Per chi fosse interessato può trovare maggiori informazioni in questo post di Richard Berg: SourceSafe 2005 Update is available for download!. L'update non si limita a rendere SourceSafe compatile con Visual Studio 2008 ma fissa anche un buon numero di bugs. Ecco in dettaglio cosa è stato sistemato: List of bugs that are fixed in the Visual SourceSafe 2005 Update.

L'aggiornamento è scaricabile a questo link: Visual SourceSafe 2005 Update.

Currently rated 5.0 by 1 people

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

Visual Studio 2008 RTM: per chi non ha una sottoscrizione MSDN, Express o Trial?

In questi giorni ormai tutti sono stati informati dell'uscita di Visual Studio 2008 per chi ha una sottoscrizione MSDN. E gli altri? Nell'attesa del lancio ufficiale, si possono consolare installando una trial di 90 giorni. Ecco i link:

Ah quasi dimenticavo, ci sono sempre le versioni express. Scaricatele da questo link: Visual Studio 2008 Express Developer Center - Download.

Be the first to rate this post

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