Skip to main content

Le Blog d'Arnaud Jund

Go Search
Home
  

SharePoint - Envoi d'un document en pièce jointe

Avec SharePoint 2007, que ce soit SharePoint Services ou MOSS, vous pouvez depuis n'importe quel document faire un envoi par mail du document sous forme de lien.  C'est très pratique, mais cela a tout de  même un inconvénient majeur lorsque vous voulez envoyer un document à quelqu'un qui n'a pas accès au dit document, ou quelqu'un d'externe à votre plateforme SharePoint.

Voilà ce que je voulais arriver à faire : envoyer un document par mail mais en pièce jointe.

Les problèmes fonctionnels qui se sont présentés à moi :

1) L'adresse mail de destination
Tout simple, passer par une page ASPX, qui au travers d'une zone de texte demande à l'utilisateur d'introduire l'adresse mail de destination.

2) L'adresse mail de l'expéditeur :
Par défaut, l'adresse mail de l'expéditeur doit être celle de l'utilisateur qui effectue l'envoi du document.
Par contre, il se peut que l'on ne puisse pas identifier l'utilisateur (accès anonyme), alors l'adresse d'expédition sera celle configurée dans le services "Outgoing mail" de SharePoint.  Mais dans ce cas là, l'utilisateur peut lui-même introduire une adresse mail.

3) Avoir un menu personnalisé uniquement lié aux documents publiés dans mes librairies de documents.
image

4) Avoir une copie carbonne cachée :
L'envoi va se faire via un serveur SMTP, donc il faut une trace de l'envoi dans la boite mail de l'expéditeur.

Mon but ici n'est pas de faire un tutoriel sur comment écrire une feature SharePoint, de nombreux articles font ça bien mieux que moi.  Je vais juste décrire ma solution que je vous laisse étudier et utiliser à votre convenance.

Le cab file de déploiement : http://blogs.ezos.com/blog/aju/Ressources/SendDocument/SendDocument.cab
Le fichier zip avec le code source : http://blogs.ezos.com/blog/aju/Ressources/SendDocument/Send%20Document.zip

Ma solution est fournie telle quelle, et ni moi, ni Vision EZOS sommes responsables de l'usage que vous en feriez.

 

Construction de la structure ma solution :

1) Nouveau projet de type "Class Library" en C# sous Visual Studio 2005, projet nommé "SendDocument"
- Ajout des référence Windows.SharePoint.Services, System, System.Data, System.Xml et System.Web
- Création de deux répertoires sur la racine du projet "DEPLOYEMENT" et "TEMPLATE"
- Création de deux répertoires dans le dossier "TEMPLATE", "FEATURES" et "LAYOUTS"
- Création d'un répertoire dans le dossier "FEATURES", "SendDocument"

image  
 
2) Création de la page ASPX - SendDocument.aspx
- Création d'un fichier de type text nommé "SendDocument.aspx" dans le répertoire "TEMPLATE\LAYOUTS"
- Création du fichier contenant le code behind associé à la page, "SendDocument.aspx.cs" dans le répertoire "TEMPLATE\FEATURES\SendDocument"
 
Le code de la page aspx : SendDocument.aspx

<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master" Inherits="SendDocument.SendDocument, SendDocument, Version=1.0.0.0, Culture=neutral, PublicKeyToken=Your Public Key Token" %>

<asp:Content ID="Title" runat="server" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea">
    Send Document in attach by Email
</asp:Content>

<asp:Content ID="ContentMain" runat="server" ContentPlaceHolderID="PlaceHolderMain">
    <asp:Panel ID="MailDocumentPanel" runat="server">
    Please enter the destination email address :<br />
    <asp:TextBox ID="EmailAddress" runat="server" Width="300"/><br /><br />
    The sender email address :<br />
    <asp:TextBox ID="SenderAddress" runat="server" Enabled="false"  Width="300"/>
    <asp:Button ID="SendButton" runat="server" Text="Send" OnClick="SendButton_Click" /></asp:Panel>
    <asp:Label ID="Information" runat="server"/>
</asp:Content>

 
Le code behind associé  : SendDocument.aspx.cs

using System;
using System.IO;
using System.Net.Mail;
using System.Net.Mime;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.WebControls;

