wtorek, 8 października 2013

Windows 8.1 okiem dewelopera - podsumowanie

Dziś przedstawiam zbiorcze podsumowanie, jakie wyklarowało mi się odnośnie nowości w Windows 8.1.  Widać dużą wielonurtowość, z pewnością każdy programista Windows jakiś wycinek znajdzie dla siebie…  Ogromnym plusem jest proste WinRT API dla wielu przydatnych w życiu codziennym funkcjonalności (np. obsługa urządzeń, POS, skanera, renderowanie PDF), są bajery jak wydruki 3D.  Z nowych elementów będą zadowoleni programiści aplikacji Windows Store w XAML i HTML5, ale także programiści aplikacji desktopowych, twórcy gier w DirectX, web deweloperzy… Na nowy system powinni zwrócić więc uwagę wszyscy:  zarówno twórcy aplikacji służącej rozrywce, jak i twórcy codziennych biznesowych, korporacyjnych aplikacji, a także dostawcy urządzeń, różnych przystawek…

 

Ogólne zmiany w API

  • obsługa wejścia
  • kontrolki
  • aplikacje XAML
  • aplikacje HTML5
  • inne skalowanie szerokości
    • >=500px, opcjonalnie >=320px
    • usunięcie stanu snap
    • aplikacje Windows 8 w przedziale od 320 – 500 px system dopełnia czarnym tłem
  • inna obsługa zmiany orientacji layoutu
  • geolokalizacja
  • komunikacja zbliżeniowa
  • DirectX
  • PlayTo (integracja z Xbox, sterowanie odtwarzaniem)
  • kontrakty
  • autentykacja
  • Bing

 

