Popup mit Schatten

In diesen Zeiten braucht man zwar eher einen Schirm als einen Schatten aber trotzdem habe ich den Schatten (Drop Shadow) im Silverlight Popup Control immer vermisst. MIt Silverlight 3 kommen nun Pixelshader Effekte hinzu. Einer (von zweien) davon ist DropShadow. Freak kann sich solche Shader Effekte auch selber programmieren. Ich nehme aber zunächst mal den DropShadow und deklariere im XAML den Effekt. Leider ist trotz vorhanden Attributs der Schatten nicht direkt im Popup möglich bzw sichtbar, so das ich ein Rechteck zwischenschalten musste. <Popup Margin="36,113,0,143" x:Name="pop1" HorizontalAlignment="Left" Width="84" > <Canvas> <Rectangle Width="84" Height="50" Fill="Beige"> <Rectangle.Effect> <DropShadowEffect ShadowDepth="2"/> </Rectangle.Effect> </Rectangle> <TextBlock>Popup</TextBlock> </Canvas> </Popup> Und so sieht die Silverlight Anwendung im Browser aus. Wie ihr seht kann man diese Shader auch auf Text anwenden und erhält dann einen Text mit Schatten. Wenn GPU ( neues Feature) angeschalten ist, passiert die Rechenarbeit auch im Grafikprozessor.

Out of Browser und Silverlight 3 RTW