namespace SendDocument
{
    public class SendDocument : LayoutsPageBase
    {
        //Private Members to control debugging information and error handling
        private string debugMessage = "";
        private bool isError = false;
        private bool displaySenderTextBox = false;

        private void Page_Load(object sender, System.EventArgs e)
        {
            string smtpFromAddress = "";
            ContentPlaceHolder mainContentPlaceholder = this.Master.FindControl("PlaceHolderMain") as ContentPlaceHolder;
          
          
//Set Sender Email Address
            smtpFromAddress = GetSenderEmailAddress();
            debugMessage = debugMessage + "<br>Mail Message From Address : " + smtpFromAddress;

            ((TextBox)mainContentPlaceholder.FindControl("SenderAddress")).Text = smtpFromAddress;
            if (displaySenderTextBox)
            {
                ((TextBox)mainContentPlaceholder.FindControl("SenderAddress")).Enabled = true;
            }
        }

        //Event Handler about the Send Button
        protected void SendButton_Click(object sender, EventArgs e)
        {
            debugMessage = "<br>SendButton_Click()";
            ContentPlaceHolder mainContentPlaceholder = this.Master.FindControl("PlaceHolderMain") as ContentPlaceHolder;

            try
            {
                //Get the current SharePoint List and cast it to a Document Library
                SPList list = SPContext.Current.Web.Lists[new Guid(Request.QueryString["ListId"])];
                SPDocumentLibrary docLib = (SPDocumentLibrary)list;
                //Get the current item from this SharePoint Document Library
                int id = System.Convert.ToInt32(Request.QueryString["ItemId"]);
                SPListItem listItem = docLib.Items.GetItemById(id);
                //If there is a file associated with the SharePoint Item, the file will be send bu email as attachment
                if (listItem.File != null)
                {
                    string destinationAddress = ((TextBox)mainContentPlaceholder.FindControl("EmailAddress")).Text.Trim();
                    string senderAddress = ((TextBox)mainContentPlaceholder.FindControl("SenderAddress")).Text.Trim();
                    SendDocumentbyEmail(destinationAddress, senderAddress, "Document : " + listItem.Name + " from " + list.Title, listItem, list);
                }
            }
            catch (Exception  ex)
            {
                isError = true;
                debugMessage = debugMessage + "<br>Error - SendButton_Click() : <br>Error Message : " + ex.Message + "<br>Stack Error : " + ex.StackTrace.ToString();
            }

            //Show all debug and error messages if an error occured, othewise show a successfull message
            ((Panel)mainContentPlaceholder.FindControl("MailDocumentPanel")).Visible = false;
            if (isError)
            {
                debugMessage = debugMessage + "<br>The document has not been sent in attachment by email.";
            }
            else
            {
                debugMessage = "The document has been sent in attachment by email.";
            }
            ((Label)mainContentPlaceholder.FindControl("Information")).Text = debugMessage;
        }

