ASP.NET
Lo sapevate che un'immagine può avere un'immagine di
background? La cosa può sembrare assurda ma si rivela di una certa utilità
quando si deve referenziare un'immagine in uno skin di ASP.NET. Avevo già
accennato a questa tecnica in un mio precedente post, riguardo l'utilizzo di un div con immagine di background per
poter spostare l'url di un'immagine nel css o nella skin. Tuttavia il div ha
qualche limitazione dovuta al fatto che non ha una "consistenza solida" che
invece un'immagine ha. Talvolta succede quindi che il div venga schiacciato
oppure che non lo si riesca a linkare (così come è...
Chi avesse provato ad utilizzare le risorse localizzate,
spostandone lo storage nel database come ho spiegato tempo fa, si sarà reso conto che spesso Visual Studio 2005
restituisce un errore di compilazione che in buona sostanza informa che l'IDE
non è in grado di trovare la risorsa specificata.
Questo succede perchè le risorse localizzate vengono caricate
già dall'ide di Visual Studio. In realtà quando inserite un ExpressionBuilder
questo viene immediatamente convertito nel codice relativo ed eseguito, talvolta
anche troppo rapidamente. Ora, nel mio esempio, ma anche in molti altri che
si trovano in rete, il codice dell'ResourceProvider si appoggia alla istanza...
Per conoscenza vi informo che ho postato il workaround al
bug che ho scoperto negli ultimi giorni su Microsoft Feedback Center al seguente
indirizzo:
http://lab.msdn.microsoft.com/ProductFeedback/ViewWorkaround.aspx?FeedbackID=FDBK38510#1
Nel post è presente una sommaria descrizione in inglese che rimanda
all'esempio che ho postato stamattina.
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: ASP.NET 2.0: Il workaround su ladybug
Click here for English Translation
Come promesso ecco il codice di esempio relativo il Workaround del bug segnalato nei giorni scorsi. Innanzitutto occorre dire che, nonostante Microsoft sul Product Feedback Center continui a segnalare che non riesce riprodurre il comportamento, il bug è presente. Il problema probabilmente deriva dal fatto che la formattazione InvariantCulture è sostanzialmente analoga a quella es-US perciò il codice postato va in errore nelle culture diverse ma funziona perfettamente negli U.S.A.
Veniamo ora brevemente a descrivere il metodo utilizzato per aggirare il problema: il concetto si basa sull'utilizzo dell'evento updating della datasource e sull'osservazione che il bug segnalato si...
A proposito del bug che ho segnalato ieri sera, vorrei
rispondere pubblicamente alla domanda che mi ha posto Michele con un commento. In effetti, la prima cosa che ho fatto,
subito dopo aver segnalato il palese errore è stato di rivolgermi al Product
Feedback Center dove ho trovato naturalmente che il bug era già stato segnalato. Ho provveduto così a informare che anche io
ho validato il bug e speriamo che la prossima service pack del framework risolva
la cosa. Per il momento però ho trovato un workaround, che però è parecchio
laborioso. Portate pazienza, preparo un progettino e poi...
Su xe.net è apparso il mio secondo articolo che questa
volta porta con se un componente riutilizzabile da non perdere. Si tratta di un
SiteMapProvider che semplifica enormemente la creazione di provider custom che
attingano i dati della mappa da una qualsiasi sorgente. Nell'esempio allegato
all'articolo oltre al codice di questo StaticSiteMapProvider che risolve i
problemi di concorrenza che affliggono queste implementazioni, anche un semplice
provider alimentato da database SqlServer
Link: Uno StaticSiteMapProvider molto
flessibile
Con l'occasione ho anche postato il secondo screencast dedicato al pattern
singleton
SCREENCAST:
Implementare un Sigleton in C#
per leggere il post originale o inviare un commento visita il...
Continuo sull'argomento
System.Configuration, proponendovi un esempio di come creare una collection di
ConfigurationElement custom. Per capire l'applicazione dell'esempiuo che sto per
introdurre bisogna una ttimo soffermarsi su una particolare tipologia di
elementi di configurazione. Mi riferisco ad esempio al nodo
<providers> all'interno di una sezione di configurazione di
MembershipProvider piuttosto che magari la sezione dedicata
ad httpHandler e httpModules. All'interno di questo tipo di sezioni è
possibile aggiungere elementi, ma anche rimuoverne con le seguenti
sintatti:
<add />
<remove />
<clear />
Nel framework 2.0 questo tipo
di sezioni sono perfettamente definibili da parte dell'utente implementando una
ConfigurationElementCollection. Si tratta in breve di estendere una classe del
framework,...
Se avete provato ad usare i nuovi strumenti per la gestione
della configurazione in .NET 2.0, sicuramente ne sarete rimasti affascinati come
è successo a me, che oramai cerco di usarli ovunque possibile. Vi sarà forse
capitato anche di dover gestire delle configurazioni dinamiche sul tipo di
quelle che adottano i vari provider di ASP.NET. Il MembershipProvider ad esempio
- ma anche tutti gli altri in realtà - tipicamente espongono una serie di
parametri di configurazione che si possono suddividere in parametri "generali",
cioè che si applicano indistintamente a tutti i MembershipProvider e in
parametri "specifici" che invece variano in...
Ho scritto una articoletto su come ottenere dalla
GridView un dato di cui è gelosa custode. Si tratta di VirtualItemCount che chi
ha utilizzato la vecchia DataGrid conosce bene. L'articolo, che esplora mediante
Reflector il meccanismo di paging della GridView è molto interessante anche per
capire le limitazioni del controllo in alcuni casi.
link: ASP.NET 2.0: Ottenere il
VirtualItemCount dalla GridView
per leggere il post originale o inviare un commento visita il seguente indirizzo: ASP.NET 2.0: Ottenere il VirtualItemCount dalla GridView
Ecco un utile plugin per Visual Studio 2003 e 2005. Avete
presente quei generatori di testi "riempitivi" che producono delle stringhe in
latino? Ora ne esiste una versione add-in per l'IDE di casa Microsoft...
Sed sem nibh, posuere in, sollicitudin a, cursus at,
libero.
Ops... lo trovate qui: http://hackingpsp.com/LoremIpsum.aspx
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: Lipsum Add-in per Visual Studio 2005
Ormai sono abituato ad evitare a tutti i costi i popup nelle
applicazioni web. Tuttavia mi rendo conto che c'è ancora qualcuno che non riesce
a farne a meno, a torto o a ragione non mi interessa sapere. Durante la track
web dei CommunityDays sono stato molto incuriosito da una domanda che è venuta
dal pubblico e che recitava più o meno così: "è possibile effettuare il
cross-page postback in un popup impostando il PostBackUrl?". La risposta
naturale è no, ma quest'oggi, per puro diletto ho provato a capire se questo è
proprio vero. In effetti se ragioniamo bene sul...
Mi è capitato di avere la necessità di creare all'interno di
una colonna di gridview del codice javascript il quale potesse in qualche modo
ottenere alcuni dei dati in corso di visualizzazione nella gridview stessa. Ad
esempio, in riferimento alle popup di tipo subModal, di cui vi ho parlato in precedenza mi è stato necessario
comporre dinamicamente l'url da passare alla chiamata Javascript che ne causa la
comparsa.
La gridview, a meno che non abbia preso un abbaglio, non
dispone di una campo che permetta la formattazione di codice lato client, a meno
che non si voglia utilizzare un TemplateField. Inutile...
La discussione in merito all'uso di popup nelle applicazioni
web infiamma sempre gli animi. Personalmente sono dalla parte di chi cerca di
evitarli a tutti i costi perchè il loro utilizzo va contro quello che è il
normale funzionamento di una pagina web. Riconosco però che l'uso di popup,
specialmente in quelle che io definisco "applicazioni web" in contrapposizione
ai "siti web", è spesso necessario per abbreviare la navigazione e migliorare
l'interazione dell'utente.
In questi giorni ho scovato nella rete un libraria javascript,
denominata subModal, che permette di risolvere questo problema con una
eleganza impareggiabile. Si tratta di un tool che è...
Chi come me sviluppa in ambiente web, è abituato a fare uso, talvolta
anche abuso della Cache che il runtime http integra nel framework ASP.NET. Non
tutti sanno però che questa cache, può essere abbastanza facilmente essere usata
anche in applicazioni Windows Forms. In soldoni è sufficiente creare un runtime
http fittizio che supporti adeguatamente la cache e il gioco è fatto.
In realtà si tratta di un trucco abbastanza vecchio e
conosciuto, ma quest'oggi ho finalmente deciso di risolvere con problema in modo
definitivo. Il fatto è che spesso è utile incapsulare il caching
all'interno di classi che poi possono trovare...
Mi sono finalmente deciso ad investire qualche minuto del mio
tempo per farmi una macro che mi aiuti a risparmiare le decine di secondi che di
solito impiego per fare l'attach al processo di aspnet_wp.exe, per debuggare un
website in IIS su XP. Di solito preferisco questo metodo perchè così posso
tenere aperto un browser sulla pagina che sto realizzando e non debbo eseguire
uno stesso path all'interno del sito per arrivarci ogni volta con il webserver
integrato di Visual Studio 2005.
Ecco la macro scritta in puro VB.NET (arrggggggg!!!)
Imports SystemImports EnvDTEImports EnvDTE80Imports System.DiagnosticsImports System.IOPublic Module AspNetMacros Sub AttachASPNET() Dim aspnet As EnvDTE.Process = FindASPWP(_ApplicationObjects.DTE) If Not aspnet Is Nothing Then aspnet.Attach() System.Threading.Thread.Sleep(2000) Else MsgBox("Cannot find aspnet_wp.exe") End If End Sub Public Function FindASPWP(ByRef dte As EnvDTE.DTE) As EnvDTE.Process For Each proc As EnvDTE.Process In dte.Debugger.LocalProcesses If (Path.GetFileName(proc.Name) = "aspnet_wp.exe") Then Return proc End If Next Return Nothing End FunctionEnd Module
Naturalmente potete anche customizzarla per fare
l'attache al processo che desiderate. Spero...
Il nuovo modello di accesso ai dati basato sui
DataSourceControl consente con facilità di fare il binding di controlli
complessi come al GridView, la DetailView e la FormView con una facilità
impensabile. I controlli DataSourceControl hanno un design fortemente
configurabile per adattarsi alle varie esigenze. Ad esempio è possibile con
facilità parametrizzare il risultato della DataSource per mezzo di Parametri che
possono essere passati come argomenti ai metodi Select, Insert, Update e Delete.
I parametri vengono poi tradotti in modo conforme al tipo di DataSourceControl.
Ad esempio nel caso della ObjectDataSource essi divengono parametri del metodo
richiamato durante una operazione di...
I Web User Controls, più spesso conosciuti con il diminutivo di
"ascx" per l'estensione che contraddistingue il loro template, sono sovente
sottovalutati per la loro intrinseca facilità di uso. Questo è un grave errore
in cui si incorre nell'errata supposizione che la loro semplicità sia ottenuta
sacrificando la l'estensibilità tipica dei Custom Web Controls. COn questo breve
esempio vorrei dimostrarvi quanto sto dicendo; Poniamo di creare un semplice
UserControl come segue:
<%@ Control Language="C#" CodeFile="TemplatedUserControl.ascx.cs" Inherits="TemplatedUserControl" %><asp:Table runat="server" ID="tblTris" CellPadding="5" CellSpacing="0" BorderStyle="None"> <asp:TableRow> <asp:TableCell /> <asp:TableCell /> <asp:TableCell /> </asp:TableRow> <asp:TableRow> <asp:TableCell /> <asp:TableCell /> <asp:TableCell /> </asp:TableRow> <asp:TableRow> <asp:TableCell /> <asp:TableCell /> <asp:TableCell /> </asp:TableRow></asp:Table>
Come evidente si tratta di uno UserControl che contiene una
semplice tabella con nove celle, distribuite su tre colonne per tre righe. Ora
andiamo a modificare la classe che implementa...
MaintainScrollPositionOnPostback è un nuovo
attributo della direttiva @Page che definirei senza ombra di dubbio impagabile.
Per comprenderne il significato basta pensare a cosa succede alla pagina quando
invochiamo un postback. Se ad esempio la pagina è molto lunga e scrolliamo
verso il basso nel momento in cui interviene il postback normalmente il browser
torna a posizionare la pagina all'inizio costringendoci ad un "lavoro di
rotella" un po' scomodo. Impostando a true questa
proprietà questo comportamento verrà modificato riportando sempre la pagina
nella posizione in cui si trovava al momento del postback.
Un grazie a Davide Vernole che stamane mi
ha segnalato...
L'accesso alla ViewState nell pagine ASP.NET, ma anche a
Session, Cache ed Application tipicamente soffre della mancanza di type-safety
che costringe a scrivere dei cast ripetuti. Con il breve e semplice metodo
generico qui riportato è possibile semplificare la gestione di questi utili
strumenti
public string MyValue{ get { return GetViewState<string>("MyValue", string.Empty); } set { SetViewState<string>("MyValue", value); }}private T GetViewState<T>(string name, T defaultValue){ if (ViewState[name] == null) SetViewState<T>(name, defaultValue); return (T)ViewState[name];}private void SetViewState<T>(string name, T value){ ViewState[name] = value;}
Il metodo descritto ha il vantaggio di consentire anche la lazy
initialization del valore, così da evitare di avere dei fastidiosi null di
ritorno.
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: ASP.NET 2.0: Un generic per la ViewState
Nel Framework 2.0 sono presenti una serie di controlli che sono
in gradi di sfruttare un nuovo tipo di binding ai dati. Mi riferisco ai
controlli gerarchici, come ad esempio il TreeView, il quale ricevendo una
datasouce che implementi una determinata interfaccia è in grado di visualizzare
dati che non siano delle semplici tabelle. L'implementazione della datasource
gerarchica, richiede la realizzazione di una serie di classi a supporto che a
loro volta si basano su interfacce e classi astratte.
Quest'oggi, nel districarmi in mezzo ad esse ho scoperto mio
malgrado che quello che si trova in MSDN non è tutto oro...
Stamane ho fatto una scoperta che definirei
sconcertante. La semplice lettura della proprietà Controls, in alcuni WebControl
di ASP.NET causa notevoli malfunzionamenti al ciclo di vita della pagina. In
particolare stavo utilizzando il metodo di cui ho parlato in un post precedente, per
cercare dei controlli all'interno della gerarchia della pagina. Questa ricerca,
se eseguita all'interno dell'OnInit, fa si che alcuni controlli non manifestino
più gli eventi tipici. Ad esempio, un LinkButton non notificava più il "Click",
e una FormView non era più in grado di gestire il postback
correttamente.
Dopo una lunga estenuante ricerca, sono riuscito
ad individuare la riga...
Se si prova a dare alle webparts un aspetto un po' più
accattivante rispetto a quello che hanno di default ci si scontra con un piccolo
ma fastidioso bug, riconosciuto da Microsoft come tale. Le webpart,
volenti o nolenti hanno sempre un padding di 5 pixel attorno al contenuto e di 2
pixel attorno al titolo. Tale padding non è impostabile in alcun modo, ma per
stessa ammissione del team di ASP.NET 2.0 è hard-coded all'interno del
framework.
Esistono un paio di workaround suggeriti da Microsoft in ladybug, ma la loro applicazione è del tutto limitata
e difficoltosa. L'unico modo veramente...
Le nuove capacità di Profiling di ASP.NET 2.0 sono una feature
molto apprezzabile anche in considerazione del fatto che sono in grado di
gestire anche i profili anonimi, cioè consentono di persistere le impostazioni
di profilazione anche per gli utenti che ancora non sono autenticati. Questo ad
esempio torna utile nel momento in cui è necessario consentire la selezione
della lingua anche ad un navigatore che non si è ancora registrato. Esiste però
un piccolo problema per capire il quale vi farò un semplice esempio: immaginate
di utilizzare il profilo anonimo appunto per persistere la lingua selezionata in
un portale....
Quest'oggi mi sono scontrato con un problema che pareva di
banale soluzione ma che si è rivelato essere decisamente subdolo. L'obbiettivo
da raggiungere era di caricare le webparts di una pagina dinamicamente da un
database invece che inserirle nel markup come di consueto. A prima vista può
sembrare che il framework offra quanto necessario per compiere questo compito.
Il WebPartManager ad esempio espone il metodo AddWebPart() che sembra fatto
a posta per quello, ma dopo un po' di tentativi si intuisce che c'è qualcosa che
non va.
Il problema non è che il metodo in questione non funzioni, ma
anzi, che funziona...
L'esperienza con le WebParts di questi giorni è stata
l'occasione per scrivere un breve articolo per UgiDotNet che unitamente ad un
utile Tip per aggirare un comportamento che potrebbe sembrare anomalo, descrive
il meccanismo per cui ogni WebControl o UserControl può diventare una
WebPart.
Buona lettura a tutti.
Link: http://www.ugidotnet.org/articles/articles_read.aspx?ID=108
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: ASP.NET 2.0: Impostare a runtime le proprietà di una GenericWebPart
Il web.config di ASP.NET 2.0 si sta rivelando una
vera e propria miniera. Stamane, per puro caso ho scoperto un'altra chicca che
mi accingo a proporvi. Celata, nei meandri del file di configurazione si trova
una nuova sezione tagMapping che consente di sostituire tag all'interno
di un Templated Control quale può essere una pagina, uno usercontrol o un
qualunque controllo che esponga un template.
Per chiarire il concetto provate a pensare di aver
utilizzato un WebControl all'interno di una vostra applicazione. Dopo
che avete effettuato il deploy dell'applicazione in produzione vi
rendete conto che una versione successiva dello stesso controllo utilizzata
nell'applicazione gli darebbe una...
Se create un WebControl e poi decidete di applicare ad esso
l'utilizzo dei temi è necessario avere un particolare accorgimento per le
proprietà che questo espone se debbono contenere un url relativo alla root del
tema.
Ad esempio, se create una proprietà del WebControl, che espone
l'url di una immagine che utilizzate per il rendering (ButtonImageUrl) e poi
impostate questa proprietà nel file .skin vi renderete immediatamente conto che
l'url che viene passato a runtime al WebControl è relativo la root
dell'applicazione e non a quella del tema. Per ottenere la trasformazione
relativa al tema occorre applicare alla property un...
Se provare a creare uno UserControl con ASP.NET 2.0 e poi
tentate di registrarlo nel file di skin e applicando ad esso uno SkinId di
settare alcune proprietà, vi troverete di fronte al seguente errore che ieri mi
ha fatto perdere ben mezza giornata di lavoro:
Error 1 The control type
'ASP.MyControl_ascx' cannot be
themed. C:\DEV\Test\Portal\App_Themes\my_theme\my_theme.skin 42
Per risolvere questo problema occorre applicare un attributo
alla classe che rappresenta lo UserControl in questo modo:
[Themeable(true)]public partial class MyControl : UserControl{}
Chissa poi perchè di default gli UserControl non dovrebbero essere
skinnabili? Ma questo è un altro paio di
maniche...
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo:...
Curiosamente stamane Simone mi ha preceduto di un soffio nel parlarvi di
Url Rewriting. In questi giorni infatti mi sono trovato nella necessità di
soddisfare una particolare esigenza di rewriting che mi ha fatto approfondire
l'argomento e avevo in mente di scrivere questo post da un po'. Preso atto che
la scelta di Simone è ricaduta sull'implementazine di un IHttpModule, è evidente
che il mio post non è una ripetizione perchè in realtà il metodo che ho usato è
basato su una tecnica che nell'articolo di MSDN che Simone ha citato viene
appena sfiorata. Eccomi quindi a proporvi il metodo...
Prosegue con questo post la saga, iniziata quando ho parlato
degli ExpressionBuilders, dedicata alle risorse
tipicamente utilizzate nelle applicazioni ASP.NET per depositare stringhe, e in
genere proprietà da utilizzare nel rendering dell'interfaccia. In quel post
spiegavo come realizzare un ExpressionBuilder che permettesse facilmente dei
leggere le risorse da un database anziche da un più consueto file resx. Esiste
tuttavia un altro metodo, per fare la medesima cosa, che in realtà è quello che
il framework indica come quello corretto. Chi avesse provato a realizzare
l'ExpressionBuilder forse si sarà reso conto che pur funzionando egregiamente
esso ha delle limitazioni fastidiose. Giusto per indicarne una...
Chiunque abbia sviluppto un'applicazione che si appoggia a diversi web-services si sarà trovato nella condizione di avere una moltitudine di proxy generati che fanno capo a diversi oggetti del dominio applicativo. Molto spesso ci si trova nella condizione di avere dei duplicati in questi oggetti che per il fatto stesso di essere classi diverse, pur avendo le medesime proprietà non sono "compatibili". Perciò, ad esempio avendo un webservice che restituisce un Ordine ed un secondo webservice che lo richiede in input non è possibile passare al secondo direttamente l'oggetto restituito dal primo.
Nel framework 2.0 esiste una soluzione a questo...
Chi volesse creare un provider custom per sitemap, non avrà che da implementare i due metodi astratti della classe StaticSiteMapProvider, da cui già eredita la consueta XmlSiteMapProvider. In questo articoletto di Jeff Prosise, in breve viene spiegato come fare, con un piccolo esempio di codice nel quale viene realizzato un SiteMapProvider per Access.
Link: http://msdn.microsoft.com/msdnmag/issues/05/06/WickedCode/
per leggere il post originale o inviare un commento visita il seguente indirizzo: ASP.NET 2.0: Sitemap again
Ecco un paio di simpatici tools per generare Sitemap. La prima (http://odetocode.com/Blogs/scott/archive/2005/11/29/2537.aspx) è una macro che genera il file web.sitemap dalla struttura del sito web ricavata da visual studio. Il secondo (http://weblogs.asp.net/bleroy/archive/2005/12/02/432188.aspx) scandisce la struttura del sito ASP.NET e genera un file xml adatto a Google Sitemaps.
per leggere il post originale o inviare un commento visita il seguente indirizzo: ASP.NET 2.0: Sitemap a go-go
Chi di voi ha mai avuto a che fare con localizzazione e
globalizzazione di applicazioni .NET sa bene come funziona il meccanismo del
fallback delle culture. In soldoni, per chi non lo sapesse si tratta di quel
pricipio per cui se tra le risorse non esiste quella nella cultura che è
richiesta, il framework provvedde a trovarne una il più possibile adatta. Quello
che forse non è chiaro a tutti è che implementando l'expression builder di cui
ho parlato in un post
...
Stamane ho avuto nuovamente problemi con la configurazione del AspNetActiveDirectoryMembershipProvider. Mi sono trovato a spostare l'installazione di ADAM dalla mia macchina locale ad un server 2003 configurato come controller di dominio. L'unica differenza apparente nell'installazione risiede nel fatto che data la presenza di Active Directory la porta su cui girerà ADAM deve essere cambiata e di default verrà messa a 50000. In realtà al termine della configurazione seguendo i passi del mio precedente post mi sono reso conto che l'utility di configurazione di ASP.NET continuava a darmi il seguente errore:
Logon failure: unknown user name or bad password.
Inutile dire che completati...
Torno ancora sull'uso delle risorse in ASP.NET 2.0 perchè ho
scoperto un comportamento che di primo acchito mi ha creato qualche problema. Il
problema derivava dal fatto di aver implementato l'ExpressionBuilder di ho
parlato in un precedente post ed aver inserito le espressioni all'interno di
alcuni Literal nella pagina. Chi avesse provato questo codice si sarà reso conto
che la Culture restituita dal Thread corrente è sempre quella di default del
sistema e che ogni tentativo per modificarla non ha l'esito sperato. In sostanza
quello che accade è che il momento in cui vengono valutate le espressioni nella
pagina è...
Tempo fa, quando ancora il Framework 2.0 era solo in beta avevo accennato all'uso di un nuovo tipo di espressioni per il recupero di risorse. Oggi, la pratica lavorativa di tutti i giorni ha portato alla luce le potenzialità di questo tipo di espressioni che nel gergo del framework si chiamano ExpressionBuilders. La potenza degli ExpressionBuilder è davvero notevole dato che con semplicità è possibile crearne di nuovi per soddisfare le esigenze di ogni progetto.
Poniamo ad esempio di voler estrarre le risorse di una pagina ASP.NET (le stringhe localizzate ad esempio) da una tabella di un database SqlServer anzichè da un...
Se vi dovesse capitare di usare
AuthorizationStoreRoleProvider da ASP.NET 2.0 non avrete alcun problema
a farlo fintanto che la macchina in cui gira l'applicazione è Windows 2003.
Tuttavia tipicamente le applicazioni vengono sviluppate su una macchina Windows
XP quale è di solito quella dello sviluppatore. In questo caso sarà necessario
installare dapprima il Windows Server 2003 Administration Tools Pack dato che
su XP l'AuthorizationManager non è installato. Nell'adminpak,
troverete anche uno script vbs che vi consente di sapere la sua
versione se per caso fosse già installato. Vale la pena di lanciarlo prima di
procedere all'installazione.
Questo però non basta. Infatti...
Chi avesse sperimentato la creazione di pagine ASP.NET con
Visual Studio 2005 si sarà certamente accorto che le classi che implementano
tali pagine vengono create in quello che comunemente va sotto il nome
di "Global Namespace". Questa nuova feature per quanto comoda può alle
volte creare qualche noia se ad esempio nel team le scelte di design richiedono
che le classi siano poste in dei namespace ben definiti. Considerato che
l'aggiungere la dichiarazione del namespace a mano è decisamente scomodo, dato
che poi ci si deve anche assicurare che l'attributo Inherits della direttiva
@Page sia correttamente assegnato è consigliabile predisporre un...
Ieri lavorando con i temi di ASP.NET 2.0 mi sono imbattuto nell'esigenza di impostare una immagine all'interno della pagina mediante il file skin del tema. La cosa di per se banale, ha molte diverse soluzioni. Quella che di primo acchito viene in mente è di usare un controllo impostandone lo SkinId e in seguito referenziarlo nel file della skin. Questo però è un approccio che può andare bene solo se le immagini nella pagina sono decisamente poche, altrimenti il numero di controlli web presenti che il runtime dovrà elaborare aumenta vertiginosamente. Alla fine ho scelto una soluzione,...
"Ci ho buttato quasi una notte intera, e un pezzetto di questo pomeriggio, ma alla fine ne sono uscito vivo". Così comincia l'articolo che ho appena postato a testimonianza delle difficoltà che ho incontrato per completare la configurazione di ADAM, la versione applicativa di Active Directory e il provider per Active directory di ASP.NET. Ho deciso di mettere tutto assieme in un unico articolo perchè nele ricerche in rete non ho trovato una sola fonte che spiegasse la cosa nella sua interezza.
Link: http://blog.boschin.it/articles/aspnetadam.aspx
per leggere il post originale o inviare un commento visita il seguente indirizzo: A tu per tu...
Nel numero di ottobre di Computer Programming sarà pubblicato
il primo articolo di una serie dedicata a ASP.NET 2.0. L'argomento della prima
puntata saranno le Membership API con un esempio di creazione di Custom
Membership Provider e Role Provider. Nei mesi prossimi la serie continuerà
toccando altri argomenti di ASP.NET 2.0 come le MasterPages, i Temi, e i
nuovi WebControls. Curiosamente in questi giorni è uscito un analogo articolo di
Andrea Saltarello, ma per chi non mastica bene l'inglese, oppure, come me,
non ama scervellarsi a tentare di comprendere un testo in tale lingua, il mio
articolo sarà sicuramente gradito.
Buona lettura!
powered by...
Per la gioia di chi si è accorto che il precedente controllo hip soffriva di alcuni problemini fastidiosi, ecco online la nuova release. Essa introduce i seguenti miglioramenti:
Timeout della HIP generata portato da 120 secondi a 600 secondi così anche i commentatori più lenti potranno scrivere con tutto comodo
Generazione di un parola della lingua italiana estratta da un dizionario di 16000 lemmi invece di una combinazione casuale di lettere e numeri per migliorare la mnemonicità della combinazione. In questo modo non è più richiesto lo staccare lo sguardo dalla casella di testo in cui si digita
L'installazione richiede la sostituzione dei seguenti...