Die neue Funktion out of Browser erlaubt es Silverlight Anwendungen auch Offline zu betreiben. Das wird hier in einem Video gezeigt. Nur leider wird die RTW ( Release to web) erhebliche Änderungen mit sich bringen ( und das diese Woche noch!). Das Beispiel von der Silverlight Website kompiliert nicht mehr. Neben der Änderungen im Code wird nun statt im Appmanifest in einer neuen Datei OutofbrowserSettings.xml die Konfiguration vorgenommen. <OutOfBrowserSettings ShortName="OutOfBrowser Application" EnableGPUAcceleration="True" ShowInstallMenuItem="True">   <OutOfBrowserSettings.Blurb>OutOfBrowser Application on your desktop; at home, at work or on the go.</OutOfBrowserSettings.Blurb>   <OutOfBrowserSettings.WindowSettings>     <WindowSettings Title="OutOfBrowser Application" Height="400" Width="600" />   </OutOfBrowserSettings.WindowSettings>   <OutOfBrowserSettings.Icons>     <Icon Size="16,16">Icons/task16.png</Icon>     <Icon Size="32,32">Icons/task32.png</Icon>     <Icon Size="48,48">Icons/task48.png</Icon>     <Icon Size="128,128">Icons/task128.png</Icon>   </OutOfBrowserSettings.Icons> </OutOfBrowserSettings> Das muss man aber nicht selbst tun. Über die Projekt Eigenschaften lässt sich das visuell konfigurieren. Eine derartige ausgestattet Silverlight Anwendungen lässt sich dann auch ins Windows Menü installieren. Abschließend auch noch der geänderte Code damit die Demo Anwendung wieder läuft Namespace OutOfBrowser Partial Public Class App Inherits Application Public Sub New() AddHandler Me.Startup, AddressOf Application_Startup AddHandler Me.Exit, AddressOf Application_Exit AddHandler Me.UnhandledException, AddressOf Application_UnhandledException AddHandler InstallStateChanged, AddressOf App_ExecutionStateChanged InitializeComponent() End Sub Private Sub App_ExecutionStateChanged(ByVal sender As Object, ByVal e As EventArgs) 'Update B2 -> RTW If App.Current.InstallState = Windows.InstallState.NotInstalled Then MessageBox.Show( "Restart the applicaiton to use the latest bits.") End If End Sub Private Sub Application_Startup(ByVal sender As Object, ByVal e As StartupEventArgs) Me.RootVisual = New MainPage() End Sub Private Sub Application_Exit(ByVal sender As Object, ByVal e As EventArgs) End Sub Private Sub Application_UnhandledException(ByVal sender As Object, ByVal e As ApplicationUnhandledExceptionEventArgs) ' If the app is running outside of the debugger then report the exception using ' the browser's exception mechanism. On IE this will display it a yellow alert ' icon in the status bar and Firefox will display a script error. If (Not System.Diagnostics.Debugger.IsAttached) Then ' NOTE: This will allow the application to continue running after an exception has been thrown ' but not handled. ' For production applications this error handling should be replaced with something that will ' report the error to the website and stop the application. e.Handled = True Deployment.Current.Dispatcher.BeginInvoke( Function() AnonymousMethod1(e)) End If End Sub Private Function AnonymousMethod1(ByVal e As ApplicationUnhandledExceptionEventArgs) As Boolean ReportErrorToDOM(e) Return True End Function Private Sub ReportErrorToDOM(ByVal e As ApplicationUnhandledExceptionEventArgs) Try Dim errorMsg As String = e.ExceptionObject.Message + e.ExceptionObject.StackTrace errorMsg = errorMsg.Replace( """"c, "'"c).Replace(Constants.vbCrLf, Constants.vbLf) System.Windows.Browser.HtmlPage.Window.Eval( "throw new Error(""Unhandled Error in Silverlight Application " & errorMsg & """);") Catch e1 As Exception End Try End Sub End Class End Namespace   und in Mainpage Namespace OutOfBrowser Partial Public Class MainPage Inherits UserControl Public Sub New() InitializeComponent() AddHandler Loaded, AddressOf MainPage_Loaded AddHandler NetworkChange.NetworkAddressChanged, AddressOf NetworkChange_NetworkAddressChanged End Sub Private Sub MainPage_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs) If App.Current.IsRunningOutOfBrowser Then InstanceMode.Text = "Out of Browser" Else InstanceMode.Text = "In Browser" End If End Sub Private Sub NetworkChange_NetworkAddressChanged(ByVal sender As Object, ByVal e As EventArgs) If NetworkInterface.GetIsNetworkAvailable() Then ConnectivityIndicator.Text = "Connected (online)" ConnectivityIndicator.Foreground = New SolidColorBrush(Colors.Green) ' check for updates from IsoStore ' push updates via web services to keep in sync Else ConnectivityIndicator.Text = "Disconnected (offline)" ConnectivityIndicator.Foreground = New SolidColorBrush(Colors.Red) ' Save current data to IsoStore for offline use End If End Sub Private Sub Button_Click(ByVal sender As Object, ByVal e As RoutedEventArgs) Dim allowed As Boolean = App.Current.Install() If allowed Then ' do something here. End If End Sub Private Sub Button_Click_1(ByVal sender As Object, ByVal e As RoutedEventArgs) If NetworkInterface.GetIsNetworkAvailable() Then ' save online using web service End If ' use IsolatedStorage because we're offline End Sub End Class End Namespace

Windows 7 Sensor und Location API

Auf der PDC habe ich (und einige andere) ein Stück Hardware mitgenommen. Das Freescale JM Badge Board. Eigentlich ist dieses Geräte ein Standalone Micro Computer mit Display, USB Anschluss und einigen Sensoren. Letzeres hat Microsoft vermutlich motiviert das Board zu zweckentfremden und es als Sensor zu missbrauchen. Ich komme aus der Elektronik und Nachrichtentechnik und vermisse das harte zeugs schon ein wenig. Deswegen hab ich mich mit großer Freude an diese Projekt gewagt. Dabei gibt es einige Hürden zu umschiffen. Erst ein Bios Update versetzt das Board in die Lage überhaupt als Sensor für Windows 7 zu agieren. Dann braucht man noch das Windows 7 SDK. die Sensor Treiber und ein bischen Glück und schon kann man z.B. den Licht Sensor verwenden. Oder auch nicht, wie in meinem Fall. Der Lichtsensor funktioniert zwar, meldet aber immer nur 2 Ansi Lumen (pitch black). Nun sind viele der Bauteile in SMD Technik ausgeführt und nur 1 mm groß. Ist da überhaupt ein Sensor drauf? Ab Revision D ja, B und C nein. Ich habe D. Nach mehreren Stunden Recherche habe ich das Board meines Kollegen genommen und optisch verglichen. In der Tat ist D84 auf der Platine frei. Da wurde beim bestücken wohl ein Fehler gemacht., Mal sehen ob Freescale das Board tauscht.  

