中 华

博客园 联系 订阅 管理
  5 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

News

2010年3月3日 #

如果你已经有较多的面向对象开发经验,跳过以下这两步:    

 第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET。 ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去!     

    第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习.NET Framework。ASP.NET是建构在.NET Framework之上的技术,你对.NET Framework了解得越深,学习ASP.NET就越快。 举个例子:下面简单列出几个对掌握ASP.NET非常重要的概念:对象的内存模型,委托,事件,多线程,程序集和应用程序域,安全模型 .NET Framework当然还有许多其它的东西,但不理解与把握清楚上述这些东西,是很难真正把握ASP.NET的。出于急迫的心情与现实的考虑,不少人没有扎实的面向对象基础就想直接学习ASP.NET,其结果只能是欲速则不达。在具备了OO基础之后,以下是具体的学习ASP.NET技术步骤。    

         第一步:学习HTML与CSS     这并不需要去学一大堆的诸如Dreamweaver,Firework之类的各种网页设计工具,关键是理解HTML网页嵌套的block结构与CSS 的box模型。许多ASP.NET控件最后都必须转化为HTML。而且,div+CSS是当前主流的网页布局模型。学习这部分时,关键在于理解概念,而不需要将精力花在美化页面的许多技巧上,那是网站美工的工作,不是程序员的工作。    

         第二步:学习JavaScript     JavaScript不是Java,它主要运行于浏览器端。可以完成许多工作,功能也很强大:比如它将客户端网页中的HTML元素看成一棵树,可以编写代码访问并修改树节点,动态生成新的HTML代码,从而达到动态修改网页显示特性的目的。     JavaScript在目前的网站开发中用得很多,非常重要。     另外,它也是目前非常流行的AJAX技术的基础。     

第三步:学习计算机网络原理     找一本大学<计算机网络>教材,重点看看它的有关互联网的部分,了解一些域名解析和HTTP协议等知识。这是进行互联网开发的理论基础。    

 第四步:学习ASP.NET表示层技术,会设计Web页面     需要结合先前打好的面向对象技术的基础,至少掌握以下内容:     (1) 各种Web控件的使用方法,     (2) 理解信息在网页中的传送方式,比如Cookie,ViewState,Session等的使用。     (3) ASP.NET应用程序与网页的生命周期,以及相关对象(比如httpcontext,response,request)的用途。     (4) ASP.NET实现事件驱动的内幕     (5) 自定义用户控件     再次强调一下,没有OO基础,很难掌握上述技术,就只能被这些东东牵着鼻子走了,会很被动。     

第五步 掌握数据库技术     具体地说,要学习以下内容:     (1) 学会使用SQL Server 2005:不要求精通它的各种工具与管理配置技术,但至少知道如何连接,如何建表,如何创建存储过程     (2) 学习ADO.NET,掌握使用代码人工访问数据库(别用VS2005的向导)的方法     (3) 学习数据绑定控件的使用    

 第六步 理解多层架构     这时,先前在OO学习阶段涉及到的程序集与应用程序域等就派上用场了,现在,网站架构大多采用多层架构:表示层、业务逻辑层、数据存取层以及数据库本身。     可以先上网找一此多层架构的资料看,再找一个现成的比较复杂的开源ASP.NET项目分析一下其架构就差不多了。基本上都是一个套路,到处应用。     有的朋友问:学习架构是不是必须学习设计模式。     我的看法是:不必!当然,你如果学习过设计模式,那当然更好。但在实际开发中,如果只想着机械地套用某种模式,反而起不到好的结果。我的观点:在学习设计模式时要多思多悟,其思想就会渐渐地融入你的大脑,在真实的设计实践中,忘掉所有的写在书上的模式,一切从实际出发,相信你的直觉,只要达到设计要求的方案就是可行的方案,事实上,你这样做了之后,回过头来再看,会发现你的设计往往暗合设计模式的理论。     

第七步 学习XML与Web Service     先了解XML的基础知识,找本讲XML的书看一下就差不多了,然后,再学习Web Service。Web Service其实可类比为远程方法调用(以XML格式表达的调用信息)。     学到了这里,如果你还有兴趣,不妨再去看看SOA,不过SOA的资料都是理论与概念,看起来比较郁闷,而且离实际开发可能比较远。所以,这是可选项。     

