Blog Stats
  • Posts - 171
  • Articles - 1
  • Comments - 197
  • Trackbacks - 5

 

lunedì 14 marzo 2011

Jquery 1.5 $.ajax and jquery validator issue

La nuova release di jquery, la 1.5, ha portato novità in particolare per quanto riguarda la gestione delle chiamate ajax tramite la funzione $.ajax.

Per queste rimando alla documentazione ufficiale.

Se pero’ utilizzate la 1.5 insieme al plugin di validazione jquery.validate (che per esempio è quella che viene aggiunta di default quando si crea un progetto MVC 3), si verificherà sempre un errore se nella chiamata ajax specificate il dataType = ‘json’.

In pratica tratta la chiamata per “json” come fosse un “jsonp”.
Qui la segnalazione http://bugs.jquery.com/ticket/8118#no1

La soluzione è scaricare l’aggiornamento della jquery.validate da qui:
https://github.com/jzaefferer/jquery-validation/issues/36

del.icio.us Tags: ,

mercoledì 16 febbraio 2011

Change view folder in ASP.NET MVC 3

E’ possibile cambiare la posizione delle proprie view(parziali o no) all’interno di un progetto MVC 3.0 abbastanza semplicemente.

Questo esempio di codice mostra come aggiungere al view engine di Razor una cartella “widget” sotto “View\Shared” dove poter posizionare alcune partial view specifiche:

protected void Application_Start() {   RazorViewEngine viewEngine =
ViewEngines.Engines.OfType<RazorViewEngine>().FirstOrDefault();
string[] partialViewLocationFormats = viewEngine.PartialViewLocationFormats; List<string> newPartialViewLocationFormats = new List<string>(partialViewLocationFormats);
newPartialViewLocationFormats.Add("~/Views/Shared/Widgets/{0}.cshtml"); viewEngine.PartialViewLocationFormats = newPartialViewLocationFormats.ToArray();
... }

 

del.icio.us Tags: ,

venerdì 10 settembre 2010

Anche per me…commenti ri-abilitati

Grazie al post di Nicolo’, anche io ho riabilitato i commenti confidando nell’antispam Akismet.

Stay tuned…

martedì 7 settembre 2010

Sharepoint 2010 features upgrade

Segnalo questo interessante e must-have post di Chris O’Brien riguardante la gestione degli upgrade delle features per Sharepoint 2010.

Oltre al post c’e’ anche un preziosissimo tool su codeplex, sviluppato da lui e descritto nel suo blog, che consente di gestire da interfaccia utente o powersheel l’aggiornamento di una feature.

Quello che mi un po mi ha “amareggiato” è vedere che ad oggi sono solo 59 i download.
Cosa significa questo ? IMHO che sono ancora pochi i dev sharepoint che sviluppano “by feature”, cosa che sempre IMHO dovrebbe essere la regola per qualsiasi tipo di progetto Sharepoint.

del.icio.us Tags: ,

venerdì 6 agosto 2010

Sharepoint 2010 and Office Document Multiple Logon

Utilizzando Sharepoint 2010(ma anche la versione precedente) per gestire documenti, ci può essere segnalato dai nostri clienti un problema di doppia autenticazione richiesta quando si accede, anche in sola lettura, ad un documento per esempio word conservato in una document library.

Questo tipo di comportamente, che è by design, si ha nel caso in cui il client(nel caso del doc sarà il Word) venga considerato “untrusted”.

Segnalo questi due post che spiegano bene il problema e gli eventuali workaround:

Multiple Logon while open office Document from SharePoint

Office: Authentication prompts when opening Microsoft Office documents

Per non avere il problema e fare in modo che l’autenticazione fatta sullo Sharepoint sia sufficiente anche per aprire i documenti è sufficiente autenticarsi sul computer in uso con l’utenza di dominio con la quale si dovrà accedere allo Sharepoint ed essere sicuri di avere la seguente impostazione nei criteri si sicurezza del browser:

image

del.icio.us Tags: ,

[OT]Commenti disabilitati

Solo per comunicare che ho disabilitato la possibilità di lasciare commenti sul mio blog a causa della quantità di spam che continua ad arrivare.

Per qualsiasi cosa, mi trovate alla voce Contatti o tramite Linkedin.

martedì 3 agosto 2010

MVVM Light Toolkit Generic Locator

Per chi sviluppa applicazioni con WPF è ormai consolidato e direi un “must” applicare il MVVM(model view view model) pattern, di cui esistono diversi articoli, post e framework che ne semplificano l’implementazione.

Attualmente sto utilizzando il MVVM Light Toolkit di Galasoft, e per il momento mi sembra un framework realmente leggero e che fornisce le componenti base che servono per poter cominciare seriamente un progetto WPF.

