BlogServiceHost.Create()

WCF & Azure - Il blog di Fabio Cozzolino

Recent Posts

Tags

My

Twitter

Community

Archives

Email Notifications

Social Bar Widget

March 2006 - Posts

Intellisense nel web.config ... soluzione definitiva ;)
Mi riallaccio ad un post di Croghen per mostrare come risolvere il problema in maniera definitiva (è obbligatorio un post a parte Smile <img src=" />).

Croghen mostra come riportare l'intellisense al suo normale funzionamente all'interno del web.config. La causa è un namespace aggiunto in seguito a modifiche fatte dall' ASP.NET WebAdmin. Ma l'ASP.NET WebAdmin non è altro che un'applicazione asp.net che si trova nella cartella del framework: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ASP.NETWebAdminFiles. Curiosando, curiosando ho trovato la soluzione definitiva al problema. Ecco come fare:

1. Andare nella cartella App_Code
2. Editare il file WebAdminPage.cs
3. Trovare il metodo SaveConfig
4. Commentare la riga con config.NamespaceDeclared = true, come in figura



Provate a rieseguire il WebAdmin ed il gioco è fatto!! Big Smile <img src=" />

[update] Errata Corrige: di default l'impostazione è config.NamespaceDeclared = true, è sufficiente impostarla su config.NamespaceDeclared = false per l'impostazione esplicita, o anche commentarla come ho poi fatto io.

[update2] Il workaround è disponibile anche su ladybug. Averlo letto prima ... Wink <img src=" />


SSCLI 2.0
Da un paio di giorni è disponibile per il download la release 2.0 del Shared Source Common Language Infrastructure, anche conosciuto come Rotor, in pratica i sorgenti dell'implementazione della CLI aderente allo standard ECMA.
Vi consiglio di scaricare da qui tutto il pacchetto e di darci una sbirciatina, si scoprono cose davvero interessanti.
Big Smile [:D]

VS2005 Extensions for Workflow Foundation Beta 2.2
Da qualche giorno è disponibile (per la gioia di Mighell Stick out tongue [:P]) il download della beta 2.2 di Workflow Foundation:

download qui


Posted: Mar 23 2006, 03:48 PM by Fabio.Cozzolino | with 2 comment(s)
Filed under:
Launch Tour 2006 - Bari
Mighell mi ha già preceduto Big Smile <img src=" />
Stamattina ero con tutto lo staff di dotnetside al Launch Tour 2006 nella tappa di Bari. Tanta, tanta, tanta, ma veramente tanta gente!!! Sala strapiena e posti in piedi esauriti. Sulle sessioni di Fabio (Zelig) Santini, che ho avuto il piacere di incontrare presso il nostro desk, non c'è proprio nulla da aggiungere, semplicemente ottime Stick out tongue <img src=" />.

E' stata l'occasione per incontrare tanta gente con cui si condivide ogni giorno la "scena" (leggi: blog, forum, ecc...). Tra questi ho finalmente conosciuto Vito Arconzo e Tommaso Caldarola oltre a diverse altre (tante) persone che sono passate dal nostro desk (di cui non ricordo il nome, e me ne scuso Sad <img src=" />) e che spero di reincontrare quanto prima su dotnetside Wink <img src=" />

Se eravate lì, fatevi avanti ...
Personalizzare (e preservare) la classe proxy
Trovo sicuramente molto comodo il tool wsdl.exe per la generazione delle classi proxy di un web services, specialmente quando si devono fare lavori "on the fly". Talvolta, però, può non essere bastare la classe generata, vuoi perchè abbiamo bisogno di impostare i parametri in modo diverso, oppure eseguire validazioni, effettuare trasformazioni, impostare parametri di default, ecc... Cosa fare?

Dal mio punto di vista la via più diretta è quella di sfruttare un semplice quanto importante concetto: l'ereditarietà. Possiamo (e perchè no) ereditare dalla classe proxy e creare una classe derivata che fa tutto quello di cui abbiamo bisogno. Questo approccio permette, inoltre, di preservare le nostre modifiche, consentendoci di rigenerare, ogni qual volta lo vogliamo/dobbiamo, la classe proxy.

Se qualcuno conosce approcci differenti al problema, si faccia avanti Wink [;)]

Atlas March 06 CTP
Come annunciato da Nikhil Kothari sul suo blog Atlas è disponibile per il download la March CTP di Atlas, il nuovo framework messo a disposizione da Microsoft come estensione di ASP.NET 2.0, per lo sviluppo di applicazioni Web dinamiche. Atlas rappresenta in buona sostanza l'evoluzione di DHTML unito alla potenza di Ajax (Asyncronous Javascript And Xml).
Ho parlato di Ajax e Atlas nel mio ultimo articolo pubblicato su ioProgrammo (a proposito: se qualcuno di voi lo ha letto è pregato di riportare i suoi commenti/critiche/suggerimenti direttamente qui, grazie Wink <img src=" />) e devo dire che il modello dichiarativo proposto mi piace veramente un bel po. Appena avrò due minuti di tempo proverò questa nuova versione che, a detta sempre di Nikhil, sembra aver portato diverse ed importanti novità ...

Inoltre sembra che ora il framework Atlas può già essere utilizzato in applicazioni reali (GoLive). Riporto direttamente dal post:

By the way, also just announced here at the MIX, by Bill in his keynote, is that Atlas can now be used in deployed sites… its still a work in progress, but yes, you can use it for real!

Chi sarà mai quel Bill? Boh...Wink <img src=" />
Se non l'avete ancora provato vi consigli di farlo al più presto ...

Ps.: Se volete dare uno sguardo a quello che Atlas può fare, anche se una minima parte, guardate qui
Posted: Mar 20 2006, 10:07 PM by Fabio.Cozzolino | with no comments
Filed under: ,
Installare Windows Vista (beta) su VMware
Dal sito ufficiale di VMware una serie di step "indispensabili" per installare Windows Vista (beta ovviamente). Devo dire che qualche tempo fa avevo provato ad installare Vista su VMware incontrando non pochi problemi. Ovviamente su Virtual PC tutto ok Stick out tongue [:P]

Ci riproverò Wink [;)] ...

fonte: http://weblogs.asp.net/israelio/archive/2006/03/19/440591.aspx
Apple's Multi Touch Screen
Ok. Siamo dotnettiani, ma questo video non potete perdervelo:

http://video.google.com/videoplay?docid=6379146923853181774&q=touch+screen

Lo voglio !!! Lo voglio !!! Lo voglio !!!

(Minority Report docet)


Personalizzare i template di Visual Studio 2005

Sono molto pigro e solo dopo l'ennesima modifica del DOCTYPE di una pagina mi son deciso (finalmente) a modificare il template di Visual Studio 2005. Posto qui come fare, casomai dovesse servire a qualcuno Wink [;)]:

  1. Aprite la cartella %ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates
  2. Trovate quattro sottocartelle: CSharp, JSharp, VisualBasic e Web
  3. Selezionate la cartella Web
  4. Nella sottocartella Web ci sono altre tre cartelle, una per ogni linguaggio: CSharp, JSharp e VisualBasic
  5. Selezionate il linguaggio (es.: CSharp)
  6. Selezionate la lingua (1033 Inglese, 1040 Italiano)
  7. La cartella contiene diversi file zip contenenti a loro volta dei template, divisi per categoria. Aprite il file WebForm.zip e modificate il file WebForm.aspx sostituendo il DOCTYPE con questo: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  8. Replicare la modifica nel file WebForm_cb.aspx, utilizzato per creare la pagina con codice separato (code-behind)
  9. Salvate il template ed aggiornate il file WebForm.zip
  10. Aprite il prompt dei comandi di Visual Studio (o SDK Command Prompt) ed eseguite devenv.exe /Setup che riesegue i comandi finali di setup di visual studio, dove viene ricreata la cartella ItemTemplatesCache partendo da ItemTemplates

Se non volete eseguire il passaggio 9 potete andare direttamente nella cartella ItemTemplatesCache e riprendere gli step dal punto 2. Ovviamente i passi descritti possono essere utilizzati anche per modificare gli altri templates.

Creare/modificare un Project Template di Visual Studio 2005

Al pari dei passi sopra descritti e con lo stesso meccanismo è anche possibile creare propri template modificando quelli esistenti o inserendone di nuovi nella cartella %ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates, se vogliamo farlo manualmente. Altrimenti una fonte più autorevole (MSDN) ci viene in aiuto:

http://msdn2.microsoft.com/en-us/library/ms247120(VS.80).aspx

I feedback sono ben accetti. Big Smile [:D]

Office 2007: Final Look
Jensen Harris sul suo blog rivela l'interfaccia del nuovo Office 2007. Ad un primo impatto, anche se qualche preview diversa l'avevo vista qualche tempo fa, lo stravolgimento delle toolbar sembra essere molto positivo: menu e toolbar sono totalmente integrate e non sono più due differenti accessi con il medesimo scopo. Vedremo l'usabilità sul campo. Big Smile [:D].

Intanto guardate qui Excel:



fonte: http://weblogs.asp.net/pleloup/archive/2006/03/09/439947.aspx
[ASP.NET 2.0 Pulse] Creare properties nel Profile
ASP.NET 2.0 consente una gestione automatica del profilo utente, accessibile attraverso l'uso delle Profile API. Il profilo utente contiene, in buona sostanza, tutte le informazioni riconducibili all'utente correntemente connesso ed utilizzate in tutta l'applicazione web. Il compilatore utilizza la classe ProfileBase come classe base per generare dinamicamente una nuova classe, di default definita DefaultProfile. Questa contiene le proprietà base come, ad esempio, la Profile.Username che memorizza lo username dell'utente corrente. Cosa succede, però, se un giorno nasce l'esigenza di mantenere anche il nome o il cognome dell'utente? Oppure dobbiamo memorizzare eventuali impostazioni come il colore dello sfondo o la grandezza dei caratteri?

L'architettura di ASP.NET consente questa gestione in maniera molto semplice. Editiamo il web.config ed aggiungiamo la sezione <profile> alla <system.web>. Qui inseriamo, sotto il tag <properties>, la collezione delle proprietà che vogliamo vedere aggiunte alla classe profile:

    <profile>
      <properties>
        <add name="Cognome" type="string"></add>
        <add name="Nome" type="string"></add>
        <add name="Email" type="string"></add>
        <add name="BackColor" type="System.Drawing.Color"></add>
      </properties>     
    </profile>

Eseguiamo una build del progetto e proviamo ad utilizzare la classe Profile. Visual Studio .NET ci mostra già nell'intellisense le properties impostate:



Behind the scene
Come avviene tutto ciò? Semplicemente ASP.NET crea una classe ProfileCommon, che eredita da ProfileBase, alla quale vengono aggiunte tramite reflection le properties da noi definite. Nell'immagine, infatti, si può notare come la proprietà BackColor è strongly-typed. In buona sostanza il compilatore genera dinamicamente la classe ProfileCommon così definita:

public class ProfileCommon : System.Web.Profile.ProfileBase {
   
    public virtual string Email {
        get {
            return ((string)(this.GetPropertyValue("Email")));
        }
        set {
            this.SetPropertyValue("Email", value);
        }
    }
   
    // qui le altre proprietà
    // ...
 
    public virtual ProfileCommon GetProfile(string username) {
        return ((ProfileCommon)(ProfileBase.Create(username)));
    }
}

Anche se apparentemente la classe è tipizzata, dietro le quinte viene eseguito un cast tra i valori recuperati come object da GetPropertyValue/SetPropertyValue e il tipo finale. E' importante notare anche l'uso del GetProfile, il metodo che crea il ProfileCommon recuperandone i valori dal database sottostante, di default ASPNETDB.MDF, in cui la classe è serializzata.

Comodo vero?

3..2..1..pronti, via!!
Si parte!!
Oggi inauguro il mio nuovo blog su dotnetside.org il sito del gruppo che qualche settimana fa ha preso forma grazie alla volontà di 6 ragazzi me incluso (anche detti six guys) con la stessa ed identica passione e lo stesso intento: avvicinare .NET al nostro amatissimo Sud Italia.

A rappresentarlo c'è in primis il nostro nome: DotNetSIDe che sta per Dot Net South Italy Developers. DotNetSIDe rappresenta anche un lato di dotNet, quello più tenico o più oscuro (che non è il lato oscuro della forza!!), che vogliamo far emergere e condividere con i soci dello user group. E' opportuno ricordare che, in quanto user group, sono i soci che contribuiscono alla sua crescita, quindi, moltiplicatevi !!! :-)

Ma DotNetSIDe non è solo questo, e lo vedrete !!! ;-)