        //Create a new SMTP Message and send it
        private void SendDocumentbyEmail(string destinationAddress,string senderAddress, string messageSubject, SPListItem document, SPList list)
        {
            string smtpServerAddress = "";

            string documentAuhtor = "";
            string documentName = "";
            string documentMajorVersion = "";
            string documentMinorVersion = "";
            string documentLenght = "";
            string documentUrl = "";

            string listUrl = "";
            string listName = "";

            Stream stream = null;
            try
            {
                debugMessage = debugMessage + "<br>SendDocumentbyEmail(" + destinationAddress + "," + senderAddress + "," + messageSubject + ",File,List)";
                SPWebApplication currentWebApplication = SPContext.Current.Site.WebApplication;

                //Get Information about OutboundMailServiceInstance
                SPOutboundMailServiceInstance smtpServer = currentWebApplication.OutboundMailServiceInstance;
                smtpServerAddress = smtpServer.Server.Address;
                debugMessage = debugMessage + "<br>Get OutboundMailServiceInstance Name : " + smtpServerAddress;
                //Set Document Information
                documentAuhtor = document.File.Author.ToString();
                documentName = document.File.Name;
                documentMajorVersion = document.File.MajorVersion.ToString();
                documentMinorVersion = document.File.MinorVersion.ToString();
                documentLenght = document.File.Length.ToString();
                documentUrl = document.Url.ToString();
                debugMessage = debugMessage + "<br>Get Document Information (Author, Name, Version, Lenght and Url)";

                //Set List Information
                listUrl = SPContext.Current.Web.Url + list.DefaultViewUrl;
                listName = SPContext.Current.Web.Name;

                debugMessage = debugMessage + "<br>Create MailMessage : new MailMessage(" + senderAddress + "," + destinationAddress + ")";
                MailMessage message = new MailMessage(senderAddress, destinationAddress);
                message.Subject = messageSubject;
                message.Bcc.Add(senderAddress);
                message.IsBodyHtml = true;
                message.Body = "This document was sent from the following SharePoint list: " +
                "<a href=\"" + listUrl + "\">" + listName + "</a>.<br><br>Author = " + documentAuhtor + "<br>Name : " + documentName + "<br>Major Version : " + documentMajorVersion +
                "<br>Minor Version : " + documentMinorVersion + "<br>Url : " + documentUrl;

                stream = document.File.OpenBinaryStream();
                debugMessage = debugMessage + "<br>Document Stream Opened";

                //Create the attachment without mime type information
                Attachment attachment = new Attachment(stream,"");

                attachment.Name = document.File.Name;
                message.Attachments.Add(attachment);
                debugMessage = debugMessage + "<br>Document set as attachment to the mail";

                debugMessage = debugMessage + "<br>Create SmtpClient : new SmtpClient(" + smtpServerAddress + ")";
                SmtpClient client = new SmtpClient(smtpServerAddress);

                debugMessage = debugMessage + "<br>Send the message";
                client.Send(message);

            }
            catch (Exception ex)
            {
                debugMessage = debugMessage + "<br>Error - SendDocumentbyEmail() : <br>Error Message : " + ex.Message + "<br>Stack Error : " + ex.StackTrace.ToString();
                isError = true;
            }
            finally
            {
                try
                {
                    stream.Close();
                }
                catch { }
            }

        }

        //Get the Sender Email Address
        private string GetSenderEmailAddress()
        {

            string fromEmailAddress = "";
            try
            {
                //Try to get the current connected user email address
                debugMessage = debugMessage + "<br>Get CurrentUser Email Address";
                fromEmailAddress = SPContext.Current.Web.CurrentUser.Email;
            }
            catch (Exception ex)
            {
                debugMessage = debugMessage + "<br>Error - SendButton_Click() : <br>Error Message : " + ex.Message + "<br>Stack Error : " + ex.StackTrace.ToString();
                try
                {
                    //Try to get the Sender Address used by the OutBoundMail Configuration
                    displaySenderTextBox = true;
                    debugMessage = debugMessage + "<br>Get OutboundMail Sender Mail Address";
                    fromEmailAddress = SPContext.Current.Site.WebApplication.OutboundMailSenderAddress.ToString();
                }
                catch (Exception e)
                {
                    debugMessage = debugMessage + "<br>Error - SendButton_Click() : <br>Error Message : " + e.Message + "<br>Stack Error : " + e.StackTrace.ToString();
                    fromEmailAddress = "";
                }
            }

            return fromEmailAddress;
        }

    }
}

 
3) Création de la Custom Action : Positionnement du menu "E-Mail the document" associé à chaque document publié dans SharePoint : elements.xml

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="
http://schemas.microsoft.com/sharepoint/">
    <CustomAction
        Id="SendDocument.Link"
        RegistrationType="ContentType"
        RegistrationId="0x0101"
        Location="EditControlBlock"
        Sequence="350"
        Title="E-mail the Document"
        ImageUrl="/_layouts/IMAGES/EML16.GIF"
        Description="Allows a user to send a document by email as attachment." >
        <UrlAction Url="~site/_layouts/SendDocument.aspx?ItemId={ItemId}&amp;ListId={ListId}"/>
    </CustomAction>
</Elements>


RegistrationType="ContentType" & RegistrationId = "0x0101", positionne donc cette action sur tout les éléments dont le content type est équivalent à un document.
Location="EditControlBlock", positionne dans le menu d'édition de chaque item concerné

4) Description de la feature : feature.xml