Questo toolkit utilizza una classe che si chiama ViewModelLocator la quale si occupa di creare una istanza statica del ViewModel attraverso il meccanismo di binding sul datacontext della window principale.Per la precisione, riprendo la definizione di questa classe direttamente dal sito:
“Create a new ViewModelLocator, a class that holds and manages references to ViewModels.”

Il locator viene inserito nell’ App.xaml come risorsa:

<Application.Resources>
  <vm:ViewModelLocator x:Key="Locator"  d:IsDataSource="True" />
</Application.Resources>

Nella MainWindow.xaml, la window principale viene assegnato il DataContext attraverso il binding al locator e alla proprieta Main che altro non è che il ViewModel principale:

DataContext="{Binding Main, Source={StaticResource Locator}}"

Tutto questo va bene, ma cosa succede se nella nostra applicazione wpf abbiamo altre Windows, come per esempio potrebbero essere delle maschere di dettaglio per un classico data-entry ?

Volendo mantenere e riutilizzare il sistema impostato da GalaSoft, ogni Window dovrà avere una classe Locator che crea il binding tra la window ed il suo View Model.

La soluzione che ho adottato è stata quella di creare una classe ViewModelLocator generica e di creare per ogni locator una nuova classe derivante da questa, ma con il pregio di non dover scrivere nessuna riga di codice aggiuntiva.

ViewModelLocatorEx:

using System;

namespace ViewModel.Base
{
    
    public class ViewModelLocatorEx<T> where T : ViewModelBase, new()
    {
        private static T _main;

        public ViewModelLocatorEx()
        {           
            CreateMain();
        }

        public static T MainStatic
        {
            get
            {
                if (_main == null)
                {
                    CreateMain();
                }

                return _main;
            }
        }

        [System.Diagnostics.CodeAnalysis.SuppressMessage ("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Justification = "This non-static member is needed for data binding purposes.")]
        public T Main
        {
            get
            {
                return MainStatic;
            }
        }

        public static void ClearMain()
        {
            _main.Cleanup();
            _main = null;
        }

        public static void CreateMain()
        {
            if (_main == null)
            {
                _main = new T();
            }
        }

        public static void Cleanup()
        {
            ClearMain();
        }
    }
}

Ogni window, compresa quella principale, avrà il suo locator cosi definito:

using System;

namespace ViewModel.Locatorsl
{
  
    public class MainViewModelLocator : ViewModelLocatorEx<MainViewModel>
    {
    }

}

Per ultimo dovranno essere dichiarati tutti i locators nell’ app.xaml come visto sopra, quindi per esempio:

<Application.Resources>
        <vm:MainViewModelLocator x:Key="Locator" d:IsDataSource="True" />
        ...
        <vm:OtherViewModelLocator x:Key="Locator2" d:IsDataSource="True" />
        ...
</Application.Resources>

Hope this helps…

del.icio.us Tags: ,,

 

giovedì 24 giugno 2010

Open Sharepoint 2010 site from a console application

Se dovete realizzare delle console application con Visual Studio per aprire e lavorare su siti Sharepoint 2010, potreste avere un errore  a prima vista inspiegabile.

L’errore “the web application http:// could not be found…” è generato da questa semplice riga di codice:

SPSite site = new SPSite(“http://…”)

La soluzione è banale, ma diciamo che il problema è sufficiente a farci perdere tempo prezioso oltre che ad arricchire l’ufficio delle nostre imprecazioni :)

In questo post spiegato per bene il problema e la soluzione.

del.icio.us Tags:

giovedì 10 giugno 2010

Sharepoint 2010 ULS logging

In Sharepoint 2010 è possibile utilizzare le API messe a disposizione per gestire i logs delle proprie customizzazioni(webpart, pages, eventhandlers, etc…) all’interno dello ULS di Sharepoint.

In questo post è spiegato come utilizzare tale API e come creare un custom log:

http://blog.mastykarz.nl/logging-uls-sharepoint-2010/

Inoltre segnalo anche questo log viewer pensato per i logs di Sharepoint, spesso illeggibili e gestibili aprendoli da filesystem:

http://www.jeremytaylor.net/2010/05/03/sharepoint-2010-uls-log-viewer/

Diciamo che l’abbinamento di queste due cose permette di tenere molto meglio sotto controllo le proprie app che girano sotto Sharepoint 2010.

NB. per monitorare performance o tracciare in debugging si può anche usare la Developer Dashboard(http://blogs.technet.com/b/speschka/archive/2009/10/28/using-the-developer-dashboard-in-sharepoint-2010.aspx).

venerdì 4 giugno 2010

Sharepoint 2010 granular backup and restore

Con Sharepoint 2010 è molto più semplice e completa la possibilità di backuppare un sito o parte di esso.

Se pero’ per il backup è facile fare tutto tramite la Central Administration, per il restore non è cosi immediato e bisogna usare i comandi di powershell.

In questo post c’e’ spiegato bene come effettuare backup e restore granulari con Sharepoint 2010.

del.icio.us Tags: ,,

 

 

Copyright © Luca Mauri