Wed, May 28, 2008, 12:00 PM under
Silverlight
Following from
Part 1,
Part 2 and
Part 3, in this last part of the exploration I'll focus on the UI layer and I'll have even more of a statistical hat on.
11. System.Windows.dll is yet another Silverlight assembly with no direct counterpart in the full framework, but with tons of stuff inside (as evidenced by its size on disc and by the 21 namespaces!) that makes it the 2nd largest assembly. You can think of it as the brick that gives Silverlight its WPF UI. Its namespaces come from various v2.0 and v3.0 desktop assemblies as listed below (and it is in my opinion a prime candidate for refactoring):
-System.Net namespace with WebClient plus 6 related classes comes from the desktop's
System.dll (!)
- System.ComponentModel comes from
System.dll (! again) and is basically the
BackgroundWorker implementation.
- 5 of its namespaces (System.Windows.Controls.Primitives, System.Window.Data, System.Windows.Documents, System.Windows.Resources, System.Windows.Shapes) and the System.ComponentModel.DesignerProperties class map to the desktop's
PresentationFramework.dll- 3 of its namespaces (System.Collections.ObjectModel, System.Collections.Specialized, System.Threading) map to
WindowsBase.dll.
- 2 of its namespaces (System.Windows.Ink, System.Windows.Media.Imaging) map to the desktop's
PersentationCore.dll.
- System.Windows namespace has a total of 61 types, coming from homonymous namespaces in
PresentationCore.dll (e.g. FontStyle, RoutedEventHandler) and
PresentationFramework.dll (e.g. Application, FrameworkElement) and
WindowsBase.dll (e.g. DependencyProperty, Point) and also introduces some new types (e.g. AssemblyPart, ErrorType).
- System.Windows.Markup namespace with 2 types from
WindowsBase.dll, 2 from
PresentationFramework.dll and 1 from
PresentationCore.dll.
- System.Windows.Media namespace which maps to
PresentationCore.dll except for Matrix class from
WindowsBase.dll and 5 new Silverlight types (MediaElementState, TimelineMarkerCollection plus 2 relatives and VideoBrush).
- System.Windows.Input largely maps to
PresentationCore.dll, except for 2 classes (Key and ModifierKeys) from
WindowsBase.dll and 1 class (KeyboardNavigationMode) from
PresentationFramework.dll. There is also one new class in there: StylusInfo.
- System.Windows.Controls namespace has 24 types that come from
PresentationFramework.dll (same namespace name of course). It also has 2 types (MultiScaleImage, MultiScaleSubImage) that make up the
DeepZoom feature. It also has 3 types (2 from System.Windows.Forms.dll plus 1 brand new) that make up the
OpenFileDialog feature.
- System.IO.IsolatedStorage.ApplicationSettings class has no counterpart in the desktop world and was
touched upon here (scroll to the bottom).
- System.Windows.Interop namespace with 3 classes (Content, Settings and SilverlightHost) that is all new in Silverlight framework (even though that namespace name exists in various other WPF assemblies).
12. and
13. System.Windows.Controls.dll and
System.Windows.Controls.Extended.dllThe overwhelming majority of the Silverlight controls reside in the System.Windows.Controls.dll assembly. The Extended.dll adds the Calendar, DatePicker, Slider and WatermarkedTextBox.
14. System.Windows.Controls.Data.dllThis adds a control not available at present in WPF: the Silverlight DataGrid. For all things DataGrid-related
visit Scott's blog.