05 2011 档案
摘要:在Silverlight项目中,如果您想最大程度的减少xap包的大小,仅使用默认System.Xml命名空间下提供的功能来实现“XML序列化/反序列化”,恐怕XmlReader/XmlWriter将成为唯一选择了,下面是示例代码:using System.IO;using System.Text;using System.Xml;namespace slLib{ public class Person { private string _name = ""; /// <summary> /// 姓名 /// </summary> public str
阅读全文
摘要:前言:此乃水文,高手绕道.只要是稍微象样点的项目,一般都会先弄一个PageBase或UserControlBase做基类,然后其它页面/用户控件继承自它,标准的写法如下:先定义基类: PageBase.csusing System.Windows.Controls;namespace sl_test{ public class PageBase:UserControl { }}然后创建一个用户控件Page1继承自它:后端cs部分:namespace sl_test{ public partial class Page1 : PageBase { public Page1() { Initial
阅读全文
摘要:相信有不少人遇到过这个恶心的问题,xaml与cs编译正常,也能在浏览器里运行,但是就是无法在vs.net或blend里以【设计视图】方式打开,只能对着代码视图盲打。(个人觉得这是blend与vs.net的一个严重bug)出现这个问题的原因,多半是在构架函数里用到了HtmlPage,运行时SL是host在浏览器里的,HtmlPage即为将它嵌入的页面,而在vs或blend里预览时,宿主是IDE开发环境,并不是网页,因此找不到HtmlPage最终报错(这只是个人分析的,不保证正确.)解决办法,在构造函数最开始,用代码判断当前是否为设计视图,如果是,则不执行后面的代码:
阅读全文
摘要:默认情况下,如果SL项目引用了一些其它程序集(即通俗意义上的dll文件),在编译打包时,这些dll会全部打包到一个xap文件里,随着引用的dll文件越来越多,xap文件会越来越大。这还不是最严重的问题,如果确实需要使用这些dll,大就大吧,要用它容量肯定就会增加。但是如果多个SL项目都要引用相同的程序集时,这些dll会重复打包进每个xap文件,用户在加载多个xap时,实际上是重复下载了这部分dll文件,带宽使用率太低。为了改善这种情况,SL引用了"应用程序库缓存"的概念,在vs2010的SL项目中,打开SL项目的属性页,会看到一个选项:“通过使用应用程序库缓存减少XAP大小
阅读全文
摘要:直接上图:Xaml部分代码:<UserControl xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" x:Class="Telerik.Sample.AutoComplete" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns
阅读全文
摘要:相信很多人都听说过这句名言:garbage in ,garbage out ! 数据录入不规范(或错误)就象一颗定时炸弹,迟早会给系统带来麻烦,所以在数据录入时做好验证是很有必要的。相对传统asp.net开发而言,SL4中的数据验证要轻松很多(主要得益于Xaml的Binding特性),步骤如下:1、定义业务Model类时,在需要验证的属性setter中,写好业务逻辑,对于不合规范的value,要抛出异常!同时切记Model类要实现INotifyPropertyChanged接口,同时每个setter方法的最后,要显示调用OnPropertyChanged方法比如,我们要做一个会员注册填写资料的
阅读全文
摘要:如果展示类似这种比较cool的图片轮换效果,用RadTransitionControl控件就对了,它提供的过渡效果非常cool!原理并不复杂,可参见以前写的Silverlight之ListBox/Style学习笔记--ListBox版的图片轮换广告.xaml部分:<UserControl xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" x:Class="Telerik.Sample.Transition" xmlns="http://schemas.mic
阅读全文
摘要:几乎所有的业务系统都有弹出窗口,典型场景有二种 :1、简单的弹出一个对话框显示信息,比如下面这样:这个很简单,代码示例如下:DialogParameters pars = new DialogParameters(); pars.Header = "信息";pars.Content = "Hello World";RadWindow.Alert(pars);2、点击某条记录的“编辑”按钮,传入ID参数,弹出一个窗口,编辑保存后,将操作结果返回给父窗口这种场景下,要求:a)弹出窗口能接受到父窗口传过来的参数b)弹出窗口关闭时,父窗口要能区分出是通过什么操作
阅读全文
摘要:实际开发中控件的数据源肯定是动态绑定的,不可能在xaml里写死item项。既然要绑定,就先来几个实体类:上面是类图,各类的代码如下:BusinessBaseObjectusing System.ComponentModel;namespace BusinessObject{ public class BusinessBaseObject : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; /// <summary> /// 属性改变时触发事件 /// </su
阅读全文
摘要:在web开发中,带checkbox的tree是一个很有用的东东,比如权限选择、分类管理,如果不用sl,单纯用js+css实现是很复杂的,有了SL之后,就变得很轻松了解决方案一:利用Silvelright ToolKit(微软的开源项目),项目地址http://silverlight.codeplex.com/在线演示地址:http://silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html解决方案二:telerik公司的Rad for Silverlight商业控件(收费控件)在线演示地址 http:
阅读全文
摘要:这两天安装了几个第三方的Silverlight控件库后,突然发现vs2010的msdn帮助全没了,打开帮助设置,提示:"为帮助内容存储区指定的位置无效或者您无权访问该位置",要了亲命了,以前可是花了无数时间在线更新到最新状态滴!百度了一下,找到了解决办法:打开注册表,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Help,删除help下的子项。重启vs,打开帮助设置,重新指定本地msdn帮助的目录为“以前安装的msdn帮助目录"
阅读全文
摘要:前言:本文旨在帮助从未接触过wcf(.svc文件)的webservice开发人员,快速将传统的webService/asmx技术迁移到wcf。高手就不用浪费时间往下看了:)以下所有操作均为vs2010 sp1环境一、服务物理文件创建方式的变化1.1 asmx的创建方式新建项-->Web服务1.2 wcf的创建方式新建项-->Wcf服务二、方法定义上的区别2.1asmx中的方法定义2.2 wcf 中的方法定义这里先啰嗦一下,默认情况下创建一个wcf服务(比如HelloWorld2.svc文件)后,vs.net会自动创建一个IHelloWorld2.cs的接口,然后HelloWorld
阅读全文
摘要:昨天在做项目时,发现了WebService又一个不人性化的地方,记录于此,希望能帮到遇到类似问题的同学们。很多大型b/s项目,通常会分成几层,为了重现问题,这里我简化为三层:(以下代码仅出于演示,也许并无太大的实际用途)1、Model层放置一些业务需要的实体类(通常这些类要求是可序列化的,以方便后面提到的“服务层"中能被序列化后传递),这里为了演示,弄了三个类:1.1 Person类using System;namespace Model{ [Serializable] public class Person { public Person() { } private int _Sa
阅读全文
摘要:很多时候,美工会觉得默认的select下拉框很难看(特别是右侧的下拉箭头按钮),他们通常喜欢用一个自定义的图标来代替这个按钮。这样就只能用 js + div 来模拟了,倒腾了一番,用jQuery模拟了下,当然网上这种文章也不少,只是懒得去看找,又重新发明轮子鸟:)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="
阅读全文
摘要:开始接触biztalk了,这个东西感觉不象linq,silverlight等具体的技术好学,看了几天文档,也跑通了一些小示例,但是仍然觉得毫无感觉,只大概的知道biztalk是一个消息引擎,借助消息的发送/接收,能将各类业务系统连在一起。地球人有一系列biztalk的文章,今天按他的第一个示例hello world,以不编码的方式跑通了,虽然这是一个跟业务流程豪无关联的demo,但仔细倒腾一番,还是蛮有意思的,几点体会:1、如果将文件放入D:\Projects\Hello World\In目录后,biztalk没有自动取走,请检查“发送端口”、“接收端口”是否处于"已启动"
阅读全文