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服务,点击确定
④添加一个新建项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(object sender, GetUnitCapCompletedEventArgs e)
{
if (e.Error== null && e.Result != null)
{
……
}
}
注意:①异步调用在逻辑处理上要特别注意,要保证异步调用相关的操作在异步调用完成后处理。
②在循环中使用异步调用,也要特别留心,可以将开始异步调用Async的方法放置到循环中,异步调用完了的处理放到循环外处理。
2、将银光界面加入网页,并防止银光页面遮挡其他网页控件
3、归一化
对于多条曲线且曲线数据的数量级差别很大的,可采用归一化处理,将这些曲线显示在同一个曲线图中。
y为归一化后数值,x为原数值,Min设置的最小值,Max设置的最大值
4、Visifire Chart使用的时候最好能安装创建、参数设置、添加曲线、显示到界面的流程走,否则有可能曲线显示不出来。