BlogServiceHost.Create()

WCF & Azure - Il blog di Fabio Cozzolino

Recent Posts

Tags

My

Twitter

Community

Archives

Email Notifications

Social Bar Widget

November 2006 - Posts

TFS Permission Manager is out !!!

Via Rob Caron apprendo dell'esistenza del TFS Permission Manager. Si tratta sostanzialmente di una valida alternativa al TFSAdmin. Chi ha a che fare con TFS si è sicuramente accorto, e come non potrebbe, che le operazioni di gestione della sicurezza, dei permessi, dei gruppi è alquanto noiosa e ripetitiva. Per ogni utente/gruppo bisogna assegnare i relativi permessi sul TFS, SharePoint, Reporting Services, ecc... I tools come TFSAdmin e TFS Permission Manager semplificano notevolmente questa fase. Con TFS PermMgr è possibile:

  • Aggiungere o rimuovere i gruppi di TFS oltre che quelli di Reporting Services e di SharePoint
  • Impostare i permessi sia a livello di server che a livello di progetto
  • Impostare i permessi sulle aree e sul SourceControl
  • Duplicare utenti creandone di nuovi con i permessi già applicati agli utenti iniziali
  • Salvare i permessi degli utenti come template per il successivo riutilizzo

L'ho provato, anche se per pochi minuti, e devo dire che l'ultimo punto è veramente comodo .

Infine, per chi utilizza TFS, consiglio di tenere sempre sott'occhio il blog di Rob Caron perchè è una continua fonte di news, tips, tools e aggiornamenti sull'argomento.

E' possibile scaricare il tool qui ed è stato creato da Leon Langleyben del team SRL Team Istraele.

Posted: Nov 30 2006, 01:24 PM by Fabio.Cozzolino | with no comments
Filed under:
Death by ViewState

Uno dei blog che maggiormente seguo è quello di Tess Ferrandez principalmente incentrato su pratiche di test e di debugging moolto interessanti (e consiglio anche a voi di seguirlo). Questa volta Tess affonta il problema del ViewState, capace spesso di uccidere le performance di ASP.NET a causa di un utilizzo smisurato e quindi controproducente del Garbage Collector. Il post è chiarificativo e dettagliato su cosa accade internamente e propone anche una soluzione. Qual'è? Ma senza dubbio usare il ViewState con parsimonia e soprattutto: "disable viewstate if it is possible". Stick out tongue

A tutti volenterosi ... buona lettura !!!

Ah, quasi dimenticavo. Di ViewState, di come ottimizzarne l'utilizzo, e di molto altro ancora se ne parlerà al Workshop "ASP.Net 2.0 An Overview for ASP Developers - Tecnologie a confronto" del 15 Dicembre, ma questo già lo sapete Smile. Non mancate !!!

Turn off WS-Policy in WCF ...

"Microsoft non supporta gli standard". Quante volte avete sentito questa frase? Parecchie ... e specialmente pronunciata da sviluppatori non-Microsoft (Java?). Ora, lungi da me fare una critica, ma ora che gli standard sono (quasi) tutti supportati, mi trovo di fronte tool "dell'altra parte" che non li supportano. Alcune versioni di Axis (non so essere più preciso, purtroppo), per esempio, non supportano WS-Policy e nella generazione dei relativi proxy client non vogliono neanche vederlo nel wsdl. Dico io, ma almeno ignoralo Stick out tongue !!!

Comunque sia, per questi motivi mi sono trovato nella situazione di dover disabilitare la generazione del WS-Policy. Per farlo è bastato seguire alcuni passi per rimuovere (non disabilitare a monte, purtroppo) dal flusso di output la generazione di WS-Policy.

La soluzione che alla fine ho adottato è composta da un attributo che implementa le interfacce IWsdlExportExtension e IContractBehavior e che posto sull'implementazione del mio servizio mi consentono di intervenire nel flusso di controllo dell'output WSDL.

Dalla prima interfaccia ho a disposizione due metodi: ExportContract e ExportEndpoint. Nel secondo metodo che, come dice il nome, opera a livello di endpoint, ho aggiunto il codice che rimuove dalle extensions il tag wsp:Policy, rimuove il wsp:PolicyReference e infine la dichiarazione del namespace. Questo è il codice utilizzato:

 

