{"id":26371473,"url":"https://github.com/jamesnetgroup/jamesnet-seminar","last_synced_at":"2025-03-17T00:39:15.912Z","repository":{"id":65953003,"uuid":"600174813","full_name":"JamesnetGroup/jamesnet-seminar","owner":"JamesnetGroup","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-15T02:50:18.000Z","size":443,"stargazers_count":38,"open_issues_count":0,"forks_count":8,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-09T20:34:05.523Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JamesnetGroup.png","metadata":{"files":{"readme":"README.ko.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["jamesnet214"]}},"created_at":"2023-02-10T18:51:41.000Z","updated_at":"2024-11-01T06:48:35.000Z","dependencies_parsed_at":"2023-09-26T00:19:30.875Z","dependency_job_id":"32fc4450-a8be-4ec3-bd85-62389d499732","html_url":"https://github.com/JamesnetGroup/jamesnet-seminar","commit_stats":null,"previous_names":["jamesnetgroup/jamesnet-seminar"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesnetGroup%2Fjamesnet-seminar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesnetGroup%2Fjamesnet-seminar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesnetGroup%2Fjamesnet-seminar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesnetGroup%2Fjamesnet-seminar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamesnetGroup","download_url":"https://codeload.github.com/JamesnetGroup/jamesnet-seminar/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243955737,"owners_count":20374372,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-17T00:39:15.345Z","updated_at":"2025-03-17T00:39:15.901Z","avatar_url":"https://github.com/JamesnetGroup.png","language":"C#","funding_links":["https://github.com/sponsors/jamesnet214"],"categories":[],"sub_categories":[],"readme":"# Jamesnet 세미나 시리즈 [![English](https://img.shields.io/badge/docs-English-blue.svg)](README.md) [![中文](https://img.shields.io/badge/docs-中文-red.svg)](README.zh-CN.md) [![한국어](https://img.shields.io/badge/docs-한국어-green.svg)](README.ko.md)\n\n[![WPF](https://img.shields.io/badge/WPF--.NET-blueviolet)](https://github.com/dotnet/wpf)\n[![Blazor](https://img.shields.io/badge/Blazor--.NET-purple)](https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor)\n[![XAML](https://img.shields.io/badge/XAML-markup-blue)](https://docs.microsoft.com/en-us/dotnet/desktop/wpf/xaml/)\n[![Cross-Platform](https://img.shields.io/badge/Cross--Platform-Development-orange)](https://dotnet.microsoft.com/learn/dotnet/what-is-dotnet)\n\n[![Stars](https://img.shields.io/github/stars/jamesnet214/wpf.svg)](https://github.com/jamesnet214/wpf/stargazers)\n[![Forks](https://img.shields.io/github/forks/jamesnet214/wpf.svg)](https://github.com/jamesnet214/wpf/network/members)\n[![Issues](https://img.shields.io/github/issues/jamesnet214/wpf.svg)](https://github.com/jamesnet214/wpf/issues)\n\n안녕하세요! Jamesnet.dev를 운영하는 이재웅, 구양입니다.\n이 레포지토리는 2023년 2월 11일부터 시작된 WPF 오프라인 세미나 시리즈의 내용을 정리한 것입니다.\n\n\n## 주최자 소개\n\n이재웅과 구양은 Jamesnet.dev 웹사이트, 유튜브, 그리고 빌리빌리 채널을 함께 운영 중인 개발자 부부입니다. [WPF Inside Out](https://bit.ly/4cWqjjQ) 책을 공동 집필하였으며, 다양한 플랫폼을 통해 WPF 관련 지식을 공유하고 있습니다. [이재웅](https://jamesnet.dev/jamesnet214)은 한국에서의 오픈소스, 오프라인 강연, 온라인 멘토링 등 다양한 활동을 인정받아 [Microsoft MVP](https://bit.ly/4cWfsXb)로 선정되어 활동 중입니다. [구양](https://jamesnet.dev/vickyqu)은 빌리빌리 채널 [小李趣味多](https://space.bilibili.com/688707261)를 통해 [WPF 튜토리얼](https://jamesnet.dev/article/118/English) 시리즈 영상을 제작하고 있으며, 현재까지 6개의 중국어 시리즈를 공개했고 [유튜브](https://youtube.com/@jamesnet214)를 통해 영어 버전과 한국어 자막으로도 제공하고 있습니다. 이러한 활동들을 통해 빌리빌리 채널은 중국에서 가장 활성화된 WPF 커뮤니티 중 하나로 인정받고 있습니다.\n\n\u003cimg src=\"https://github.com/user-attachments/assets/bcad9bff-8576-4ac6-967e-c812e82b3834\" width=\"49%\"/\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/2cb5b63b-c057-4c17-a82a-cdd8dc421048\" width=\"49%\"/\u003e\n\n## 세미나 개요\n\n- 누구나 자유롭게 신청하여 참여할 수 있는 열린 모임\n- 현재까지 총 16회 진행\n- 제5회부터 16회 까지는 오프라인 세미나와 함께 유튜브 라이브 스트리밍으로도 진행\n- 주최: [이재웅 MVP](https://jamesnet.dev/jamesnet214), [구양](https://jamesnet.dev/vickyqu)\n- 장소: 대한민국 서울 (1회 ~ 16회)\n- 다루는 기술: WPF, 크로스플랫폼, Blazor 등 다양한 닷넷 기술 (주로 WPF 고급 기술에 중점)\n- 제17회는 2024년 9월 중국 난징에서 개최 예정\n\n## 기술적 내용\n\nJamesnet 세미나 시리즈는 WPF(Windows Presentation Foundation)의 고급 기술에 중점을 두고 있습니다. 이 세미나에서는 단순한 UI 구성을 넘어서 WPF의 핵심 개념과 고급 기능을 깊이 있게 다룹니다.\n\nMVVM(Model-View-ViewModel) 패턴의 고급 구현 기법을 비롯해, 복잡한 데이터 바인딩, 커스텀 컨트롤 개발, 스타일과 템플릿의 고급 사용법 등을 상세히 다룹니다. 특히, Prism 프레임워크와 CommunityToolkit.Mvvm을 활용한 모듈화 및 종속성 주입 기법, 그리고 ReactiveUI를 이용한 반응형 프로그래밍 방식도 소개합니다.\n\n또한, WPF의 성능 최적화 기법, 멀티스레딩을 활용한 비동기 프로그래밍, 그리고 3D 그래픽스와 애니메이션 구현 방법 등 고급 주제들도 다룹니다. 더불어 XAML의 고급 문법과 마크업 확장, 리소스 관리 및 지역화 기법 등도 깊이 있게 탐구합니다.\n\n크로스플랫폼 개발에 대한 요구가 증가함에 따라, Avalonia UI와 같은 크로스플랫폼 프레임워크를 WPF와 비교 분석하고, Blazor를 이용한 웹 애플리케이션 개발 방법도 소개합니다. 이를 통해 참가자들은 데스크톱 애플리케이션부터 웹 애플리케이션까지 다양한 플랫폼에서의 .NET 개발 기술을 습득할 수 있습니다.\n\n이러한 다양하고 심도 있는 주제들을 통해, 참가자들은 실무에서 즉시 적용 가능한 고급 WPF 개발 기술을 습득하고, 더 나아가 현대적인 소프트웨어 아키텍처와 디자인 패턴에 대한 이해를 깊이 있게 할 수 있습니다.\n\n## 세미나 목록\n\n### 제1회 (2023.02.11, 13:00 ~ 17:00)\n- 주제: WPF 기초부터 고급 주제까지\n- 내용: 애플리케이션, 윈도우, StackPanel, Grid, Border, Button 등 다양한 컨트롤, 데이터 바인딩, 커스텀 컨트롤\n- [세미나 공지](https://jamesnet.dev/article/55)\n- [세미나 후기](https://jamesnet.dev/article/58)\n\n### 제2회 (2023.02.18, 13:00 ~ 17:00)\n- 주제: ListBox와 고급 WPF 기능\n- 내용: CustomControl, DependencyProperty, ICommand 등\n- [세미나 공지](https://jamesnet.dev/article/56)\n- [세미나 후기](https://jamesnet.dev/article/83)\n\n### 제3회 (2023.02.25, 13:00 ~ 17:00)\n- 주제: Prism 및 CommunityToolkit.Mvvm\n- 내용: PrismApplication, ViewModelLocationProvider, Regions\n- [세미나 공지](https://jamesnet.dev/article/57)\n- [세미나 후기](https://jamesnet.dev/article/84)\n\n### 제4회 (2023.03.04, 13:00 ~ 17:00)\n- 주제: Jamesnet 세미나 시즌 1 마무리\n- 내용: 피드백 수집 및 다음 시즌 \"카카오톡 만들기\" 프로젝트 소개\n- [세미나 공지](https://jamesnet.dev/article/59)\n- [세미나 후기](https://jamesnet.dev/article/52)\n\n### 제5회 (2023.03.18, 13:00 ~ 17:00)\n- 주제: \"카카오톡 만들기\" 프로젝트 시작\n- 내용: Kakao 프로젝트 생성, CustomControls, 로그인 명령 구현\n- [세미나 공지](https://jamesnet.dev/article/60)\n- [세미나 후기](https://jamesnet.dev/article/54)\n- [YouTube 풀영상](https://www.youtube.com/watch?v=XRKo7svG9-k)\n\n### 제6회 (2023.03.25, 13:00 ~ 17:00)\n- 주제: Border와 Windows 관리\n- 내용: UI 레이아웃 디자인, Windows 관리, Content 및 Content Template\n- [세미나 공지](https://jamesnet.dev/article/61)\n- [세미나 후기](https://jamesnet.dev/article/85)\n- [YouTube 풀영상](https://www.youtube.com/watch?v=9iBRBRN8pPU)\n\n### 제7회 (2023.04.01, 13:00 ~ 17:00)\n- 주제: KakaoTalk 주요 기능 구현\n- 내용: VirtualMenuList, FriendsBox, MVVM 구조, Command 패턴, CustomControls\n- [세미나 공지](https://jamesnet.dev/article/62)\n- [세미나 후기](https://jamesnet.dev/article/88)\n- [YouTube 풀영상](https://www.youtube.com/watch?v=8nPgWLrhdS0)\n\n### 제8회 (2023.04.08, 13:00 ~ 17:00)\n- 주제: OAUTH 로그인 인증 구현\n- 내용: Google 인증, WebView2 라이브러리, WPF와 웹 콘텐츠 상호작용\n- [세미나 공지](https://jamesnet.dev/article/63)\n- [세미나 후기](https://jamesnet.dev/article/86)\n- [YouTube 풀영상](https://www.youtube.com/watch?v=ft9Pn_Id3-8\u0026t=9903s)\n\n### 제9회 (2023.04.29, 13:00 ~ 17:00)\n- 주제: ContentControl 심층 연구\n- 내용: ContentControl 파생 컨트롤, Content 사용, ContentTemplate 적용\n- [세미나 공지](https://jamesnet.dev/article/64)\n- [세미나 후기](https://jamesnet.dev/article/87)\n- [YouTube 풀영상](https://www.youtube.com/watch?v=PZXfi3niYPw)\n\n### 제10회 (2023.05.06, 13:00 ~ 17:00)\n- 주제: 버블링 및 터널링 이벤트, 테마 디자인\n- 내용: DynamicResource를 활용한 테마 디자인, 다국어 지원\n- [세미나 공지](https://jamesnet.dev/article/65)\n- [세미나 후기](https://jamesnet.dev/article/89)\n- [YouTube 풀영상](https://www.youtube.com/live/K7iK0KoA9gc?si=QeiksBjiM_6gqSW0)\n\n### 제11회 (2023.05.13, 13:00 ~ 17:00)\n- 주제: 버블링 및 터널링 이벤트, 테마 디자인 (심화)\n- 내용: 코드 비하인드를 통한 애플리케이션 및 ResourceDictionaries 관리\n- [세미나 공지](https://jamesnet.dev/article/66)\n- [세미나 후기](https://jamesnet.dev/article/94)\n- [YouTube 풀영상](https://www.youtube.com/live/ukoctBWiAIU?si=EwI2rD9_GyGsSpMB)\n\n### 제12회 (2023.05.20, 13:00 ~ 17:00)\n- 주제: 프로젝트 모듈화 설계\n- 내용: WPF 기본 구성 요소 이해, 독립적 프로젝트 구성, TreeView 사용 사례 연구\n- [세미나 공지](https://jamesnet.dev/article/67)\n- [세미나 후기](https://jamesnet.dev/article/91)\n- [YouTube 풀영상](https://www.youtube.com/live/CQxhYiFqEv4?si=m4MeL9V1-Nz5nuyt)\n\n### 제13회 (2023.08.26, 13:00 ~ 17:00)\n- 주제: WPF 탐색기 애플리케이션 구현\n- 내용: 프로젝트 모듈화, 모듈화 전략, Support 프로젝트를 통한 ContentControl 설계\n- [세미나 공지](https://jamesnet.dev/article/68)\n- [세미나 후기](https://jamesnet.dev/article/92)\n- [YouTube 풀영상](https://www.youtube.com/live/5Pt-IvEogWU?si=RBwdTJ-lQIa61_eN)\n\n### 제14회 (2023.09.02, 13:00 ~ 17:00)\n- 주제: StreamGeometry를 통한 아이콘 표현 최적화\n- 내용: CustomControl의 역할, .NET Core 종속성 관리, Jamesnet.Wpf 사용\n- [세미나 공지](https://jamesnet.dev/article/69)\n- [세미나 후기](https://jamesnet.dev/article/90)\n- [YouTube 풀영상](https://www.youtube.com/live/KtjC8a-BA1g?si=hOEZt7mW2tEL2s6Y)\n\n### 제15회 (2023.09.09, 13:00 ~ 17:00)\n- 주제: 뷰 지역 분할 및 구조화\n- 내용: ContentPresenter 확장, BasedOn 기술, PART_ 템플릿 부분 규칙, Singleton 인스턴스\n- [세미나 공지](https://jamesnet.dev/article/70)\n- [세미나 후기](https://jamesnet.dev/article/93)\n- [YouTube 풀영상](https://www.youtube.com/live/y3xjQ48tHYM?si=EfvTliuW4EgK3tp3)\n\n### 제16회 (2023.09.16, 13:00 ~ 17:00)\n- 주제: Prism 프레임워크 및 CommunityToolkit.Mvvm\n- 내용: MVVM 패턴 구현, 다수의 ItemsControl 계층적 사용\n- [세미나 공지](https://jamesnet.dev/article/71)\n- [세미나 후기](https://jamesnet.dev/article/108)\n- [YouTube 풀영상](https://www.youtube.com/live/vsO2nrqcojk?si=GmgOAcZ80f51rBUy)\n\n## 감사 후원\n\n### 기업 후원\n\n\u003cimg src=\"https://user-images.githubusercontent.com/52397976/219579720-b737caae-42a3-47e4-9c2d-0cce0cf52118.png\" alt=\"커넥트시스템\" width=\"150\"/\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/52397976/219578245-f4b4772c-70d3-4760-9e0a-92f3e69e475b.png\" alt=\"인프라지스틱스\" width=\"150\"/\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/2c978f91-67d6-40fa-b9df-cd8b33d902ed\" alt=\"마이크로소프트\" width=\"150\"/\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/52397976/231384616-3819e4e0-2701-4b06-9184-7ccdba3747e4.png\" alt=\"KH SYSTEMS\" width=\"150\"/\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/52397976/231977933-5e2fd4c1-34e9-442c-8988-ae66663af54e.png\" alt=\"파이널데이터\" width=\"150\"/\u003e\n\n### 개인 후원\n\n- 김태균\n- [정세일 MVP](https://mvp.microsoft.com/ko-KR/MVP/profile/7a1448c9-ccb0-ec11-983f-000d3a1017e3)\n- 임화식\n- 고요한\n- 조동수\n- 백승찬\n- [김진석 MVP](https://mvp.microsoft.com/ko-KR/MVP/profile/54bab504-6cde-4178-8a34-957af39aab0f)\n- [이광석](https://github.com/lukewire129)\n- [이종훈](https://github.com/atawLee)\n- 한상욱\n- 구봉희\n- 신동훈\n- 조장원\n\n## 참여 방법\n\n현재 모든 세션이 종료되었습니다. 향후 세미나 일정은 추후 공지될 예정입니다.\n\n## 라이선스\n\n이 프로젝트는 MIT 라이선스 하에 제공됩니다. 자세한 내용은 [LICENSE](LICENSE) 파일을 참조하세요.\n\n## 연락처\n\n* Website: https://jamesnet.dev\n* Email: james@jamesnet.dev, vickyqu115@hotmail.com\n\nWPF 기술의 발전과 함께하겠습니다. 여러분의 참여를 기다립니다.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesnetgroup%2Fjamesnet-seminar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesnetgroup%2Fjamesnet-seminar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesnetgroup%2Fjamesnet-seminar/lists"}