于页面上传递参数为Silverlight插件管理

1.拔取场景和特征

  近期直在举办Silverlight插件,用来当页面及亮一些动画效果及视频播放,有关怎么着通过页面传递参数为Silverlight插件已经是一个末常谈的话题了,可是自己或想在此间更举办生记录,方便新人上,也有益于温馨从此翻开。

hbase => 当数据量相当丰硕的早晚才会反映出hbase的优势

  我们都明白,我们以页面及以Silverlight插件一般还使下面这种标记,当然你啊得于aspx页面被使用silverlight标记,可是这种方法因而得老大少,而且才限于在aspx页面上使用。

特点:

<object data=”data:application/x-silverlight-2,” type=”application/x-silverlight-2″ width=”100%” height=”100%”>
  <param name=”source” value=”ClientBin/SilverlightTest.xap”/>
  <param name=”onError” value=”onSilverlightError” />
  <param name=”background” value=”white” />
  <param name=”minRuntimeVersion” value=”3.0.40624.0″ />
  <param name=”autoUpgrade” value=”true” />
  <a href=”http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0” style=”text-decoration:none”>
      <img src=”http://go.microsoft.com/fwlink/?LinkId=108181” alt=”Get Microsoft Silverlight” style=”border-style:none”/>
  </a>
</object>

海量数据存储 =>
单表而爆发上百亿履。上百万底排。也不怕是对列没有范围。 =>
关系项目数据库正常单表不跳五百万行,不跳三十列。

   以及flash插件类似,在页面及应用的为是一个object标记,我们得以经已部分param参数来修改silverlight插件的组成部分性能,例如我们好行使source来要求silverlight插件使用不同之xap文件,使用onError设置Silverlight加载出错时若履之本子,使用background参数设置silverlight插件的背景象,以及以minRuntimeVersion参数要求客户端运行Silverlight插件的十分小本子号,使用autoUpgrade参数要求是否允许客户端的Silverlight浏览器插件自动升级等等。除此之外,你仍是可以够从定义参数,我们得以使用initParams来命名参数,通过该参数我们可以同时传递多只价为Silverlight,如下边的代码:

面向列 => 动态添加数量的时光生成列。单独对列举行各类操作。

<object data=”data:application/x-silverlight-2,” type=”application/x-silverlight-2″ width=”100%” height=”100%”>
  <param name=”source” value=”ClientBin/SilverlightTest.xap”/>
  <param name=”onError” value=”onSilverlightError” />
  <param name=”background” value=”white” />
  <param name=”minRuntimeVersion” value=”3.0.40624.0″ />
  <param name=”autoUpgrade” value=”true” />
  <param name=”initParams” value=”programmer=Jaxu,
blog=http://www.cnblogs.com/jaxu, title=silvelight” />
  <a href=”http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0” style=”text-decoration:none”>
      <img src=”http://go.microsoft.com/fwlink/?LinkId=108181” alt=”Get Microsoft Silverlight” style=”border-style:none”/>
  </a>
</object>

多版本 

   我们通过name/value对来设定initParams参数的价值,如齐例被即传递了三单例外之参数programmer、blog和title。在劳务器端怎么着接受这些价值吗?看下的演示,首先大家得在App.xaml.cs文件的Application_Startup事件中加载这多少个参数的值。

深疏行 => 为空的排非占磁盘空间。 =>
关系项目数据库当列为空的早晚值会为null。也会占有磁盘空间

private void Application_Startup(object sender, StartupEventArgs e)
{
  if ( e.InitParams != null )
  {
    foreach ( var item in e.InitParams )
    {
      this.Resources.Add( item.Key, item.Value );
    }
  }
      
  this.RootVisual = new Page();
}

扩大性 => 底层依赖让HDFS =>
数据内存不够的上就待动态增长机器便执行。

   通过遍历InitParams,我们将参数以键-值对的花样加载到Silverlight全局资源聚集中,最后一行代码是Silverlight默认的代码。使用的当儿我们可因此参数称于Silverlight全局资源集合中取出相应的价,可以写成一个函数方便调用。

高可靠性 => 

private string GetParam(string p)
{
  if ( App.Current.Resources[p] != null )
  {
    return App.Current.Resources[p].ToString();
  }
  else
  {
    return string.Empty;
  }
}

赛性能 => 高写高读性能。

   这样我们就可以轻松地得到页面上传递过来的参数了。假设欲传递的参数过多,除了利用name/value对的款型外,我们尚可用参数写到xml里,如我们相比熟练的playList,将录像播放要使的参数写到playList
xml里,然后在Application_Startup事件备受解析xml并加载参数的价值,使用xml的花样好组合及管理参数。

准实时查询 => 百毫秒实时查询上亿数据量

  其余,有时候大家啊待在Silverlight中实现同页面DOM之间的竞相。在Silverlight中,我们可由此HtmlPage.Plugin来收获页面上之所以来表现Silverlight插件的object标签,通过HtmlPage.Plugin.Parent.Id便可博父容器的id,如div或者td。除此之外,还是可以通过HtmlPage.Document.GetElementById(“elementID”)来拿到一个页面上之控件,该措施再次回到HtmlElement对象,通过该对象的SetProperty(“PropertyName”)艺术好改控件的属于性值,通过GetProperty(“PropertyName”)办法好收获控件的属于性值。这样,我们虽可兑现Silverlight插件和页面元素中的互动了。

