基于Silverlight的RIA架构及百度应用

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    Browser-Based AuthN 如何在Silverlight中实现,有何缺陷

    跨域访问(Cross-Domain)默认是关闭的可以通过“cross-domain policy file”打开Browser-Based 认证只有以下场景才安全无跨域访问 或只访问有限的几个受信的域其他场景只有Message-Based认证才是安全的

    3 Favorites

    基于Silverlight的RIA架构及百度应用 - Presentation Transcript

    1. 基于Silverlight 的RIA架构及百度应用
      杨丹
      资深.NET架构师
      微软(中国)
      陈广琛
      Web前端工程师
      百度
    2. 议题
      RIA与应用平台趋势
      Silverlight 应用架构
      界面模型
      逻辑分层
      网络访问
      安全机制
      百度Silverlight应用
    3. RIA与应用平台趋势
      纯Web
      在Web上实现
      通过Web部署
      界面更美观
      像桌面应用
      动画 多媒体
      开发更高效
      面向对象语言
      美工技术协同
      Richness
      Web
      Desktop
      RIA
      Win Form
      HTML
      DHTML
      AJAX
      Silverlight
      WPF
      Plug-in
      Reach
    4. Silverlight 架构
      Silverlight Runtime
      纯Web
      界面更美观
      开发更高效
      PresentationCore
      DRM
      XAML
      Media
      Core CLR
      Small BCL
      Debugging
      Garbage Collector
      Security
      Exception
      Loader
    5. Silverlight应用架构
      逻辑分层
      安全机制
      界面模型
      Browser
      Web Server
      Silverlight
      B/L
      B/L
      Silverlight
      B/L
      网络访问
    6. 界面模型
      如何与HTML页面结合?
      三种选择
      RIA 与 HTML
      RIA 与 RIA
      单体 RIA
      模块粒度
      松散耦合
      本地通讯
      MVC/MVP
    7. RIA与RIA- 本地访问
      Silverlight与HTML对象:JavaScript接口
      Silverlight应用之间:本地消息
      Domain 1
      Domain 2
      本地消息接受者
      Local Message Receiver
      本地消息发送者
      Local Message Sender
      本地消息接受者
      Local Message Receiver
      本地消息发送者
      Local Message Sender
    8. 单体RIA- 按需加载
      Silverlight 应用
      应用 Package (.xap)
      In-Package 文件
      应用程序集 (.dll)
      Library 程序集
      Library 程序集
      Library 程序集
      Entry Point
      Application Class
      Application Class
      Application Class
      Application Class
      Application Class
      Application Class
      Application Class
      Application Class
      资源文件
      资源文件
      资源文件
      资源文件
      ExternalPart程序集
      On-Demand 程序集
      (缓存)
      (延后)
    9. 界面模型 -控制流转
      面向页面 vs. 面向GUI
      页面
      GUI
      • Silverlight 导航:相对于Application 的状态
      • Navigation Framework:Frame, Page
      <HyperlinkButton
      TargetName = "MainContent“
      NavigateUri = "/Views/List/Products.xaml">
      </HyperlinkButton>
    10. 逻辑分层
      多层架构 VS. C/S 架构
      Silverlight应用定位
      逻辑写在何处?
      与 ASP.NET MVC的关系?
    11. 逻辑分层 – 与ASP.NET MVC结合
      SOAP
      REST
      ASP.NET MVC
      业务逻辑层
      仅传递用于显示的对象
      以REST调用为主
      与ASP.NET MVC 结合
      public class CategoryController : Controller{
      public ActionResult Products(int id){
      return Json(prods);
      // return View();
      }
    12. 网络访问
      Web Service
      访问方式不同
      资源/RESTvs. 调用/RPC
      REST 具象状态传输
      URI 资源的状态
      Http 标准操作Get/Post
      RPC 简单对象访问协议
      SOAP
      方法调用,复杂语义
      Http-Based
      Web Service
      SOAP
      REST
    13. 网络访问 - RPC/SOAP 方式
      服务端处理
      WCF 支持 SOAP
      客户端调用 - Proxy
      使用Visual Studio菜单工具
      AddService Reference
      命令行工具
      SLsvcutil.exe
      Silverlight 版本的 svcutil.exe
      基于Channel Model开发
      最灵活的方式
    14. 网络访问 - REST方式
      服务端处理
      WCF 支持 REST
      [OperationContract]
      [WebGet(UriTemplate ="Northwind/Order/{orderId}")]
      OrderInfoMsgGetOrderInfo(string orderId);
      客户端调用
      WebClient
      数据处理
      XML: XmlReader, Linq to XML, XmlSerializer
      JSON: Linq to JSON, DataContractJsonSerializer
      RSS/Atom Feeds: System.ServiceModel.Syndication
    15. 网络访问 - REST 与 SOAP 比较
    16. 安全机制
      认证 ( Authentication )
      授权 ( Authorization )
      身份传递 ( Credential )
      消息加密 ( Encryption )
    17. 安全机制 – 身份传递
      身份信息如何传递给后台服务?
      Browser-Based (自动)
      Windows Authentication
      ASP.NET Form Authentication/Cookies
      Message-Based (手工)
      URL 参数
      消息头包含Username/Password 或Token
    18. Browser-Based Authentication
      Example with Cookies + Forms Auth
      E.g.: ASP.NET loginUser:Password:
      Credentials
      YourDomain.com
      Auth info (cookie)
      Service calls + Auth info
      Browser
    19. Browser-Based Authentication
      Login through Silverlight
      YourDomain.com
      Call with credentials toASP.NET Auth Service
      User:Password:
      ASP.NET Auth Service
      Reply contains cookie
      Service calls + Auth info
      Browser
    20. Browser-Based Authentication
      Using Windows Authentication
      Windows loginUser:Password:
      YourDomain.com
      Service calls + Creds
      Browser
    21. Browser-Based Authentication: Cross-Domain Threat
      MyBank.com LoginUser:Password:
      Credentials
      MyBank.com
      Auth info (e.g. cookie)
      Could steal orchange dataif protection wasn’t in place
      恶意请求 + Auth info
      恶意程序
      恶意网站
    22. Message-Based Authentication
      Identity managed by Silverlight, not the Browser
      YourDomain.com
      User:Password:
      Creds are added by Silverlight, not browser
      No creds
      恶意网站
      Browser
    23. Message-Based Authentication:
      选择 1: 修改接口
      [OperationContract]
      public decimal GetActBal(intactID, string user, string pwd);
      选择 2: 通过WCF 的 WS-Security 在SOAP包头中自动插入身份信息
      <basicHttpBinding>
      <binding name="myBinding">
      <security mode="TransportWithMessageCredential">
      <message clientCredentialType="UserName"/>
      </security>
      <httpsTransport/>
      </binding>
      </basicHttpBinding>
    24. 安全机制 – 认证和授权
      服务端如何认证和授权?
      Message-Based 身份
      if(!OperationContext.Current.ServiceSecurityContext.
      PrimaryIdentity.IsAuthenticated)
      throw new SecurityException();
      // 标准 WCF方法
      Browser-Based 身份
      if(!HttpContext.Current.User.Identity.IsAuthenticated)
      throw new SecurityException();
      // ASP.NET Membership
    25. 安全机制 – 消息加密
      完整,真实,防篡改
      两种选择:传输层加密,消息层加密
    26. Silverlight 应用架构
      界面模型
      逻辑分层
      网络访问
      安全机制
    27. 百度应用
      Silverlight版百度Hi
    28. 界面模型
      选择单体RIA
      源自Web版的风格
      Silverlight 3.0暂时缺乏多窗口模型
      单体RIA的问题
      耦合度高,难以维护——来自Web版的经验
      利用MVC分离来解决
    29. Code-Behind
      ASPX/XAML
      (View)
      CS/VB
      (Code-Behind)
      从Win/Web Forms到MVC
      <Button OnClick=“…”>

      </Button>
      private void
      Button_OnClick(…)
      {

      }
    30. 从Win/Web Forms到MVC
      MVC
      ASPX
      (View)
      CS/VB
      (Controller)
      <form action=“…”>

      </form>
      public ActionResult
      Search(…)
      {
      ViewData = …;
      return View();
      }
      ViewData
    31. Silverlight MVC实践
      Binding
      XAML
      (View)
      CS/VB
      (Controller)
      <Button Click=“…”>

      </Button>
      private void
      Button_Click(…)
      {

      Counter.Value++;
      }
      Binding
    32. Silverlight MVC实践
      Builder
      XAML
      (View)
      CS/VB
      (Controller)
      <Button Click=“…”>

      </Button>
      private void
      Button_Click(…)
      {
      Counter.Value++;
      builder.Update();
      }
      Builder
    33. 逻辑分层
      统一调用百度IM API
      隐藏后端逻辑
      百度IM API
      Silverlight版
      百度Hi
      网页版百度Hi
      第三方客户端
      (计划支持)
    34. 异步模型
      调用单个异步函数
      RetrieveUserAsync(username) .AddCallback(user => ProcessUser(user));
      多个异步函数组成工作流
      Async.Chain() .Next(context => FirstStep(context)) .Next(context => SecondStep(context)) .Next(context => ThirdStep(context)) .Go(initialContext);
    35. 网络访问
      JSON-RPC
      JSON易于被不同的客户端解释
      JavaScript
      Silverlight
      IM接口更像是调用而非资源
    36. 安全机制
      百度Passport
      API式认证与授权
      认证令牌
      隐藏实现细节
      在线会话(Session)
      会话令牌
    37. 百度应用小结
      MVC模型
      Binding
      Builder
      API划分前后端
      异步工作流
      JSON-RPC
      Passport + Session
    38. 参考资源
      官方站点
      http://www.silverlight.net/
      免费空间
      http://silverlight.live.com/
      博客
      http://wpfe.cnblogs.com/
      http://dotnet.catchen.biz/
      http://silverlightrocks.com/
    39. 疑问和解答

    + Cat ChenCat Chen, 2 weeks ago

    custom

    917 views, 3 favs, 10 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 917
      • 571 on SlideShare
      • 346 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 26
    Most viewed embeds
    • 320 views on http://www.cnblogs.com
    • 10 views on http://blog.csdn.net
    • 6 views on http://chinese.catchen.biz
    • 3 views on http://www.zhuaxia.com
    • 2 views on http://reader.youdao.com

    more

    All embeds
    • 320 views on http://www.cnblogs.com
    • 10 views on http://blog.csdn.net
    • 6 views on http://chinese.catchen.biz
    • 3 views on http://www.zhuaxia.com
    • 2 views on http://reader.youdao.com
    • 1 views on http://zhuaxia.com
    • 1 views on http://222.92.117.56
    • 1 views on http://www.6ideas.cn
    • 1 views on http://feeds.feedburner.com
    • 1 views on http://xianguo.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories