摘要:这些天在用Microsoft的Prims框架整一个公司项目,刚把Bootstrapper,Module建好要调试直接跳出个错误:消息: Silverlight 应用程序中未处理的错误 代码: 4004 类别: ManagedRuntimeError 消息: System.IO.FileNotFoundException: 未能加载文件或程序集“Microsoft.Practices.Prism.UnityExtensions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的
阅读全文
04 2013 档案
摘要:本章内容涉及MVVM模式,这个模式虽然我略有耳闻,但绝对算不上精通(好吧可能入门都算不上)。我试图表达ppt原来的意思,所以这里的每一节我都花费很长的时间去完善,包括这里哪些名词需要翻译,哪些不需要。但是可能还有一些地方翻译的不是很准确或者说是有错误,还请大家多多批评指正。另最近比较忙,估计进度不会快。本节导读:本节说明了什么是MVVM,也说明了MVVM中的Model, View, ViewModel以及它们的作用和区分方法。第五章 实现MVVM模式Model-View-ViewModel模式帮助你清楚的从应用程序的用户界面中分离出业务和表现逻辑。保持清晰的应用程序逻辑和UI的分离有助于处理开
阅读全文
摘要:本章导读: 第四章讲述了模块化应用程序开发中模块的生命周期,生成方法,实例引用的存活时间等关键内容,和经常会应用到的包含定义模块在内的7种场景(以Unity为例,也说明了MEF与Unity中可能不同的4点区别)并且使用代码加以实现。更新:12-6 12:36:由于系统死机,外加更新页面不是实时更新,因而。。更新其它代码块。 12-7 10:23:修正一个没有被加粗显示的Initialize函数。这个函数在之前的版本中被打错并且没有加粗。4.4 核心场景本节描述了在开发模块化应用程序中可能碰到的场景。这些场景包括定义模块,注册和发现模块,加载模块,定义模块依赖,按需加载模块,后台下载模块,加载完
阅读全文
摘要:本节导读: 本节只有一节关键决策,在本节中您将会了解进行模块化应用程序开发前要进行何种准备工作。主要包含了如果将划分模块,如果将模块分配到程序集中,以及在Silverlight中的如何将程序集分配到xap文件中去。最后,通过一个实例说明了模块间是如何通过接口(可能是在共享库中的)达到松耦合连接。 在本章翻译完后,我会在本章最后一部分补上全部的导读。4.3 关键决策你需要做的第一个决定就是你是否要使用模块化的解决方案。模块化应用程序的优势都已经在上文中讲述了,但是在得到这些好处前,也必需付出一些东西。如果你选择开发一个模块化解决方案,那么以下内容是需要考虑的:l 确定你需要使用哪个框架,你可以构
阅读全文
摘要:本节导读: 第四章介绍了模块化应用程序开发所必要的知识和需要注意的内容。而本部分通过讲述模块化应用程序开发所注意的必要概念,包括IModule接口,模块加载过程,模块列表,模块间通信,和依赖注入容器,引出微软所推荐的两款依赖注入框架——Unity和MEF。 在本章全部翻译完成后,我会在本章最后一部分补上全部的导读。第四章 模块化应用程序开发模块化应用程序指的是将一个应用程序划分成若干个可以组合的功能单元。一个模块封装了应用程序的一部分,并且通常是一系列相关的关注点。他们包含了含有用户界面和业务逻辑相关组件的集合,比如应用程序的某些功能,或者是一些系统基础模块,比如应用程序级的日志系...
阅读全文
摘要:本章介绍: 第三章主要介绍了为什么 要选择依赖注入容器,并且通过对比,告诉用户如何选择Prism自带的依赖注入容器(也就是Unity和MEF)。而后,通过讲解依赖注入容器的两个基本操作注册和解析,以及自带容器是如何使用这两个操作,来进一步加深对容器的理解。最后,通过对IServiceLocator的讲解(包含内容讲解和使用事项说明)清楚的描述了应该如何更换属于自己的依赖注入容器以及Prism与依赖注入容器间的关系。 个人强烈建议没有使用过依赖注入容器开发项目经验的认真研讨此章,并且可以去网上查看Unity和MEF的相关资料,虽然Prism本身并不基于容器开发,但是一般Prism应用程序都会选择
阅读全文
摘要:第二章 Prism应用程序的初始化本章旨在说明一个Prism应用程序是如何启动和运行的。Prism应用程序在启动过程中需要一定配置和注册内容,这个过程也是所谓的应用程序启动引导。2.1 什么是BootstrapperBootstrapper是一个负责初始化Prism应用程序的类。使用Bootstrapper,你就可以控制Prism库中的组件是如何连接到你的应用程序中的。Prism库包含一个可以被继承的Bootstrapper抽象类,它可以使用与任何窗口。该类的大部分方法都是虚方法。你可以根据自己的需要重写这些方法。(启动过程,发图太烦了,打字说明了:创建LoggerFacade,创建并配置模块
阅读全文
摘要:第一章到此为止已经全部结束了,接下来按照计划就要翻译 附录H 的第一个示例。。。。。。感觉Prism会很好用的,真的。4. 使用Prism现在你已经见到了Prism所提供的大部份功能和设计方式,现在就应该了解使用Prism创建新的应用程序到底有多方便。这一节讲述的如何创建一个基本的Prism应用程序。通过这些基本内容你可以根据需求,扩展Prism提供的功能和设计模式。【注意】:Prism不仅仅可以让你方便的创建WPF和Silverlight平台上的复杂应用程序,也可以使用到已有程序上。一个典型的Prism应用程序应该包含一个Shell项目和若干个模块项目。下图展示了开发一个复杂Prism项目所
阅读全文
摘要:您可以在以下位置找到原文:http://compositewpf.codeplex.com/releases/view/55580前面的文字:安装PrismPrism概述Prism关键概念你可能使用和Prism不一样的设计模式和方法,或者你对设计模式等内容不熟悉。这一节提供了Prism所使用的重要概念的简介,也定义了一些在代码或者文档中所使用的术语。l Modules(模块):Modules是一些可以独立开发,测试和(任意)部署的功能包。通常不同的模块是由不同的团队开发并且维护的。一个典型的Prism包含了若干个模块。Modules可以用来表示有特定的业务关系的功能(如配置管理器 profil
阅读全文
摘要:3. Prism概述Prism设计目标Prism是用来帮助你设计和开发一个丰富,灵活,易于维护的WPF和Silverlight应用程序。Prism库文件实现了一系列重要的设计模式和构架原则,比如关注点分离和松耦合。使用这些Prism提供的设计模式和能力,你可以中设计和实现多个使用各个关联度很低但是却可以轻松整合到一起的组件,并且使用它们组合成为一个系统。Prism的核心设计思想就是关注点分离和脱耦。它使的Prism拥有了以下特点:l 可重用,Prism通过每个组件和服务都可以独立开发,测试并且组合到一个或多个系统中来保证可重用性。通过已经过单元测试的组件可以轻松的通过依赖注入组合到应用程序中,
阅读全文
摘要:本部分主要介绍如何安装Prism以及Prism的更新内容,第一章 第三部分则是介绍Prism的设计目标和重要概念。设计目标已经翻译完成啦!您可以在以下位置找到原文:http://compositewpf.codeplex.com/releases/view/555801. 准备开始Prism:1.1 前提:使用Prism需要您拥有开发WPF或者Silverlight应用程序的经验。这样你会熟悉在Prism中大量使用的重要概念。他们包含:l XAML,这是一种描述和初始化WPF和Silverlight应用程序用户界面的语言。l 数据绑定,将WPF和Silverlight应用程序将UI元素和组件和
阅读全文
摘要:我们要实现, 用户输入用户名和密码后,点击登录按钮,传递用户名和密码到服务器端, 通过WCF访问MSSQL数据库,调用存储过程,在服务器端对用户名和密码进行匹配,匹配成功,则返回登录成功,否则,则是失败。在文章开始前,我们需要做一下准备工作,开发环境需求: VS2008 SP1, Silverlight 3 Develop Tools for VS2008 SP1, 客户端Silverlight 3 Runtime, MSSQL 2005 SP3 ;建立例程数据库 SilverlightDemo,在数据库中建立一个新表 Users,包含以下字段;添加内容到Users表,为了方便起见,密码全部使
阅读全文
摘要:silverlight(简称SL)进行数据库操作,有多种方法,这里介绍最传统的通过WebService(简称WS)实现方式。本文的主要目的是在SL不支持DataSet和DataTable的基础上,提供通用的返回数据的WS方法。一:创建项目首先,创建SL应用程序,如QuestionsDbSL,创建的时候选择生成网站QuestionsDbSL.Web。另外,往往大家不想将SQL语句写在主应用程序中,所以,这里还需要创建一个业务层QuestionsDbSLServices。同时,实体层,我们创建为QuestionsDbSLModel。QuestionsDbSL:SL主应用程序;QuestionsDb
阅读全文
摘要:2常规的关系数据库访问 在Silverlight中,要实现对关系数据库的访问,主要是通过服务的方式,包括Web Service和WCF服务等,结合ADO.NET实体数据模型和LINQ to SQL等技术,以下是对这些技术路线的简要说明。2.1 Web Services原理:在服务器端(ASP.NET网站)通过 ADO.NET 编码实现数据的增删查改操作,将方法封装为 Web Service 发布;Silverlight 客户端添加 Web Service 引用,在代码中调用服务方法完成数据访问操作。优点:灵活、数据库兼容性好。缺点:代码量较大,开发效率低、安全性一般。2.2 WCF Data.
阅读全文
摘要:我们都知道在WPF中,所有的控件都有Resources属性,里面可以放Resource。一般比较常用的Resource位置就是Application的Resource和各个Window的Resource。那么这两个Resource的位置,除了作用范围不同之外,还有什么不同呢?一个不同点就是,Application的Resource会被作用一个全局共享的Resource的来源。这会给Merge Resource Dictionary带来极大的方便,但是这个性质并不像想象中的那么好用。在实际项目中,通常会对Resource的使用有如下的几点要求。1. 不要把所有的Resource放在一个文件里。我
阅读全文
摘要:Silverlight中有许多资源文件,例如:图片,音频、视频,甚至XML和XAML等非执行数据文件,在Silverlight中根据资源所处位置的不同而有所区别。 资源文件可分布在我们Silverlight项目的多个位置,在此我们将讨论以下三种情况及其相互间的关系。 1、镶嵌入程序集内 2、在.xap压缩包内而不镶嵌入任何程序集内 3、一个程序集引用另一个程序集内的资源 在操作本文实例前请先准备两个图片,分别是A.jpg和B.jpg,下面我们进入具体实验。一、建立实验环境首先,启动VS2008,新建项目,Silverlight应用程序,项目名命名为ResourceLocation,点击确定,V
阅读全文
摘要:类似css的方式。定义:.header{color:red;}应用:<div class='header'></div>Silverlight定义样式是这样:在App.xaml中定义如下:在这里定义了DataGrid的Header样式与Element的样式。注意添加引用:xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"View Code 1 <Application xmlns="http://schemas.micros
阅读全文
摘要:一.Canvas Canvas(画布)控件可能是最简单的布局控件,他提供了一个空白空间,可在上面任何地方布局你需要的控件,可操作空间的Canvas.Letf和Canvas.Top属性来执行控件在画布上的布局。注意,Canvas控件并不提供自动布局功能。选中Canvas后,可以在右边“Properties”属性栏中修改其属性,从属性栏中可以看出,Canvas是嵌 套在Grid中,所以,其位置可以由Grid属性控制。选中Canvas中的控件,可以在右边“Properties”属性栏中看到该控件在容器Canvas中的位置,包括 左距离,顶距离,以及Z坐标值。其中Left可以理解为X坐标值,Top为Y
阅读全文