{"id":14002070,"url":"https://github.com/JamesnetGroup/icommander","last_synced_at":"2025-07-23T16:30:47.313Z","repository":{"id":150383065,"uuid":"293015460","full_name":"JamesnetGroup/icommander","owner":"JamesnetGroup","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-08T13:30:20.000Z","size":8960,"stargazers_count":12,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-26T23:36:34.751Z","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":"gpl-3.0","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":null,"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}},"created_at":"2020-09-05T06:14:37.000Z","updated_at":"2024-08-21T09:32:20.000Z","dependencies_parsed_at":"2024-08-10T03:01:26.794Z","dependency_job_id":"75dfa727-754e-4da7-b249-78af324894a8","html_url":"https://github.com/JamesnetGroup/icommander","commit_stats":null,"previous_names":["jameslee214/icommander","jamesnetgroup/icommander"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesnetGroup%2Ficommander","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesnetGroup%2Ficommander/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesnetGroup%2Ficommander/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesnetGroup%2Ficommander/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamesnetGroup","download_url":"https://codeload.github.com/JamesnetGroup/icommander/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227312960,"owners_count":17762869,"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":"2024-08-10T03:00:24.465Z","updated_at":"2024-11-30T09:30:56.414Z","avatar_url":"https://github.com/JamesnetGroup.png","language":"C#","funding_links":[],"categories":["WPF Demo"],"sub_categories":[],"readme":"# ICommander  [![英文](https://img.shields.io/badge/Language-English-blue.svg)](README.md) [![中文](https://img.shields.io/badge/Language-中文-red.svg)](README.zh-CN.md) [![韩文](https://img.shields.io/badge/Language-한국어-green.svg)](README.ko.md)\n\nMVVM 패턴을 구현한 WPF 기반의 윈도우 내 탐색기 애플리케이션\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![.NET](https://img.shields.io/badge/.NET-8.0-blue.svg)](https://dotnet.microsoft.com/download)\n[![Stars](https://img.shields.io/github/stars/jamesnet214/icommander.svg)](https://github.com/jamesnet214/icommander/stargazers)\n[![Issues](https://img.shields.io/github/issues/jamesnet214/icommander.svg)](https://github.com/jamesnet214/icommander/issues)\n\n## 프로젝트 개요\nICommander는 사용자 정의 창 내에서 Windows 탐색기의 기능을 복제한 WPF 기반 애플리케이션입니다. 이 프로젝트는 실제 애플리케이션에서 MVVM 패턴을 구현하는 우수한 예시로, 개발자들에게 고급 WPF 기술과 적절한 프로젝트 구조화에 대한 통찰을 제공합니다.\n\n\u003cimg src=\"https://github.com/user-attachments/assets/49d7f1eb-ea7c-4455-9ade-70fec6f2ab48\" width=\"49%\"/\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/3912439e-7288-4b16-8b0d-d30d2b4b3823\" width=\"49%\"/\u003e\n\n## 주요 기술 및 구현 사항\n#### 1. MVVM 아키텍처\n- [x] MVVM 패턴의 완전한 구현\n- [x] DataContext와 Binding의 적절한 사용\n- [x] 액션 바인딩을 위한 RelayCommand 구현\n\n#### 2. 커스텀 컨트롤 및 템플릿\n- [x] 파일 및 폴더 표현을 위한 커스텀 컨트롤 개발\n- [x] ControlTemplate 및 DataTemplate의 고급 사용\n- [x] 동적 UI 업데이트를 위한 Trigger 구현\n\n#### 3. 파일 시스템 통합\n- [x] DllImport를 사용한 Windows 파일 시스템 통합\n- [x] 파일 및 폴더 작업 구현 (생성, 삭제, 이름 변경)\n- [x] 뒤로 가기 및 앞으로 가기 탐색이 가능한 파일 및 폴더 탐색\n\n#### 4. UI/UX 디자인\n- [x] Windows 탐색기와 유사한 인터페이스 구현\n- [x] 파일 및 폴더 작업을 위한 컨텍스트 메뉴 구현\n- [x] 여러 폴더 뷰를 위한 탭 기반 인터페이스\n\n#### 5. 성능 최적화\n- [x] 파일 시스템 콘텐츠의 효율적인 로딩 및 표시\n- [x] 부드러운 탐색 및 작업 처리\n\n## 기술 스택\n- .NET 8.0\n- WPF (Windows Presentation Foundation)\n- C# 10.0\n- MVVM (Model-View-ViewModel) 패턴\n\n## 시작하기\n### 필요 조건\n- Visual Studio 2022 이상\n- .NET 8.0 SDK\n\n### 설치 및 실행\n#### 1. 리포지토리 클론:\n\n```\ngit clone https://github.com/jamesnet214/icommander.git\n```\n\n#### 2. 솔루션 열기\n- [x] Visual Studio\n- [x] Visual Studio Code\n- [x] Jetbrains Rider\n\n\u003cimg src=\"https://github.com/user-attachments/assets/af70f422-7057-4e77-a54d-042ee8358d2a\" width=\"32%\"/\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/e4feaa10-a107-4b58-8d13-1d8be620ec62\" width=\"32%\"/\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/5ff487f6-55e4-43e1-9abf-f8d419ee6943\" width=\"32%\"/\u003e\n\n#### 3. 빌드 및 실행\n- [x] Windows 11 권장\n\n## 사용 방법\n1. ICommander 애플리케이션 실행\n2. 탐색기와 유사한 인터페이스를 사용하여 파일 시스템 탐색\n3. 파일 및 폴더 작업을 위해 컨텍스트 메뉴 사용\n4. 고급 작업을 위한 명령 프롬프트 기능 활용\n\n## 프로젝트 구조\n프로젝트는 다섯 개의 주요 폴더로 구성되어 있습니다:\n- **Based**: 파일 작업, 창 모듈, MVVM 기본 사항을 위한 핵심 클래스 포함\n- **Core**: 기본 컨트롤 및 파일 변환기 정의\n- **Implements**: 레이아웃 및 리소스 포함\n- **Presentation**: 메인 창 및 뷰 모델 포함\n- **Client**: 애플리케이션의 진입점\n\n## 기여하기\n프로젝트 개선에 기여하고 싶으시다면 Pull Request를 보내주세요. 모든 형태의 기여를 환영합니다!\n\n## 라이선스\n이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 [LICENSE](https://github.com/jamesnet214/icommander/blob/main/LICENSE) 파일을 참조하세요.\n\n## 연락처\n- 웹사이트: https://jamesnet.dev\n- 이메일: james@jamesnet.dev, vickyqu115@hotmail.com\n\nICommander로 고급 WPF 기술과 MVVM 구현을 탐험해보세요!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJamesnetGroup%2Ficommander","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJamesnetGroup%2Ficommander","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJamesnetGroup%2Ficommander/lists"}