cincom smalltalk community blogs
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