Черный черновик порта с WP8 в UWP приложения Xbox Companion.
Случайно в моем "загашнике" откопался некий XBoxCompanion.xap где-то 2017 года. Версия, наверное 1.2. Ну, через Jenbrains Dotpeek отреверсил это приложение в "сырые данные". Исходный код каждого модуля из оригинального решения (XBox app WP7) помещён в одноимённую подпапку внутри нового UWP-решения для поддержания порядка и модульности. В планах немного повозиться поизучать, что там Майки нашаманили почти 10 лет назад в плане "удаленного управления консолью XBox". Кто знает, возможно, обнаружу зачатки облачного гейминга, хотя это вряд ли...
- LRC (главная часть / приложение)
- LRC.Service (модуль/библиотека)
- LRC.ViewModel
- ... (и другие модули)
- Перенос исходных файлов в соответствующие подпапки.
- Адаптация кода под UWP API.
- Исправление XAML и ресурсов.
- Проверка сборки и запуск.
-
[Json] System.Json заменён на Newtonsoft.Json в Xbox.Live.Phone.Utils/Xbox/Live/Phone/Utils/JsonHelper.cs
-
[UWP порт Utils]
-
FindChildrenUtil.cs System.Windows.* → Windows.UI.Xaml.*.
-
ImageUtil.cs System.Windows.* → Windows.UI.Xaml.*.
-
LiveMobilePerf.cs удалён Microsoft.Phone.Logging; добавлен LogFlags; лог в Debug.WriteLine.
-
GuideWrapper.cs удалён XNA (Microsoft.Xna.Framework.*), добавлены заглушки Begin/EndShowKeyboardInput, Begin/EndShowMessageBox, свой MessageBoxIcon.
-
ErrorManager.cs, OkCancelDialog.cs переход на GuideWrapper.MessageBoxIcon.
-
ThreadManager.cs удалён Deployment/Dispatcher, теперь SynchronizationContext + Task.Run; Environment.CurrentManagedThreadId.
-
RetryCaller.cs Thread.Sleep → Task.Delay().Wait().
-
AsyncResultNoResult.cs Close() → Dispose() для WaitHandle.
-
Etc/Crc32.cs приведение (IntPtr) → (int) для индексации.
-
Resources/Resource.cs typeof(Resource).GetTypeInfo().Assembly + using System.Reflection.
-
Cache/CacheManager.cs Thread/ManualResetEvent → Task+CancellationTokenSource+SemaphoreSlim; сравнение строк через StringComparison.OrdinalIgnoreCase.
-
Cache/FileHelper.cs полное удаление IsolatedStorage*; порт на System.IO + Windows.Storage.ApplicationData.Current.LocalFolder:
-
Доступ к настройкам: ApplicationData.Current.LocalSettings.
-
Функции чтения/записи файлов: через FileStream в локальной папке.
- Основная точка входа будет реализована через стандартные UWP-файлы App.xaml и MainPage.xaml.
- Все устаревшие или несовместимые с UWP API будут поэтапно заменяться.
- Кажется, к 2025 году вообще доступ к XBox Cloud Gaming вообще из всех "нативных" приложений (Android, iOS) накрылся медным тазом, а "новые" приложения стали лишь "оболочками" над webview? Поэтому мало смысла "тыкать крокодила палочкой" и лепить UWP для старых добрых смартфонов Nokia Lumia... но шарманка определенно интересная! =)
- Как есть. Без поддержки с моей стороны. "Сделай исследование сам", что называется.
[M][E] 15 окт 2025

