Files
Groupware/CLAUDE.md
2025-07-27 16:25:15 +09:00

4.6 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

This is a Korean Enterprise GroupWare system built with C# .NET Framework 4.6 and Windows Forms. The application serves as a comprehensive business management system that includes project management, purchasing, attendance tracking, reporting, and web-based functionality. The project runs on port 7979 (previously 9000) and includes both desktop and web components.

Architecture

Main Application (Project/EETGW.csproj)

  • Entry Point: Project/Program.cs - Handles WebView2Runtime extraction and starts the main form
  • Main Form: Project/fMain.cs - Primary application window
  • Web Server: Integrated OWIN-based web server for HTTP API and static files
  • Database: Microsoft SQL Server with Entity Framework 6.2.0
  • Target Framework: .NET Framework 4.6

Key Components

  1. Web Layer (Project/Web/):

    • Startup.cs: OWIN configuration for HTTP API and static file serving
    • Controllers: API controllers for various business functions (Home, Project, Purchase, Item, etc.)
    • wwwroot: Static web assets (HTML, CSS, JS files)
  2. SubProjects: Modular components with specific business functionality:

    • FPJ0000: Project management module
    • FCM0000: Customer management
    • FEQ0000: Equipment management
    • FBS0000: Holiday/attendance management
    • FCOMMON: Shared common functionality
    • WebServer: Additional web services
    • AmkorRestfulService: REST API services
  3. Sub Components (Sub/):

    • arCtl: Custom controls library
    • arftp: FTP functionality
    • tcpservice: TCP communication services
    • YARTE: HTML editor component
    • StaffLayoutCtl: Staff layout controls

Technology Stack

  • UI Framework: Windows Forms with custom controls (FarPoint Spread grids)
  • Web Framework: OWIN with ASP.NET Web API 5.2.9
  • Database ORM: Entity Framework 6.2.0
  • JSON Processing: Newtonsoft.Json 13.0.3
  • Web Browser: Microsoft WebView2 1.0.2210.55
  • Reports: Microsoft ReportViewer 15.0
  • Excel Processing: libxl.net and CsvHelper 30.0.1

Development Commands

Building the Solution

# Build the entire solution
msbuild EETGW.sln /p:Configuration=Debug /p:Platform="Any CPU"

# Build for release
msbuild EETGW.sln /p:Configuration=Release /p:Platform="Any CPU"

# Build specific project
msbuild Project/EETGW.csproj /p:Configuration=Debug

Running the Application

  • Debug Mode: Run from Visual Studio or build and execute the output from Project/bin/Debug/
  • Web Server: Automatically starts on port 7979 when the application launches
  • Database: Ensure SQL Server connection string is configured in app.config

Package Management

  • Uses NuGet packages defined in packages.config files throughout the solution
  • Restore packages using: nuget restore EETGW.sln

Configuration

Database Connection

  • Connection strings configured in individual app.config files
  • Primary database connection in Project/app.config
  • Uses Entity Framework with SQL Server

Web Server Configuration

  • Port: 7979 (configured in startup)
  • Static Files: Served from Project/Web/wwwroot/
  • API Routes: Configured in Project/Web/Startup.cs
  • CORS: Enabled for all origins

Build Configurations

  • Debug: Outputs to Project/bin/Debug/ with x86 platform target
  • Release: Optimized build configuration
  • Different output paths for various configurations (see EETGW.csproj)

Key Conventions

Code Organization

  • Korean comments and variable names are common throughout the codebase
  • Business logic separated into modular SubProjects
  • Shared functionality centralized in FCOMMON project
  • Custom controls and utilities in Sub/ directory

File Structure

  • Each SubProject has its own namespace and assembly
  • Form files follow naming convention: f[FormName].cs with corresponding .Designer.cs and .resx
  • Dataset files use .xsd schemas with generated code

Dependencies

  • Heavy use of FarPoint Spread controls for data grids
  • Custom logging via ArLog.Net4.dll
  • Settings management through ArSetting.Net4.dll
  • Multiple third-party libraries for Excel, FTP, and web functionality

Development Notes

  • WebView2Runtime is automatically extracted on first run from WebView2Runtime.zip
  • The application includes comprehensive error handling and logging
  • Multiple authentication methods including AD integration
  • Supports both Korean and English localization
  • Includes extensive reporting capabilities with RDLC files