IIS 7 LocalSqlServer nicht gefunden

Wir haben hier einen Windows 2008 Webserver mit IIS7, auf dem laufen jede Mengen Anwendungen erfolgreich und seit langer Zeit. Nun habe ich eine neues Silverlight 3 Programm für das ich eine virtuelle Anwendung erzeugt habe. Da gehört auch ein WCF Service dazu. Serverfehler in der Anwendung /svcs1. Konfigurationsfehler Beschreibung: Fehler beim Verarbeiten einer Konfigurationsdatei, die für diese Anforderung erforderlich ist. Überprüfen Sie die unten angegebenen Fehlerinformationen, und ändern Sie die Konfigurationsdatei entsprechend. Parserfehlermeldung: Der Verbindungsname LocalSqlServer wurde in der Anwendungskonfiguration nicht gefunden, oder die Verbindungszeichenfolge war leer. Quellfehler:   Zeile 164:connectionStringName="LocalSqlServer" Zeile 165:applicationName="/" Zeile 166:type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> Zeile 167: Zeile 168:            </providers> Quelldatei: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Config\machine.config    Zeile: 166 Versionsinformationen: Microsoft .NET Framework-Version:2.0.50727.4016; ASP.NET-Version:2.0.50727.4016   Ziemlich uncool die Fehlermeldung. Vor allem, was soll das mit dem LocalSqlServer String? Das ganze ist ja in der machine.config angelegt und die ist seit Installation des Systems unverändert. Der Connection String wird ja auch nur benötigt wenn man die Standard Membership Funktion mit dem SQLExpress Server verwendet. Das tue ich aber nicht. Strukturierte Fehlersuche zunächst einmal wildes rumraten in der machine.config. Dann Einsicht: “die anderen Anwendungen laufen ja- es muss an der Anwendung liegen”. Dann leere Anwendung im IIS erstellen und test.aspx erzeugt. Auch Fehler. Was ist nun noch ein Unterschied? Web.config. Also Web.Config von funktionierender Anwendung kopiert und : geht! Nun in Web Config der Silverlight Anwendung einfach den Rolemanager entfernt. Das geht in IIS mit der modularen Architektur ganz wunderbar. <roleManager enabled="false"> <providers> <remove name="AspNetSqlRoleProvider"/> </providers> </roleManager> Überraschung: meine Silverlight Anwendung läuft. Es muss wohl ein Kompatibilitäts Problem sein mit dem Roleprovider aus  IIS7 und net 3.5 SP1. Wieder mal ein Beispiel für absolut bescheuerte Fehlermeldungen.

ppedv 5 Star Speaker Award 2008

Ich muss zugeben ein bischen spät, aber doch: die Gewinner des ppedv 5 Star Speaker Award. Wir veranstalten bekanntlich eine Reihe von Konferenzen (demnächst SQL Days und ADC). Unser bestreben ist immer die besten Themen und die besten Referenten auf die Bühne zu bekommen. Unser Konferenz Teilnehmer haben die Möglichkeit gleich nach jeder Session seine Stimme online abzugeben und so haben wir einen recht guten Vergleich. Insgesamt deutlich über 1000 Eventteilnehmer haben sich daran beteiligt. *trommelwirbel* an the Winnnnnnnerrrrr is Bernd Marquardt - Bestes Fachwissen Ingo Rammer - Bester Sprecher ADC08 Jyotika Samjee - Beste Konferenzsprecherin Markus Egger - Bester Sprecher international Neno Loje -Beste Rhetorik Ralf Westphal - Beste Vortragsqualität Stephan Schmidt - Beste Vortragswertung (1,0!) Es gibt für alle einen Kristallstern. Ich hoffe einer der Gewinner bloggt ein Foto davon.

