构建第一个插件:

我要构建的第一个插件是用来显示我的项目概况和开发历史的,介绍的内容都放在服务器端的logs.txt文本中。下面开始构建:

1.         新建立一个SilverLight的类库项目,名字叫 WindCloud.Notes;

2.         删除掉默认的Class1.cs项目

3.         添加对公共项目 WindCloud.PubUnit的引用;

4.         添加一个SivlerLight用户控件,名字叫PageNote;

5.         修改界面布局:

l         添加表格和一个文本框,整个代码如下:

<Grid x:Name="LayoutRoot" Background="#EEFFFFFF" >

        <Grid.RowDefinitions>

            <RowDefinition Height="*"></RowDefinition>

        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>

            <ColumnDefinition Width="*"></ColumnDefinition>

        </Grid.ColumnDefinitions>

        <TextBlock x:Name="txtNotes" FontSize="14" Grid.Column="0" Grid.Row="0" VerticalAlignment="Top" Text="TextBlock" TextWrapping="Wrap" />

 

</Grid>

6.         编写代码:

l         首先实现接口IPlugin:

public partial class PageNote : UserControl,IPlugin

#region IPlugin 成员

 

        public IApplication Application

        {

            get

            {

                return App;

            }

            set

            {

                App = value;

            }

        }

 

        public UserControl LoadUserControl()

        {

            return this;

        }    

 

 

        public void SetVisibility(Visibility visible)

        {

            this.Visibility = visible;

        }

 

        #endregion

 

然后在插件加载完成之后添加一个按钮到服务器的界面上:

            App.AddToolBar("Notes", this.GetType().ToString(), new Image());

最后获取服务器的日志文件并显示在文本框中:

   //加载日志文件

            WebClient wc = new WebClient();

            if (wc.IsBusy)

            {

                wc.CancelAsync();

            }

            wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);        

            wc.OpenReadAsync(new Uri("logs.txt", UriKind.Relative));

显示日志文件爱你

void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)

        {

            System.IO.Stream s= e.Result as Stream;

            using (StreamReader reader = new StreamReader(s))

            {

                this.txtNotes.Text= reader.ReadToEnd();

            }

        }    

至此整个插件就完成:

主要步骤概括如下:

l         实现IPlugin接口

l         插件加载完成之后在界面上显示;

部署插件:

把插件生成的文件WindCloud.Notes.dll 拷贝到 WebClientBin目录先,然后修改配置文件WindCloud.Config.xml

<assembly xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

        <titlename>Notes</titlename>

        <version>0.0.1</version>

        <filename>WindCloud.Notes.dll</filename>

        <typename>WindCloud.Notes.PageNote</typename>

        <description></description>

</assembly>

添加一个插件项,至此。整个插件完成

效果演示:http://www.prolightsoft.com  ,需要SilverLight 2.0的运行时。

代码下载: http://www.prolightsoft.com/windcloud.rar