Nowości w API

  • kafelki
    • nowe rodzaje kafelków (Small, Large)
    • periodyczne odświeżanie kafelków bez jednego uruchomienia aplikacji (deklaracja adresu url serwisu w manifeście w sekcji Tile Update)
    • inna schema XML dla notyfikacji (wersja 2)
  • otwieranie drugiej aplikacji z poziomu pierwszej z zadanym podziałem ekranu
    • scenariusze: kontrakty dla plików i URI
    • domyślnie pół na pół
    • deklaracja dla aplikacji źródłowej (w parametrze DesiredRemainingView)
    • deklaracja dla aplikacji docelowej (w manifeście w parametrze DesiredView)
  • bogatszy sharing
    • nowe właściwości w share source
      • Square30x30Logo
      • LogoBackgroundColor
      • ContentSourceWebLink
      • ContentSourceApplicationLink
    • nowości w share target
      • opis zachowania w panelu Share
      • programowe zamykanie panelu Share (DismissUI)
  • taski w tle
    • ciche godziny
      • wyłączenie notyfikacji tile i toast
      • wyjątki: notyfikacje VOIP toast dla aplikacji do rozmów z poziomu lock-screen, notyfikacje toast dla alarmów
    • więcej rodzajów triggerów (LocationTrigger, DeviceUseTrigger, DeviceServicingTrigger, BackgroundWorkCostChange)
    • anulowanie wykonywania po utracie prawdziwości warunku (CancelOnConditionLoss)
    • więcej narzędzi (np. komendy PowerShell)
  • pliki
    • nawigacja do następnego i poprzedniego pliku w widoku (NeighboringFilesQuery)
      • przy aktywacji aplikacji poprzez powiązanie z plikiem
      • obsługuje foldery, wyniki wyszukiwań, file queries
    • obsługa bibliotek użytkownika (StorageLibrary)
    • nowe pomocnicze API dla systemie plików
      • GetParentFolderAsync - folder zawierający plik
      • IsEqual - porównanie plików
      • TryGetItemAsync  - próba pobrania elementu (w razie niepowodzenia dostajemy null zamiast błędu)
    • obsługa plików ze SkyDrive tak jak lokalnych
      • nie zawsze pliki są fizycznie pobierane, czasem wystarczą placeholdery z metadanymi i obrazkiem podglądu
      • StorageFile.IsAvailable - sprawdzenie dostępności pliku
      • StorageItem.GetScaledImageAsThumbnailAsync  - obrazki z poglądem danego pliku w dowolnym rozmiarze, także dla placeholderów bez pobierania całych plików
  • mowa
    • text-to-speech
      • obsługa SSML (modyfikacja głosu - wymowa, tempo itp)
    • rozpoznawanie
      • tylko en-us
      • procesor, kontrolka UI
  • obsługa urządzeń Bluetooth
    • standard Rfcomm
      • komunikacja przez sockety
      • obsługa urządzeń SPP (Serial Port Profile)
      • klient i serwer SDP (Service Discovery Protocol)
    • urządzenia Bluetooth smart (np. medyczne)
      • klient GATT
  • obsługa urządzeń HID (m.in kontrolery, LED, wyświetlacze alfanumeryczne, gry, symulatory)
    • wartości logiczne i numeryczne
  • obsługa niestandardowych urządzeń USB
    • sterownik WinUSB
  • obsługa niestandardowych urządzeń Wi-Fi Direct
  • urządzenia
    • nowe scenariusze
      • włączanie do podłączeniu
      • synchronizacja danych w tle
      • kontrola użytkownika nad użyciem urządzenia i przekazaniem mu danych
    • uprawnienia w manifeście
  • obsługa urządzeń POS
    • skanery kodów kreskowych i kart magnetycznych (karty pojazdu, bankowe, karta sprzedawcy)
    • łączność: USB HID
    • dodatkowe urządzenia dostępne przez API dla urządzeń np. drukarka paragonów Bluetooth
  • skanowanie
    • kompatybilność ze sterownikami WIA 2.0
  • renderowanie dokumentów PDF (w postaci obrazków png, obsługa zabezpieczenia hasłem, opcje renderowania)
  • wydruki 3D
  • geofencing (reagowanie na zmiany położenia geograficznego)
  • aplikacja alarm (zezwolenie przez AlarmApplicationManager)
  • nowe rodzaje aplikacji
    • lock screen image
    • lock screen call (np. Skype)
  • media
    • poprawiona jakość, wydajność (GPU) i zużycie baterii
    • adaptatywny bitrate (MPEG-DASH, W3C Media Source Extensions)
    • kodowane strumieniowanie  (W3C Encrypted Media Extensions)
    • poprawione playlisty online i wstawianie reklam w stanie connected standby
    • niestandardowe formaty pliku/strumienia bez natywnego kodu
      • MediaStreamSource (pobieranie próbek audio i parsowanie formatu pliku)
    • strumieniowanie na Xbox One oraz zdalna kontrola
      • aplikacja Xbox One: protokół ms-playtoapp-myapp, kontrakt
      • aplikacja 8.1: preferowanie strumieniowania z Xbox One (video: x-ms-playToPreferredUri)
    • zarządzanie efektami audio
    • edycja metadanych plików multimedialnych w lokalnych bibliotekach
    • poprawione przechwytywanie
    • obsługa sekwencji zdjęć
    • nowe rodzaje ustawień dla kamery (typ sceny, focus, region, ISO, Flash, lampa, podpowiedź optymalizacyjna)
    • W3C Media Source Extensions
    • W3C Encrypted Media Extensions
    • adaptatywny bitrate (MPEG-DASH, DASH.JS)
    • Smooth Streaming Client SDK for Windows 8.1
    • Microsoft PlayReady Client SDK for Windows 8.1
    • Player Framework for Windows 8 and WP8
      • MediaPlayer
        • poziom sygnału
        • napisy i ścieżki audio w różnych językach
        • reklamy
          • tekstowe, bannery/przyciski, video overlays
          • VAST (Video Ad Serving Template) 3.0 / 2.0
          • pliki XML lub linki do nich
  • bezwarunkowe pobieranie dużych plików (BackgroundDownloader.RequestUnconstrainedDownloadsAsync)
  • integracja z kontaktami
    • karta kontaktu (Contact, CantactPhone, ContactEmail, ContactAddress…, ContactManager.showContactCard / ContactManager.showDelayLoadedContactCard)
    • po deklaracji odpowiednich kontraktów w manifeście również nasze aplikacje mogą być wywoływane z akcji karty (użytkownik może wybrać aplikację do danej czynności)
  • integracja z kalendarzem
    • podgląd kalendarza (AppointmentManager.showTimeFrameAsync)
    • dodanie zdarzenia (Appointment, AppointmentManager.showAppointmentAsync)
    • modyfikacja zdarzenia (AppointmentManager.showReplaceAppointmentAsync)
    • usunięcie zdarzenia (AppointmentManager.showRemoveAppointmentAsync)
  • IE11
    • wykrywanie
      • nowy user-agent:  Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0)
      • zablokowane właściwości
        • @cc_on
        • VBScript
      • usunięte API
        • attachEvent
        • createStyleSheet
      • ukryte API
        • document.all
        • ActiveXObject
    • media
      • MSE (Media Source Extension dla adaptywnego streamingu)
      • EME (Encrypted Media Extensions dla zabezpieczeń DRM)
      • Fullscreen API
      • SDP-US (w pełni funkcjonalny system napisów)
    • usprawnienia
      • bezdyskowy cache XHR
      • audio offload w adaptatywnym streamingu
    • Web Crypto API
    • WebGL
      • domyślnie włączony
      • także w aplikacjach Windows Store
      • bezpieczeństwo
      • DirectX 11
    • nowe API w Canvas 2D
      • efekty pikselizacji na obrazkach
      • przerywane linie
      • własne reguły wypełniania figur
    • interakcja z użytkownikiem
      • Screen Orientation API: blokada orientacji ekranu na urządzeniu
      • Device Orientation API: informacja o przestrzennym położeniu urządzenia
      • Pointer Events: uaktualniona implementacja
      • sprzętowa akceleracja dla scrollowania i zoomowania dla myszy, klawiatury, skryptu
      • naprawianie elementów także przy zoomowaniu
    • rozszerzenia CSS
      • flexbox - implementacja bez prefiksu
      • border-image - obrazek wypełniający obramowanie
      • horizontal-vertical - układanie tekstu wertykalnie
      • position: –ms-device-fixed
    • rozszerzenia dla edycji
      • kopiuj-i-wklej dla obrazków z aplikacji firm trzecich
      • operacja cofnij
    • nowe narzędzia F12
    • żywe kafelki dla przypiętych stron
  • nowy klient http - nowości
    • współdzielony cache, cookies, credentials (C#)
      • <WebView>, <Image>, <Media>, …
      • Windows.Web.Http
    • silnie typowane nagłówki (C++, JavaScript)
      • content-length, last-modified (odczyt)
      • HostName, niestandardowe (ustawianie)
    • dostęp do cookies i współdzielonych cookies (C#, JavaScript)
      • HttpBaseProtocolFilter, HttpCookie
    • kontrola nad cachingiem i współdzielonym cache (C++, C#, JavaScript)
      • HttpBaseProtocolFilter
    • własne moduły w przetwarzaniu (C++, JavaScipt)
      • IHttpFilters (autentykacja np. dla OAuth, własne cache, logowanie, restrykcje na sieć, ponawianie prób, testowanie) w postaci komponentów WinRT
    • HttpProgress
    • błędy/certyfikaty SSL/TLS
    • wysyłanie i pobieranie strumieni
    • dodatkowe ustawienia w HttpBaseProtocolFilter
    • własne klasy IHttpContent i IHttpFilter
    • konfiguracja filtra OAuth 2.0
    • dane uwierzytelniające server/proxy
    • certyfikat klienta
  • pobieranie zasobów z podanych adresów uri przed uruchomieniem aplikacji
    • specyfikacja adresów
      • lokalna specyfikacja adresów (ContentPrefetcher.ContentUris)
      • dynamiczna lista adresów jako serwis (ContentPrefetcher.IndirectContentUri)
    • wykorzystuje WinJS.XHR oraz nowego klienta http
    • wsparcie dla autentykacji przez cookie
    • nie działa w sieciach płatnych
    • można ręcznie odpalić prefetch taska
  • globalizacja
    • Windows.Globalization.Calendar
      • GetTimeZone()
      • ChangeTimeZone()
      • TimeZoneAsString()
      • IsDaylightSavingTime()
    • Windows.Globalization.DateTimeFormatting
      • Format(DateTime.Now, “America/Guatemala”)
    • po dodaniu nowego języka do aplikacji nie trzeba podbijać wersji
  • Bing API
    • mapa 2D (nowe API: geocoding & routing)
    • mapa 3D
    • Entity API (świetna wizualizacja)
    • kontrolka do OCR (8 języków, .NET/C++
    • translator (42 języki)
  • Direct3D 11.2
    • Tiled Resources
    • Scalers & Overlays
    • HLSL Shader linker
  • przetwarzanie własnych gestów w innym wątku (CoreIndependentInputSource)
  • pewne zmiany w obsłudze wątków przez WinRT
  • obsługa wielu ekranów (ProjectionManager API)
  • bezpieczeństwo
    • smart cards
      • co nowego?
        • nowe API do zarządzania wirtualną smart card
        • nowe API do zarządzania fizyczną smart card
        • polityki PIN dla wirtualnej smart card
        • nowe sposoby na rejestrowanie certyfikatów
        • nowe API dla stosowania certyfikatów w operacjach kryptograficznych
      • API
        • tworzenie wirtualnej karty (SmartCardPinPolicy, SmartCardProvisioning.RequestVirtualSmartCardCreationAsync)
        • provisioning (SmartCardProvisioning: FromSmartCardAsync, GetChallengeContextAsync; SmartCardChallengeContext: ProvisionAsync, ChangeAdministrativeKeyAsync) 
        • rejestrowanie certyfikatu (CertificateRequestProperties; CertificateEnrollmentManager: CreateRequestAsync, InstallCertificateAsync)
        • lokalizowanie karty (SmartCardReader:GetDeviceSelector, FromIdAsync, FindAllCardsAsync; DeviceInformation.FindAllAsync; SmartCardProvisioning.GetIdAsync )
        • zmiana PIN (SmartCardProvisioning.RequestPinChangeAsync)
        • reset PIN/odblokowanie karty (SmartCardProvisioning.RequestPinResetAsync)
        • usunięcie karty wirtualnej (SmartCardProvisioning.RequestVirtualSmartCardDeletionAsync)
    • uwierzytelnianie przez odcisk palca
      • logowanie na urządzenie, zakup aplikacji Windows Store, in-app purchases, muzyka, wideo
      • WinRT API (UserConsentVerifier) i Win32
    • zarządzanie kontami - UI dla uwierzytelniania dla znanych dostawców (informacje i akcje dla konta w panelu Settings: AccountsSettingsPane, CredentialCommand, WebAccountCommand, WebAccountAction, WebAccountProvider, WebAccountProviderCommand, WebAccountState, SupportedWebAccountActions, WebAccount)
    • Windows Azure Authentication Library (Windows Azure AD, OAuth2, opakowanie WebAuthenticationBroker)
    • ochrona plików (dostęp dla jednego użytkownika na urządzeniu)
  • obsługa nieprzechwyconych błędów
    • App.Current.UnhandledException (XAML)
    • CoreApplication.UnhandledErrorDetected (C++)
  • logowanie błędów (LoggingChannel, LoggingSession, FileLoggingSession)
  • store
    • consumable in-app purchases
    • dodatkowe rodzaje zawartości in-app
    • licencjonowanie (lepsza synchronizacja, zwiększony limit na PC)

 

API dla aplikacji desktopowych

  • skalowanie
    • skalowanie 200% desktopu
    • optymalizacja skalowania desktopa  per DPI monitora
    • API dla aplikacji świadomych DPI monitora (D2D, także WPF, ale już nie Windows Forms)
  • DirectComposition (płynne animacje, transformacje i efekty; używane na ekranie startowym, animacja i skalowanie kontrolek ActiveX )
  • DirectManipulation (przesuwanie i zoomowanie; używane na ekranie startowym)
  • wejście
    • tochpad o wysokiej precyzji (pozwala na wykonywanie gestów)
    • gesty dla przewijania i zoomowania
    • wsparcie dla Ink (pisanie, rozpoznawanie pisma w osobnym wątku)
    • przechwytywanie nieskopoziomowego wejścia
  • API znane z aplikacji Windows Store
    • kafelki i notyfikacje toast
    • obsługa wejścia
    • geolokalizacja
    • obsługa sensorów
    • komunikacja zbliżeniowa
    • nagrywanie
    • PlayTo
    • drukowanie
    • POS
    • skanowanie
    • SMS
    • http
    • strumienie
    • syndykacja
    • obsługa sieci
    • XML i JSON
    • globalizacja
    • kryptografia
    • autentykacja

 

Inne wybrane nowości w systemie

  • uruchamienie do 4 aplikacji na jednym ekranie
  • warunkowe pobieranie paczek z zasobami aplikacji
    • eliminacja zduplikowanych plików pomiędzy różnymi aplikacjami (np. biblioteki, unikać rekompilacji znanych)
    • pobieranie tylko naprawdę potrzebnych zasobów dla danego urządzenia (DPI: 1.0x, 1.4x, 1.8x; wersja DirectX: 9, 10, 11) i dla danego użytkownika (język)
    • przy zmianie parametrów urządzenia lub wymagań klienta pobieranie potrzebnych pakietów jako aktualizacja aplikacji
  • zwiększone pakiety aplikacji do 8GB
  • Assigned Access (tryb pracy z dostępem tylko do jednej aplikacji, dobry np. dla terminali płatniczych)
  • zakładka Devices
    • dodawanie urządzenia z zakładki
    • pliki Flash audio i wideo działają z przeglądarki
    • audio z wideo może być strumieniowane tylko do odbiorców audio
  • wsparcie dla precyzyjnego touchpada
  • nowa klasa sterowników dla urządzeń Bluetooth i USB
  • przekazywanie plalisty z przeglądarki do aplikacji Music
  • czytanie aplikacji Windows Store systemową aplikacją Narrator
  • wydajność
    • Windows Performance Toolkit
      • Windows Performance Recorder
      • Windows Performance Analyzer
  • bezpieczeństwo
    • udoskonalony Web Authentication Broker (współdzielenie z IE, przenoszenie danych uwierzytelniających pomiędzy różnymi urządzeniami)
    • zabezpieczenie aplikacji przed nieuprawnioną modyfikacją
  • store
    • zarządzanie katalogiem in-app
    • automatyczne aktualizacje
    • Alipay, MS gift cards
    • udoskonalona analiza
  • Windows ACK 3.0
    • szybsze skanowanie aplikacji
    • zdalny deployment
    • wybieranie testów

 

Nowości w XAML (Windows Store)

  • kontrolki
    • DatePicker i TimePicker
    • Hyperlink
    • Flyout i MenuFlyout
    • CommandBar (uproszczona implementacja paska aplikacji)
    • uproszczona obsługa symboli w AppBarButton (napis, SymbolIcon, FontIcon, BitmapIcon, PathIcon)
    • nowe API w panelu dla przyrostowego ładowania
    • wirtualizacja
      • ItemsStackPanel i ItemsWrapGrid (domyślnie)
      • ItemsPanel (automatycznie we wszystkich aplikacjach)
    • optymalizacja list (ListView i GridView)
      • szybsze ładowanie
        • tylko potrzebne elementy)
        • inne szablony (zamiast masy elementów jeden GridViewItemPresenter)
      • płynniejsze przewijanie
        • poprawa percepcji - placeholdery (ShowsScrollingPlaceholders=”true”, wszystkie aplikacje 8.1 domyślnie)
        • zdarzenia pozwalające kontrolować fazy rysowania (zdarzenie ContainerContentChanging)
      • dynamiczne budowanie drzewa wizualnego w elemencie (GoToElementStateCore)
    • szybsze przewijanie grupowe
    • rozszerzenia dla animacji we FlipView
    • lepszy WebView
      • lepsze renderowanie i integracja z XAML
      • overlay
      • obsługa własnych protokołów do obróbki danych
      • usprawnienia (kontrola nawigacji, cykl życia zdarzeń, renderowanie lokalnej zawartości z uri, większe bezpieczeństwo - deklaracja uri zawartości w manifeście)
      • integracja ze SmartScreen (blokada phishingu)
    • udoskonalenia w MediaElement (kontrolki sterujące, lepsza wydajność dla interakcji z XAML, tryb pełnoekranowy, video zoom, obsługa własnych efektów)
    • SettingsFlyout
    • SearchBox
    • Hub i HubSection (ładowanie na żądanie)
    • udoskonalenia w integracji z DirectX
      • DirectComposition
      • SurfaceImageSource i VirtualSurfaceImageSource
        • szybsze rysowanie Direct2D
        • wielowątkowe rysowanie
      • SwapChainPanel - zalety w porównaniu do SwapChainBackgroundPanel
        • usunięcie ograniczeń z-order
        • układa się jak każdy element XAML
        • każdy rozmiar swap chain dozwolony
        • można używać więcej niż jeden równocześnie
        • notyfikacja o zmianie rozmiaru do przerysowania
      • niezależne wejście w SwapChain[Background]Panel: przetwarzanie w wątku w tle dotyku, pióra, myszy
    • większa wydajność w grafice
  • data binding
    • dostęp do Binding Expression
    • TargetNullValue
    • FallbackValue
    • UpdateSourceTrigger
    • DependencyObjectCollection (Behaviors SDK)
    • szybszy
  • animacje
    • standardowe reagują na ustawienia w systemie (on/off), przy niestandardowych można skorzystać z API
  • nawigacja
    • kontrolowanie stosu back/forward
  • obsługa skórek
    • wymuszenie użycia danej skórki na elemencie  UI (RequestedTheme)
    • ThemeResource (podobny do dynamicznych zasobów WPF)
  • tekst
    • API do wyrównywania
    • TextBox:  PlaceholderText, zdarzenie wklejenia
    • nagłówek dla kontrolek tekstowych (i innych)
    • SelectionHighlightColor
    • TextReadingOrder
    • kolorowe czcionki
    • CharacterEllipsis
  • obsługa wejścia i manipulacje
    • programowe przewinięcie (ChangeView)
    • przewidywane przewinięcie (ViewChanging)
    • ScrollViewer: API do blokowania przewijanych obszarów
    • programowe przemieszczanie fucusa
  • renderowanie bitmap (RenderTargetBitmap)
  • optymalizacja przy starcie aplikacji
  • mniejsze zużycie pamięci
  • XAML Binary Format (XBF)
  • obsługa wielu monitorów o różnym DPI
  • obsługa wysokiego kontrastu (nie trzeba restartować aplikacji)
  • udogodnienia dla dostępności
  • nowy HttpClient (Windows.Web.Http)
  • dostępność
    • automatyczne odczytywanie tekstu z tekstowych kontrolek (TextBlock, RichTextBlock, RichTextBlockOverflow)
    • obsługa wysokiego kontrastu bez restartu aplikacji
    • live regions (obszary UI podlegające dynamicznym zmianom)
      • AutomationProperties.LiveSetting  (Assertive lub Polite)
      • peer.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged)
    • UI Accessability Checker
  • .NET dla Windows Store
    • konwersja System.IO.Stream na IRandomAccessStream
    • lepsze wsparcie dla wyjątków dla WinRT API (oprócz HRESULT teraz także dodatkowe informacje we właściwościach Message i StackTrace wyjątku)
    • rozszerzenia typów WinRT -  nullowalne typy w strukturach
    • wsparcie dla edycji przy debugowaniu dla 64-bit
    • podgląd przy debugowaniu zwracanej zarządzanej wartości przez metodę
    • debugowanie asynchroniczne

 

Nowości w HTML5 / WinJS 2.0

  • kontrolki
    • udoskonalony AppBar
      • skalowanie do rozmiaru okna
      • nawigacja za pomocą klawiatury
      • niestandardowa zawartość
    • udoskonalony ListView
      • natywna wydajność
      • nowe wbudowane layout-y (wertykalny GridLayout,  pogrupowany ListLayout, CellspaningLayout), łatwe tworzenie nowych (IListLayout2)
      • udoskonalona obsługa klawiatury
      • drag & drop (duża wydajność, realizowany w innym wątku)
      • inne style CSS
    • kontrolka WebView (x-ms-webview) - zalety
      • skalowanie dwoma palcami
      • automatyczne wykrywanie numerów telefonów na stronie
      • obsługa nawigacji do innej strony
      • interakcja pod overlay
      • obracanie
      • lokalna nawigacja (ms-appdata, ms-local-stream)
      • obsługa niestandardowych typów plików
    • Hub i HubSection
    • SearchBox
    • NavBar, NavBarCommand
    • BackButton
  • infrastruktura
    • Scheduler: kolejkowanie asynchronicznych operacji (współgranie aplikacji, biblioteki  i systemu operacyjnego)
    • zwalnianie obiektów z pamięci (przy nawigacji i przewijaniu)
    • debugowanie asynchroniczne (dostępne także dla .NET)
  • klocki budulcowe
    • jednorazowa kompilacja szablonów
    • Binding template (znacząca poprawa wydajności, kompilacja do funkcji renderujących, pełne wsparcie dla debugowania, zastosowanie dispose)
    • tuning: asynchroniczne wielokrokowe renderowanie 
    • Repeater
    • ItemContainer
  • dostępność
    • live regions
      • atrybut aria-live
      • zdarzenie o zmianie wyrzucane przez platformę

 

Ewolucja Modern UI

  • większa dowolność kompozycji (nie zawsze wszystko wg. siatki),
  • większe zróżnicowanie kolorów (np. odcień czerwieni zależny od daty w aplikacji Reading List),
  • animacje na głównych elementach (np. przy włączaniu alarmu),
  • nowe komponenty: hub, pasek nawigacji, in-app search,
  • pasek aplikacji: skalowanie, bardziej dowolna zawartość
  • komendy na elementach listy (gdy aplikacja zajmuje małą część ekranu i pasek aplikacji się nie mieści)
  • zaznaczanie komórek, także o różnych rozmiarach
  • drag & drop
  • ułatwienia w edycji tekstu

 

Nowości w Visual Studio 2013

  • XAML
    • szybsze domyślne szablony
    • statyczne zasoby
      • podpowiedzi
      • Go to definition (także z zasobu XAML do klasy w C#)
    • edytor
      • Go to definition dla standardowego taga do przeglądarki klas
      • zamykanie elementów
      • aktualizacja taga zamykającego przy edycji otwierającego
      • poprawianie literówek
      • grupowanie w kontener zaznaczonego XAML
      • snippety
      • podpowiedzi właściwości z data context przy edycji bindingu (także Go to definition z właściwości w bindingu do definicji w C#)
      • lepsza wydajność i niezawodność
    • diagnostyka
      • responsywność UI
      • zrzuty pamięci
    • Coded UI Test Project (Windows Store apps)
  • HTML5
    • udoskonalenia w edytorze JavaScript
      • lista funkcji w pliku
      • const z ECMA Script 6
      • regiony
      • podświetlanie po identyfikatorze
    • udokoskonalenia w edytorze CSS
      • Intellisense z objaśnieniem składni
      • Less
    • nowy edytor HTML5
      • podpowiedzi dla znaków specjalnych
      • podpowiedzi dla wartości data-*
      • podgląd obrazka w HTML
      • smart tags dla statycznych elementów
      • generowanie sekwencji div-ów
      • łatwiejsza zmiana kolejności linii
      • formatowanie (CTRL+F lub komendy głosowe)
    • udoskonalone debugowanie
      • JavaScript Attach (aplikacja Windows Store oraz w przeglądarce)
      • poprawiony DOM Explorer
        • IntelliSense
        • Drag & drop
        • Edit as HTML
      • poprawiona konsola JavaScript
        • console.group
        • console.time
        • filter/clear
        • IntelliSense
        • Auto complete
      • JavaScript/C++ Interop (Script with Native)
  • domyślne obrazki dla różnych DPI w projektach
  • szablon Hub App
  • debugowanie asynchroniczne
  • więcej rozdzielczości w emulatorze
  • diagnostyka - profiler zużywania energii
    • procesor
    • sieć
    • wyświetlanie
  • integracja z Azure Mobile Services (notyfikacje push)
  • grafika
    • większa wydajność i niezawodność
    • debugowanie DirectX
    • zdalne debugowanie dla ARM
    • przechwytywanie/odtwarzanie na różnym sprzęcie
  • integracja z Microsoft Ads SDK (AdControl)

 

Nowości w Blend

  • XAML
    • behaviory (Behaviors SDK)
      • zachowania (np. IncrementalUpdateBehavior)
      • akcje
    • bardziej intuicyjne ustawianie danych dla designu
    • tworzenie paska aplikacji przez przeciągnięcie CommandBar
    • wsparcie dla różnych rodzajów przycisków w pasku komend (symbol, glyph, ikona, obrazek, ścieżka)
    • edycja szablonu w otaczającym kontekście
  • HTML5
    • znajdowanie elementów w drzewie przy użyciu selektorów CSS
    • ustawienie właściwości CSS w tym samym polu, co jej wyszukiwanie
    • edytor data bindingu
    • edytor animacji CSS
    • wstawianie własnych czcionek
    • border radius
    • zachowania JavaScript
  • precyzyjne ustawienie linii dla zadanych liczb pikseli
    • linijki w kierunku poziomowym i pionowym
    • wsparcie dla snapowania
    • ładowanie i zapisywanie wytycznych do layoutu (pliki *.guides)
    • możliwość wskazywania odległości linii w różnych kierunkach
    • możliwość porównania przy różnych rozdzielczościach oraz wielkościach ekranu aplikacji
  • szablon Hub app
  • większa wydajność i niezawodność