cincom smalltalk community blogs

Upload: sachinmumbare

Post on 30-May-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Cincom Smalltalk Community Blogs

    1/18

    Cincom Smalltalk Community Blogs

    Windows Presentation Foundation (WPF) andSilverlight

    September 06, 2007 09:07:03 EDT

    Microsoft has released Silverlight 1.0. There are lotexample applicationsup. See forexample this beta application showing a search UI made in Silverlight. Silverlight is often

    portrayed as Microsofts Flash-killer. Flash is important as a tool for showing rich multi-

    media content, but in the future, frameworks like this might be the new platform

    applications are based on.

    Silverlights architecture is interesting. It includes parts ofWindows Presentation

    Foundation (WPF), but runs on more operating systems.

    First some words on WPF WPF is Microsofts new GUI framework that replaces all

    of the old Windows Forms and Win32 API. It builds on a vector based and GPU-enabled drawing framework (DirectX), and adds the ability to create richer UIs than

    Windows Forms does. The look and feel is also new.In my view, WPF is Microsoft mostimportant project the last years. Everybody is discussion Windows Vista, but WPF is

    probably more important for application developers than Vista is. WPF also runs on

    Windows XP, so it is not tied to Vista.

    Read this andthis and this to get a better understanding of WPF. Also watch this video.

    Even if you never plan to use WPF, knowing the technology and the concepts is useful.

    WPF applications can be deployed to the desktop or run in Internet Explorer (onWindows only, as far as I know). When WPF application run in Internet Explorer they

    run in a sandbox, so users simply point Internet Explorer at an URL and your application

    appears without any installation or confirmation need. All development tools are thesame (Visual Studio) when making desktop and browser-based WPF applications, and

    you can use the same widgets for both.

    WPF running in Internet Explorer have some restrictions compared to a program runningon the desktop. For example, opening new windows is not possible and communication(WCF) is not allowed. Apparently SOAP calls can be used instead.

    Making a WPF application run in the browser is easy. You create a project in Visual

    Studio marking it as a WPF Browser Application. After compilation, you publish the

    executable to a web server. I think one idea in Visual Studio is to allow a desktop-based

    http://www.cincomsmalltalk.com/userblogshttp://www.cincomsmalltalk.com/userblogshttp://www.cincomsmalltalk.com/userblogs/runarj/blogView?showComments=true&printTitle=Windows_Presentation_Foundation_(WPF)_and_Silverlight&entry=3366522423http://www.cincomsmalltalk.com/userblogs/runarj/blogView?showComments=true&printTitle=Windows_Presentation_Foundation_(WPF)_and_Silverlight&entry=3366522423http://silverlight.net/http://silverlight.net/http://silverlight.net/showcase/http://silverlight.net/showcase/http://silverlight.net/showcase/http://www.tafiti.com/http://msdn2.microsoft.com/en-us/library/bb428859.aspxhttp://msdn2.microsoft.com/en-us/library/aa663364.aspxhttp://msdn2.microsoft.com/en-us/library/aa480221.aspxhttp://msdn2.microsoft.com/en-us/library/aa480221.aspxhttp://msdn2.microsoft.com/en-us/library/aa480192.aspxhttp://blogs.msdn.com/irenak/archive/2007/01/23/sysk-272-excellent-11-min-video-about-wpf-what-it-is-and-how-you-can-use-it-today-in-your-applications.aspxhttp://en.wikipedia.org/wiki/Windows_Communication_Foundationhttp://www.cincomsmalltalk.com/userblogshttp://www.cincomsmalltalk.com/userblogs/runarj/blogView?showComments=true&printTitle=Windows_Presentation_Foundation_(WPF)_and_Silverlight&entry=3366522423http://www.cincomsmalltalk.com/userblogs/runarj/blogView?showComments=true&printTitle=Windows_Presentation_Foundation_(WPF)_and_Silverlight&entry=3366522423http://silverlight.net/http://silverlight.net/showcase/http://www.tafiti.com/http://msdn2.microsoft.com/en-us/library/bb428859.aspxhttp://msdn2.microsoft.com/en-us/library/aa663364.aspxhttp://msdn2.microsoft.com/en-us/library/aa480221.aspxhttp://msdn2.microsoft.com/en-us/library/aa480192.aspxhttp://blogs.msdn.com/irenak/archive/2007/01/23/sysk-272-excellent-11-min-video-about-wpf-what-it-is-and-how-you-can-use-it-today-in-your-applications.aspxhttp://en.wikipedia.org/wiki/Windows_Communication_Foundation
  • 8/14/2019 Cincom Smalltalk Community Blogs

    2/18

    WPF application and the same browser-based application to be produced from the same

    codebase. I have not tried this yet, but this looks like a promising concept.

    Back to Silverlight Like WPF-applications can run in a browser, so do Silverlightapplications. But Silverlight applications can be deployed to more platforms (OS X and

    Linux) and more browsers. This does however come with a costLike browsers-basedWPF applications lose access to some functions compared to desktop applications,

    Silverlight applications can build on even less infrastructure. The GUI is one (of many)missing elements in Silverlight:

    () it's important to note that a lot of the staple approaches you may be familiar with

    from building Windows Presentation Foundation (WPF) applications will not work in

    Silverlight, which uses only a subset of WPF's capabilities. Silverlight does not supportmost of the WPF component primitives, such as Buttons and TextBoxes, and it supports

    only one layout type: the absolute positioning layout. As a result, porting an existing

    WPF application to Silverlight will force a total rewrite of all the UI-related code. (From

    DevX)

    Of course, people are buildingwidget libraries for Silverlight, but wouldnt it better if

    WPF was fully included? There could be various reasons for not including it One could

    be size, but does that really matters these days? Another reason could be that Microsoftsimply does not want all other operating systems to be able to run (the new wave of)

    Windows programs for free.

    For application developers this sums up to using one of these platforms (not counting

    web interfaces) when writing new software in Visual Studio:

    WPF applications running on the desktop (Vista/XP) -- all OS features enabled. WPF applications running sandboxed in Internet Explorer on Vista & XP --

    missing WCF and some permissions, e.g. opening new windows.

    For the two solutions above, you use same tools and frameworks. Then, for the third oneyou enter another world:

    Silverlight running sandboxed on major browsers on Windows, Linux and OS

    X -- heavily reduced WPF (missing some 3D functions, widgets gone, etc.)

    Depend on other 3rd party tools for this functionality.

    If you develop a Rich Internet Application, it seems like choosing between WPF andSilverlight will be an important decision that will heavily shape your project.

    esigning an external-facing website, then Silverlight is the better choice because potential

    customers can access the website from a variety of different operating systems andbrowsers.

    http://www.devx.com/RichInternetApps/Article/35221/1954?pf=truehttp://www.devx.com/RichInternetApps/Article/35221/1954?pf=truehttp://community.netikatech.com/demos/%20http://community.netikatech.com/demos/%20http://community.netikatech.com/demos/%20http://en.wikipedia.org/wiki/Rich_Internet_applicationhttp://www.devx.com/RichInternetApps/Article/35221/1954?pf=truehttp://www.devx.com/RichInternetApps/Article/35221/1954?pf=truehttp://community.netikatech.com/demos/%20http://en.wikipedia.org/wiki/Rich_Internet_application
  • 8/14/2019 Cincom Smalltalk Community Blogs

    3/18

    The .NET collection definedFEATURES MATRIX

    The Features Matrix below provides an overview of the new capabilities in Silverlight 3. Silverlight 3is able to run Silverlight 2 and Silverlight 1.0 applications without change.

    Features Silverlight 1.0 Silverlight 2 Silverlight 3

    Cross-Browser Support for Firefox, IE, Safari

    Cross-Platform Support for Windows and Mac(and Linux through the Moonlight Project)

    2D Vector Animation/Graphics

    AJAX Support

    HTML DOM Integration

    HTTP Networking

    Canvas Layout Support

    JavaScript Support

    Silverlight ASP.NET Controls (asp:media,asp:xaml)

    XAML Parser (based on WPF)

    Media 720P High Definition (HD) Video

    Media Audio/Video Support (VC-1, WMV,WMA, MP3)

    Media Image Support (JPG, PNG)

    Media Markers

    Windows Media Server Support

    Support for Visual Basic.NET and C#; CommonLanguage Runtime (CLR) based languages

    Support for IronPython, IronRuby, ManagedJScript, and other Dynamic Language Runtime(DLR) based languages

    Rich Core Framework (e.g. Generics,collections)

  • 8/14/2019 Cincom Smalltalk Community Blogs

    4/18

    Features Silverlight 1.0 Silverlight 2 Silverlight 3

    Multi-Threading

    Layout controls including StackPanel and Grid

    Full suite of Controls (TextBox, RadioButton,

    Slider, Calendar, DatePicker, DataGrid,ListBox, TabControl, and others)

    Managed Control Framework

    Templating Model

    Visual State Manager

    Isolated Storage

    Deep Zoom Technology

    Media DRM Powered by PlayReady

    Media - Windows Media Audio 10 Professionalsupport

    Media - MediaStreamSource for managed codemedia file parser and protocol extensibility

    High quality resizing

    Media - Basic SSPL Support

    Cross Domain Network Access

    Easy access to server-side data via WebServices

    Direct access to TCP sockets

    Interoperability with SOAP and REST services,including support for XML, JSON, RSS and

    Atom data formats

    LINQ (including LINQ to XML, LINQ to JSON,and LINQ to Entities)

    Duplex communications (push from Server to

    Silverlight client)

    Data Binding

  • 8/14/2019 Cincom Smalltalk Community Blogs

    5/18

    Features Silverlight 1.0 Silverlight 2 Silverlight 3

    ADO.NET Data Services

    Managed HTML Bridge

    Managed Exception Handling

    .NET Framework Security Enforcement

    Type Safety Verification

    XMLReader/Writer

    Enhanced Keyboard Input Support

    File Upload Support (via WebClient API)

    WPF Compatibility

    Accessibility

    Localization

    Remote Debugging (PC and Mac)

    Out of Browser

    Network Status (Offline)

    Pixel Shader Effects

    Bitmap API

    Theming at runtime

    Enhanced Control Skinning

    Accessibility - System Colors

    Bitmap caching

    Perspective 3D

    GPU Hardware Acceleration (for video andbitmaps)

    Text Animation

    H.264 Support

  • 8/14/2019 Cincom Smalltalk Community Blogs

    6/18

    Features Silverlight 1.0 Silverlight 2 Silverlight 3

    Raw A/V Support

    File Save Dialog

    DockPanel, WrapPanel, Viewbox

    Local Fonts

    Element to Element Binding

    Local Connection

    Binary XML

    Component Caching (share resources acrossapps)

    Scene caches (to Bitmap)

    From a .NET perspective, a collection could be defined as an object that implements oneor more of the System.Collections.ICollection, System.Collections.IDictionary, andSystem.Collections.IListinterfaces. This definition leads to my classification of the "built-

    in" collections found in the System.Collections namespace into three broad categories:

    Ordered collections: Collections that implement only the ICollection interface

    are usually distinguished by the fact that insertion order controls the order in

    which objects may be retrieved from the collection. The System.Collections.Stackand System.Collections.Queue classes are both examples of ICollectioncollections.

    Indexed collections: IList-implementing collections are distinguished by the fact

    that their contents can be retrieved via a zero-based numeric index, like an array.The System.Collections.ArrayListobject is one example of an indexed collection.

    Keyed collections: Collections implementing the IDictionary interface contain

    items that can be retrieved by an associated key value of some kind. The contentsof IDictionary collections are also usually sorted in some fashion based on the key

    valu and can be retrieved in sorted order by enumeration. TheSystem.Collections.HashTable class implements the IDictionary interface.

    As you can see, the functionality of a given collection is very much controlled by the

    specific interface or interfaces it implements. If you don't have much exposure to object-

    oriented programming, that may seem awfully confusing, if not entirely pointless. Youshould know, however, that building an object's functionality in this manner not only

    gives families of similar objects similar sets of method signatures, but it also allows them

    to be treated as essentially the same class when necessarya technique known as

  • 8/14/2019 Cincom Smalltalk Community Blogs

    7/18

    polymorphism among OOP initiates.

    Guided tour of System.CollectionsThe System.Collections namespace contains six built-in, generic collections that you can

    use in your applications. A few other, more specialized collections are found in

    System.Collections.Specialized, and you may find them useful in certain circumstances.With a few exceptions, each of these specialized collections is similar in functionality to

    one of the built-in collections. Let's take a look at each of the generic collections and a

    few of the less esoteric specialized collections.

    Stacks and queues

    The System.Collections.Stackand System.Collections.Queue classes, which both

    implement the ICollection interface only, hold items of type System.Objectin the orderthey were added to the collection. Objects can be retrieved from the collection only in

    this order: Stacks are last-in, first-out, and queues are first-in, first-out. Typically, you'll

    want to consider using one of these collections when:

    The order in which items are received and processed is important. You can discard an item after processing it.

    You don't need to access arbitrary items in the collection.

    ArrayList

    The System.Collections.ArrayListclass, which implements only IList, could best be

    described as a hybrid of a normal array and a collection. ArrayLists hold items in the

    order they were added. Items are assigned an index identifier and can be retrieved in anyorder via their associated index number. The ArrayList grows as new items are added to

    it, which makes it more flexible than a normal array. However, an ArrayList has moreoverhead than a traditional array and is not strongly typed, accepting anything that can becast to System.Object(in other words, everything).

    SortedListSystem.Collections.SortedList, which implements both the IDictionary and ICollection

    interfaces, is your basic sorted collection, with the most similarity to VB6's Collection

    object. SortedLists store objects and sort them based on an associated key. They also are

    the only built-in .NET collection to support retrieval of objects by both index number andkey.

    HashTableThe powerful System.Collections.HashTable collection implements both IDictionary and

    ICollection and can be used to store multiple items of type Object, along with an

    associated unique string key. Items in a HashTable are sorted in an order determined by ahash code derived from their key. While each object's key value in the collection must be

    unique, its hash code need not be.

  • 8/14/2019 Cincom Smalltalk Community Blogs

    8/18

    What's a hash code?

    A hash code is essentially the result of removing all redundant parts from a piece of data,

    and it serves as an aid to categorizing or sorting the data.

    When an item is added to the collection, HashTable calls the key's GetHashCode method,which all classes inherit from System.Object, to determine its hash code and place in thesort order. You can force the use of a custom hash function either by overriding the

    GetHashCode method of a class or by passing an object implementing theSystem.Collections.IHashcodeProviderinterface to the HashTable constructor, in which

    case that object will be used to generate hash codes for all keys added to the collection.

    From a performance standpoint, HashTables can retrieve an arbitrary element from the

    collection very quickly because key searches are limited only to keys with the same hashcode, which reduces the number of keys that must be checked to find a match. However,

    because a hash code must be generated for each object and key pair that's inserted into the

    collection, item insertions are somewhat expensive. Therefore, HashTables are ideal forsituations where a large amount of relatively static data will be repeatedly searched for

    arbitrary keys.

    ListDictionary and HybridDictionaryTheListDictionary andHybridDictionary classes are found inSystem.Collections.Specialized. Both organize items based on a unique key value, and

    both implement IDictionary and ICollection. The ListDictionary stores items internally asa linked list and is recommended for collections that won't grow much larger than 10

    items. The HybridDictionary uses an internal linked list (actually a ListDictionary) for

    small collections and will convert that to a HashTable when the collection grows large

    enough (more than about 10 items, in case you haven't been paying attention) to make thelinked list implementation inefficient.

    StringCollection and StringDictionary

    System.Collections.Specialized.StringCollection andSystem.Collections.Specialized.StringDictionary are both optimized for storing

    collections of strings. StringCollection implements both IList and ICollection and isessentially an ArrayList that is strongly typed to accept only strings. StringDictionary is a

    HashTable that has been strongly typed to accept only strings. StringCollection is ideal

    for smaller amounts of data that is frequently updated or added to, while StringDictionaryis best suited for large amounts of data that will not be frequently added to, such as a

    HashTable.

    NameValueCollection

    System.Collections.Specialized.NameValueCollection is interesting in that it can contain

    multiple items associated with the same key value, which distinguishes it from all the

    other built-in collections. Aside from this, it functions similarly to a HashTable, sortingitems based on a hash code derived from each item's key and thus has essentially the

    same advantages and disadvantage

  • 8/14/2019 Cincom Smalltalk Community Blogs

    9/18

    Difference between Silverlight Version 1.0 and Silverlight Version 1.1

    A lot of my friends who want to get started with Silverlight development keep asking me what's the

    difference between Silverlight 1.0 and Silverlight 1.1? Which version should they use? Which version

    supports what?

    The primary difference between the two versions is: you can only use JavaScript to create Silverlight

    applications in version 1.0, however you can use your favorite language, be it C#, VB, IronRuby orIronPython to create Silverlight applications in version 1.1.

    For detailed information on the features of Silverlight versions 1.0 and 1.1, clickhere.

    FEATURES MATRIX

    The Features Matrix below provides an overview of the new capabilities in Silverlight 3. Silverlight 3

    is able to run Silverlight 2 and Silverlight 1.0 applications without change.

    Features Silverlight 1.0 Silverlight 2 Silverlight 3

    Cross-Browser Support for Firefox, IE, Safari

    Cross-Platform Support for Windows and Mac(and Linux through the Moonlight Project)

    2D Vector Animation/Graphics

    AJAX Support

    HTML DOM Integration

    HTTP Networking

    Canvas Layout Support

    JavaScript Support

    Silverlight ASP.NET Controls (asp:media,

    asp:xaml)

    XAML Parser (based on WPF)

    Media 720P High Definition (HD) Video

    Media Audio/Video Support (VC-1, WMV,

    WMA, MP3)

    http://silverlight.net/GetStarted/overview.aspxhttp://silverlight.net/GetStarted/overview.aspxhttp://silverlight.net/GetStarted/overview.aspxhttp://silverlight.net/GetStarted/overview.aspx
  • 8/14/2019 Cincom Smalltalk Community Blogs

    10/18

    Features Silverlight 1.0 Silverlight 2 Silverlight 3

    Media Image Support (JPG, PNG)

    Media Markers

    Windows Media Server Support

    Support for Visual Basic.NET and C#; CommonLanguage Runtime (CLR) based languages

    Support for IronPython, IronRuby, ManagedJScript, and other Dynamic Language Runtime

    (DLR) based languages

    Rich Core Framework (e.g. Generics,

    collections)

    Multi-Threading

    Layout controls including StackPanel and Grid

    Full suite of Controls (TextBox, RadioButton,Slider, Calendar, DatePicker, DataGrid,ListBox, TabControl, and others)

    Managed Control Framework

    Templating Model

    Visual State Manager

    Isolated Storage

    Deep Zoom Technology

    Media DRM Powered by PlayReady

    Media - Windows Media Audio 10 Professionalsupport

    Media - MediaStreamSource for managed codemedia file parser and protocol extensibility

    High quality resizing

    Media - Basic SSPL Support

    Cross Domain Network Access

    Easy access to server-side data via Web

  • 8/14/2019 Cincom Smalltalk Community Blogs

    11/18

    Features Silverlight 1.0 Silverlight 2 Silverlight 3

    Services

    Direct access to TCP sockets

    Interoperability with SOAP and REST services,

    including support for XML, JSON, RSS andAtom data formats

    LINQ (including LINQ to XML, LINQ to JSON,and LINQ to Entities)

    Duplex communications (push from Server toSilverlight client)

    Data Binding

    ADO.NET Data Services

    Managed HTML Bridge

    Managed Exception Handling

    .NET Framework Security Enforcement

    Type Safety Verification

    XMLReader/Writer

    Enhanced Keyboard Input Support

    File Upload Support (via WebClient API)

    WPF Compatibility

    Accessibility

    Localization

    Remote Debugging (PC and Mac)

    Out of Browser

    Network Status (Offline)

    Pixel Shader Effects

    Bitmap API

  • 8/14/2019 Cincom Smalltalk Community Blogs

    12/18

    Features Silverlight 1.0 Silverlight 2 Silverlight 3

    Theming at runtime

    Enhanced Control Skinning

    Accessibility - System Colors

    Bitmap caching

    Perspective 3D

    GPU Hardware Acceleration (for video andbitmaps)

    Text Animation

    H.264 Support

    Raw A/V Support

    File Save Dialog

    DockPanel, WrapPanel, Viewbox

    Local Fonts

    Element to Element Binding

    Local Connection

    Binary XML

    Component Caching (share resources acrossapps)

    Scene caches (to Bitmap)

    The Silverlight Platform

    The Silverlight platform as a whole consists of two major parts, plus an

    installer and update component, as described in the following table.

    Component Description

    Core Components and services oriented toward the UI and user interaction, including

  • 8/14/2019 Cincom Smalltalk Community Blogs

    13/18

    presentationframework

    user input, lightweight UI controls for use in Web applications, media playback,digital rights management, data binding, and presentation features, including

    vector graphics, text, animation, and images. Also includes the ExtensibleApplication Markup Language (XAML) for specifying layout.

    .NET

    Framework for

    Silverlight

    A subset of the .NET Framework that contains components and libraries, including

    data integration, extensible Windows controls, networking, base class libraries,

    garbage collection, and the common language runtime (CLR).Some parts of the .NET Framework for Silverlight are deployed with yourapplication. These "Silverlight Libraries" are assemblies not included in the

    Silverlight runtime and are instead shipped in the Silverlight SDK. When SilverlightLibraries are used in your application, they are packaged up with your applicationand downloaded to the browser. These include new UI controls, XLINQ, Syndication(RSS/Atom), XML serialization, and the dynamic language runtime (DLR).

    Installer and

    updater

    An installation and update control that simplifies the process of installing the

    application for first-time users, and subsequently provides low-impact, automaticupdates.

    The following illustration shows these components of the Silverlight

    architecture, along with related components and services.

    Silverlight architecture

  • 8/14/2019 Cincom Smalltalk Community Blogs

    14/18

    There is a particular value in the combined set of tools, technologies,

    and services included in the Silverlight platform: They make it easier

    for developers to create rich, interactive, and networked applications.

    Although it is certainly possible to build such applications using today's

  • 8/14/2019 Cincom Smalltalk Community Blogs

    15/18

    Web tools and technologies, developers are hindered by many

    technical difficulties, including incompatible platforms, disparate file

    formats and protocols, and various Web browsers that render pages

    and handle scripts differently. A rich Web application that runs

    perfectly on one system and browser may work very differently on

    another system or browser, or may fail altogether. Using today's large

    array of tools, protocols, and technologies, it is a massive and often

    cost-prohibitive effort to build an application that can simultaneously

    provide the following advantages:

    Ability to create the same user experience across browsers and

    platforms, so that the application looks and performs the same

    everywhere.

    Integration of data and services from multiple networked

    locations into one application using familiar .NET Framework

    classes and functionality.

    A media-rich, compelling, and accessible user interface (UI).

    Silverlight makes it easier for developers to build such

    applications, because it overcomes many of the incompatibilities

    of current technologies, and provides within one platform the

    tools to create rich, cross-platform, integrated applications.

    Core Presentation Components

    The core presentation features of the Silverlight platform, shown in the

    previous section and illustration, are described in the following table.

    Feature Description

    Input Handles inputs from hardware devices such as the keyboard and mouse, drawing, or

    other input devices.

    UIrendering

    Renders vector and bitmap graphics, animations, and text.

    Media Features playback and management of various types of audio and video files, such

    as .WMP and .MP3 files.

    Deep Zoom Enables you to zoom in on and pan around high resolution images.

  • 8/14/2019 Cincom Smalltalk Community Blogs

    16/18

    Controls Supports extensible controls that are customizable through styling and templating.

    Layout Enables dynamic positioning of UI elements.

    Databinding

    Enables linking of data objects and UI elements.

    DRM Enables digital rights management of media assets.

    XAML Provides a parser for XAML markup.

    Developers can interact with this presentation framework by using

    XAML to specify presentation details. XAML is the primary point of

    interaction between the .NET Framework and the presentation layer.

    Developers can programmatically manipulate the presentation layer

    using managed code.

    The .NET Framework for Silverlight

    The following table describes a partial list of the .NET Framework for

    Silverlight features shown in the previous illustration.

    Feature Description

    Data Supports Language-Integrated Query (LINQ) and LINQ to XML features,

    which ease the process of integrating and working with data from disparatesources. Also supports the use of XML and serialization classes for handlingdata.

    Base class library A set of .NET Framework libraries that provide essential programmingfunctions, such as string handling, regular expressions, input and output,

    reflection, collections, and globalization.

    WindowCommunicationFoundation (WCF)

    Provides features to simplify access to remote services and data. Thisincludes a browser object, HTTP request and response object, support forcross-domain HTTP requests, support for RSS/Atom syndication feeds, andsupport for JSON, POX, and SOAP services.

    CLR (common

    language runtime)

    Provides memory management, garbage collection, type safety checking,

    and exception handling.

    WPF (WindowsPresentationFoundation) controls

    Provides a rich set of controls, including Button, Calendar, CheckBox,DataGrid, DatePicker, HyperlinkButton, ListBox, RadioButton, andScrollViewer.

    DLR (dynamiclanguage runtime)

    Supports the dynamic compilation and execution of scripting languages suchas JavaScript and IronPython to program Silverlight-based applications.

    Includes a pluggable model for adding support for other languages for usewith Silverlight.

    The .NET Framework for Silverlight is a subset of the full .NET

    Framework. It provides the essentials of robust, object-oriented

    http://msdn.microsoft.com/en-us/library/system.windows.controls.button(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.calendar(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.checkbox(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.datepicker(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.listbox(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.radiobutton(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.radiobutton(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.button(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.calendar(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.checkbox(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.datepicker(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.listbox(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.radiobutton(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer(VS.95).aspx
  • 8/14/2019 Cincom Smalltalk Community Blogs

    17/18

    application development for application types (such as Internet

    applications) for which this support has not traditionally been

    available.

    Developers can interact with the .NET Framework for Silverlight layer

    by writing managed code using C# and Visual Basic. .NET Framework

    developers can also access the presentation layer by authoring in

    Visual Studio 2008 or Microsoft Expression Blend.

    Additional Silverlight Programming Features

    Silverlight provides several additional features that help developers

    create rich and interactive applications, including those described in

    the following table.

    Feature Description

    Isolated storage Provides safe access from the Silverlight client to the local computer's file

    system. Enables local storage and caching of data isolated to a particular user.

    Asynchronousprogramming

    A background worker thread carries out programming tasks while the applicationis freed up for user interaction.

    File management Provides a safe File Open dialog box, to ease the process of creating safe file

    uploads.

    HTMLmanagedcode interaction

    Enables .NET Framework programmers to directly manipulate UI elements in theHTML DOM of a Web page. Web developers can also use JavaScript to call

    directly into managed code and access scriptable objects, properties, events,and methods.

    Serialization Provides support for serialization of CLR types to JSON and XML.

    Packaging Provides theApplication class and build tools to create .xap packages. The .xap

    package contains the application and entry point for the Silverlight plug-incontrol to run.

    XML libraries XmlReaderand XmlWriter classes simplify working with XML data from Webservices. The XLinq feature enables developers to query XML data directly within.NET Framework programming languages.

    Related Technologies and Tools

    The following Microsoft applications include special features for

    Silverlight development:

    http://msdn.microsoft.com/en-us/library/system.windows.application(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.application(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.xml.xmlreader(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.xml.xmlreader(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.xml.xmlwriter(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.application(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.xml.xmlreader(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/system.xml.xmlwriter(VS.95).aspx
  • 8/14/2019 Cincom Smalltalk Community Blogs

    18/18

    Microsoft Expression Blend. This tool can be used to create and

    modify the presentation layer of an application by manipulating

    the XAML canvas and controls, working with graphics, and

    programming the presentation layer with a dynamic language

    such as JavaScript.

    Visual Studio 2008. Visual Studio provides productivity tools for

    developing applications using managed code. All the existing

    features of Visual Studio are available for Silverlight. In addition,

    this version of Visual Studio includes Silverlight-specific features,

    including IntelliSense, debugging, and Silverlight project

    templates that create and link all required files.

    Because Silverlight-based applications are executed in a run-time

    environment on the client machine, no particular application is

    required to be installed on the server. However, developers may find

    that their ability to create rich applications that integrate services and

    data from multiple sources on the server is enhanced by integrating

    the following types of services and server-side applications into their

    Silverlight-based applications:

    ASP.NET AJAX. This includes a set of controls, services, and

    libraries for creating rich and interactive Web-based applications.

    Microsoft Windows Communication Foundation (WCF) services.

    Internet servers, including Microsoft Internet Information

    Services (IIS), and the Apache Web server.

    Internet-based applications and services, including Microsoft

    ASP.NET, PHP, Windows Streaming Media services, Windows Live

    services, and other open Web services.

    http://go.microsoft.com/fwlink/?LinkId=94863http://go.microsoft.com/fwlink/?LinkId=94863http://go.microsoft.com/fwlink/?LinkID=57512http://go.microsoft.com/fwlink/?LinkId=94863http://go.microsoft.com/fwlink/?LinkId=94863http://go.microsoft.com/fwlink/?LinkID=57512