Search for an article on architecture analysis for the .NET 3.5 / J2EE architecture

We are thinking of combining .NET technology with Java technology (WCF, JBoss / ESB, MOM, WPF, WF), and I need to have a high-level view of what apples and oranges are in .NET 3.5 and Java worlds.

Does anyone know a good, clear article or another simple diagram that answers questions such as:

  • WCF in the Java World - ______
  • the WPF equivalent in the Java world is _____
  • closing stuff for JBoss in the .NET world - _____
  • JVM and CLR are essentially the same, except for these differences: ....
  • In the Java world, you do not have the concept of WF / WCF / WPF, instead you have ....
  • there is no LINQ in the Java world yet, but you can use ___
  • the closest access to ADO.NET data services in the Java world is ....

I am not going to discuss this, so I am not looking for “battle points”, I just need a neutral “some kind” diagram comparing two worlds.

+6
java java-ee
source share
6 answers

I do not know a good, clear diagram, but I will answer your questions. (Warning - I'm a J2EE developer, and the last time I programmed Microsoft, it was with classic ASP and VB 6. I won’t be able to appreciate MS technology, but I have a good sense of many Java equivalents.)

  • WCF : WCF seems to be about simplifying web services. The J2EE equivalent will be Apache CXF, which uses the annotations available in the JAX-WS 2.0 specification to simplify the creation of web services.
  • WPF : this one is simple. Microsoft technology looks like a direct copy of JavaServer Faces. I can’t tell you which one is better, but they are very similar to each other. EDIT: I was too fast with this mark - JSF does not work on the desktop, as WPF should. The underlying technologies are similar, but JavaFX may be a better comparison.
  • JBoss in .NET . Someone might want to set me up directly, but I'm sure it does not exist. I think about it. You are requesting a free, open source product to run a proprietary, proprietary specification. If you go with Microsoft, you are stuck in IIS as much as in Windows.
  • JVM vs. CLR : I found a document available here that suggests that there is little or no difference between the two. A lot of the arguments between the two that I saw focuses on weak (real or perceived) Windows as server technology.
  • What is the Java world instead of WF / WPF / WCF : now where, in my opinion, the Java world has real advantages over MS. There are many frameworks there, so you are sure to find something that suits your needs (for free!). You can use Spring MVC or Struts 2.0 or Wicket. For your database level, you have the choice of Hibernate or Ibatis. See this list for web services. Java contains a total of nine frameworks. Microsoft has one: WCF.
  • LINQ Java Equivalent : Again, someone can correct me, but I'm not sure if there is an equivalent. Microsoft advantage.
  • ADO.NET Data Services . This is doable in Java through JPA and RESTful Web Services, but I think it is a little easier in the MS world to implement.

There is another area where I can see that Microsoft is crawling ahead of the Java community: they are making some intelligent investments in functional programming, while people from Java uselessly argue about the best way to add Java closures. There are also some new technologies - OSGi, namely - to handle the complex complexity associated with a huge number of Java infrastructures. Because MS has tighter control over its domain, it is easier for them to cope with their various components.

And then there are human considerations: who you can find for work, which technologies and how much hiring for X will cost against hiring for Y. But this is true, regardless of what you choose.

Hope this helps!

+6
source share

It is very difficult to find good information about this, even more complex information up to date. This is mainly .NET 1.1 or 2.0.

In any case, I will provide here some links that may interest you:

Hope this helps! I will constantly update this when I focus on some useful information.

+4
source share

IMO there are too many frameworks for Java. Same problem with dozens of Linux distributions ...

Sure, it can say the same for .NET, but it's just clearer. this is my .02

0
source share

In the rtperson post:

.NET has NHibernate and iBatis.NET. Not as good as their Java counterparts, it seems, but good enough.

In fact, there are many open source projects on the .NET side: Castle project (MVC, IoC), NUnit, Spring.NET ... And don’t forget Mono as an open source implementation of the main .NET platform.

0
source share

I am a programmer who made C ++, Java and is now developing C #.

Here is my answer to the initial question:

WCF = EJBS / J2EE server (e.g. JBoss)

WPF = Swing (JavaFX)

JBoss = I don’t think WCF needs a server, it just starts in .net environment. Not sure about this, although still learning. JVM vs CLR: CLR can do everything the JVM can, but CLR can also: run unmanaged code, split one process into several logical ones (AppDomains). It has very good C ++ integration compared to java, the CLR is simply better. C # is also better than java (Lambda's, delegetes, expression trees, links, structures, extension methods, partial classes, common without boxing. They worked very well here!), But they only work in windows.

Wf = don't know if it possibly exists

Linq = It is currently not possible to implement in Java because you need: Lambda, expression trees, and extension methods

ADO.net dataservices: I don't know anything like this in java, but it can be easily implemented. Probably exists in some kind of discovery project.

Having done both, this is my conclusion on how they relate:

.net is easier to learn, all the more, but no less powerful. The reason for this is that the assignment of methods in the api is more consistent, the decisions are better targeted, and some api are designed much better (WPF is an example of this, I can not say this for other api, still studying). Because of this, .net programmers will cost less.

Application development in C # will be 1.5-2 times faster than in Java. There the IDE (visual studio) feels better. You can extend it after 20 minutes, no crap! Trying to understand eclypse extension mechanisms is no easy task! The Eclipse code refactoring function wins one leg. Visual Studio outperforms many others. (Commercial plugins available?)

When using .Net, you may have to pay licenses for the operating system and for IIS. For the database, you can leave with MySQL.

For java you do not have to pay a license. However, in reality you still have to. Serious applications run Redhad or some other free OS. The web server can be completely free. Also, these systems are more difficult to manage, so your administrator will probably be more expensive.

I am a certified Java developer (92%), as well as a certified web service (JSP, servlets, 87%) and a certified web component developer (EJB, 82%). I am also a Microsoft Certified Developer (90%) and a WPF Certified Developer (90%). Java exams are harder than Microsoft exams. This is because java exams ask a lot of unresolved questions. Like what is the correct method name for saving the object: SaveChanges (), PersistChanges (), EmitChanges (), or SendChangesToDatabase (). Does anyone know that knowing the name of a method is not useful. You IDE will provide you with the correct name. And if you really had method names so similar to each other that you have a very bad and confusing api! The important thing is that you know why you call it! Microsoft exams focus more on why this is so. In my opinion, Microsoft exams really help you become a better programmer. Java exams are also useful, but more like learning a phone book; it is very difficult, but useless.

In general, I believe that C # is technically super-eric (it would be logical, since they learned a lot from java and bought the smartest people in the world to write it). You will pay more for licenses, but probably less for people.

Late, I'm tired and don't want to re-read. I have to, I know. But it will not. I don’t have a spelling check, so there can be many typos. My first language is Dutch, my second is French and my third is English (I live in Belgium, we are difficult), so I think that I was allowed incorrectly? :)

Hope this gives you some clarity.

0
source share

All Articles