1 / 31

Desktop development with WPF

Desktop development with WPF. Pete Brown | @pete_brown | http://10rem.net Windows Developer Platform Evangelist Microsoft 2-002. Windows 8 desktop opportunities. The coming wave An explosion of new desktop and laptop PCs with touch screens

tirzah
Download Presentation

Desktop development with WPF

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Desktop development with WPF Pete Brown | @pete_brown | http://10rem.net Windows Developer Platform Evangelist Microsoft 2-002

  2. Windows 8 desktop opportunities • The coming wave • An explosion of new desktop and laptop PCs with touch screens • More tablets and hybrid portable x86/64 devices supporting both desktop and Windows Store app models • Why desktop • Run on Windows 7 as well as Windows 8 • Access potentially unsafe APIs and devices • Integrate mixed UI code (e.g., WPF hosting Windows Forms)

  3. Desktop development technologies WPF .NET Windows Forms .NET C++/Win32 Native Silverlight Visual Studio 2012 WPF, Windows Forms, C++ support in Visual Studio Express 2012 for Desktop Silverlight support in Visual Studio Express 2012 for Web

  4. New Win32/COM API categories Assessment Execution Engine (AXE) Compression API (MSZIP, XPRESS, XPRESS_HUFF, LZMS) Data deduplication (backup/restore) Direct composition Direct manipulation DirectX Math Help API iSCSI Target API (WMI) Operation Recorder (Windows prefetch) Packaging and deployment for Windows Store apps SMB management User access logging User state management Web sockets Windows Connection Manager Windows Storage Management XAudio2 XInput

  5. New Windows 8 desktop APIs • AccSetRunningUtilityState • AddDllDirectory • AddPointerInteractionContext • AddResourceAttributeAce • AddScopedPolicyIDAce • AddVirtualDiskParent • AsyncActionCompletedHandler • AuthzFreeCentralAccessPolicyCache • AuthzInitializeCompoundContext • AuthzInitializeRemoteResourceManager • AuthzInitializeResourceManagerEx • AuthzModifyClaims • AuthzModifySids • AuthzRegisterCapChangeNotification • AuthzSetAppContainerInformation • AuthzUnregisterCapChangeNotification • BCryptKeyDerivation • BreakMirrorVirtualDisk • BufferPointerPacketsInteractionContext • CertIsStrongHashToSign • CheckTokenCapability • CheckTokenMembershipEx • ClosePackageInfo • CoAllowUnmarshalerCLSID • CopyFile2 • CopyHelperAttribute • CopyRepairInfo • CopyRootCauseInfo • CoCreateInstanceFromApp • CoDecrementMTAUsage • CoEnterApplicationThreadLifetimeLoop • CoGetApplicationThreadReference • CoHandlePriorityEventsFromMessagePump • CoIncrementMTAUsage • CoRegisterChannelHook • CoWaitForMultipleObjects • CoSetMessageDispatcher • CreateAppContainerProfile • CreateFile2 • CreateInteractionContext • CreateRandomAccessStreamOnFile • CreateRandomAccessStreamOverStream • CreateStreamOverRandomAccessStream • CryptCATAdminAcquireContext2 • CryptCATAdminCalcHashFromFileHandle2 • CryptSIPGetCaps • D2D1CreateDevice • D2D1CreateDeviceContext • DCompositionCreateDevice • DCompositionCreateSurfaceHandle • DeleteAppContainerProfile • DeleteConnectedIdentity • DeleteSynchronizationBarrier • DeleteVirtualDiskMetadata • DeriveAppContainerSidFromAppContainerName • DestroyInteractionContext • DnsCancelQuery • DnsQueryEx • DwmRenderGesture • DwmShowContact • DwmTetherContact • DwmTransitionOwnedWindow • DXGIGetDebugInterface • EapPeerGetConfigBlobAndUserBlob • EnableMouseInPointer • EngineAdapterNotifyPowerChange • EnterSynchronizationBarrier • EnumerateVirtualDiskMetadata • EvaluateProximityToPolygon • EvaluateProximityToRect • EventSetInformation • FreeHelperAttributes • FreeRepairInfoExs • FreeRepairInfos • FreeRootCauseInfos • FreeUiInfo • FwpmConnectionCreateEnumHandle0 • FwpmConnectionDestroyEnumHandle0 • FwpmConnectionEnum0 • FwpmConnectionGetById0 • FwpmConnectionGetSecurityInfo0 • FwpmConnectionSetSecurityInfo0 • FwpmConnectionSubscribe0 • FwpmConnectionSubscriptionsGet0 • FwpmConnectionUnsubscribe0 • FwpmIPsecTunnelAdd2 • FwpmNetEventEnum2 • FwpmNetEventSubscribe1 • FwpmProviderContextAdd2 • FwpmProviderContextEnum2 • FwpmProviderContextGetById2 • FwpmProviderContextGetByKey2 • FwpmvSwitchEventsGetSecurityInfo0 • FwpmvSwitchEventsSetSecurityInfo0 • FwpmvSwitchEventSubscribe0 • FwpmvSwitchEventUnsubscribe0 • GetAddrInfoExCancel • GetAddrInfoExOverlappedResult • GetAppContainerFolderPath • GetAppContainerNamedObjectPath • GetAppContainerRegistryLocation • GetCertificateFromCred • GetCredentialKey • GetCrossSlideParameterInteractionContext • GetCurrentInputMessageSource • GetCurrentInputMessageSource • GetCurrentPackageFamilyName • GetCurrentPackageFullName • GetCurrentPackageId • GetCurrentPackageInfo • GetCurrentPackagePath • GetFirmwareType • GetInertiaParameterInteractionContext • GetInteractionConfigurationInteractionContext • GetIpNetworkConnectionBandwidthEstimates • GetMemoryErrorHandlingCapabilities • GetMouseWheelParameterInteractionContext • GetOverlappedResultEx • GetPackageFamilyName • GetPackageFullName • GetPackageId • GetPackageInfo • GetPackagePath • GetPackagesByPackageFamily • GetPointerCursorId • GetPointerDevice • GetPointerDeviceCursors • GetPointerDeviceProperties • GetPointerDeviceRects • GetPointerDevices • GetPointerFrameInfo • GetPointerFrameInfoHistory • GetPointerFramePenInfo • GetPointerFramePenInfoHistory • GetPointerFrameTouchInfo • GetPointerFrameTouchInfoHistory • GetPointerInfo • GetPointerInfoHistory • GetPointerPenInfo • GetPointerPenInfoHistory • GetPointerTouchInfo • GetPointerTouchInfoHistory • GetPointerType • GetProcessInformation • GetProcessMitigationPolicy • GetProcessReference • GetPropertyInteractionContext • GetRawPointerDeviceData • GetRestrictedErrorInfo • GetScaleFactorForDevice • GetServiceAccountPassword • GetStateInteractionContext • GetSystemTimePreciseAsFileTime • GetThemeAnimationProperty • GetThemeAnimationTransform • GetThemeTimingFunction • GetThreadInformation • GetUnpredictedMessagePos • GetVirtualDiskMetadata • GetWindowFeedbackSetting • HSTRING_UserFree • HSTRING_UserFree64 • HSTRING_UserMarshal • HSTRING_UserMarshal64 • HSTRING_UserSize • HSTRING_UserSize64 • HSTRING_UserUnmarshal • HSTRING_UserUnmarshal64 • HttpPrepareUrl • IAccessibilityDockingService • IAccessibilityDockingServiceCallback • IAccessibleHostingElementProviders • IAccessibleWindowlessControl • IAccessibleWindowlessSite • IActivationFactory • IAdvancedMediaCapture • IAdvancedMediaCaptureInitializationSettings • IAdvancedMediaCaptureSettings • IAgileObject • IAnnotationProvider • IApartmentShutdown • IApplicationActivationManager • IApplicationDesignModeSettings • IAppVisibility • IAppxBlockMapBlock • IAppxBlockMapBlocksEnumerator • IAppxBlockMapFile • IAppxBlockMapFilesEnumerator • IAppxBlockMapReader • IAppxFactory • IAppxFile • IAppxFilesEnumerator • IAppxManifestApplication • IAppxManifestApplicationsEnumerator • IAppxManifestDeviceCapabilitiesEnumerator • IAppxManifestPackageDependenciesEnumerator • IAppxManifestPackageDependency • IAppxManifestPackageId • IAppxManifestProperties • IAppxManifestReader • IAppxManifestResourcesEnumerator • IAppxPackageReader • IAppxPackageWriter • IAsyncAction • IAsyncActionProgressHandler<TProgress> • IAsyncActionWithProgress<TProgress> • IAsyncActionWithProgressCompletedHandler<TProgress> • IAsyncInfo • IAsyncOperation<TResult> • IAsyncOperationCompletedHandler<TResult> • IAsyncOperationProgressHandler • IAsyncOperationWithProgress • IAsyncOperationWithProgressCompletedHandler<TResult, TProgress> • IAudioClient2 • IAudioEndpointOffloadStreamMute • IAudioLfxControl • IBuffer • IBufferByteAccess • ICatalog • ICatalogRead • ICatalogReadWriteLock • IClosable • IConnectedIdentityProvider • IConnectedUser • IConnectedUserStore • IConnectionBrokerClient • IConnectionBrokerRequest • ICoreApplication • ICoreApplicationExit • ICoreApplicationInitialization • ICoreApplicationView • ICoreImmersiveApplication • ICredentialProviderCredential2 • ICredentialProviderCredentialEvents2 • ICredentialProviderCredentialWithFieldOptions • ICredentialProviderSetUserArray • ICredentialProviderUser • ICredentialProviderUserArray • ID2D1AnalysisTransform • ID2D1Bitmap1 • ID2D1BlendTransform • ID2D1BorderTransform • ID2D1ColorContext • ID2D1CommandList • ID2D1CommandSink • ID2D1ComputeInfo • ID2D1ComputeTransform • ID2D1ConcreteTransform • ID2D1Device • ID2D1DeviceContext • ID2D1Effect • ID2D1EffectContext • ID2D1EffectImpl • ID2D1Factory1 • ID2D1GpuRenderInfo • ID2D1GpuTransform • ID2D1GradientStopCollection1 • ID2D1Image • ID2D1ImageBrush • ID2D1OffsetTransform • ID2D1PathGeometry1 • ID2D1Properties • ID2D1RenderInfo • ID2D1ResourceTexture • ID2D1SourceTransform • ID2D1StrokeStyle1 • ID2D1Transform • ID2D1TransformGraph • ID2D1TransformNode • ID2D1VertexBuffer • ID3D11AuthenticatedChannel • ID3D11BlendState1 • ID3D11CryptoSession • ID3D11Device1 • ID3D11DeviceContext1 • ID3D11RasterizerState1 • ID3D11RefDefaultTrackingOptions • ID3D11RefTrackingOptions • ID3D11ShaderTrace • ID3D11ShaderTraceFactory • ID3D11TracingDevice • ID3D11VideoContext • ID3D11VideoDecoder • ID3D11VideoDecoderOutputView • ID3D11VideoDevice • ID3D11VideoProcessor • ID3D11VideoProcessorEnumerator • ID3D11VideoProcessorInputView • ID3D11VideoProcessorOutputView • ID3DDeviceContextState • ID3DUserDefinedAnnotation • IDataObjectAsyncCapability • IDataObjectProvider • IDataTransferManagerInterop • IDCompositionAnimation • IDCompositionClip • IDCompositionDevice • IDCompositionEffect • IDCompositionEffectGroup • IDCompositionMatrixTransform • IDCompositionMatrixTransform3D • IDCompositionRectangleClip • IDCompositionRotateTransform • IDCompositionRotateTransform3D • IDCompositionScaleTransform • IDCompositionScaleTransform3D • IDCompositionSkewTransform • IDCompositionSurface • IDCompositionTarget • IDCompositionTransform • IDCompositionTransform3D • IDCompositionTranslateTransform • IDCompositionTranslateTransform3D • IDCompositionVirtualSurface • IDCompositionVisual • IDefaultFolderMenuInitialize • IDesktopWallpaper • IDirectManipulationCompositor • IDirectManipulationContactHandler • IDirectManipulationContent • IDirectManipulationManager • IDirectManipulationPrimaryContent • IDirectManipulationUpdateHandler • IDirectManipulationUpdateManager • IDirectManipulationViewport • IDirectManipulationViewportEventHandler • IDragProvider • IDropTargetProvider • IDXGIAdapter2 • IDXGIDebug • IDXGIDevice2 • IDXGIDisplayControl • IDXGIFactory2 • IDXGIInfoQueue • IDXGIOutput1 • IDXGIOutputDuplication • IDXGIResource1 • IDXGISurface2 • IDXGISwapChain1 • IEffectivePermission2 • IEnumSpellingError • IErrorReportingSettings • IEvent • IEventCallback • IEventHandler<T> • IExecuteCommandApplicationHostEnvironment • IExecuteCommandHost • IFrameworkInputPane • IFrameworkInputPaneHandler • IFsrmClassificationManager2 • IHandlerActivationHost • IHandlerInfo • IHardwareAudioEngineBase • IHelpFilter • IHelpKeyValuePair • IIdentityStore2 • IImePlugInDictDictionaryList • IInitializeWithWindow • IInputPanelConfiguration • IInputPanelInvocationConfiguration • IInputStream • IInspectable • IIterable<T> • IIterator<T> • IkeextSaEnum2 • IkeextSaGetById2 • IKeyValuePair<K, V> • IKeyword • IKeywordCollection • ILocationPermissions • ILocationPower • IMap<K, V> • IMapChangedEventArgs<K> • IMapView<K, V> • IMbnDeviceService • IMbnDeviceServicesContext • IMbnDeviceServicesEvents • IMbnDeviceServicesManager • IMbnMultiCarrier • IMbnMultiCarrierEvents • IMF2DBuffer2 • IMFByteStreamCacheControl2 • IMFByteStreamProxyClassFactory • IMFByteStreamTimeSeek • IMFByteStreamTrident • IMFCaptureEngine • IMFCaptureEngineClassFactory • IMFCaptureEngineOnEventCallback • IMFCaptureEngineOnSampleCallback • IMFCapturePhotoSink • IMFCapturePreviewSink • IMFCaptureRecordSink • IMFCaptureSink • IMFCaptureSource • IMFDXGIBuffer • IMFDXGIDeviceManager • IMFImageSharingEngine • IMFMediaEngine • IMFMediaEngineClassFactory • IMFMediaEngineEx • IMFMediaEngineExtension • IMFMediaEngineNotify • IMFMediaEngineProtectedContent • IMFMediaEngineSrcElements • IMFMediaError • IMFMediaSharingEngine • IMFMediaSourceEx • IMFMediaTimeRange

  6. New Windows 8 desktop APIs • IMFNetResourceFilter • IMFPluginControl2 • IMFProtectedEnvironmentAccess • IMFRealTimeClientEx • IMFSampleOutputStream • IMFSeekInfo • IMFSharingEngineClassFactory • IMFSignedLibrary • IMFSinkWriterEx • IMFSourceReaderEx • IMFSystemId • IMFVideoProcessorControl • IMFVideoSampleAllocatorEx • ImmDisableLegacyIME • IMsRdpClient8 • IMsRdpClientAdvancedSettings8 • IndexException • INetFwRule3 • INetworkConnectCost • INetworkConnectionCostEvents • INetworkCostManager • INetworkCostManagerEvents • InitializeSynchronizationBarrier • InitializeTouchInjection • InjectTouchInput • INoMarshal • InterlockedAddNoFence • InterlockedAddNoFence64 • InterlockedAnd16NoFence • InterlockedAnd64NoFence • InterlockedAnd8NoFence • InterlockedAndNoFence • InterlockedBitTestAndComplement64 • InterlockedBitTestAndResetAcquire • InterlockedBitTestAndResetRelease • InterlockedBitTestAndSetAcquire • InterlockedBitTestAndSetRelease • InterlockedCompareExchange128 • InterlockedCompareExchange16 • InterlockedCompareExchange16Acquire • InterlockedCompareExchange16NoFence • InterlockedCompareExchange16Release • InterlockedCompareExchangeNoFence • InterlockedCompareExchangeNoFence64 • InterlockedCompareExchangePointerNoFence • InterlockedDecrement16 • InterlockedDecrement16Acquire • InterlockedDecrement16NoFence • InterlockedDecrement16Release • InterlockedDecrementNoFence • InterlockedDecrementNoFence64 • InterlockedExchange16Acquire • InterlockedExchange16NoFence • InterlockedExchange8 • InterlockedExchangeAddNoFence • InterlockedExchangeAddNoFence64 • InterlockedExchangeNoFence • InterlockedExchangeNoFence64 • InterlockedExchangePointerNoFence • InterlockedIncrement16 • InterlockedIncrement16Acquire • InterlockedIncrement16NoFence • InterlockedIncrement16Release • InterlockedIncrementNoFence • InterlockedIncrementNoFence64 • InterlockedOr16NoFence • InterlockedOr64NoFence • InterlockedOr8NoFence • InterlockedOrNoFence • InterlockedPushListSListEx • InterlockedXor16NoFence • InterlockedXor64NoFence • InterlockedXor8NoFence • InterlockedXorNoFence • IObjectModelProvider • IObservableMap<K, V> • IObservableVector<T> • IOptionDescription • IOutputStream • IPackageDebugSettings • IPackageDebugSettings • IPlaybackManager • IPlaybackManagerEvents • IPlayToControl • IPlayToControllerClassFactory • IPlayToManagerDirect • IPlayToManagerInterop • IPlayToReceiverClassFactory • IPortableDeviceUnitsStream • IPrintManagerInterop • IPropertyValue • IPropertyValueStatics • IPsecKeyManagerAddAndRegister0 • IPsecKeyManagerGetSecurityInfoByKey0 • IPsecKeyManagerSetSecurityInfoByKey0 • IPsecKeyManagersGet0 • IPsecKeyManagerUnregisterAndDelete0 • IPsecSaContextSubscribe0 • IPsecSaContextSubscriptionsGet0 • IPsecSaContextUnsubscribe0 • IRandomAccessStream • IRawElementProviderHostingAccessibles • IRawElementProviderWindowlessSite • IRDPViewerRenderingSurface • IReference<T> • IReferenceArray<T> • IReferenceTracker • IReferenceTrackerHost • IReferenceTrackerManager • IReferenceTrackerTarget • IRemoteDesktopClient • IRemoteDesktopClientActions • IRemoteDesktopClientEvents • IRemoteDesktopClientSettings • IRestrictedErrorInfo • IRichEditUiaInformation • IRicheditUiaOverrides • IRicheditWindowlessAccessibility • IRoMetaDataLocator • IRoSimpleMetaDataBuilder • ISearchableApplication • ISearchManager2 • ISecurityInformation4 • IsImmersiveProcess • IsMouseInPointerEnabled • ISpellChecker • ISpellCheckerChangedEventHandler • ISpellCheckerFactory • ISpellCheckProvider • ISpellCheckProviderFactory • ISpellingError • ISpreadsheetItemProvider • ISpreadsheetProvider • IStylesProvider • ISuspendingDeferral • ISuspendingEventArgs • ISuspendingOperation • IsValidNLSVersion • ITextDisplays • ITextDocument2 • ITextFont2 • ITextHost2 • ITextPara2 • ITextProvider2 • ITextRange2 • ITextRow • ITextSelection2 • ITextServices2 • ITextStory • ITextStoryRanges2 • ITextStrings • ITfFnGetPreferredTouchKeyboardLayout • ITfIntegratableCandidateListUIElement • ITfFnSearchCandidateProvider • ITfThreadMgr2 • IThumbnailCachePrimer • IThumbnailSettings • ITopic • ITopicCollection • ITpmVirtualSmartCardManager • ITpmVirtualSmartCardManagerStatusCallback • ITraceRelogger • ITransformProvider2 • ItsPubPlugin2 • ITypedEventHandler<TSender, TArgs> • IUIAnimationInterpolator2 • IUIAnimationLoopIterationChangeHandler2 • IUIAnimationManager2 • IUIAnimationManagerEventHandler2 • IUIAnimationPrimitiveInterpolation • IUIAnimationPriorityComparison2 • IUIAnimationStoryboard2 • IUIAnimationStoryboardEventHandler2 • IUIAnimationTransition2 • IUIAnimationTransitionFactory2 • IUIAnimationTransitionLibrary2 • IUIAnimationVariable2 • IUIAnimationVariableChangeHandler2 • IUIAnimationVariableCurveChangeHandler2 • IUIAnimationVariableIntegerChangeHandler2 • IUIAutomation2 • IUIAutomationAnnotationPattern • IUIAutomationDragPattern • IUIAutomationDropTargetPattern • IUIAutomationElement2 • IUIAutomationObjectModelPattern • IUIAutomationSpreadsheetItemPattern • IUIAutomationSpreadsheetPattern • IUIAutomationStylesPattern • IUIAutomationTextChildPattern • IUIAutomationTextPattern2 • IUIAutomationTransformPattern2 • IUIEventingManager • IUIEventLogger • IUIFramework2 • IUPnPAsyncResult • IUPnPServiceAsync • IUPnPServiceDocumentAccess • IUPnPServiceEnumProperty • IUserDictionariesRegistrar • IVector<T> • IVectorChangedEventArgs • IVectorView<T> • IViewProvider • IViewProviderFactory • IVmApplicationHealthMonitor • IWeakReference • IWeakReferenceSource • IWebApplicationAuthoringMode • IWebApplicationHost • IWebApplicationNavigationEvents • IWebApplicationScriptEvents • IWebApplicationUIEvents • IWSDHttpAuthParameters • IWTSBitmapRenderer • IWTSBitmapRendererCallback • IWTSBitmapRenderService • IWTSPluginServiceProvider • IWTSServerChannel • IWTSServerChannelManager • IWTSVirtualChannelCallback2 • IXMLHTTPRequest2 • IXMLHTTPRequest2Callback • IXpsOMObjectFactory1 • IXpsOMPackage1 • IXpsOMPage1 • LoadPackagedLibrary • LsaGetAppliedCAPIDs • LsaLookupSids2 • MagGetFullscreenColorEffect • MagGetFullscreenTransform • MagGetInputTransform • MagSetFullscreenColorEffect • MagSetFullscreenTransform • MagSetInputTransform • MagShowSystemCursor • MapChangedEventHandler<K, V> • MAPISendMailHelper • MAPISendMailW • MetaDataGetDispenser • MFAllocateSerialWorkQueue • MFBeginRegisterWorkQueueWithMMCSSEx • MFCreate2DMediaBuffer • MFCreateAC3MediaSink • MFCreateADTSMediaSink • MFCreateCaptureEngine • MFCreateDXGIDeviceManager • MFCreateDXGISurfaceBuffer • MFCreateMediaBufferFromMediaType • MFCreateMediaExtensionActivate • MFCreateMFByteStreamOnStreamEx • MFCreateMFByteStreamWrapper • MFCreateMuxSink • MFCreateMuxSinkActivate • MFCreateStreamOnMFByteStream • MFCreateStreamOnMFByteStreamEx • MFCreateTranscodeTopologyFromByteStream • MFCreateVideoSampleAllocatorEx • MFGetAttributeString • MFGetContentProtectionSystemCLSID • MFGetWorkQueueMMCSSPriority • MFLockDXGIDeviceManager • MFLockSharedWorkQueue • MFMapDX9FormatToDXGIFormat • MFMapDXGIFormatToDX9Format • MFPutWaitingWorkItem • MFPutWorkItem2 • MFPutWorkItemEx2 • MFRegisterLocalByteStreamHandler • MFRegisterLocalSchemeHandler • MFRegisterPlatformWithMMCSS • MFUnlockDXGIDeviceManager • MFUnregisterPlatformFromMMCSS • MI_Application_Close • MI_Application_Initialize • MI_Application_NewDeserializer • MI_Application_NewDestinationOptions • MI_Application_NewHostedProvider • MI_Application_NewInstance • MI_Application_NewInstanceFromClass • MI_Application_NewOperationOptions • MI_Application_NewParameterSet • MI_Application_NewSerializer • MI_Application_NewSession • MI_Application_NewSubscriptionDeliveryOptions • MI_Class_Clone • MI_Class_Delete • MI_Class_GetClassName • MI_Class_GetClassQualifierSet • MI_Class_GetElement • MI_Class_GetElementAt • MI_Class_GetElementCount • MI_Class_GetMethod • MI_Class_GetMethodAt • MI_Class_GetMethodCount • MI_Class_GetNameSpace • MI_Class_GetParentClass • MI_Class_GetParentClassName • MI_Class_GetServerName • MI_Context_Canceled • MI_Context_ConstructInstance • MI_Context_ConstructParameters • MI_Context_GetCustomOption • MI_Context_GetCustomOptionAt • MI_Context_GetCustomOptionCount • MI_Context_GetLocale • MI_Context_GetLocalSession • MI_Context_GetNumberOption • MI_Context_GetStringOption • MI_Context_NewDynamicInstance • MI_Context_NewInstance • MI_Context_NewParameters • MI_Context_PostCimError • MI_Context_PostError • MI_Context_PostIndication • MI_Context_PostInstance • MI_Context_PostResult • MI_Context_PostResultWithError • MI_Context_PostResultWithMessage • MI_Context_PromptUser • MI_Context_RefuseUnload • MI_Context_RegisterCancel • MI_Context_RequestUnload • MI_Context_SetStringOption • MI_Context_ShouldContinue • MI_Context_ShouldProcess • MI_Context_WriteCimError • MI_Context_WriteDebug • MI_Context_WriteError • MI_Context_WriteMessage • MI_Context_WriteProgress • MI_Context_WriteStreamParameter • MI_Context_WriteVerbose • MI_Context_WriteWarning • MI_Deserializer_Class_GetClassName • MI_Deserializer_Class_GetParentClassName • MI_Deserializer_Close • MI_Deserializer_DeserializeClass • MI_Deserializer_DeserializeInstance • MI_Deserializer_Instance_GetClassName • MI_DestinationOptions_AddDestinationCredentials • MI_DestinationOptions_AddProxyCredentials • MI_DestinationOptions_Clone • MI_DestinationOptions_Delete • MI_DestinationOptions_GetCertCACheck • MI_DestinationOptions_GetCertCNCheck • MI_DestinationOptions_GetCertRevocationCheck • MI_DestinationOptions_GetCredentialsAt • MI_DestinationOptions_GetCredentialsCount • MI_DestinationOptions_GetCredentialsPasswordAt • MI_DestinationOptions_GetDataLocale • MI_DestinationOptions_GetDestinationPort • MI_DestinationOptions_GetEncodePortInSPN • MI_DestinationOptions_GetHttpUrlPrefix • MI_DestinationOptions_GetImpersonationType • MI_DestinationOptions_GetMaxEnvelopeSize • MI_DestinationOptions_GetNumber • MI_DestinationOptions_GetOption • MI_DestinationOptions_GetOptionAt • MI_DestinationOptions_GetOptionCount • MI_DestinationOptions_GetPacketEncoding • MI_DestinationOptions_GetPacketIntegrity • MI_DestinationOptions_GetPacketPrivacy • MI_DestinationOptions_GetProxyType • MI_DestinationOptions_GetString • MI_DestinationOptions_GetTimeout • MI_DestinationOptions_GetTransport • MI_DestinationOptions_GetUILocale • MI_DestinationOptions_SetCertCACheck • MI_DestinationOptions_SetCertCNCheck • MI_DestinationOptions_SetCertRevocationCheck • MI_DestinationOptions_SetDataLocale • MI_DestinationOptions_SetDestinationPort • MI_DestinationOptions_SetEncodePortInSPN • MI_DestinationOptions_SetHttpUrlPrefix • MI_DestinationOptions_SetImpersonationType • MI_DestinationOptions_SetMaxEnvelopeSize • MI_DestinationOptions_SetNumber • MI_DestinationOptions_SetPacketEncoding • MI_DestinationOptions_SetPacketIntegrity • MI_DestinationOptions_SetPacketPrivacy • MI_DestinationOptions_SetProxyType • MI_DestinationOptions_SetString • MI_DestinationOptions_SetTimeout • MI_DestinationOptions_SetTransport • MI_DestinationOptions_SetUILocale • MI_Filter_Evaluate • MI_Filter_GetExpression • MI_HostedProvider_Close • MI_HostedProvider_GetApplication • MI_Instance_AddElement • MI_Instance_ClearElement • MI_Instance_ClearElementAt • MI_Instance_Clone • MI_Instance_Delete • MI_Instance_Destruct • MI_Instance_GetClass • MI_Instance_GetClassName • MI_Instance_GetElement • MI_Instance_GetElementAt • MI_Instance_GetElementCount • MI_Instance_GetNameSpace • MI_Instance_GetServerName • MI_Instance_IsA • MI_Instance_SetElement • MI_Instance_SetElementAt • MI_Instance_SetNameSpace • MI_Instance_SetServerName

  7. New Windows 8 desktop APIs • MI_Operation_Cancel • MI_Operation_Close • MI_Operation_GetClass • MI_Operation_GetIndication • MI_Operation_GetInstance • MI_Operation_GetSession • MI_OperationOptions_Clone • MI_OperationOptions_Delete • MI_OperationOptions_DisableChannel • MI_OperationOptions_EnableChannel • MI_OperationOptions_GetEnabledChannels • MI_OperationOptions_GetForceFlagPromptUserMode • MI_OperationOptions_GetNumber • MI_OperationOptions_GetOption • MI_OperationOptions_GetOptionAt • MI_OperationOptions_GetOptionCount • MI_OperationOptions_GetPromptUserMode • MI_OperationOptions_GetProviderArchitecture • MI_OperationOptions_GetResourceUriPrefix • MI_OperationOptions_GetString • MI_OperationOptions_GetTimeout • MI_OperationOptions_GetUseMachineID • MI_OperationOptions_GetWriteErrorMode • MI_OperationOptions_SetCustomOption • MI_OperationOptions_SetForceFlagPromptUserMode • MI_OperationOptions_SetNumber • MI_OperationOptions_SetPromptUserMode • MI_OperationOptions_SetProviderArchitecture • MI_OperationOptions_SetResourceUriPrefix • MI_OperationOptions_SetString • MI_OperationOptions_SetTimeout • MI_OperationOptions_SetUseMachineID • MI_OperationOptions_SetWriteErrorMode • MI_ParameterSet_GetMethodReturnType • MI_ParameterSet_GetParameter • MI_ParameterSet_GetParameterAt • MI_ParameterSet_GetParameterCount • MI_PropertySet_AddElement • MI_PropertySet_Clear • MI_PropertySet_Clone • MI_PropertySet_ContainsElement • MI_PropertySet_Delete • MI_PropertySet_Destruct • MI_PropertySet_GetElementAt • MI_PropertySet_GetElementCount • MI_QualifierSet_GetQualifier • MI_QualifierSet_GetQualifierAt • MI_QualifierSet_GetQualifierCount • MI_Serializer_Close • MI_Serializer_SerializeClass • MI_Serializer_SerializeInstance • MI_Server_GetSystemName • MI_Server_GetVersion • MI_Session_AssociatorInstances • MI_Session_Close • MI_Session_CreateInstance • MI_Session_DeleteInstance • MI_Session_EnumerateClasses • MI_Session_EnumerateInstances • MI_Session_GetApplication • MI_Session_GetClass • MI_Session_GetInstance • MI_Session_Invoke • MI_Session_ModifyInstance • MI_Session_QueryInstances • MI_Session_ReferenceInstances • MI_Session_Subscribe • MI_Session_TestConnection • MI_SubscriptionDeliveryOptions_AddDeliveryCredentials • MI_SubscriptionDeliveryOptions_Clone • MI_SubscriptionDeliveryOptions_Delete • MI_SubscriptionDeliveryOptions_GetBookmark • MI_SubscriptionDeliveryOptions_GetCredentialsAt • MI_SubscriptionDeliveryOptions_GetCredentialsCount • MI_SubscriptionDeliveryOptions_GetCredentialsPasswordAt • MI_SubscriptionDeliveryOptions_GetDateTime • MI_SubscriptionDeliveryOptions_GetDeliveryDestination • MI_SubscriptionDeliveryOptions_GetDeliveryPortNumber • MI_SubscriptionDeliveryOptions_GetDeliveryRetryAttempts • MI_SubscriptionDeliveryOptions_GetDeliveryRetryInterval • MI_SubscriptionDeliveryOptions_GetExpirationTime • MI_SubscriptionDeliveryOptions_GetHeartbeatInterval • MI_SubscriptionDeliveryOptions_GetInterval • MI_SubscriptionDeliveryOptions_GetMaximumLatency • MI_SubscriptionDeliveryOptions_GetNumber • MI_SubscriptionDeliveryOptions_GetOption • MI_SubscriptionDeliveryOptions_GetOptionAt • MI_SubscriptionDeliveryOptions_GetOptionCount • MI_SubscriptionDeliveryOptions_GetString • MI_SubscriptionDeliveryOptions_SetBookmark • MI_SubscriptionDeliveryOptions_SetDateTime • MI_SubscriptionDeliveryOptions_SetDeliveryDestination • MI_SubscriptionDeliveryOptions_SetDeliveryPortNumber • MI_SubscriptionDeliveryOptions_SetDeliveryRetryAttempts • MI_SubscriptionDeliveryOptions_SetDeliveryRetryInterval • MI_SubscriptionDeliveryOptions_SetExpirationTime • MI_SubscriptionDeliveryOptions_SetHeartbeatInterval • MI_SubscriptionDeliveryOptions_SetInterval • MI_SubscriptionDeliveryOptions_SetMaximumLatency • MI_SubscriptionDeliveryOptions_SetNumber • MI_SubscriptionDeliveryOptions_SetString • MI_Utilities_CimErrorFromErrorCode • MI_Utilities_MapErrorToExtendedError • MI_Utilities_MapErrorToMiErrorCategory • MirrorVirtualDisk • NCryptCloseProtectionDescriptor • NCryptCreateProtectionDescriptor • NCryptGetProtectionDescriptorInfo • NCryptKeyDerivation • NCryptProtectSecret • NCryptQueryProtectionDescriptorName • NCryptRegisterProtectionDescriptorName • NCryptStreamClose • NCryptStreamOpenToProtect • NCryptStreamOpenToUnprotect • NCryptStreamUpdate • NCryptUnprotectSecret • NdfCreateNetConnectionIncident • NeedCurrentDirectoryForExePath • NetCreateProvisioningPackage • NetRequestProvisioningPackageInstall • NetworkIsolationDiagnoseConnectFailureAndGetInfo • NetworkIsolationEnumAppContainers • NetworkIsolationEnumerateAppContainerRules • NetworkIsolationFreeAppContainers • NetworkIsolationGetAppContainerConfig • NetworkIsolationRegisterForAppContainerChanges • NetworkIsolationSetAppContainerConfig • NetworkIsolationSetupAppContainerBinaries • NetworkIsolationUnregisterForAppContainerChanges • OfflineFilesQueryStatusEx • OfflineFilesStart • OnProfileLoaded • OpenPackageInfoByFullName • PackageFamilyNameFromFullName • PackageFamilyNameFromId • PackageFullNameFromId • PackageIdFromFullName • PackageNameAndPublisherIdFromFamilyName • PackTouchHitTestingProximityEvaluation • PathAllocCanonicalize • PathAllocCombine • PathCchAddBackslash • PathCchAddBackslashEx • PathCchAddExtension • PathCchAppend • PathCchAppendEx • PathCchCanonicalize • PathCchCanonicalizeEx • PathCchCombine • PathCchCombineEx • PathCchFindExtension • PathCchIsRoot • PathCchRemoveBackslash • PathCchRemoveBackslashEx • PathCchRemoveExtension • PathCchRemoveFileSpec • PathCchRenameExtension • PathCchSkipRoot • PathCchStripPrefix • PathCchStripToRoot • PathIsUNCEx • PeerDistClientGetInformationByHandle • PeerDistGetOverlappedResult • PeerDistGetStatusEx • PeerDistRegisterForStatusChangeNotificationEx • PeerDistServerOpenContentInformationEx • PowerDeterminePlatformRoleEx • PowerRegisterSuspendResumeNotification • PowerUnregisterSuspendResumeNotification • PrefetchVirtualMemory • ProcessBufferedPacketsInteractionContext • ProcessInertiaInteractionContext • ProcessPointerFramesInteractionContext • PxeDhcpv6AppendOption • PxeDhcpv6AppendOptionRaw • PxeDhcpv6CreateRelayRepl • PxeDhcpv6GetOptionValue • PxeDhcpv6GetVendorOptionValue • PxeDhcpv6Initialize • PxeDhcpv6IsValid • PxeDhcpv6ParseRelayForw • PxeGetServerInfoEx • QueryServiceDynamicInformation • RegisterAppInstance • RegisterBadMemoryNotification • RegisterOutputCallbackInteractionContext • RegisterPointerDeviceNotifications • RegisterPointerInputTarget • RegisterScaleChangeNotifications • RegisterTouchHitTestingWindow • RemoveDllDirectory • RemovePointerInteractionContext • ResetInteractionContext • ResizeVirtualDisk • RevokeScaleChangeNotifications • RIOCloseCompletionQueue • RIOCreateCompletionQueue • RIOCreateRequestQueue • RIODequeueCompletion • RIODeregisterBuffer • RIONotify • RIOReceive • RIOReceiveEx • RIORegisterBuffer • RIOResizeCompletionQueue • RIOResizeRequestQueue • RIOSend • RIOSendEx • RoActivateInstance • RoCaptureErrorContext • RoFailFastWithErrorContext • RoFreeParameterizedTypeExtra • RoGetActivatableClassRegistration • RoGetActivationFactory • RoGetBufferMarshaler • RoGetErrorReportingFlags • RoGetMetaDataFile • RoGetParameterizedTypeInstanceIID • RoGetServerActivatableClasses • RoInitialize • RoOriginateError • RoOriginateErrorW • RoParameterizedTypeExtraGetTypeSignature • RoParseTypeName • RoRegisterActivationFactories • RoRegisterForApartmentShutdown • RoResolveNamespace • RoResolveRestrictedErrorInfoReference • RoRevokeActivationFactories • RoSetErrorReportingFlags • RoTransformError • RoTransformErrorW • RoUninitialize • RoUnregisterForApartmentShutdown • RtlAddGrowableFunctionTable • RtlDeleteGrowableFunctionTable • RtlGrowFunctionTable • SCardGetDeviceTypeId • SCardGetReaderDeviceInstanceId • SCardGetReaderIcon • SCardListReadersWithDeviceInstanceId • SensorAdapterNotifyPowerChange • SetCoalescableTimer • SetCrossSlideParametersInteractionContext • SetDefaultDllDirectories • SetInertiaParameterInteractionContext • SetInteractionConfigurationInteractionContext • SetMouseWheelParameterInteractionContext • SetPivotInteractionContext • SetProcessInformation • SetProcessMitigationPolicy • SetProcessReference • SetPropertyInteractionContext • SetRestrictedErrorInfo • SetThreadInformation • SetVirtualDiskMetadata • SetWindowFeedbackSetting • SetWindowFeedbackSettings • SignerSignEx2 • SkipPointerFrameMessages • SLActivateProduct • SLClose • SLConsumeRight • SLDepositMigrationBlob • SLDepositOfflineConfirmationId • SLDepositOfflineConfirmationIdEx • SLFireEvent • SLGatherMigrationBlob • SLGenerateOfflineInstallationId • SLGenerateOfflineInstallationIdEx • SLGetApplicationInformation • SLGetApplicationPolicy • SLGetAuthenticationResult • SLGetGenuineInformationEx • SLGetInstalledProductKeyIds • SLGetLicense • SLGetLicenseFileId • SLGetLicenseInformation • SLGetLicensingStatusInformation • SLGetPKeyId • SLGetPKeyInformation • SLGetPolicyInformation • SLGetPolicyInformationDWORD • SLGetProductSkuInformation • SLGetReferralInformation • SLGetServerStatus • SLGetServiceInformation • SLGetSLIDList • SLInstallLicense • SLInstallProofOfPurchase • SLInstallProofOfPurchaseEx • SLLoadApplicationPolicies • SLOpen • SLPersistApplicationPolicies • SLPersistRTSPayloadOverride • SLReArm • SLRegisterEvent • SLSetAuthenticationData • SLSetCurrentProductKey • SLUninstallLicense • SLUninstallProofOfPurchase • SLUnloadApplicationPolicies • SLUnregisterEvent • SslGetServerIdentity • SspiDecryptAuthIdentityEx • SspiEncryptAuthIdentityEx • StopInteractionContext • StorageAdapterNotifyPowerChange • TdhCloseDecodingHandle • TdhGetDecodingParameter • TdhGetWppMessage • TdhGetWppProperty • TdhLoadManifestFromBinary • TdhOpenDecodingHandle • TdhSetDecodingParameter • TKBLayoutType • TraceQueryInformation • UiaDisconnectAllProviders • UiaDisconnectProvider • UiaIAccessibleFromProvider • UiaProviderForNonClient • UiaProviderFromIAccessible • UnregisterBadMemoryNotification • UnregisterPointerInputTarget • UtilAssembleStringsWithAlloc • UtilLoadStringWithAlloc • UtilStringCopyWithAlloc • VectorChangedEventHandler<T> • WaitOnAddress • WakeByAddressAll • WakeByAddressSingle • WcmFreeMemory • WcmGetProfileList • WcmQueryProperty • WcmSetProfileList • WcmSetProperty • WdsBpParseInitializev6 • WdsCliGetDriverQueryXml • WdsCliObtainDriverPackagesEx • WebSocketAbortHandle • WebSocketBeginClientHandshake • WebSocketBeginServerHandshake • WebSocketCompleteAction • WebSocketCreateClientHandle • WebSocketCreateServerHandle • WebSocketDeleteHandle • WebSocketEndClientHandshake • WebSocketEndServerHandshake • WebSocketGetAction • WebSocketReceive • WebSocketSend • WFDCancelOpenSession • WFDCloseHandle • WFDCloseSession • WFDOpenHandle • WFDOpenLegacySession • WFDStartOpenSession • WFDUpdateDeviceVisibility • WinBioAsyncEnumBiometricUnits • WinBioAsyncEnumDatabases • WinBioAsyncEnumServiceProviders • WinBioAsyncMonitorFrameworkChanges • WinBioAsyncOpenFramework • WinBioAsyncOpenSession • WinBioCloseFramework • WindowsCompareStringOrdinal • WindowsConcatString • WindowsCreateString • WindowsCreateStringReference • WindowsDeleteString • WindowsDeleteStringBuffer • WindowsDuplicateString • WindowsGetStringLen • WindowsGetStringRawBuffer • WindowsInspectString • WindowsIsStringEmpty • WindowsPreallocateStringBuffer • WindowsPromoteStringBuffer • WindowsReplaceString • WindowsStringHasEmbeddedNull • WindowsSubstring • WindowsSubstringWithSpecifiedLength • WindowsTrimStringEnd • WindowsTrimStringStart • WinHttpCreateProxyResolver • WinHttpFreeProxyResult • WinHttpGetProxyForUrlEx • WinHttpGetProxyResult • WinHttpResetAutoProxy • WinHttpWebSocketClose • WinHttpWebSocketCompleteUpgrade • WinHttpWebSocketQueryCloseStatus • WinHttpWebSocketReceive • WinHttpWebSocketSend • WinHttpWebSocketShutdown • WSManConnectShell • WSManConnectShellCommand • WSManCreateShellEx • WSManDisconnectShell • WSManInitialize • WSManReconnectShell • WSManReconnectShellCommand • WSManRunShellCommandEx • WTSEnableChildSessions • WTSGetChildSessionId • WTSIsChildSessionsEnabled • WTSSetRenderHint

  8. New features for WPF 4.5 Stronger Portable Class Library (PCL) support for multi-targeting New async and await and Task<T> support Built-in ribbon and ribbon window Data binding update delay Static property binding and change notification Event weak references Binding expression information INotifyDataErrorInfo ICustomTypeProvider Accessing collections on non-UI threads Live shaping of collections VirtualizingPanel support for pixel scrolling Bug fixes, performance improvements, and more Tons of other .NET 4.5-wide improvements and features

  9. Multi-targeting

  10. Likely sharing/multi-targeting scenarios .NET Server App .NET Desktop App Windows Store App Windows Phone App Shared viewmodel Shared model, logic, rules, etc.

  11. Approaches Conditional compilation and linked files Portable class libraries • No runtime support required • All in the tooling • Some additional work for the developer • Built into the tooling and runtime • Expanded capabilities in .NET 4.5 • Easiest for developers

  12. Conditional compilation • By default, WinRT apps define NETFX_CORE • More info in MSDN Magazine Windows 8 Special Issue: http://bit.ly/MsdnWin8Pmb #if NETFX_CORE using Windows.UI.Xaml; #else using System.Windows.Xaml; #endif

  13. Portable Class Libraries • PCL is supported across a wide range of .NET client targets More details: http://bit.ly/NetPCL PCL also supports Xbox

  14. Portable Class Libraries • Dedicated project type in Visual Studio 2012

  15. Multi-targeting with PCL • Demo

  16. async and await • Together, greatly simplifies asynchronous code • Especially suitable for networking operations • Relies on • New C# language feature • Task<T> and the Task Parallel Library • Compiler does the hard work. See my analysis of the IL: http://bit.ly/asyncstatemachine

  17. Tooling support • Visual Studio 2012 now generates awaitable proxies for service references in .NET 4.5

  18. Asynchronous calls • Demo

  19. Binding to static properties • Change notification following INotifyPropertyChanged pattern, but without the explicit interface Target: Property="{Binding Path=(namespace:class.property)}" Source: public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;

  20. New BindingExpression APIs • New APIs for accessing binding expression information • ResolvedSource(source object) • ResolvedSourcePropertyName (property) • Target (target object) • TargetProperty (target property) • more

  21. Binding delay • Update a value only after it stabilizes to reduce the chatter across the binding system <Slider x:Name="ValueSlider" Minimum="0" Maximum="100" Margin="20" Height="25" Value="{Binding ElementName=ValueText, Delay=500, Path=Text, Mode=TwoWay}" /> <TextBoxx:Name="ValueText" Text="50" Width="100" Height="50" FontSize="20" HorizontalAlignment="Center" />

  22. Binding enhancements • Demo

  23. List virtualization • Attached property for ItemsControl elements Pixel or Item VirtualizingPanel.ScrollUnit="Pixel" VirtualizingPanel.CacheLength="2" VirtualizingPanel.CacheLengthUnit="Page" Pixel, Item, or Page

  24. Live data shaping with DataGrid • Sorted collection changes intelligently applied to DataGrid • Including property changes for elements in the collection • Requires a CollectionView • Set sort/filter/group descriptions • Tell it which fields to watch • Tell it you want to live sort/filter/group • Keep performance in mind

  25. Virtualization and shaping • Demo

  26. Weak event references • Built-in support for the Weak Event Pattern • Use when listener doesn’t know when to unhook event handler • Helps avoid memory leaks • Generic WeakEventManager • Uses reflection • Flexible, but not as efficient • Derive your own for more runtime efficiency

  27. Collection synchronization • Before • Collections could not be modified except on creating thread • Lots of dispatcher calls • Now • Get a lock for the collection • Enable synchronization • Update it from any thread

  28. Collection synchronization • class MainViewModel • { • public ObservableCollection<Stock> Stocks { get; private set; } • private object _stocksLock= new object(); • public MainViewModel() • { • Stocks = new ObservableCollection<Stock>(); • BindingOperations.EnableCollectionSynchronization • (Stocks, _stocksLock); • } • } Provide lock object Enable Synchronization

  29. Collection synchronization • Demo

  30. Recommendations

More Related