新产品上市了,不知道用快转精准营销工具栏在哪曝光效果怎么样

一.互联网广告特征工程

博文《》论述了互联网广告的点击率系统可以看到,其中的logistic regression模型是比较简单而且实用的其训练方法虽然有多种,但目标是一致的训练结果對效果的影响是比较大,但是训练方法本身对效果的影响却不是决定性的,因为训练的是每个特征的权重权重细微的差别不会引起ctr的巨大变化。
在训练方法确定后对ctr预估起到决定性作用的是选用的特征。

做点击率预估需要两方面的数据一方面是广告的数据,另一方媔是用户的数据现在所有的数据都有,那么工作就是利用这两方面的数据评估用户点击这个广告的可能性(也就是概率)
用户的特征昰比较多的,用户的年龄性别,地域职业,学校手机平台等等。广告的特征也很丰富如广告大小,广告文本广告所属行业,广告图片还有反馈特征,如每个广告的实时ctr广告跟性别交叉的ctr。如何从这么多的特征中选择到能刻画一个人对一个广告的兴趣的特征昰数据挖掘工程师的一个大难题。
选中了特征还需要注意特征的选择方式,例如如果单独把年龄作为一个特征,最终能训练出来啥吗因为年龄相加相减是没有意义的,所以只能把每个年龄做为一个特征但是光这样可以了吗?怎么用特征是广告工程师的一个大课题。

什么样的特征适合用来预估ctr这个问题是很多广告算法工程师的需要考虑的。
算法最多会大谈模型对于特征的讨论很少涉及。真正的應用中多数数据挖掘工程师的工作都是在想特征,验证特征
想特征是一个脑力加体力的活,需要不少的领域的知识更让人郁闷的是,工业界并没有一整套想特征的办法工业界有的只是验证特征的办法。对于互联网广告业就简单说说通用特征怎么来的吧。
首先说年齡这个特征怎么知道它跟点击率有关系?现在直观的解释是年轻人普遍喜欢运动类的广告,30岁左右的男人喜欢车房子之类的广告,50歲以上的人喜欢保健品的广告可以看到,选择年龄作为特征的理由是基于对各个年龄段的人喜欢的不同类型的东西的一个粗略的划分昰一个很主观的东西。
再说性别这个特征直观的感觉是,男性普遍喜欢体育类的车类的,旅游类广告女性普遍喜欢化妆品,服装类嘚广告这也可以看到,选择性别作为特征也是基于相似的理由就是认为男性和女性大体会喜欢不同的东西。
对于地域这个特征这下僦学问多了,华南的人在比较喜欢动漫和游戏华北的人喜欢酒品和烟?
在广告方面的特征广告的图片大小,广告前景色背景色真的能影响人的点击吗这其实都是一种猜测。图片里面是一个明星还是一个动物之类的因素也可以考虑
总之,想特征的这个事情基本没多大譜只能天南地北地想象,还要多了解各行各业的知识以便想到更多的特征,哪怕某个特征跟人关系并不大也得好好验证一番。这基夲上跟男人为回家晚想借口一样得有借口要想着怎么解释得好听点,没借口就要想借口
想到了特征,就要验证和进行判断
验证特征嘚办法多,有直接观察ctr卡方检验,单特征AUC等直接观察ctr是个很有效的方法,如根据投放记录化妆品的广告在女性上面的点击率就比在侽性上面的点击率高很多,说明性别这个特征在化妆品行业是有预测能力的;又如体育用品的广告在男性上面的点击率也比女性高说明性别这个特征在体育行业也是有预测能力的,经过多个行业的验证就认为性别这个特征可以用了。
年龄这个特征的评估类型主要是观察一个广告在不同年龄段的点击率是否有区别,再观察不同广告的点击率在不同年龄段的分布是否不一样如果都有区别,说明年龄这个特征就可以用了
在实际的使用中发现,性别这个特征比较有效手机平台这个特征也比较有效,地域和年龄这两个特征有一定效果但沒有前两个那么明显,跟他们的使用方式可能有关还需要进一步挖掘。
同时实际使用中也发现,广告反馈ctr这个特征也很有效这个特征的意思就是当前的广告正在投放,已经投放了一部分了这部分的点击率基本可以认为是这个广告的点击率了,也可以认为是这个广告嘚质量的一个体现用来预估一个流量的ctr是很有效的。

1.1.2 特征的处理和使用

选择得到特征怎么用也是一个问题。
先说需求其实预估ctr要做嘚事情是下面的图的工作——计算一个用户/广告组合的ctr。

上面已经选好了特征暂定有广告的反馈ctr,用户年龄性别三个特征。

反馈ctr是一個浮点数直接作为特征是可以的,假设1号特征就是反馈ctr对应年龄来说就不是这样了,因为年龄不是浮点数而且年龄的20岁跟30岁这两个數字20,30大小比较是没有意义的,相加相减都是没有意义的在优化计算以及实际计算ctr是会涉及这两个数字的大小比较的。如w.x在w已经确定的凊况下,x的某个特征的值是20或者30,w.x的值相差是很大的哪怕用逻辑化公式再比较,得到的值也是比较大的但是往往20岁的人跟30岁的人对哃一个广告的兴趣差距不会那么大。解决这样的情况的方法就是每个年龄一个特征,如总共只有20岁到29岁10种年龄就把每个年龄做一个特征,编号是从2到11(1号是广告的反馈ctr)如果这个人是20岁,那么在编号为2的特征上的值就是13到11的编号上就是0。这样年龄这一类特征就有叻10个特征,而且这10个特征就是互斥的这样的特征称为离散化特征。

二、交叉 这样看起来就能解决上面的问题了但是够了吗?


比如一个囚是20岁那么在编号为2的特征上面,它一直都是1对篮球的广告是1,对化妆品的广告也是1这样训练的结果得到的编号为2的权重的意义是——20岁的人点击所有的广告的可能性的都是这个权重,这样其实是不合理的
有意义的应该是,这个20岁的人当广告是跟体育相关的时候,它是一个值;当广告跟保健品相关的时候它又是一个值。这样看起来才合理如果这个不够深刻,基于跟上面同样的道理性别这个特征也是一样的,假如也做了上面的离散化操作编号是12和13,12是男性,13是女性这样的话,对于一个男性/体育广告组合来说编号12的特征值為1,男性/化妆品的组合的编号12的特征值也是1这样也是不合理的。
怎么做到合理呢以上面的性别的例子来说。编号12的特征值不取1取值為该广告在男性用户上面的点击率,如对于男性/体育广告的组合编号12的特征的值为男性在体育广告上面点击率,这样编号为12的特征就變成了一个浮点数,这个浮点数的相加减是有意义的
这样的做法称为特征的交叉,现在就是性别跟广告的交叉得到的特征值还有很多其他的方式可以进行交叉,目前工业上的应用最多的就是广告跟用户的交叉特征(编号为1的那个特征)、广告跟性别的交叉特征广告跟姩龄的交叉特征,广告跟手机平台的交叉特征广告跟地域的交叉特征。如果做得比较多可能会有广告主(每个广告都是一个广告主提茭的一个投放计划,一个广告主可能会提交多个投放计划)跟各个特征的交叉

三、连续特征变离散特征 做到的交叉的特征值就足够了吗?答案还是不一定


如编号为1的那个特征,就是广告本身的ctr假设互联网广告的点击率符合一个长尾分布,叫做对数正态分布其概率密喥是下图(注意这个是假设,不代表真实的数据从真实的数据观察是符合这么样的一个形状的,好像还有雅虎的平滑的那个论文说它符匼beta分布)

可以看到,大部分广告的点击率都是在某一个不大的区间内的点击率越高的广告越少,同时这些广告覆盖的流量也少换句話说,点击率在0.2%左右的时候如果广告a的点击率是0.2%,广告b的点击率是0.25%广告b的点击率比广告a高0.05%,其实足以表示广告b比广a好不少;但是点击率在1.0%左右的的时候广告a点击率是1.0%,广告b的点击率是1.05%并没有办法表示广告b比广告a好很多,因为在这0.05%的区间内的广告并不多两个广告基夲可以认为差不多的。也就是点击率在不同的区间应该考虑是不同的权重系数,因为这个由广告点击率组成的编号为1的特征与这个用户對广告的点击的概率不是完全的正相关性有可能值越大特征越重要,也有可能值增长到了一定程度重要性就下降了。
对于这样的问题百度有科学家提出了对连续特征进行离散化。他们认为特征的连续值在不同的区间的重要性是不一样的,所以希望连续特征在不同的區间有不同的权重实现的方法就是对特征进行划分区间,每个区间为一个新的特征
具体实现是使用等频离散化方式:1)对于上面的编號为1的那个特征,先统计历史记录中每条展示记录中编号为1的特征的值的排序假设有10000条展示记录,每个展示记录的这个特征值是一个不楿同的浮点数对所有的展示记录按照这个浮点数从低到高排序,取最低的1000个展示记录的特征值作为一个区间排名1001到2000的展示记录的特征徝作为一个区间,以此类推总共划分了10个区间。2)对特征编号重新编排对于排名从1到1000的1000个展示记录,他们的原来编号为1的特征转变为噺的特征编号1值为1;对于排名是从1001到2000的记录,他们的原来编号为1的特征转变为新的特征编号2值为1,以此类推新的特征编号就有了1到10總共10个。对于每个展示记录来说如果是排名1到1000的,新的特征编号就只有编号1的值为12到10的为0,其他的展示记录类似这样,广告本身的ctr僦占用了10个特征编号就成为离散化成了10个特征。
等频离散化需要对原有的每个特征都做也就是原来的编号为1到13的编号,会离散化成很哆的编号如果每个特征离散化成10个,则最终会有130个特征训练的结果w就会是一个130维的向量,分别对应着130个特征的权重
实际的应用表名,离散化的特征能拟合数据中的非线性关系取得比原有的连续特征更好的效果,而且在线上应用时无需做乘法运算,也加快了计算ctr的速度

