From self-assembly to noncovalent synthesis of programmable porphyrins' arrays in aqueous solution.