Java vs Microsoft
Sun and Microsoft have many tools to do many of the same tasks. This page is meant to provide a comparison of the two. Not necessarily to say which is better. This page should be particularly helpful to someone familiar with either Java or Microsoft technology. The chart will tell you the corresponding technology offered by the other platform.
| Java Technology | Microsoft Technology | Similarities | Differences |
|---|---|---|---|
| Applet - An applet is a java class file running inside of a browser. The applet occupies a rectangular region, or is totally invisible. Applets are used when you want to provide a VERY customized user interface that would otherwise not be possible with simple HTML components. | ActiveX Control - An ActiveX control can be placed inside of a browser or another program. The ActiveX control occupies a rectangular region, or is totally invisible. ActiveX controls are used with browsers when you want to provide a VERY customized user interface that would otherwise not be possible with simple HTML components. | Both Applets and ActiveX controls allow you to create a mini-program that is running right inside of the browser window. They both look very similar when running in a browser window and are virtually indistinguishable once running. | ActiveX controls generally require user permission before coming up; Applets just instantly start. An ActiveX control has total access to your system; an Applet runs in a "sandbox" and cannot access anything outside of the browser. ActiveX controls can be in nearly any language(including Java). Applets must be written in Java(there are rare exceptions to this). |
| Enterprise Java Bean(EJB) - Enterprise Java beans are Java beans that can be used in conjunction with an application server(JTS). This allows the EJB to be executed on a different machine than the one requesting the service. This allows n-tier applications to be developed with Java. | DCOM Object - DCOM is the distributed variant of a COM object. Just like a COM object, a DCOM object is a set of functions that can be reused by programs. With a DCOM object the DCOM object and calling program can be on different computers. This allows n-tiered applications to be constructed. | DCOM and EJB both allow the creation of distributed applications. This can produce highly scaleable applications that can run across a network of computers. The primary benefit of both DCOM and EJB is the ability to create n-tiered applications. | EJB is an open cross-platform protocol. DCOM is a proprietary Microsoft controlled protocol. |
| Weblogic and Websphere - Both Weblogic and Websphere are designed to natively support the JSP and EJB architecture. They are both full-featured web servers that support a variety of server side archetectures, including CGI-BIN and Java based solutions. There are third party add-ons which can give these servers the ability to run Microsoft Active Server Pages(ASP). | IIS - Internet Information Server is the primary web server designed to run Active Server Pages(ASP). It is an advanced web server capable of executing a variety of server side architectures such as CGI-BIN, ISAPI, ASP and IIS Server Applications. It does not natively support JSP or EJB, but there are third party add-ons that can be purchased to give IIS this capability. | IIS, Weblogic and Websphere are all fully capable web servers. With the right tools behind them they will all provide identical look and feel to the visiting web user. | The main difference between IIS and Weblogic/Websphere is what architecture is at the heart of the web server. IIS is based on MTS, COM and ASP. Weblogic/Websphere is based on the Java platform and includes support for EJB and JSP. |
| Java Bean - A Java bean is a collection of functions that can be reused across applications. Java beans are of two major types. These two types are components and function libraries. A component bean can be placed on a form similar to a push button or a radio button. The distributed form of a Bean, the EJB does not have to reside on the same computer that it is being used on. | COM Object - A COM(component object model) object is a collection of functions that can be reused across applications. COM objects are of two major types. These two types are controls and function libraries. A control, or ActiveX control, can be placed on a form similar to a push button or a radio button. The distributed form of a COM object, DCOM the object does not have to reside on the same computer that it is being used on. | COM and Java beans both allow the creation of reusable controls/components and function libraries. This can produce highly modular applications and objects. | COM objects can come from a wide variety of languages such as C++, Visual Basic, and Java. Java Beans are generally only written in Java. Java Bean is an open standard and supports many platforms. COM is a proprietary Microsoft standard. |
| JDBC - Java DataBase Connectivity is the primary way of connecting to an SQL compatible database using the Java programming language. JDBC gives the programmer a series of objects to represent such database concepts as connections, queries and result sets. | ODBC/ADO - ODBC(Open DataBase Connectivity) and ADO(ActiveX Data Objects) are Microsoft's solutions for accessing databases from the wide range of Microsoft programming languages. ODBC is a low-level functional(non-object orientated) API for accessing databases. ADO provides an object orientated layer on top of ODBC, or can even operate independently of ODBC. ADO, which is implemented as several COM objects, gives the programmer a series of objects to represent such database concepts as connections, queries and result sets. | ADO and JDBC are very similar. They both have similar object types, though the functions inside of those objects have different names and slightly different approaches for their use. There is no Java equivalent for ODBC. Though Java does provide, on Windows platforms, a JDBC driver that can layer on top of an ODBC data source. | ADO and JDBC are very similar. JDBC is more open and cross platform than ADO. There is no Java equivalent for ODBC. Though Java does provide, on Windows platforms, a JDBC driver that can layer on top of an ODBC data source. |
| JSP - JSP(Java Server Pages) Allows a HTML file that contains embedded Java. Every object you have available in standard Java is available in this language. JSP pages are actually turned into Servlets and compiled right at the web server. JSP is fully typed and nearly identical to standard Java programming. A JSP file looks just like an HTML file, except it has Java code in areas delimited by the <% and %> pairs. | ASP - ASP(ActiveX Server Pages) Allows a HTML file that contains embedded VBScript or JScript. A subset of the objects you have available in standard Visual Basic are available in this language. Both VBScript and Jscript are implemented typeless, with every variable represented as a variant. An ASP file looks just like an HTML file, except it has VBScript/Jscript code in areas delimited by the <% and %> pairs. | JSP and ASP are very similar in that they both ways of embedding a programming language such as Visual Basic or Java directly into HTML-like files. JSP can use Java beans/EJBs, and ASP can use COM/DCOM objects | JSP is more like the real version of Java than ASP is like the real version of Visual Basic. JSP provides a richer set of built in objects that can be used. Though ASP does allow specially built objects to be used with it. |
| JTS - Java Transaction Service (JTS) specifies the implementation of a Transaction Manager which supports the Java Transaction API (JTA) 1.0 Specification at the high-level and implements the Java mapping of the OMG Object Transaction Service (OTS) 1.1 Specification at the low-level. JTS is not an actual program downloaded from SUN, rather it is a specification for those seeking to create their own transaction managers. There are several commercially available. | MTS - Microsoft Transaction Server (MTS) Combines the features of a TP monitor and an object request broker into an easy-to-use package. Developers use MTS to deploy scalable server applications built from ActiveX components. MTS delivers the "plumbing" including transactions, scalability services, connection management, and point-and-click administration. | MTS and JTS both seek to provide transaction handling across an n-tiered system. They both do this by allowing the developer to create a series of objects that can be grouped into transactions, allowing rollback of one part of the process fails. | The types of objects used and infrastructure by which they communicate are the main differences. MTS is based in Microsoft transport architecture and works mainly with ActiveX. JTS is more based on corba and uses Java objects. |
| Servlet - A servlet is a Java class that runs in the context of a web server. A class must implement a specific interface to become a servlet. Servlets are often more efficient than CGI-BIN programs because they can be ran inside of the webserver. CGI programs must be ran in a process that is separate from the webserver. A servlet is hit just like a normal html page or CGI-BIN program, simply reference its complete URL. | ISAPI - Internet Server Application Programming Interface(ISAPI) is a Windows DLL that implements several required functions that make it an ISAPI DLL. ISAPI pages are often more efficient than CGI-BIN programs because they can be ran inside of the webserver. CGI programs must be ran in a process that is separate from the webserver. An ISAPI page is hit just like a normal html page or CGI-BIN program, simply reference its complete URL. ISAPI pages can be written in nearly any language capable of producing DLLs. | Servlets and ISAPI DLL�s are very similar. Both are objects to be directly used by webservers. Both appear as a single web page, similar to CGI-BIN. Both seem to be being replaced by newer layers on top of them ASP(which is implemented as an ISAPI filter) and JSP(which are compiled into Servlets). | Servlets are tied mostly to Java, and can run on any platform that can execute Java. ISAPI is an open standard that can be implemented by any architecture that supports DLLs. ISAPI pages can be created in any language which supports DLL creation. |