1.1.3 特征的过滤与修正

上面提到,很多特征其实是反馈的特征如广告反馈ctr,广告与性别交叉特征这些特征本来可以通过历史展示日誌的统计得到。但有些广告本来展示量很少在男性用户上展示就更少,这时要与性别交叉的ctr是很不准确的需要对这个特征进行修正。具体的修正方法可以参考博文《》
经过修正后的ctr再做特征,实际线上效果有了比较大的提升
如果使用的特征又更多了,有了学校跟广告交叉特征什么的离散化后有了上万的特征,这下就会产生特征过多导致的各种问题如过拟合等。解决这个问题的方法一种是离线的數据评估如用ctr的区分性。另一种就是利用正则特别是L1正则,经过L1正则训练的得到的权重向量其中某些特征如果对点击率预估预测性鈈强,权重会变成0不影响预估。这就是特征过滤具体的有关L1的一些论述与实现参看博文《》《》和《》。

多位Linkedln、百度公司的研究员无私公开的资料


}

Cocos2d-X斗地主游戏完整源码游戏分有噺手场,初级场中级场,高级场和大师场5个级别画面非常精美。

速度分为整体速度和局部速度,整体和局部是紧密关联的,这种关联体現在速度和平衡的问题.移动速度越快,相应的重心会越低;右手出拳的速度越快,相应的左手的回缩越快;右脚侧踢越快,相应的右手回缩速度越快;嘫而速度快并不代表力道大. ■力度的计算公式是: 速度x质量x重心的位移度 重心的位移度代表的是惯性的问题,比如一个速拳,它本身攻击不大,但若加上身体的重心移动,那么身体的质量就会加到拳头上,力度相应提升.力度会表现在惯性上,速拳容易收回,而重拳就有一个惯性缓冲的过程. ■慣性是一个绝对不能忽视的对象 它能很直接的体现物体的质感,[钢弹]是个在与惯性脱离最大的动画,它可以直接忽视机器人本身的质量然后进荇位移.与惯性紧密相连的一个表现手法是"缓冲",至于如何表现请多注意生活中的点滴,或者游戏(主要还是实际生活中的内容,因为很多游戏为了表现手法而忽视的部分的惯性原理,这并非不可取,只是要注意表现的手法,让他达到理想的"实际",比如钢弹的理想实际是机体无限坚固,动力无限夶,好比我们玩鼠标跟金刚玩汽车一样轻松.动作也是如此,自己去体会吧,这种东西更多的是一种感觉,如果你没有这种感觉就是没有动作设计的忝分,很简单的道理. 网页教学网 ■作用力一个大项 它包含:作用力与反作用力,摩擦力,阻力,这些名词看起来不一样,其实都是一样的,就是作用力与反作用力.作用力作为一个前提的条件下,引导出来的就是对于作用力的表现,这才是重点.跑的多快,跳的多高,一拳能够打出什么反应,这都能引起視觉反应,简单的说,就是攻击究竟有没有力道感,就看你怎么打,用什么姿势打,然后被打的人是什么反映,由于被攻击部位的不同,所作的反应自然偠不同,如果都用拳皇那一套,那实际打出来的动作大多是软弱无力的,但是它用表现手法和声音去弥补了这样的一个视觉效应. 相关物理知识我鈈多作解释. ■运动轨迹分为:整体轨迹与局部轨迹,而且这可能是一个最大的难点 首先你要对人体结构,或者你所设计的人物造型有一定了解,關节,骨骼,运动原理等.就由于人体肌肉造型是曲线一样,运动轨迹也是曲线.曲线运动几乎是物理运动的本能.整体轨迹相对简单,它由人体运动时偅心所产生的曲线构成,如跳跃,跑动等.但局部轨迹却不简单,它关系到一个动作的正确与否,你会跑不代表你就能很好的表现"跑步"这个动作,然而這是基础中的基础,首先要理解关节,关节是一环套一环,这也是骨骼动画的基础,我用图解来说明,然后你试着结合实际去深入体会! 网页教学网 网頁教学网 肢体的运动轨迹最好的学习方法还是观察:举起你的手臂,单纯的移动手肘,观察一下它的运动轨迹,然后手肘不动,单纯的移动前臂,看看咜的运动范围,现在结合手肘,手臂作任意移动,观测手掌的运动轨迹,然后试试脚的运动轨迹.最后自己用身体再感受一下,运动轨迹是什么样的曲線.同样的,这也是个悟性问题,如果你无法体会,那么你永远也作不出什么好的格斗动画的. 以上,你会发现,几乎都是物理的知识,理解充分了,你在动莋设计的时候才能更有把握,不过理论的东西并非是不能突破的,在创意需要的前提下,我们大可以改变这个世界的规律,让时间倒转,让重力逆向,讓你的角色神化...但在那之前基础的东西还是需要了解的,基础胜于一切!! 第二课预览: begin==================== 第一部分 C#语言概述 第一章 第一章第一章 第一章 .NET 编程语 编程編程 编程 言 语言语言 语言 C# 未来 未来未来 未来 5 年 年年 年 我们的目标就 我们的目标就我们的目标就 我们的目标就是超 是是 是 越今天各自为营的 超越今天各自为营的超越今天各自为营的 超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把 Internet 建成一 建成建成 建成 个 一个一 一个可 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 比尔.盖茨 盖茨盖茨 盖茨 在本章中你將了解 框架 C#语言在.NET 框架中的作用及其特性 一场新的革命 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出了其下一代计算计划 ) 这项计划将使微软现有的软件在 Web 时代不仅适用于传统的 PC 而且也能够满足目前 呈强劲增长势头的新设备 诸如蜂窝电话以及個人数字助理 Personal Digital Assistant, PDA 等的需要 微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对 ? 请听听微软官员的声音 因特网的革命 从微软的角度來讲 我们就是要 建设一个平台来创建并且支持新一代的应用 我们必须有一套通用系统服务来支 持这样的操作 这种观点就说明 我们还有下一個层次的发展 也就是说因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发平台 使应用程序的开发变得更容易 哽简单 将改变因特网的行为方式 软件将变成为服务 与 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其运行库已經与操作系统融合在了一起 从广义上把它称为一 个运行库也不为过 简而言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微软的宏 伟目标是让 的核心内容之一就是要搭 建第三代因特网平台 这个网络平台将解决网站之间的协同合作问题 从而最大限度 地获取信息 在 .NET 平台上 不哃网站之间通过相关的协定联系在一起 网站之间 形成自动交流 协同工作 提供最全面的服务 某一天 你出差到外地 在机场租借手机电话 在向该終端插入自己的 IC 卡后 自己的地址簿和计划簿被自动下载 随即它就变成了你个人专用的 PDA 这不是梦境 这是.NET 为我们描绘的一个未来生活的场景 人們的需要总是无法满足 我们不断地问自己 我们还应该有些什么 需求推 动着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 电子商务嘚运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公 司打算今后将中心转移到可以在网络上使用“服务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“服务”的平台 这就是 <> page begin==================== 的出现 意味着人们可以只用一种简单的界面就可以编写 浏览 编辑和分享信息 而且还可以嘚到功能强大的信息管理工具 由于使用的所有的文件都以符合网络协议 的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使鼡其中的信息 任何规模的公司都可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全新的协同笁作模式 总之 .NET 战略是一场软件革命 .NET 对最终用户来说非常重要 因为计算机的功能将会得到大幅度提升 同 时计算机操作也会变得非常简单 特别哋 用户将完全摆脱人为的硬件束缚 用户可 以自由冲浪于因特网的多维时空 自由访问 自由查看 自由使用自己的数据 而不 是束缚在便携式电脑嘚方寸空间——可通过任何桌面系统 任何便携式电脑 任何移 动电话或 PDA 进行访问 并可对其进行跨应用程序的集成 .NET 对开发人员来说也十分重要 洇为它不但会改变开发人员开发应用程序 的方式 而且使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今計算技术中的所有缺陷 .NET 定能实现确保用户从任何地点 任 何设备都可访问其个人数据和应用程序的宏伟蓝图 .NET 把雇员 客户和商务应用程序整和荿一个协调的 能进行智能交互的整 体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 嘚核心组件 .NET 的核心组件包括 一组用于创建互联网操作系统的构建块 其中包括 .NET 企 业服务器 .Net Framework 和 设备软件 .NET 用户体验 与 C# 结构框架 让我们翻开教科书 囙顾一下近十年来软件开发的历史 多年以前 当微软的组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人员仅仅是一种美好的憧憬 成千上万嘚程序员为了处理通信 接口和不同语言间的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了 <> page begin==================== 这一切 通过将组件改变为通用 集成型的構件 开发人员正逐渐地从过去的繁复编 程事务中解脱出来 可以选择自己最得心应手的编程语言进行编程 然而 软件组件 与应用程序之间的联匼仍然是松散的 不同的编程语言与开发平台限制了部件间的互 用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简單的 例子 只用五行 C 语言代码就能编写出的一个简单程序 若使用 COM 来编写 结果 会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的同时 也大夶增加了 开发开销 而.NET Framework 的出现使得一切问题都迎刃而解 实际上 在.NET Framework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架 是开发人员對编程语言命令集的称呼 .Net 框架的意义就在 于只用统一的命令集支持任何的编程语言 正如微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之间的差异 将它们合并为一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人员可以自由地选择他们喜欢的编程语言 .NET 平台欢迎所有囚的垂顾 ”.NET 将使编程人员梦想的语言互用性变成为近在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言 环境中使用 調试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平台的基础架构 其强大功能来自于公共语言运行时 Common Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 囷类库 包 括 Windows Forms 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的应用执行環境 这不但使得应用程序的开发与发布更加简单 并且成就了众多种 类语言间的无缝集成 的全新开发工具 C# 在最近的一段时间里 C 和 C++一直是最有苼命力的程序设计语言 这两种语言 为程序员提供了丰富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得 不在效率上作出不同程喥的牺牲 如果你使用过包括 C 和 C++在内的多种程序设计语 言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费哽长的开发周期 由于 C 和 C++即为我们带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直 在寻求一种新的语訁 以图在开发能力和效率之间取得更好的平衡 今天 人们改进 开发出了许多语言以提高软件生产率 但这些或多或少都以牺 牲 C 和 C++程序员所需要嘚灵活性为代价 这样的解决方案在程序员身上套上了太多 的枷锁 限制了他们能力的发挥 它们不能很好地与原有的系统兼容 更为令人头痛 的昰 它们并不总是与当前的 Web 应用结合得很好 理想的解决方案 是将快速的应用开发与对底层平台所有功能的访问紧密结合在 <> page begin==================== 一起 程序员们需要┅种环境 它与 Web 标准完全同步 并且具备与现存应用间方便 地进行集成的能力 除此之外 程序员们喜欢它允许自己在需要时使用底层代码 针对该問题 微软的解决方案是一种称之为 C#的程序语言 C#是一种现代的面向 对象的程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量的工具和服务 能够最大限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计 从构建组件形式的高層商业对象到构造系统级应 用程序 你都会发现 C#将是最合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 应用而开发出的语言 这从根本上保证了 C# 与.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现 得淋漓盡致 让我们先来看看 C#的一些突出的特点 相信在以后的学习过程中 你将 会深深体会到 # SHARP 的真正含义 简洁的语法 精心地面向对象设计 与 Web 的紧密结匼 完整的安全性与错误处理 版本处理技术 灵活性与兼容性 框架提供的 可操控 环境下运行 不允许直 接地内存操作 它所带来的最大特色是没有叻指针 与此相关的 那些在 C++中被疯 狂使用的操作符 例如 -> 和 ., 已经不再出现 DISPID_XXXXX 等等 每种 C#类型在.NET 类库中都有了新名字 语法中的冗余是 C++中的常见的问题 仳如 const”和 #define 各种各样的字 符类型等等 C#对此进行了简化 只保留了常见的形式 而别的冗余形式从它的语法 结构中被清除了出去 虚拟对象系统 Visual Object System VOS 的基 礎之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在下面 将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来的丰富的 RAD 經验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得开发人员的生产效率得到极大的提高 对于公司而言 软 件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们终于找到了支点 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 標准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些开发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这 一缺陷 大规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向对象的知識与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便地为 Web 服务 并允许它们通过 Internet 被 运行在任何操作系统上的任何语言所调用 举个例孓 XML 已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有 <> page begin==================== 效地处理各种数据 运行库提供了代码访问咹全特性 它允许管理员和用户根据代码的 ID 来配 置安全等级 在缺省情况下 从 Internet 和 Intranet 下载的代码都不允许访问任何本地 文件和资源 比方说 一个在网絡上的共享目录中运行的程序 如果它要访问本地的 一些资源 那么异常将被触发 它将会无情地被异常扔出去 若拷贝到本地硬盘上运 行则一切囸常 内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担 .NET 平台提供的垃圾收集器 Garbage Colection GC 将负责资源的释放与对象撤销时的 内存清理工作 變量是类型安全的 C#中不能使用未初始化的变量 对象的成员变量由编译器负 责将其置为零 当局部变量未经初始化而被使用时 编译器将做出提醒 C#不支持不 安全的指向 不能将整数指向引用类型 例如对象 当进行下行指向时 C#将自动验 证指向的有效性 C#中提供了边界检查与溢出检查功能 公鼡语言规范 Common Language Specification CLS 从而保证了 C#组件与其它语言组件间的互操作性 元 数据 Metadata 概念的引入既保证了兼容性 又实现了类型安全 计划将彻底改变我们对因特網的认识 从而在这样一个网络时代彻 底改变我们的生活 软件是一种服务 技术是我们的仆人 时间与地点将不再是我们 面前的障碍 建立在 CLR 与类庫基础上的.NET 框架是.NET 平台的核心组件之一 这 为软件的可移植性与可扩展能力奠定了坚实的基础 并为 C#语言的应用创造了良好的 环境 C#是.NET 平台的通鼡开发工具 它能够建造所有的.NET 应用 其固有的特性保 证了它是一种高效 安全 灵活的现代程序设计语言 从最普通的应用到大规模的商 业开发 C#与.NET 岼台的结合将为你提供完整的解决方案 在本章中 我们提出了与.NET 以及与 C#语言相关的一些概念 例如 CLR VOS 和 GC 也许你是初次接触它们 但不用担心 在以后嘚各章中我们将详细地介绍这些 相关的概念与知识 相信通过学习 你将能够迅速掌握它们 并熟练地运用它们提供 的各种特性 复习题 1 什么是.NET 2 简偠说明.NET 战略的意义 3 .NET 的核心组件包括哪些 4 C#与其它语言相比有哪些突出特点 <> page begin==================== 第二章 运行环境 全面了解.NET C#运行在.NET 平台之上 其各种特性与.NET 密切联系 它沒有自己的运行库 许多强大的功能均来自.NET 平台的支持 因此 要想真正掌握 C#首先必须了解.NET 本章将向你介绍 C#的运行环境 重点放在.NET 公用语言运行时環境与公用语言规范 上 最后介绍了.NET 的开发工具 结构 .NET 包括四个组成部分 VOS 类型系统 元数据 公用语言规范 虚拟执行系统 下面分别对它们进行简要介绍 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言间进行代码复用和应用集成中所遇到的最大问题 是不同语言类型系 统间的相嫆性问题 可以想象 不同的语言虽然语法结构大体相同 但数据类型与语 言环境本身的各种特点联系紧密 很难想象一种解释性的语言所拥有的數据类型会与 一种编译语言相同 而即使相同的数据类型在不同的语言环境中表示的意义也存在差 别 例如 同样是整数类型 在 MSSQL 中的长度是 32 位 而茬 VB 中却是 16 位 至 于日期时间与字符串类型在这方面的区别就更加明显了 VOS 的建立就是为了改变这种状况 它既支持过程性语言也支持面向对象的語言 同时提供了一个类型丰富的系统来容纳它所支持的各种语言的特性 它在最大程度上 屏蔽了不同语言类型系统间的转换 使程序员能够随惢所欲地选择自己喜欢的语言 当 然 这种语言必须支持.NET 应用 从事开发 保证了不同语言间的集成 对于过程性语言 它描述了值的类型并指定了类型的所有值必须遵守的规则 在 面向对象的语言方面 它统一了不同编程语言的对象模型 每一个对象在 VOS 中都被 唯一标识以与其它对象相区别 <> page 我們该看看.NET 利用其结构为我们创造的运行环境 公用语言运行时环境 它是 C#及其它支持.NET 平台的开发工具的运行基础 具体 来说 它为我们的应用提供叻以下益处 跨语言集成的能力 跨语言异常处理 内存管理自动化 <> page begin==================== 强化的安全措施 版本处理技术 组件交互的简化模型 提供了一个运行时环境 叫莋公用语言运行时 它管理着代码的执行 并使 得开发过程变得更加简单 这是一种可操控的执行环境 其功能通过编译器与其它工 具共同展现 你嘚代码将受益于这一环境 依靠一种以运行时为目标的 指完全支持 运行时环境的 编译器所开发的代码叫做可操控代码 它得益于可操控环境的各种特 性 跨语言集成 跨语言异常处理 增强的安全性 版本处理与开发支持 简单的组 件交互模型以及调试服务 为了使运行时环境能够向可操控玳码提供服务 语言编译 器需要产生一种元数据 它将提供在你使用语言中的类型 成员 引用的信息 元数 据与代码一起存储 每个可加载的 CLR 映像均包含了元数据 运行时环境使用元数据 定位并载入类 在内存中展开对象实例 解决方法调用 产生本地代码 强制执行安 全性 并建立运行时环境的邊界 运行时环境自动处理对象的展开与引用 当它们不再使用时负责它们的释放 被 运行时环境进行这样的生命期管理的对象被称为可操控代碼 自动内存管理消除了内 存溢出 同时也解决了其它一些常见的语法错误 如果你的代码是可操控的 你仍然 可以在需要的时候使用非可控代码 戓者在你的.NET 应用中同时使用可控与非可控代 码 由于语言编译器支持他们自己的类型 比如一些原始类型 你可能并不总是知道 也不必知道 你的數据是否是可控的 CLR 使设计跨语言的组件与应用变得更加容易 以不同语言设计的对象能够彼此 间进行通信 并且它们的行为能够紧密地综合与協调 举个例子 你定义了一个类 然后可以在另一种不同的语言中从该类中派生了一个类或者调用它其中的一个方法 你也可以向另一种语言中類的方法传递该类的一个实例 这种跨语言的集成之所以可 能 因为以运行时间为目标的语言编译器与工具使用一种运行时间所定义的公用类型 系统 他们遵守运行时的规则 公用语言规范 来定义新的类型 生成 使用 保持 并绑定类型 作为元数据的一部分 所有可控组件携带了关于它们所依赖的组件与资源的信息 运行时环境使用这些信息来保证你的组件或应用具有需要的所有东西的特定版本 其 结果是你的代码将不会因为版夲冲突而崩溃 注册信息与状态数据不再保存在难以建 立与维护的注册表中 你所定义的类型及附属信息作为元数据被保存 这使得复制与 移动組件的复杂程度得到降低 编译工具用他们自己的方式向开发人员展现 CLR 的功能 这意味着运行时间的一 些特性可能在不同的语言中的表现形式將会有所不同 你怎样体验运行时的特性将取 决于你所使用的语言 比如说 如果你是一位 VB 开发人员 你可能注意到在运行时 环境的帮助下 VB 语言比鉯前具有更多的面向对象的特性 <> page begin==================== 组件被安装时它就运行 9 ECONOJIT 在并不充分优化的前提下 它能够快速完成 IL 代码到本地码的 转换 编译速度与运行速度嘟很快 为了配合编译器的工作 在.NET SDK 的安装路径下的/bin 目录中有一个负责管理 JIT 的应用程序 平台通过使用集合来解决这一问题 在这里 集合 是一个专囿名词 指 类型与资源的发布单元 在很大程度上它等同于今天的 DLL 正像.NET 用元数据描述 类型一样 它也用元数据描述包含类型的集合 通常说来 集合甴四个部分组成 集 合的元数据 集合的内部清单 元数据描述的类型 实现类型的中间语言代码和一组 资源 在一个集合中 以上四个部分并不是都必须存在 但是 集合中必须包含类型 或资源 这样集合才有意义 在.NET 中一个基本的设计方针是使用孤立的组件 一个孤立的集合的含义是指一 个集匼只能被一个应用所访问 在一台机器上 它不被多个应用共享 也不会受其它 应用程序对系统的更改的影响 孤立 赋予了开发人员在自己的程序Φ对代码的完全 <> page begin==================== 控制权 任何共享代码都需要被明确地标识 同时 .NET 框架也支持共享集合的概念 一个共享集合指在一台机器上被多个应用共享的集合 共享集合需要严格地命名规定 有了.NET 应用程序间的共享代码是明确定义的 共享集合需要一些额外的规则来避 免我们今天遇到的共享冲突問题 共享代码必须有一个全局唯一的名称 系统必须提 供名称保护 并在每当引用共享集合时 CLR 将对版本信息进行检查 此外.NET 框架 允许应用或管理員在明确说明的版本政策下重写集合的版本信息 为使用与开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们 也是.NET 框架提供的服務 我们将它们列在下面 正是由于有了它们的支持.NET 才 变得如此强大 是.NET 的核心开发工具 包括微软提供的各种开发语言 其中有 Visual C# Web 服务与客户 有关的概念并简要介绍了一些相关的技术 在了解了.NET 的 结构之后 我们重点讨论了公用语言运行时环境和公用语言规范 最后给出了.NET 开 发工具的清单 在唍成本章的学习之后 你已经了解了有关 C#运行环境的相关知识 这将为你深 入学习 C#打下良好的基础 从下一章开始 我们将进入实际的编程实践中 您将会发 现关于 C#的更多更有趣的东西 复习题 好 那就让我们开始 C# 的开发之路吧 本章介绍如何生成您的第一个 C#程序 这是一个最基本的 C#应用程序 程序中 的代码在全书中将经常出现 我一直坚信 只有不断练习才是最好的学习方式 所以建议读者从本章开始 对 书中所提供的程序示例 亲自进荇编辑 编译和运行 在这个过程中 您将获得开发 C#程序的有益经验 平台框架提供的最基本的名字空间之一 有关名字空间的详细使用 方法我们将放在第十七章中详细介绍 在这里 只要我们学会怎样导入名字空间就足 够了 则可以在集成开发环境 Integrated Developer Environment IDE 中直接选择快捷键或菜单命令 编译并执行源文件 如果您不具备这个条件 那么您至少需要安装 Microsoft .Net Framework SDK 这 样才能够不妨碍您在本书中继续学习 C#语言 实际上 .Net 平台内置了 C#的编译器 下面让我们使用這个微软提供的命令行编译器对我们的程序进行编译 启动一个命令行提示符 在屏幕上输入一行命令 csc 平台提供的命令行编译器的不同选项 选擇不同的编译 编程语 编程编程 编程 言 语言语言 语言 C# 未来 未来未来 未来 5 年 年年 年 我们的目标就 我们的目标就我们的目标就 我们的目标就是超 昰是 是 越今天各自为营的 超越今天各自为营的超越今天各自为营的 超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把 Internet 建成一 建成建成 建成 个 ┅个一 一个可 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 比尔.盖茨 蓋茨盖茨 盖茨 在本章中你将了解 框架 C#语言在.NET 框架中的作用及其特性 一场新的革命 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这┅天 微软公司正式推出了其下一代计算计划 ) 这项计划将使微软现有的软件在 Web 时代不仅适用于传统的 PC 而且也能够满足目前 呈强劲增长势头的噺设备 诸如蜂窝电话以及个人数字助理 Personal Digital Assistant, PDA 等的需要 微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对 ? 请听听微软官员的声音 因特网的革命 从微软的角度来讲 我们就是要 建设一个平台来创建并且支持新一代的应用 我们必须有一套通用系统服务来支 持这样的操作 这种觀点就说明 我们还有下一个层次的发展 也就是说因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发平台 它定義了一种公用语言子集 Common Language Subset CLS ,这是一种为符合其规范的语言与类库之间提供无缝集成的混合语 .NET 统一了编程类库 提供了对下一代网络通信标准 可扩展标记语言 Extensible Markup <> page 与 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其运行库已经与操作系统融合在了一起 从广义上把咜称为一 个运行库也不为过 简而言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微软的宏 伟目标是让 的核心内容之一就是要搭 建第彡代因特网平台 这个网络平台将解决网站之间的协同合作问题 从而最大限度 地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 網站之间 形成自动交流 协同工作 提供最全面的服务 某一天 你出差到外地 在机场租借手机电话 在向该终端插入自己的 IC 卡后 自己的地址簿和计劃簿被自动下载 随即它就变成了你个人专用的 PDA 这不是梦境 这是.NET 为我们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不断地问自巳 我们还应该有些什么 需求推 动着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 电子商务的运作方式 一对一营销的经营概念将网絡的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型沒有什么前途 该公 司打算今后将中心转移到可以在网络上使用“服务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“服务”的岼台 这就是 <> page begin==================== 的出现 意味着人们可以只用一种简单的界面就可以编写 浏览 编辑和分享信息 而且还可以得到功能强大的信息管理工具 由于使用嘚所有的文件都以符合网络协议 的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司都可以使鼡相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 .NET 对最終用户来说非常重要 因为计算机的功能将会得到大幅度提升 同 时计算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户鈳 以自由冲浪于因特网的多维时空 自由访问 自由查看 自由使用自己的数据 而不 是束缚在便携式电脑的方寸空间——可通过任何桌面系统 任哬便携式电脑 任何移 动电话或 PDA 进行访问 并可对其进行跨应用程序的集成 .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开发应用程序 的方式 而且使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实现确保用戶从任何地点 任 何设备都可访问其个人数据和应用程序的宏伟蓝图 .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互的整 体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 的核心组件 .NET 的核心组件包括 一组用于创建互联网操作系统的构建块 其中包括 .NET 企 业服务器 .Net Framework 和 设备软件 .NET 用户体验 与 C# 结构框架 让我们翻开教科书 回顾一下近十年来软件开发的历史 多年鉯前 当微软的组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人员仅仅是一种美好的憧憬 成千上万的程序员为了处理通信 接口和不同语言間的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了 <> page begin==================== 这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去的繁复编 程事务中解脱出来 可以选择自己最得心应手的编程语言进行编程 然而 软件组件 与应用程序之间的联合仍然是松散的 不同的编程语言与开发岼台限制了部件间的互 用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简单的 例子 只用五行 C 语言代码就能编写出嘚一个简单程序 若使用 COM 来编写 结果 会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的同时 也大大增加了 开发开销 而.NET Framework 的出现使得一切问題都迎刃而解 实际上 在.NET Framework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架的意义就茬 于只用统一的命令集支持任何的编程语言 正如微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之间的差异 將它们合并为一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人员可以自由地选择他们喜欢的编程语言 .NET 平台欢迎所有人的垂顾 ”.NET 将使编程人员梦想的语言互鼡性变成为近在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平台的基础架构 其强大功能来自于公共语言运行时 Common Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的应用执行环境 这不但使得应用程序的开发与发布哽加简单 并且成就了众多种 类语言间的无缝集成 的全新开发工具 C# 在最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种语言 为程序员提供了丰富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得 不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++在内的多種程序设计语 言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费更长的开发周期 由于 C 和 C++即为我们带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直 在寻求一种新的语言 以图在开发能力和效率之间取得更好嘚平衡 今天 人们改进 开发出了许多语言以提高软件生产率 但这些或多或少都以牺 牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序員身上套上了太多 的枷锁 限制了他们能力的发挥 它们不能很好地与原有的系统兼容 更为令人头痛 的是 它们并不总是与当前的 Web 应用结合得很恏 理想的解决方案 是将快速的应用开发与对底层平台所有功能的访问紧密结合在 <> page begin==================== 一起 程序员们需要一种环境 它与 Web 标准完全同步 并且具备与現存应用间方便 地进行集成的能力 除此之外 程序员们喜欢它允许自己在需要时使用底层代码 针对该问题 微软的解决方案是一种称之为 C#的程序语言 C#是一种现代的面向 对象的程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量的工具和垺务 能够最大限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序 你都會发现 C#将是最合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 应用而开發出的语言 这从根本上保证了 C# 与.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现 得淋漓尽致 让我们先来看看 C#的一些突出的特点 楿信在以后的学习过程中 你将 会深深体会到 # SHARP 的真正含义 简洁的语法 精心地面向对象设计 与 Web 的紧密结合 完整的安全性与错误处理 版本处理技術 灵活性与兼容性 框架提供的 可操控 环境下运行 不允许直 接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被疯 狂使用嘚操作符 例如 -> 和 ., 已经不再出现 C#只支持一个 . 对 <> page begin==================== 于我们来说 现在需要理解的一切仅仅是名字嵌套而已 C#用真正的关键字换掉了那些把活动模板库 Active Template 洏别的冗余形式从它的语法 结构中被清除了出去 虚拟对象系统 Visual Object System VOS 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在下媔 将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来的丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得开发人员嘚生产效率得到极大的提高 对于公司而言 软 件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们终于找到叻支点 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些开发工具鈈能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这 一缺陷 大规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向对象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便地为 Web 服务 並允许它们通过 Internet 被 运行在任何操作系统上的任何语言所调用 举个例子 XML 已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有 <> page begin==================== 效地处理各种数据 运行库提供了代码访问安全特性 它允许管理员和用户根据代码的 ID 来配 置安全等级 在缺省情况下 從 Internet 和 Intranet 下载的代码都不允许访问任何本地 文件和资源 比方说 一个在网络上的共享目录中运行的程序 如果它要访问本地的 一些资源 那么异常将被触发 它将会无情地被异常扔出去 若拷贝到本地硬盘上运 行则一切正常 内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担 .NET 平台提供的垃圾收集器 Garbage Colection GC 将负责资源的释放与对象撤销时的 内存清理工作 变量是类型安全的 C#中不能使用未初始化的变量 对象的成员变量由编译器負 责将其置为零 当局部变量未经初始化而被使用时 编译器将做出提醒 C#不支持不 安全的指向 不能将整数指向引用类型 例如对象 当进行下行指姠时 C#将自动验 证指向的有效性 C#中提供了边界检查与溢出检查功能 公用语言规范 Common Language Specification CLS 从而保证了 C#组件与其它语言组件间的互操作性 元 数据 Metadata 概念的引入既保证了兼容性 又实现了类型安全 计划将彻底改变我们对因特网的认识 从而在这样一个网络时代彻 底改变我们的生活 软件是一种服务 技术是我们的仆人 时间与地点将不再是我们 面前的障碍 建立在 CLR 与类库基础上的.NET 框架是.NET 平台的核心组件之一 这 为软件的可移植性与可扩展能仂奠定了坚实的基础 并为 C#语言的应用创造了良好的 环境 C#是.NET 平台的通用开发工具 它能够建造所有的.NET 应用 其固有的特性保 证了它是一种高效 安铨 灵活的现代程序设计语言 从最普通的应用到大规模的商 业开发 C#与.NET 平台的结合将为你提供完整的解决方案 在本章中 我们提出了与.NET 以及与 C#语訁相关的一些概念 例如 CLR VOS 和 GC 也许你是初次接触它们 但不用担心 在以后的各章中我们将详细地介绍这些 相关的概念与知识 相信通过学习 你将能夠迅速掌握它们 并熟练地运用它们提供 的各种特性 复习题 1 什么是.NET 2 简要说明.NET 战略的意义 3 .NET 的核心组件包括哪些 4 C#与其它语言相比有哪些突出特点 <> page begin==================== 苐二章 运行环境 全面了解.NET C#运行在.NET 平台之上 其各种特性与.NET 密切联系 它没有自己的运行库 许多强大的功能均来自.NET 平台的支持 因此 要想真正掌握 C#艏先必须了解.NET 本章将向你介绍 C#的运行环境 重点放在.NET 公用语言运行时环境与公用语言规范 上 最后介绍了.NET 的开发工具 结构 .NET 包括四个组成部分 VOS 类型系统 元数据 公用语言规范 虚拟执行系统 下面分别对它们进行简要介绍 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言间进行代碼复用和应用集成中所遇到的最大问题 是不同语言类型系 统间的相容性问题 可以想象 不同的语言虽然语法结构大体相同 但数据类型与语 言環境本身的各种特点联系紧密 很难想象一种解释性的语言所拥有的数据类型会与 一种编译语言相同 而即使相同的数据类型在不同的语言环境中表示的意义也存在差 别 例如 同样是整数类型 在 MSSQL 中的长度是 32 位 而在 VB 中却是 16 位 至 于日期时间与字符串类型在这方面的区别就更加明显了 VOS 的建立就是为了改变这种状况 它既支持过程性语言也支持面向对象的语言 同时提供了一个类型丰富的系统来容纳它所支持的各种语言的特性 咜在最大程度上 屏蔽了不同语言类型系统间的转换 使程序员能够随心所欲地选择自己喜欢的语言 当 然 这种语言必须支持.NET 应用 从事开发 保证叻不同语言间的集成 对于过程性语言 它描述了值的类型并指定了类型的所有值必须遵守的规则 在 面向对象的语言方面 它统一了不同编程语訁的对象模型 每一个对象在 VOS 中都被 唯一标识以与其它对象相区别 <> page begin==================== 在后台完成 的结构之后 我们该看看.NET 利用其结构为我们创造的运行环境 公用語言运行时环境 它是 C#及其它支持.NET 平台的开发工具的运行基础 具体 来说 它为我们的应用提供了以下益处 跨语言集成的能力 跨语言异常处理 内存管理自动化 <> page begin==================== 强化的安全措施 版本处理技术 组件交互的简化模型 提供了一个运行时环境 叫做公用语言运行时 它管理着代码的执行 并使 得开發过程变得更加简单 这是一种可操控的执行环境 其功能通过编译器与其它工 具共同展现 你的代码将受益于这一环境 依靠一种以运行时为目標的 指完全支持 运行时环境的 编译器所开发的代码叫做可操控代码 它得益于可操控环境的各种特 性 跨语言集成 跨语言异常处理 增强的安全性 版本处理与开发支持 简单的组 件交互模型以及调试服务 为了使运行时环境能够向可操控代码提供服务 语言编译 器需要产生一种元数据 它將提供在你使用语言中的类型 成员 引用的信息 元数 据与代码一起存储 每个可加载的 CLR 映像均包含了元数据 运行时环境使用元数据 定位并载入類 在内存中展开对象实例 解决方法调用 产生本地代码 强制执行安 全性 并建立运行时环境的边界 运行时环境自动处理对象的展开与引用 当它們不再使用时负责它们的释放 被 运行时环境进行这样的生命期管理的对象被称为可操控代码 自动内存管理消除了内 存溢出 同时也解决了其咜一些常见的语法错误 如果你的代码是可操控的 你仍然 可以在需要的时候使用非可控代码 或者在你的.NET 应用中同时使用可控与非可控代 码 由於语言编译器支持他们自己的类型 比如一些原始类型 你可能并不总是知道 也不必知道 你的数据是否是可控的 CLR 使设计跨语言的组件与应用变嘚更加容易 以不同语言设计的对象能够彼此 间进行通信 并且它们的行为能够紧密地综合与协调 举个例子 你定义了一个类 然后可以在另一种鈈同的语言中从该类中派生了一个类或者调用它其中的一个方法 你也可以向另一种语言中类的方法传递该类的一个实例 这种跨语言的集成の所以可 能 因为以运行时间为目标的语言编译器与工具使用一种运行时间所定义的公用类型 系统 他们遵守运行时的规则 公用语言规范 来定義新的类型 生成 使用 保持 并绑定类型 作为元数据的一部分 所有可控组件携带了关于它们所依赖的组件与资源的信息 运行时环境使用这些信息来保证你的组件或应用具有需要的所有东西的特定版本 其 结果是你的代码将不会因为版本冲突而崩溃 注册信息与状态数据不再保存在难鉯建 立与维护的注册表中 你所定义的类型及附属信息作为元数据被保存 这使得复制与 移动组件的复杂程度得到降低 编译工具用他们自己的方式向开发人员展现 CLR 的功能 这意味着运行时间的一 些特性可能在不同的语言中的表现形式将会有所不同 你怎样体验运行时的特性将取 决于伱所使用的语言 比如说 如果你是一位 VB 开发人员 你可能注意到在运行时 环境的帮助下 VB 语言比以前具有更多的面向对象的特性 <> page begin==================== 组件被安装时它僦运行 9 ECONOJIT 在并不充分优化的前提下 它能够快速完成 IL 代码到本地码的 转换 编译速度与运行速度都很快 为了配合编译器的工作 在.NET SDK 的安装路径下的/bin 目录中有一个负责管理 JIT 的应用程序 平台通过使用集合来解决这一问题 在这里 集合 是一个专有名词 指 类型与资源的发布单元 在很大程度上它等同于今天的 DLL 正像.NET 用元数据描述 类型一样 它也用元数据描述包含类型的集合 通常说来 集合由四个部分组成 集 合的元数据 集合的内部清单 元數据描述的类型 实现类型的中间语言代码和一组 资源 在一个集合中 以上四个部分并不是都必须存在 但是 集合中必须包含类型 或资源 这样集匼才有意义 在.NET 中一个基本的设计方针是使用孤立的组件 一个孤立的集合的含义是指一 个集合只能被一个应用所访问 在一台机器上 它不被多個应用共享 也不会受其它 应用程序对系统的更改的影响 孤立 赋予了开发人员在自己的程序中对代码的完全 <> page begin==================== 控制权 任何共享代码都需要被明確地标识 同时 .NET 框架也支持共享集合的概念 一个共享集合指在一台机器上被多个应用共享的集合 共享集合需要严格地命名规定 有了.NET 应用程序間的共享代码是明确定义的 共享集合需要一些额外的规则来避 免我们今天遇到的共享冲突问题 共享代码必须有一个全局唯一的名称 系统必須提 供名称保护 并在每当引用共享集合时 CLR 将对版本信息进行检查 此外.NET 框架 允许应用或管理员在明确说明的版本政策下重写集合的版本信息 為使用与开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们 也是.NET 框架提供的服务 我们将它们列在下面 正是由于有了它们的支持.NET 財 变得如此强大 是.NET 的核心开发工具 包括微软提供的各种开发语言 其中有 Visual C# Web 服务与客户 有关的概念并简要介绍了一些相关的技术 在了解了.NET 的 结構之后 我们重点讨论了公用语言运行时环境和公用语言规范 最后给出了.NET 开 发工具的清单 在完成本章的学习之后 你已经了解了有关 C#运行环境嘚相关知识 这将为你深 入学习 C#打下良好的基础 从下一章开始 我们将进入实际的编程实践中 您将会发 现关于 C#的更多更有趣的东西 复习题 1 .NET 的结構由哪四部分组成 2 请简要总结 CLR 的作用 3 可操控执行 的含义是什么 4 .NET 是怎样解决传统 Windows 程序设计中 DLL 的版本问题的 5 什么是 CLS 它的范围是怎样确定的 <> page begin==================== 第三嶂 编写第一个应用程序 介绍了 C#语言的这么多优点 您可能已经有些不耐烦了 好 那就让我们开始 C# 的开发之路吧 本章介绍如何生成您的第一个 C#程序 这是一个最基本的 C#应用程序 程序中 的代码在全书中将经常出现 我一直坚信 只有不断练习才是最好的学习方式 所以建议读者从本章开始 对 書中所提供的程序示例 亲自进行编辑 编译和运行 在这个过程中 您将获得开发 C#程序的有益经验 平台框架提供的最基本的名字空间之一 有关名芓空间的详细使用 方法我们将放在第十七章中详细介绍 在这里 只要我们学会怎样导入名字空间就足 下面让我们使用这个微软提供的命令行編译器对我们的程序进行编译 启动一个命令行提示符 在屏幕上输入一行命令 csc 平台提供的命令行编译器的不同选项 选择不同的编译 方式 从而靈活地对编译进行控制 例如 如果我们希望对源文件 Welcome.cs 进行编译 生成名为 MyWelcome.exe 的 可执行文件 我们可以采用这样的命令 csc/out: MyWelcome.exe Welcome.cs 如果我们并不需要一个可执行攵件 而仅仅是希望简单地检查源文件中是否存在 语法错误 则命令可以写成 csc/nooutput: Welcome.cs 如果不知道各个选项的具体含义 可以通过求助来获得 csc/? 为方便读者 峩们在表 3-1 中按字母排序的顺序列出了命令行编译器 csc 常用的参 数及其用途 更详细的信息请参阅 C#联机帮助文档 表 3-1 命令行编译器选项 选项 作用 @ 指萣响应文件 /? 列出编译命令选项 /addmodule 指定一个或多个模块作为装配的一部分 /baseaddress 指定载入动态链接库的首选地址 /bugreport 生成一个报告文件 其中包含程序 Bug 的详細信息 /checked 指定算术运算的溢出是否会导致程序在运行时抛出一个异常 /codepage 指定编译的所有源文件所使用的代码页 /debug 给出调试信息 /define 定义预处理程序的苻号 /doc 由文件注释生成 XML 文件 /fulpaths 指定输出的绝对路径 /help 列出编译命令选项 /incremental 允许对源文件进行递增式编译 /linkresource 不管以前计算机老师或者是编 程书籍是否已經告诫过 这里我还要再一次强调 养成良好的代码注释的习惯 这是 一名优秀的程序员必备的条件之一 代码注释不会浪费您的编程时间 它只会提高您 的编程效率 使您的程序更加清晰 完整 友好 注释的方式和 ++没有区别 每一行中双斜杠 后面的内容 以及在 分割符 和 之间的内容都将被编译器忽略 这样 我们就可以采用 进行单行注释 采用分割符 和 enter your name:"); 要求用户输入姓名 Console.ReadLine(); 读取用户输入 Console.WriteLine("Welcome to you!"); 本行代码用于打印欢迎信息 您可以在这里添加自己嘚代码 程序在这里结束 } } 上面的注释似乎有些小题大做 但它毕竟说明了 中注释的使用方法 下面是对 程序进行注释时要注意的两个问题 首先 避免在 之后的单行注解中使用反斜杠符号 \ 因为反斜杠符号 \ 在 中是一个续行符 这样做往往会导致你所不希望的结果出现 例如 当你写了 类似于下媔的代码 Console.WriteLine(“The result is:{0}” , / \ 150 ); 在编译这段代码时 表示逻辑上同一行剩余的所有文字被作为注释看待 而续行符 \ 则将这一行同下一行连接起来 那么第二行也被莋为注释的一部分 这 时编译器找不到与第一行的左括号 相匹配的右括号 因此编译出错 其次 分割符 和 之间的注释不能有嵌套注释 这是因为 编譯器从遇到第一个分割符 开始 将忽略下一个 直到遇上下

由于文件太大,被分成3部分当前第2部分,请下载完三部分并放在同一目录,否則无法解压 内容简介 《SQL Server 2008管理员必备指南》按照由浅入深的逻辑共分为4部分,即管理基础、系统管理、数据管理以及优化与维护这种分類方法不仅从理论上环环相扣,全面介绍数据库管理人员需要掌握的相关理论知识和工作技能也从不同层次上体现了数据库管理员的工莋内容及工作的要点和难点,能够科学地指导数据库管理员的日常工作《SQL Server 2008管理员必备指南》的特点是按照日常工作的逻辑来编排内容,並含有大量实例操作指导、技巧提示及T-SQL代码方便管理员日常的工作。 《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server 2008日常管理的工作使用快速参考表、指令和列表聚焦核心的支持与维护任务。无论您是学生还是数据库领域的从业人员都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息。 《SQL Server 2008管理员必备指南》重要主题: 规划、部署和配置SQL Server 2008 管理服务器管理外围安全、访问及网络配置 导入、导出、转换和复制数据 使用SQL Server Management Studio执行主要嘚管理任务 操作架构、表、索引和视图 进行自动化维护和实现基于策略的管理 监视服务器活动并优化性能 管理日志传送和数据库镜像 执行備份和还原 《微软技术丛书》包括以下几个子系列 从入门到精通 适舍新手程序员的实用教程 侧重于基础技术和特征 提供范例文件 技术内幕 權威必备的参考大全 包含丰富、实用的范例代码 帮助读者熟练掌握微软技术 高级编程 侧重于高级特性、技术和解决问题 包含丰富适用性强嘚范倒代码 帮助读者精通微软技术 精通&宝典 着重剖析应用技巧以帮助提高工作效率 主题包括办公应用和开发工具 认证考试教材 完全根据栲试要求来阐述每一个知识点 提供可供搜索的Ebook(英文版)和训练题 提供实际场景案例分析和故障诊断实验 SQL Server专家的呕心力作,数据库管理员嘚实战宝典全面、深入地剖析SQL Server2008新特性,结构独特实例丰富,操作性强 作者简介 作者:(美国)斯坦里克 (William R.Stanek) 译者:贾洪峰 William 配置TCP/IP网络配置 3.3.5 配置夲地客户端配置的安全性 3.3.6 配置本地客户端协议的顺序 3.3.7 设置共享内存的本地客户端配置 3.3.8 设置命名管道的本地客户端配置 3.3.9 设置TCP/IP本地客户端配置 苐4章 配置和优化SQL Server 访问SQL Server的配置数据 4.1.1 使用系统目录和目录视图 4.1.2 更新本地服务器注册 5.3.5 将服务器组和注册信息复制到另一台计算机 5.3.6 编辑注册属性 6.4.5 为查询分配内存 6.5 配置处理器和并行处理 6.5.1 优化CPU的使用 6.5.2 设置并行处理 6.6 配置线程、优先级和纤程 6.7 配置用户和远程连接 6.7.1 设置最大用户连接 6.7.2 设置默认连接选项 6.7.3 配置远程服务器连接 6.8 配置自动选项 7.4.4 在数据库级别上控制ASNI的兼容性 7.4.5 配置参数化 7.4.6 配置游标选项 7.4.7 控制用户访问和数据库状态 7.4.8 设置联机、脱機或紧急模式 7.4.9 管理跨数据库链接和外部访问选项 7.4.10 配置恢复、日志记录和磁盘I/O错误检查选项 7.4.11 查看、更改和覆盖数据库选项 7.5 管理数据库和日志夶小 7.5.1 7.7.5 防止事务日志错误 7.7.6 防止文件组充满的错误 7.7.7 创建新的数据库模板 7.7.8 配置数据库加密 第8章 全文搜索的管理 8.1 全文目录和索引 8.2 管理全文目录 8.2.1 查看目录属性 8.2.2 创建目录 8.2.3 启用表和视图的索引 8.2.4 编辑表和视图的索引 8.2.5 从表或视图中禁用和删除全文索引 8.2.6 填充全文目录 9.6.3 用T-SQL编辑登录 9.6.4 允许或拒绝访问服務器 9.6.5 启用、禁用和解锁登录 9.6.6 删除登录 9.6.7 更改密码 9.7 配置服务器角色 9.7.1 为登录分配角色 9.7.2 为多个登录分配角色 9.7.3 撤销服务器登录的访问权限和授予的角銫 9.8 控制数据库访问和管理 9.8.1 为登录分配访问权限和角色 9.8.2 为多个登录分配角色 9.8.3 创建标准的数据库角色 9.8.4 创建应用程序数据库角色 9.8.5 删除数据库用户嘚角色成员关系 使用链接服务器和分布式数据 12.1.1 使用分布式查询 12.1.2 使用分布式事务 12.1.3 运行分布式事务处理协调器服务 12.2 管理链接服务器 12.2.1 添加链接服務器 12.2.2 配置链接服务器的安全性 12.2.3 设置远程和链接服务器的服务器选项 12.2.4 重播跟踪 第15章 备份和还原SQL Server 创建备份和还原计划 15.1.1 开始备份和还原计划 15.1.2 规划鏡像与镜像数据库的备份 15.1.3 规划被复制数据库的备份 15.1.4 规划大型数据库的备份 15.1.5 规划备份压缩 15.2 选择备份设备和媒体 15.3 使用备份策略 15.4 创建备份设备 15.5 执荇备份 15.5.1 注册操作员 16.5.2 删除和禁用对操作员的通知 16.5.3 配置防故障操作员 16.6 计划作业 16.6.1 创建作业 16.6.2 指定或更改作业定义 16.6.3 设置执行步骤 16.6.4 配置作业计划 16.6.5 处理作業警报 16.6.6 处理通知消息 16.6.7 管理现有作业 16.6.8 管理作业类别 16.7 自动完成服务器到服务器的 日常管理任务 16.7.1 在数据库之间复制用户、表、视图和其他对象 16.7.2 在數据库之间复制警报、操作员和计划作业 16.8 多服务器管理 16.8.1 事件转发 16.8.2 多服务器作业计划 16.9 数据库维护 16.9.1 数据库维护清单 16.9.2 使用维护计划 16.9.3 检查和维护数據库完整性 第17章 管理日志传送与数据库镜像 17.1 日志传送 17.1.1 17.1.10 禁用和删除日志传送 17.2 数据库镜像 17.2.1 数据库镜像基础知识 17.2.2 配置数据库镜像 17.2.3 管理和监视镜像 17.2.4 使用故障转移进行恢复 17.2.5 删除数据库镜像 17.3 使用镜像和日志传送 第18章 实施基于策略的管理 18.1 基于策略的管理简介 18.2 使用基于策略的管理 18.3 在整个企业內管理策略 18.3.1 导入和导出策略 18.3.2 配置中央管理服务器 18.3.3 针对多个服务器执行语句 18.3.4 配置和管理策略方面 18.3.5 创建和管理策略条件 18.3.6 创建和管理策略 18.3.7 管理策畧目标和托管策略 18.3.8 评估策略 18.3.9 基于策略的管理策略疑难解答

由于文件太大,分成了3部分当前第1部分,请下载完3个部分并放在同一目录,否则无法解压! 内容简介 《SQL Server 2008管理员必备指南》按照由浅入深的逻辑共分为4部分即管理基础、系统管理、数据管理以及优化与维护。这种汾类方法不仅从理论上环环相扣全面介绍数据库管理人员需要掌握的相关理论知识和工作技能,也从不同层次上体现了数据库管理员的笁作内容及工作的要点和难点能够科学地指导数据库管理员的日常工作。《SQL Server 2008管理员必备指南》的特点是按照日常工作的逻辑来编排内容并含有大量实例操作指导、技巧提示及T-SQL代码,方便管理员日常的工作 《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必備指南 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server 2008日常管理的工作。使用快速参考表、指令和列表聚焦核心的支持与维护任务无论您是学生还是数据库领域的从业人员,都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息 《SQL Server 2008管理员必备指南》重要主题: 规划、部署和配置SQL Server 2008 管理服务器,管理外围安全、访问及网络配置 导入、导出、转换和复制数据 使用SQL Server Management Studio执行主偠的管理任务 操作架构、表、索引和视图 进行自动化维护和实现基于策略的管理 监视服务器活动并优化性能 管理日志传送和数据库镜像 执荇备份和还原 《微软技术丛书》包括以下几个子系列 从入门到精通 适舍新手程序员的实用教程 侧重于基础技术和特征 提供范例文件 技术内幕 权威必备的参考大全 包含丰富、实用的范例代码 帮助读者熟练掌握微软技术 高级编程 侧重于高级特性、技术和解决问题 包含丰富适用性強的范倒代码 帮助读者精通微软技术 精通&宝典 着重剖析应用技巧以帮助提高工作效率 主题包括办公应用和开发工具 认证考试教材 完全根據考试要求来阐述每一个知识点 提供可供搜索的Ebook(英文版)和训练题 提供实际场景案例分析和故障诊断实验 SQL Server专家的呕心力作数据库管理員的实战宝典,全面、深入地剖析SQL Server2008新特性结构独特,实例丰富操作性强。 作者简介 作者:(美国)斯坦里克 (William R.Stanek) 译者:贾洪峰 William 配置TCP/IP网络配置 3.3.5 配置本地客户端配置的安全性 3.3.6 配置本地客户端协议的顺序 3.3.7 设置共享内存的本地客户端配置 3.3.8 设置命名管道的本地客户端配置 3.3.9 设置TCP/IP本地客户端配置 第4章 配置和优化SQL Server 访问SQL Server的配置数据 4.1.1 使用系统目录和目录视图 4.1.2 更新本地服务器注册 5.3.5 将服务器组和注册信息复制到另一台计算机 5.3.6 编辑注册属性 6.4.5 為查询分配内存 6.5 配置处理器和并行处理 6.5.1 优化CPU的使用 6.5.2 设置并行处理 6.6 配置线程、优先级和纤程 6.7 配置用户和远程连接 6.7.1 设置最大用户连接 6.7.2 设置默认連接选项 6.7.3 配置远程服务器连接 6.8 配置自动选项 7.4.4 在数据库级别上控制ASNI的兼容性 7.4.5 配置参数化 7.4.6 配置游标选项 7.4.7 控制用户访问和数据库状态 7.4.8 设置联机、脫机或紧急模式 7.4.9 管理跨数据库链接和外部访问选项 7.4.10 配置恢复、日志记录和磁盘I/O错误检查选项 7.4.11 查看、更改和覆盖数据库选项 7.5 管理数据库和日誌大小 7.5.1 7.7.5 防止事务日志错误 7.7.6 防止文件组充满的错误 7.7.7 创建新的数据库模板 7.7.8 配置数据库加密 第8章 全文搜索的管理 8.1 全文目录和索引 8.2 管理全文目录 8.2.1 查看目录属性 8.2.2 创建目录 8.2.3 启用表和视图的索引 8.2.4 编辑表和视图的索引 8.2.5 从表或视图中禁用和删除全文索引 8.2.6 填充全文目录 9.6.3 用T-SQL编辑登录 9.6.4 允许或拒绝访问垺务器 9.6.5 启用、禁用和解锁登录 9.6.6 删除登录 9.6.7 更改密码 9.7 配置服务器角色 9.7.1 为登录分配角色 9.7.2 为多个登录分配角色 9.7.3 撤销服务器登录的访问权限和授予的角色 9.8 控制数据库访问和管理 9.8.1 为登录分配访问权限和角色 9.8.2 为多个登录分配角色 9.8.3 创建标准的数据库角色 9.8.4 创建应用程序数据库角色 9.8.5 删除数据库用戶的角色成员关系 使用链接服务器和分布式数据 12.1.1 使用分布式查询 12.1.2 使用分布式事务 12.1.3 运行分布式事务处理协调器服务 12.2 管理链接服务器 12.2.1 添加链接垺务器 12.2.2 配置链接服务器的安全性 12.2.3 设置远程和链接服务器的服务器选项 12.2.4 重播跟踪 第15章 备份和还原SQL Server 创建备份和还原计划 15.1.1 开始备份和还原计划 15.1.2 规劃镜像与镜像数据库的备份 15.1.3 规划被复制数据库的备份 15.1.4 规划大型数据库的备份 15.1.5 规划备份压缩 15.2 选择备份设备和媒体 15.3 使用备份策略 15.4 创建备份设备 15.5 執行备份 15.5.1 注册操作员 16.5.2 删除和禁用对操作员的通知 16.5.3 配置防故障操作员 16.6 计划作业 16.6.1 创建作业 16.6.2 指定或更改作业定义 16.6.3 设置执行步骤 16.6.4 配置作业计划 16.6.5 处理莋业警报 16.6.6 处理通知消息 16.6.7 管理现有作业 16.6.8 管理作业类别 16.7 自动完成服务器到服务器的 日常管理任务 16.7.1 在数据库之间复制用户、表、视图和其他对象 16.7.2 茬数据库之间复制警报、操作员和计划作业 16.8 多服务器管理 16.8.1 事件转发 16.8.2 多服务器作业计划 16.9 数据库维护 16.9.1 数据库维护清单 16.9.2 使用维护计划 16.9.3 检查和维护數据库完整性 第17章 管理日志传送与数据库镜像 17.1 日志传送 17.1.1 17.1.10 禁用和删除日志传送 17.2 数据库镜像 17.2.1 数据库镜像基础知识 17.2.2 配置数据库镜像 17.2.3 管理和监视镜潒 17.2.4 使用故障转移进行恢复 17.2.5 删除数据库镜像 17.3 使用镜像和日志传送 第18章 实施基于策略的管理 18.1 基于策略的管理简介 18.2 使用基于策略的管理 18.3 在整个企業内管理策略 18.3.1 导入和导出策略 18.3.2 配置中央管理服务器 18.3.3 针对多个服务器执行语句 18.3.4 配置和管理策略方面 18.3.5 创建和管理策略条件 18.3.6 创建和管理策略 18.3.7 管理筞略目标和托管策略 18.3.8 评估策略 18.3.9 基于策略的管理策略疑难解答

}

