Mobile Camp a Venezia

by Andrea 20 October 2014 14:14

Un nuovo evento è entrato all'ultimo nell'agenda di XeDotNet, sto parlando del Mobile Camp che si terrà Martedì 4 Novembre 2014 presso la sede centrale dell'Università Cà Foscari a Venezia.

I Mobile Camp sono eventi gratuiti per approfondire le tue conoscenze nella progettazione di applicazioni per Windows 8.1 e Windows Phone 8.1, con il supporto esclusivo di esperti Microsoft, delle Community e degli altri sviluppatori presenti.

Durante la giornata saranno presentate sessioni teoriche di natura tecnica, riguardanti le ultime novità nel campo mobile, e verranno approfondite le opportunità di business per gli sviluppatori indipendenti, per le aziende e per i partner.

In parallelo alle sessioni gli sviluppatori potranno mettere in pratica le competenze acquisite direttamente sui loro computer, usufruendo di telefoni e tablet per il testing delle proprie app.

L'agenda sarà la seguente:

  • 09:30 - 10:00     Registrazione
  • 10:00 – 17:00     Laboratorio libero
  • 10:00                Il business delle App: guadagnare con lo Store o distribuendole alle aziende
  • 11:00                Universal App e altre novità della piattaforma Windows
  • 12:30                Pranzo
  • 14:15                Multi-Device Hybrid Apps con Visual Studio e Apache Cordova - Andrea Dottor
  • 14:45                Introduzione agli Azure Mobile Services - Daniele Morosinotto
  • I posti sono limitati. Per registrarvi e per ulteriori informazioni:
    https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032598324&Culture=it-IT&community=0

    Tags: , , ,

    Microsoft | Windows Phone | XeDotNet

    XeDotNet Community Meeting: The future of the web

    by Andrea 20 January 2014 14:55

    Venerdì 31 Gennaio terrò assieme a Mauro Servienti il XeDotNet community meeting dal titolo "The future of the web".

    Io sarò a presentarvi la sessione "ASP.NET MVC - tutto quello che avresti voluto sapere" dove parlerò di tutta una serie di funzionalità meno note di ASP.NET MVC, ma che permettono spesso di fare la differenza in quanto a produttività:

    Esistono funzionalità di ASP.NET MVC che non vengono spesso menzionate nei principali tutorial o esempi, ma che possono fare la differenza in molte situazioni. In questa sessione mi voglio concentrare proprio in quelle funzionalità/caratteristiche meno note, e farvi vedere come poter risolvere elegantemente "problematiche" comuni. Localizzazione, customizzazione delle view, EditorTemplate saranno alcuni degli argomenti presi in causa.

    Mauro invece ci delizierà con la sessione "AngularJS: un framework per le Single Page Application":

    L'acronimo SPA (Single Page Application) è sempre più presente nelle nostre specifiche e analisi, soprattutto adesso che HTML5, CSS3 e JavaScript, dopo essere tornati in auge, diventano di giorno in giorno piattaforme sempre più mature. Obiettivo della sessione sarà una panoramica introduttiva su AngularJS, un framework JavaScript per lo sviluppo di Single Page Application, utilizzando come pattern client side una curiosa combinazione tra Model View Controller e Model View ViewModel.

    Vi consiglio di non mancare!
    Per registrarvi: http://www.xedotnet.org/Home/Meeting/20140131

    Tags: , , , ,

    .NET | ASP .NET | XeDotNet

    Conoscere se un Type è di tipo Nullable<T>

    by Andrea 30 September 2013 14:14

    Oggi sono re-incappato nel caso di dover verificare su un tipo T all'interno di una funzione generica fosse di tipo Nullable<> o no.

    Ed ecco una possibile soluzione:

    Type type = typeof(T);
    if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof (Nullable<>))
    {
     
    }

    Fonte MSDN: How to: Identify a Nullable Type (C# Programming Guide)

    Ci sono operazioni che non si fanno tutti i giorni, dove per ritrovare quella riga di codice necessario basterebbe riaprire del vecchio codice, oppure cercare un pò in rete...ma visto che potrebbe essere utile non solo a me, ho deciso di riportarla qui nel blog.
    ;-)

    Tags: ,

    .NET

    MultiHandleSliderExtender in un Templated Control

    by Andrea 05 March 2009 05:18

    Se provate a utilizzare un MultiHandleSliderExtender all'interno di una GridView, o di un Repeater o di un altro Templated Control, vi capiterà con una bella eccezione javascript (null is null or not an object) in quanto non l'extender non riesce a trovare i controlli impostati come MultiHandleSliderTarget.
    Dando un'occhiata al file javascript di questo extender si può notare che il controllo esegue la funzione $get (recupera un elemento all'interno della pagina) usando come parametro l'id inserito, ma che nel caso di inserimento in un Templated Control, questo sarà differente dall'effettivo id utilizzato nella pagina (ClientID), sollevando quindi l'eccezione.

    Per risolvere questo è sufficiente gestire l'evento RowDataBound (nel caso della GridView) e sostituire in ogni MultiHandleSliderTarget l'id dei controlli con i rispetti ClientID.

    Ecco il codice necessario:

       1: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
       2: {
       3:     if (e.Row.RowType == DataControlRowType.DataRow)
       4:     {
       5:         MultiHandleSliderExtender slider = e.Row.FindControl("multiHandleSliderExtenderTwo") as MultiHandleSliderExtender;
       6:         foreach (MultiHandleSliderTarget target in slider.MultiHandleSliderTargets)
       7:             target.ControlID = e.Row.FindControl(target.ControlID).ClientID; 
       8:     }
       9: }

    Tags: , , , ,

    .NET | ASP .NET | ASP.NET AJAX

    Dynamic Data - Nascondere colonne in determinate action

    by Andrea 19 December 2008 03: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

    Tags: , , ,

    ASP .NET

    Dynamic Data - recuperare la action corrente

    by Andrea 18 December 2008 06: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.

    Tags: , ,

    ASP .NET

    Akismet Extension per BlogEngine.net

    by Andrea 17 December 2008 01: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: ,

    Tags: ,

    ASP .NET | Generale | Sito

    Dynamic Data - ScaffoldTable a false e CustomPages

    by Andrea 16 December 2008 09: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

    Tags: , ,

    ASP .NET

    Usare uno UserControl come Page Templates per i Dynamic Data

    by Andrea 26 November 2008 00:04

    Leggo oggi nel ble di David Ebbo della possibilità di associare uno UserControl come Page Template, e il tutto sia con l'utilizzo del routing, ma anche senza.

    Il post è il seguente: Using User Controls as Page Templates in Dynamic Data

    Non ho ancora provato la cosa, ma sicuramente a breve farò qualche test per capirne meglio i vantaggi. L'unico che vedo al momento è la possibilità di riutilizzare degli usercontrol esistenti eseguendo delle modifiche minime.

    Technorati Tags: ,

    Tags: , ,

    ASP .NET

    Dynamic Data e Field Template per relazione Molti a Molti

    by Andrea 17 November 2008 01:39

    Chi di voi ha iniziato a utilizzare i Dynamic Data con l’Entity Framework si sarà accorto della difficolta (o impossibilità) di editare le relazioni molti a molti delle proprie classi.

    Un post di David Ebbo ci viene in soccorso proponendoci la creazione di un Field Template in grado di renderizzare una lista di CheckBox per visualizzare ed editare queste informazioni.
    Il post è il seguente: A ‘Many To Many’ field template for Dynamic Data

    Nello zip che potrete scaricare sono contenuti 2 Field Template, uno per la lettura e uno per l’edit delle relazioni (questi controlli saranno inseriti nella prossima versione dei Dynamic Data).ManyToMany_read ManyToMany_Edit

    Tags: , ,

    ASP .NET