Silverlight

来源:互联网 发布:淘宝5金冠店铺 编辑:程序博客网 时间:2024/05/16 07:19

1、WebService访问配置

银光(Silverlight)开发出来的网页是下载到客户端来运行的,数据库的访问要通过WebService进行数据库访问,这样就需要指定WebService服务器路径,为了灵活的进行软件开发,我们可以通过配置文件 + Cookie的方式来实现。

①在网站web.config文件中配置WebService服务器路径,可以根据自己的环境配置WebService服务器路。例如:

<appSettings>

<addkey="WebServicePath"value="http://localhost:4032/Energy_CTS_Web/WebService.asmx"/>

    

</appSettings>

     ②在访问银光网页之前将WebService服务器路径写入Cookie

string WebServicePathString =ConfigurationManager.AppSettings["WebServicePath"];

HttpCookie cookie =new HttpCookie("WebServicePath");

cookie.Value =WebServicePathString;

HttpContext.Current.Response.Cookies.Add(cookie);

③在银光工程中添加WebService服务引用

银光工程上右击,右键菜单中选择【添加服务引用…】

找到WebService服务,点击确定

       ④添加一个新建项C#类文件【ServiceUtil.cs】,添加如下内容

⑤在使用WebService之前,将Cookie中的WebService服务器路径读出,并赋值到ServiceUtil中

⑥异步调用WebService,例如:

WebService中方法:public List<string> GetUnitCap()

银光中调用:

WebServiceSoapClient dataVisual = ServiceUtil.GetDynamicClient();

dataVisual.GetUnitCapAsync();

dataVisual.GetUnitCapCompleted +=new EventHandler<GetUnitCapCompletedEventArgs>(

GetUnitCapCompleted);

 

void GetUnitCapCompleted(objectsender, GetUnitCapCompletedEventArgse)

{

if (e.Error==null && e.Result !=null)

{

     ……

}

}

注意:①异步调用在逻辑处理上要特别注意,要保证异步调用相关的操作在异步调用完成后处理。

②在循环中使用异步调用,也要特别留心,可以将开始异步调用Async的方法放置到循环中,异步调用完了的处理放到循环外处理。

 

2、将银光界面加入网页,并防止银光页面遮挡其他网页控件

 

3、归一化

对于多条曲线且曲线数据的数量级差别很大的,可采用归一化处理,将这些曲线显示在同一个曲线图中。

 y为归一化后数值,x为原数值,Min设置的最小值,Max设置的最大值

 

4、Visifire Chart使用的时候最好能安装创建、参数设置、添加曲线、显示到界面的流程走,否则有可能曲线显示不出来。

 

原创粉丝点击