应用场景 :

  有时候我们会赶上有有些题目,例如我们怀念叫页面及之素(如div)浮动至Silverlight元素之上,默认状况下Silverlight总会展现于拥有页面元素之上,这时你得吃页面上的object对象传递一个参数Windowless,将值设为true,让Silverlight插件以“无窗体”的花样表现就好了。

交通,金融,电商,移动…

  还有平等种情景,就是当Silverlight插件在实施一个动画时,动画所决定的要素会高于Silverlight插件本身的限定,这时要Silverlight插件周围是页面及之别样容器控件(如div),而Windowsless的价值又也true,此时跨出去的一部分即会让旁边的容器挡住。那时我们尽管得经过序来动态控制Silverlight父容器控件的高低与ZIndex值,同时还待用Silverlight插件的背景观设置为透明。下边的代码展现了立时同样沾技术。

 

public partial class MainPage : UserControl
{
    private string divID = string.Empty;
    private HtmlElement element;
    private double originalWidth = 0;
    private double originalHeight = 0;
    private double naturalWidth = 865;
    private double naturalHeight = 410;
    private int state = 0;

概念与定点

    public MainPage()
    {
        // Required to initialize variables
        InitializeComponent();

概念:

        divID = HtmlPage.Plugin.Parent.Id;
        element = HtmlPage.Document.GetElementById(divID);
        originalWidth = Convert.ToDouble(element.GetProperty(“offsetWidth”));
        originalHeight = Convert.ToDouble(element.GetProperty(“offsetHeight”));
    }

什么样选合适hbase的版

    // Zoom in.
    private void videoToggleButton_Checked(object sender, RoutedEventArgs e)
    {
        SetPropertiesBeforeZoomedIn();
        videoZoomInStoryboard.Begin();
    }

官网版本 => https://archive.apache.org/dist/hbase/ => 较新

    // Zoom out.
    private void videoToggleButton_Unchecked(object sender, RoutedEventArgs e)
    {
        videoZoomOutStoryboard.Begin();
    }

cdh版本 => http://archive.cloudera.com/cdh5/ => 较稳定,兼容性好。

    private void ZoomOutStoryboard_Completed(object sender, EventArgs e)
    {
        if (state.Equals(0))
        {
            SetProperitesAfterZoomedOut();
        }
    }

一定:认识hbase在hadoop2.x生态系统中的稳

    private void SetPropertiesBeforeZoomedIn()
    {
        element.SetStyleAttribute(“width”, naturalWidth.ToString() + “px”);
        element.SetStyleAttribute(“height”, naturalHeight.ToString() + “px”);
        element.SetStyleAttribute(“zIndex”, “100”);
    }

管理 1

    private void SetProperitesAfterZoomedOut()
    {
        element.SetStyleAttribute(“width”, originalWidth.ToString() + “px”);
        element.SetStyleAttribute(“height”, originalHeight.ToString() + “px”);
        element.SetStyleAttribute(“zIndex”, “0”);
    }
}

 

  同起始先后会拿Silverlight父容器的赛及宽记录下来,事件videoToggleButton_Checked和事件videoToggleButton_Unchecked会分别实施一个加大与收缩的卡通片过程,在扩过程举行前程序会将容器的过人及红火设定也预期的值并同时修改ZIndex,这时Silverlight插件就晤面突显在具有页面容器的极端上边并且不会合被广大的容器挡住;在缩短过程执行完后程序还用容器的大及富国设定也头的值并同时修改回ZIndex,此时Silverlight插件就谋面过来到先前时期的状态。你或许会晤问何故我们不可知只是设定容器的ZIndex值而还要以修改其的分寸为?这是盖当Silverlight插件被放或收缩时其的父容器的尺寸并无相会随着一起转,那时便你将父容器的ZIndex值改化最酷Silverlight插件仍然会吃父容器本身挡住。

搭类别与计划模型

  以拓展Silverlight插件和页面元素中相互时还会见发出多之技能,其实如认真钻研下,应该不汇合生什么问题无克缓解!

搭体系:

管理 2

主图分析:
hbase内部有一定量单重点的长河服务 => Master/RegionServer

hbase依赖和有限个外表服务 =>
HDFS(hbase的数量是冲HDFS存储的,也就是说写副hbase的数目最后落入到HDFS分布式文件系统中)/ZooKeeper(分布式的框架)

 regionserver管理集群下边的多少。会立刻告知音信(状态与管制内容)给master服务。也会报zookeeper。

 

规划模型:

论及项目数据库:只待统筹数据库的排列。并且使规定列的值,才会对数码举行操作。

hbase:面向列(列蔟)的数据库,不需事先制定列。只需要设定列蔟。

管理 3

如下图

管理 4

在hbase表设计之时节,只待规定column family即可。column family
的子列不需要制定,子列的变是数据的动态扩张而自动生成的。

发明结构数据模型表明:

管理 5

管理 6

 

列蔟的概念:

 管理 7

hbase数据库暨涉及项目数码的对照:

管理 8

 

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注