惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
博客园 - 聂微东
S
Schneier on Security
The Last Watchdog
The Last Watchdog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Webroot Blog
Webroot Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Schneier on Security
Schneier on Security
PCI Perspectives
PCI Perspectives
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
Spread Privacy
Spread Privacy
Cisco Talos Blog
Cisco Talos Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Help Net Security
Help Net Security
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
NISL@THU
NISL@THU
博客园 - Franky
N
Netflix TechBlog - Medium
Know Your Adversary
Know Your Adversary
L
Lohrmann on Cybersecurity
F
Fortinet All Blogs
WordPress大学
WordPress大学
U
Unit 42
Hacker News: Ask HN
Hacker News: Ask HN
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
A
Arctic Wolf
酷 壳 – CoolShell
酷 壳 – CoolShell
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Security Affairs
H
Hacker News: Front Page
TaoSecurity Blog
TaoSecurity Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
B
Blog RSS Feed
罗磊的独立博客
Cloudbric
Cloudbric
Y
Y Combinator Blog
B
Blog
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
L
LINUX DO - 最新话题
The Register - Security
The Register - Security
D
DataBreaches.Net
GbyAI
GbyAI

博客园 - montaque

xp 与 windows 7 共享收藏夹 Microsoft ILM V2 新特性 云计算 PDC , KeyNote2 个人计算,Windows 7+ Live Service PDC - C#4.0 以及未来 PDC 第一天总结 PDC 2008 WPF/Silverlight 中利用XamlReader /Writer 来处理对象的序列化反序列化 让你的Expression XAML 编辑器支持智能提示 silverlight 测试 Powershell 脚本自动下载 FTP Server上面固定格式的文件 EDI batch Receiving in Biztalk 2006 R2 EDI Party Resolution in Biztalk R2 EDI in Biztalk 2006 R2 Hello,Biztalk 2006 R2 BAM, WCF 集成 Hello, Biztalk 2006 R2 BAM what's new in Biztalk 2006 R2 hello biztalk R2 Mix08
PDC , XAML 2009以及未来
montaque · 2008-10-31 · via 博客园 - montaque

PDC的新东西很多,今天去听了一个关于 Xaml  新特性以及未来的 Session。

Xaml目前主要用在三个场景,分别是UI,比如WPF Silverlight的展示,Workflow,比如WF,用xaml来定义workflow,以及电子文档比如XPS。

xaml只是去展现一个模型,会有多个Runtime来支持,比如.net 3.0, 3.5, SL 1, SL2

当然任何技术都需要一个工具的支持,目前有VS,Expression。这些是现状。

现在也有一些互相格式转换的工具,比如SVG 到 Xaml,SWF到Xaml等

对于下一个版本,也就是XAML 2009,Xaml 会让你用起来更加的方便,尤其去写一些复杂的模型。目前这个2009CTP版本可以下载了。新的特性有

  • x:Reference 的引用,比如
    • 以前的版本肯能要这么写来引用一个对象 <TextBox Target={Binding ElementName=infoTextBox} >
    • 现在可以直接写<TextBox Target=”InfoTextBox” />
  • Mscorlib里面的数据类型直接用,放到X里面,大多数CLR built类型都可以直接用
    • 以前要引用一个String,要先定义个Namespace指向Mscorlib,然后<ms:String>HelloWorld</ms:String>
    • 现在直接写<X:String>HelloWorld</X:String>,变为语法的一部分
  • 支持在Xaml中定义Generics
      • 比如 <resources><observableCollection x:Class=”ObservableCollection” X:TypeArguments=”Person”>
                                   <Person><Name>Mont</Name>…
      • 以前只能用C#去定义,或这Subcalss一个新类
  • 支持Dictionary任意类型的Key,以前只能是string,由于支持Generics,所以传入一个TypeArguments就可以定义Key类型了
  • 支持定义事件,比如某对象返回一个Delegate
  • 增加新属性更容易,比如定义个Person,给他加上两个属性。WF 4的variable就是用这个语法. X:SchemaMembers,然后定义Member的属性,类型
  • 支持对象的非默认构造函数,比如我定义个一个Person,需要传入ID作为构造函数。新的语法支持x:Arguments
    • <Person x:Class=”…”>
      • <x:Arguments>EMP1234</x:Arguments>,这样的话,ObjectDataProvider就很少用了估计
  • 支持静态工厂方法
    • 比如构造一个Guid,可以不用默认构造函数,改为<Gruid x:ObjectFactory=”Guid.NewGuid” />

然后演示了一下新的Content Model,有XAML到模型,然后到不同的Graph,比如对象Graph,或者DOM Graph,他们戏称为DOM Box,^_^

新的XAMLPad 支持这些特性,而且很容易让你去扩展。

以前的XamlReader,只能是读一个xaml文件,解析到xaml 节点,然后生成一个对象图。不允许你做任何的扩展。

这也造成如果你在xaml中定义个了事件,导致xamlpad根本就不Render这个对象

新的xamlreader,会有一个Read方法,类似xmlreader一样,每次你读一个对象,可能是个StartMember,可能是StartObject也可能是个Event

对于这个对象你可以访问其类型,和Meta Data ,比如 node.Event.IsUnknown?

这些新的xamlReader、Writer, 以及ObjectReader、Writer可以在System.Xaml.dll 中访问到。11月份会出一个CTP版本

有了这个扩展,可以让我们更容易去做一些Parser,和 不同文件的转换

我们知道WPF中xaml最后会编译成二进制的BAML,新的类库中也多了BAMLReader/Writer

最后举了一个超酷的例子。写了一个WPF程序,调用一个WCF的服务,大概就是输入一个股票代码,返回用户该买还是不该买

cool在哪里呢?

1. WPF 程序完全用xaml写,没有C#代码,这就用到新的特性。 Call WCF的过程,是调用了WF,wf 4.0可以直接调用,不需要显示的定义runtime,host。

2. 调用WCF的WF代码也是完全xaml写, WF 4 中新的Activity ,比如ClientOperation,让你调用WCF配置一下就可以了。定义调用的contract,endpoint等

3. WCF 的服务完全是用xaml写的。这个主要的思路就是新的xaml wcf runtime支持wcf常用的对象模型

<Service>

<Contract>

<Endpoints>

<service.Implementation>

<Loginc using WF>

所以WF、WPF、WCF 完全可以用xaml搞定。鼓掌。。。

有些人问,为什么一定搞得这么复杂,写代码很容易啊? 这个也就是最近很热的 “OSLO”的一个初衷

我们有不同的模型或者应用场景,现在我们的做法是选择了一个通用的语言,然后用一个Runtime的API来实现特定的功能。

能否用特定的语言来实现特定的功能呢?

这就是我们定义个一个自己的模型,目前可以用M语言去定义,然后定义自己的语法,MGrama,接下来有特定的Runtime负责把模型或者数据转成特定的对象图

而对于Runtime这一部分,如何统一呢,那就是用xaml,来定义你的对象图

所以对象 到 xaml,Runtime加载xaml。 对象的表达可以用M语言。

比如定义个一个service就可以这么写

service HelloSvc

{

Opeartion SayHello;

Endpoint={“http://localhost/hellosvc”},

Binding=”httpBasicBinding”;

Implementation=

{

// you impl

}

}