PowerShell e editor

Se Microsoft ha in qualche forma viziato gli sviluppatori, quel vizio si chiama Intellisense.

Orma è impensabile pigiare il tasto TAB e non aspettarsi un autocompletamento di quals -- TAB -- iasi tipo.

Continua: http://bitvector.tostring.it/Blog/Post/powershell-e-editor

Rebitting Tags: |

Visual Studio 2011 e tools per Sharepoint 2010

Novita sul supporto di Sharepoint 2010 di Visual Studio 2011: http://bitvector.tostring.it/blog/post/visual-studio-2011-e-tools-per-sharepoint-2010/

Rebitting Tags: | |

Come configurare un’autenticazione claims e forms con un provider LDAP su Sharepoint 2010

Ultimamente ho dovuto configurare una sorgente ldap su Sharepoint 2010 per far sì che il profilo utente fosse disponibile sia in autenticazione form che in windows.

Ovviamente come sorgente LDAP ho usato Active Directory su una macchina Windows 2008 R2.

Una volta configurato il sistema di accesso (vediamo fra poco come), la pagina di login diverrà una solamente, con la possibilità di selezionare come identificarsi:

signin_6209cff5-0cb4-4fca-82be-bc3b5369b7f1

 

PREREQUISITO

E’ necessario che la vostra applicazione sia configurata in Integrated Windows Authentication NTLM e che  sia abilitato l’FBA

 

00089841-82F5-4012-9E93-B37576580D52


Fatto quanto sopra dovremo modificare 3 web.config:

  1. Central Administration
  2. Security Token Service
  3. Web application

 

  1. Apriamo il web.config del Central Administration e aggiungiamo i dati inerenti al provider da usare sotto il tag system.web:
<membership>
<providers>
<add name="LdapMember"
type="Microsoft.Office.Server.Security.LdapMembershipProvider,
Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c"

server="dc.myldapserver.com"
port="389"
useSSL="false"
userDNAttribute="distinguishedName"
userNameAttribute="sAMAccountName"
userContainer="OU=SPUsers,DC=myldapserver,DC=com"
userObjectClass="person"
userFilter="(ObjectClass=person)"
scope="Subtree"
otherRequiredUserAttributes="sn,givenname,cn" />
</providers>
</membership>

<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" >
<providers>
<add name="LdapRole"
type="Microsoft.Office.Server.Security.LdapRoleProvider,
Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c"

server="dc.myldapserver.com"
port="389"
useSSL="false"
groupContainer="OU=SPUsers,DC=sharepoint,DC=com"
groupNameAttribute="cn"
groupNameAlternateSearchAttribute="samAccountName"
groupMemberAttribute="member"
userNameAttribute="sAMAccountName"
dnAttribute="distinguishedName"
groupFilter="(ObjectClass=group)"
userFilter="(ObjectClass=person)"
scope="Subtree" />
</providers>
</roleManager>

sotto il tag <PeoplePickerWildcards>

<clear />
<add key="AspNetSqlMembershipProvider" value="%" />
<add key="LdapMember" value="*"/>
<add key="LdapRole" value="*"/>

adesso ripetiamo la stessa cosa negli altri due web.config

2.  Nel tag system.web del Security Token Service e nella web application riscriviamo nel provider LdapMember e il roleManager inserito sopra

unica differenza, il PeoplePickerWildcards non dovete inserirlo nel Security Token Service ma solamente nella web application (ovviamente come detto prima anche sul Central Administration)

Fatto questo dovrebbe essere tutto funzionante.

Rebitting Tags: |

A lap around Metro UI with WinJS #itwpc11

L’evento di ieri, per la WPC 2011, è stata la dimostrazione che tante persone sono interessate all’uso di javascript, html e css per lo sviluppo della applicazioni future.

Alcuni mi hanno chiesto perchè, altri mi hanno chiesto se bisogna dimenticare wpf.

Personalmente mi domando: perchè devo sviluppare con file xaml, poco intuitivi, quando posso fare la stessa interfaccia grafica (attualmente con qualcosa in meno) in html 5?

Perchè devo usare xaml quando posso usare html 5 e fare delle applicazioni orizzontali per tutti i devices che hanno un browser? (esclusi “elementi particolari”)
Ad oggi ie9 su windows phone 7 è uguale alla versione desktop!!!

L’unica risposta che mi può venire in mente è: perchè ad oggi html 5 non è ancora uno standard.

Ok ma quanto durerà questo “oggi”?

Io preferisco concentrarmi su javascript, html e css; e, ad oggi (!!!), sembra che l’investimento sia corretto.

 

Rebitting Tags: | | |

Devo andare a lavoro potrei arrivare in ritardo…