<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="
http://schemas.microsoft.com/sharepoint/"
         Id="AF27505D-D3B0-4024-8576-CCACA3D66B06"
         Title="Send Document by Email"
         Scope="Web" Hidden="false" Version="1.0.0.0"
         Description="Allows you to e-mail a document as attachment from any Document Libraries">
    <ElementManifests>
        <ElementManifest Location="elements.xml"/>
    </ElementManifests>
</Feature>

 
5) Manifest de déploiement : manifest.xml

<?xml version="1.0" encoding="utf-8" ?>
<Solution xmlns="
http://schemas.microsoft.com/sharepoint/"
     SolutionId="87EA5682-EA48-4e19-B890-B8FF699985E4"
     ResetWebServer="TRUE">
    <FeatureManifests>
        <FeatureManifest Location="SendDocument\feature.xml"/>
    </FeatureManifests>
    <TemplateFiles>
        <TemplateFile Location="LAYOUTS\SendDocument.aspx"/>
    </TemplateFiles>
    <Assemblies>
        <Assembly DeploymentTarget="GlobalAssemblyCache" Location="SendDocument.dll" />
    </Assemblies>
</Solution>

 
Le reste est lié directement à la création et au déploiement de features pour SharePoint 2007 (Cab File, ddf et targets file).
 
La commande pour déployer le cab file est toujours la même :
stsadm -o addsolution -f "completecabfilepath"
 
J'espère que vous apprécierez cet outil, si vous avez la moindre question ou que vous rencontrez le moindre souci, n'hésitez pas à me contacter.
 
Je tiens à remercier Becky Bertram pour son article sur le sujet, Stéphane Eyskens pour ses conseils, et Ludovic Lefort pour son aide et son article sur les custom actions

 

 

Vista - La touche ALT

Utilisateur de Vista depuis presque 1 an déjà, une chose me gênait profondément.  Pas moyen de remettre la main sur la barre de menu sous l' explorateur windows (voir image).

image

J' en parlais avec un collègue récemment, qui me mit sur la voie.  En effet, c' est tout simple, une fois l' explorateur ouvert, il suffit de presser la touche ALT et la barre de menu apparaît.  Maintenant si vous voulez qu'elle soit active en permanence, il suffit de clicker sur le bouton "Organize", section "Layout" et d' activer ou désactiver la barre de menu.

SharePoint 2007 & Word 2007 & QuickParts

Avec SharePoint 2007, nous avons cette notion de méta données associés aux documents. Lorsqu'on héberge un document dans une librairie de documents, on peut associer à ce document certaines colonnes permettant de décrire finement le document (Auteur, Date Publication, Description, Sujet, …)

Avec les documents de la suite Office 2003 et des version précédentes, lorsque l'on publie un document, l'utilisateur est redirigé vers un formulaire web l'invitant à introduire les valeurs adéquates en fonction des méta données prévues.

Avec les documents de la suite Office 2007, ces valeurs sont introduite directement depuis l'outil d'Office utilisé (Word, Excel, …) En effet, un bandeau spécifique apparaît et invite l'utilisateur à introduire les valeurs adéquates.

Essayons d'aller un cran plus loin encore. En partant de la réflexion suivante.

Souvent les méta données positionnées sont liées à des informations qui sont contenus dans le document. Dans un document Word, il est pas rare de voir une page de garde avec des informations concernant l'auteur, le réviseur, la version et le sujet du document. Pourquoi devoir introduire manuellement ces informations alors qu'elles sont présentent.

Voici une petite démonstration qui va dans ce sens.

Remarque : si je ne mentionne rien de spécifique, c'est que je laisse les valeurs par défaut proposées par l'interface de SharePoint

1ère étape : Créer une libraire de document sous SharePoint 2007 avec les méta données qui nous intéresse.

  • Sur votre site SharePoint, "View All Site Content" -> "Create"->"Document Library"
  • Nommer votre liste, moi je la nomme "Proposals Documents"
  • Je choisis comme modèle, "Microsoft Office Word Document"
  • Je valide la création de la liste

