Hi everyone, i have recently switched from .net to java due to development of multi platform desktop application (but truthfully there were .net project in pipeline in office

) and web application (it will be developed for handling API requests from Desktop application and it will be developed in PHP because we got very big force of PHP developers here in our team)
i have recently started to learn it and found it is easy to learn because i had worked in C-sharp and its quite similar to each other
but some questions comes in my mind so i thought i should get some answers from experts. as my currently focus is on desktop application so i would ask question regarding to it (but feel free to give little broad answer for extending my knowledge in JAVA )
1. should i consider learning any framework on JAVA ? which and why ?
2. my desktop application will go into many development life-cycles (because it would be SaaS application later on) so considering any JAVA framework would be a good option ?
3. should i consider looking into Test Driven Development for developing desktop app ?
and i really appreciate if any one could give a good guidelines for developing good application
thanks