基于Silverlight的RIA架构及百度应用_第1页
基于Silverlight的RIA架构及百度应用_第2页
基于Silverlight的RIA架构及百度应用_第3页
基于Silverlight的RIA架构及百度应用_第4页
基于Silverlight的RIA架构及百度应用_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Silverlight的RIA架构

及百度应用杨丹资深.NET架构师微软〔中国〕陈广琛Web前端工程师百度议题RIA与应用平台趋势Silverlight应用架构界面模型逻辑分层网络访问平安机制百度Silverlight应用RIA与应用平台趋势纯Web在Web上实现通过Web部署WebDesktopRIAHTMLRichnessReachDHTMLAJAXSilverlightWinFormWPFPlug-in界面更美观像桌面应用动画多媒体Silverlight架构纯Web界面更美观开发更高效SilverlightRuntimePresentation

CoreCoreCLRSmallBCLGarbageCollectorSecurityExceptionLoaderDebuggingXAMLMediaDRMSilverlight应用架构BrowserSilverlightSilverlightWebServerB/LB/LB/L逻辑分层平安机制网络访问界面模型界面模型如何与HTML页面结合?三种选择RIA与HTMLRIA与RIA单体RIA模块粒度松散耦合本地通讯MVC/MVPRIA与RIA-本地访问Silverlight与HTML对象:JavaScript接口Silverlight应用之间:本地消息Domain1本地消息接受者LocalMessageReceiver本地消息发送者LocalMessageSenderDomain2本地消息接受者LocalMessageReceiver本地消息发送者LocalMessageSender单体RIA-按需加载Silverlight应用应用Package(.xap)In-Package文件应用程序集(.dll)ApplicationClassApplicationClass资源文件Library程序集ApplicationClassApplicationClass资源文件ExternalPart程序集Library程序集ApplicationClassApplicationClass资源文件On-Demand程序集Library程序集ApplicationClassApplicationClass资源文件EntryPoint〔缓存〕〔延后〕界面模型-控制流转面向页面vs.面向GUI页面GUISilverlight导航:相对于Application的状态NavigationFramework:Frame,Page<HyperlinkButton

TargetName="MainContent“NavigateUri="/Views/List/Products.xaml"></HyperlinkButton>逻辑分层多层架构VS.C/S架构Silverlight应用定位逻辑写在何处?与ASP.NETMVC的关系?简单展现逻辑包含较多逻辑安全性暴露展现数据暴露业务逻辑和数据耦合性服务可以复用逻辑在客户端灵活性简单展现前台灵活业务类型业务处理在后台业务处理在前台逻辑分层–与ASP.NETMVC结合仅传递用于显示的对象以REST调用为主与ASP.NETMVC结合publicclassCategoryController:Controller

