Windows Phone Silverlight to UWP API mappings
This topic provides a comprehensive mapping of Windows Phone Silverlight APIs to their Universal Windows Platform (UWP) equivalents. There is generally not a one-to-one mapping of functionality, though: either platform may have more or less functionality than its counterpart in a namespace or class.
The mapping table will help you when you're working in a UWP project and you're re-using source code from a Windows Phone Silverlight project. There are differences in the names of namespaces and classes (including UI controls) between the two platforms. In many cases, it's as easy as changing a namespace name and then your code will compile. Sometimes, a class or API name has changed as well as the namespace name. Other times, the mapping takes a bit more work, and in rare cases requires a change in approach.
**How to use the table: ** First, search for the name of the class you're using. Classes are listed whenever the mapping is more complicated than simply changing the namespace name. If your class is not listed, then the mapping is just a namespace change. So, find your class's namespace name and you'll find the equivalent UWP namespace name. Your class will be in that namespace. If your namespace is not listed, then its name has not changed.
Note Windows 10 supports much more of the .NET Framework than a Windows Phone Store app does. For example, Windows 10 has several System.ServiceModel.* namespaces as well as System.Net, System.Net.NetworkInformation, and System.Net.Sockets. Also, in a Windows 10 app, you will benefit from .NET Native, which an ahead-of-time compilation technology that converts MSIL into natively-runnable machine code. .NET Native apps start faster, use less memory, and use less battery than their MSIL counterparts.
Windows Phone Silverlight | Windows Runtime |
---|---|
Advertising | |
Microsoft.Advertising.Mobile.UI.AdControl class | AdControl class |
Alarms, reminders, and background agents | |
Microsoft.Phone.BackgroundAgent class | BackgroundTaskBuilder class |
Microsoft.Phone.Scheduler namespace | Windows.ApplicationModel.Background namespace |
Microsoft.Phone.Scheduler.Alarm class | BackgroundTaskBuilder and ToastNotificationManager classes |
Microsoft.Phone.Scheduler.PeriodicTask, ScheduledAction, ScheduledActionService, ScheduledTask , ScheduledTaskAgent classes | BackgroundTaskBuilder class |
Microsoft.Phone.Scheduler.Reminder class | BackgroundTaskBuilder and ToastNotificationManager classes |
Microsoft.Phone.PictureDecoder class | BitmapDecoder class |
Microsoft.Phone.BackgroundAudio namespace | Windows.Media.Playback namespace |
Microsoft.Phone.BackgroundTransfer namespace | Windows.Networking.BackgroundTransfer namespace |
App model and environment | |
System.AppDomain class | No direct equivalent. See Application, CoreApplication, classes |
System.Environment class | No direct equivalent |
System.ComponentModel.Annotations class | No direct equivalent |
System.ComponentModel.BackgroundWorker class | ThreadPool class |
System.ComponentModel.DesignerProperties class | DesignMode class |
System.Threading.Thread, System.Threading.ThreadPool classes | ThreadPool class |
(ST = System.Threading) ST.Thread.MemoryBarrier method |
(ST = System.Threading) ST.Interlocked.MemoryBarrier method |
(ST = System.Threading) ST.Thread.ManagedThreadId property |
(S = System) S.Environment.ManagedThreadId property |
System.Threading.Timer class | ThreadPoolTimer class |
(SWT = System.Windows.Threading) SWT.Dispatcher class |
CoreDispatcher class |
(SWT = System.Windows.Threading) SWT.DispatcherTimer class |
DispatcherTimer class |
Blend for Visual Studio | |
(MEDC = Microsoft.Expression.Drawing.Core) MEDC.GeometryHelper class |
No direct equivalent |
Microsoft.Expression.Interactivity namespace | Microsoft.Xaml.Interactivity namespace |
Microsoft.Expression.Interactivity.Core namespace | Microsoft.Xaml.Interactions.Core namespace |
(MEIC = Microsoft.Expression.Interactivity.Core) MEIC.ExtendedVisualStateManager class |
No direct equivalent |
Microsoft.Expression.Interactivity.Input namespace | No direct equivalent |
Microsoft.Expression.Interactivity.Media namespace | Microsoft.Xaml.Interactions.Media namespace |
Microsoft.Expression.Shapes namespace | No direct equivalent |
(MI = Microsoft.Internal) MI.IManagedFrameworkInternalHelper interface |
No direct equivalent |
Contact and calendar data | |
Microsoft.Phone.UserData namespace | Windows.ApplicationModel.Contacts, Windows.ApplicationModel.Appointments namespaces |
(MPU = Microsoft.Phone.UserData) MPU.Account, ContactAddress, ContactCompanyInformation, ContactEmailAddress, ContactPhoneNumber classes |
Contact class |
(MPU = Microsoft.Phone.UserData) MPU.Appointments class |
AppointmentCalendar class |
(MPU = Microsoft.Phone.UserData) MPU.Contacts class |
ContactStore class |
Controls and UI infrastructure | |
ControlTiltEffect.TiltEffect class | Animations from the Windows Runtime animation library are built into the default Styles of the common controls. See Animation. |
Microsoft.Phone.Controls namespace | Windows.UI.Xaml.Controls namespace |
(MPC = Microsoft.Phone.Controls) MPC.ContextMenu class |
PopupMenu class |
(MPC = Microsoft.Phone.Controls) MPC.DatePickerPage class |
DatePickerFlyout class |
(MPC = Microsoft.Phone.Controls) MPC.GestureListener class |
GestureRecognizer class |
(MPC = Microsoft.Phone.Controls) MPC.LongListSelector class |
SemanticZoom class |
(MPC = Microsoft.Phone.Controls) MPC.ObscuredEventArgs class |
SystemProtection, WindowActivatedEventArgs classes |
(MPC = Microsoft.Phone.Controls) MPC.Panorama class |
Hub class |
(MPC = Microsoft.Phone.Controls) MPC.PhoneApplicationFrame, (SWN = System.Windows.Navigation) SWN.NavigationService classes |
Frame class |
(MPC = Microsoft.Phone.Controls) MPC.PhoneApplicationPage class |
Page class |
(MPC = Microsoft.Phone.Controls) MPC.TiltEffect class |
PointerDownThemeAnimation class |
(MPC = Microsoft.Phone.Controls) MPC.TimePickerPage class |
TimePickerFlyout class |
(MPC = Microsoft.Phone.Controls) MPC.WebBrowser class |
WebView class |
(MPC = Microsoft.Phone.Controls) MPC.WebBrowserExtensions class |
No direct equivalent |
(MPC = Microsoft.Phone.Controls) MPC.WrapPanel class |
No direct equivalent for general layout purposes. ItemsWrapGrid and WrapGrid can be used in the items panel template of an items control. |
(MPD = Microsoft.Phone.Data) MPD.Linq namespace |
No direct equivalent |
(MPD = Microsoft.Phone.Data) MPD.Linq.Mapping namespace |
No direct equivalent |
Microsoft.Phone.Globalization namespace | No direct equivalent |
(MPI = Microsoft.Phone.Info) MPI.DeviceExtendedProperties, DeviceStatus classes |
EasClientDeviceInformation, MemoryManager classes. For more details, see Device status. |
(MPI = Microsoft.Phone.Info) MPI.MediaCapabilities class |
No direct equivalent |
(MPI = Microsoft.Phone.Info) MPI.UserExtendedProperties class |
AdvertisingManager class |
System.Windows namespace | Windows.UI.Xaml namespace |
System.Windows.Automation namespace | Windows.UI.Xaml.Automation namespace |
System.Windows.Controls, System.Windows.Input namespaces | Windows.UI.Core, Windows.UI.Input, Windows.UI.Xaml.Controls namespaces |
System.Windows.Controls.DrawingSurface, DrawingSurfaceBackgroundGrid classes | SwapChainPanel class |
System.Windows.Controls.RichTextBox class | RichEditBox class |
System.Windows.Controls.WrapPanel class | No direct equivalent for general layout purposes. ItemsWrapGrid and WrapGrid can be used in the items panel template of an items control. |
System.Windows.Controls.Primitives namespace | Windows.UI.Xaml.Controls.Primitives namespace |
System.Windows.Controls.Shapes namespace | Windows.UI.Xaml.Controls.Shapes namespace |
System.Windows.Data namespace | Windows.UI.Xaml.Data namespace |
System.Windows.Documents namespace | Windows.UI.Xaml.Documents namespace |
System.Windows.Ink namespace | No direct equivalent |
System.Windows.Markup namespace | Windows.UI.Xaml.Markup namespace |
System.Windows.Navigation namespace | Windows.UI.Xaml.Navigation namespace |
System.Windows.UIElement.Tap event, EventHandler<GestureEventArgs> delegate | Tapped event, TappedEventHandler delegate |
Data and services | |
System.Data.Linq.DataContext class | No direct equivalent |
System.Data.Linq.Mapping.ColumnAttribute class | No direct equivalent |
System.Data.Linq.SqlClient.SqlHelpers class | No direct equivalent |
Devices | |
Microsoft.Devices, Microsoft.Devices.Sensors namespaces | Windows.Devices.Enumeration, Windows.Devices.Enumeration.Pnp, Windows.Devices.Input, Windows.Devices.Sensors namespaces |
Microsoft.Devices.Camera, Microsoft.Devices.PhotoCamera classes | MediaCapture class. Also, CameraCaptureUI class (Windows only). |
Microsoft.Devices.CameraButtons class | HardwareButtons class |
Microsoft.Devices.CameraVideoBrushExtensions class | CaptureElement class |
Microsoft.Devices.Environment class | No direct equivalent. As a workaround, use conditional compilation and define a custom symbol. Or you may be able to engineer a workaround using the IsAttached property. |
Microsoft.Devices.MediaHistory class | No direct equivalent |
Microsoft.Devices.VibrateController class | VibrationDevice class |
Microsoft.Devices.Radio.FMRadio class | No direct equivalent |
Microsoft.Devices.Sensors.Accelerometer, Compass classes | In the Windows.Devices.Sensors namespace |
Microsoft.Devices.Sensors.Gyroscope class | Gyrometer class |
Microsoft.Devices.Sensors.Motion class | Inclinometer class |
Globalization | |
System.Globalization namespace | Windows.Globalization namespace |
(ST = System.Threading) ST.Thread.CurrentCulture property |
(SG = System.Globalization) S.CultureInfo.CurrentCulture property |
(ST = System.Threading) ST.Thread.CurrentUICulture property |
(SG = System.Globalization) S.CultureInfo.CurrentUICulture property |
Graphics and animation | |
Microsoft.Xna.Framework.* namespaces, XNA Framework Class Library, Content Pipeline Class Library | No direct equivalent. In general, use Microsoft DirectX with C++. See Developing games and DirectX and XAML interop. |
Microsoft.Xna.Framework.Audio.Microphone class | MediaCapture class |
Microsoft.Xna.Framework.Audio.SoundEffect class | MediaElement class |
Microsoft.Xna.Framework.GamerServices namespace | (WPS = Windows.Phone.System) WPS.UserProfile.GameServices.Core namespace |
Microsoft.Xna.Framework.GamerServices.Guide class | No direct equivalent |
Microsoft.Xna.Framework.Input.GamePad class | HardwareButtons class |
Microsoft.Xna.Framework.Input.Touch.TouchPanel class | GestureRecognizer class |
(MXFM = Microsoft.Xna.Framework.Media) MXFM.MediaLibrary, MXFM.PhoneExtensions.MediaLibraryExtensions classes |
KnownFolders class |
Microsoft.Xna.Framework.Media.MediaQueue class | SystemMediaTransportControls class |
Microsoft.Xna.Framework.Media.Playlist class | BackgroundMediaPlayer class |
System.Windows.Media namespace | Windows.UI.Xaml.Media namespace |
System.Windows.Media.RadialGradientBrush class | No direct equivalent. See Media and graphics. |
System.Windows.Media.Animation namespace | Windows.UI.Xaml.Media.Animation namespace |
System.Windows.Media.Effects namespace | No direct equivalent |
System.Windows.Media.Imaging namespace | Windows.UI.Xaml.Media.Imaging namespace |
System.Windows.Media.Media3D namespace | Windows.UI.Xaml.Media.Media3D namespace |
System.Windows.Shapes namespace | Windows.UI.Xaml.Shapes namespace |
Launchers and Choosers | |
Microsoft.Phone.Tasks.AddressChooserTask, EmailAddressChooserTask, PhoneNumberChooserTask classes | ContactPicker class |
Microsoft.Phone.Tasks.AddWalletItemTask, AddWalletItemResult classes | Windows.ApplicationModel.Wallet namespace |
Microsoft.Phone.Tasks.BingMapsDirectionsTask, BingMapsTask classes | No direct equivalent |
Microsoft.Phone.Tasks.CameraCaptureTask class | MediaCapture class. Also, CameraCaptureUI class (Windows only). |
Microsoft.Phone.Tasks.MarketplaceDetailTask | CurrentApp class (RequestAppPurchaseAsync method) |
Microsoft.Phone.Tasks.ConnectionSettingsTask, MarketplaceHubTask, MarketplaceReviewTask, MarketplaceSearchTask, MediaPlayerLauncher, SearchTask, SmsComposeTask, WebBrowserTask classes | Launcher class |
Microsoft.Phone.Tasks.EmailComposeTask class | EmailMessage class |
Microsoft.Phone.Tasks.GameInviteTask class | No direct equivalent |
Microsoft.Phone.Tasks.MapDownloaderTask, MapsDirectionsTask, MapsTask, MapUpdaterTask classes | No direct equivalent |
Microsoft.Phone.Tasks.PhoneCallTask class | PhoneCallManager class |
Microsoft.Phone.Tasks.PhotoChooserTask class | FileOpenPicker class |
Microsoft.Phone.Tasks.SaveAppointmentTask class | AppointmentManager class |
Microsoft.Phone.Tasks.SaveContactTask, SaveEmailAddressTask, SavePhoneNumberTask classes | StoredContact class (Windows Phone only) |
Microsoft.Phone.Tasks.SaveRingtoneTask class | No direct equivalent |
Microsoft.Phone.Tasks.ShareLinkTask, ShareMediaTask, ShareStatusTask classes | DataPackage class |
Location | |
System.Device.Location namespace | Windows.Devices.Geolocation namespace |
System.Device.GeoCoordinateWatcher class | Geolocator class |
Maps | |
Microsoft.Phone.Maps namespaces | Windows.Services.Maps namespace |
Microsoft.Phone.Maps.Controls namespace | Windows.UI.Xaml.Controls.Maps namespace |
Microsoft.Phone.Maps.Controls.Map class | MapControl class |
Microsoft.Phone.Maps.Services namespace | Windows.Services.Maps namespace |
Microsoft.Phone.Maps.Services.GeocodeQuery, ReverseGeocodeQuery classes | MapLocationFinder class |
System.Device.Location.GeoCoordinate class | Geopoint class |
Microsoft.Phone.Maps.Services.Route class | MapRoute class |
Microsoft.Phone.Maps.Services.RouteQuery class | MapRouteFinder class |
Monetization | |
Microsoft.Phone.Marketplace namespace | Windows.ApplicationModel.Store namespace |
Media | |
Microsoft.Phone.Media namespace | MediaElement class |
Networking | |
(MPNN = Microsoft.Phone.Net.NetworkInformation) MPNN.DeviceNetworkInformation class |
Hostname, NetworkInformation classes |
(MPNN = Microsoft.Phone.Net.NetworkInformation) MPNN.NetworkInterface class |
NetworkInformation class |
(MPNN = Microsoft.Phone.Net.NetworkInformation) MPNN.NetworkInterfaceInfo class |
ConnectionProfile class |
(MPNN = Microsoft.Phone.Net.NetworkInformation) MPNN.NetworkInterfaceList class |
NetworkInformation class |
(MPNN = Microsoft.Phone.Net.NetworkInformation) MPNN.SocketExtensions class |
No direct equivalent |
(MPNN = Microsoft.Phone.Net.NetworkInformation) MPNN.WebRequestExtensions class |
No direct equivalent |
Microsoft.Phone.Networking.Voip namespace | No direct equivalent |
System.Net.CookieCollection class | Still supported, but some properties are missing (for example, IsReadOnly) |
System.Net.DownloadProgressChangedEventArgs class, and similar classes related to System.Net.WebClient | HttpClient class (or System.Net.Http.HttpClient). Derive from System.Net.Http.StreamContent to measure progress. |
System.Net.DnsEndPoint, IPAddress classes | These classes are still supported, but some properties are missing. Alternatively, port to the HostName class. |
System.Net.HttpUtility class | HtmlFormatHelper class |
System.Net.HttpWebRequest class | Partial support, but the recommended, forward-looking alternative is the HttpClient class (or System.Net.Http.HttpClient). These APIs use System.Net.Http.HttpRequestMessage to represent an HTTP request. |
System.Net.HttpWebResponse class | Still supported, but use Dispose() instead of Close(). But, the recommended, forward-looking alternative is the HttpClient class (or System.Net.Http.HttpClient). These APIs use System.Net.Http.HttpResponseMessage to represent an HTTP response. |
(SNN = System.Net.NetworkInformation) SNN.NetworkChange class |
Still supported, except for the constructor. |
System.Net.OpenReadCompletedEventArgs class, and similar classes related to System.Net.WebClient | HttpClient class (or System.Net.Http.HttpClient) |
System.Net.Sockets.Socket class | Still supported, but use Dispose() instead of Close(). Alternatively, port to theStreamSocket class. |
System.Net.Sockets.SocketException class | Still supported, but use the SocketErrorCode property instead of ErrorCode. |
System.Net.Sockets.UdpAnySourceMulticastClient, UdpSingleSourceMulticastClient classes | DatagramSocket class |
System.Net.UploadProgressChangedEventArgs class, and similar classes related to System.Net.WebClient | HttpClient class (or System.Net.Http.HttpClient) |
System.Net.WebClient class | HttpClient class (or System.Net.Http.HttpClient) |
System.Net.WebRequest class | Partial support (a different set of properties), but the recommended, forward-looking alternative is the HttpClient class (or System.Net.Http.HttpClient). These APIs use System.Net.Http.HttpRequestMessage to represent an HTTP request. |
System.Net.WebResponse class | Still supported, but use Dispose() instead of Close(). But, the recommended, forward-looking alternative is the HttpClient class (or System.Net.Http.HttpClient). These APIs use System.Net.Http.HttpResponseMessage to represent an HTTP response. |
(SN = System.Net) SN.WriteStreamClosedEventArgs class |
HttpClient class (or System.Net.Http.HttpClient) |
(SN = System.Net) SN.WriteStreamClosedEventHandler class |
HttpClient class (or System.Net.Http.HttpClient) |
System.UriFormatException class | System.FormatException class |
Notifications | |
MPN = Microsoft.Phone.Notification namespace | Windows.UI.Notifications, Windows.Networking.PushNotifications namespaces |
MPN = Microsoft.Phone.Notification MPN.HttpNotification class |
TileNotification class |
MPN = Microsoft.Phone.Notification MPN.HttpNotificationChannel class |
PushNotificationChannel class |
Programming | |
System namespace | Windows.Foundation namespace |
System.Diagnostics.StackFrame, StackTrace classes | No direct equivalent |
System.Diagnostics namespace | Windows.Foundation.Diagnostics namespace |
System.ICloneable interface | A custom method that returns the appropriate type. |
System.Reflection.Emit.ILGenerator class | No direct equivalent |
Reactive Extensions | |
Microsoft.Phone.Reactive namespace | No direct equivalent |
Reflection | |
System.Type class | System.Reflection.TypeInfo class. See Reflection in the .NET Framework for UWP apps. |
Resources | |
System.Resources.ResourceManager class | (WA = Windows.ApplicationModel) WA.Resources.Core and WA.Resources namespaces, ResourceManager class. See Creating and retrieving resources in Windows Runtime apps. |
Secure Element | |
(MPS = Microsoft.Phone.SecureElement) MPS.SecureElementChannel, MPS.SecureElementSession classes |
SmartCardConnection class |
(MPS = Microsoft.Phone.SecureElement) MPS.SecureElementReader class |
SmartCardReader class |
Security | |
(SSC = System.Security.Cryptography) SSC.Aes, SSC.RSA classes |
CryptographicEngine class |
(SSC = System.Security.Cryptography) SSC.HMACSHA256, SSC.SHA256 classes |
HashAlgorithmProvider class |
(SSC = System.Security.Cryptography) SSC.ProtectedData class |
DataProtectionProvider class |
(SSC = System.Security.Cryptography) SSC.RandomNumberGenerator class |
CryptographicBuffer class |
(SSC = System.Security.Cryptography) SSC.X509Certificates.X509Certificate class |
CertificateEnrollmentManager class |
Shell | |
(MPSh = Microsoft.Phone.Shell) MPSh.ApplicationBar class |
CommandBar class |
(MPSh = Microsoft.Phone.Shell) MPSh.ApplicationBarIconButton class |
AppBarButton class (when used inside the PrimaryCommands property) |
(MPSh = Microsoft.Phone.Shell) MPSh.ApplicationBarMenuItem class |
AppBarButton class (when used inside the SecondaryCommands property) |
(MPSh = Microsoft.Phone.Shell) MPSh.CycleTileData, MPSh.FlipTileData, MPSh.IconicTileData, MPSh.ShellTileData, MPSh.StandardTileData classes |
TileTemplateType class |
(MPSh = Microsoft.Phone.Shell) MPSh.PhoneApplicationService class |
CoreApplication, DisplayRequest classes |
(MPSh = Microsoft.Phone.Shell) MPSh.ProgressIndicator class |
StatusBarProgressIndicator class |
(MPSh = Microsoft.Phone.Shell) MPSh.ShellTile class |
SecondaryTile class |
(MPSh = Microsoft.Phone.Shell) MPSh.ShellTileSchedule class |
TileUpdater class |
(MPSh = Microsoft.Phone.Shell) MPSh.ShellToast class |
ToastNotificationManager class |
(MPSh = Microsoft.Phone.Shell) MPSh.SystemTray class |
StatusBar class |
Storage and I/O | |
Microsoft.Phone.Storage.ExternalStorage, ExternalStorageDevice, ExternalStorageFile, ExternalStorageFolder classes | KnownFolders class |
System.IO namespace | Windows.Storage, Windows.Storage.Streams namespaces |
System.IO.Directory class | StorageFolder class |
System.IO.File class | StorageFile and PathIO classes |
(SII = System.IO.IsolatedStorage) SII.IsolatedStorageFile class |
ApplicationData.LocalFolder property |
(SII = System.IO.IsolatedStorage) SII.IsolatedStorageSettings class |
ApplicationData.LocalSettings property |
System.IO.Stream class | Still supported, but use ReadAsync() and WriteAsync() instead of BeginRead()/EndRead() and BeginWrite()/EndWrite(). |
Wallet | |
Microsoft.Phone.Wallet namespace | Windows.ApplicationModel.Wallet namespace |
Xml | |
(SX = System.Xml) | SX.XmlConvert.ToDateTime method |
(SX = System.Xml) | SX.XmlConvert.ToDateTimeOffset method |
The next topic is Porting the project.