116 lines
4.6 KiB
Markdown
116 lines
4.6 KiB
Markdown
# 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
|
|
```bash
|
|
# 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 |