Technology FAQs

Answers to your questions on key application development technologies and "off the shelf" components in general.

Are all BEA WebLogic Controls the same as EJBs?
No. WebLogic Controls implement a control framework that exposes external resources as simple controls. There are six pre-defined controls: Web Services Control, Database Control, EJB Control, MS Control, J2CA Control and Timer Control. This control framework isolates the developer from the object-oriented programming and J2EE APIs, allowing them to focus on the data and business logic that the components expose.

Are all CORBA components CCM components?
No. The CORBA Component Model (CCM) is a specification of a server-side component model for building enterprise-class applications as a set of interconnected components and deploying it in a CCM-compliant runtime environment. The CCM component specification is defined in the CORBA 3.0 specification. All that is required for a CCM component to be deployed is a CORBA 3.0-compliant ORB.

Are all J2EE components compatible with BEA WebLogic Workshop?
WebLogic Workshop 1.0 supports consuming EJBs. It allows you to create WebLogic controls. It does not allow you to create servlets or JSPs.

Can I also create non-visual server-side components?
Absolutely. The .NET framework allows you to implement any interface to a component as either a Web Forms service or Win Forms service. The operation performed by the server can be anything from changing a button on a toolbar from 2D to 3D to performing complex encryption of data to querying/writing information to a database. By placing the component on the server, you gain the advantages of added horsepower, simpler deployment of updates, broader platform reach, and more. Probably the most significant advantage to .NET server side components is enterprise scalability - a challenge inherent to business logic more so than user interface functionality.

Can I continue to use my existing components in .NET applications?
Yes. The .NET Framework implements a Runtime Callable Wrapper (RCW) to allow communication with COM components. This insures that .NET will remain backward-compatible with current COM components and component-based applications.

Can I create VCL components that are non-visible?
Yes. The "Visual" in Visual Component Library is a bit of a misnomer. VCL components can be visual or non-visual, depending on the functionality you wish to encapsulate.

Can I still use Visual Basic to develop applications using .NET?
Visual Basic is being updated to integrate with the .NET Framework. You will still be able to develop applications (and components for that matter) using VB.NET.

Can I use .NET components in my existing COM applications?
Yes. The .Net Framework implements a COM Callable Wrapper (CCW) to allow .NET components to be called by existing COM components/applications. It implements the standard COM interfaces so that to the calling application, the .NET component "looks" like a COM component.

Can I use my CLX components anywhere but in Kylix?
Yes. The Component Library for Cross-platform was designed to provide component-based development for both Linux and Windows applications. Kylix is the Integrated Development Environment for Linux that supports CLX components. Delphi 6 supports CLX components on the Windows platform.

Do I need special software to use CORBA components?
Yes, you need a CORBA Object Request Broker (ORB). ORBs are the middle-tier servers that house CORBA components. ORBs are defined as being built upon a particular version of the CORBA specification, such as 2.0 or 2.3. It is this version number to determines if a CORBA component can be run on a given ORB. ORBs can be compared to EJB Application Servers. In fact, many EJB App Servers also contain CORBA ORB software, enabling them to run both EJB and CORBA components.

Do I need WindowsXP to create or use .NET components?
No. Visual Studio.NET is compatible with Windows 2000 and above.

Does my component need to be MTS compatible?
It depends on how they will be used. MTS-enabled components are COM components that execute in the Microsoft Transaction Server (MTS) runtime environment. They are inherently scalable for distributed, enterprise-wide computing because a component on a client machine(s) can communicate with a component on a server(s). MTS components must be DLLs. EXEs and OCXs are not supported. If your component provides specific business logic that may be used in a distributed environment, then you should make it MTS-enabled.

Does the .NET Framework mean the end of components?
No. In fact, .NET (including Win Forms, Web Forms, and Active Server Pages+) relies on components to provide these services. What is essentially changing is where the components reside (on the server) and how the use of these components is licensed. When you install a Server-side User Interface component on, for example, a web server, you expose the interfaces to this component. These interfaces (properties, methods, and events) are expressed as Web Form Services, but the underlying functionality is still provided by components.

