Skip to main content

Le blog de Michael Schouveller

Go Search
Home
  

 Image Web Part

Schouveller Michael
SharePoint Spin Wheel
Evitez que l'utilisateur impatient ne clique partout lorsqu'une tâche plus ou moins gourmante en terme de temps est exécutée.
Pour cela vous pouvez afficher le "Spin Wheel" de SharePoint en implémentant la classe SPLongOperation comme suit:
 
using (SPLongOperation operation = new SPLongOperation(this.Page))

{

        operation.LeadingHTML = "SomeText";

        operation.TrailingHTML = "SomeOtherText";

        operation.Begin();

                

        // rest of the code . . .

               

        operation.End(redirectUrl);

}

 

Vous pouvez personnaliser l'affichage en modifiant les propriétés LeadingHTML et TrailingHTML
IE7 Quick Tabs
Si comme moi vous avez la facheuse tendance à ouvrir énormément de nouveaux onglets lorsque vous naviguer avec Internet Explorer 7, le quick tabs est la solution qui vous permettra de retrouver vos petits beaucoup plus facilement.
 
Pour cela utlisisez le raccourci CTRL + Q, cela vous donnera une vue des différents onglets ouverts sous forme de vignettes.
 
Voici ce que cela donne
 
Quick Tabs
Attacher le process w3wp.exe en un click
Voici un bout de code qui permet d'attacher le process w3wp en un click, il suffit de créer une macro dans visual studio et de l'ajouter à une toolbar
 

Public Module AttachModule
    Sub AttachToW3WP()
        Try
            Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
            Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
            Dim dbgeng(3) As EnvDTE80.Engine
            dbgeng(0) = trans.Engines.Item("T-SQL")
            dbgeng(1) = trans.Engines.Item("T-SQL")
            dbgeng(2) = trans.Engines.Item("Managed")
            Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, "ServerName").Item("w3wp.exe")
            proc2.Attach2(dbgeng)        
        Catch
ex As System.Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Module

Clone d'objet
Pour cloner un objet, il suffit d'implémenter l'interface ICloneable et sa méthode Clone ().
Il est possible de cloner de manière partielle (shallow clone) ou de manière complète (deep clone).
Dans un Shallow clone, seuls les objets de niveau suppérieur sont clonés, les autres contiennent des références. Pour cela utiliser la méthode MemberwiseClone()
Pour la méthode deep clone il vous faudra implémenter vous même IDisposable
 
Pour la méthode Shallow, voici une petit exemple très basique

public class Person : ICloneable
{
    private string _firstName = "";
   
private string _surName = "";
   
private int? _age = null;

    public
Person() { }
    
   
public Person(string surName, string firstName, int? age)
    {
        _firstName = firstName;
        _surName = surName;
        _age = age;
    }

    public string FirstName
    {
       
get { return _firstName; }
       
set { _firstName = value; }
    }

    public string SurName
    {
       
get { return _surName; }
       
set { _surName = value; }
    }

    public int? Age
    {
       
get { return _age == null ? 0 : _age; }
       
set { _age = value; }
    }

    public Object Clone()
    {
       
return this.MemberwiseClone();
    }
}

 

un exemple d'exécution:

Person p1 = new Person("Schouveller", "Michael", 28);
Person p2 = null;
Person p3 = null;

Console.WriteLine("P1: Firstname = {0} Surname = {1} Age = {2}", p1.FirstName, p1.SurName, p1.Age.ToString());

p2 = p1;
p2.Age = 33;
p3 = (
Person)p1.Clone();
p3.Age = 50;

Console.WriteLine("P1: Firstname = {0} Surname = {1} Age = {2}", p1.FirstName, p1.SurName, p1.Age.ToString());
Console.WriteLine("P2: Firstname = {0} Surname = {1} Age = {2}", p2.FirstName, p2.SurName, p2.Age.ToString());
Console.WriteLine("P1: Firstname = {0} Surname = {1} Age = {2}", p1.FirstName, p1.SurName, p1.Age.ToString());
Console.WriteLine("P3: Firstname = {0} Surname = {1} Age = {2}", p3.FirstName, p3.SurName, p3.Age.ToString());

 

Le résultat donne ceci

P1: Firstname = Michael Surname = Schouveller Age = 28
P1: Firstname = Michael Surname = Schouveller Age = 33
P2: Firstname = Michael Surname = Schouveller Age = 33

P1: Firstname = Michael Surname = Schouveller Age = 33
P3: Firstname = Michael Surname = Schouveller Age = 50

Notez que l'age du 3ème P1 vaut toujours 33 et que celui de P3 vaut lui 50.
P3 et P1 n'ont donc plus la même référence

Advanced Text Editor component
FCKEditor est un composant web très sympa qui vous permet d'utiliser les fonctions avancées disponibles dans les richtextbox (comme c'est également le cas dans Word ...)
 
Il existe des versions compatibles pour: ASP, ASP.Net, PHP, JAVA, ...
 
Voici ce que cela donne
 
FCKEditor HTML Component
 
