随笔分类 -  SilverLight

摘要:在前两篇中,我们讲了在SL端通过Entity Framework和WCF Ria Services实现联表查询,其中最关键的是为实体类中的相关属性设定为Include特性,如下:遗憾的是,这样的实体Include只能在单个域服务间共享实体。如果你尝试撰写多个域服务,并用到关联实体,会报如下错误:The entity type 'MiniNWModel.Entities.Product' is exposed by multiple DomainService types.Entity types cannot be shared across DomainServices. S 阅读全文
posted @ 2011-07-05 13:18 陆敏技 阅读(3353) 评论(3) 推荐(1) 编辑
摘要:一:数据库支持为了演示本例,我们创建了另外一个简单的示例数据库MiniNW,该数据库来自于ADO.NET Entity Framework Extensions,但在本例中,我们不会使用这个针对EF的扩展框架,因为它对POCO的支持不好,同时它也不支持DbContext,简单的说来就是它目前不支持EF4.1。MiniNW可以在本示例代码的如下位置获得:数据库对应关系如下(由于数据库相对简单,所以直... 阅读全文
posted @ 2011-07-04 09:02 陆敏技 阅读(12064) 评论(4) 推荐(11) 编辑
摘要:XAML的调试历来是较为繁琐且不方便的,处理稍有不慎或者初学者通过在VS中手写绑定代码,极度容易写出不规范的绑定代码。所以,我们对于团队成员在此方面的唯一要求就是:使用Expression Blend处理ViewModel绑定。不然,你就会常常听到团队成员烦躁:太奇怪了,我绑定对啊,为什么总是出不来值。没错,“太奇怪了”,是开发人员的一种呻吟。一:ViewModel和当前页面的绑定采用绑定的措施,下面的代码是要极力避免的。这样的代码通常出现在Code Behind中:我们需要VM在前台XAML中生成实例。具体步骤如下:1:去除红框内的代码;2:为页面指定DataContext首先是选中最上层的 阅读全文
posted @ 2011-07-01 16:18 陆敏技 阅读(3344) 评论(25) 推荐(7) 编辑
摘要:对数据库表指定字段的查找,又是实际工作中的一项必要工作。SL客户端仅获取实际需要的指定的字段,好处很多,比如:有助于减少网络流量。有两类这样的使用场景。1:联表查询不需要外键表在上一篇中,我们使用了联表查询,在联表查询中,DAL部分的代码是这样的:我们已经指出,无论是你是否使用Include方法,只要实体类指定了Include特性,客户端都会获取到被关联的Course记录。诚然,有时候我们需要满足... 阅读全文
posted @ 2011-06-30 17:42 陆敏技 阅读(3215) 评论(0) 推荐(2) 编辑
摘要:在上一篇中我们对EF中的POCO进行了映射,如果这个时候我们使用主外键来进行联表查询,会很遗憾的发现凡是关联表的信息,在客户端获取的全部是null。本篇我们介绍如何使用Entity Framework和WCF Ria Services在SL客户端获取主外键联表查询的数据。1:添加引用第一步,为Model项目添加引用System.ServiceModel.DomainServices.Server,... 阅读全文
posted @ 2011-06-30 16:09 陆敏技 阅读(3636) 评论(5) 推荐(2) 编辑
摘要:1:SL的数据验证和WPF的不同首先,很遗憾,SL中不再存在ValidationRules,要在SL中绑定时验证数据,并且显示在UI,只能依赖于NotifyOnValidationError=True, ValidatesOnExceptions=True这两个属性,如下:如果要查看WPF的数据验证的方式,可以查看该文《WPF快速指导5:验证》。2:一般情况下的验证一般情况下,UI绑定数据类型的属性,如在上图中,绑定的就是Name和Age,它在UI的VIEWMODEL中,如下: public class MainPageVM : INotifyPropertyChanged { public 阅读全文
posted @ 2011-06-23 17:34 陆敏技 阅读(1037) 评论(0) 推荐(0) 编辑
摘要:上一篇粗粗讲了一下如何使用EF4.1,针对POCO进行MAP,此篇在此基础上进行一下深入,具体讲一下如何进行映射。1:主外键中的1对多映射还是针对School数据库。查看如下两个表:可以知道,两者的关系是:也就是说,Department对于Course来说,是1对多的关系。数据库中实际的数据如下:1.1:对应的实体类Department实体类(关系中的1):Course实体类(关系中的多):1.2... 阅读全文
posted @ 2011-06-20 21:36 陆敏技 阅读(1650) 评论(0) 推荐(1) 编辑
摘要:1:选择测试框架几乎所有的SL开发人员,都会安装Silverlight Toolkit,如果安装了这个框架,那么自然就会带上一个Silverlight Unit Test Framework。如果安装顺利,我们会在新建项目的时候,我们会在项目模版中发现多了如下一个项目:同时,如果我们在项目中新建项,会发现多了如下的文件模版:值得注意的是,安装该模版有一个BUG。那就是如果我们的VISUAL STUDIO没有安装在默认的路径下(如安装在D盘),就会发现我们找不到Silverlight Unit test Template。要让VS找到模版,我们需要:把C:\Program Files\Micro 阅读全文
posted @ 2011-06-19 12:03 陆敏技 阅读(2118) 评论(0) 推荐(2) 编辑
摘要:在上一篇中《使用Entity Framework和WCF Ria Services开发SilverLight之2:POCO》,我们将映射交给edmx文件处理。如下:该文件是由EF框架自动生成的,通过查看原始文件,我们可以看到EF框架为我们建立了实体类间的各种映射。现在,借助于EF4.1框架,我们可以进行更方便的进行手动映射。1:清理SchoolData首先,删除ModelSchool.edmx。其... 阅读全文
posted @ 2011-06-17 22:07 陆敏技 阅读(4718) 评论(8) 推荐(2) 编辑
摘要:在上一篇中《使用Entity Framework和WCF Ria Services开发SilverLight之1:简单模型》我们提出这类简单模型的几个问题:1:实体模型被紧耦合在EDM中,同时它不能项目(模块)使用。随着每一次更新EDM,实体模型会被覆盖;2:EDM和BLL紧耦合在一起;3:没有提炼出数据接口,导致我们没有办法在此示例中进行单元测试。示例中虽然存在测试项目,但那是数据库相关的,达不... 阅读全文
posted @ 2011-06-13 06:58 陆敏技 阅读(4453) 评论(13) 推荐(2) 编辑
摘要:本文目的是通过Silverlight ria service完成一次数据的读取过程,并且在此基础上建立测试项目。Ria service借助于WCF和ADO.NET Entity Framework构建分布式开发框架。使用它可以快速构建自己的开发模式。1:基础结构首先,创建SL APP,如下:然后,选择创建web:可以,也可以不勾选enable wcf ria service,如果勾选了,在SL A... 阅读全文
posted @ 2011-06-10 15:43 陆敏技 阅读(4437) 评论(4) 推荐(4) 编辑
摘要:1:项目结构图2:控件SilverlightControl1前台:后台: public partial class SilverlightControl1 : UserControl { public SilverlightControl1() { InitializeComponent(); } public static readonly DependencyProperty StudentProperty = DependencyProperty.Register("Student", typeof(Student), typeof(SilverlightContro 阅读全文
posted @ 2011-06-09 13:53 陆敏技 阅读(3831) 评论(1) 推荐(1) 编辑
摘要:本篇讲述使用MVVM来开发用户控件。由于用户控件在大部分情况下不涉及到数据的持久化,所以如果将M纯粹理解为DomainModel的话,使用MVVM模式来进行自定义控件开发实际上可以省略掉M,变成了VVM。一:基本结构本演示样例包含两个项目,WpfControls是用户控件项目,我们的用户控件全部包含在这里。项目WpfApplication1是Wpf窗体项目,为调用方。我们的第一步的整体解决方案结构如下所示:二:第一阶段源码建立UserControl1,要求能够对输入属性StudentName和Age,做出反应,即呈现在UI上。首先创建ViewModel,即StudentViewModel: p 阅读全文
posted @ 2011-06-06 22:11 陆敏技 阅读(12680) 评论(2) 推荐(2) 编辑

Web Counter
Coupon for Contacts