2012-05-03

Reporting Services - Toolbox "Report Data"

Parce que je l'oublie tout le temps :)... La toolbox Report Data est accessible depuis le menu "view"...

2012-05-02

Linq to SQL : Impossible de sauvegarder (WHERE 0 = 1 et ChangeConflictException)

Scénario gênant : Vous avez modifié votre modèle de données et votre DBML et depuis, impossible de sauvegarder !
"Row not found or changed." / ChangeConflictException
Le profiler vous montre d'aileurs un pédant "WHERE 0 = 1"...

Dans ce cas :
Recontrôlez votre dbml et votre table : un nvarchar ne serait-il pas devenu varchar ? Les tailles et les facteurs NULL / NOT NULL correspondent-ils bien tous ? Vous en êtes sûr ? ;)

2012-04-04

SharePoint - Value does not fall within the expected range.

Une petite erreur agaçante... Vous avez développé un bout de code qui récupère la valeur d'un champ d'une liste SharePoint.
Bien entendu, le code est sécurisé par la vérification de la présence du champ pour afficher un beau message au responsable du paramétrage :
if (currentListItem.Fields.ContainField(seekedFieldName)) ...

Seulement voilà, tout semble bien se passer, le champ est trouvé mais dès la récupération de la valeur :
currentListItem[seekedFieldName]
ArgumentException : Value does not fall within the expected range.

On peut même chercher à récupérer l'ID du champ, on l'obtient correctement et sans souci mais :
currentListItem[seekedFieldId]
ArgumentException : Value does not fall within the expected range.

Si vous filtrez la récupération de vos SPListItems par une SPView, ne cherchez pas plus loin : SPListItem.Fields.Contains se base sur la SPList, de même que la récupération de l'ID. En revanche, la récupération de la valeur se fait sur ce qui est retourné par la SPView. Ajoutez le champ à la vue de filtrage... Et hop !

2012-03-22

Dev Camp Windows 8 !

Allez-y, à Marseille bien sûr :) !
Bewise vous invite au Tour de France Windows 8 Camp 

2012-03-15

SharePoint - System.Web.UI.WebControls.WebParts vs. Microsoft.SharePoint.WebPartPages

Et encore un article de discussion à ce sujet... ou pas :)

En fait, le problème est simple... Vous avez récupéré du code de WebPart "SharePoint" et :
A. Vous souhaitez le remettre au goût du jour ou en cohérence avec un existant plus "frais".
B. Vous voulez éviter le fameux "Incompatible Web Part markup detected. Use *.dwp Web Part XML instead of *.webpart Web Part XML."
C. Des fonctionnalités offertes par les WebParts ASP.NET vous intéressent mais vous voulez conserver la personnalisation des WebParts SharePoint
D. La réponse D.

Essayez déjà le remplacement de ces termes :
  • BrowsableAttribute par WebBrowsableAttribute
  • FriendlyName par WebDisplayName
  • Description par WebDescription
  • WebPartStorage par Personalizable (Qui devient obligatoire si on souhaite afficher l'élément dans la barre de paramétrage :)
  • Storage par PersonalizationScope
  • ToolPart par EditorPart
  • ToolPart[] par EditorPartCollection
  • GetToolParts() par CreateEditorParts()
  • RenderWebPart() par RenderContents()
  • SaveProperties par SetPersonalizationDirty()
Ca peut aider...

En tout cas, cet article m'a aidé :)

2012-03-08

Mémo - Lire les octets d'un fichier - Read file content as byte[]

Parce qu'on a souvent besoin de le faire et qu'on oublie tout aussi souvent comment le faire :)

byte[] fileContent = File.ReadAllBytes(sourceFilePath);