<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Interop - SeeSharp</title>
  <icon>http://www.hightech.ir/favicon.ico</icon>
  <logo>http://www.hightech.ir/favicon.png</logo>
  <updated>2010-01-18T00:00:00</updated>
  <subtitle type="html">A C# development blog</subtitle>
  <id>http://www.hightech.ir/tags/interop/atom</id>
  <link rel="alternate" type="text/html" hreflang="en" href="/tags/interop/atom"/>
  <link rel="self" type="application/atom+xml" href="http://www.hightech.ir/Tags/Interop/ATOM"/>
  <generator uri="http://oxite.net" version="1.0">Oxite</generator>
  <entry>
    <title type="html">Java and .NET Interoperability</title>
    <link rel="alternate" type="text/html" href="http://www.hightech.ir/SeeSharp/Java-Interop-With-NET"/>
    <id>http://www.hightech.ir/SeeSharp/Java-Interop-With-NET</id>
    <updated>2010-01-18T10:53:46.093</updated>
    <published>2010-01-18T00:00:00</published>
    <author>
      <name>HEskandari</name>
    </author>
    <category term="NET" />
    <category term="Java" />
    <category term="Interop" />
    <content type="html" xml:lang="en">
      &lt;p&gt;
	We&amp;#39;ve been doing a lot of Java / .NET &lt;a href=&quot;http://en.wikipedia.org/wiki/Interoperability&quot;&gt;interop&lt;/a&gt; for last couple of years in our enterprise applications. On one hand, our customers used their existing expertise and infrastructure that worked better with Java based technologies like their existing Unix based servers, Sybase database (on Unix) and the knowledge of their DBA team, and we using our existing Java developers and expertise. But what Java based technology provides that we don&amp;#39;t have on .NET world? Is it important at all?&lt;br /&gt;
	&lt;br /&gt;
	With rise of Silverlight presentation framework working the interop becomes more important. You can now create a sophisticated user interface and make it work with your existing EJBs on your JBoss backend and you have best of both worlds. As a .NET developer you might not be familiar what this provides, so here&amp;#39;s a few things you&amp;#39;ll get right out of the box:&lt;br /&gt;
	&lt;br /&gt;
	&lt;span class=&quot;subtitle&quot;&gt;Standard JPA (Java Persistance API)&lt;/span&gt;&lt;br /&gt;
	When you create applications on top of &lt;a href=&quot;http://java.sun.com/javaee/reference/faq/ejb.jsp&quot;&gt;EJB 3.0&lt;/a&gt; using any EJB compliant application server, one thing you get is a standard, pluggable persistence API. The idea behind &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Persistence_API&quot;&gt;JPA&lt;/a&gt; was to provide a standard set of interfaces to application developers and let the application server provide different implementations of these interfaces using various persistence frameworks. Great idea, right? This means you don&amp;#39;t need to learn how to use another persistence framework, because now they all support an standard interface.&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://www.jboss.org/&quot;&gt;JBoss&lt;/a&gt; actually uses &lt;a href=&quot;https://www.hibernate.org/&quot;&gt;Hiberante&lt;/a&gt; under the hood to implement this API but other application servers may have different engines. If you&amp;#39;re familiar with NHibernate, you&amp;#39;ll feel right at home!&lt;br /&gt;
	&lt;br /&gt;
	&lt;span class=&quot;subtitle&quot;&gt;JAX-WS WebServices&lt;/span&gt;&lt;br /&gt;
	Should you need to expose your business logic through WebServices, all you need to do is to decorate your existing services with an &lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html&quot;&gt;Annotation&lt;/a&gt; to signify the application service that the class provides a WebService endpoint. An &lt;em&gt;Annotation&lt;/em&gt; is actually a Java term for almost the same thing we call an &lt;em&gt;Attribute&lt;/em&gt; in .NET world.&lt;br /&gt;
	&lt;br /&gt;
	&lt;span class=&quot;subtitle&quot;&gt;Infrastructural Services&lt;/span&gt;&lt;br /&gt;
	There are a lot of cross cutting concerns your application server provides. Things such as standard logging framework, inversion of control container, queues, scheduling, &lt;a href=&quot;http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts5.html&quot;&gt;Message Driven Bean&lt;/a&gt; (which is a very simple &lt;a href=&quot;http://en.wikipedia.org/wiki/Enterprise_service_bus&quot;&gt;ESB&lt;/a&gt;) , hot deployment of applications, etc.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&lt;span class=&quot;subtitle&quot;&gt;Price Tag&lt;/span&gt;&lt;br /&gt;
	Yes, the best part of it is that all of this comes as free (as in free food). You don&amp;#39;t have to pay for licenses for your application server, you don&amp;#39;t have to pay for IDEs because there are a lot of great IDEs available, you don&amp;#39;t have to buy license for your Linux based Server and there&amp;#39;s a large community out there that can help you freely, if you&amp;#39;re stuck. Of course there are paid services too, mostly for services such as support, but you hardly need it. If you&amp;#39;re pairing Silverlight frontend with Java backend, you can use &lt;a href=&quot;http://www.eclipse4sl.org&quot;&gt;Eclipse&lt;/a&gt; to handle both in one place!&lt;/p&gt;
&lt;p&gt;
	This is just a scratch on the surface. I&amp;#39;ll shed more light on the subject on upcoming posts.&lt;/p&gt;
    </content>
  </entry>
</feed>
