WEB313_Poll

advertisement
http://www.davidpoll.com
Silverlight
3
Silverlight
4
- Jim Gray
Silverlight
$
Web content
<WebBrowser x:Name="webBrowser"
ScriptNotify="webBrowser_ScriptNotify"
LoadCompleted="webBrowser_LoadCompleted"
Source="http://any.site" />
<Rectangle Grid.Row="1"
Name="rectangle1">
<Rectangle.Fill>
<WebBrowserBrush x:Name="brush"
SourceName="webBrowser"
Opacity="0.5" />
</Rectangle.Fill>
</Rectangle>
top, left
height
width
topmost
You have 325
new voicemails
Listen
x
NotificationWindow toast = new NotificationWindow();
toast.Content = new ToastContent();
toast.Content.MouseLeftButtonUp += (s, arg) =>
{
Application.Current.MainWindow.Activate();
};
toast.Show(4000);
New Business
Models
• Subscription
• Rental
• Purchase
New Features
• Persistent license storage
• Time based policies
• Secure H.264 and AAC decoders
• Support for Output Protection
sllauncher.exe /install:"somePath\myApp.xap"
/origin:"http://any.site.com/myApp.xap"
/shortcut:desktop+startmenu
/overwrite
sllauncher.exe /uninstall
/origin:"http://any.site.com/myApp.xap"
sllauncher.exe /emulate:"somePath\myApp.xap"
/origin:"http://any.site.com/myApp.xap"
/overwrite
Platform
Specific Usage
// defensive code == portable code
if (Application.Current.HasElevatedPermissions)
{
// look ma, no path hard-coding!
// this code works on Mac, Windows, everywhere
string path = Environment.GetFolderPath(
Environment.SpecialFolder.MyVideos);
string mediaFile = Path.Combine(path, "Foo.mp4");
if (!File.Exists(mediaFile))
{
using (FileStream fs = File.Create(mediaFile))
{
//...
}
}
}
Remove the Shell chrome and window border
Rectangular window
Rectangular window with rounded corners
Supported in Silverlight 4
Not in Silverlight 4
• Property get/set, indexed property
get/set
• Positional and optional
parameters
• Support by-ref and by-value
• In proc and out of proc servers
• Support for basic data types
• VARIANT, BSTR, SAFEARRAY,
IEnumVARIANT
• Silverlight app as event sink
•
•
•
•
Multi-dimensional arrays
Named parameters
Type Information
Support for COM Elevation
moniker
// defensive code == portable code
if (AutomationFactory.IsAvailable)
{
dynamic xl = AutomationFactory.CreateObject("Excel.Application");
xl.Visible = true;
xl.Workbooks.Add();
//...
}
For Consumers
• Reassurance on authenticity and integrity
of app
• Clear publisher and provenance info on
app
For App Developers
• Better install-time UX
• App Icon
• Publisher name
• Seamless updates
• No updates for unsigned apps
• No updates when certs mismatch
v1.0
XAML +
JavaScript
2
XAP and
managed
code
3
Beyond
the
browser
4
Trusted
apps
www.microsoft.com/teched
www.microsoft.com/learning
http://microsoft.com/technet
http://microsoft.com/msdn
WEB205 | Unit Testing in Microsoft Silverlight
WEB307 | Effective RIA: Tips and Tricks for Building Effective Rich Internet Applications
COS07-INT | Using Microsoft SQL Azure as a Datahub to Connect Microsoft SQL Server and
Silverlight Clients
TLC-23 | Microsoft Silverlight
TLC-74 | Microsoft SQL Azure Data Sync
Download