by Andrea
19 December 2008 14:30
Era da un bel pò di tempo che ci pensavo, e spinto anche da un'offerta del MediaWorld mi sono deciso a farmi un bel regalo di Natale. Ho acquistato una Nikon D60 Double Xoom Kit.
E' la prima reflex che acquisto e quindi altre alle funzionalità ho valutato molto anche il fattore economico, anche perchè ero indeciso tra la D60 e la D90 che hanno una bella differenza di prezzo.
Ho preso subito confidenza con il nuovo giocattolo, e tra manuale d'uso e guide varie ho iniziato a fare un bel pò di foto, che mi rendono prorpio soddisfatto dell'aquisto.
Ora non mi rimane che prepararmi un fotoblog per iniziare a postare i scatti migliori...e mi sa che per questo approffiterò delle vacanze natalizie.
Technorati Tags:
Nikon,
D60
8a9c7465-617f-4505-a52c-f615f4015684|0|.0
Tags:
Tempo libero
by Andrea
19 December 2008 12:16
Nel visualizzare i dati nelle nostre applicazioni, spesso si ha la necessità di visualizzare un numero di informazioni differenti nel caso fossimo in una lista, o in un dettaglio o in edit di un nostro oggetto.
Lavorando con i Dynamic Data, di default la cosa non è possibile, ma con un pò di codice la cosa è fattibile.
Stephen Naughton ha trovato una soluzione davvero brillante, e cioè implementando l'interfaccia IAutoFieldGenrators (che viene utilizzata dalla GridView, e DetailsView per creare in automatico le colonne e/o fields), e creando un attributo da utilizzare nelle classi dei Metadati dove verranno specificate le action per le diverse property.
Il post è il seguente: Dynamic Data - Hiding Columns in selected PageTemplates
by andrea
19 December 2008 10:14
Ogni sera, quando rientro a casa dopo una giornata di lavoro, verifico nella mia cassetta postale la presenza di qualche bolletta da pagare (oppure dell'ultimo numero di MSDN Magazine), ma ogni santa volta mi ritrovo con parecchi volantini pubblicitari (supermercati, profumerie, ...), che ormai hanno raggiunto la dimensione di vere e proprie riviste. Per non contare delle volte che lo stesso volantino viene inserito in più copie, e magari per giorni consecutivi.
Possibile che nessuno dica niente?!
Alla fine, questi volantini fanno tutti la stessa fine...dritti dentro il cestino...ma la cosa che mi da fastidio è che questi sono il 90% della carta che butto.
Ma questo non è spam?
Secondo me, questo è vero e proprio spam cartaceo!!
by Andrea
18 December 2008 15:42
Se avete la necessità di recuperare la action corrente all'interno di un FieldTemplate (o di una pagina dei Dynamic Data), il codice che potete utilizzare è il seguente:
1: RequestContext requestContext = DynamicDataRouteHandler.GetRequestContext(HttpContext.Current);
2: string action = requestContext.RouteData.GetRequiredString("action");
3:
4: if (string.Compare(action, "Details", true) == 0)
5: {
6: ...
7: }
8: else
9: {
10: ...
11: }
Una delle motivazioni in cui può essere utile recuperare tale informazione è nel caso di un FileldTemplate custom nella modalità di sola lettura dei dati, che viene utilizzato sia per la lista che per il dettaglio, e quindi può esserci la necessità di modificare la visualizzazione a seconda della action.
Nel mio caso, ho inserito due panel nel FieldTemplate e con il codice qui riportato ne modifico la visibilità (ovviamente eseguendo il databind dei soli interessati). Un panel contiene una Label con un contatore dei dati (utilizzato nella lista), mentre il secondo panel contiene una ListView che visualizza l'elenco dei figli (utilizzato nel Dettaglio). Questo per visualizzare informazioni recuperate da una relazione molti a molti.
by Andrea
17 December 2008 10:21
BlogEngine ha un captcha invisibile che nel 99% dei casi ha sempre funzionato perfettamente.
In questi giorni però qualche commento di spam è riuscito a passare, e quindi mi sono messo alla ricerca (se esisteva) un'extension che verificasse i commenti utilizzando le Akismet.
L'extension esiste, e la potete trovare qui Akismet Extension Updated for BlogEngine.net 1.4 sviluppata da Justin Etheredge (che ringrazio davvero molto).
Comunque appena avrò un pò di tempo inizierò a sviluppare una nuova versione, aggiungendo l'invio per email dei commenti di spam (cosa che manca all'attuale extension, che annulla solamente l'inserimento).
Technorati Tags:
Akismet,
BlogEngine
by Andrea
16 December 2008 18:17
Può sembrare che il post parli di due argomenti distinti, ma non è così. Infatti il parametro ScaffoldTable e le CustomPage hanno una cosa in comune, e riguarda la visibilità delle tabelle.
Lavorando con i Dynamic Data, avevo la necessità di non visualizzare una mia classe/tabella. Per fare questo, la cosa è veramente semplice:
- Impostare nel Global.asax ScaffoldAllTables = false, in modo essere noi a specificare quali tabelle visualizzare e quali no. (Per default lavoro già con questo parametro impostato a false, perchè le tabelle che di solito visualizzo con i Dynamic Data sono poche, rispetto quelle presenti nel database).
- Creare una partial class della classe del modello di Entity Framework (o di Linq to SQL) e impostare l'attributo ScaffoldTable a false per nascondere, oppure a true per farle visualizzare.
[ScaffoldTable(false)]
public partial class Users
{
}
La cosa divertente (si fa per dire), è che sebbene abbia impostato tale attributo a false, la tabella era comunque visibile.
Ho fatto diverse prove, e poi ho ragionato nel cosa differisse questa classe rispetto a quelle non visibili, e l'unica risposta era...le CustomPage.
Se si imposta nella classe l'attributo ScaffoldTable con valore false, se esistono delle Custom page che le appartengono, la classe sarà (lo stesso) visibile nel nostro sito creato con i Dynamic Data.
Infatti, rinominando la cartella contenente le custom page da Users a _Users (oppure cancellando la cartella) la tabella si è correttamente eliminata dalla visualizzazione.
Non sono d'accordo su questo comportamento, e mi sarei aspettato che l'attributo avesse la priorità, ma c'è anche da dire, che se una persona crea delle custom page è perchè ha l'intezione di vidualizzare quei dati. Ecco quindi dei pro che dei contro per questa scelta.
Il lato negativo di questo aspetto è che uno è costrettto a eliminare eventuali CustomPage che avevo già creato (e customizzato), e che dovrò ripristinare appena quella sezione (quella tabella) dovrà essere visibile all'utente.
Update: Ho inserito la segnalazione su connect per capire se il comportamento è un by design oppure un bug. Ecco il link
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=388504