Windows 7, IE8 und Fiddler problem

Wer httpfiddler noch nicht verwendet ( ein HTTP Debugging Proxy) soll entwender sich das das Ding besorgen oder nicht weiterlesen. Für alle anderen war immer das tracen des lokalen HTTP Traffic ein Problem. Dies trifft ASP.NET und Silverlight Entwickler die über lokalen WebDevelopment Server ( vormals cassini) arbeiten. Bis IE6 war ein Aufruf auf http://localhost ohne Probleme möglich. IE7 zeigt den Trace in diesem Fall nicht mehr an, da IE7 so clever ist für lokale Abfragen keinen Proxy zu verwenden. Not a Bug – Feature! Der Workaround ist den Aufruf einfach mit einem Punkt zu versehen, also http://localhost./…. Ein Punkt ist eben ein typisches Kennzeichen einer Internet Domäne oder IP Adresse. Windows 7 scheint noch schlauer zu sein. Mit obigen Workaround erhalte ich  mit dem RC1 Build folgende Meldung im Browser [Fiddler] Connection to localhost. failed. Exception Text: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte ::1:50842 Das Problem ist, das der Name Windows 7 wenig Suchmaschinen freundlich ist . Querys ala Windows 7 fiddler  problem führen nicht zum Ergebnis. In diesem Fall hat mir die Seite des Fiddler Erfinder Eric Lawrence geholfen. Folgendes funktioniert http://ipv4.fiddler:50842/WebSite3/Default.aspx IPV6 würde übrigends den Netzwerk Adapter auf entsprechenden Protokoll adressieren.

2 call for Papers

Die ppedv veranstaltet mehrere Konferenzen im Microsoft Umfeld. Als nächstes Event kann ich Euch empfehlen die ASP-Konferenz Sharepoint Development Special. Aber wir haben auch zwei Events auf dem Plan, für die wir noch Content suchen. Vorschläge mit kurzer Session Beschreibung und ein paar Worten zu eurer Bio und Referenten Erfahrung an events AT ppedv.de ADC09 (Advanced Develeopers Conference) findet diesjährig Anfang Oktober in Bonn statt. Dies ist das premium Event der Branche. In überwiegend 90 Minuten Vorträgen kommen nur die besten Sprecher zum Zuge. Hardcore Themen und Neues. Keine Kompromisse! Die SQLdays konferenz kommt dieses Jahr im September nach Rosenheim. Hier geht es um SQL Server  und BI. Für Developer und Admin. Also man sieht sich!

Was Silverlight nicht kann: Right to left

In der letzten Silverlight 2 Schulung fragte ein Teilnehmer nach Unterstützung für Rechts nach Links schreiben. Dies wird für Textboxen bei manchen arabischen Schriften benötigt. Muss zugeben ich wusste keine Antwort. Genau für diesen Fall betreibe ich das Blog. Wenn ich die Anwort dann kenne, gibts hier ein Post dazu, Also kein Right to left Support in Silverlight 1 und 2. Auch in 3 ist das nicht geplant. Zwar wird schon an der 4er Version entwickelt aber da komm selbst ich an keine Infos ran. (und wenn, darf ich es nicht sagen oder müsste den Leser sofort töten ;-)) Einzig der Link auf ein Control http://silverlightrtl.codeplex.com/ hilft hier.

Silverlight 3 Beispiele wollen nicht

