Releases: diqezit/Ping
PingTester v2.0
optimized version, improved debugging, bug fixes, increased performance. Removed redundant functions
Full Changelog: release...pin
PingTester v1.7
Improved logging, migration to C# 9.0, code optimization.
The rest is the same as in 1.6 version.
PingTester v1.5
Description
This application is a network connectivity testing tool that allows users to perform ping and traceroute tests to a specified URL.
Main Functions
Ping testing: Users can specify the URL, number of packets to send, timeout and log file path. The application performs pings, displaying the results in real time, including statistics on response time and packet loss. The results can be saved to a log file.
Graphical presentation of results: The application provides a response time graph to visualize the ping results updated in real time.
Route tracing: Allows users to see the intermediate nodes between their device and the target server, with detailed statistics for each hop.
Logging and saving results: All operations are logged with the ability to save logs to a file.
DNS caching: To optimize performance, the application caches the results of DNS queries, reducing the number of repeated queries.
Cancel operations: Users can cancel test execution at any time.
Technical details
The application is written in C# using WPF for the GUI.
The OxyPlot library is used to display response time graphs, with data smoothing and dynamic axis update functions.
Components and methods
GraphWindow: The main window for displaying the response time graph.
SetupAxes: Setup the axes of the graph.
SetupSeries: Create and configure data series.
SetPingData: Set response time data and update the graph.
UpdateGraph: Updates the graph based on the current data.
ToggleSmoothing: Toggle the data smoothing mode on the graph.
Additional Functions
Scaling and panning of the graph.
Update timer to display real-time data.
PingTester v1.6
Summary of Changes for All Files
The main changes are related to the trace code window.
General Changes
Addition of Comments and Documentation
- XML comments for classes and methods.
- Descriptions added for public methods and properties.
Interface Changes
- Addition of XML comments for public methods and properties.
Support for Interfaces
- Replaced concrete classes with interfaces (e.g.,
Logger
withILogger
,DnsManager
withIDnsManager
).
Null Checks
- Added null checks for constructor and method parameters.
Addition of Constants
- Constants added for string formatting and other values.
Code Structure Changes
- Code segmented into logical blocks using
#region
.
Changes for the PingManager Class
Support for Caching
- Used
ConcurrentDictionary<string, HopData>
to store hop data.
Support for Synchronization
- Used
CancellationToken
for canceling operations.
Support for Update Flags
- Utilized a flag to track the need for updating statistics.
Methods Added
- Added methods for data clearing, statistics calculation, string formatting, and other operations.
Support for Property Changes
- Properties now update flags and trigger events when their values change.
Support for Caching Last Value
- Added caching for the last response time and other data.
Support for Exception Handling
- Improved exception handling in methods.
Support for Logging
- Added logging for various stages of operation.
Support for Timeouts
- Implemented timeout support for DNS requests and other operations.
Support for Comparison
- Used
EqualityComparer<T>.Default.Equals
for comparing property values.
Changes for the DnsManager Class
Support for Caching
- Used
IMemoryCache
for caching DNS query results.
Support for Synchronization
- Used
CancellationToken
for canceling operations.
Support for Update Flags
- Utilized a flag to track the need for updating statistics.
Methods Added
- Added methods for data clearing, statistics calculation, string formatting, and other operations.
Support for Property Changes
- Properties now update flags and trigger events when their values change.
Support for Caching Last Value
- Added caching for the last response time and other data.
Support for Exception Handling
- Improved exception handling in methods.
Support for Logging
- Added logging for various stages of operation.
Support for Timeouts
- Implemented timeout support for DNS requests and other operations.
Support for Comparison
- Used
EqualityComparer<T>.Default.Equals
for comparing property values.
Changes for the Logger Class
Support for Caching
- Used
ConcurrentQueue<string>
to store log messages.
Support for Synchronization
- Utilized
Timer
for periodic logging to file.
Support for Update Flags
- Utilized a flag to track the need for updating statistics.
Methods Added
- Added methods for data clearing, statistics calculation, string formatting, and other operations.
Support for Property Changes
- Properties now update flags and trigger events when their values change.
Support for Caching Last Value
- Added caching for the last response time and other data.
Support for Exception Handling
- Improved exception handling in methods.
Support for Logging
- Added logging for various stages of operation.
Support for Timeouts
- Implemented timeout support for DNS requests and other operations.
Support for Comparison
- Used
EqualityComparer<T>.Default.Equals
for comparing property values.
Changes for the TraceResult Class
Support for Caching
- Used
ConcurrentBag<long>
to store response times.
Support for Synchronization
- Used
lock
to synchronize access to data.
Support for Update Flags
- Utilized a flag to track the need for updating statistics.
Methods Added
- Added methods for data clearing, statistics calculation, string formatting, and other operations.
Support for Property Changes
- Properties now update flags and trigger events when their values change.
Support for Caching Last Value
- Added caching for the last response time and other data.
Support for Exception Handling
- Improved exception handling in methods.
Support for Logging
- Added logging for various stages of operation.
Support for Timeouts
- Implemented timeout support for DNS requests and other operations.
Support for Comparison
- Used
EqualityComparer<T>.Default.Equals
for comparing property values.
Changes for the HopData Class
Support for Caching
- Used
ConcurrentBag<long>
to store response times.
Support for Synchronization
- Used
lock
to synchronize access to data.
Support for Update Flags
- Utilized a flag to track the need for updating statistics.
Methods Added
- Added methods for data clearing, statistics calculation, string formatting, and other operations.
Support for Property Changes
- Properties now update flags and trigger events when their values change.
Support for Caching Last Value
- Added caching for the last response time and other data.
Support for Exception Handling
- Improved exception handling in methods.
Support for Logging
- Added logging for various stages of operation.
Support for Timeouts
- Implemented timeout support for DNS requests and other operations.
Support for Comparison
- Used
EqualityComparer<T>.Default.Equals
for comparing property values.
Full Changelog: ping...ip