第八步 学习AJAX     学习AJAX的主要目的是创建具有更丰富特性的Web表示层,而经过前面七步的学习,到此再学习AJAX已水到渠成,所有的基础都已具备,不会有太大的问题了。     在基础未具备的前提下直接学AJAX,就象“浮沙之上筑高台”,所以,将AJAX的学习次序安排在这里。    

 第九步 学习RIA技术     RIA:Rich internet application,可看成是将C/S与B/S优点合二为一的尝试。就具体技术来说,主要指微软的Silverlight(WPF_E),毕竟前头一路行来都是微软路线。

发表于 @ 2009年06月09日 05:50:00


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Maliyu/archive/2009/06/09/4253400.aspx

posted @ 2010-03-03 10:59 Alron 阅读(18) 评论(1) 编辑

发表时间: 2009-12-26 15:31, 2回/606阅 ,相关软件:Ajax框架 jQuery

下面是十个最牛的也是最流行的Javascript框架。它们完全可以担任目前世界上几乎所有一些和Ajax技术相关的和图形界面相关的一切功能。

  • jQuery

    http://jquery.com/

    如果今天你还不知道jQuery的话,那么作为一个程序员你可能真的是从火星来的了。这恐怕是Ajax中应用最广的框架。包括了许多很不错的UI组件,做出网页的效果也是令人称道的。不过,他最牛的是它的文件大小,只有区区18K,实在是居家旅行,网站开发之首选。

     下面是一个日历控件,很不错吧。

     

     

  • Prototype

    http://prototypejs.org/

     

    一个面向对象的javascript类库,包函了很多很多很实用的功能,很多其它的框架都使用了他作为基础类库。大小128K,有点大,还好。下面一其一个UI的示例。

  • script.aculo.us

    http://script.aculo.us/

     

    这个框架是基础上面那个框架(Prototype )上开发的,它被包含在Ruby on Rails框架中(http://rubyonrails.org/)。

  • MooTools

    http://mootools.net/

     

    这是一个紧凑的,模块化的,面向对象风格的javascript框架,这并不是一个能直接用上的Javascript,他主要给程序员们方便地进行开发更高级的组件,因为这个框架主要是面对开发人员的,所以他是非常灵活和非常强大的。也不大,才63K。

  • ExtJS

    http://extjs.com/products/extjs/

    这是一个超级强大的Javascripts类库,简直是包罗万像,就像机器猫的口袋,想要什么就有什么。UI组件多的是令人发指,功能也是强大到不行。当然,其类库的尺寸也是强大到不行,一共6.6M,还是被压缩过的。看看下面的UI示例吧,这只不过是冰山一角。

    我个人认为这个是所有框架里面最好的一个。

     

  • Qooxdoo

    http://qooxdoo.org/

     

    Exjs才6.6M,这个javascript类库居然有19.9M,正所谓一山还有一山高,没有最BT,只有更BT。它包括一个独立于平台的开发工具链,一个最先进的图形用户界面工具和先进的客户端与服务器之间的通讯层。下面是其UI示例:

     

  • Yahoo! UI Library (YUI)

    http://developer.yahoo.com/yui/

     

    如果你不知道YUI的话,那么我想告诉你的是,你一定是在离地球20亿光年的亚美尼亚星居住。这个YUI类库也是包罗万象,他最好的不但是条件非常宽松的BSD的License,而且,你不必像别的类库一下,管你用不用你都要全部文件。YUI除了基础库外,你用多少就下载多少。这么丰富的UI也只有10.5M的大小,还OK了。下面是一个演示:

     

  • MochiKit

    http://www.mochikit.com/

    一个很轻量级的类库,主要实际了异步请求的若干功能。

     

     

  • Midori

    http://www.midorijs.com/

    又一个轻量级的类库,没有用过。只有45K大小。主要是一些UI上的美化吧。

    示例: 

     

  • The Dojo Toolkit

    http://www.dojotoolkit.org/

     

    又一个超强大的类库,提供了非常丰富的UI。BSD的license,大小1.7M,看看下面的UI示例你就知道有多强大了。

  • posted @ 2010-03-03 10:45 Alron 阅读(36) 评论(0) 编辑

    2010年2月23日 #

    TCP、UDP协议详解

     来源:zdnet安全频道

        在了解TCP和UDP之前,我们需要来了解俩个概念,面向连接的服务和无连接的服务,应用面向连接的服务时,客户和服务器在进行数据发送前,彼此向对方发送控制分组,这就是所谓的握手过程,使得客户和服务器都做好分组交换准备。这个准备是很松散的,面向连接服务与很多其他的服务捆绑在一起,包括可靠的数据传输,流量控制和拥塞控制等,依赖连接以正确的顺序无错地传递所有数据。还要使用确认和重传机制实现来可靠性。而无连接服务侧是没有握手过程的,当一方想发送数据时就直接了当地发送,因为没有握手过程也就没有什么流量控制和拥塞控制,这样数据可能传输得更快,但是,由于也没有确认过程,源端就不知道那些分组到达了目的端。因此可能在传输过程中丢失数据,不适合用在一些文件的传输,可以用在因特网电话,视频会议什么的。

        TCP(传输控制协议)和UDP(拥护数据报协议)是传输层的俩个传输协议,它们俩个的最大区别就是是否面向连接。

        TCP包括了面向连接和可靠数据传输服务,在客户端和服务器端进行通信前,要先交换传输层控制信息,为双方的通信做好准备。在这个握手阶段后,我们就可以认为在这俩个进程间存在一个TCP连接,且是一个全双工的连接,在消息发送完后,应用程序会告诉TCP拆除这个连接。可靠的传输服务为了保障彼此通信能无差错地顺序传递所有数据。

        当其中任何一个应用程序把一个字节流传如套接字时,它可以指望TCP把同样的字节流传递到对方的套接字,中间不回丢失和重传。TCP是因特网的一种公益服务,其目的是能调节数据传输过程中的一些问题,因此还要包含一个拥塞机制。TCP拥塞机制在网络变得拥塞时阻止发送进程。确切地说,TCP拥塞控制试图把每个TCP连接限定在它所公平共享的网络带宽上。对于有最小带宽需求限制的实时音频或视频应用来说,阻止其带宽那就让它们不能正常工作,此外,我们能想象一下,在网络电话通话时,偶尔的不连续是可以容忍的,可见实时应用可以容忍丢失少部分数据,不需要完全可靠服务。

        说了这么多,TCP能提供的好的服务,再看一下其缺点吧,首先,TCP不保证最小传输率,通俗点说,TCP不允许发送进程以想要的速率发送数据,受到TCP拥塞控制的调节,发送进程有可能被迫以一个较低的平均速率发送。其次,TCP不提供任何延时保障,具体点说,发送进程把数据传入自己的TCP套接字后,这个数据将最终到达其接受套接字,但是中间所经历的时间就不能保证了 ,花几秒或则几分钟都不一定。

        UDP是一个非面向连接的轻量级传输协议,具有一个最简单的服务模型。UDP是无连接的,因此两个进程彼此通信之前没有握手过程。UDP提供不可靠的数据传输服务,也就是说当一个进程往自己套接字发送一个消息时,UDP不能保障这个消息回最终到达接受套接字。另外,就确实到达接收套节字的消息而言,他们的到达顺序也可能不是有序的。
       
        UDP不含拥塞控制机制,因此发送进程能够以任意速率往UDP套接字发送数据,尽管不能保证所有数据都到达接收套接字,但是会有相当比列的数据到达。实时应用程序的开发人员往往选择在UDP上运行他们的应用。与TCP类似,UDP也不提供任何延迟保证。

        我们可以通过下表来体会一下上面说的真正含义。

       

    应用层协议

    用来支撑的传输协议

    电子邮件

    SMTPRFC82

    TCP

    远程终端访问

    Telenet

    TCP

    WEB

    HTTP

    TCP

    文件传送

    FTP

    TCP

    远程文件服务器

    NFS

    TCPUDP

    流多媒体

    专属

    UDPTCP

    因特网电话

    专属

    一般为UDP

     
        在表中我们看到,电子邮件,远程终端访问,WEB和文件传送都使用TCP协议,这些应用选择TCP的主要原因是在于TCP提供了可靠的数据传输服务,能够保证所有数据最终到达其目的地。我们还看到,因特网电话一般运行在UDP协议上面,一个因特网电话应用的俩端都得以某个最小速率跨越网络发送数据;另外,因特网电话可以容忍数据丢失,从这个俩个条件来看,都适合UDP,不需要可靠的TCP传输服务。

        总的来说,TCP能保证传递全部数据,而UDP不能,且他们都不提供延迟保证。他们不提供延迟保证,并不意味着时间敏感的应用不能运行在现在的因特网上,而是应用是通过一些其他的方法来保证这些需要。

    ---------------------------

    TCP一般不需要自己验证。
    UDP的验证方法有很多,根据实际需要来决定。简单提几种方式:


    1、不做验证。对于不重要的数据传输,可以忽略丢包以及无序到达,例如视频、音频的即时播放。
    2、对每次发送的数据进行编号,接收方每次收到数据后回发编号,并自己丢弃重复收到的数据,发送方如果在一定时间内没有收到回应则自动重发。这种方式传输速度较低,适用于简单的数据传输。
    3、对每次发送的数据进行编号,由接收方来检查丢包情况,在适当的时候要求发送方重发前一段时间内丢失的数据。这种方式适用于大规模数据传输。

    posted @ 2010-02-23 17:34 Alron 阅读(180) 评论(0) 编辑

    2010年2月22日 #

    .Net Remoting与Server 对象详解

      摘要 
      本文介绍了Net Remoting的几个简单概念,并尝试从最简单的角度帮您理解什么是Remoting。同时,本文包括了一个使用Http Channel调用Remoting服务器的例子,并讨论了不同的Server对象的差别以及对象的生命周期。
      通过本篇文章的阅读,用户可以对Remoting的基本概念有了解,并知道几种Server端对象的区别和Server对象生命周期的概念。
      Remoting简介
      相信很多人都在不同的地方看到Remoting这个名词,其实它的概念很简单。我们通过使用Remoting来进行不同应用程序之间的通信,不管这些程序是在同一台计算机上,还是在局域网内的不同计算机上,甚至在Internet的不同操作系统上(当然相应的操作系统也必须实现了.Net Framework)。Remoting的两大功能在于:
      1)不同进程间的通信。
      2)不同应用域(AppDomain),不同进程的对象之间的通信(可以使用多种通信协议)。
      .NET Remoting框架
      为了使用Remoting, .NET提供了一整套框架来使这种分布的调用透明化。它的框架如下图所示:



    图1:.NET Remoting构架图

      通常用到的Remoting的概念有:

      Remoting Channel:这是指客户端和服务器端的通信协议,如我们可以使用TCP, HTTP协议。

      Serializer:这是指在传输时采用何种格式来传输数据,如我们可以采用Binary,也可以采用SOAP来传输XML格式的数据.

      .NET力图简化这些概念的编程,所以上面所述的协议和格式都可以通过更改配置文件切换。这也是编程人员不用担心的问题。如一段典型的客户端配置文件的内容是:

    <CONFIGURATION>

    <SYSTEM.RUNTIME.REMOTING>

     <APPLICATION>

    <CHANNELS>

    <CHANNEL ref="http" clientConnectionLimit="200">

     <CLIENTPROVIDERS>

    <FORMATTER ref="binary">

     </CLIENTPROVIDERS>

    </CHANNEL>

    </CHANNELS>

    </APPLICATION>

    </SYSTEM.RUNTIME.REMOTING>

    </CONFIGURATION>
      Remoting的一个典型示例

      让我们首先来看一个典型的实例。我们会有一个服务器程序Server.exe和一个客户端程序CAOClient.exe。客户端程序会通过http channel调用服务器端RemoteType.dll的对象和方法。我们会来检查在几种不同的Server对象下,这些调用会有什么样不同的结果。

     

      服务器端代码


    Server.cs
    using System;
    using System.Runtime.Remoting;

    public class Server{
    public static void Main(string[] Args){

    // Load the configuration file
    RemotingConfiguration.Configure("server.exe.config");

    Console.WriteLine("The server is listening. Press Enter to exit....");
    Console.ReadLine();

    Console.WriteLine("GC'ing.");
    GC.Collect();
    GC.WaitForPendingFinalizers();

    }
    }

      表1:Server.cs源代码

    Server.exe.config

    <SYSTEM.RUNTIME.REMOTING>
    <APPLICATION>
    <SERVICE>
    <ACTIVATED type="ClientActivatedType, RemoteType">
    </SERVICE>
    <CHANNELS>
    <CHANNEL ref="http" port="8088">
    </CHANNELS>
    </APPLICATION>
    </SYSTEM.RUNTIME.REMOTING>
    </CONFIGURATION>

      表2:Server.exe.config源代码

    RemoteType.cs
    using System;
    using System.Runtime.Remoting.Lifetime;
    using System.Security.Principal;

    public class ClientActivatedType : MarshalByRefObject{

    private int i;
     // override the lease settings for this object
     public override Object InitializeLifetimeService(){
    return null;
     }

     public string RemoteMethod(){

    // announce to the server that we've been called.
    Console.WriteLine("ClientActivatedType.RemoteMethod called.");

    // report our client identity name

    i=this.GetHashCode();
    return "RemoteMethod called. " + i;
     }

     public string RemoteMethod1(){
    return "RemoteMethod1 called. " + i;

    }
    }

      表3:RemoteType.cs源代码

      客户端代码


    CAOClient.cs
    using System;
    using System.Runtime.Remoting;
    using System.Runtime.Remoting.Lifetime;

    public class Client{

    public static void Main(string[] Args){

    // Load the configuration file
    RemotingConfiguration.Configure("CAOclient.exe.config");

    ClientActivatedType CAObject = new ClientActivatedType();

    Console.WriteLine("Client-activated object: " + CAObject.RemoteMethod());
    Console.WriteLine("Client-activated object: " + CAObject.RemoteMethod1());

    Console.WriteLine("Press Enter to end the client application domain.");
    Console.ReadLine();
    }
    }

      表4 CAOClient.cs源代码

    CAOClient.exe.config
    <CONFIGURATION>
    <SYSTEM.RUNTIME.REMOTING>
    <APPLICATION>
    <CLIENT url="http://localhost:8088">
    <ACTIVATED type="ClientActivatedType, RemoteType">
    </CLIENT>
    <CHANNELS>
    <CHANNEL ref="http" port="0">
    </CHANNELS>
    </APPLICATION>
    </SYSTEM.RUNTIME.REMOTING>
    </CONFIGURATION>

      表5:CAOClient.exe.config源代码

      编译文件

      使用“Visual Studio .NET Command Prompt="分别编译上述文件:

    csc /target:library RemoteType.cs
    csc Server.cs
    csc –reference:RemoteType.dll CAOClient.cs
    您会看到三个输出文件:RemoteType.dll, Server.exe 和 CAOClient.exe。
    运行Remoting程序
    在命令行方式下启动:Server.exe
    在命令行方式下启动:CAOClient.exe

      程序分析

      这是一个非常简单的Remoting程序,如果去掉两个配置文件(Server.exe.config和CAOClient.exe.config),你简直看不到它和非Remoting的程序有什么差别。实际上,在两个配置文件中,我们只是配置了Remoting的Channel(http:8088)。
     为什么需要Remoting

      我们都知道现在的Web程序都是多层架构:数据层,商业逻辑层和表示层。这样的好处是代码和表现的分离。这是现在程序设计一个常用的思想,XML和XSLT也是基于同样的思想。

      假设我们可以为一个程序写两个表示层,一个是Web Application,另一个是Windows Application,而主要的商业逻辑都放在逻辑层。如果把商业逻辑层的类和对象都作为Remoting对象,我们就可以非常方便的实现这一点。一个具体的例子是Visual Studio .NET自带的Duwamish,这是一个非常好的例子,有很多好的设计思想。

      Remoting还有很多其它的应用场景,在此就不一一阐述。

      三种不同的Remoting Server对象

      Remoting的Server对象有三种,每一种和客户端的交互方式和生命周期都有一些细微的差别。在本文中,我们将为您阐述这三种Server对象之间的差别。

      Client Activated 对象

      这种对象在Server端的声明方式为:

    <SERVICE>
    <ACTIVATED type="ClientActivatedType, RemoteType">
    </SERVICE>

      客户端的声明方式为:

      <ACTIVATED type="ClientActivatedType, RemoteType">

      表6:Client Activated对象的配置文件

      在这种Server端对象的调用方式下,客户端对Server对象调用维持一个固定的链接,因此在两个方法调用之间,变量I的值能够保存。如本文表1~5代码的返回结果是:

    Client-activated object: RemoteMethod Called, 162.
    Client-activated object: RemoteMethod1 Called, 162.

      当然,还有一个对象生命周期的问题,如果超过了对象的生命周期,Server端的对象就会被Garbage Collection程序回收。这是一个很复杂的问题,本文不加阐述,我们只是通过下面的函数把生命周期设为无限。

    public override Object InitializeLifetimeService(){
    return null;
     }

      如果对Server端对象的生命周期有兴趣的话,可以参考:

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconlifetimeleases.asp
    Single Call 对象

      这种对象在Server端的声明方式为:

    <SERVICE>
    <WELLKNOWN mode="SingleCall" type="ClientActivatedType, RemoteType" objectUri="RemoteType.rem">
    </SERVICE>

      客户端的声明方式为:

    <CLIENT url="http://localhost:8088">
    <WELLKNOWN type="ClientActivatedType, RemoteType" url="HTTP://localhost:8088/RemoteType.rem">
    </CLIENT>

      表7:Single Call对象的配置文件

      在这种Server端对象的调用方式下,客户端对Server对象的每次调用产生一个新的连接,因此在两个方法调用之间,变量I的值不能够保存。如本文表1~5代码的返回结果是:

    Client-activated object: RemoteMethod Called, 78.
    Client-activated object: RemoteMethod1 Called, 0.

      Singleton对象

      这种对象在Server端的声明方式为:

    <SERVICE>
    <WELLKNOWN mode="Singleton" type="ClientActivatedType, RemoteType"
    objectUri="RemoteType.rem">
    </SERVICE>

      客户端的声明方式为:

    <CLIENT url="http://localhost:8088">
    <WELLKNOWN type="ClientActivatedType, RemoteType" url="HTTP://localhost:8088/RemoteType.rem">
    </CLIENT>

      表7:Single Call对象的配置文件

      在这种Server端对象的调用方式下,无论有几个客户端,永远都只有一个Server端对象。如本文表1~5代码的返回结果是:

    Client-activated object: RemoteMethod Called, 78.
    Client-activated object: RemoteMethod1 Called, 78.

      这时,如果另外有一个客户端也启动:CAOClient.exe,返回结果也是:

    Client-activated object: RemoteMethod Called, 78.
    Client-activated object: RemoteMethod1 Called, 78.

      三种对象的简单比较

      从上面的比较中我们可以看出,在三种Server端对象中,Singleton的效率最高,但是所有客户端的调用都只能维持一个Server对象;Client Activated的效率最低,但是它对Remoting的屏蔽最好,就像本地调用对象一样。您可以根据不同的使用场景选择不同的Remoting对象。

      Remoting和Web Service区别

      Remoting和Web Servcie到底有什么样的差别呢?下表是一个简单的比较:

      由于Web Service是一个简单的松耦合结构,所以对于对象的状态不予保存。这一点有点像Remoting中的Single Call对象。同样,Web Service目前还不支持Event和回调函数。相比较来说,Remoting还支持效率较高的Binary编码方式。

      但是,Remoting只能够运行在.NET Framework之上,而Web Service相应就享有更多、更灵活的选择。

    posted @ 2010-02-22 17:09 Alron 阅读(17) 评论(0) 编辑

    Silverlight开发工具集合

    2010-02-19 13:44 by jv9, 1787 visits, 网摘, 收藏, 编辑

     随着Silverlight技术的逐步完善,Silverlight应用大批的涌现,近期的2010年冬季奥运会,Silverlight作为首选视频播放技术,为全球提供在线赛事实况。

    Silverlight技术的发展需要更多的开发人员加入,作为Silverlight技术的支持者,我把平时Silverlight开发中使用的工具进行一次总结,希望对大家能有所帮助。

     

    Silverlight开发工具包(必装):

    银光中国网有篇“轻松建立Silverlight开发环境”,该文详细介绍了Silverlight工具集下载,以及安装步骤。我简要列出,另外做一些补充:

     

    工具一: Visual Studio 2008 SP1 或者 Visual Studio 2010 或者 Visual Web Developer Express 2008 With SP1



     

    Visual Studio是Silverlight的开发必需工具,其中VS2008 SP1和Visual Web Developer Express With SP1仅支持Silverlight 3的开发,而VS2010支持Silverlight 3和Silverlight 4项目开发。在安装Visual Studio的同时,.Net Framework 3.5 SP1也将同时安装,如果没有安装,需要独立下载安装。 Silverlight 4项目开发,必须有.Net Framework 4.0支持。

     

    工具二: Silverlight开发工具包

    Silverlight开发工具包中包含各种Silverlight开发模板,安装完成后,可以在Visual Studio中创建Silverlight项目。对应下载地址 Silverlight 2 Tools for Visual Studio 2008 SP1 和 Silverlight 3 Tools for Visual Studio 2008 SP1Silverlight 4 Tools for Visual Studio 2010 Beta 2

     

    工具三: Silverlight SDK
     

    作为专业开发人员,自然离不开Software Development Kit(SDK)支持,Silverlight同样也推出了对应的SDK包,其中包含在线开发文档,在线Silverlight例程,开发类库等。Silverlight 3 SDKSilvelright 4 SDK

     

    工具四: Expression Blend 3 + SketchFlow  - Silverlight设计工具


     

    自Silverlight 3发布后,Visual Studio 2008 SP1已经不再支持Silverlight开发视图界面, 该功能被Expression Blend 3替代,众所周知,Microsoft Expression是微软2009年主打的一套设计软件,其中包括视频处理,网页设计,WPF/Silverlight UI以及动画设计等工具集合,Blend是其中一员,主要从事WPF/Silverlight UI设计,动画制作,以及软件原型设计等。

    在Visual Studio 2010的试用中,我们可以发现,VS2010已经恢复了对Silverlight开发的视图界面功能,这对开发人员来说,无疑是一个好消息。

     

    工具五: Silverlight Toolkit - Silverlight控件开发包

     

    Silverlight控件开发包提供数十种Silverlight常用控件,在Silverlight项目开发过程中,可以很方便的进行调用。该项目开发包属于开源项目,开发人员可以到项目网站进行下载最新源代码,并且可以根据项目需求自行修改。

     

    工具六: Silverlight客户端

    以上Silverlight开发工具安装完成后,需要确认安装Silverlight客户端,当前微软推出了两款Silverlight客户端,分别运行在Windows系统和Mac系统。 相对来说,该工具包安装是最简单的,进行官方网站选择相关版本下载安装即可。

    【备注】微软官方推荐使用 Web Platform Installer 安装Silverlight开发环境,该平台包括以上所有的安装包。

     


     

     

    Silverlight辅助开发工具包:

     

    工具一:Deep Zoom Composer - 放大镜功能包

    在Silverlight发布的初期,Deep Zoom Composer是一大亮点,该功能允许用户在Silverlight应用中查看高分辨率图片,其中平滑的扩大以及缩小的动画效果,吸引了不少用户。

     

    工具二:.Net RIA Services

    随着RIA技术的发展,微软也推出了对应的解决方案,.Net RIA Service,该工具扩展了Silverlight功能,沿用了传统的n-Tier应用模型概念,允许开发人员创建n层Silverlight应用。虽然该项目也属于Silverlight开发中重点之一,但是由于该项目一直属于测试版,作为商业项目不推荐使用,所以,我没有把该工具放入必须安装的列表中。

     

    工具三:.Net Reflector

    相信大家都很熟悉这个工具了,该工具主要是.Net代码的反编译,在反编译Silverlight项目中有着很大的作用。这里就不再赘述。

     

    工具四:Silverlight SPY


     

    Silverlight SPY是一款Silverlight项目侦测工具,该工具探测XAP包,查看应用风格,分解查看应用界面,和Reflector配合可以查看项目资源,以及项目源代码,是一款很不错的工具,详细中文介绍请看这里

     

    工具五:Fiddler / FireBug

     

     

    作为Web开发人员,对这两款工具并不陌生,该工具主要用于监测HTTP网络信息,手工Debug应用。在Silverlight + WCF项目开发中,这是必不可少的辅助调试工具。

     

    工具六:KaXaml

    KaXaml是一款开源的轻量级XAML编辑器,该项目支持视窗编辑,支持高亮语法支持。该项目是开源项目,详细中文介绍请看这里

     

    工具七:XAML Power Toys

     


     

    该工具是一款Visual Studio插件辅助工具,用于编辑XAML文档,包含多种代码模板,简化开发人员输入代码过程,是一款很不错的辅助工具。该工具同时支持WPF/Silverlight开发。

     

    工具八:Rooler


     

    Rooler是一款图形侦测工具,在Web项目开发中经常用到,用于侦测Web图片尺寸,可以用来辅助设计Silverlight UI。

     

    工具九:Silverlight Profiler


     

    该工具是Silverlight应用优化工具,提高项目运行效率,试用过几次,感觉对于大型项目,效果还是比较明显的。

     

    以上的总结是Silverlight开发中常用的几款工具,如果大家还有其他的开发工具补充,留言给我,我会尽快更新。

    欢迎大家加入QQ群,一起"专注Silverlight"

    22308706

    100844510(人满)

    posted @ 2010-02-22 10:17 Alron 阅读(38) 评论(0) 编辑

    仅列出标题