Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/MicaApps/DiskInfo

DiskInfo based on CrystalDiskInfo
https://github.com/MicaApps/DiskInfo

disk mica uwp windows windows11 winrt winui3 xaml

Last synced: 17 days ago
JSON representation

DiskInfo based on CrystalDiskInfo

Lists

README

        


Icon

DiskInfo



A tool for viewing hard drive information with a modern UI design.

## Download




Download DiskInfo

## Language
- [中文](README.zh-CN.md)

## Concept
![image](https://user-images.githubusercontent.com/6630660/212543495-ffba1279-bf86-4f4e-8568-8b8941edcfed.png)

## Background
[CrystalDiskInfo](https://github.com/hiyohiyo/CrystalDiskInfo) is one of the most famous disk health monitoring tools in the world. It is free and open source, and is still actively maintained.

CrystalDiskInfo

This project aims at providing a mordern appearance for DiskInfo. The new design follow the guide of [Fluent Design System](https://www.microsoft.com/design/fluent/),with flexible,adapting layout,and charming visual design.

## Build
### Solution Structure
```
DiskInfo
\libs
DiskInfoLib --- C++/WinRT ports of the above DiskInfo project, to be consumed directly to UI layer (developing).
DiskInfoTest --- a library for testing DiskInfoLib.
MockDiskInfo --- Fake DiskInfoLib reference that provide sample data for UI layer test.
DiskInfo --- C#/WinUI 3 project that provide the UI layer of DiskInfo.
```
### WinRT port
The `DiskInfoLib` is a C++/WinRT project transformed to be able to allowed to call Win32 APIs.
It's basically using Visual Studio's `Windows Runtime Component` project template, but with additional macros defined and additional library paths added.
In order to be consumed by the C# project (.NET6),
- add [cs/winrt](https://github.com/microsoft/cswinrt) NuGet package.
- add a project reference to the WinRT component project, finally add a `PropertyGroup` tag in the `csproj` file.
```xml

DiskInfoLibWinRT
$(OutDir)

```

## Known issues
- Debugging for winui3 under admin privilege is not fully working. For developments' convenience, it normally runs without admin previledges. (This will change when it's publish to store)
- More features coming!

Technology stack and pre-requsite to build

## Technology Stack

### Documents

- [WinUI 3](https://learn.microsoft.com/en-us/windows/apps/winui/winui3/)

- [Windows Runtime](https://learn.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/intro-to-using-cpp-with-winrt)

- [Windows App SDK](https://learn.microsoft.com/zh-tw/windows/apps/windows-app-sdk/)

### Develop Environment

- Visual Studio 2022

- C++ Desktop Development

- Universal Windows Development

- .NET Desktop Development

- Windows SDK 22621

- C++ ATL for latest v143 build tools (x86 & x64)

- C++ MFC for latest v143 build tools (x86 & x64)

### XAML Control Libraries

- [WinUI 3](https://learn.microsoft.com/en-us/windows/apps/winui/winui3)

- [Windows Community Toolkit](https://github.com/CommunityToolkit/WindowsCommunityToolkit)

- [Syncfusion WinUI Controls](https://www.syncfusion.com/winui-controls)