09 2011 档案
摘要:在项目中时常会运行很多极其复杂的算法之后再更新UI控件,可是我们发现这会耗费大量的时间,几乎让UI进程假死。有什么办法可以让程序在后台完成这些复杂的算法,当算法完成的时候再去更新UI控件以避免UI进程假死的情况呢?对了,多线程技术!后台创建一个线程来进行复杂计算,就可以不耽误UI线程更新UI控件。可是如果直接在线程执行的函数里面去更新UI控件则会报“跨线程访问无效”的错误提示。下例中前台XAML文件里有两个UI控件label1和label2,在这里通过调用this.label1.Dispatcher.BeginInvoke方法执行labelInvoke委托的函数UpdateLabel(stri
阅读全文
摘要:DispatcherTimer 线程注意要点:一、能直接访问并操作UI界面元素。二、需要注意会造成UI线程阻塞,就是界面卡机的情况。可以理解为占用UI线程,因为它可以直接访问并更新UI。这种线程一般不推荐使用。这种线程实际上会造成UI线程的阻塞,其它线程也可以造成线程阻塞。主要是这种线程在它的Tick事件中执行的都是占用UI线程,也就是说它在执行定时器事件的时候会和UI界面线程同步。如果是后台线程使用的不当,写的不好的话。其线程也会造成页面卡机。以上是个人初学的理解。其特点是使用方便可以直接访问并操作UI界面元素。下面是silverlight实例代码usingSystem;usingSyste
阅读全文
摘要:Thread线程注意要点一、不能直接访问UI线程。也就是和UI界面同步,一同步也就是操作和更新UI界面。这时候UI线程自然就会阻塞。这个在DispatcherTimer定时器是可以直接访问更新UI界面的线程。在DispatcherTimer线程里会有介绍。二、如果需要跟新访问UI界面元素稍稍代码上优点小繁琐。silverlight+WCF开发,由于WCF默认方式为异步。虽然能实现WCF同步。但是,是以阻塞线程达到的。线程阻塞用户体验度就降低了。实例中设置了线程的后台模式,可以把它简单的理解成。让微软的内存回收机制来管理。this.Dispatcher.BeginInvoke用来异步操作UI,
阅读全文
摘要:Silverlight的RIA应用中访问远端的WebService或WCF服务,都是通过异步线程模式调用的。在某些情况下我们的调用是需要同步进行,虽然Silverlight没有内置同步线程模式调用远端服务接口,但是我们可以通过多线程的处理来伪装出同步调用的实现。在.NET Framework的多线程编程中提供了丰富的线程接口,其中AutoResetEvent和ManualResetEvent在多线程编码中最为常用,本文将介绍如何通过AutoResetEvent的线程等待特性实现Silverlight同步调用远端WCF服务。一、定义WCF服务 为了演示同步调用WCF服务的实现,提供一个简单的W.
阅读全文
摘要:先把问题描述一下:已把AD用户“User1”加到SharePoint站点中,然后进行如下类似操作:将“User1”从SharePoint站点中删除,将“User1”从AD中删除,在AD中增加一个新用户“User1”,在SharePoint站点中增加一个用户“User1”,这时,您会发现很有意思的问题:可能可以成功增加这个用户,但是这个用户始终无法登录到SharePoint站点中;或者根本增加不了这个用户到SharePoint站点中,提示您站点中已经存在这个用户了。在上次CSDN站点的SharePoint技术聊天活动中,有参与的网友询问了类似的问题,由于当时我在聊天活动中无法给出非常详细的解释,
阅读全文
摘要:当我们自己在_layouts下或者MOSS的应用程序池里的项目想使用MOSS自带的RichText Editor控件:其实用户很简单,2步搞定:复制脚本<linkrel="stylesheet"type="text/css"href="/_layouts/2052/styles/core.css?rev=XygLPcJn29Jca2z%2BY5dhJg%3D%3D"/><scripttype="text/javascript"language="javascript"src=&
阅读全文
摘要:每个人的博客园子上都有个小日历,挺好的,像在MOSS的Blog模板中加入一个这样的日历,很简单,不需要任何代码,用Designer搞搞就可以。加入脚本functionMoveToViewDate(strdate,view_type){varwUrl=window.location.href;//blogs/default.aspx?CalendarDate=2008%2F8%2F22&DashedDate=2008-8-22vargUrl="/blogs/Lists/Posts/Calendar2.aspx";//blogs/Lists/Posts/Calendar
阅读全文
摘要:最近总是看到很多人都在问:SharePoint究竟能作什么?都用来作了什么?微软MOSS 经过多年发展, 已经演化到2010版本了。这里我把自己接触到的MOSS的应用场景中的一部分说下,可能也不是很全,希望能给大家一些启发,能激发出更好的想法,作为抛砖引玉。第一:自定义列表的应用自定义列表因为非常灵活自如、配置方便快捷、自带的功能也非常完善等原因,在企业应用中非常普遍。应用1:新闻、通知用来作新闻和通知,不需要开发就可以方便实现:添加一个主题字段,内容字段(多行富文本框),必要的时候还可以增加字段:类别(下拉菜单)等。然后设置好权限,管理人员有添加删除修改权限,其他人有查看权限。设置好列表就可
阅读全文
摘要:首先贴出参考文章链接http://kb.cnblogs.com/a/1222221/抛砖引玉:关于 SharePoint 内容编辑器中的文件上传先照抄第一篇链接的一些东西吧…sharepoint里面自带的编辑器2种样式.第一个为:FullHtml, 第二个为:Compatible直接调用Sharepoint控件:SharePoint中的富文本编辑器控件<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Micr
阅读全文
摘要:SharePoint & MOSS基于OWA方式获取Exchange中未读邮件posted @2011-09-17 20:46Harvey Jiang 阅读(9) |评论 (0)编辑SPDisposeCheck集成到vs2010 ,Sharepoint开发更省事posted @2011-07-31 18:24Harvey Jiang 阅读(24) |评论 (0)编辑InfoPath在ASPX页面用XmlFormView展示posted @2011-03-24 10:47Harvey Jiang 阅读(100) |评论 (0)编辑Using Disposable Windows Shar
阅读全文
摘要:哈哈!标题和WSS3.0SDK里面一样! 不过我感觉SDK里面的代码我copy出来执行有点问题! 应该我自己的原因吧! 在看SDK之前我也做过上传文件! 现在看看之前的代码,真的是自己的觉得不好意思了.还好这次自我感觉还良好吧!:-)<form id="form1" runat="server"> <div> <asp:FileUpload ID="FileUpload1" runat="server" /><br /> <asp:CheckBox ID=&qu
阅读全文
摘要:在sharepoint中,自带一个html文本编辑器,可以对字体的大小,颜色甚至复制和粘贴都可以。这次做项目我们准备通过spd把这个编辑器放到自定义的aspx页面中。费了很大的力气,终于在博客堂(抛砖引玉:关于 SharePoint 内容编辑器中的文件上传)和另一个老外的博客上找到了答案,简单的实现如下,具体的原理可以到博客堂看。需求:把如下的控件放到自定义的aspx页面里。实现:页面的开头做如下的引用:<script type="text/javascript" language="javascript" src="/_layouts/
阅读全文
摘要:在SharePoint中,自带的富文本编辑控件有许多的不足之处,比如说不支持Firefox浏览器、不能管理上传图片等,还有一些功能也比较弱,这给我们平常的使用过程中带来了不好的感受。不过telerik公司给我们提供了一个替代产品,RadEditor,相信许多朋友一定不陌生吧。Free Lite MOSS Edition是其中的一个免费版本,通过在MOSS中安装Feature,我们可以使用这个出色的编辑控件。下面我将为大家简单的做下介绍:下载地址:http://www.telerik.com/community/free-products.aspx下载需要注册,不过没关系,很快。下载结束后,找到
阅读全文
摘要:微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面:开发工具增强:Visual Studio 2010具有可视化的设计工具,创建项目时可以选择运行时版本是3.0还是4.0,BLEND4加入XAML和C#代码全方位智能感知功能、XAML的样式应用更为易用等。摄像头与MIC硬件支持:可以用极少量的代码实现启用用户本机的WebCam和Mic,并可进行本地录制。报表打印支持:报表打印问题在Silverlight4中得到的较好的解决
阅读全文
摘要:微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面:开发工具增强:Visual Studio 2010具有可视化的设计工具,创建项目时可以选择运行时版本是3.0还是4.0,BLEND4加入XAML和C#代码全方位智能感知功能、XAML的样式应用更为易用等。摄像头与MIC硬件支持:可以用极少量的代码实现启用用户本机的WebCam和Mic,并可进行本地录制。报表打印支持:报表打印问题在Silverlight4中得到的较好的解决
阅读全文
摘要:微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面:开发工具增强:Visual Studio 2010具有可视化的设计工具,创建项目时可以选择运行时版本是3.0还是4.0,BLEND4加入XAML和C#代码全方位智能感知功能、XAML的样式应用更为易用等。摄像头与MIC硬件支持:可以用极少量的代码实现启用用户本机的WebCam和Mic,并可进行本地录制。报表打印支持:报表打印问题在Silverlight4中得到的较好的解决
阅读全文
摘要:微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面:开发工具增强:Visual Studio 2010具有可视化的设计工具,创建项目时可以选择运行时版本是3.0还是4.0,BLEND4加入XAML和C#代码全方位智能感知功能、XAML的样式应用更为易用等。摄像头与MIC硬件支持:可以用极少量的代码实现启用用户本机的WebCam和Mic,并可进行本地录制。报表打印支持:报表打印问题在Silverlight4中得到的较好的解决
阅读全文
摘要:微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面:开发工具增强:Visual Studio 2010具有可视化的设计工具,创建项目时可以选择运行时版本是3.0还是4.0,BLEND4加入XAML和C#代码全方位智能感知功能、XAML的样式应用更为易用等。摄像头与MIC硬件支持:可以用极少量的代码实现启用用户本机的WebCam和Mic,并可进行本地录制。报表打印支持:报表打印问题在Silverlight4中得到的较好的解决
阅读全文
摘要:微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面:开发工具增强:Visual Studio 2010具有可视化的设计工具,创建项目时可以选择运行时版本是3.0还是4.0,BLEND4加入XAML和C#代码全方位智能感知功能、XAML的样式应用更为易用等。摄像头与MIC硬件支持:可以用极少量的代码实现启用用户本机的WebCam和Mic,并可进行本地录制。报表打印支持:报表打印问题在Silverlight4中得到的较好的解决
阅读全文
摘要:微软开发者社区部门项目经理Pete Brown在纳什维尔DevLink 2010会议上做了一个名为“10件事”的演讲。这个演讲包含了Silverlight与WPF开发人员入门时应该了解的十件事。这对于还不了解Silverlight或WPF的开发人员来说是一个入门级话题。这十件事分别是:1.如何手写XAML程序;2.如何使用Expression Blend工具;3.如何写值转换程序;4.线程处理;5.异步编程;6.一个架构模式(比如MVVM或其他类似模式);7.布局系统;8.依赖属性;9.数据绑定;10.了解自己作为开发人员的局限,知道什么事情该找设计师去完成。Pete Brown Pete B
阅读全文
摘要:1、进入需要存为模版的站点(如:fyxwxx.haina.com),选择“网站操作”——“网站设置”——“外观”——“将网站另存为模版”。如图1-1所示注:1、”文件名“、”模版名称“最好输入英文名称,否则,有时候”提示站点模版过大“,具体原因有待继续研究。 2、将“包含内容”的打上钩。2、点击“网站模版”——将刚存为网站模版下载下来。如:FengHuangXiaoXue.stp3、将此“FengHuangXiaoXue.stp”上传到相应的服务器或电脑上。4、通过此命令将第3点的模版上传SharePoint管理中心。注:C:\Program Files\Common Files\Micros
阅读全文
摘要:在做一个和SharePoint有关的项目时,由于对SharePoint的unfamiliar,所以客户发了几个后缀为.stp的文件将我纳闷了半天,不知为何物。按常理,只知道.stp文件是3D 的一个标准交换文件,需要用AutoCAD、PRO/E或SW等三维处理软件来打开,但看客户给我的文件大小非常小,应该不可能是3D文件啊。后来Avrin告诉我stp文件是Sharepoint里的Template file时我才恍然大悟,孤陋寡闻,惭愧啊....这里的stp文件果然是SharePoint里的模板文件,用于将SharePoint里的List或site等结构保存下来以便移植到别的SharePoint
阅读全文
摘要:公司要求将Moss2007升级成Moss2010, 我参考http://technet.microsoft.com/en-us/library/cc303420.aspx,基本上有两种升级方法1. 数据库替换法http://technet.microsoft.com/en-us/library/cc303436.aspx, 2.产品升级法http://technet.microsoft.com/en-us/library/cc303423.aspx至于这两种升级的方法步骤,上面两个链接都介绍得很清楚了,我就不翻译了。但是要注意的是不两种方法都不是百试百灵的,我尝试了第一种方法后不成功后,...
阅读全文
摘要:最近公司HR请请将一个moss2007的调查模板文件导入到我们部门的Moss protal 上面。我想这是举手之劳,就爽快的答应了。但是导入时却报如下错误:ErrorMicrosoft SharePoint Foundation version 3 templates are not supported in this version of the productCorrelation ID: {random guid}Date and Time: ....后来一想可能是我们部门的用的是moss2010,和HR用的moss2007模板结构可能不太一样,这样让我哦一一往里面输入不累死了,所以我尝
阅读全文
摘要:在WSS中有两种方式可以实现对站点的定制:站点定义和站点模板。无论是一个站点定义还是一个站点模板都可以包含对一个WSS站点的定义:其中包括站点的列表、文件、Web part、feature和设置。 模板实际上是包括站点模板和列表模板,当用户通过Web界面或是SharePoint Designer更改一个站点或是列表的定义时,模板中仅仅记录了更改的内容而并没有包含全部定义。一个标准的自定义模板中实际上是引用了其原始的站点定义,所以当一个站点模板部署到一个新的站点上时,其引用的站点定义发生了变化,站点模板有可能就会出错。 站点模板文件的后缀名为.stp,站点模板stp文件中包含了一个站点模板库和一
阅读全文
摘要:方法一: #region Alert 弹出消息框/// <summary> /// 弹出消息框 /// </summary> /// <param name="msg">提示信息</param> private void Alert(string msg) { string str = "<script language=\"javascript\">\n"; str += "alert('" + msg + "');\n&quo
阅读全文
摘要:功能很强大的在线 photoshop 编辑器,可以在下面的界面中试一下效果。如果好可以访问http://www.pixlr.com/editor/
阅读全文
摘要:MOSS 07建立在asp.net2.0基础上引入了个非常重要功能:WEB内容管理(Web ContentManagement),它支持用户更换母版页(Master Page),修改页面完全自定义母版页面等有了统母版页支持可以统网站WebSite风格提高开发效率MOSS本身提供了很多母版供用户使用,但是往往达不到实际用户需求 MOSS母版页分为以下两类: 1:网站WebSite母版页:当前站点下当前用户创建页面所使用母版页; 2:系统母版页:网站WebSite中所有表单和视图界面等系统功能页面所使用母版页这些页面大多存在于_layout目录下面 MOSS母版页编辑工具: 我们创建自定...
阅读全文
摘要:站点模板和站点定义定制SharePoint站点,你有两种方式,使用定制的模板或创建站点定义。定制的模板使你能够通过使用用户接口来定制一个站点。例如,你可以通过一个已有的列表得到一个定制的列表,或者创建一个定制列表,作为一个列表模板来使用,而站点管理员可以从一个可用的列表模板的列表中来选择它。SharePoint Services将所有的定制模板存放在内容数据库中。你可以从“顶层站点管理”或使用FrontPage 2003来定制列表和站点范本。站点定义由位于每个web服务器文件系统中的多个文档组成。站点定义和模板一起实现对一个站点的定义。定制的模板总是同其所依赖的站点定义关联。一个定制的模板依赖
阅读全文
摘要:孩提时那无数个难眠的夜晚,时常在思考着如何干掉BOSS的方案时已不知不觉的入睡。爱游戏,痴迷到难以割舍的状态。不断的在这个虚拟的轮回世界中扮演着一个又一个的主角而无法自拔…感受着日本人给我们重温自家的三国史,体验着美国人引领我们探索那些只有他们才上过的太空,内心澎湃不只那一次两次了,心碎…上帝创造凡人于这个世界,肉体之躯又怎能惊天地泣鬼神?每天都面对着同一个键盘,同一个鼠标,我内心的滋味该向谁倾诉?为什么我们不能用自己的双手再去创造一个新的世界?在那里,人们不再有痛苦,世界不再有数不尽的战争与伤痛,孩子们有书读,不再有干旱和地震;每个大人都有开开心心的工作,不再有酒这个东西了,因为我从没打算将
阅读全文
摘要:本系列教程的示例代码下载(感谢银光中国提供资源分流):第一部分源码:WPFGameTutorial_PartI(1-20节)第二部分源码:WPFGameTutorial_PartII(21-26节)第三部分源码:WPFGameTutorial_PartIII(27-30节)第四部分源码:WPFGameTutorial_PartIV(31-35节)第五部分源码:WPFGameTutorial_PartV(37-38节WPF完)第六部分源码:[41节] [42节] [43节] [44节] [45节] [46节] [47节] [48节] [49节] [50节]地图编辑器源码:QXMapEditor素
阅读全文
摘要:Silverlight MMORPG网页游戏开发课程[一期]序言Silverlight MMORPG网页游戏开发课程[一期]第一课:控制对象移动[源码1.11.21.3] [视频1.11.2]Silverlight MMORPG网页游戏开发课程[一期]第二课:完美2D精灵[源码2.12.2]Silverlight MMORPG网页游戏开发课程[一期]第三课:封装游戏控件[源码3.13.2]Silverlight MMORPG网页游戏开发课程[一期]第四课:资源布局之动静结合[源码4.14.24.3]Silverlight MMORPG网页游戏开发课程[一期]第五课:GPU硬件加速与OOB模式[
阅读全文
摘要:Silverlight中 非UI线程更新UI 的几种方法:Delegate, AsyncOperation,BackgroundWorker首先列一下基础代码:<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/200
阅读全文
摘要:继上节动态的添加Rectangle矩形框所讲。在实际应用中,我们动态添加矩形框,然后使用鼠标右键点击该矩形框,得到一个弹出窗口,再为此矩形框关联一些实际信息。即可实现用户自定义的配置页面。本节将讲两个小技巧:一.鼠标右键菜单。二.Silverlight全屏模式。一.使用鼠标右键菜单。在这里我们需要单独引入两个Dll文件。(右键项目名称-->“添加引用”-->寻找到System.Windows.Controls.Input.Toolkit.dll[可以从本文源代码中找到]) System.Windows.Controls; System.Windows.Controls.Input.
阅读全文
摘要:本节我们讲一个关于在Sivlerlight中动态绘制矩形框的小技巧。此技巧可以让用户自定义的绘制矩形框。此技巧的关键在于,在一个Canvas中使用其事件,来绘制矩形,注意这里选用Canvas是因为Canvas.Top和Canvas.Left是一个很好的定位方法。当用户想要动态绘制一个矩形的时候,用户按下鼠标左键(MouseLeftButtonDown事件),记录当前鼠标点击的Canvas坐标,然后鼠标移动(MouseMove事件)的时候再记录当前鼠标移动到的点位,由此动态生成一个Rectangle矩形框。这个矩形框就会跟随你鼠标移动变换大小,当鼠标左键弹起(MouseLeftButtonUp事
阅读全文
摘要:接上节所讲的,Silverlight可以加载外部的XML文件里面的内容,那么我们可不可以在外部XML里面配置一个WebService地址,并且以此加载这个地址来动态加载WebService呢?这样子就可以避免当WebService地址改变的时候,还要打开XAP包来重新修改WebService配置的地址了。 答案当然是可以的。在这里,我制作了一个实例。 在前面一节里面,我们讲到了使用WebClient来下载Silverlight程序外部的XML文件内容。在本节中,我们重点需要讲解一下如何使用反射来动态生成WebService代理类。关键代码如下:publicvoidInitializeServi
阅读全文
摘要:使用WebClient读取XAP包同目录下的XML文件 我们想要读取XAP包下面的XML文件,需要将此XML文件放在加载XAP包的网页的目录中去,然后使用URI方式读取此URL方式下的XML文件。 首先使用WebClient来异步下载此URL方式的XML文件,然后使用XmlReader来读取此XML文件的数据内容。 在这里我们一共有3个知识点需要掌握: 第一:获取当前调用此Silverlight程序XAP包的网页的地址的前缀,以获取XML文件的URL地址。 public static string GetURL() { ScriptObject location = (HtmlPage.Win
阅读全文
摘要:使用C#一个最常见的问题便是各种类型间的转换。我们知道,C#中的类型分为值类型和引用类型两大类。但是,有关它们间各自转换的细节描述在网上很少得到详细的回答。现在,我结合搜索到的部分资料整理如下:1,问题c#中类型转换的有两种,()转换和convert转换。我想知道的是这两个转换的区别还有就是()转换我用了发现好多不能转换过来,但是convert是万能转换的,那什么时候该用()什么时候该用convert呢?最后问下子,把int sum 怎么用()转换成float类型?请详细说明,最好有举例。解答:(1)这两个方法的最大不同是它们对null值的处理方法:Convert.ToInt32(null)会
阅读全文
摘要:【IT168 专稿】Silverlight是微软重要的RIA工具,可以广泛应用于网络应用开发领域和桌面领域。事实上,自Silverlight for Windows Phone 7登台以来,Silverlight已经吸引了越来越多的开发者。与其直接的竞争对手Flash一样,Silverlight自第一个版本问世以来,已为多线程计算提供广泛而丰富的支持。整体而言,在Silverlight中引入多线程的根本动机主要是为了解决用户体验中的响应速度,进而减少单线程带来的阻塞问题。 在本系列文章中,我想尽可能详细地总结Silverlight 4对于多线程编程技术的支持。其中提供的相关示例代码供读者朋友.
阅读全文
摘要:1.使用WaitHandle 等待句柄应当是你进行多线程编程的必备装备。由于我们的主要兴趣点在于Silverlight多线程编程相关的内容,所以我们不想再深入探讨WaitHandle。但在此为你提供一个典型的例子,告诉你使用WaitHandle的基本方法。 清单1: public partial class MainPage : UserControl AutoResetEvent handle = new AutoResetEvent(true); public MainPage() InitializeComponent(); new Thread(() => whil...
阅读全文
摘要:数据库设计Step by Step (10)——范式化2011-09-04 17:42 by DBFocus, 3549 visits,收藏,编辑引言:前文(数据库设计Step by Step (9)——ER-to-SQL转化)讨论了如何把ER图转化为关系表结构。本文将介绍数据库范式并讨论如何范式化候选表。我们先来看一下此刻处在数据库生命周期中的位置(如下图所示)。前几篇博文中我们详细的讨论了ER建模的方法。精心设计的ER模型将帮助我们直接得到范式化的表或只需稍许修改即为范式化的表,设计、绘制ER图的重要性也体现在这里。概念数据建模(ER建模)从一开始就潜移默化的引导着我们走向范式化的数据库表
阅读全文
摘要:上周,我整理了《jQuery设计思想》。那篇文章是一篇入门教程,从设计思想的角度,讲解"怎么使用jQuery"。今天的文章则是更进一步,讲解"如何用好jQuery"。我主要参考了Addy Osmani的PPT《提高jQuery性能的诀窍》(jQuery Proven Performance Tips And Tricks)。他是jQuery开发团队的成员,具有一定的权威性,提出的结论都有测试数据支持,非常有价值。==============================================jQuery最佳实践阮一峰 整理1.使用最新版本的j
阅读全文
摘要:看了个BUILD的PPT,Windows Runtime (RT)并不是一些新闻网站说的那样微软自废.NET武功,而是恰恰相反,WinRT是Win32API的现代版,其中有很深的.NET的基因,是Metro UI的.NET基础,如果考察Metadata的变化,WinRT的API定义的元数据是基于标准ECMA 335,也就是.NET的标准 ,WinRT也是一个沙箱的环境,针对AppStore环境设计的。基础知识微软以推出Windows 8为契机,以解决Windows长期存在的问题,并带来了新的用户界面,使得Windows更加安全和AppStore的商业模式。微软在Windows 8 里打造了第三
阅读全文
摘要:背景: 最近进在做一个MOSS Farm的管理报表,需要By Farm,By Site,By Web,By Libray,By Document去检索文件的生命周期。在开发的过程中Farm可以通过手动维护(数据不会超过10笔),site\web可以通过web表来获取,以及Libray可以通过siteid和webid来写C# Console程式在Web Webserver下周期执行来得到文件库的数据。 最后,遇到一个问题,如何通过SP对象模型编程,来得到Document的数据。思路:1、 利用SPFold模型,Feach遍历SubFolders对象来查询子文件夹下的文档模型对象。 2、 利用sp
阅读全文
摘要:W(x)=(G(x)-G(y))*cos(α/2)W(y)=(G(x)+G(y))*sin(α/2)G(x)=(W(y)*cos(α/2)+W(x)*sin(α/2))/(sinα)G(y)=(W(y)*cos(α/2)-W(x)*sin(α/2))/(sinα)由于α=60 导致cos(α/2) = sinαsin(α/2) = cosα相关开发知识可以参考深蓝博文:http://www.cnblogs.com/alamiye010/archive/2009/06/17/1505344.html
阅读全文
摘要:1.1.1 摘要 相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等)。我也看到过很多人写过.NET中加密算法总结,但我发现个别存在一些问题,很多人喜欢罗列每种加密算法的具体实现,假设我们要求实现AES和Triple DES加密算法,的确可以很多地分别给出它们的具体实现。 那我们真的有必要给出每个加密算法的具体实现吗?而且这样的设计不符合OOP设计思想,最重要的是我们要维护多个加密算法啊!OK接下来让我们实行一个可扩展和好维护的加密算法Helper。1.1.2 正文图1 Hash加密算法继承层次 从上面的继承层次我们
阅读全文
摘要:Silverlight游戏开发中时常会碰上一些看似简单,可做时却发现挺棘手的问题。于是我打算通过一个小系列将平时较常用以及朋友们提问较多的问题进行归纳,同时分享我自己的解决方案,旨为大家提供更多实用且可行的参考,避免弯路。一)知己知彼,轻松获取客户端相关参考信息客户的机器配置各不相同,这我们确实无法控制。然而程序是活的,我们可以像做脚本及插件那样去适应不同的配置,从而使得每位客户都能获得都最佳体验效果,这也是未来游戏设计所需考虑到的重要环节之一。首先以获取客户端IP地址为例,我们可以通过在在页面中的Silverlight对象中添加以下参数:<objectdata="data:a
阅读全文
摘要:Silverlight 中实现Service同步调用Silverlight中实现同步调用Service,核心是用到了MS的Interlocked.Increment.Interlocked.Increment是做什么事情的?如果有两个Thread ,分别记作threadA,threadB。1:threadA将Value从存储空间取出,为0;2:threadB将Value从存储空间取出,为0;3:threadA将取出来的值和1作加法,并且将和放回Value的空间覆盖掉原值。加法结束,Value=1。4:threadB将取出来的值和1作加法,并且将和放回Value的空间覆盖掉原值。加法结束,Val
阅读全文
摘要:(hide this)04SEP2011The Big List of What’s New or Improved in Silverlight 5.NETSilverlightSeveral of you have asked for a more complete list of the features that are new or improved in Silverlight 5, especially those new to the RC. Here is my mostly complete list of major features. I haven't inc
阅读全文
摘要:尽量使用代码控制;尽可能早的计划好所有的用户控件;这样可以提前预期控件之间相互运作情况,便于整合项目;尝试分割不同功能到不同的用户控件; 现在无论国内国外,开发队伍通常来说都是3个人以上,分割不同功能到不同的用户控件,可以减少相互之间的冲突和影响; 另外,在测试的时候发现问题,对于不同的小功能区域,方便Bug定位;另外也方便功能模块的再利用。 这个是现在Web项目开发的一个常用规则。尽量少用Loaded事件;初始化的问题; 在每个用户控件中,需要创建Initialize和Deinitialize公共方法。 在实际项目中,你可以把Event Handlers或者必须要运行一次的代码,添加到Ini
阅读全文
摘要:C#端代码:String text = "lenny";string text2 = "dou";HtmlPage.Window.Invoke("calledBySL2", new object[] { text, text2 });Html端代码:function calledBySL2(obj, obj2) {alert("Hello: " + obj + ", " + obj2);}------------------------------------------------------
阅读全文
摘要:代码function strlen(str){ var i; var len; len = 0; for (i=0;i<> { if (str.charCodeAt(i)>255) len+=2; else len++; } return len;}/** 判断是否为数字,是则返回true,否则返回false*/代码function f_check_number(obj){ if (/^\d+$/.test(obj.value)) { return true; } else { f_alert(obj,"请输入数字"); return false; }}/
阅读全文
摘要:The Microsoft Silverlight plug-in defines the area in which the Silverlight-based application displays. You embed the plug-in within its host HTML page, and you can either position the plug-in somewhere inline in the HTML page display or you can have the plug-in take up the entire HTML page. You use
阅读全文
摘要:如果你已经安装了silverlight并能在IE7或Firefox 2中运行,请直接复制下边的代码存成.htm来浏览。<html><head></head><body><scripttype="text/xaml"id="xamlContent"><?xmlversion="1.0"?><Canvasxmlns="http://schemas.microsoft.com/client/2007"xmlns:x="http://s
阅读全文
摘要:一、问题Silverlight在访问WebService的时候,是需要在被访问的服务部署目录下检测到“跨域访问安全策略文件”的。因此在很多silverlight应用使用第三方服务的时候,就受到了很多限制。那么如果服务提供者不提供策略文件,我们怎么做才能在应用中使用这些服务?我通常采用下面的方法解决。二、思路跨域访问安全性问题,在于Silverlight自身做的限制,如果SL应用访问一个和自己在一个Domain的WebService的话,是不会发生这类问题的。那么很自然的想到,为什么不能在本地建立一个WebService,然后使用这个服务作为代理,去访问第三方服务。不就可以绕过这个安全限制了吗?
阅读全文
摘要:Silverlight 4常用StringFormat格式总结时间:2011-04-25 12:45来源:银光中国网作者:Jv9点击:1487次在Silverlight项目中,经常会根据需求的不同,提供不同的字符格式到客户端。这篇文章总结了目前Silverlight 4常用StringFormat绑定字符格式,方便大家在随后的开发中调用参考。 在Silverlight项目中,经常会根据需求的不同,提供不同的字符格式到客户端。这篇文章总结了目前Silverlight 4常用StringFormat绑定字符格式,方便大家在随后的开发中调用参考。早期的格式转换方法在Silverlight 4之前的.
阅读全文
摘要:SilverLight 出于对安全性的考虑默认情况下对URL的访问进行了严格的限制,只允许访问同一子域下的URL资源。下表列出了Silverlight 2.0 中 URL 访问规则:WebClient对象Media、images、ASXXAML 文件、Font 文件流媒体允许的协议HTTP, HTTPSHTTP, HTTPS, FILEHTTP, HTTPS, FILEHTTP跨协议访问不允许不允许不允许不允许来自HTTPS的访问跨Web域访问不允许如果不是来自HTTPS则允许不允许允许跨安全区域访问(Windows)不允许不允许不允许不允许跨安全区域访问(Macintosh)不允许允许不允许
阅读全文
摘要:尝试向 URI“http://localhost:8001/AccountService.svc”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。有关详细信息,请参阅内部异常。解决方法: 一、在WCF项目根目录下添加clientaccesspolicy.xml文件 <?xml version=&
阅读全文
摘要:CSDN博客本期热文推荐,为您介绍有关iPhone应用开发的5个博客,分享他们的日积月累的宝贵经验,希望这些文章对iPhone开发者们能有所启发和帮助。[1] 李华明:Objective-C语言随笔、iOS Cocos2d游戏开发从这一章开始,Himi将一步一步的带大家走进Iphone4的开发,当然开发语言则不再是Java,而是Objective-C。Mac os 下搭建iOS开发环境类的创建和实例化以及函数的添加和调用!iPhone 游戏开发:游戏引擎剖析iPhone 游戏开发:创建视图并绘制简单图形搭建cocos2d游戏引擎环境HelloWorld!Cocos2D 游戏开发资源贴(教程以及
阅读全文
摘要:CSDN博客本期热文推荐,为您介绍有关Android应用开发的10个博客,分享他们的日积月累的宝贵经验,希望这些文章对Android开发者们能有所启发和帮助。[1] 张国威:Android从入门到提高系列前面写了十四篇关于界面的入门文章,大家都看完和跟着练习之后,对于常用的Layout和View都会有一定的了解了,接下来的文章就不再强调介绍界面了,而是针对具体的常见功能而展开。[2]懒骨头:《Android Dev Guide》系列教程翻译文章1-18本系列文章为Android SDK翻译文章,其实SDK是最好的学习例子。系列一:什么是Android?Android是一个移动设备的软件集,他包
阅读全文
摘要:以“用户体验”为中心,并与用户做好交互的产品设计理念,正逐渐成为互联网产品公司的共识。只有用户体验好的产品才能在竞争激烈的IT行业中脱颖而出,深深吸引用户。然而产品该如何设计,才能拥有好的用户体验呢?可谓是仁者见仁,智者见智。9月17日于北京举办的2011中国交互设计体验日邀请了众多业界知名交互设计专家,分享了他们在设计工作的经验与心得。交互创新未来广州美术学院工业设计学院院长 童慧明2009年,交互设计专业正式在中国浮出水面并迅速发展起来。虽然同为设计,但它却与传统设计行业中的建筑设计、工业设计、平面设计等设计门类有着明显的不同。广州美术学院工业设计学院院长童慧明教授表示,交互设计根植于服务
阅读全文
摘要:砌体(Masonry)是一种网页排布形式,类似于砖砌体、石砌体建造的结构,如下图,左侧是传统的使用CSS浮动实现的布局效果,右图是砌体排布。砌体布局在不规则的网页内容块布局中非常有用,能够充分利用网页空间,很多网站的照片浏览就采用了砌体形式。今天这篇文章就和大家分享25个基于jQuery实现的砌体网页设计作品,一起欣赏。Photography by Koa MetterChromeographyPattern Tap – AlphaPuma RunningDazed DigitalRather SplendidThe Inspiration Theme – Veerle PetersUntit
阅读全文
摘要:正常方法创建的WCF服务,就是在asp.netk中的.SVC后缀的是无法使用httpcontext.current等信息的解决办法就是在服务前加上个标识:[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]此标识是加在服务的class前的..不是接口中别忘了引用 System.ServiceModel.Activation.dll和在类上面using System.ServiceModel.Activation;还需要在web.config中加入aspN
阅读全文
摘要:由于MVVM是把View, ViewModel, Model紧紧绑定在一起的模式,特别视图和视图模型通过实现观察者模式双向绑定和NotifyPropertyChanged事件,似乎更加容易造成内存泄露/内存不释放。网上也有这种说法。真的是这样的吗?我们来实际测试一下。实际测试MVVM是不是容易内存泄露为了说明问题,我把MVVM搞复杂一点,在ViewModel里面引用一个Singleton单例模式的Service,这个Service定义如下: 1: namespace SilverlightApplication1.Service 2: { 3: public class G...
阅读全文
摘要:在WCF RIA Service实体类中如果加了自定义的复杂类型,例如下面的Children属性,就是一个实体自己的一个列表:如果有个DomainService返回这个StudentResult:那么在Silverlight客户端,你会发现实体StudentResult的Children属性不可见。原因和解决方法原因是WCF RIA Service是对WCFService的一个封装,对需要用到的实体用DataContract标记并序列化,并且有一个自动客户端代码生成的机制。在CodeGeneration的过程中,并不是每一个属性都会被自动生成,除非必要。解决办法是你手动指定CodeGenera
阅读全文
摘要:在IIS部署Silverlight应用和WCF RIA Services,出现异常:未能加载文件或程序集“System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。Could not load file or assembly 'System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, P
阅读全文
摘要:现代人都很忙,但忙的可能没有效率,可能在“忙人”摸象,也就是瞎忙。也许你的效率可以提升20倍,也许你的激情和潜能可以提升10倍!秘诀就在于目标管理、时间管理、精力管理、如何在短时间内完成更多的事情、如何从痛苦的修行中悟道、如何尊崇内心的自由、如何有更多的时间去享受生活、如何动态平衡工作和生活?!这里有能大大提升工作效率和时间效率的几个重要的工作习惯:1. 每天一上班就进入状态,不要浏览网页,快速聚焦最重要的工作项上面一些好习惯的养成,常常有助于工作效率的提高。比如,每天一进入办公室就进入状态,浏览一下邮件,列出今天要完成的工作,首先集中于做最最重要的事情。不要一上班就浏览网页和新闻,来自朋友的
阅读全文
摘要:Understanding WCF Services in Silverlight 2Sunday, November 16, 2008Also Available for Download:XPSorPDF(74-pages)If you like this document, please consider writing a recommendation for me on myLinkedIn account.ContentsIntroductionService Setup In DepthClient AccessService Access Without MagicThe As
阅读全文
摘要:在Silverlight+WCF RIA Service或者WCF Service的架构中,经常会遇到WCF序列化65536大小限制的问题。由于WCF RIA Service没有提供明确的异常信息和错误信息,所以往往构成误导。WCF RIA Service没有提供准确的异常信息和错误原因比如我就遇到Silverlight客户端调用WCF RIA Service失败,异常信息是:System.ServiceModel.DomainServices.Client.DomainOperationException: Load operation failed for query 'GetPr
阅读全文
摘要:自定义的asp.net翻页控件,利用RenderContents事件,动态生成页码,并用JAVASCRIPT触发后台翻页事件用脚 本触发事件得实例接口:IPostBackEventHandler其下有一个方法publicvoidRaisePostBackEvent(stringeventArgument)也就是当点击事件:output.AddAttribute(HtmlTextWriterAttribute.Onclick,Page.ClientScript.GetPostBackEventReference(this,"__sp_TurnPage_"+preIndex+&
阅读全文
摘要:我们在发送邮件时,一般图片都是用网络路径,但有时如果接收方不可直接访问外网,就不能看到图片了,比如公司内部邮件,跟外界就没法交流图片。那么我们就来把图片嵌入邮件中;查看人就没有限制了。1。以linked的方式,此方式在邮件中不会出现图片的附件邮件内容调用图片格式为:<img src=\"cid:Email001\">发送邮件的服务端代码为:SmtpClient 发送邮件的对象折叠C# 代码System.Net.Mail.MailMessagemailMessage=newSystem.Net.Mail.MailMessage(); mailMessage.Fro
阅读全文
摘要:大家可以看到此工具用的是msbuild等工具来编译的,那为什么还要使用此工具呢? 主要是我们如果在做一个大项目 ,而且要做自动化编译,不止是编译就完了,要分析编译结果,并发送邮件,保存编译记录做分析用。此工具就很实用了,此工具可以分析.sln解决方案文件与工程文件。支持可视化操作和命令参数的调用使用参数 /?可以查看所有帮助首先来看可视化界面:操作简单,就不多说了,至于那个IncrediBuild编译工具选项是要安装微软的多机编译工具IncrediBuild;并且要在config中配置折叠XML/HTML 代码<?xmlversion="1.0"encoding=&q
阅读全文
摘要:此方法只要知道SERVICE地址与要执行的方法名与参数即可调用webservice,注意这个只是在普通工程中才可用。silverlight调用方法请往后看:折叠C# 代码///<summary>///动态调用WebService///</summary>///<paramname="url">WebService地址</param>///<paramname="classname">类名</param>///<paramname="methodname"&g
阅读全文
摘要:首先我们看一下出现缓冲区写满的做法:折叠C# 代码Processp=CreateProcess("cmd",dir);//假如此处为我们从工厂中实例化一个调用cmd命令的进程p.Start(); //从这里执行一个批处理或控制台程序,也可以是一堆CMD下的命令,我们通常会用这些来做大量的文件拷贝等操作p.StandardInput.WriteLine("\""+filename+"\""+args);//写入执行参数p.StandardInput.WriteLine("exit");//输入退出
阅读全文
摘要:在我们之前的开发中,对于ajax程序,都是通过jQuery调用标记为[System.Web.Script.Services.ScriptService]的WebService,然后在WebService中调用后台的WCF。这成为WebService存在的唯一理由:作为ajax调用的中转站。如果要抛弃WebService,只需用WCF来作为中转站。在.NET 3.5时代,jQuery就可以调用WCF,之前我也写过博客(比如:jQuery调用WCF需要注意的一些问题),但配置比较麻烦。走进.NET 4的新时代,WCF的配置的确简化了不少(比如:在.NET 4中用IIS部署WCF就这么简单),WCF
阅读全文
摘要:Silverlight 动态调用 WebService1. 配置 IIS 绑定 IP地址2. 在 SL 中引用 WebService3. 在需要调用 WebService 的地方写下列代码:WCF :1BasicHttpBindingbasicBinding=newBasicHttpBinding();23CustomBindingbinding=newCustomBinding(basicBinding);45BindingElementbinaryElement=newBinaryMessageEncodingBindingElement();67//删除原来Elements集合内的Tex
阅读全文
摘要:在我们添加Service Reference的时候,可能不知道该服务最终会被部署到什么位置,或者该服务可能被迁移,此时我们可以使用以下手段进行Service的调用,提高代码编写的灵活性。步骤1:修改宿主Web页面的代码,将服务地址以初始化参数方式传入.<formid="form1"runat="server"style="height:100%"><divid="silverlightControlHost"><objectdata="data:application/x-s
阅读全文
摘要:在asp.net ajax中updatepanel比较常用,原本需要刷新的操作套在updatepanel中就成了ajax操作了,挺帅!但ajax也是支持与Xml Web Service交互的,这种方法更像是传统的ajaxpro和其他ajax框架,如jquery,magicajax,extjs的风格,但MS总是独树一帜,谁让他的产品设计能力那么高呢!我辈恐怕望尘莫及亚.闲话少叙,下面简单讲述下asp.net ajax如何调用xml web service,熟悉的朋友就略过吧1. 创建一个支持Asp.Net Ajax的网站或者网络应用程序,我使用的是vs2008,在vs2008中,如果建立的网站支
阅读全文
摘要:Silverlight由于用的是Silverlight版的.NET Framework,不是完整版,所以在Silverlight下面处理xml有点不一样。XmlDocument没有了,取而代之的是XDocument,是Linq的东东,使用起来还是很方便的: 1: XDocument xmlProducts = XDocument.Parse(xmlContent); 2: var products = from product in xmlProducts.Descendants("Product") 3: select new 4: ...
阅读全文
摘要:Json是如今流行的Ajax或Service数据交换格式,.NET使用DataContractJsonSerializer(System.Runtime.Serialization.Json命名空间下),可以很方便地在json字符串和实体对象间转换。 在Restful WCF服务站点上,更无须写代码序列化Json。服务默认以xml形式返回结果,但如果Web请求头信息中的Accept属性为application/json,客户端得到的就是以json格式序列化了结果。 客户端用jquery实现很简单,只要调用ajax函数时,设置dataType:’json’就可以了。 客户端也可以发送jso...
阅读全文
摘要:1 接口可以多重继承,但是抽象类不可以; 接口为了实现系统中的松偶合.2 抽象类与子类,是父子关系; 而接口则不是,是松偶合的关系.3 抽象类能够定义方法的实现; 接口不能包含方法的实现。4 最大的区别是由抽象类可以派生出一些成员的实现,但接口却不包含任何成员的实现5 如果继承一个抽象类,当你类更新时,所有的子类都会跟着更新;而接口是一成不变的,一旦发布了一个接口,永远不要再更改它6 少量的的接口7 抽象类可以有实现的过程,而接口没有8 抽象类可以重载9 你只能继承一个抽象类,而接口被继承的同时还可以继承其它类和接口10 接口:接口可以有静态成员、嵌套类型、抽象、虚拟成员、属性和事件。实现接口
阅读全文
摘要:作为一个通信基础平台,WCF必须保证通信的可靠性。由于消息交换是WCF采用的通信手段,通信可靠性的保障体现在确保消息的可靠传输。WCF本质上是一个消息处理框架,作为整个消息交换系统的两个终端,即发送端和接收端。换句话说,WCF仅仅负责对消息的发送和接收,一旦消息通过WCF的信道层进入了网络,就脱离了WCF的控制范围。但是,由于网络环境的限制,网络层不能百分之百地确保对消息的有效交付。如何克服中间环节的制约,确保从一端发送的消息能够被有效地交付给另一端,这就是可靠消息传输(Reliable Messaging)需要解决的问题。WCF通过可靠会话(Reliable Sessions)实现了种种端到
阅读全文
摘要:在Silverlight上实现文件上传的例子在网上的还不多,特别是多文件上传和大文件上传的例子就更少了。当然那些商品软件公司的产品除外。 目前的CodePlex上就有这样一个项目,其链接:http://www.codeplex.com/SLFileUpload/,他的个人主站链接:http://www.michielpost.nl/ 我在本地下载运行其代码后,发现“果然”很好用,而且代码写的也很规范。当然其也是免费的,但作者并不拒绝各种名义上的“捐助(Donate)”。 下面就是其“汉化”后的运行截图,首先是多文件上传: 然后是大文件上传: 根据作者的README文件,其支持下面几个初始化参数
阅读全文
摘要:本文是自已在学习silverlight当中遇到的问题及解决方法,记录下来,便于存档。也希望为遇到相同问题的Coder们, 提供一个解决方案的参考。一:Silverlight跨域Silverlight在设计的时候对网络安全方面做了很多考虑,具体可以看SilverlightSDK。跨域通信是通过在其他域的根部署使用正确跨域策略文件的Web服务,可以在该域中启用基于Silverlight的应用程序要调用的Web服务。Silverlight支持两种类型的跨域策略文件。·Silverlight跨域策略(clientaccesspolicy.xml)·Flash跨域策略(crossdo
阅读全文
摘要:这篇文章列出了我使用Silverlight进行开发后,发现的15条小诀窍。如果你是一个全职的Silverlight开发的话,我希望你能了解并掌握它们。我不会谈论MVVM,Prism或者MEF这些复杂的以至于吓跑读者的东西。1. 下图中黄色的高亮文字代表了Silverlight 对象的MIME类型,而不是运行时版本信息。许多开发人员第一次看到这段代码的时候都会认为这个地方是引用了Silverlight的版本信息,例如Silverlight 4. 一个Silverlight宿主应用程序的HTML/ASPX代码:2. Silverlight只支持PNG格式的图片,不能直接使用GIF格式的图片。如果.
阅读全文
摘要:互联网游戏当然离不开通信技术的支持,对于Silverlight,哪一种通信技术最适合开发MMORPG游戏呢?本文通过比较Silverlight支持的几种主要的通信技术的特性和适用环境,选择一款最适合我们的。1 Socket提到开发游戏,性能和速度当然是第一位的,Socket应该是首选的通信技术。因为所有的Silverlight通信技术都是基于TCP/IP的,Socket可以直接控制TCP/IP的连接和数据传输,对于网络游戏开发者来说,可以提供最大的灵活度和可控性,不过编程也是最复杂的。对于专业的Silverlight网络游戏来说,毫无疑问Socket是首选了。然而对于业余游戏开发者来说,Soc
阅读全文
摘要:Step By Step - Using Silverlight to Access a WCF Service Hosted In a Console ApplicationNote: This article is written based on a pre-release version of Silverlight and could change in future.In Silverlight, we often come across a very common requirement to consume Cross Domain Services. In order to
阅读全文
摘要:using System;using System.Text.RegularExpressions;/**//**//**//// <summary>/// RegexLib 的摘要说明。/// </summary>public class RegexLib{ //验证Email地址 public static bool IsValidEmail(string strIn) { // Return true if strIn is in valid e-mail format. return Regex.IsMatch(strIn, @"^([\w-\.]+)
阅读全文
摘要:理解领域服务和领域操作本文目录:3.1 WCF Ria Services简介3.1.1 什么是WCF Ria Services3.1.2 WCF Ria Services如何生成客户端代码3.1.3 如何使用WCF Ria Services3.2 实战WCF Ria Services开发3.2.1 使用Silverlight业务应用程序项目模板3.2.2 使用Entity Framework创建数据访问层3.3 创建领域操作3.3.1 查询操作3.3.2 查询操作命名惯例3.3.3 插入、更新、删除操作命名惯例3.3.4 调用操作3.3.5 自定义操作要使用Silverlight开发企业级的应
阅读全文
摘要:图片无法序列化后传输,但我们可以将图片转二进制字符串传输。然后在服务端将二进制字符串转图片。将图片转字符串的例子: private byte[] BmpToJpegBuff(Image img) { ImageConverter converter = new ImageConverter(); byte[] bmpSrc = (byte[])converter.ConvertTo(img, typeof(byte[])); MemoryStream ms = new MemoryStream(bmpSrc); MemoryStream msjpg = ...
阅读全文
摘要:大多數接觸Silverlight程式開發的人只要有需要對後端Server作呼叫應該都會遇到一個問題,那就是所有的呼叫都是非同步機制,而沒有任何同步的方式,這個問題的主因在於Web機制上的問題,MSDN論壇中有很多篇已討論此問題且有介紹原因,但不幸的受限於底層.在Silverlight SDK中要做到同步會有些考量因素我想未來應該也很難加入,本篇文章在於如何解決這些問題.由於Silverlight呼叫並不能同步呼叫所以必須找到一些方式來處理,熟悉MultiThread設計的人第一個想到的就是透過dotNet的Thread同步機制來處理,譬如說Thread.Join或AutoEvent等方式.但一
阅读全文
摘要:This is the first part of a two-part series on working with collections in WCF RIA Services.IntroductionA lot of business applications today are built with WCF RIA Services (which should come as no surprise, as it’s a really powerful, extensible framework). However, the collection type support could
阅读全文
摘要:This is the second part of a two-part series on working with collections in WCF RIA Services.In thefirst part of the article series, we’ve learned about the simpler collection types: EntitySet and EntityList. In this part, we’ll dig deeper into the more advanced types: the ICollectionView and the Do
阅读全文
摘要:WCF Service(WebService)Web Services是经实践考验证明的跨防火墙的通信方式,它很稳定且被广泛认可。总的来说你需要为分散的CRUD操作指定相应的接口并在Silverlight中忠实的调用他们使用的原因:需要进行类似直接通过服务进行数据库交互操作的项目(弱化业务逻辑部分)。避免使用的原因:必须始终自己监视数据的变化并调用相应的服务方法进行更新,任何需要并发的操作或事务变得较为沉重且需要处理大量的代码。ADO.NET Data ServicesADO.NET Data Services是一套简单的基于Rest的数据通信方式。它依赖于Http定义服务接口,如Get操作定
阅读全文
摘要:若您安装了 VS 2010 的 Silverlight 4 开发工具,会发现一项重量级的安装选项 -WCFRIAService。其中的最后一个项「WCFRIAServicePreview」(以 2009 年底的VS 2010 Beta 为例),会将这个全新的多层式架构,其数据访问技术,内置于 Visual Studio 2010 的开发环境中。安装完后,开启你的 Visual Studio 2010 ,若选择 Silverlight 型态的项目,你会发现,现在多了两个与WCFRIAService有关的项目样板 (Template) 了。为何WCFRIAService对于 Silverlight
阅读全文
摘要:最近正在开发一个项目,需要应用到Silverlight以及数据库。在正式开工之前需要掌握将数据从服务端送到客户端的技术,我们采用建立WCF服务的方法。“做中学”是最好的学习方法,真正实践之后学习者将会有更多的自信和把握,这种感觉将激励他更好的走下去,这也就是“Hello World”的意义之一。本文讲述如何一步一步搭建,完成借助WCF建立起Silverlight客户端和服务端的信息传输通道。这里的解决方案使用Visual Studio 10,.Net Framework 4.0, Silverlight 4.01.建立名为DataHighway的Silverlight Application下
阅读全文
摘要:一、简介 WCF RIA Services主要用于简化N层结构的SilverlightRIA应用程序的开发。当开发一个N层结构的SilverlightRIA应用程序时,一个通常的问题就是在中间层和表现层之间协调应用逻辑。为了建立更好的用户体验,你可能想要你的RIA客户端了解在服务器上的应用逻辑,但并不想开发和维护在表现层和中间层上 的应用逻辑。现在RIA服务可以解决这个问题,它提供框架组件、工具以及服务来使RIA客户端不用手动复制程序逻辑就能调用位于服务器上的应用逻辑。你所建立的RIA客户端不仅能够了解商业逻辑,而且当每次解决方案编译时会自动更新中间层逻辑。 WCF RIA Serv...
阅读全文
摘要:如果你安装了 VS 2010 的 Silverlight 4 开发工具,会发现一项重量级的安装项目,WCF RIA Services,用于Silverlight数据访问服务,比WCF和ADO.NET Data Service和Web服务都要简单.在一个三层架构的应用程序中,中间层介于表示层和数据层之间,你所写的业务逻辑和数据验证都将在中间层出现。创建拥有良好用户体验的RIA应用,你需要客户端和服务端有着相同的业务规则,因此在客户端和服务端保证同步的中间层变得至关重要。WCF RIA Services可以让你在中间层用.NET框架编写逻辑应用,下面将讲述如何使用Domain Services以共
阅读全文
摘要:Microsoft .NET RIA Services July 2009 PreviewRate This Waldemir Cambiucci 17 Jul 2009 8:44 AM Comments 3Olá pessoal, tudo certo?Nessa correria de anúncios e reuniões, acabei deixando passar o lançamento do novo Preview do .NET RIA Services: Microsoft .NET RIA Services July 2009 P
阅读全文
摘要:RIA Services Samples Project on CodePlexAnnouncing a CodePlex project with RIA Services sample apps and extensions...This is a brief post to share a CodePlex project I have set up, calledRIA Services Essentials. It will host various samples and extensions I've shared out in the past on the blog
阅读全文
摘要:Silverlight 3 + .NET RIA Services July PreviewAn exciting set of bits become officially announced today - an amazing RIA platform, Silverlight 3, and the next update for .NET RIA Services, a framework for making n-tier data-driven apps simpler...Silverlight 3is here!!! TheSilverlightplatform has com
阅读全文
摘要:What is .NET RIA Services?Microsoft .NET RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. The RIA Services provides a pattern to write application logic that runs on the mid-tier and controls access to data for queries, ch
阅读全文
摘要:Silverlight WCF RIA服务(一)简介Silverlight WCF RIA服务(二)解决方案结构Silverlight WCF RIA服务(三)创建一个RIA Services SolutionSilverlight WCF RIA服务(四)如何添加和移除RIA Services LinkSilverlight WCF RIA服务(五)使用SL商业应用模板Silverlight WCF RIA服务(六)创建RIA Services 类库Silverlight WCF RIA服务(七)中间层简介Silverlight WCF RIA服务(八)Domain Services1Sil
阅读全文
摘要:在论坛中看到经常有人碰到如何在SilverLight多个页面或者控件中传替参数或者值的问题,今天抽空通过Delegate机制实现回调实例方法重设动画参数的DEMO,分享给大家。最终结果如图: 在论坛中看到经常有人碰到如何在SilverLight多个页面或者控件中传替参数或者值的问题,今天抽空通过Delegate机制实现回调实例方法重设动画参数的DEMO,分享给大家。最终结果如图: 演示地址:http://xingjunli.webs.com/DelegateDemo.html 参考资料:动画概述:http://msdn.microsoft.com/zh-cn/library/cc189019.
阅读全文
摘要:如何:在RIA Services中允许个性化功能 使用个性化功能,我们可以为用户检索和保存属性。WCF RIA Services中的个性化功能建立在ASP.NET的个性化框架上。 我们只能在用户验证后检索或保存个性化属性。 如何:在RIA Services中允许个性化功能使用个性化功能,我们可以为用户检索和保存属性。WCF RIA Services中的个性化功能建立在ASP.NET的个性化框架上。我们只能在用户验证后检索或保存个性化属性。配置服务端项目1. 在服务端项目中,打开Web.config文件。2. 在段内,添加元素。3. 在元素内,添加个性化属性。下面示例如何创建个性化以及定义一个.
阅读全文
摘要:如何:创建自定义验证属性 WCF RIA Services框架提供了RequiresAuthenticationAttribute和RequiresRoleAttribute属性。这两个属性使我们很方便地指定哪个域操作是仅仅对验证用户或特定角色成员可用的。除了这两个属性,我们可以创建自制验证逻辑属性并对域操作应用这个 如何:创建自定义验证属性WCF RIA Services框架提供了RequiresAuthenticationAttribute和RequiresRoleAttribute属性。这两个属性使我们很方便地指定哪个域操作是仅仅对验证用户或特定角色成员可用的。除了这两个属性,我们可以.
阅读全文
摘要:演练:在Silverlight Business应用程序中使用身份验证服务 Silverlight Business应用程序模板创建的解决方案自动允许身份验证(验证模式为Forms),角色和个性化功能。解决方案包含了数据表格来登录已经存在的用户和注册新用户。我们不用写额外的代码就可以使用这些特性。 演练:在Silverlight Business应用程序中使用身份验证服务Silverlight Business应用程序模板创建的解决方案自动允许身份验证(验证模式为Forms),角色和个性化功能。解决方案包含了数据表格来登录已经存在的用户和注册新用户。我们不用写额外的代码就可以使用这些特性。我.
阅读全文
摘要:在Web应用中,我们经常会限制某些特定用户使用一些功能,并对每个用户保持性能。ASP.NET提供了身份验证、角色、个性化实现这些功能。身份验证允许我们核实用户的凭证并标记用户为已登录。角色允许我们根据职责来把用户分组,并对组中成员授予资源许可。个性化允许我们保 在Web应用中,我们经常会限制某些特定用户使用一些功能,并对每个用户保持性能。ASP.NET提供了身份验证、角色、个性化实现这些功能。身份验证允许我们核实用户的凭证并标记用户为已登录。角色允许我们根据职责来把用户分组,并对组中成员授予资源许可。个性化允许我们保持验证用户的属相并在web应用中检索这些属性。WCF RIA Service.
阅读全文
摘要:如何:在RIA Services中允许进行身份验证 WCF RIA Services中的身份验证是建立在ASP.NET验证框架之上的。 本章节展示如后在我们的应用程序中通过RIA Services来允许用户身份验证。我们必须在服务端和客户端添加代码,来使身份验证可行。这个验证对客户端就如同一个服务 如何:在RIA Services中允许进行身份验证WCF RIA Services中的身份验证是建立在ASP.NET验证框架之上的。本章节展示如后在我们的应用程序中通过RIA Services来允许用户身份验证。我们必须在服务端和客户端添加代码,来使身份验证可行。这个验证对客户端就如同一个服务。我.
阅读全文
摘要:如何:在RIA Services中允许角色功能 使用角色,我们可以指定哪个验证用户组可以访问某些资源。WCF RIA Services中的角色功能是建立在ASP.NET的角色功能上的。 我们只有在用户已经被验证后,才能检索用户的角色信息。通过在域操作中的方法上使用RequireRoleAttribute属 如何:在RIA Services中允许角色功能使用角色,我们可以指定哪个验证用户组可以访问某些资源。WCF RIA Services中的角色功能是建立在ASP.NET的角色功能上的。我们只有在用户已经被验证后,才能检索用户的角色信息。通过在域操作中的方法上使用RequireRoleAttr.
阅读全文
摘要:演练:在Silverlight商业应用程序中显示数据 在本演示中,我们将创建一个显示数据的Silverlight商业应用程序。Visual Studio提供了几个设计时工具来帮助我们创建SL商业应用程序。这个演练将展现如何使用DataSources窗口在RIA中创建与数据一起工作的用户界面。 演示将会满足下面的任务: 1. 创建SL商业应用程序,它包含SL客 演练:在Silverlight商业应用程序中显示数据在本演示中,我们将创建一个显示数据的Silverlight商业应用程序。Visual Studio提供了几个设计时工具来帮助我们创建SL商业应用程序。这个演练将展现如何使用DataSo.
阅读全文
摘要:自定义生成代码 对于WCF RIA Services,在某些情况下,我们想在客户端生成的代码中添加些东西。然而,我们不能直接定制生成代码,因为在下次中间层重新编译的时候会被覆盖掉。RIA Services在生成代码中提供了局部方法,这样我们可以在分开的代码文件中定制客户端代码。 自定义生成代码对于WCF RIA Services,在某些情况下,我们想在客户端生成的代码中添加些东西。然而,我们不能直接定制生成代码,因为在下次中间层重新编译的时候会被覆盖掉。RIA Services在生成代码中提供了局部方法,这样我们可以在分开的代码文件中定制客户端代码。这些局部方法就如同“钩子”,通过它我们可以.
阅读全文
摘要:如何:在客户端添加计算特性 我们可以在客户端添加成员属性,这些属性是有实体类中的成员属性计算而来。局部方法被用来引发事件,来通知用户界面元素数值已被更改。当我们添加计算的成员属性时,这些属性只存在于客户端项目中。 如何:在客户端添加计算特性我们可以在客户端添加成员属性,这些属性是有实体类中的成员属性计算而来。局部方法被用来引发事件,来通知用户界面元素数值已被更改。当我们添加计算的成员属性时,这些属性只存在于客户端项目中。1. 在客户端项目中,添加一个类文件。2. 声明一个局部类,这个类与我们想要修改的实体代理类具有相同的名字和命名空间。3. 添加一个属性,创建一个基于一个或多个实体代理类中值.
阅读全文
摘要:在客户端处理错误 当我们在客户端检索或修改数据时,我们通常需要处理错误和对错误做出反应。通过WCF RIA Services,我们为数据操作提供一个回调方法来处理错误,并且在回调方法里检查错误。使用回调方法是必需的,因为调用数据操作都是异步的,比且异常也是异步抛出的 在客户端处理错误当我们在客户端检索或修改数据时,我们通常需要处理错误和对错误做出反应。通过WCF RIA Services,我们为数据操作提供一个回调方法来处理错误,并且在回调方法里检查错误。使用回调方法是必需的,因为调用数据操作都是异步的,比且异常也是异步抛出的。默认下,对域操作中的所有错误都抛出一个异常。RIA Servic.
阅读全文
摘要:演练:检索和显示来自域服务的数据 想要在Silverlight应用程序中检索数据,我们调用域上下文中的方法,这些方法对应着域服务中我们想要使用的查询方法。例如,在域服务中有个名为GetProducts的方法,那么在与上下文中有个名为GetProductsQuery的方法。在SL应用程序中, 演练:检索和显示来自域服务的数据想要在Silverlight应用程序中检索数据,我们调用域上下文中的方法,这些方法对应着域服务中我们想要使用的查询方法。例如,在域服务中有个名为GetProducts的方法,那么在与上下文中有个名为GetProductsQuery的方法。在SL应用程序中,我们调用GetPr.
阅读全文
摘要:演练:编辑来自域服务的数据 当我们在域服务中添加了更新、插入或删除方法时,我们就可以在Silverlight客户端创建一个接口来让用火修改数据。EntityChangesSet对象跟踪所有的改变,并且这些改变在我们调用SubmitChanges方法时一起提交。 在这个演练中,我们将学习如何创 演练:编辑来自域服务的数据当我们在域服务中添加了更新、插入或删除方法时,我们就可以在Silverlight客户端创建一个接口来让用火修改数据。EntityChangesSet对象跟踪所有的改变,并且这些改变在我们调用SubmitChanges方法时一起提交。在这个演练中,我们将学习如何创建一个让用户修改.
阅读全文
摘要:DomainContext 从客户端项目内部,我们不直接与域服务交互。相反,会对服务端中的每个域服务在客户端生成一个域上下文类。我们在域上下文类上调用对应于域服务上想使用的方法。这个生成的域上下文类派生于DomainContext类。 DomainContext从客户端项目内部,我们不直接与域服务交互。相反,会对服务端中的每个域服务在客户端生成一个域上下文类。我们在域上下文类上调用对应于域服务上想使用的方法。这个生成的域上下文类派生于DomainContext类。查询域上下文中的查询方法通常与域服务中的查询方法有相同的名字,并有后缀Query。例如,一个域上下文中的GetCustomersQ.
阅读全文
摘要:DomainDataSource WCF RIA Services提供DomainDataSource控件来简化用户界面和域上下文中数据的交互。通过DomainDataSource,我们可以只是用声明性语法来检索、编辑数据。我们指定域上下文与DomainDataSource一起使用,然后通过这个上下文来调用操作。 DomainDataSourceWCF RIA Services提供DomainDataSource控件来简化用户界面和域上下文中数据的交互。通过DomainDataSource,我们可以只是用声明性语法来检索、编辑数据。我们指定域上下文与DomainDataSource一起使用,.
阅读全文
摘要:共享代码 WCF RIA Services允许我们编写在中间层和表示层之间共享的应用逻辑。可以共享源文件或程序集中的代码。和在客户端代码生成主题中描述的自动代码生成方法不同,共享代码在编译时时不能改动的。相反,代码在层间是逐字地拷贝或共享的。 共享代码WCF RIA Services允许我们编写在中间层和表示层之间共享的应用逻辑。可以共享源文件或程序集中的代码。和在客户端代码生成主题中描述的自动代码生成方法不同,共享代码在编译时时不能改动的。相反,代码在层间是逐字地拷贝或共享的。共享源文件可以在中间层添加源文件,然后明确指定这些文件在表示层中共享。有两种方法来在层之间共享源文件。第一种方式是.
阅读全文
摘要:如何:通过源文件来共享代码 我们可以通过源文件来在中间层和表示层之间共享代码。当在中间层修改源文件,并重新生成应用程序时,在客户端会自动同步更新了的代码。当代码不属于domain Service或实体类,而且我们不想代码经历客户端代码生成步骤时,我们把代码放在共享 如何:通过源文件来共享代码我们可以通过源文件来在中间层和表示层之间共享代码。当在中间层修改源文件,并重新生成应用程序时,在客户端会自动同步更新了的代码。当代码不属于domain Service或实体类,而且我们不想代码经历客户端代码生成步骤时,我们把代码放在共享的源文件中。通过使用共享命名规范或文件链接来共享源文件。下面示例使用这.
阅读全文
摘要:Silverlight客户端 使用WCF RIA Services,我们可以创建一个当数据交互时知道中间层应用逻辑的Silverlight客户端。还可以对可见的和可编辑的数据提供用户接口,来在提交数据修改之前应用验证规则。我们的SL控件将会使用从中间层代码自动生成类。次章节介绍SL客户端如何使用domain context, 如何与数据一起工作,以及如何自 Silverlight客户端使用WCF RIA Services,我们可以创建一个当数据交互时知道中间层应用逻辑的Silverlight客户端。还可以对可见的和可编辑的数据提供用户接口,来在提交数据修改之前应用验证规则。我们的SL控件将会.
阅读全文
摘要:客户端代码生成 当我们使用RIA Services连接中间层和表示层时,RIA Services为客户端项目生成了客户端代理类,这些类是以中间层公开的实体和操作为基础的。因为RIA Services生成了这些类,所以我们不必再复制这些中间层和表示层中的应用逻辑。因为我们对中间层所做的任 客户端代码生成当我们使用RIA Services连接中间层和表示层时,RIA Services为客户端项目生成了客户端代理类,这些类是以中间层公开的实体和操作为基础的。因为RIA Services生成了这些类,所以我们不必再复制这些中间层和表示层中的应用逻辑。因为我们对中间层所做的任何修改,在重新生成客户端项.
阅读全文
摘要:WCF RIA Services允许我们创建数据模型来综合从数据访问层得到的不同实体数据。这个模型就是表示模型。当我们不想把数据层的数据直接公开给客户端时,会使用这个特性。当使用表示模型时,可以只修改表示模型而不是客户端来回应数据访问层中的改动。还可以设计一个综合那 WCF RIA Services允许我们创建数据模型来综合从数据访问层得到的不同实体数据。这个模型就是表示模型。当我们不想把数据层的数据直接公开给客户端时,会使用这个特性。当使用表示模型时,可以只修改表示模型而不是客户端来回应数据访问层中的改动。还可以设计一个综合那些仅与客户端用户相关的字段的模型,来简化客户端代码。创建表示模型.
阅读全文
摘要:数据模型中的继承 WCF RIA Services允许我们使用做为继承体系中的一部分的实体。一个继承模型包含了一个从其他数据类派生的数据类。例如,一个多态继承模型可以包含一个Customer实体和两个从Customer派生的实体(PublicSectorCustomer和PrivateSectorCustomer)。通过RI 数据模型中的继承WCF RIA Services允许我们使用做为继承体系中的一部分的实体。一个继承模型包含了一个从其他数据类派生的数据类。例如,一个多态继承模型可以包含一个Customer实体和两个从Customer派生的实体(PublicSectorCustomer和.
阅读全文
摘要:如何自定义解决数据并发性冲突 WCF RIA Services框架把原值和更改后的值一起传递给数据访问层。这就允许数据访问层在提交数据更改之前检测数据并发性冲突。数据访问层是通过检测数据源中的当前值是否与Domain操作中检索到的值一致来判断冲突的。 我们可以为一个特定的实 如何自定义解决数据并发性冲突WCF RIA Services框架把原值和更改后的值一起传递给数据访问层。这就允许数据访问层在提交数据更改之前检测数据并发性冲突。数据访问层是通过检测数据源中的当前值是否与Domain操作中检索到的值一致来判断冲突的。我们可以为一个特定的实体自定义如何解决数据并发性冲突,这个方法在冲突确认时.
阅读全文
摘要:层的组成 WCF RIA Services允许我们为具有层次概念的数据类创建应用逻辑,例如SalesOrderHeader实体和SalesOrderDetail实体。这样相关实体就组成了所谓的层次。定义了类之间的组成关系后,就可以像操作一个单一个体一样来操作对实体的数据修改,而不是像操作独立实体那 层的组成WCF RIA Services允许我们为具有层次概念的数据类创建应用逻辑,例如SalesOrderHeader实体和SalesOrderDetail实体。这样相关实体就组成了所谓的层次。定义了类之间的组成关系后,就可以像操作一个单一个体一样来操作对实体的数据修改,而不是像操作独立实体那样.
阅读全文
摘要:如何验证数据 我们对实体和成员属性添加验证属性来实施验证规则。WCF RIA Service提供了几个验证属性来执行常用的验证检测,还提供了CustomValidationAttribute属性来执行自定义的验证检测。 如何验证数据我们对实体和成员属性添加验证属性来实施验证规则。WCF RIA Service提供了几个验证属性来执行常用的验证检测,还提供了CustomValidationAttribute属性来执行自定义的验证检测。在RIA Service中包含了如下的验证属性:DataTypeAttributeRangeAttributeRegularExpressionAttribute.
阅读全文
摘要:如何添加元数据类 WCF RIA Services支持对实体类和成员的批注。批注是通过叫做元数据类的局部类来实施的。当我们想批注一个生成的实体类,并在重新生成这个实体类时不想丢失这些批注,我们使用元数据类。通过使用[MetadataTypeAttribute]属性来指定一个元数据类。 如何添加元数据类WCF RIA Services支持对实体类和成员的批注。批注是通过叫做元数据类的局部类来实施的。当我们想批注一个生成的实体类,并在重新生成这个实体类时不想丢失这些批注,我们使用元数据类。通过使用[MetadataTypeAttribute]属性来指定一个元数据类。有两种方式来添加元数据类。一种.
阅读全文
摘要:如何在Domain Services中添加商业逻辑 即使在Domain Services中已经包含了更新、插入、删除等操作,但我们还是经常需要添加一些商业逻辑来管理那些修改数据的过程。还可能需要添加一些有别于传统的新的查询、更新等操作。这节中,我们将学习如何修改数据操作来满足商业 如何在Domain Services中添加商业逻辑即使在Domain Services中已经包含了更新、插入、删除等操作,但我们还是经常需要添加一些商业逻辑来管理那些修改数据的过程。还可能需要添加一些有别于传统的新的查询、更新等操作。这节中,我们将学习如何修改数据操作来满足商业要求,还学习如何添加一个命名的更新na.
阅读全文
摘要:当我们在RIA客户端提供更新、删除、创建新数据等接口时,经常需要在提交更改之前确定用户输入的数据是有效的并且对数据源来说是最新的。WCF RIA Services提供了几个特性,来允许我们检查数据的有效性以及确定数据与客户端代码的并发性。还提供像使用单一数据实体那样与复杂的数据关系交互的特性。 数据批注 当使用数据类时 当我们在RIA客户端提供更新、删除、创建新数据等接口时,经常需要在提交更改之前确定用户输入的数据是有效的并且对数据源来说是最新的。WCF RIA Services提供了几个特性,来允许我们检查数据的有效性以及确定数据与客户端代码的并发性。还提供像使用单一数据实体那样与复杂的数.
阅读全文
摘要:Domain Services 是向客户端公开数据访问层的WCF Services。当我们创建一个domain services实例时,就指定了想要公开的实体类,以及这个domain Services所允许的数据操作。 DomainService类 和派生类 DomainService类是所有做为domain Services的服务类的基类。WCF RIA Domain Services 是向客户端公开数据访问层的WCF Services。当我们创建一个domain services实例时,就指定了想要公开的实体类,以及这个domain Services所允许的数据操作。DomainServ.
阅读全文
摘要:演练:添加查询方法 查询数据源的方法有时被叫做查询方法。在WCF RIA Services中,查询方法必须以框架承认的方式来定义。此外,只返回一个实体的查询和有可能返回多个实体的查询定义是不同的。 当我们建立一个新的domain service类并在Add New Domain Service Class 对 演练:添加查询方法查询数据源的方法有时被叫做查询方法。在WCF RIA Services中,查询方法必须以框架承认的方式来定义。此外,只返回一个实体的查询和有可能返回多个实体的查询定义是不同的。当我们建立一个新的domain service类并在Add New Domain Servi.
阅读全文
摘要:RIA Services 类库允许我们创建能够重复使用的中间层和表现层逻辑。然而,使用RIA Services类库要比创建RIA Services解决方案复杂的多。 在本节演练中,将创建一个拥有RIA Services类库代码的SL应用程序。简单起见,把类库放在了SL应用程序相同的解决方案里。当然,类库也可以放在分开的解决方案中。 创建包含WCF RIA Serv RIA Services 类库允许我们创建能够重复使用的中间层和表现层逻辑。然而,使用RIA Services类库要比创建RIA Services解决方案复杂的多。在本节演练中,将创建一个拥有RIA Services类库代码的SL.
阅读全文
摘要:在3-层结构的应用程序中,中间层包含了如何管理在表示层和数据层之间交互的逻辑。我们在中间层应用商业逻辑和验证来确定数据是可接受的。例如,在人力资源应用程序中,我们可以提供一个允许员工提交休假申请的界面,但我们应该确定员工的可休假额度不小于0。因此,我们 在3-层结构的应用程序中,中间层包含了如何管理在表示层和数据层之间交互的逻辑。我们在中间层应用商业逻辑和验证来确定数据是可接受的。例如,在人力资源应用程序中,我们可以提供一个允许员工提交休假申请的界面,但我们应该确定员工的可休假额度不小于0。因此,我们在提交申请之前,在中间层添加逻辑来检测员工的休假额度。为了创建最好的RIA客户端用户体验,例.
阅读全文
摘要:当创建一个新WCF RIA Services解决方案时,你将会在客户端和服务端之间指定一个RIA Services Link。当然我们也可以在已存在的项目中添加和移除Link。 当创建一个新WCF RIA Services解决方案时,你将会在客户端和服务端之间指定一个RIA Services Link。当然我们也可以在已存在的项目中添加和移除Link。在已存在项目中添加RIA Services Link在资源管理器中,在Silverlight客户端上右键点击,并选择属性。在 WCF RIA Services link 下拉单中,选择想用来当中间层的服务端项目。从项目中移除RIA Servic.
阅读全文
摘要:SL商业应用程序模板创建一个自动包含许多你所想要的特性的应用程序,例如用户登录和注册的控件。这个项目还建立SL导航,这就意味着你能够方便的添加新的SL页来添加新功能。 默认的情形下,SL商业应用程序模板允许身份认证、角色和Profiles。 SL商业应用程序模板创建一个自动包含许多你所想要的特性的应用程序,例如用户登录和注册的控件。这个项目还建立SL导航,这就意味着你能够方便的添加新的SL页来添加新功能。默认的情形下,SL商业应用程序模板允许身份认证、角色和Profiles。在这个演练中,学习如何用SL商业应用程序模板来创建WCF RIA Services。在VS中,选择文件->新建项目
阅读全文
摘要:在本节,我们将进行一个演练。我们创建一个WCF RIA Services 应用,此应用从AdventureWorksLT 数据库中检索数据。我们会用SL来创建表现层的客户端,并创建表现不同数据库表的实体类。 在本节,我们将进行一个演练。我们创建一个WCF RIA Services 应用,此应用从AdventureWorksLT 数据库中检索数据。我们会用SL来创建表现层的客户端,并创建表现不同数据库表的实体类。此节需要:Visual Studio 2008Silverlight 3WCF RIA Services Beta for visual Studio 2008 SP1-or-Visu.
阅读全文
摘要:WCF RIA Services简化了N层结构的RIA应用程序的开发,例如Silverlight应用。当开发一个N层结构的RIA应用程序时,一个通常的问题就是在中间层和表现层之间协调应用逻辑。为了建立更好的用户体验,你可能想要你的RIA客户端了解在服务器上的应用逻辑,但并不想开发和维护在 WCF RIA Services简化了N层结构的RIA应用程序的开发,例如Silverlight应用。当开发一个N层结构的RIA应用程序时,一个通常的问题就是在中间层和表现层之间协调应用逻辑。为了建立更好的用户体验,你可能想要你的RIA客户端了解在服务器上的应用逻辑,但并不想开发和维护在表现层和中间层上的应.
阅读全文
摘要:上节大概介绍了一下 WCF RIA 服务, 这次介绍下整个解决方案的结构。 当创建应用程序时,WCF RIA服务可以帮你建立满足各种各样情况的解决方案。例如只是在中间层访问很少domain services的Silverlight应用程序。更复杂的例子可能是几个Silverlight程序都连接到一个提供 上节大概介绍了一下 WCF RIA 服务, 这次介绍下整个解决方案的结构。当创建应用程序时,WCF RIA服务可以帮你建立满足各种各样情况的解决方案。例如只是在中间层访问很少domain services的Silverlight应用程序。更复杂的例子可能是几个Silverlight程序都连接.
阅读全文
摘要:****Model-View-ViewModel (better known by its super hero alias of MVVM ) is a great pattern to use with Silverlight and WPF. Here is my 5 minute perspective on MVVM (yep, it took me 5 minutes to spit this out too, so please be kind on any typos :-) )One of the things that can be frustrating with any
阅读全文
摘要:1. IntroductionWhatever software application you want to create, the most important problem that must be solved is the tight coupling. Mixing one layer with another is a very common mistake and it is the main reason for your application to be tightly coupled. For example: as a practical example in t
阅读全文
摘要:在前面的Silverlight入门系列文章中穿插讲了一些MVVM模式系列文章,MVVM模式貌似简单,其实要把界面逻辑抽象出来还是很不容易,像《TreeView真正实现MVVM模式和Expanded发生时异步动态加载子节点(WCFRiaService)》就不是这么简单,有的童鞋像feiyang还要实现Treeview的展开状态持久化和自动恢复,配合MVVM实现不容易。所以,MVVM的核心概念理解不难,在具体使用上则问题多多。今天要讲的话题就是一个MVVM使用上的具体问题: Silverlight中的Storyboard动画是否可以在ViewModel中来控制?为什么想在ViewModel中控制S
阅读全文
摘要:[Silverlight入门系列]使用MVVM模式(9): 想在ViewModel中控制Storyboard动画?(2011-09-07 16:12)[Silverlight入门系列]使用MVVM模式(8):ViewModel进一步分离出Services(2011-09-07 15:29)[Silverlight入门系列]使用MVVM模式(7):ViewModel的INotifyPropertyChanged接口实现(2011-09-07 15:28)[Silverlight入门系列]使用MVVM模式(6):使用Behavior(2011-09-07 15:25)[Silverlight入门系
阅读全文
摘要:Siverlight5新功能/改进总结参考资料:The Big List of What’s New or Improved in Silverlight 5以下总结包括大家关心的Silverlight5的绝大多数新功能或改进,特别是Silverlight5 RC中的新玩意。数据绑定相关 ICustomTypeProvider 自定义标记扩展(Custom Markup Extensions) Ancestor RelativeSource 绑定 隐式 Data Templates 绑定到Style的Setter DataContextChanged 事件 UpdateSourc...
阅读全文
摘要:在上一讲中介绍了MVVM的核心概念,运用MVVM模式可以分离视图、视图逻辑和模型,提高可测试性和可维护性等,但如果一个视图比较复杂,仔细Review一下其ViewModel你会发现非常庞大臃肿复杂,而且部分代码逻辑不可重用,例如另外一个ViewModel想重用其中的部分代码逻辑而不是整个重用,就没有办法。所以最好进一步分离ViewModel的关注点,分离出Services实现IServcie接口,让Service去做一些可重用的工作,分离出一些可重用的操作,这样其他的ViewModel就可以用Service来重用ViewModel的部分逻辑了。原来的ViewModel关注点可以聚焦在用户界面交
阅读全文
摘要:本文说说ViewModel的这个INotifyPropertyChanged接口可以用来做啥?举例1:我有个TabControl,里面放了很多View,每个由ViewModel控制,我想是想TabSelectionChanged就打开相应的ViewModel,怎么做?解答:用ViewModel的INotifyPropertyChanged接口实现,因为TabItem作为一个选择器就有 IsSelected属性,把这个属性绑定到ViewModel的IsSelected字段,然后这个字段改变的时候用INotifyPropertyChanged接口实现通知即可。整个流程用MVVM实现非常整洁。Xam
阅读全文
摘要:Behavior把一些常用的行为封装成可重复使用的组件(Component),在理想状况下,Designer(设计师)或domain expert(特定领域的专家,例如财会人员、HR人员、或MIS)甚至可以完全不需要具备程序设计的观念,只需要了解基础的事件(Event)观念,就可以顺利的开发出一套系统,若需要实现特定的功能时,可商请developere为他们开发所需要的Behavior,designer只需要取得这些Behavior并使用即可。例如,界面设计人员可以使用Expression Blend把一个Behavior拖到一个界面元素上,比如右键点击以后启动一段动画这个行为,这个界面元素就
阅读全文
摘要:在上一篇写了Model的INotifyPropertyChanged接口实现,在Prism中有一个NotificationObject自动实现了这个接口,位于Microsoft.Practices.Prism.ViewModel命名空间下。也就是说,Prism推荐ViewModel继承这个NotificationObject类来自动实现INotifyPropertyChanged接口。看看NotificationObject都有啥:1 public abstract class NotificationObject : INotifyPropertyChanged2 {3 prot...
阅读全文
摘要:数据验证(Validation)是界面程序的常见需求,例如使用正则表达式验证用户输入的Email地址是否合法,然后在界面给出错误提示信息。在Sivlerlight的MVVM模式中,我们在Model和ViewModel可以做Validation,然后需要把Model和ViewModel的Validation结果和错误信息通知视图(View)。在WPF中,我们使用IDataErrorInfo,在Silverlight4中,建议使用INotifyDataErrorInfo。关于这个接口怎么使用,如何实现ErrorProvider的功能,如何做DataForm的Validatio,请参考我的旧一篇。I
阅读全文
摘要:当客户端绑定一个数据模型以后,数据模型变化以后可以自动通知客户端更新界面显示,这就是INotifyPropertyChanged接口要做的工作。INotifyPropertyChanged接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。例如,考虑一个带有名为FirstName属性的Person对象。若要提供一般性属性更改通知,则Person类型实现INotifyPropertyChanged接口并在FirstName更改时引发PropertyChanged事件。若要在将客户端与数据源进行绑定时发出更改通知,则绑定类型应具有下列功能:实现INotifyPropertyCha
阅读全文
摘要:INotifyCollectionChanged在上一篇讲了《[Silverlight入门系列]使用MVVM模式(1):MVVM核心概念 》,今天讲一下集合Model。所谓集合Model就是给ItemsControl,如DataGrid,Combobox等绑定的集合数据模型。另外,通过定制ItemsControl的数据模板(DataTemplate),还可以控制集合对象中每一项的显示。实现很简单,但数据源集合对象必须继承IEnumerable接口,为了让目标属性与数据源集合的更新(不但包括元素的修改,还包括元素的增加和删除)保持同步,数据源集合还必须实现INotifyPropertyChang
阅读全文
摘要:编辑器加载中...MVVM模式是Model、View、ViewModel的简称,最早出现在WPF,现在Silverlight中也使用该模式,MVVM模式是对MVC模式的变种。哪儿变了?我认为MVVM和MVC的主要变化在于MVVM更适合于XAML。MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大好处1. 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model不可以不变,当Model变化的时候View也可以不变。2. 可重用性。你可以把一些视图逻辑放在一
阅读全文
摘要:Silverlight入门:第一部分 - 开发工具与程序入门Silverlight入门:第二部分 - 定义界面布局和导航Silverlight入门:第三部分 - 数据访问Silverlight入门:第四部分 - 数据绑定Silverlight入门:第五部分 - 整合其它控件Silverlight入门:第六部分 - 美化用户界面的样式与模板Silverlight入门:第七部分 - 脱离浏览器的经验
阅读全文
摘要:我们已经有了一个功能完备但还可以锦上添花的应用程序。让我们使搜索结 果模板更漂亮一些。我们准备在Search.xaml的数据模板中为ItemControls做一 些修改。这些修改就像我们已经使用过的编辑模板功能一样可以在Blend中完成。应用 了新的用户界面样式看起来会像这样:我们可以注意到模板风格更精致了,却没有影响到原来的代码。虽然最后它 将会输出大量的代码,但是我可以给你指出最终项目中的样式的位置。应用样式和模板与绑定数据和模板很相像。如果我们观察一下ScrollViewer 的状态:1 <ScrollViewer Style="{StaticResource scrol
阅读全文
摘要:在本系列的最后一节中,我们准备让应用程序脱离浏览器运行。这会比你想 象的容易很多。创建清单在Visual Studio中右击Silverlight应用程序项目,并且选择属性,你将会 看到一个弹出的对话框——注意有关脱离浏览器设置的多选框:当你点击以后需要完成一些选项:为你的应用程序设置安装或脱离浏览器运行时的可视化信息是非常重要的。* 窗体标题——显示在应用程序的窗体标签中* 宽/高——应用程序启动时的初始宽度和高度* 快捷方式名称——用于在桌面和开始菜单中显示的名称* 下载说明——应用程序的说明* 图标——必须是PNG格式同时还必须在项目中标记为Content在你完成这些配置以后,让我们为你
阅读全文
摘要:在之前的第三部分中,我们做了很多工作来获取公共Web服务返回的数据并让 其显示在控件中。我们已经用过了DataGrid控件,但它并不是我们真正想要的用 户界面,所以让我们自己来定义一个。为此,我们需要一个ItemsControl和一个 DataTemplate。这将让我们学习到XAML的绑定语法,以及如何利用更强大的数据 绑定信息。在开始之前——先删除DataGrid在开始之 前,让我们先删除并且只删除DataGrid,我们也不再需要它的程序集引用以及 xmlns,所以也可以大胆删除它们。把DataGrid替换成ItemsControl,像 是这样:1 <ItemsControl x:N
阅读全文
摘要:在之前的章节中,我们优化了数据绑定,并将数据保存在了我们的独立存储 区域。现在让我们整合一些其它的控件使得用户体验更好一些。自动完成输入框记得每次搜索以后,我们都将搜索条件保存为历史数据吗?让我们通过在他 们输入时提供搜索历史来让他们使用更方便。我们准备用Silverlight工具包中 的一个控件——自动完成输入框来做这件事。要做到这点,我们需要添加一个到System.Windows.Controls.Input的程序集 引用,然后在你的Search.xaml文件中添加一个xmlns:1xmlns:input="clr- namespace:System.Windows.Contro
阅读全文
摘要:现在我们已经有了一个基础布局,同时也在上面放了一些控件,接下来让我 们开始获取数据。因为我们想要搜索Twitter上的内容,所以我们需要充分使用 他们提供的Web服务API。在继续之前,我要先说明在本次的应用程序中,我们不 会自己建立一个数据库或其它数据源,但是我要指出的是你有很多种方式可以通 过Silverlight访问数据。数据访问选项对于在Silverlight中访问数据,初学者的误解之一就是他们在Silverlight 中寻找ADO.NET类库。别找了,找不到的。记住,Silverlight是部署在互联网上 的客户端技术,你不能要求一个浏览器插件去直接访问你的数据库……除非你想 把数据
阅读全文
摘要:理解XAML应用程序中的布局管理是开发成功Silverlight应用的一个重要方面 。对于大多数来自Web领域的人来说,如果你对CSS不熟悉,那么这将成为你面临 的最大的挑战之一。理解布局选项Silverlight提供了一个灵活 的系统用于在页面上布置界面元素。布局模型同时支持绝对定位和相对定位的布 局风格。虽然提供了多种布局控件,但最常用的是:CanvasStackPanelGrid让我们逐个看看当把元素放在其中的时 候,它们是如何工作的。我们将使用一个简单的按钮元素来演示。我们使用本系 列第一部分创建的项目,并在Home.xaml页面作简单的演示。CanvasCanvas是最基础的布局控件
阅读全文
摘要:开发工具当然了,不管做任何开发,你都只需要一个文档编辑器和一个编译器。但你 没有任何理由不使用世界级的开发工具。所以我将在这里推荐给你一套开发工具 ,让你可以更加简单快捷地构建Silverlight应用程序。注意这些都不是必须的 (重申一遍,如果你是发烧级别的开发人员,那么你只需要一个记事本和一个编 译器 :-))。虽然它们不都是免费的,但是我还是极力推荐它们,不只是因为我 效力于微软,而是我真的觉得它们是世界上最棒的开发工具。Visual Studio 2008你要确定你已经有了Visual Studio 2008,安装Silverlight工具之前你还需 要装上SP1补丁,所以先确认一下你
阅读全文
摘要:建立可扩展的silverlight应用框架 step-7 final(2011-09-07 14:04)建立可扩展的silverlight 应用框架 step-6:整理导航模块“LeftNav”(2011-09-07 14:03)建立可扩展的silverlight应用框架 step-5:整理Module(2011-09-07 14:02)建立可扩展的silverlight应用框架 step-4(2011-09-07 14:01)建立可扩展的silverlight应用框架 step-3(2011-09-07 14:00)建立可扩展的silverlight应用框架 step-2(2011-09-0
阅读全文
摘要:前六节的文章已经完全的记录这个项目的开发过程,其中第5节和第6节相隔的时间比较长 ,这期间我翻阅了大量的Prism官方文档以及网络上的资料,其实第6节的内容是很深、很连 贯的,以至于无法在一节里写完所以我只是记录了如何实现,少了为什么这样做。这里打算 另开一张详细的记录Prism框架应用。“OperatingTable”这个项目目前已经完成了。预览地址:http://lab.nasawz.com/请打开一些流量分析的软件来观察一下。所有的xap文件都是按需加载。并且xap文件可以通过后台来管理,动态的添加,生成相应 的配置文件。做这个项目的目的也主要是以实现为导向的学习一下Prism这个框架。
阅读全文
摘要:首先说一下我想要实现的效果。我希望在左侧的导航点击了以后右侧的主体部分发声变化。之前我在LeftNav模块用的控件是ToggleButton并为其制作了样式。本来想的是自己根据 ToggleButton作为基础自己在做一个复合控件出来。不过这里做导航的话,ListBox会更加的 适合些。ListBox的样式制作和之前的ToggleButton样式制作大同小异,都是一个原则:各个 VisualStateGroup中的视图状态是可以共存的,VisualStateGroup内部的视图状态只能同时 出现一个,尽量不要在多个VisualStateGroup同时改变同一个元素的属性。下来导航模块“Left
阅读全文
摘要:在第三节里边,建立了一个最简单的Module。这里要对其再进行整理。之前我写过一篇《 简练的视图模型 ViewModel》这里就讲述了一个最最基本的运用视图与模型的例子。用模型 来控制视图的呈现在很早的时候就提出来了。当然Prism这个框架也包括了这一点。这里就要 为Module加入Model。这里记录下整理步骤1.在Module项目中新建立一个Models文件夹,用来存放数据模型。在文件下新建立一个 HelloPrismModel类继承自INotifyPropertyChanged。在构造函数中将视图作为参数传入将视图和模型相绑定。01 public class HelloPrismMode
阅读全文
摘要:通过外部配置文件加载模块module在上一节中为项目引入了“Prism”框架,并建立了一个Hello Prism做测试。这里要把项 目好好的整理一下。使其更加的合理和具有可扩展性。我的目的是,在左侧的导航栏目里点击按钮,相应的右侧的主体部分显示不同的内容。这 些内容都是来自外部加载进来的xap文件。我可以上传管理自己的xap文件。这里来看一下我的整理过程首先将布局划分为两个部分:“LeftNavRegion”、“MainRegion”,一个来承放导航, 一个来承放主体内容。接下来就要加载相关的Module了。关于Module的加载,园子里的包包同学已经对他做了很详细的分析。具体请看《Prism
阅读全文
摘要:应用架构前边两章都是将的UI方面的知识。这里UI结构已经有了,现在要引人一个开发架构: Composite “Prism”。前期准备工作首先在项目主页下载最新版本的Composite。http://compositewpf.codeplex.com/http://www.microsoft.com/downloads/details.aspx?FamilyID=387c7a59-b217-4318- ad1b-cbc2ea453f40&displaylang=en我这里下载的是《Composite Application Guidance for WPF and Silverlight
阅读全文
摘要:接上一节,这里我要在左侧添加导航按钮。先看看需要实现的效果这里是我的office 2010的截图我想要模拟这个效果。因为普通按钮和,类似TapControl是混排在一起的,不太适合用TapControl。所以这里我 选择了ToggleButton。所以本节主要就是制作ToggleButton的样式。其实制作样式并不复杂,只要理解好视图状态这个感念以及你现在所要做样式的控件结构 基本就没什么问题了。我想大多数朋友都是Button控件制作过了样式。 他的视图状态相对来说比较简单。这里看一下button和ToggleButton在我之前的文章里有一篇:“VisualState“视图状态”使用心得”.
阅读全文
摘要:“本文适合silverlight界面设计师参考,程序开发人员最好也了解一下”首先来看一下需要实现的效果这里我主要使用Grid来布局,把界面分为了三部分,头、左部、右部好整体了解了一下布局,这里我来分布讲解。之所以使用Grid这个布局控件是因为他能根据当前的浏览器的大小做自适应布局。如图:下来一 步 准备一些需要用到的图片素材,现在做界面不一定都是要矢量元素,在合适的地方使用合 适的素材最好。这里是我准备的一些小图片。建立项 目,在项目中建立一个assets的文件夹,把项目中用到的素材分类放好。调整 MainPage的大小为800*600在舞台上新建立一个Border容器,在其内部放置一个Gri
阅读全文
摘要:RIA技术选型2008年,中国人寿养老保险公司提出开发面向企业客户的养老金精算咨询系统 (PACS),但由于养老金咨询中的方案数据采集与精算过程非常复杂,使用传统 B/S架构很难实现。由于多年来的RIA开发经历,作为项目经理的我提出在此项目 中尝试使用RIA技术进行开发,以到达客户友好性与易用性的目的。微软发布一年 的Silverlight引起了项目组的注意,由于企业B/S开发的两大阵营,一个是Java ,另一个是.NET平台。针对主流RIA技术笔者进行了对比,当时Java平台的JavaFX 仍然处于beta阶段,而在此前笔者已经在一些项目中运用了ExtJS等通过JS实现的 类RIA应用,但实
阅读全文
摘要:Silverlight 应用程序模型提供以下功能来供托管应用程序使用:一个激活系统,它使得 Silverlight 插件能够下载您的应用程序在启动时需 要的应用程序包和任何外部库程序集。Application 类,该类封装基于 Silverlight 的应用程序通常要求的服务, 例如生命周期事件通知和 Silverlight 插件的接口。应用程序扩展性系统,此系统封装某些应用程序需要的其他服务,例如,自定 义的数据访问层。资源管理系统,这包括 URI 引用和回退机制、按需资源加载、样式和模板共 享以及全球化支持。通过这些功能,您可以实现在启动时间与资源可用性之间提供很好平衡的、构 造良好的应用
阅读全文
摘要:大多数基于 Silverlight 的应用程序以托管代码编写并充分利用 Silverlight 应用程序模型。但是,您可以选择使用简化的编程模型。Silverlight 为应用程序开发提供以下两个截然不同的模型:Silverlight 的托管 API,它使用在 Silverlight 的公共语言运行时 (CLR) 上运行的代码。可以将托管 API 用于已编译的语言(如 Visual Basic 和 C#) 或动态语言(如 IronPython 和 IronRuby)。Silverlight 的 JavaScript API,它使用由浏览器解释的 JavaScript 代码 。这些编程模型截然不
阅读全文
摘要:代码隐藏是一个术语,用于描述在为某一应用程序进行标记编译时与 XAML 页 的分部类联接的代码。本主题描述针对代码隐藏类的要求、在代码隐藏中定义的 事件处理程序的要求以及与代码隐藏相关的机制(例如 InitializeComponent 方 法)的用途。一般要求*如果某一托管应用程序的 XAML 页进行了标记编译(Page 生成操作,且 MSBuild:MarkupCompilePass1 的值为“自定义工具”),则该页上的根元素应声 明一个 x:Class。作为回退,可能仅限代码隐藏文件(具有生成操作 Compile 的 DependentUpon 文件);请参见下一节中的说明。代码隐藏和分
阅读全文
摘要:“托管扩展性框架(Managed Extensibility Framework,简称MEF),是微软 .NET框架下为提高应用和组件复用程度而推出的,用于使组件能够最大化的重用 。使用MEF能够使静态编译的.NET应用程序转换为动态组合,这将是创建可扩展应 用、可扩展框架和应用扩展的好途径。它将做为.NET Framework 4.0的组成部分 之一发布。现在,MEF也将被包含在Silverlight 4.0中。那么MEF是怎样工作的呢?简单分为三个步骤:Export (输出)Import (输入)Compose (组合)简短说一下MEF的工作原理,MEF的核心包括一个catalog和一个
阅读全文
摘要:依赖属性(Dependency Property)和附加属性 (Attached Property)这两个算是很基础的知识都不是很记得了。写一写,当做 一下笔记吧。CLR属性 与 依赖属性CLR属性我们非常熟悉了,在DotNet编程中随处可见。最简单最常见的属性访 问器就是直接操纵类的私有成员,如下:public class Person{ private String _name; public string Name { get { return _name; } set { _name = value; } }}C#3.0对这种常见的写法提供了“自动属性”...
阅读全文
摘要:Silverlight4中有一个DataPager分页控件,使用起来非常简单,拖过来,这样设置一下就可以用了,就可以搭配List(比如DataGrid)使用了,真是简单:最简单的客户端分页1 PagedCollectionView pcv = new PagedCollectionView(MyEntities/*IEnumerable<T>*/);2 3 this.dataPager1.PageSize = 10;4 5 this.dataGrid1.ItemsSource = pcv;6 this.dataPager1.Source = pcv;然后就可以实现分页了,效果如图:
阅读全文
摘要:在第一篇文章中的示例中,我们已经简单的了解了应用MVVM模式的流程,我的本意是你已经了解了一点MVVM的概念,然后又没有一个较好的例子学习,可以跟着我一起学习MVVM模式,所以这个部分,都是没有理论知识的,当然整个例子学完后,我们会回过头探讨一下,将其总结出来。现在我们主要在前面的示例上进行扩展,前面的示例中我们主要是将一个源对象绑定到DataGrid中的,接下来我们继续使用MVVM模式,将DataGrid选择行的变化体现界面中,其实通过这个需求变化,你会发现UI与逻辑分离带来的优势,尽管才开始似乎有点不习惯,但是相信你会不自觉的在项目倾向于中使用MVVM模式。 需求:通过单击DataGrid
阅读全文
摘要:这篇主要引申出Command结合MVVM模式在应用程序中的使用 我们要做出的效果是这样的 就是提供了一个简单的查询功能将结果绑定到DataGrid中,在前面的基础上,这个部分相对比较容易实现了 我们在PageViewModel中添加两个属性 private string _searchText; //查询关键字 public string SearchText { get { return _searchText; } set { _searchText = value; ...
阅读全文
摘要:本来打算用MVVM实现CRUD操作的,这方面例子网上资源还挺多的,毕竟CRUD算是基本功了,因为最近已经开始学习Cailburn框架了,感觉时间挺紧的,这篇就实现其中的更新操作吧。 功能很明确,当我们更改DataGrid中的CheckBox时,将源中当前发生变化的数据项在界面上显示出来。我们仍然在前面项目的基础上实现这个功能首先我们需要给实体Person类添加一个Bool的属性,因为这里我们只对这个属性值操作,所以对于age,name属性也就无必要实现更改通知了 public class Person:INotifyPropertyChanged { p...
阅读全文
摘要:如果你不知道MVVM模式,我建议你先了解一下MVVM模式,至少要知道实现该模式的意图是什么。 那么我主要通过我认为是已经算是比较简单的例子进行讲解这个模式,当然后面我们会在这个例子的基础上一步一步的进行扩展。 先来看一看我们的项目架构: 很典型的MVVM的分层方式 我们先来构建Model,首先在Person.cs中简单声明了一个类型 public class Person { public int age { get; set; } public string name { get; set;} } 类型定义好后,我们在P...
阅读全文
摘要:MVVM:模型-视图-视图模型(Model-View-ViewModel) 组成部分Model、View、ViewModelView:UI界面ViewModel:它是View的抽象,负责View与Model之间信息转换,将View的Command传送到Model;Model:数据访问层View与ViewModule连接可以通过下面的方式Binding Data:实现数据的传递Command:实现操作的调用AttachBehavior:实现控件加载过程中的操作View没有大量代码逻辑。结合WPF、Silverlight绑定机制,MVP演变出了MVVM,充分利用了WPF、Silverlight的优
阅读全文
摘要:如何:访问双工服务Silverlight本主题描述了如何创建可访问 Windows Communication Foundation (WCF) 双工服务的 Silverlight 版本 4 客户端。本文假定您已完成如何:为 Silverlight 客户端生成双工服务中所述的过程,生成了 WCF 双工服务,并假定该解决方案处于打开状态。无论您在该教程中选择的是PollingDuplexHttpBinding还是NetTcpBinding绑定,此处的步骤都是相同的(除非另有说明)。本文中简要介绍的过程说明如何构造 Silverlight 4 客户端,该客户端向双工服务发送订单,随后由该服务回调两
阅读全文
摘要:服务:1[WebMethod]2publicstringHelloWorld()3{4return"您好!";5}silverlight中代码:view sourceprint?01namespaceDynamicDemo02{03publicpartialclassMainPage : UserControl04{05publicMainPage()06{07InitializeComponent();08}0910privatevoidbutton1_Click(objectsender, RoutedEventArgs e)11{12CallService("
阅读全文
摘要:如何:为 Silverlight 客户端生成双工服务如何:为 Silverlight 客户端生成双工服务本主题描述了如何创建可与 Silverlight 客户端进行通信的双工 Windows Communication Foundation (WCF) 服务。双工服务将保留到 Silverlight 客户端的回调通道,它允许该服务对此客户端进行调用。双工服务具有许多应用程序,例如,包括用于即时消息传递的聊天服务程序或用于向客户端发送通知的监视服务。本示例提供一项服务,该服务允许客户端按名称对指定数量的产品项进行排序。该服务将模拟订单处理过程,然后使用订单的状态回调客户端。在双工消息传递中,服务
阅读全文
摘要:大家一定遇到这样的情况,想改变一下SL的DataPager的显示信息,比如希望分页控件上显示数据的总数。那么就需要扩展一下DataPager控件即可。 其实扩展DataPager很简单,只要获取到DataPager控件上的元素,然后再改变元素上数据。比如DataPager控件上显示“总页数”的元素是一个TextBlock,那么可以通过方法GetTemplateChild获取到,参数是元素的名称。然后通过重写方法OnApplyTemplate即可,下面请看代码代码///<summary>///扩展DataPager类,一是要显示总数据数有多少,二是修改TextBox的宽度///<
阅读全文
摘要:在SL中提供了数据分页控件,DataPager控件,可以很方便的使用其为我们的数据进行分页。相对于Asp.net中的第三方分页控件,如Dev控件或是Rad控件,就分页控件来说,SL走在ASP。NET前面,MS自家出的DataPager更有吸引力。 几个重要的属性 Vertical/HorizontalContentAlignment:分页控件内容在分页控件中的对齐方式 只读属性: 在SL中提供了数据分页控件,DataPager控件,可以很方便的使用其为我们的数据进行分页。相对于Asp.net中的第三方分页控件,如Dev控件或是Rad控件,就分页控件来说,SL走在ASP。NET前面,MS自...
阅读全文
摘要:/*** @class Ext.PagingToolbar* @extends Ext.Toolbar* A specialized toolbar that is bound to a {@link Ext.data.Store} and provides automatic paging controls.* @constructor* Create a new PagingToolbar* @param {String/HTMLElement/Element} container The id or element that will contain the toolbar* @para
阅读全文
摘要:1、从微软的网站下载Silverlight3_Tools.exe2、执行Silverlight3_Tools.exe3、像Silverlight2_Tools一样,Silverlight3_Tools还是会在线下载Silverlight_Developer.exe。这个过程非常慢,我们可以从这个链接下载Silverlight3.0的Silverlight_Developer.exe。4、将Silverlight3_Tools.exe的文件名改为Silverlight3_Tools.exe.zip5、解压缩Silverlight3_Tools.exe.zip6、解压缩后可以看到一些安装文件。依次
阅读全文
摘要:手工卸载,执行C:\Windows\ie8\spuninst\spuninst.exe即可。
阅读全文