Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jamesnet214/icommander
https://github.com/jamesnet214/icommander
Last synced: 18 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/jamesnet214/icommander
- Owner: jamesnet214
- License: gpl-3.0
- Created: 2020-09-05T06:14:37.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-09-30T07:50:29.000Z (about 1 year ago)
- Last Synced: 2024-05-02T01:33:09.196Z (7 months ago)
- Language: C#
- Size: 8.52 MB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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)
A WPF-based in-window explorer application implementing MVVM pattern
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![.NET](https://img.shields.io/badge/.NET-8.0-blue.svg)](https://dotnet.microsoft.com/download)
[![Stars](https://img.shields.io/github/stars/jamesnet214/icommander.svg)](https://github.com/jamesnet214/icommander/stargazers)
[![Issues](https://img.shields.io/github/issues/jamesnet214/icommander.svg)](https://github.com/jamesnet214/icommander/issues)## Project Overview
ICommander is a WPF-based application that replicates the functionality of Windows Explorer within a custom window. This project serves as an excellent example of implementing MVVM pattern in a real-world application, providing developers with insights into advanced WPF techniques and proper project structuring.
## Key Technologies and Implementations
#### 1. MVVM Architecture
- [x] Full implementation of MVVM pattern
- [x] Proper use of DataContext and Binding
- [x] Implementation of RelayCommand for action binding#### 2. Custom Controls and Templates
- [x] Development of custom controls for file and folder representation
- [x] Advanced usage of ControlTemplate and DataTemplate
- [x] Implementation of Triggers for dynamic UI updates#### 3. File System Integration
- [x] Integration with Windows file system using DllImport
- [x] Implementation of file and folder operations (create, delete, rename)
- [x] File and folder browsing with back and forward navigation#### 4. UI/UX Design
- [x] Creation of a Windows Explorer-like interface
- [x] Implementation of context menus for file and folder operations
- [x] Tab-based interface for multiple folder views#### 5. Performance Optimization
- [x] Efficient loading and display of file system contents
- [x] Smooth navigation and operation handling## Technology Stack
- .NET 8.0
- WPF (Windows Presentation Foundation)
- C# 10.0
- MVVM (Model-View-ViewModel) pattern## Getting Started
### Prerequisites
- Visual Studio 2022 or later
- .NET 8.0 SDK### Installation and Execution
#### 1. Clone the repository:```
git clone https://github.com/jamesnet214/icommander.git
```#### 2. Open the solution
- [x] Visual Studio
- [x] Visual Studio Code
- [x] Jetbrains Rider
#### 3. Build and Run
- [x] Windows 11 recommended## Usage
1. Launch the ICommander application
2. Navigate through your file system using the explorer-like interface
3. Use context menus for file and folder operations
4. Utilize the command prompt feature for advanced operations## Project Structure
The project is organized into five main folders:
- **Based**: Contains core classes for file operations, window modules, and MVVM basics
- **Core**: Defines basic controls and file converters
- **Implements**: Includes layouts and resources
- **Presentation**: Contains the main window and view models
- **Client**: Entry point of the application## Contributing
If you'd like to contribute to improving the project, please send a Pull Request. All forms of contribution are welcome!## License
This project is distributed under the MIT license. For more details, please refer to the [LICENSE](https://github.com/jamesnet214/icommander/blob/main/LICENSE) file.## Contact
- Website: https://jamesnet.dev
- Email: [email protected], [email protected]Explore advanced WPF techniques and MVVM implementation with ICommander!