Création des méta données, donc des colonnes qui nous intéresse

  • "Settings" -> "Document Library Settings"
  • "Create Column" -> Auteur : Single Line of Text
  • "Create Column" -> Réviseur : Single Line of Text
  • "Create Column" -> Sujet : Single Line of Text
  • "Create Column" -> Révision : Single Line of Text
  • "Create Column" -> Date de Validité : Date and Time, Date Only

Voilà nous avons une libraire prête à recevoir nos documents Word

clip_image001[7]

2ème étape : Edition du modèle Word associé à notre libraire

  • "Document Library Settings" -> "Advanced Settings"
  • "Edit Template"

clip_image002[4]

Word 2007 s'ouvre en mode édition sur le modèle de votre liste. A vous de le modifier comme

vous le souhaitez.

clip_image003[8]

Voici les modifications que j'ai faite. Il faut maintenant associer nos meta données de la liste
SharePoint à ce modèle.

clip_image004[4]

L'insertion des méta données se fait via l'onglet "Insert" -> "Quick Parts" -> "Document Properties"

clip_image005[4]

Pour les méta données souhaitées, il suffit de les positionner à l'endroit voulu de votre modèle.

clip_image006[4]

Vous n'avez plus qu'à sauvegarder votre modèle. Revenir sur la liste, et créer un nouveau document.

Vous verrez qu'il y a maintenant un lien dynamique et bidirectionnel entre vos métadonnées et les champs de votre document Word.

clip_image007[4]

Si j'introduis une valeur dans la colonne "Auteur", au niveau des méta données, cette valeur sera répliquée dans mon document Word.

clip_image008[4]

Maintenant, si j'introduis dans mon document Word une valeur pour le champ "Sujet", celle-ci se répliquée dans le méta donnée "Sujet"

clip_image009[4]

Et voici maintenant ma liste SharePoint, une fois mon document publié.

clip_image010[4]

Voilà, je crois que cette démonstration est assez concluante, malgré que cela se limite à la suite Office 2007, et au format 2007 des documents Office.

J'espère que cette démonstration est assez claire et compréhensible.

Merci de votre lecture.

Quand la wii remplace une bonne psychanalyse

Depuis mon adolescence, et ça date, j'ai une profonde frustration.  Plusieurs en fait, mais bon là n'est pas le sujet.  En étant ado, j'allais de café concert en salle de concert tous les weekends, pour suivre des groupes de rock, de hard rock, de metal, de heavy metal.  A cette époque bénite où ma chevelure était assez longue, pour pouvoir initier des mouvements de haut en bas avec ma tête pour faire balancer cette tiniace au sons des plus caverneux groupes de rock, et à se lancer dans des mouvements effrénés de "Air Guitar".  J'aurais tout donné pour devenir un Guitar Hero, une rock star, avoir mon propre groupe, et rejoindre les tournées mondiales de Metallica, Aerosmith, AC/DC, Sepultura, Extreme et autres enfants terribles.

L'adolescence se terminant, j'ai fait mes études, mon service militaire, puis je suis rentré de plein pied dans la vie active. 

Je vais maintenant avoir 35 ans, et je suis un homme complet.  Car depuis peu, je me transforme en Guitar Hero grâce à ma console wii et à Guitar Hero III.  http://www.guitarherogame.com/gh3/ 

Cela fait 5 mois maintenant que le disk de ce jeu n'a pas quitté ma wii.  Le jeu est fournit avec une guitare, et la jouabilité est époustouflante. 

Le seul souci à mon bonheur, c'est que pendant que je joue, ma femme et mes gosses me regardent bizarrement, comme si j'étais un autre.  Ils sont à leur tour frustrés de ne pas pouvoir partager ça avec moi.  Patiente, patiente, car voilà annoncé un nouveau concept de jeu, "Rock Band", où cette fois-ci, je ne serais pas seul à jouer mais nous pourrons y participer tous les 4, car il faut 1 chanteur, 1 batteur et 2 guitaristes, de quoi monter tout un groupe de rock. http://www.rockband.com/

Ce jeu est annoncé sur wii pour le 22 juin 2008.

Voici quelques liens (vidéo), pour vous donner une idée :
http://fr.youtube.com/watch?v=Xd3E8zgqJM4&feature=related
http://fr.youtube.com/watch?v=_HUnRN92ja0&feature=related
http://fr.youtube.com/watch?v=Kv3InVmyqZ4&feature=related