How do I "copy protect" my component?
Copy protection is simply an extension of component licensing. There are many ways to accomplish this. There are third-party components and tools available to provide licensing and copy protection. You can see them in our Software Licensing Components and Software Licensing Tools categories.

How do I license a component?
Component licensing is a two-fold process: software protection and licensing terms and conditions. Software protection can be implemented in a variety of ways. There are third-party solutions that can be purchased to accomplish this or some companies prefer to write their own algorithm and licensing systems. Licensing terms and conditions are what make up the legal licensing agreement that is entered into by the author (you) and the customer upon purchase. These terms are best left to qualified attorneys to draft for you.

How does an ActiveX DLL/In Process Server differ from an ActiveX OCX?
An ActiveX OCX requires a control container (such as a Visual Basic form) in order to be instantiated - an ActiveX DLL does not. As such, an ActiveX DLL can generally be used in any COM-enabled environment, whether or not it has a form (or any visual interface). An OCX is capable of querying its control container, and can determine if it is being instantiated either at design-time or run-time.

I don't want to enter a license key every time I use a component at run-time.
You won't have to. Most commercial components include the ability to either set a property with the serial number or create the appropriate registry entry so that end users of your application are not required to enter a serial number for the components it contains. Assuming the component has been properly licensed by the developer, the existence of components in your application should be transparent to the end user.

What are NetCLX?
NetCLX are a sub-division of Borland CLS components. There are four groups of CLX components: BaseCLX - to perform "basic" functionality such as math calculations, etc.; VisualCLX - for providing User Interface functionality such as buttons and grids; NetCLX - to provide network communication functionality; and DataCLX - for data access operations.

What is a "server-side user interface" component?
A server-side UI component is, essentially, a user interface component that is running on a .NET web server or application server. It requires no component to be installed on the client, only the appropriate code to access it on the server. Imagine a toolbar component residing on a server (Windows Forms Control). You have defined buttons, drop-down lists, etc. When the client clicks on a button, an event is sent to the server and the appropriate function is called. If you change your toolbar, all clients who use the application are instantly updated once you update the component on the server. When used with Web Forms (ASP.NET Server Control), you get the same functionality with a web client. User interface components are updated without requiring a "round-trip" to the server to reload the entire page. This allows web applications to have dynamic user interfaces without the constant and potentially slow reloading of pages.

What is a business component?
A business component is any component that is not defined by user interface functionality, but rather by business logic that is encapsulated. This is not to say that a business component cannot have a user interface - it can. Consider a spreadsheet component. While it may seem to be simply a user interface component, it also contains business logic that performs calculations on the spreadsheet data. As such, it is considered a business component because its primary functionality is the spreadsheet logic.

What is a CLX?
The Component Library for Cross Platform was created by Borland to allow developers to create components that can be used on both the Windows and Linux platforms. Based on Borland's Visual Component Library (VCL) and using Delphi syntax, CLX components can be used to create single-source applications for use on multiple platforms.

What is a COM component?
A COM component is a component based on Microsoft's Component Object Model. COM components are available as either ActiveX controls (OCX), ActiveX DLL/In Process Servers (DLL), or ActiveX EXE/Out of Process Servers (EXE). Depending upon the functionality provided, virtually any COM component can be used from within a COM enabled environment such as Visual Basic, Visual C++, Internet Information Server, etc.

What is a DLL?
A DLL or Dynamically Linked Library refers to a callable, compiled library with exposed properties, methods, and events.

What is a GUI component?
A GUI - or Graphical User Interface - component is designed to provide some sort of visual interface such as a toolbar, button, menu, listbox, grid, chart, report, etc. They are generally run on the client. However, in the case of Active Server Pages and .NET Framework Server-Side User Interface components, they can also exist on the server, sending user interface information to the client.

What is a server component?
A server component is any component that, by design, is able to be deployed on a server. This includes COM components optimized for Active Server Pages web servers, EJB components designed to run in a Java application server, and Microsoft Transaction Server (MTS) components designed to provide distributed component functionality. While most server side components have generally been limited to business logic, Microsoft's .NET framework allows for server side user interface components, as well as business logic.