Bin grad über einen Link gespoltert zu einem Silverlight 3 Training Kit von Oliver. Da ich ja selber seit 2 Jahren Silver Trainings durchführe, dachte ich mir, schaden kann es nichts, und click auf den Link. Dann kommt folgender Dialog wenn Sie Silverlight 1 oder 2 installiert haben. Leider wird das installieren zu 99% fehl schlagen. Warum also das Ganze? Der Grund liegt in der Referenzierung des Silverlight Plugins <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="ClientBin/SL3Demo.xap"/> <param name="onerror" value="onSilverlightError" /> <param name="background" value="white" /> <param name="minRuntimeVersion" value="3.0.40307.0" /> .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }Es wird zwar mit dem Application Typ auf ein Silverlight 2 Plugin verweisen, aber in der Version mindestens 3.0 ect benötigt. Es hilft auch nicht x-silverlight-3 zu schreiben. Silverlight 3 ist nicht public mit einer Go-Live Lizenz. Das was Oliver hier treibt ist also streng genommen eine Lizenzverletzung. Viel wichtiger ist, das es kein automatisches Update auf Silverlight 3 gibt ( stand 22.04.2009 11:48). Also was tun? Silverlight 3 Beta 1 in der Developer Edition muss von Hand installiert werden. Für den Site Entwickler gibts eine Möglichkeit dem Benutzer einen sinnvolle Meldung zu präsentieren. In Olivers Beispiel heist der Jscript Error Handler onSilverlightError.  Also ran an den Code function onSilverlightError(sender, args) { if (args.ErrorCode == 8001) { var msg = "install Silverlight 3 Beta by Hand.\n"; var SLhost = document.getElementById("silverlightControlHost"); SLhost.innerHTML = msg; .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

Silverlight 3.0 Beta 1 Fakten

Please note that the beta will be a developer only release with no Go-Live. Silverlight V3 develops on the following themes : ·         Go offline with your application : silverlight provides all the features you need to store your application on your users machine, and then work against their data in the your isolated cache or under their MyDocuments. Your application can ask the user if they want to add a link to your application on their desktop or start menu. In addition, you can check network status to find out when to update. ·         Empower creative professionals : we’ve added new features to make the next generation web visuals including pixel shader effects such as blur and dropshadow; Perspective 3D graphics; Bitmap API for drawing to pixels; and customizable easing for animation ·         Richest controls frameworks : we’ve built in support for validation and error UI. We’ve added support for multiple selection in listbox controls; and for a file save dialog to make it easier to write files. We’ve also added a set of features for data validation so you can automatically catch incorrect input and warn the user with built in validation controls. ·         Theme your application : we now allow you to completely theme your application by applying styles and changing them at runtime; you can also cascade your styles by basing them on each other. ·         Enhanced Control skinning : with the addition of external resource dictionaries its now much easier to take your styles and control skins and share them between different applications. For instance you can build a common set of controls and keep them all external from your application, making skinning much easier. ·         Create responsibly : we are the first browser plugin to provide access to all system colors – this allow partially sighted people to make changes such as high contrast color schemes for readility using familir operating system controls. ·         Quicker application download : we now cache commonly used parts of the silverlight framework such as chart controls the first time they are used. We also allow you to ZIP up your font files; and make use of the local fonts on the users machine to avoid a download. ·         Improved performance : we now allow you to cache parts of your scene to a bitmap to improve rendering performance; we’ve also enhanced deepzoom to work with 1000s of elements; added support to use the GPU to draw to the screen; and we now allow you to set how text renders so that it can animate much more rapidly. We also now support binary XML which allows compression of data from the server to vastly enhance data transfer. ·         Richest Media – H264 and RAW support allows the best codecs on any platform. You can now build your own video or audio code eg create a sound generator or custom alpha video.   New for Silverlight V3   Graphics   NEW Bitmap API : This  allows the developer to take a bitmap and write to  the pixels themselves. Possible scenario here would be to build a photo editor to do red eye correction; or to perform effects upon cached bitmaps from elements on the screen – for instance by shifting pixels around you can make your own blur or fish eye effect.   NEW Pixel Shader Effects :  These software based effects include blur and drop shadow. In addition, the user can also write their own effect They can be applied to any graphical content. An example would be to make a button appear depressed on rollover you could use a drop shadow effect on the pressed visual state.   NEW Perspective 3D : Perspective planes have become popular in modern UI design. Silverlight now allows you to take your content and apply it to a 3D planeThis allows you to make your content rotate or scale in space without writing any additional code; the content is still live and can also be clicked into.. This can be useful in attracting a users attention; or in making content more or less prominent by placing it further back in the scene. Other effects include creating a queue in 3D (such as Windows Vista task switch); and transitions (eg fly objects out of the scene)   NEW Hardware Composition : to improve performance, the final blit of content such as media is now performed by the GPU. In particular, this greatly improves performance of full screen video and bitmaps.   NEW  Cached Composition : this is a feature that renders a visual tree of a set of elements to a bitmap and then uses the bitmap to render. This can hugely improve graphics performance because the element tree only needs to be rendered once. Scenarios include moving or scrolling graphics; or elements in the background which do not change. The developer can set a flag to indicate which parts of the tree are to be cached.   NEW Image download size, cache, opened event : Currently in Silverlight there is no reliable way to check image properties that are populated by the runtime upon opening an image. This is a common scenario as users want to be able to download an image and check its size before deciding what to do with it.   In addition developers can catch an ImageOpened event to find out when an Image has been downloaded and decoded and its fields are properly set; and then can check its natural size when downloaded.   Animation   NEW Custom Easing. Animation easing functions allow designers to designate a mathematical function to determine intermediate values between two designated value points. A number of effects are provided built in such as elastic and bounce effects.   Developers can also now develop their own mathematical functions to describe an animation – for instance effects such as a spring.   New Text Animation. Anti-aliasing text with cleartype is not useful if text is animating on the screen eg zooming or flying in to view; and in addition this can slow down performance. A new option exposes an explicit way to disable readability optimizations for these scenarios.     Media   NEW H264 As media platforms have gained H264 and AAC playback support, customers are increasingly choosing to encode their content in these formats. There are two major benefits for customers migrating today, desktop ubiquity and mobile ubiquity.   Many mobile devices such as portable music players and mobile phones have hardware implementations of H264 and HE-AAC and by migrating to H264 and AAC, content providers gain another set of opportunities for their content to be seen.   In order to continue providing customers excellent media experiences and to lower the barrier of entry to companies and individuals using these codecs, Silverlight should provide the set of features developers and designers have come to expect from the Silverlight runtime including but not limited to, progressive download, streaming, adaptive streaming, playlist support, and DRM, when playing back H264 and AAC content.   NEW Support for RAW audio and video support 3rd Party Codecs Developers can now build their own codes to work on streams of audio or video; for instance they can implement their own alpha video; or generate sound effects functionally to avoid sending down sound effects files.                           Accessability   NEW System colors for high contrast support.  Silverlight currently provides the ability for developers to know if the system is running in high contrast but developers also need information about system colors to present a contrast that matches user's settings. We now expose a set of named colors provided by the operating system – controls and other graphics can utilize these named values which will change when the user edits their system settings. A scenario here is to use these settings so that the display updates when the user switches their preferences to high contrast for easier readability     Controls   NEW Online Toolbox : rather than having to wait for the next release fo silverlight; we’ve made available over 30 controls as we build them. This includes a full set of charting controls and an enhanced datagrid control. We also provide full source code to all of our controls   NEW Multiselect Listbox This is useful for lists from which a user must make multiple selections, often in contiguous ranges.  e.g.:  an online spreadsheet application that displays comparisons of daily financial data based on the date range(s) selected in a ListBox.   NEW File Save Dialog In Silverlight v2, we provided the functionality for developers to invoke an OpenFileDialog but no other FileDialog control. Currently, the only way to allow a user to right a file to disk is to create the file on the server and use the HyperlinkButton control to download it; or round trip the data from the client if necessary which is sometimes difficult and other times not a valid option for given scenarios.   In Silverlight v3, we will add the corresponding SaveFileDialog so that app authors can allow their users the opportunity to save files to their computers.     Layout   NEW Dock panel  – place content NSEW   NEW Wrap Panel – similar to a stack, but the content wraps at the end of the line   NEW ViewBox – allows bitmap scaling of vector content when re-sized     Text Support   NEW Compressed Fonts Font sizes can be quite large but they compress well –Silverlight 3 allows fonts to be compressed into a ZIP file and loaded. . NEW Support for local fonts. Since font files can be large to download, we now allow local fonts t also be used. In particular this can be useful for other languages where the font is widely available and would be large.   NEW Caret Brush on TextBox  While Silverlight TextBox and PasswordBox are highly style-able and skinnable their carets is not. The caret is hard coded to a Black color making it hard to use dark custom colors. This feature allows this color to also be changed.     Databinding   NEW Data validation – Silverlight exposes advanced facilities for validating data via two way databinding; and then allows the developer to catch the validation error and enable or disable other controls (for instance a submit button if a name field is not filled in)   NEW UI controls for data validation errors – If the user enters an illegal data value (eg a non numeric ZIP code), a skinnable control is exposed which allows the designer to specify an error call-out. Built in support is provided for validation errors on existing controls such as textbox and checkbox; and a simple default error UI is also supported.   NEW Element to Element binding : UI designers use binding between two UI properties to create compelling UI experiences.  Silverlight now enables property binding to CLR objects and other UI components via XAML. For example a user’s name and address can be bound to text fields. If this is a two way binding then editing these fields causes the underlying properties to be updated. Other scenarios include UI to UI binding, for instance binding a slider value to the volume control of a media player.     Styling   NEW Based on Styles It is now possible to have styles which are based on each other. For instance, you can append or over-ride values by basing one style on another. This allows a single base style for instance to set all underlying colors and font sizes, and then make changes to this style by applying another for eg new items in the UI. NEW Resetting Styles In silverlight 3 you can now set a style multiple times – this allows style values to be reset or over-ridden. A scenario here is that you want to them your application using a set of different styles for different color schemes; by making all of your graphics and controls skin colors be based on style values, they will then automatically update when you change the style   NEW Merged resource dictionaries. This feature allows use of Silverlight resources defined externally allowing sharing resources between applications and isolating them for localization and easier revisions. By locating the application resources in an external file, we provide the ability for reuse of resources between applications, centralized update by various developer/designers and ability to localize the file out of the application.     Networking   NEW Local Connection This feature allows communication between two Silverlight applications on the client-side without incurring a server roundtrip. Although some of this can be achieved with the HTML DOM Bridge and Scriptable objects, the access to the DOM from the Silverlight app is a pre-requisite. Scenarios here include having eg a Silverlight menu and navigation control within separate controls on the web page communicate together.     Offline support (Beta for V3 at MIX ‘09)   NEW Cache application offline Silverlight V3 allows you to take your application offline, by simply adding a few additional commands. Your application is then securely stored on the local machine, and can access its isolates storage cache; as well as check for network connection. This allows for scenarios such as disconnected media playback (eg on an airplane); and to also process locally stored data.   NEW Add desktop or start menu link to offline application. You can offer the user the option to promote your application to the desktop, their browser favorites, or to the start menu. This allows you to build a relationship with the user that they can quickly find.   NEW Access local data within MyDocuments. We allow you to access a directory based on your application within MyDocuments so that the user can access stored data and can also back-up and find their data again outside of the isolated storage cache.   NEW Check networks state. Your application can check for connectivity – for instance it may want to re-sync when it detects a connection.     XML   NEW Binary XML – compressed XML greatkly improves performance in data transmission by compression   Deep zoom   NEW Show status when image is fully downloaded. Developers want to provide status information about when the map is completely downloaded. . NEW Enhanced performance. Deep Zoom applications with a few hundred items in a collection start to suffer skipped frames. By taking advantage of Silverlight v3’s hardware acceleration, we can show collections of a few thousand items with high framerate   NEW Sharing MultiscaleImage datasets. Developers would like to use multiple Deep Zoom images showing multiple views on the same data. For instance, one view shows the entire collection, while another view focuses on one item.