Crystal Report : Problème d'affichage des images

Dernièrement j'ai du suite à un crash serveur, réinstaller toutes une série d'applications.  Dont un portail web qui utilisait les composants de Crystal Report 9.  Le site basé sur le modèle IBuySpy, tournait donc via le framework .NET 1.1 .  Après réinstallation de ce dernier, on s'est aperçu que tous les rapports malgré qu'ils s'affichent correctement via le viewer web de Crystal Report, présentaient un léger souci.  Aucune image des rapports ne s'affichaient, elles étaient remplacées par une croix rouge.

En cherchant des heures sur internet et via des forums spécialisés, apparemment ce problème est largement connu, mais peu de solutions sont proposées (problème de droit d'accès aux images, erreur du script client chargeant les images, ...)

Après quelques heures de réflexion (intense), on est reparti sur une autre voie.  Vérification de la configuration du serveur web (IIS 6.0 sous W2K3).  On s'est rendu compte que le virtual directory tournait avec le framework .NET 1.1, ce qui pour le portail web en question était normal, en ajustant ce paramètre et en positionnant le framework .NET 2.0 sur ce virtual directory, les images de nos rapports sont enfin apparues.

Malheureusement, je n'ai pas encore trouvé d'explication à cela, mon client est bien content que ses rapports fonctionnent. Mais on ne sait pas pourquoi, ils ne fonctionnaient pas.   Mais bon, c'est souvent le résultat qui compte.

 

TViX HD M-6500A

En voilà un autre de boitier multimédia, et contre toute attente, c'est pour celui-là que mon coeur s'est épris.   Non seulement d'être très performant, il est aussi très "beau".  Je sais, on dit que l'habille ne fait pas le moine ("it's not the wings that make the angel", je tenais à la placer celle-là), mais ici pour une fois c'est le cas.

Dvico est un des leader mondial dans le développement de produits vidéo et multimédia.  Leur gamme de produits est sans pareil.  Très réputé pour la qualité de leurs produits, ils viennent de sortir (début 2008) un nouveau boitier, le TViX HD M_6500A. http://www.tvix.co.kr/Eng/products/HDM6500A.aspx

Pour vous situer l'engin : HDMI 1.3, ISO, MKV, H.264, SATA, HDTV Tuner, RJ45, FTP,  ...

Mais qu'a-t-il de si particulier ? 

Déjà c'est un des rares boîtier qui propose soit de travailler localement via un disque dur interne (en SATA s'il vous plait), soit via un device externe (2 ports USB),  soit de travailler avec les ressources réseaux.  Donc même, si vous prenez un disque dur de petit volume (250 Go), vous pouvez l'emmener avec vous et avoir à disposition vos films, séries et dessins animés préférés.

H.264, est une norme de codage vidéo haute définition.  C'est le standard adopté pour une grande variété de réseaux et de systèmes, diffusion TV HD, HD DVD (même s'il est mort), Blu-Ray, ...  Et donc de fait ce boitier lit les Blu-ray.

Il est le premier (je pense) à fournir une connectique HDMI 1.3

Pour la mise à jour du contenu du disque dur, c'est tout simple.  Soit vous le connectez via USB à votre PC, soit via le port RJ 45 qui au travers d'un serveur FTP embarqué vous permet de faire des transferts via votre réseau domestique.  Pour le moment, cela se fait à une vitesse de 10/100 Mbits, mais le nouveau firmware activera le gigabit.

Une chose que j'apprécie par dessus tout, c'est le bruit, ou devrais-je dire l'absence quasi total de bruit.  Ce TViX est équipé d'un ventilateur à vitesse variable, que du bonheur.

Après, il y a aussi le suivi que fait Dvico pour sans cesse améliorer la qualité et les fonctionnalités de leurs produits.  Un nouveau firmware pour le HD M-6500A est déjà disponible : http://www.tvix.co.kr/Eng/Support/M6500AFirmware.aspx

Bon, tout n'est pas rose non plus, car dans tout ça, il y a un hic, et de taille.  C'est le prix du boitier.
Pour acquérir un produit neuf, vous devrez débourser pas loin de 450€ à 650€ selon le volume du disque dur que vous choisirez. 

