The current code layout has evolved in a somewhat haphazard way. To make it more internally consistent and easier for new contributors to get involved, I propose reorganising it as follows:
MySqlConnector
MySql.Data.MySqlClient - only types necessary to clone Connector/NET public API
Protocol - enums, constants, etc. defined in the MySQL protocol
Payloads - types representing individual payloads
Serialization - reading/writing packets & payloads
? - ADO.NET implementation helpers, MySqlSession, MySqlParser, MySqlXaTransaction, etc.
Utility - general-purpose code, extension methods
The current code layout has evolved in a somewhat haphazard way. To make it more internally consistent and easier for new contributors to get involved, I propose reorganising it as follows:
MySqlConnectorMySql.Data.MySqlClient- only types necessary to clone Connector/NET public APIProtocol- enums, constants, etc. defined in the MySQL protocolPayloads- types representing individual payloadsSerialization- reading/writing packets & payloads?- ADO.NET implementation helpers, MySqlSession, MySqlParser, MySqlXaTransaction, etc.Utility- general-purpose code, extension methods