I have changed the order of the questions to facilitate reading and understanding.
Console applications With Visual Studio use Console Application / With Java?
Default Java applications run in a console, independent of the type of application that is created. For your applications that would be purely console, run them with the command java
and you can use System.out.print
/ System.out.println
to print outgoing messages. In addition to this, there are frameworks such as clamshell-cli and Jansi that facilitate the development and visualization of your console applications made in Java.
Desktop applications With Visual Studio I use WinForms or WPF / With Java?
There are several frameworks in Java to create GUI desktop applications. The most common is Swing, but it is not the only one. Currently, Java 8 drives more development with JavaFX and Swing is maintained for compatibility. There are no visual components to drag in Java, this will depend on the IDE and plugins that have the IDE to support Swing, JavaFX or others. However, for JavaFX you can create your GUI using Scene Builder . Which of these frameworks to choose? It will depend on you. Personally, I recommend JavaFX over Swing (out of the know and popular rejection).
From the answer to the previous question, there is also the command javaw
, which does not use a console to show the output of the program. It is useful to run your GUI applications.
Web Applications With Visual Studio I use ASP.Net or MVC / With Java?
Web applications in Java usually follow the Java EE (Java Enterprise Edition) standard. These applications run on an application server that works under this standard or a relevant group of them. Mainly, JSP is used for the view and Servlet is used as controllers (following the MVC pattern). Likewise, there are frameworks built on these technologies such as JSF, Spring MVC, Struts 2, etc. that facilitate the development of web applications.
Web Services With Visual Studio use WebServices ASP or WCF / With Java?
Any web application can provide web services. There are two main standards for providing services: JAX-WS for web services on SOAP and JAX-RS for REST-style web services. These standards are implemented by specific frameworks to each, being metro and Jersey implementations of each standard respectively. On this, there are frameworks such as Spring WS and Spring REST that provide another way to implement this type of services.
In Java, there is no direct simile to WCF. There are products like an ESB that can perform what you request and much more. At best, if you want something less than an ESB and with more power than WCF, then you have Apache Camel .
Operations towards databases With Visual Studio I use ADO.NET / EF / With Java?
Database-based operations with Java are performed using JDBC. All database connection frameworks in Java are written as a layer superior to JDBC.
A Java equivalent for EF would be JPA. This is a standard of communication towards the database based on ORM frameworks. Among the most popular implementations of JPA are Hibernate and EclipseLink . If you do not need to work with an ORM framework, you can use other options such as MyBatis or jOOq , among others.
For .NEt IDE I always use Visual Studio, with Java there are several Which do you recommend?
You should use the IDE that best suits your needs and tastes. The most popular are currently IntelliJ IDEA (has a community version that is free, the official is paid), Eclipse and NetBeans , and then others like BlueJ that do not offer as many features as those mentioned above. I have worked with all three, and I feel comfortable with both Idea and Eclipse.