Posts
163
Comments
179
Trackbacks
5
gennaio 2007 Blog Posts
ASP.NET Ajax Extension 1.0 RTM: Abilitare i PageMethods

Fin dai tempi di Atlas mi sono preso la briga di inserire, in un paio di progetti, alcune delle funzionalità offerte. In particolar modo UpdatePanel e PageMethods. Sono passato da Atlas, alle varie beta delle ASP.NET Ajax Extension, fino ad arrivare alla RC e alla RTM. Ogni versione ha sempre modificato qualcosina dei PageMethods. Immagininavo però che sostituire l'RC con l'RTM fosse una cosa automatica. Disinstallare la vecchia versione e installare quella nuova. Facendo così, con mio estremo terrore, ho riscontrato che ancora una volta i PageMethods non andavano... L'errore era sempre il classico "PageMethods is not defined".
Fortunatamente la risoluzione del problema è abbastanza semplice. Occorre abilitare esplicitamente i PageMethods nello scriptmanager. Riporto un piccolo esempio:

<asp:ScriptManager ID="scriptmanager1" EnablePageMethods="true" runat="Server" />

Fatto ciò tutto torna a funzionare come prima. Anzi meglio. Non so se sia una modifica introdotta dalla RC o dalla RTM, ma adesso i nostri "PageMethods" possono tornare anche nel codebehind come nelle vecchie versioni. L'importante è che siano shared (statici) e abbiano gli opportuni attributi (System.Web.Script.Services.ScriptMethod, System.Web.Services.WebMethod).

posted @ giovedì 25 gennaio 2007 14:14 | Feedback (2)
Windows Live Writer Code Formatter Plugin

Esistono diversi plugin per Windows Live Writer che consento la formattazione del codice. Andando su CodePlex e facendo una rapida ricerca se ne trovano due e tre, su Google non saprei.
Per quando mi riguarda mi trovo molto bene con il plugin di Steve Dunn che potete scaricare direttamente dal suo blog o anche dalla home page del progetto su CodePlex.

posted @ mercoledì 24 gennaio 2007 15:01 | Feedback (0)
NHibernate: i campi blob

Ok, so che ci sono pareri discordanti sui campi blob e sull'inserimento nel database di file, immagini o quant'altro. Personalmente, venendo dall'esperienza SharePoint, posso dire che non mi dispiacciono troppo e in qualche caso ho utilizzato anche io i campi blob per inseire file o immagini.

Pensando in ottica NHibernate, mi sono chiesto se fossero supportati e se tutto funzionasse come per gli altri campi. Facendo una ricerca veloce ho notato che è possibile utilizzare il tipo "BinaryBlob" nel mapping di una proprietà. Un esempio potrebbe essere il seguente:

<property name="Immagine" type="BinaryBlob" column="Immagine"/>


Per quanto riguarda la mia entità la proprietà Immagine è un array di byte:

Public Property Immagine() As Byte() Get Return _immagine End Get Set(ByVal value As Byte()) _immagine = value End Set End Property


Fatto questo, non serve nessun'altra impostazione, sarà possibile persistere l'entità impostandone anche il campo Immagine.

posted @ mercoledì 24 gennaio 2007 11:48 | Feedback (0)
NHibernate: utilizzare database multipli

