Ho fatto e sistemato un danno sul nostro TFS 2010

Ormai è qualche mese che usiamo TFS 2010 e io da poco ho avuto la brillante idea di attivare i test autoamtici su ogni build, con tanto di registrazione degli eventi Intellitrace con un limite di 100Mb per file. Fantastico … … peccato che dopo 500 build il nsotro fantastico DB era diventato di 50Gb e aveva occupato tutto il disco :S

Chiaramente sono corso ai ripari disattivando subito l’Intellitrace su ogni build (in Continuous Integration), estendendo leggermente il disco dati, mettendo il recovery model del DB in simple, facendo un bel backup con successivo shrink del transaction log.

A questo punto il modo più veloce che ho trovato per cancellare questi mega allegati è stato di operare direttamente sul DB della Defaultcollection con il seguente TSQL:

delete from tbl_AttachmentContent where AttachmentId in (SELECT top 10 tbl_Attachment.AttachmentId
FROM   tbl_Attachment     ORDER BY tbl_Attachment.UncompressedLength DESC, tbl_Attachment.AttachmentId)

delete from tbl_Attachment where AttachmentId in (SELECT top 10 tbl_Attachment.AttachmentId
FROM   tbl_Attachment     ORDER BY tbl_Attachment.UncompressedLength DESC, tbl_Attachment.AttachmentId)

Come vedete elimino 10 record alla volta, perchè l’eliminazione porta ad una crescita del transaction log di circa 1Gb e avendo pochissimo spazio a disposizone inizialmente ho fatto 10 allegati alla volta, dopo qualche shrink del DB sono salito a 50.

Adesso il nostro TFS è di nuovo in forma.

Preload Silverlight con precentuale sempre a 0: soluzione

Se durante il caricamento di un’applicazione Silverlight nel preload iniziale la percentuale rimane sempre a 0 ricordatevi di disattivare la compressione dei contenuti dinamici su IIS e vedrete che la percentuale tornerà a funzionare.

Sito 4ward in Silverlight !

Alla fine ce l’ho fatta ! Mi sono messo in testa di ricreare in Silverlight il sito di 4ward e fare un po’ di esprimenti e ci sono riuscito ! Il risultato finale è online:

Mamma mia che potenza Silverlight !!!!! E questo è solo l’inizio sto preparando delle cose spettacolari !!!

Gestionale con VS 2010, TFS 2010, WPF, Silverlight, Prism, WCF Data Service, Entity Framework e WF

E’ da moltissimo tempo che non posto su UgiDotNet e mi dispiace un sacco. Il lavoro mi assorbe al 150% e non ho tempo neanche di respirare :( In realtà di post da fare ne avrei tantissimi visto che nell’ultimo periodo sto portando avanti coi colleghi un gestionale fatto con .NET 4.0 Beta 2 con  VS 2010 e TFS 2010, WPF, Silverlight, Prism, WCF, WCF Data Services, Entity Framework e WF 4.0 ! Con tutte le classi base pronte per la software factory per VS 2010 (appena rilasciano GAX e GAT :-S).

Spero di trovare presto il tempo di scrivere qualche post interessante e condividerlo con tutti !

SP2010 Beta: Term Store Management Tool –> The Managed Metadata Service or Connection is currently not available.

Problema: Sto preparando una demo di Sharepoint 2010 per il Document Management per un cliente e volevo provare la parte relativa alla definizione di Terms, Managed Terms e Managed Keywords.

Tutto pronto, installato, configurato … clicco su Site Actions –> Site Settings –> Site Administration –>Term Store Management e …. booom: “The Managed Metadata Service or Connection is currently not available. The Application Pool or Managed Metadata Web Service may not have been started. Please Contact your Administrator. “. Dopo diverso tempo speso a cancellare servizi e rimetterli nella farm, ho trovato la soluzione.

Soluzione: questa hotfix http://code.msdn.microsoft.com/KB976462/Release/ProjectReleases.aspx?ReleaseId=3571

ALM Day e aperitivo con Brian Keller !!!!

Tanto di cappello a Brian Keller, una presentazione come la sua all’ALM Day di Milano non l’avevo mai vista prima ! Super coinvolgente, utilizzo di DeepZoom, demo live !!!!! La gente in sala era sbalordita. Veniva voglia di comprare VS e TFS 2010 subito :)