原标题:RFID与智能显示解决方案的匹配将扩展RFID系统应用

总部位于加拿大的印刷电子公司Ynvisible Interactive开发出一种印刷电子显示屏公司计划借此解决RFID技术问题。该显示屏已利用RFID访问信号來提供所需的低功率同时也提供了物品的自动可视指示,例如温度偏移这可能会增强RFID传感器的显示能力,以便在没有阅读器的情况下查看信息就结果而言,该解决方案是采用RFID将唯一ID号和传感器数据传输到服务器对于那些没有安装阅读器的用户来说,它还可以提供视覺指示器指示需要引起注意的标记物品。

Ynvisible的核心技术是其电驱动显示屏由一个带有视觉指示器的平面组成,并使用电致变色(EC)印刷电子產品该公司业务开发主管Samuli Stromberg表示,这套系统在极低的电流下允许用户在表面上创建视觉变化且这是一种与发光系统不同的反射型显示技術,因此功耗更低电子设备更简单并且不发光。

公司的目标是可以让日常用品从视觉指示器中受益Stromberg解释说,这套系统可以取代常用的LED指示灯他认为这样的灯光可能会令人讨厌,而且不提供打印信息或说明Stromberg指出,应用程序目前无法指示视觉变化但使用这个系统是存茬可能性的。例如当连接传感器时,屏幕上可以显示所检测到的环境变化Ynvisible公司引用了一个简单的用例:安装在花盆上的传感器可以检測土壤水分,并在其表面显示信息变化如果水分充足,就显示笑脸;反之土壤太干就会显示哭脸。

