# HiVision Invitation Seminar [](20241017.md) [](20241017.zh-CN.md) [](20241017.ko.md) A 4-hour and 30-minute seminar held at HiVision Co., Ltd. on Thursday, October 17, 2024 (13:30~18:00). The seminar deeply covered WPF project architecture and cross-platform expansion strategies to MacOS and Linux environments using UnoPlatform. <img src="https://github.com/user-attachments/assets/4d5cdcd1-a5cb-4731-b554-2dd4d6ae5843" width="49%"/> <img src="https://github.com/user-attachments/assets/51906276-49e5-43ae-bdb1-62a9812a1968" width="49%"/> ## Speaker Introduction - Speakers: Jaewoong Lee [Microsoft MVP](https://mvp.microsoft.com/en-US/MVP/profile/5ca6ccaf-1cb4-ed11-b596-000d3a1ad36b), Yang Gu [Microsoft MVP](https://mvp.microsoft.com/en-US/MVP/profile/ca186d6d-b3c7-428b-aab1-9479a4145041) - GitHub: https://github.com/jamesnet214, https://github.com/vickyqu115 [View Complete List of Enterprise Invitation Seminars](https://github.com/jamesnetgroup/jamesnet-enterprise-seminar) ## Table of Contents - [x] XAML-Based Cross-Platform Transition Strategy - [x] Frameworks, Libraries - [x] MVVM - [x] Resources - [x] CustomControl - [x] Template - [x] ContentPresenter - [x] ItemsControl Design - [x] TreeViewItem Recursive Hierarchy Design - [x] Project Decentralization Design - [x] Framework Version Selection Strategy - [x] Bootstrapper Design - [x] View/Control Modularization Strategy - [x] View Injection Design - [x] MenuManager Design Strategy - [x] Common Library Design Strategy - [x] Custom Dependency Injection Design Strategy - [x] Reference Material Utilization and Learning Research Strategy - [x] Strategy for Transitioning from WPF Base to UnoPlatform ## Detailed Part Items Each part covers the following detailed items. You can see at a glance what content was covered. #### XAML-Based (Platforms) - WPF - ~Silverlight~ - Xamarin (C) - UWP - WinUI3 - MAUI (C) - UnoPlatform (C) - AvaloniaUI (C) - OpenSilver (C) #### Frameworks, Libraries - Prism.Unity - CommunityToolkit.Mvvm #### MVVM - DataContext - Binding #### Resources - Application - Resources - ResourceDictionary - StaticResource - DynamicResource ## CustomControl - Control - ContentControl - ItemsControl ## Template - ControlTemplate - DataTemplate #### Button - Content - ContentPresenter #### ListBox/ListBoxItem - GetContainerForItemOverride - ItemsPresenter #### TreeView/TreeViewItem - Recursive ItemsSource - Event Method #### Project Design - Framework/Core - Essential Libraries - Project Dependency System - Application #### Framework - .NET Standard 2.0 - Common Library Strategy - Dependency Injection - MVVM - View Injection - etc... #### Bootstrapper Design - Dependency Injection Registration - Singleton/Instance - View Injection - ViewModel Relationship Registration ###### Main/Forms - Project Decentralization Strategy - Singleton Registration - Project Folder Structure - Consideration for Extensibility - Immutable Structure Application - WPFContent #### Layer (Area for View Injection) - ContentControl - Singleton Management - View Injection (Bootstrapper) - View Injection (Reservation, Mapping) #### Menu - Menu Implementation Control Method - Non-hierarchical Modularization - Project Decentralization - Efficient Logic Distribution and Management - View Injection (Immediate, Show) #### MenuManager - Singleton Management - Centralized Management - Dependency Injection and Callback Utilization #### Support - Role - Extension-Strong Folder Structure - Interface - Project Dependencies #### Constructor-based Dependency Injection - Reflection - ViewModel - View - Singleton/Instance ## Project Decentralization - Logical Decentralization - Loose UI Layer Formation - Architecture Design Based on Purpose and Need Rather Than Fixed Patterns ## Popup - Layer Overlap Utilization - Flexible Configuration Ignoring UI Hierarchy ## Settings Window - New Pattern, Flexible Response - Project Decentralization That Changes According to Scale and Size ## Reference Materials Below are the reference material items related to this seminar. #### Main Reference Repositories - [League of Legends WPF](https://github.com/jamesnetgroup/leagueoflegends-wpf) - [League of Legends WinUI 3](https://github.com/jamesnetgroup/leagueoflegends-winui3) - [League of Legends UnoPlatform](https://github.com/jamesnetgroup/leagueoflegends-uno) - [DynamicResource Theme](https://github.com/JamesnetGroup/dynamic-theme) #### Channel References - [YouTube: Jamesnet](https://youtube.com/@jamesnet214) - [Website: Jamesnet](https://jamesnet.dev) - [Bilibili: 小李趣味多](https://space.bilibili.com/688707261?spm_id_from=333.1007.0.0) #### Book Introduction: WPF INSIDE OUT - By Jaewoong Lee, [Yang Gu MVP](https://mvp.microsoft.com/en-US/MVP/profile/ca186d6d-b3c7-428b-aab1-9479a4145041) - [E-book Platform](https:/jamesnet.dev/store) - [YouTube Practice Video](https://www.youtube.com/watch?v=2PuvhTEcWAQ&feature=youtu.be) #### WPF Tutorial (CustomControl) - [Theme Switch](https://jamesnet.dev/article/121/Korean) - [Riot PlayButton](https://jamesnet.dev/article/123/Korean) - [Navigation Bar](https://jamesnet.dev/article/124/Korean) - [Riot Slider](https://jamesnet.dev/article/126/Korean) - [Smart Date](https://jamesnet.dev/article/127/Korean) - [Cupertino TreeView](https://jamesnet.dev/article/160/Korean) #### WPF Education 48 Hours (Full Video) - [KakaoTalk Design (1/4)](https://jamesnet.dev/article/54/Korean) - [KakaoTalk Design (2/4)](https://jamesnet.dev/article/85/Korean) - [KakaoTalk Design (3/4)](https://jamesnet.dev/article/88/Korean) - [KakaoTalk Design (4/4)](https://jamesnet.dev/article/86/Korean) <br/> - [CustomControl Architecture (1/4)](https://jamesnet.dev/article/87/Korean) - [CustomControl Architecture (2/4)](https://jamesnet.dev/article/89/Korean) - [CustomControl Architecture (3/4)](https://jamesnet.dev/article/94/Korean) - [CustomControl Architecture (4/4)](https://jamesnet.dev/article/91/Korean) <br/> - [WPF INSIDE OUT Book (1/4)](https://jamesnet.dev/article/92/Korean) - [WPF INSIDE OUT Book (2/4)](https://jamesnet.dev/article/90/Korean) - [WPF INSIDE OUT Book (3/4)](https://jamesnet.dev/article/93/Korean) - [WPF INSIDE OUT Book (4/4)](https://jamesnet.dev/article/108/Korean) #### Past Seminar Reference Materials - [October Regular WPF Seminar (Microsoft)](https://jamesnet.dev/article/34) - [Past Seminar List](https://jamesnet.dev/article/menu/6/order/recent)