La cosa che mi ha sconvolto è stato l’aperitivo dove ho cominciato a parlare con lui delle Software Factories e …

Brian: “Non sono molto sull’argomento, ma c’è una persona del mio team che segue la cosa …..Michael”

Ivan: “Lehman”

Brian: “Sììììì”

Ivan: (dopo un arresto cardiaco :)) “Non ci posso credere ! Il papà di Blueprints che avremo usato in 10 al mondo di cui 2 poveretti in Italia io e il mio collega ! Blueprints, il progetto che è stato chiuso !”

Brian: “Sì sì, proprio lui. Mandami una mail che vi metto in contatto così ne scoprirai il futuro”

Ora sono un uomo felice, i mesi spesi su Blueprints alla fine non saranno buttati via :)

ALM Day Roma – Milano Prism Software Factories

III e IV speech personale:

  • a Roma ero a pezzi, senza voce e col mal di testa, chissà che feedback
  • a Milano ero mooolto più in forma e spero di aver trasmesso la mia passione per la software automation

Fantastica esperienza !

Trasferimento BLOB tramite ADO.NET Data Services

Durante l’utilizzo di ADO.NET Data Services vi capiterà sicuramente di dover salvare imamgini o documenti nel database. Se la loro dimensione è superiorer a 64Kb dovete configurare manualmente i parametri dell’host del servizio.

In giro su internet ci sono moltissimi blog che spiegano come farlo, però c’è una nota importantissima da tenere a mente per evitare di perdere ore e ore (o giorni e giorni) inutilmente.

Un esempio tipico di web.config è il seguente:

   1: <system.serviceModel>
   2:   <services>
   3:     <service 
   4:       name="Bolt.DataService.BoltData">
   5:       <endpoint binding="webHttpBinding" contract="System.Data.Services.IRequestHandler"
   6:         bindingConfiguration="webBinding" >
   7:       </endpoint>
   8:     </service>
   9:   </services>
  10:   <bindings>
  11:     <webHttpBinding>
  12:       <binding name="webBinding" maxBufferSize="152428800" maxReceivedMessageSize="152428800" receiveTimeout="00:10:00">
  13:         <readerQuotas maxStringContentLength="152428800" maxArrayLength="152428800" maxBytesPerRead="4096" />
  14:       </binding>
  15:     </webHttpBinding>
  16:   </bindings>
  17:   <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  18: </system.serviceModel>

la cosa importante è che il name del service (sopra “Bolt.DataService.BoltData”) dev’essere il nome della classe esposta nel .svc con il namespace, altrimenti le modifiche non vengono applicate al servizio e non viene segnalato alcun errore a riguardo.

Primo progetto migrato a VS2010 Beta 2: Perfect !

Wow direi perfetto ! Ho migrato la nostra prima soluzione da VS2008 a VS2010 Beta 2 e considerando che ha 26 progetti tra cui:

  • WPF
  • Silverlight
  • ADO.NET Data Services 1.0
  • Prism Framework

E’ andato al primo colpo ! Ho solo dovuto modificare la security sull’IIS che adesso ha .NET 4.0 come runtime dell’appPool.

Bisogna prestare attenzione ai proxy creati da ADO.NET Data Services 1.5, perchè hanno il model nel namespace generato e quindi lato client bisogna fare alcune modifiche. Vi terrò aggiornati su quest’area che sembra aver subito parecchi miglioramenti.

Stay tuned ;)

Aggiornamento a VS2010 e TFS 2010 Beta 2

Entro fine settimana migreremo il nostro TFS alla versione 2010 Beta 2 e lo stesso discorso vale per i progetti WPF/Silverlight basati sul framework Prism ed ADO.Net Data Services ! Vi terrò aggiornati sui risultati :)