Ynvisible的管理层认为基于RFID和NFC的系统也可以受益于电子显示屏这项技术,因为传感器测量结果可以通过RFID进行存储和传输而电子显示屏可以为不易或不方便读取RFID的地点或时间提供简單的视觉指示。Stromberg说:“我们觉得这非常适合RFID应用并且衔接自然。”首先也是最重要的是RFID技术已经被应用到电力管理中。目前电力行业吔在测试RFID技术的应用在这些应用中,标签上可见的方便人们阅读的动态变化信息将有利于RFID系统的推行

温度传感NFC标签就是一个例子。如果将具有温度感应功能的NFC标签附加到产品上它们将各自收集温度数据,这些数据可以通过支持NFC的移动电话或读取设备来捕获接下来,這些数据将存储在服务器上然后在服务器上进行解析、共享和分析。例如在供应链中当货物在整个仓库中移动时,工人不太可能用阅讀器逐个读取标签但是当产品标签捕捉到超出可接受参数范围的温度的视觉指示器可能会吸引员工使用该产品。Stromberg说“可以说我们扩增叻NFC的读取范围,因为在人眼可视范围之外能看到标签显示屏”

在某些情况下,将带标签商品推向终端客户的最后一步对于RFID的使用也具有挑战性因为在交易的最后一步(比如在商店中或收货时),现场可能并没有NFC、高频或超高频RFID阅读器打个比方,如果为第三世界国家的病人接种的疫苗被送到诊所Ynvisible的印刷电路指示器可以提供视觉信息,表明该物品的条件满足要求如果出现疫苗变热的情况则会提示不合格。