1 public void ExportEndpoint(WsdlExporter exporter, WsdlEndpointConversionContext context)
2 {
3 // Recupero l'istanza di ServiceDescription
4 System.Web.Services.Description.ServiceDescription sd = context.WsdlBinding.ServiceDescription;
5
6 // Rimuovo l'estensione WS-Policy
7 XmlElement policy = sd.Extensions.Find("Policy", "http://schemas.xmlsoap.org/ws/2004/09/policy");
8 if (policy != null)
9 {
10 int i = sd.Extensions.IndexOf(policy);
11 context.WsdlBinding.ServiceDescription.Extensions.RemoveAt(i);
12 }
13
14 // Rimuovo il riferimento WS-PolicyReference
15 System.Web.Services.Description.Binding b = sd.Bindings[context.WsdlBinding.Name];
16 XmlElement policyReference = b.Extensions.Find("PolicyReference", "http://schemas.xmlsoap.org/ws/2004/09/policy");
17 if (policyReference != null)
18 {
19 int i = b.Extensions.IndexOf(policyReference);
20 b.Extensions.RemoveAt(i);
21 }
22
23 // Rimuovo la dichiarazione del namespace
24 XmlQualifiedName[] ns = sd.Namespaces.ToArray();
25 ArrayList list = new ArrayList(ns);
26
27 XmlQualifiedName wsp = new XmlQualifiedName("wsp", "http://schemas.xmlsoap.org/ws/2004/09/policy");
28 if (wsp != null)
29 {
30 int i = list.IndexOf(wsp);
31 list.RemoveAt(i);
32
33 ns = (XmlQualifiedName[])list.ToArray(typeof(XmlQualifiedName));
34 sd.Namespaces = new XmlSerializerNamespaces(ns);
35 }
36
37 }
38

Per il nostro scopo non è importante vedere il codice dei restanti metodi. Ora è sufficiente decorare il servizio dal quale vogliamo rimuovere le WS-Policy con l'attributo creato. Per esempio:

 

1 [WsdlController()]
2 public class MyService : IService1
3

Probabilmente, anzi sicuramente, il codice può essere migliorato. Personalmente non ho ancora avuto difficoltà con i vari tool di validazione sul WSDL generato ne tantomeno con l'svcutil nella generazione di un client di prova. Segnalatemi perciò eventuali problemi, osservazioni o dubbi sul codice o sulla metodologia utilizzata.

Un wizard in C#

Questo mese sul numero 109 di ioProgrammo, oltre al libro del presidente e all'ottimo articolo di igor ai quali faccio i miei complimenti, c'è anche il mio articolo che illustra una tecnica per costruire un controllo wizard completamente riutilizzabile in C#.

In breve, l'articolo presenta un progetto che consente di eseguire l'upload di un file utilizzando, appunto, un controllo wizard per gestire la raccolta delle informazioni, la condivisione delle stesse, gli eventi che intercorrono e tutte quelle situazioni che ci portano allo sviluppo di una procedura simile.

Come sempre, critiche, chiarimenti o qualsiasi tipo di osservazione è ben accetta Big Smile

Disponibile WSS 3.0

E' senz'altro una bella notizia. Da qualche giorno è finalmente disponibile per il download Windows Sharepoint Services 3.0. Le novità sono tante: blog, wiki, gantt, ecc...

In tutto questo la brutta notizia è che Team Foundation Server non è compatibile (non ancora) con WSS 3.0. Bisogna aspettare almeno la Sp1. Tranne qualche post sui vari forum, alcuni risalenti alle beta di WSS3, non c'è, o almeno non sono riuscito a trovare, una conferma ufficiale. Spero comunque di riuscire a trovare il tempo per eseguire un test ...

Posted: Nov 16 2006, 02:14 PM by Fabio.Cozzolino | with 1 comment(s)
Filed under:
On the eigth day, God created SOA, then SOA created Rock and Roll

Bellissimo !!! Navigando qua e là (non ricordo più come, sto diventando vecchio Smile), sono arrivato su questa pagina.

Alcuni punti interessanti:

  • SOA is the only thing Chuck Norris can't kill.
  • SOA is not complex. You are just dumb.
  • One person successfully described SOA completely, and immediately died.
  • The first rule of SOA is you do not talk about SOA.
  • SOA can do it in one line.
  • SOA knows what you did last summer, and is disappointed that it wasn't SOA.
  • Dante has a special level in hell for consultants whose resumes do not say SOA.

Stupende ... Big Smile

Posted: Nov 15 2006, 11:57 PM by Fabio.Cozzolino | with 1 comment(s)
Filed under:
Nuovo Workshop targato .netSide

Si ricomincia!! Anzi, non ci siamo mai fermati . E' da poco on-line tutto il materiale sul nuovo Workshop "ASP.Net 2.0 An Overview for ASP Developers - Tecnologie a confronto".

In questo evento Vito e Mario ci parleranno dei problemi più rilevanti che ogni sviluppatore web incontra durante il periodo di migrazione da Classic ASP ad ASP.NET 2.0. Ecco il perchè di "Tecnologie a confronto". Le due tecnologie saranno sviscerate e messe a confronto non per decretare un vincitore, ma per comprendere i problemi e le difficoltà ed affrontarle nel modo più adatto. Ora mi fermo anche perchè non posso svelare altro  ...

Non vi resta che registrarvi ...

WebDevHelper v0.8.4.0

Ne avevo già parlato qui oltre che durante il Workshop "Atlas & Mobile Data Management". Ieri Nikhil Kothari ha rilasciato una nuova release del suo tool WebDevHelper.

Il WebDevHelper è indispensabile per tutti gli sviluppatori web. Consente, infatti, il tracciamento delle richieste che passano dal browser (client) al server, riproponendo le risposte in diverse modalità, tra cui la Partial Rendering.