What is a VBX?
A VBX is a 16-bit component for use in 16-bit versions of Visual Basic. While most current components are 32-bit OCXs or DLLs, VBXs are still available for legacy systems.

What is a VCL component?
The Visual Component Library is a component model from Borland that allows the creation of reusable components in Delphi and C++Builder. VCL components run on the Microsoft Windows platform.

What is an EJB component?
An Enterprise JavaBean component is a JavaBean designed to run in a distributed environment. EJBs run inside Java Application Servers and allow for distributed, scalable deployment of business logic. In general, EJB components encapsulate "middle-tier" business logic.

What is an OCX?
An OCX is an ActiveX control. It is a COM component that requires a control container - such as a Visual Basic form in order to be created. It is generally used to provide some sort of visual interface to an application (such as a Grid or Button) but can also be used to simply encapsulate business logic.

What is C#?
C# (pronounced "C sharp") is a new development language from Microsoft that combines the strength of C++ with the ease of use of Visual Basic. It allows developers to build robust, object-oriented applications with fewer lines of code than C++ requires, thus reducing the possibility of introducing errors. It has been designed to work seamlessly with the .NET Framework.

What is COM?
COM is Microsoft's Component Object Model. It establishes interfaces for exposing properties, methods, and events for use by other processes. It is the core functionality upon which ActiveX components (allowing developers to leverage the capabilities of other COM components) and OLE (Object Linking and Embedding - allowing applications to share data, such as embedding a spreadsheet in a Word document) are built.

What is CORBA?
The Common Object Request Broker Architecture is a specification - created by the Object Management Group (OMG) - for distributed, scalable components . It defines how CORBA objects communicate with each other via CORBA-compliant ORBs.

What is Kylix?
Kylix is a new Integrated Development Environment from Borland designed to run on the Linux platform. It utilizes Delphi syntax as well as CLX components to allow developers to created component-based, Xwindow-enabled Linux applications in much the same way as Delphi and VCL components allow rapid application development for Windows.

What is the .NET Framework?
The .NET Framework is Microsoft's version of COM that brings complete integration with Internet technologies. .NET Framework components are able to implement their interfaces as services, which allows applications to use the functions of a component across the Internet without being required to load the component on the client machine.

What is the difference between a JavaBean and an Enterprise JavaBean?
The differences are significant. JavaBean components are generally client-side components that run inside the Java Virtual Machine (VM). They are tightly integrated with the parent application. Enterprise JavaBeans are designed to run in a distributed environment inside an application server and are therefore subject to its requirements, capabilities, and restrictions. From an implementation standpoint, JavaBeans usually perform user interface functions or client-side business logic. EJBs perform distributed, "middle-tier" business logic. As such, you generally know before you begin whether you need to create/use a JavaBean or an EJB.

What languages can I use a component in?
That depends on the platform that the component was written for. A COM component can be used in virtually any COM-enabled development environment such as Visual Basic, Visual C++, Internet Information Server with Active Server Pages, etc. A VCL component can only be used within Borland Delphi or C++Builder. A JavaBean component must be used in a Java environment. A CLX component can be used in Borland Kylix (for Linux) and in Borland Delphi version 6.0 and above (for Windows).

What other programming languages can I use with .NET?
The .NET Framework is designed to allow a wide assortment of development environments to be used. The only requirement is that the language be a .NET consumer. There are already .NET consumers in FORTRAN, COBOL, RPG, and more, not to mention the entire Visual Studio line including the new C#.

What's a "JIT"?
When you compile an application from C# (or VB.NET, or even COBOL) it is actually compiled into Microsoft Intermediate Language (MSIL). At runtime the MSIL code is compiled to native code by the JIT (or "just-in-time" compiler). Depending on how it is configured, the JIT can be optimized for speed by pre-compiling everything, or for size, by compiling "on the fly".

Which versions of the EJB specification are supported by WebLogic Server?
Different versions of WebLogic Server support different versions of the EJB spec. WLS 6.0 - 7.0 support EJB 1.1 and 2.0. WLS 5.1 supports EJB 1.1, and WLS 4.5.x supports EJB 1.0.