In Extended Events what is the difference between rpc_completed and sql_batch_completed?
The difference is how the command is executed by the client. The client can directly execute a stored procedure or the client can send a sql batch.

To call a stored procedure from .NET you would use

SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandType = CommandType.StoredProcedure;


and to execute a batch you would use

SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandType = CommandType.Text;


There are other things you need to set up like the connection, but the above shows the difference between the two execution modes.