In traditional 802.11 networks stations usually try to associate to the AP with the highest signal strength. However, especially in case of very dense deployments, this may lead to uneven wireless clients distribution, and thus to poor network performances. Software Defined Networking (SDN) has recently emerged as a novel approach for network control and management. In this paper we present Wi–Balance, a novel SDN–based solution for joint user association and channel assignment in Wi–Fi networks. An experimental evaluation in a real–world testbed showed that Wi–Balance outperforms the RSSI–based user association schemes in terms of throughput and channel utilization by up to 25% and 30%, respectively. We release the entire implementation including the controller and the data–path under a permissive license for academic use.