The current driver implementation loads all packets from the server prior to returning any data to the AseDataReader, or any messages to the event subscribers. The reference driver is able to handle packets from the server as they are received.
For many ordinary workloads, this kinds of behaviour isn't desirable so the early versions of this project didn't support streaming results due to the additional complexity.
However for very long running tasks, streaming messages is advantageous in being able to return information before the entire process has completed. Additionally, it avoids storing the entire result set in a MemoryStream which can be prohibitive for some large result sets.
The current driver implementation loads all packets from the server prior to returning any data to the AseDataReader, or any messages to the event subscribers. The reference driver is able to handle packets from the server as they are received.
For many ordinary workloads, this kinds of behaviour isn't desirable so the early versions of this project didn't support streaming results due to the additional complexity.
However for very long running tasks, streaming messages is advantageous in being able to return information before the entire process has completed. Additionally, it avoids storing the entire result set in a MemoryStream which can be prohibitive for some large result sets.