vendredi 27 juin 2008

Plantage Firefox 3 avec Silverlight

Le nouveau Firefox 3 ne fonctionne pas (ou très mal) avec Silverlight si celui-ci est déjà installé.
Pour résoudre le problème :
  1. Ajout/Suppression de programme
  2. Désinstaller Microsoft Silverlight
  3. Lancer Firefox 3
  4. Aller sur le site de Silverlight ou Channel9
  5. Relancer l'installation de Silverlight

lundi 23 juin 2008

Paramétrages de sites MySite

Pour afficher le détail des utilisateurs dans les sites SharePoint, il existe une grande différence entre Wss et Moss :
  1. WSS gère une liste Sharepoint classique dont on peut configurer les colonnes. Lorsque l'on clique sur un utilisateur, les informations détaillées s'affiche dans la page userdisp.aspx
  2. MOSS intègre la notion de sites personnels ("Mon Site" ou "MySite") et la page userdisp.aspx redirige alors vers la collection de sites personnels qui a été définie dans "Administration de services partagés > Paramètres du site Mon site"
En cas de dysfonctionnement ou tout simplement si l'on souhaite migrer vers une nouvelle collection de sites personnels il faut :
  1. Créer une nouvelle application web
  2. Créer une collection de site dans la nouvelle application en utilisant le modèle "Entreprise" > "Hôte de sites Mon site"
  3. Une fois l'application créée et en allant sur sa page d'accueil, cliquer sur "Définir comme Hôte de sites Mon site" ou aller dans "Administration de services partagés > Paramètres du site Mon site" pour configurer la nouvelle Ur
Quelques liens complémentaires :
  1. Créer un emplacement d’hébergement de sites Mon site
  2. Gérer les emplacements d’hébergement de sites Mon site
  3. Getting Redirection to My Site Profiles to Work
  4. [MOSS 2007] Redirection, userdisp.aspx et MySite

vendredi 20 juin 2008

Les thèmes dans Moss

D'abord quelques liens :

La base :
  1. [MSDN] How to: Customize Themes
  2. [MSDN] Cascading Style Sheets Class Definitions for Windows SharePoint Services
  3. [ASP-PHP] Créer un thème graphique pour WSS V3
Les chti' détails :
  1. CSS Options with Master Pages et sa traduction explicative SharePoint 2007 : Navigateurs Web, Css et Outils pour customiser le look de SharePoint (Partie 2)
  2. SharePoint 2007 Design Tip: Import your CSS for SharePoint Themes
    Très intéressant, puisqu'il permet de vous affranchir de ré appliquer le thème à chaque modification
  3. A theme with the name "ThemeID 1011" and version already exists on the server
    Un autre lien spécifique à un problème rencontré lors de manipulations et tests qui aboutissent à cette l'erreur
Le complément :

De ce que j'ai pu expérimenté, le moyen le plus sur pour réinitialiser complètement un thème est de procéder de la manière suivante :
  1. Ouvrir SharePoint Designer et Supprimer le dossier du thème concerné dans "_themes". Cela supprime la version en cache du thème (ghost)
  2. Faire un iisreset.
    Et d'une manière générale, en faire un à chaque modification du thème dans le dossier C:\Program Files\Fichiers communs\Microsoft Shared\web server extensions\12\TEMPLATE\THEMES
Si l'on a juste besoin de modifier la css, on peut procèder de la manière suivante :
  1. Modifier directement le fichier {votre thème}1011-65001.css depuis SharePoint Designer dans le dossier _theme/votre thème

  2. Répercuter ces modifications dans le fichier "theme.css" du dossier C:\Program Files\Fichiers communs\Microsoft Shared\web server extensions\12\TEMPLATE\THEMES\VOTRE THEME"
La troisième solution étant celle déjà citée SharePoint 2007 Design Tip: Import your CSS for SharePoint Themes pour rendre cela plus flexible

lundi 9 juin 2008

Infos technos

Ci dessous les choses que j'ai retenu ces derniers temps

  1. Managed Extensibility Framework (MEF)
    "fournit aux développeurs un outil d'ajouter facilement à l'extensibilité de leurs applications et avec un impact minimal sur les code" ... comment bien faire des plugins dans nos programmes
  2. Microsoft’s Parallel Computing Platform (PCP)
    Comment optimiser et profiter des architectures multiprocesseurs
  3. Pex: Automated Exploratory Testing for .NET
    Encore dans les labos de Krosoft, cet outil devrait permettre de produire automatiquement les tests unitaires et de suggérer les corrections nécessaires
  4. Windows PowerShell
    Le nouveau Shell de Microsoft qu'il va bien falloir se farcir :)
  5. Velocity
    "Velocity a pour vocation de fournir un cache objet distribué multi-CLR." ... La CLR, dans un cache mondial, disponible partout et qui se nourrit de vos objets (mouhaha)
  6. live.sysinternals.com
    les indispensables accessibles depuis le net (Informations)
  7. Blocking Unwanted Parasites with a Hosts File
    La plus primaire (au sens simple et fiable) des sécurités, comment avoir un fichier Host blindé.

jeudi 5 juin 2008

Génération de la classe d'accès aux données avec SqlMetal

Avec les nouvelles versions Visual Studio 2008 (Express et consorts) arrivent de nouveaux outils permettant de manipuler les données. Si l'on dispose d'une version complète de Visual Studio 2008, on a le Concepteur Objet/Relationnel (Concepteur O/R) permettant de manipuler graphiquement notre mapping.
Mais il existe la solution du "pauvre", lorsque l'on dispose des versions Express, où l'on peut utiliser l'outil en ligne de commande SqlMetal.exe
disponible par défaut dans :
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
Ainsi, avec la base de données exemple Northwind, vous exécuter la commande suivante :
sqlmetal /server:"SERVEUR" /database:northwind /code:"C:\northwind.cs"
le code source d'accès aux données exploitable par Linq est généré.
Ensuite c'est simple :
  1. Création d'une nouveau projet console
  2. Ajout de la référence "System.Data.Linq"
  3. Code source d'une classe Minimale :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Exemple
{
class Program
{
static void Main(string[] args)
{
string cnx = @"Server=SERVEUR;Database=Northwind;Trusted_Connection=yes;";
Northwind db = new Northwind(cnx);
foreach (var client in db.Customers)
{
Console.WriteLine("{0}, {1}, {2}", client.CustomerID, client.CompanyName, client.Orders.Count);
}
Console.ReadLine();
}
}
}

Personnellement je trouve ça génial, mais ça n'engage que moi ;)