Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions App.xaml

This file was deleted.

13 changes: 0 additions & 13 deletions App.xaml.cs

This file was deleted.

Binary file added Assets/App.ico
Binary file not shown.
12 changes: 0 additions & 12 deletions MainWindow.xaml

This file was deleted.

23 changes: 0 additions & 23 deletions MainWindow.xaml.cs

This file was deleted.

33 changes: 33 additions & 0 deletions NetKit.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms>
<AssemblyTitle>NetKit</AssemblyTitle>
<Product>NetKit</Product>
<!-- Use app icon if present at Assets\App.ico (no-op if missing) -->
<ApplicationIcon Condition="Exists('Assets\\App.ico')">Assets\App.ico</ApplicationIcon>
</PropertyGroup>

<ItemGroup>
<!-- Ensure App.xaml is treated as the WPF ApplicationDefinition -->
<Page Remove="UI\App.xaml" />
<ApplicationDefinition Include="UI\App.xaml" />
<!-- Optional: keep XAML/code-behind pairing in Solution Explorer -->
<Compile Update="UI\App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
</Compile>
<Compile Update="UI\MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
</Compile>
</ItemGroup>

<ItemGroup>
<PackageReference Include="DnsClient" Version="1.7.0" />
</ItemGroup>

</Project>
82 changes: 20 additions & 62 deletions README.MD
Original file line number Diff line number Diff line change
@@ -1,69 +1,27 @@
# DevOps Helper – Windows System Tray App
# NetKit

A lightweight Windows system tray application built with **C# (.NET + WPF)** to speed up common DevOps tasks.
Initial features:
- Run fast HTTP(S) requests against a domain (using `HttpClient`).
- Check SSL certificate expiry natively in C# (no OpenSSL/WSL required).
A tiny Windows tray app for quick network checks. It runs in the system tray and pops open with a global hotkey.

---
## Features
- HTTP GET/POST with headers and body
- SSL/TLS certificate details and expiry
- Redirect chain viewer
- DNS lookups (A, AAAA, CNAME, MX, TXT, NS, PTR)

## 🚀 Plan & Setup
## Download & Run
- Windows 10/11.
- Download the latest Release ZIP, extract, and run `NetKit.exe`.
- A tray icon appears. Press `Win + ' (apostrophe)` to show/hide the window or double click the tray icon.
- To stop the app just right-click the tray icon and click on Close.

### 1. Tech Stack
- **C# (.NET 8)** – modern runtime.
- **WPF** – flexible, stylable UI (borderless, rounded corners).
- **NotifyIcon** (via WinForms interop) – system tray integration.
- **HttpClient** – native HTTP(S) requests (faster & cleaner than `curl.exe`).
## Notes
- Settings are saved to `%AppData%\\NetKit\\settings.json`.

---
## Build From Source
- Prerequisite: .NET 8 SDK.
- Restore/build: `dotnet restore` then `dotnet build -c Release`.

### 2. Project Bootstrap
1. Create a new **WPF App (.NET)** in Visual Studio or via CLI:
```bash
dotnet new wpf -n msOps
---
## Optional single-file build (can be larger and slower to start for WPF):
- `dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true`

### 3. System Tray & Hotkey
- Add tray icon context menu: **Open UI** | **Exit**.
- Register a **global hotkey** (e.g. `Ctrl+Alt+Space`) → opens the UI instantly.

---

### 4. Popup UI
- Create a **borderless WPF window** styled like a MacOS panel:
- Rounded corners, shadows.
- Input field for domain.
- Toggle for `http` / `https`.
- Buttons for **Curl** and **SSL Check**.

---

### 5. Features
- **HTTP Request**
- Use `HttpClient` to send requests directly from C#.
- Capture and display headers or response.

- **SSL Expiry Check**
- Use `TcpClient` + `SslStream` to fetch the server certificate.
- Display expiry date + remaining days.

---

### 6. Quality of Life
- Persist last used domain (e.g. in `Properties.Settings`).
- Optionally auto-run on Windows startup.
- Error handling for bad domains / network issues.

---

### 7. Polish
- Improve styling (minimal, clean, MacOS-like).
- Add keyboard navigation.
- Add tray notifications (e.g. SSL expiring soon).

---

### 8. Future Extensions
- Add utilities like **ping** or **DNS lookup**.
- Integrate with cloud CLIs (AWS, Azure, GCP).
- Support “favorite domains” or quick actions.
##
Loading
Loading