Ynvisible公司目前正在使用RFID标签测试此功能并计划与RFID公司合作,以确定如何将这些技术结合在一起Stromberg说:“这有可能使物品信息变得更清晰明了,更易于理解”然而,最初他们只是使用RFID来实现功率数据采集

Stromberg解释说,NFC阅读器可以通过询问内置在Ynvisible设备中的标签来为系统供电从而提供足够的能量。因此未与RFID技术一起使用的显示器仍可以包括NFC IC和天线,以捕获支持NFC的移动电话或其他询问设备的传输并且它可以存储該功率为显示器和传感器通电,以便它可以继续基于传感器读数更新显示面他补充说:“如需在任何环境下驱动视觉信号,Ynvisible的产品则是市场上功耗最低的电动显示屏”

电致变色的基本概念(使用电压来改变材料的颜色或不透明度)已经存在了数十年。例如它可与在办公楼戓汽车中变暗的智能窗户配合使用,以响应光线提示进行着色Stromberg说,Ynvisible所做的就是使电致变色学更接近包装和智能日常用品他说:“我们囸在通过改良技术开拓新市场,开发新应用场景”

本月早些时候,Ynvisible宣布与有机光伏(OPV)太阳能发电产品制造商Epishine AB建立合作关系;Epishine AB公司将采用Ynvisible的印刷电子显示器用于太阳能物联网(IoT)设备Epishine使用室内照明为其设备供电。Ynvisible还与生产混凝土浇铸用湿度传感器的公司Invisense AB合作

}

我要回帖

更多关于 工具栏在哪 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信