Una delle feature interessanti della nuova release è quella di poter ispezionare, tramite l'apposito viewer, il contenuto della riposta in formato JSON.

Come detto (e mostrato) è un tool indispensabile !!!

E' anche disponibile una buona documentazione di supporto in formato pdf.

Blue Screen, ovvero "schermata blu"

Andate su questa pagina.

Ovviamente lo scherzo ad un collega è già partito ... non vi sto a raccontare i 5 minuti di panico che ha passato prima di premere F8 per tentare la "modalità provvisoria" Stick out tongue.

Mimmo ... non me ne volere, ma quel pc incustodito mi stava chiamando ... Big Smile

Posted: Nov 10 2006, 01:22 PM by Fabio.Cozzolino | with no comments
Filed under:
Mono 1.2 Released

Rilasciata ieri la versione 1.2 di Mono. E' possibile scaricare la nuova release in versione sorgente, in runtime components + sdk per diversi OS, oltre a virtual machine (per VMware) con SUSE Linux. Le release note sono disponibili qui.

fonte: http://weblogs.asp.net/jgalloway/archive/2006/11/0...

ReportServer, Team Foundation Server, SharePoint e quei redirect incontrollati ...

Team Foundation Server e ReportServer funzionano abbastanza bene. C'è, però, una grossa inefficienza, a mio parere, per quello che riguarda il reindirizzamento dal portale di progetto SharePoint. Mi spiego meglio: il mio portale di progetto è esposto pubblicamente attraverso un URL (es.: http://www.mioportale.com/sites/mioprogetto). I team interni, però, hanno la necessità di accedere *direttamente* al server, indicando quindi un URL del tipo http://server/sites/mioprogetto. Purtroppo questo non è possibile!! Internet Explorer mi restituisce il seguente messaggio di errore:

Network Access Message: The page cannot be displayed

Team Foundation Server memorizza in una chiave di registro (HKLM\Software\Microsoft\VisualStudio\8.0\TeamFoundation\ReportServer) l'URL di base del server di report. Questo URL viene recuperato dalla pagina tfsredirect.aspx che lo utilizza per reindirizzare il browser verso, appunto, il sito di ReportServer. L'unica soluzione che sono riuscito a trovare per risolvere il problema è stata quella di modificare la pagina tfsredirect.aspx.

Per modificare la pagina dovete:

  1. Aprire il percorso C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\LAYOUTS
  2. Aprire il file tfsredirect.aspx con un qualsiasi editor di testo
  3. Aggiungere il seguente codice subito dopo la routine che cerca nelle chiavi di registro:

string s_serverProtocol = "";

s_serverProtocol = Request.ServerVariables["HTTPS"] == "on" ? "https" : "http";
s_reportServerUrl = s_serverProtocol + "://" + Request.ServerVariables["SERVER_NAME"];

Un possibile miglioramento si potrebbe ottenere inserendo nella chiave di registro un valore del tipo: <dynamicServer>. Se la chiave contiene questo valore, la pagina tfsredirect.aspx costruirà l'URL dinamicamente, altrimenti utilizzerà l'URL base "forzato", rispettando il comportamento di default di TFS.

CONTROINDICAZIONI

Ovviamente ci dobbiamo "ricordare" di questa modifica. Questo significa che se installiamo un aggiornamento, dobbiamo riportare le modifiche anche sulla nuova versione di tfsredirect.aspx (se il problema non è stato nel frattempo sistemato).

Posted: Nov 09 2006, 09:40 AM by Fabio.Cozzolino | with no comments
Filed under:
Windows Vista ... is here !!!

Windows Vista è in RTM (Release To Manufacture). Ebbene sì, è stata rilasciata ai partner la versione finale di Windows Vista. La commercializzazione è comunque prevista, come già annunciato, per gennaio.

It's time

The New Day

Da qualche ora è disponibile sul sito Microsoft una pagina dedicata a tutti i tools di sviluppo da affiancare a Visual Studio 2005:

Ready for a New Day

Scaricate gente, scaricate ...

fonte: http://blogs.msdn.com/robcaron/archive/2006/11/07/...

Team System Widgets

Sul sito della Accentient, società di consulenza specializzata su Team System, c'è una pagina con l'elenco di diversi add-ins, add-ons, widgets, ed estensioni varie per Visual Studio 2005 e Team Foundation Server, sia free che a pagamento. Per chi utilizza questi strumenti consiglio di darci un'occhiata, ci sono strumenti che vale la pena provare.

fonte: http://blogs.msdn.com/robcaron/archive/2006/11/03/...

Posted: Nov 07 2006, 09:31 AM by Fabio.Cozzolino | with no comments
Filed under:
.NET Framework 3.0 RTM

Come segnalato da Paolo qui, anche il .NET Framework 3.0 è in RTM. Potete scaricarlo da qui.

Tutti i downloads "collaterali" sono scaricabili da qui:

La news ufficiale: .NET-Framework-3.0-has-been-released_2100_.aspx

More Posts Next page »