{publicActionResultProducts(intid)

{returnJson(prods);//returnView();

}ASP.NETMVC业务逻辑层SOAPREST网络访问WebService访问方式不同资源/REST

vs.调用/RPCREST具象状态传输URI资源的状态Http标准操作Get/PostRPC简单对象访问协议SOAP方法调用,复杂语义Http-BasedWebServiceSOAPREST网络访问-RPC/SOAP方式效劳端处理WCF支持SOAP客户端调用-Proxy使用VisualStudio菜单工具AddServiceReference命令行工具SLsvcutil.exeSilverlight版本的svcutil.exe基于ChannelModel开发最灵活的方式网络访问-REST方式效劳端处理WCF支持REST[OperationContract][WebGet(UriTemplate="Northwind/Order/{orderId}")]OrderInfoMsgGetOrderInfo(stringorderId);客户端调用WebClient数据处理XML:XmlReader,LinqtoXML,XmlSerializerJSON:LinqtoJSON,DataContractJsonSerializerRSS/AtomFeeds:网络访问-REST与SOAP比较RESTSOAP互操作性更优是伸缩性容易是复杂度简单较复杂协议仅HTTP多种协议安全性传输层加密消息层加密事务不支持支持处理逻辑面向资源面向调用平安机制认证(Authentication)授权(Authorization)身份传递(Credential)消息加密(Encryption)平安机制–身份传递身份信息如何传递给后台效劳?Browser-Based(自动)WindowsAuthenticationASP.NETFormAuthentication/CookiesMessage-Based(手工)URL参数消息头包含Username/Password或TokenBrowser-BasedAuthenticationExamplewithCookies+FormsAuthBrowserE.g.:ASP.NETlogin

User:

Password:YourDomainCredentialsAuthinfo(cookie)Servicecalls+AuthinfoBrowser-BasedAuthentication LoginthroughSilverlightUser:

Password:YourDomainCallwithcredentialsto

ASP.NETAuthServiceReplycontainscookieServicecalls+AuthinfoASP.NETAuthServiceBrowserBrowser-BasedAuthenticationUsingWindowsAuthenticationWindowslogin

User:

Password:YourDomainServicecalls+CredsBrowserMyBankLogin

User:

Password:MyBankCredentialsAuthinfo(e.g.cookie)恶意请求+Authinfo恶意网站恶意程序Couldstealor

changedata

ifprotectionwasn’tinplace

Browser-BasedAuthentication:

Cross-DomainThreatMessage-BasedAuthenticationIdentitymanagedbySilverlight,nottheBrowserUser:

Password:YourDomainCredsareaddedbySilverlight,notbrowserNo

credsBrowser恶意网站Message-BasedAuthentication:选择1:修改接口[OperationContract]publicdecimalGetActBal

(intactID,stringuser,stringpwd);选择2:通过WCF的WS-Security在SOAP包头中自动插入身份信息<basicHttpBinding><bindingname="myBinding"><securitymode="TransportWithMessageCredential"><messageclientCredentialType="UserName"/></security><sTransport/></binding></basicHttpBinding>平安机制–认证和授权效劳端如何认证和授权?Message-Based身份if(!OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.IsAuthenticated)thrownewSecurityException();//标准WCF方法Browser-Based身份if(!.Identity.IsAuthenticated)thrownewSecurityException();//ASP.NETMembership平安机制–消息加密传输层加密消息层加密点到点安全,从Brower到Server端到端安全,从App到App对整个消息加密可以对消息的局部加密支持单一传输协议,例如HTTP支持混合传输协议,例如HTTP+TCP常用实现:HTTPS,SSL常用实现:SOAPWS-Security完整,真实,防篡改两种选择:传输层加密,消息层加密Silverlight应用架构界面模型逻辑分层网络访问平安机制百度应用Silverlight版百度Hi界面模型选择单体RIA源自Web版的风格Silverlight3.0暂时缺乏多窗口模型单体RIA的问题耦合度高,难以维护——来自Web版的经验利用MVC别离来解决Code-BehindASPX/XAML(View)CS/VB(Code-Behind)从Win/WebForms到MVC<ButtonOnClick=“…〞>…</Button>privatevoidButton_OnClick(…){…}从Win/WebForms到MVCMVCASPX(View)CS/VB(Controller)<formaction=“…〞>…</form>publicActionResultSearch(…){ViewData=…;returnView();}ViewDataSilverlightMVC实践BindingXAML(View)CS/VB(Controller)<ButtonClick=“…〞>…</Button>privatevoidButton_Click(…){…Counter.Value++;}BindingSilverlightMVC实践BuilderXAML(View)CS/VB(Controller)<ButtonClick=“…〞>…</Button>privatevoidButton_Click(…){Counter.Value++;builder.Update();}Builder逻辑分层统一调用百度IMAPI隐藏后端逻辑百度IMAPISilverlight版百度Hi网页版百度Hi第三方客户端〔方案支持〕异步模型调用单个异步函数RetrieveUserAsync(username)

.AddCallback(user

=>ProcessUser(user));多个异步函数组成工作流Async.Chain()

.Next(context=>FirstStep(context))

.Next(context=>SecondStep(context))

.Next(context=>Th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论