Search Server 2008 - MSS(X)

Félicitation pour cette nouvelle naissance, le dernier né de la famille est lui aussi très prometteur.

Il en aura fallu du temps pour qu'il se joigne à nous, mais maintenant le voici, ou je devrais plutôt dire les voici, car ils sont deux.

Microsoft Search Server 2008 et Micorosoft Search Server Express 2008, ces deux frères ont la même vocation.  fournir à votre entreprise un outil de recherche sur vos données, efficace et robuste.

La seule différence entre les deux frangins, c'est que la version Express est mono serveur, une limitation qui ne dérangera pas la grande majorité des entreprises surtout les PME.

Pour le moment ces outils existent uniquement en version "release candidate" et les version "rtm" sont prévus pour très bientôt.

Petite démonstration en flash pour ceux qui veulent en voir plus :
http://www.microsoft.com/enterprisesearch/flash/MSSX.html

Pour downloader la rc de la version Express :
http://www.microsoft.com/enterprisesearch/serverproducts/searchserverexpress/download.aspx

Une image virtuelle afin d'en tester les fonctionnalités:
http://www.microsoft.com/downloads/details.aspx?familyid=6662c7be-d79b-475a-863c-f976239ac0af&displaylang=en&tm

Des exemples de connecteurs disponibles :
http://www.microsoft.com/enterprisesearch/connectors/federated.aspx

Que j'ai hâte de tester tout ça dans un environnement réel, de configurer cet outil afin de fournir enfin une solution de recherche pour les plateformes SharePoint Services.
 
Longue vie à MSS 2008, et encore félicitations aux parents.
Et enfin, une dernière pensée pour un de mes très vieux amis, Site Server 3.0 qui peut maintenant dormir en paix.


La Xbox 360 devient un lecteur DivX et Xvid
Depuis le temps qu'on l'attendait, voici que Microsoft se décide de proposer une mise à jour du firmware de la Xbox pour que celle-ci puisse nativement lire des fichiers MPEG-4 XviD et DivX 5.0/6.0.
 
Ces fichiers vidéos peuvent être lus soit directement via un disque dur externe ou clé usb via le connecteur USB de la console, soit au travers du réseau via une diffusion de streaming via le media player 11.
 

Le codec H.264 est également supporté avec un débit de 10 Mbps et une résolution maximale de 1920 x 1080 à 30 images seconde.

Pour la mise à jour, il suffit de downloader la mise à jour via l'url suivante :
http://download.microsoft.com/download/5/0/8/508cfd6d-ee87-4ceb-837d-4741a99d4155/$SystemUpdate_12-2007.zip#ODcuNjUuMzguODggMTAvMDEvMjAwOCAxNjozNTo0Nw==

Pour mettre à jour une Xbox 360 sans la connecter à Internet, il faut télécharger sur un ordinateur le fichier archive ZIP correspondant à cette mise à jour puis le décompresser et le graver sur un CD ou sur un DVD vierge. Ensuite, il suffit d'insérer le média gravé dans la Xbox, de redémarrer la console ce qui lancera automatiquement la procédure de mise à jour.

A vos risques et périls :)

Popcorn Hour

Dans le monde des boîtiers multimédia de salon, voilà un modèle qui est très attendu, le Popcorn Hour A100.

Syabas, qui est à l'origine du firmware des premiers lecteurs DivX HD de salon, nous propose aujourd'hui ce nouveau boîtier.  Pourquoi ce lecteur est-il tant attendu et que propose-t-il de mieux que les autres ?

Déjà c'est un des rares boîtier qui propose soit de travailler localement via un disque dur (non fournit) soit de travailler avec les ressources réseaux.

Et en plus d'être un lecteur multimédia haute définition, il propose des services et fonctionnalités internet assez riches (service météo, radio web, flux rss, podcast, ...)

Le prix annoncé pour ce lecteur est de 200€ à 250€ selon les sources, un prix très démocratique pour ce type d' appareil.

Pour plus d'information :
http://www.popcornhour.com

Une étude faite par mpc club:
http://www.mpcclub.com/modules/Reviews/reviews/popcorn_hour_a100_review.pdf

Le site de Syabas
http://www.syabas.com