E' ufficiale sono entrato nel tunnel. Le prime volte che ho sentito parlare di NHibernate l'ho snobbato senza mezzi termini. Piano piano però ho iniziato a seguire i post e negli ultimi giorni mi sono visto i webcast di  Marco De Sanctis e Giancarlo Sudano (l'ultimo quello di oggi). La loro passione mi ha contagiato e ora eccomi qui a scrivere i miei primi post.

Ma iniziamo con calma. Come forse tutti quelli che si sono affacciati al mondo NHibernate, la prima cosa che mi sono detto è stata quella di provare a verificare se tutte le esigenze (in termini di persistenza) potessero essere soddisfatte da NHibernate. In alcuni casi la necessità di utilizzare più database, per me è fondamentale.
Il metodo che ho trovato mi sembra abbastanza semplice da implementare. La prima cosa da fare è quella di definire i nostri file XML di configurazione. Questi file prenderanno il posto del file app.config o del web.config. Il frammento di codice seguente mostra come definire i nostri file di configurazione:

<?xml version="1.0"?> <configuration> <configSections> <section name="hibernate" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate" /> </configSections> <hibernate xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name="connection.provider"> NHibernate.Connection.DriverConnectionProvider </property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property> <property name="default_schema">dbo</property> <property name="connection.connection_string">CONNECTION_STRING1</property> <property name="show_sql">true</property> <mapping assembly="Alex.TestNH.DomainModel"/> </session-factory> </hibernate> </configuration>


Come si può notare tutte le impostazioni per l'accesso al database sono racchiuse nel tag <session-factory>. L'altra cosa che ho inserito, ma non strettamente necessaria ai fini dell'utilizzo di database multipli, è il mapping dell'assembly fatto direttamente da file di configurazione.

A questo punto è sufficiente caricare i nostri file di configurazione e creare le nostre factory. Nel frammento di codice seguente vengono create due factory utilizzando due file di configurazione:

' Creo la prima factory cfg = New Configuration() cfg.Configure(Application.StartupPath & "\config\db1.xml") factoryDB1 = cfg.BuildSessionFactory() cfg = Nothing ' Creo la seconda factory ' Ricreo l'oggetto configuration per evitare errori di mapping duplicati cfg = New Configuration() cfg.Configure(Application.StartupPath & "\config\db2.xml") factoryDB2 = cfg.BuildSessionFactory() cfg = Nothing


Tutto qui. Adesso possiamo usare le nostre due factory e operare come al solito.
Alla prossima!

posted @ mercoledì 24 gennaio 2007 10:09 | Feedback (2)
Intellisense e NHibernate 1.2.0 Beta 3

Contagiato dalle sessioni di Marco De Santis e Giancarlo Sudano tenute allo scorso WorkShop di DotNetMarche, ho iniziato anche io a dare un'occhiata a NHibernate e a fare le prime prove.
Come forse tutti, ho iniziato con la Quick Start Guide, ma prima ancora ho predisposto Visual Studio 2005 per attivare l'intellisense dell'editor XML per i file di NHibernate. Come spiegato da Mario Duzoni in questo post, l'operazione è abbastanza semplice, si tratta solo di copiare qualche file nell'apposita cartella di Visual Studio.
Se però utilizzate la versione 1.2.0 Beta 3 di NHibernate occorre modificare l'XML dei file di mapping sostituendo xmlns="urn:nhibernate-mapping-2.0" con xmlns="urn:nhibernate-mapping-2.2".
A questo punto l'intellisense funziona in tutta la sua comodità!

posted @ martedì 23 gennaio 2007 10:26 | Feedback (0)
[OT] - Mannaggia la pupazza sono stato taggato!
Clikkare per leggere.
posted @ venerdì 19 gennaio 2007 17:42 | Feedback (1)
Modificato il download della CTP di Visual Studio Orcas

Ieri, scaricando gli ultimi tre file della CTP da questo link, ho notato che il nome dei nuovi file scaricati era leggermente differente da quello che avevano gli altri, scaricati sempre dallo stesso link. Sostanzialmente c'era uno "0" in più nei file nuovi.
Facendo un refresh della pagina ho anche notato che la dimensione dell'ultimo file era stata modificata e non era più di 100 e passa mega. Sostanzialmente quello che è successo è che il download della CTP di Orcas è disponibile in due versioni: macchina virtuale in formato Virtual PC/Virtual Server 2005 oppure auto-estraibile con i file di installazione di Visual Studio.
Precedentemente dal link "principale" venivano scaricati i file dell'auto-estraibile, adesso quelli relativi alla macchina virtuale. A questo punto mi ritrovo con metà file del pacchetto auto-estraibile e metà di quelli relativi alla macchina virtuale.
Mi sa che opto per la macchina virtuale, almeno per questa prima fase di test.

posted @ giovedì 18 gennaio 2007 10:11 | Feedback (0)
[OT] - Parodia iPhone

Avevo appena postato il link alla parodia su YouTube, ma clikkando sul link appare un bel messaggio.
Su virgilio è ancora raggiungibile: Parodia iPhone

posted @ martedì 16 gennaio 2007 16:46 | Feedback (0)
Dotare le proprie applicazioni di Ribbon

Inauguro il mio ritorno a UgiDotNet e il nuovo stile grafico del mio blog, con una segnalazione: girovagando in rete ho notato un controllo (ancora in beta) molto interessante. Si tratta dell'Elegant Ribbon che, come è possibile intuire dal nome, permette di integrare i Ribbon nelle proprie applicazioni. Sebbene sia ancora una beta mi sembra che funzioni egregiamente e mi sembra molto facile da utilizzare.

In attesa di provare i controlli Microsoft mi sembra un'ottima alternativa.

posted @ martedì 16 gennaio 2007 16:17 | Feedback (4)
AJAX Beta 2: problemi nell'installazione

Disinstallando la Beta 1 delle AJAX ASP.NET Extension e installando la Beta 2 potrebbero nascere alcuni problemi. Quelli principali sono due: errore durante la disinstallazione della Beta 1 oppure errore durante l'installazione della Beta 2 che si ostina a trovare la vecchia versione nel sistema.
In entrambi i casi per forzare l'installazione della Beta 2 è sufficiente cancellare la seguente chiave di registro:
HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\B7FDB...
Una volta eseguita la cancellazione l'installazione parte senza nessun problema.

posted @ martedì 16 gennaio 2007 13:53 | Feedback (0)
AJAX Beta 1: evitare il flickering del ModalPopupExtender

Non so se sia un bug temporaneo o una cosa normale, ma inserendo un ModalPopupExtender all'interno di una pagina ASPX ottengo uno spiacevole effetto: caricando la pagina per la prima volta, il pannello che dovrebbe essere visualizzato come PopUp rimane visibile per un attimo causando un effetto di flickering.
Per evitare questo spiacevole side-effect, è possibile usare un semplice trucchetto: basta aggiungere allo stile del pannello l'attributo visibility:hidden e rimuoverlo (da Javascript) poco prima di visualizzare il PopUp!
Attenzione a non utilizzare la proprietà Visible="False" dell'ASP Panel, altrimenti il controllo diventa "inesistente" per Javascript e si ottiene un errore quando si tenta di settarne la visibilità.

posted @ martedì 16 gennaio 2007 13:52 | Feedback (0)
Finalmente il remote debugger!

Devo ammetterlo, con la precedente versione di Visual Studio non sono mai riuscito a far funzionare il remote debugger. Devo dire che non mi ricordo tutte le prove fatte, ma io e miei colleghi abbiamo passato diverso tempo cercando di farlo funzionare su vari server. E dire che sarebbe stato utilissimo per debugger le web part di SharePoint, web service, servizi Windows e quant'altro. Come forse molti altri, abbiamo poi scelto di installare Visual Studio direttamente sui server di test, ma questo non sarebbe mai stato possibile su macchine di produzione.

Oggi finalmente, con la nuova versione di Visual Studio la 2005, sono riuscito a far funzionare il debugger remoto su una macchina Windows 2003 server, il tutto con estrema semplicità.

Procediamo per passi: la prima cosa è installare o comunque attivare il debugger remoto sulla macchina di destinazione. Nel DVD di Visual Studio 2005, sotto la directory VS\Remote Debugger si può trovare l'installer del debugger remoto da lanciare nella macchina di destinazione. Al termine dell'installazione avremo attivo un nuovo servizio, il Visual Studio 2005 Remote Debugger.
E se non volessimo installare nulla sulla macchina remota? (pensiamo ad esempio ad una macchina di produzione). In questo caso possiamo condividere la cartella Path di installazione\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger\x86 sulla macchina in cui abbiamo installato Visual Studio 2005 e lanciare il file msvsmon.exe dalla macchina remota.

In entrambi i casi, quello che ci rimane da fare è collegarci al processo desiderato sulla macchina remota da Visual Studio 2005 e il gioco è fatto! Chiaramente l'applicazione che girerà sulla macchina remota dovrà essere compilata in debug ed avere quindi le opportune informazioni necessarie al debugger. Altra nota particolare: per debuggare applicazioni che girano sotto account diversi da quello dell'utente corrente occorre essere amministratori locali della macchina remota.

posted @ martedì 16 gennaio 2007 13:51 | Feedback (0)
Applicazioni Windows Forms estendibili attraverso Plug-in

Segnalo un webcast molto interessante del mitico Francesco Balena. Il webcast è introduttivo ed ha una durata di 22 minuti, ma da una buona panoramica sul sistema.
Il webcast fa parte della serie Microsoft Visual Studio 2005 in "pillole" e l'elenco completo della serie lo trovate all'indirizzo: http://www.microsoft.com/italy/msdn/risorsemsdn/visualbasic/vs2005_pillole.mspx

posted @ martedì 16 gennaio 2007 13:51 | Feedback (0)
Strano errore nel runtime del Framework 2.0 e sua risoluzione

Nei giorni scorsi sono venuto "a contatto" con uno strano problema del Framework 2.0. L'applicazione incriminata è un servizio Windows che compie alcune operazioni in modo schedulato. Tale applicazione è configurata per essere eseguita con un account utente, amministratore della macchina locale.
In questa situazione l'EventViewer di Windows mostrava due tipologie di errori che si ripetevano costantemente:

  • .NET Runtime 2.0 Error
    EventType clr20r3,MyService.exe ......
  • Faulting application MyService.exe, version 1.0.0.0, faulting module mscorwks.dll, version 2.0.50727.42, fault address 0x002222fc.
Non sapendo l'esatta origine del problema e avendo tale applicazione in produzione da un cliente, ho subito contattato il supporto Microsoft. Sono stato indirizzato a questo KB 913384 e mi è stato inviato l'hotfix che ha corretto il problema.
Chiaramente l'hotfix è consigliato solo nelle situazioni in cui si presenta il problema e va richiesto direttamente al supporto Microsoft.
posted @ martedì 16 gennaio 2007 13:49 | Feedback (0)
Visual Studio 2005: visualizzare il Configuration Manager

Come molti altri prima di me, oggi ho perso una buona mezz'ora nel tentativo di visualizzare il Configuration Manager di Visual Studio 2005.
Fino a che non si ha necessità di utilizzare configurazioni personalizzate, potrebbe non servire il Configuration Manager, ma nel caso servisse, questo post spiega in breve come visualizzarlo.
Da notare che senza il flag "Show advanced build configuration" non è possibile scegliere, dalle impostazioni del progetto, la configurazione e la piattaforma per cui compilare.

posted @ martedì 16 gennaio 2007 13:48 | Feedback (0)
Guide per gli esami 70-541 e 70-542

Mi sembrano ancora "in beta", ma sono disponibili le guide per la preparazione dei seguenti esami:

70-541: Microsoft Windows SharePoint Services 3.0 - Application Development
70-542: Microsoft Office SharePoint Server 2007 - Application Development

posted @ lunedì 15 gennaio 2007 13:43 | Feedback (1)
Rimuove manualmente Office 2007

Se avete installato le versioni beta di Office 2007, vi potrebbe capitare, come è successo a me, di avere dei problemi nella disinstallazione e di non poter quindi installare l'RTM che si accorge della presenza di vecchie versioni e avvisa l'utente che non può procedere con l'installazione.
In questa situazione vi può certamente far comodo l'articolo Microsoft che spiega come rimuovere manualmente Office 2007. Lo potete trovare al seguente indirizzo:

http://support.microsoft.com/kb/928218/en-us

posted @ lunedì 15 gennaio 2007 13:39 | Feedback (0)
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.

La mia foto

Logo MCAD
Logo MCTS