... ma questa mattina ho cominciato a rifarmi la skin del blog. Il template di default lo odiavo, così un pò di css e un pò di jquery pensavo di rifarmi tutto il blog. Vedremo come andrà :)

Rebitting Tags: |

SPUserCodeV4 impossibile deploiare il vostro progetto su Sharepoint

Ultimamente, durante un deploy, mi è capitato questo errore:

vs2010-deploy-error

dopo una breve ricerca ho trovato come poter risolvere il problema:

andate nel Central Administration -> System Settings -> Manage services on server

sp2010-spusercode-service

fate partire il servizio: Microsoft SharePoint Foundation User Code Service

e il gioco è fatto.

Alla prossima Smile

Rebitting Tags: |

Guida al Managed Metadata Service (Parte 4° user control)

Probabilmente, una volta iniziati ad usare i termini e creata una colonna come abbiamo visto nei post precedenti, si vorranno creare delle web part custom che utilizzano il nostro MMS.

Out-of-the-box Sharepoint mette a disposizione un controllo: TaxonomyWebTaggingControl

Come qualsiasi controllo web può essere inserito nella vostra visual web part o in maniera dichiarativa:

<Taxonomy:TaxonomyWebTaggingControl ID="twtTech" AllowFillIn="false" IsMulti="false" SSPList="{29ff8c4f-37a6-4d42-8cef-f610f0a7c7e9}"
TermSetList="{a22cf1f5-427e-41d7-8af4-7aa4dc47197d}" AnchorId="{ec5ee636-f35c-43bd-92a0-56016a0a127c}" runat="server" />

Oppure lato codice:

SPContext context = SPContext.Current;
SPSite site = context.Site;
TaxonomySession session = new TaxonomySession(site);
TermStore termStore = session.TermStores["MyTermStore"];
Group group = termStore.Groups["MyGroup"];
TermSet productsTermSet = group.TermSets["Products"];
TermSet languagesTermSet = group.TermSets["Languages"];
 
twtTech.SspId.Add(termStore.Id);
twtTech.TermSetId.Add(productsTermSet.Id);
twtTech.TermSetId.Add(languagesTermSet.Id);
twtTech.AllowFillIn = false;
twtTech.IsMulti = false;

Il risultato sarà qualcosa di questo tipo:

03.taxonomywebtaggingcontrol

04.list.tags

carino no? Smile

Rebitting Tags: |

Attivare la Developer Dashboard tramite stsadm

Uno dei modi per più comodi che conosco per attivare la developer dashboard di Sharepoint 2010 è sicuramente tramite stdadm:

stsadm -o setproperty -pn developer-dashboard -pv ondemand

Dopo aver lanciato il comando di cui sopra vedrete, accanto il nome utente del vostro sito sharepoint, questa immagine:

01.icon.dashboard

Una volta cliccato sull’icona trovere, in fondo alla pagina visualizzata, un tabella di risultati come questa:

02.dashboard

Come si può vedere i risultati riguardano i tempi di renderizzazione, di esecuzione delle store procedure, delle web part, servizi etc.

Rebitting Tags:

Guida al Managed Metadata Service (Parte 3° site column)

L’ultimo post si concludeva evidenziando le differenze dei term set locali e globali.

Una volta creata la nostra terminologia (io in questi esempi ne porto una globale) questa può essere utilizzata su una site column.

Personalmente preferisco questo approccio perché (fuori da un contesto demo) è quello più pulito e gestibile.

Vediamo allora come fare; creiamo la colonna:

07.site.column.creation

08.list.column

selezioniamo il term set che useremo:

09.2selection.data

ed adesso è tutto pronto all’uso!!

Se inseriremo la colonna appena creata su una nuova lista e proveremo ad inserire un nuovo item, il risultato sarà il seguente:

10.new.post

Ciao Smile

Rebitting Tags: |

Guida al Managed Metadata Service (Parte 2° configurazione globale e locale)

Nel primo post dedicato a questo argomento abbiamo fatto un primo giro attorno all’MMS per capire le terminologie e cosa potrebbe tornarci utile.

In questo post vedermo come dichiarare a livello globale e a livello locale un set di termini.

Inanzitutto voglio precisare che sia i termini globali che locali sono registrati dall’MMS la differenza sta nell’esposizione e nella configurazione dei termini.

Globale

Per creare un set di termini a livello globale bisogna agire via Central Administration.

I termini creati quì saranno accessibili da tutti i Sites e le Site Collections collegate all’MMS:

01.manage.service.applications02.managed.metadata.service
03.new.group04.new.term.set05.new.terms.set
06.terms07.terms.created

 

Locali

I termini locali possono essere usati solamente nel site collection dove sono stati creati.

Per poter creare dei termini locali basterà aggiungere una colonna managed metadata alla vostra colonna e identificare o creare un nuovo set di termini:

image

Rebitting Tags: |