Vous pouvez le trouver ici
Gérer les extensions de fichier bloquées par SharePoint de manière programmatique
SharePoint bloque par défaut un certain nombre d'extensions de fichier (86 extensions je pense) telles que .exe, .bat, ...
Cela peut être géré ici:
Central d'administration page > Security configuration > Manage blocked file types.
 
Vous pouvez également très facilement gérer cela de manière programmatique en récupérant une Collection de string sur votre object SPWebApplication comme ceci

SPWebApplication myWebApp = SPWebApplication.Lookup(myUri);
Collection<string> blockFileTypes = myWebApp.BlockedFileExtensions;
 
Une fois les extensions récupérées vous pouvez ajouter/supprimer/modifier ... celles-ci comme ceci:

blockFileTypes.Add(myBlockFileType);
 
puis il suffit de mettre à jour votre objet SPWebApplication

myWebApp.Update();
Une manière très simple de permettre à certains utilisateurs de gérer ces extensions sans pour autant devoir accéder à la central d'admin !!!
Arretez de chercher après les classes CSS
Voici un script qui affiche au MouseOver le nom des classes CSS utilisées par SharePoint
 
<script language="jscript">
function ClassInfo()
{
    if (window.event.srcElement.className != null)
    {
        stsclass.innerText = window.event.srcElement.className;
    }
    else
    {
        stsclass.innerText = "";
    }
}
 
window.document.body.onmouseover = ClassInfo;</script>
 
<div style="border-style:solid;border-width:1px; width: 281px; height: 34px;
position: absolute; left: 286px; top: 41px; z-index:15; padding-left:4px;
padding-right:4px; padding-top:2px; padding-bottom:2px; background-color:#EEEEF4">
<p id="stsclasstitle"><font face="Tahoma" id="stsclasstitle">Classname: </font>
<font face="Tahoma"id="stsclass">&#xa0;</font>
</p></div>
 
Vous trouverez comment l'utiliser ici ou encore ajouter une Content Editor WebPart et coller ce script dans le Source Editor de cette WebPart
 
Vous trouverez également ici un tableau des différents CSS utilisé par SharePoint et leur signification
SharePoint Solution Generator
SharePoint Solution Generator est une petite application faisant partie de Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions permettant de générer vos site et list definition qui pourront par la suite très facilement être compilées et déployées sur vos fermes SharePoint.
 
Il génère automatiquement les fichiers AllItems.aspx, DispForm.aspx, NewForm.aspx, ... ainsi que le fichier schema.xml pour les list template (onet.xml pour les site definition)
 
Autant dire que cela vous fait gagner un temps non négligeable.
 
 
 
SharePoint Manager 2007
Un petit tool assez sympa qui vous permet de gérer vos application SharePoint, site collection, list, doc lib ...
 
Vous pouvez le trouver ici
Taille des attachments d'une liste SharePoint
Vous essayez d'uploader un attachment de plus de 51 Mo dans une liste SharePoint et vous recevez une erreur du type "An unknown error occurred".
 
Vous avez pourtant modifié la valeur Maximum Upload Size dans la Central d'admin (sous Application Management > Web Application General Settings) à 65 Mo mais rien n'y fait ... impossible d'uploader ce fichier dans une liste SharePoint alors que cela fonctionne parfaitement dans une Document Library.
 
En fait il y a un paramètre IIS qui bloque l'upload de fichier de plus de 50 Mo pour régler ce problème:
 
ouvrez le fichier web.config et modifiez la valeur de maxRequestLength à la ligne suivante <httpRuntime maxRequestLength="51200" />
Exemple:
Pour autoriser 65 Mo remplacez 51200 par 66560 (65 * 1024)

 Derniers posts

Expand/Collapse Category.NET ‎(1)
Clone d'objetUse SHIFT+ENTER to open the menu (new window).
17/04/2008 0:14
Expand/Collapse CategoryComposant HTML ‎(1)
Advanced Text Editor componentUse SHIFT+ENTER to open the menu (new window).
11/04/2008 17:10
Expand/Collapse CategoryIE ‎(1)
IE7 Quick TabsUse SHIFT+ENTER to open the menu (new window).
29/05/2008 18:49
Expand/Collapse CategorySharePoint ‎(6)
SharePoint Spin WheelUse SHIFT+ENTER to open the menu (new window).
16/06/2008 16:00
Gérer les extensions de fichier bloquées par SharePoint de manière programmatiqueUse SHIFT+ENTER to open the menu (new window).
6/04/2008 1:18
Arretez de chercher après les classes CSSUse SHIFT+ENTER to open the menu (new window).
6/04/2008 1:08
SharePoint Solution GeneratorUse SHIFT+ENTER to open the menu (new window).
6/04/2008 0:44
SharePoint Manager 2007Use SHIFT+ENTER to open the menu (new window).
6/04/2008 0:37
Taille des attachments d'une liste SharePointUse SHIFT+ENTER to open the menu (new window).
6/04/2008 0:17
Expand/Collapse CategoryVisual Studio ‎(1)
Attacher le process w3wp.exe en un clickUse SHIFT+ENTER to open the menu (new window).
22/04/2008 13:49

 ‭(Hidden)‬ Admin Links