Voici un aperçu de ce qui est proposé par ce lecteur :

1) Services Réseaux :
- UPnP SSDP
- DLNA
- Windows Media Connect
- Windows Media Player NSS
- SMB
- NFS
- HTTP servers: myiHome, WizD, SwissCenter, MSP Portal
- BitTorrent P2P
- NAS access : SMB, NFS, FTP

2) Services  internet:
- Video : YouTube, Google Video, MetaCafe, VideoCast, DL.TV, Cranky Geeks
- Audio : iPodcast, Radiobox, ABC News, Jamendo
- Photo : Flickr, Picasa
- RSS feed : Yahoo! Weather, Yahoo! Traffic alerts, Yahoo! Stock, Cinecast, Traffic Conditions.
- Peer-to-peer TV : SayaTV
- Internet Radio : Shoutcast
- Media files supported

3) Formats Vidéo :
- MPEG1/2/4 Elementary (M1V, M2V, M4V)
- MPEG1/2 PS (M2P, MPG)
- MPEG2 Transport Stream (TS, TP, TRP, M2T, M2TS, MTS)
- VOB
- AVI, ASF, WMV
- Matroska (MKV)
- MOV (H.264), MP4, RMP4

4) Video codecs :
- XVID SD/HD
- MPEG-1, MPEG-2, MPEG-4.2, WMV9,
H.264
- ....

5) Formats Audio :
- AAC, M4A
- MPEG audio (MP1, MP2, MP3, MPA)
- WAV, WMA

6) Formats Photo : JPEG, BMP, PNG, GIF
7) Autres formats :  ISO, IFO
8) Sous Titres : SRT, SMI, SUB, SSA, DRM
9) Chipset : Sigma Designs SMP8635


10) Sorties :
- HDMI v1.1 (up to 1080p)
- Component Video (up to 1080p)
- S-Video
- Composite Video
- Stereo Analog Audio
- S/PDIF Coax Digital Audio

11) Connectiques :
- 2x USB 2.0 host
- Parallel ATA
- Network Ethernet 10/100

WSS v3 - Picture Library & Auto Start Slide Show

Depuis un moment, j'essaie de trouver un moyen d'avoir un Slide Show via une picture library de SharePoint Services v3, sans que l'utilisateur n'ai à démarrer le slide show lui-même. 

Beaucoup d'articles proposent des webparts implémentant une solution basée sur Flash.

Je n'aime pas forcément l'installation de composants externes (même gratuits), alors qu'en cherchant un peu on peut trouver d'autres alternatives.

Voilà ce que je peux proposer comme solution pour avoir un Slide Show automatique sous WSS 2007.

Lorsque que vous allez dans le menu 'Action' d'une librairie d'images et que vous cliquez sur 'View Slide Show', vous êtes redirigé sur la page 'slidshow.aspx' qui fait parti de la collection des formes de votre liste.  Avec SharePoint Designer, vous pouvez éditer cette page et faire la modification suivante :

- trouvez la ligne :
<script language="Javascript">if (IsImgLibJssLoaded()) SlideShowContent();</script>
Celle-ci initie le Slide Show mais ne le démarre pas.

Il suffit donc de la remplacer par :
<script language="Javascript">if (IsImgLibJssLoaded()) SlideShowContent(); StartSlideShow();</script>
Ainsi le Slide Show démarrera automatiquement.

En espérant que cela pourra vous aider.

1 - 10 Next

 Présentations

JUND Arnaud (aju@ezos.com),
employé chez Vision EZOS s.a. depuis 1999,
je suis depuis 2005, à la tête de l'équipe
de développement.

Passionné par l'informatique en général,
je m'éclate avec les outils et technologies
de Microsoft.

Au travers de mon blog, j'espère vous
faire découvrir ce monde qui est le mien.

Les blogs d'EZOS : http://blogs.ezos.com
Le site d'EZOS : http://www.ezos.be et http://www.ezos.fr

 ‭(Hidden)‬ Google Analytics

 La pensée du moment ...

Au test de cyberdépendance, j'ai répondu non à la question suivante "J'allume mon ordinateur sitôt levé(e)."
En fait, je l'éteins jamais.  J'ai bon ou pas ?

 ‭(Hidden)‬ Admin Links