Saturday, October 11, 2003

PDC in two weeks ... Be There!

   Last PDC was in LA. If it was not one of the greatest, and if there was no PDC in 2002, it is because a PDC is and should be about technology, and there were no totally new one at the time ... This year, not only there is a new technology, there are many of them (Indigo, Longhorn, Yukon, ...).

   The number of attendees also seems to be one of the greatest (already overbooked, and registration closing on Monday, hurry up if you haven't registered yet!). I go to many conferences regularly (at least 3-4 per year in the US, many events in my region - i.e. North Africa), and I always come bqack with the opinion that what makes a conference great is both its content and the general atmosphere, parties and fun going on in it. This PDC will be a blast ... See you there.

  


main | PDC
10/11/2003 4:22:17 PM UTC  #   

  Monday, October 06, 2003

Web Parts as Custom Web Controls (or almost...)

I will continue on the Office System series with this very simple exemple of how one can write Web Parts just as one would write any ASP.Net Custom WebControl. The only difference is that you don't override the Render Method, but the RenderWebPart method instead (this allows for the Web Part predefined functionnality like dragging and dropping the Web Part within the Web Part Page in Windows SharePoint Services sites or SharePoint Portal Server sites, as well as the integration within the Web Part Framework and use of the WebPart Tool panes ...etc.). example in C# (A reference to Microsoft.SharePoint.dll and to System.Data.dll are needed):

using System;
using
System.ComponentModel
using
System.Web.UI; using System.Web.UI.WebControls;
using
System.Xml.Serialization;
using
Microsoft.SharePoint;
using
Microsoft.SharePoint.Utilities;
using
Microsoft.SharePoint.WebPartPages;
namespace
MyWebPartsLibrary
{

[ToolboxData("<{0}:WebPart1 runat=server></{0}:WebPart1>"),
XmlRoot(Namespace="MyWebPartsLibrary")]
public class WebPart1 : Microsoft.SharePoint.WebPartPages.WebPart
{

private DataGrid myAuthorsGrid=new DataGrid();
protected override void RenderWebPart(HtmlTextWriter output)
{

myAuthorsGrid.DataSource=getAuthors().Table[0];
myAuthorsGrid.DataBind();
myAuthorsGrid.RenderControl(output);

}
private DataSet getAuthors()
{

System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection("data source=localhost; initial catalog=pubs; integrated security=SSPI");
System.Data.SqlClient.SqlDataAdapter adapt =
new System.Data.SqlClient.SqlDataAdapter("select * from authors", cnn);
System.Data.DataSet result =
new System.Data.DataSet();
adapt.Fill(result);
return result;

}

}

}

As for all Office System Solutions, there must be a manifest that is signed with a digital certificate (that's the basis of all security configurations and policies for Office System solutions) that references the dll as follows :

<?xml version="1.0"?>

<!-- You need only one manifest per CAB project for Web Part Deployment.-->

<!-- This manifest file can have multiple assembly nodes.-->

<WebPartManifest xmlns="http://schemas.microsoft.com/WebPart/v2/Manifest">

<Assemblies>

<Assembly FileName="MyWebPartsLibrary.dll">

<SafeControls>

<SafeControl Namespace="MyWebPartsLibrary" TypeName="*" />

</SafeControls>

</Assembly>

</Assemblies>

<DwpFiles>

<DwpFile FileName="WebPart1.dwp"/>

</DwpFiles>

</WebPartManifest>

 

To install the Web Part in SharePoint, a CAB file has to be created (Setup Project) and the utility stsadmn.exe is used for installation as follows :

stsadm –o addwppack –MyWebPartLibrary.dll

 

 


main | Office System
10/6/2003 5:15:33 PM UTC  #   

  Tuesday, September 30, 2003

Very simple way to do smart tags

Too tired to go into any object model, I will just give a very simple example of XML List Smart tags in the new Office System, taking advantage of the MOSTL engine. Just put the following XML into an xml file in C:\Program Files\Common Files\Microsoft Shared\Smart Tag\LISTS\1033\ et d'exécuter l'utilitaire C:\Program Files\Common Files\Microsoft Shared\Smart Tag\SmartTagInstall.exe and my name will be recognized on your documents, allowing you to access my blog from any office document  ...

<?xml version="1.0" encoding="utf-8" ?>
<!-- _lcid="1033" _version="11.0.4617" -->
<!-- _LocalBinding -->
<FL:smarttaglist xmlns:FL="http://schemas.microsoft.com/office/smarttags/2003/mostl">
    <FL:name>
        <!-- _locID_text="name" _locComment="{StringCategory=TXT}" -->Malek test lists</FL:name>
    <FL:lcid>
        <!-- _locID_text="lcid" _locComment="{StringCategory=TXT}" -->1033,0</FL:lcid>
    <FL:description>
        <!-- _locID_text="description" _locComment="{StringCategory=TXT}" -->Ensemble de listes de test</FL:description>
    <FL:moreinfourl>
        <!-- _locID_text="url" _locComment="{StringCategory=TXT}" --></FL:moreinfourl>
    <FL:updateable>false</FL:updateable>
    <FL:autoupdate>false</FL:autoupdate>
    <FL:lastcheckpoint>100</FL:lastcheckpoint>
    <FL:lastupdate>5123942</FL:lastupdate>
    <FL:updateurl>
        <!-- _locID_text="updateurl" _locComment="{StringCategory=TXT}" --></FL:updateurl>
    <FL:updatefrequency>20160</FL:updatefrequency>
    <FL:smarttag type="urn:schemas-microsoft-com:office:smarttags#malektest">
        <FL:caption>
            <!-- _locID_text="recognizercaption" _locComment="{StringCategory=TXT}" -->Mot de test</FL:caption>
        <FL:terms>
            <FL:termlistwithprops> 
                <FL:prop RecognizedByMOSTLList="True" />
                <FL:t>Malek</FL:t>
                <FL:t>Abdelmalek</FL:t>
                <FL:t>Kemmou</FL:t>
                <FL:t>A.Kemmou</FL:t>
                <FL:t>A.K</FL:t>
               </FL:termlistwithprops>
        </FL:terms>
        <FL:actions>
            <FL:action id="My Blog">
                <FL:caption>
                    <!-- _locID_text="My WebLog" _locComment="{StringCategory=TXT}" -->Navigate to my WebLog</FL:caption>
                <FL:url><!-- _locID_text="actionurl1" _locComment="{StringCategory=TXT}" -->http://www.malekkemmou.ma</FL:url>
            </FL:action>
        </FL:actions>
    </FL:smarttag>
</FL:smarttaglist>


main | Office System
9/30/2003 9:03:53 PM UTC  #   

  Sunday, September 28, 2003

Disconnected for a week

I just got back from Tunis, Tunisia. For one week, I had no connectivity, my AC adapter for my laptop broke down, and Tunis went through some innondations ...

I was doing a training on Office System for a mixed audience of developpers and ITPro, which I will do 3 more times non-stop, in Casablanca, Morocco and Algiers, Algeria. The course covering XML features, SharePoint integration, smart Tags and smart Docs, research, ...etc.

I will have some rest today, and tomorrow I will post some insight into the new Office development techniques (as well as the code I promised last week).

 


main | Travel
9/28/2003 5:44:21 PM UTC  #   

  Saturday, September 20, 2003

leaving for Tunis ...

Tomorrow morning, I am leaving for Tunis where I give an Office System 2003 Training for 5 days.

Today, I hade to do some interesting work on InfoPath and on CMS. InfoPath is really a great baby for creating Forms using Web Services ... on CMS, I had to work on a placeholder that makes it easy for the content authors to apply Css classes (without knowing it) to their content. The main idea is to apply on of a few predefined tags, and let the css take care of it (in my case choosing one of a multitude of bulleted lists with flashy icons).

I will be posting that code on monday ( iam just too tired to comment it right now).


main
9/20/2003 8:52:24 PM UTC  #   

  Friday, September 19, 2003

Finally, my weblog is online ....

There it goes ... I use three languages in this webLog, but you only see the languages that you have specified in your browser as acceptable languages. Thank you Clemens for the multilangual support ...

This weblog is a mixture of technical stuff  (mainly .Net code and comments), my view and  opinions on various things, and whatever is happening in my life, travels, ...etc.

 


main | welcome
9/19/2003 8:06:42 PM UTC  #