Introduction
Mainsoft for Java EETM version 2.5 is now available.
Mainsoft for Java EE preserves existing investments in code and skills while delivering
the performance, scalability, and security of industry-leading Java EE application
servers. Microsoft-skilled developers can develop new applications and deploy existing
Web-based and server-based .NET applications to Java EE application servers and
to IBM WebSphere Portal.
What's new?
What's new in version 2.5?
Mainsoft for Java EE version 2.5 is the first release to support Visual Studio 2008.
Although this release does not yet support .NET Framework 3.x, it does include several
productivity features that take advantage of Microsoft's latest development environment.
New improvements in the product include:
-
ASP.NET AJAX and JavaScript support
-
-
Out-of-the-box support for ASP.NET AJAX 1.0.
-
Support for JavaScript IntelliSense.
-
Support for JavaScript debugging.
-
Improved Web development experience
-
-
New Web Designer support including split view editing.
-
Improved CSS development including CSS style management, CSS properties window,
and CSS IntelliSense.
-
Nested Master Page support.
-
Language support
-
Mainsoft added support for C# 3.0 and Visual Basic 9 language features, including
local type inference, object and collection initializers, anonymous types, auto-implemented
properties, and partial methods.
-
Bug fixes
-
What's new in version 2.2?
Mainsoft for Java EE version 2.2 introduces the following new features and improvements:
- ASP.NET AJAX support
-
Mainsoft 2.2 supports the ASP.NET AJAX Extensions V1.0, and includes a ported version
of the open source
ASP.NET AJAX Control Toolkit.
- Debugger improvements
-
Mainsoft 2.2 significantly improves the performance of the debugger, and its usability
on WebSphere Portal. These improvements include reduced debugger startup time; improved
performance of complex data types evaluation and local variables evaluation; and
improved execution flow performance.
Mainsoft 2.2 includes many additional bug fixes with regards to execution flow and
the evaluation of complex expressions.
- Improved request processing model in the portal
-
This feature applies to the Mainsoft for Java EE Portal Edition only.
Mainsoft 2.2 offers a new and improved request processing model in portal applications,
which automatically bridges the semantic gaps between the ASP.NET model and the
JSR 168 model.
Due to this change, you may have to make some source code changes in your portal
applications.
- Bug fixes
-
Some of the major bugs resolved in Mainsoft 2.2 are:
- 9342: Using the ASP.NET appSetting expression fails.
- 9695: Accessing an inner class from an externel JAR fails in specific scenarios.
- 9792: Improve the support for Turkish regional settings.
- 9868: Improve memory consumption when calling XmlDocument.SelectSingleNode.
What's new in version 2.1?
Mainsoft for Java EE 2.1 introduces support for the new Mainsoft SharePoint Integrator for WebSphere Portal
SDK, and includes several improvements in the following areas:
For the Portal Edition:
-
Mainsoft SharePoint Integrator for WebSphere Portal SDK includes ASP.NET Web controls and ready-to-use
portlets that enable integration with SharePoint document libraries and SharePoint
lists, and is available as an add-on to the Portal Edition.
Mainsoft SharePoint Integrator for WebSphere Portal SDK enables ASP.NET developers to create portal composite
applications integrating SharePoint data, and also allows customization of the Mainsoft SharePoint Integrator portlets, which are available in source code form, to match specific organizational
needs.
Mainsoft SharePoint Integrator for WebSphere Portal requires a separate license for activation. For pricing
and licensing information, contact sales@mainsoft.com.
- Fixed several important defects, among them:
- 9043: Automatic removal of global HTML tags, which causes unexpected behavior in
the Visual Studio designer.
For all Mainsoft editions:
- Support for automatic builds from Microsoft Team System.
- Fixed several important defects, among them:
- 8832: Compilations errors with projects containing multiple external Java references
when using MSBuild.
- 9000: DataSet WriteXml with XmlWriteMode.WriteSchema writes only schema and not
data.
- 9002: Problem adding obfuscated Java class libraries as Java references in Visual
Basic projects.
- 9067: Cannot build using MSBuild command line if Java references are not in lower
case.
- 9165: SortedList<T, T> misbehavior.
- 9194: Server-side validation errors are not displayed when there is no client-side
validation, and the validator's display mode is set to Dynamic.
- 9222: Optimizations in Generic collections.
- 9248: Exception thrown when using generic methods with return value of a generic
type with constraints.
What's new in Service Pack 1?
Service Pack 1 for Mainsoft for Java EE 2.0 includes improvements in the following
areas:
For the Portal Edition:
- Improved the build performance of portal applications.
- Improved the runtime performance of portal applications.
- Fixed several important defects, among them:
- 8682: Browser refresh initiating a post operation causes exception in portlet.
- 8689: Calling Response.Redirect with an external URL fails.
- 8691: Transferring parameters between the processAction and render phases fails.
- 8694: Wrong handling of post-back data in re-render situations.
- 8699: Wrong ViewState loaded in portlet when switching between portlet modes.
- 8777: IsUserInRole does not work in servlet context in Portal 6.0.1.0.
- 8794: Remove non-pure Java implementation of GetEnvironmentVariable; GetEnvironmentVariable
is no longer supported in Java 1.4 (and returns null).
- 8795: Exception in FileUpload control when Process Action property is set
to True.
For all Mainsoft editions:
- Improved integration of Mainsoft for Java EE with 3rd party Visual Studio add-ins,
including JetBrains ReSharper 2.5 and 3.0.1, and Developer Express Refactor!™
Pro.
- Added Mainsoft Framework class library reference to the documentation.
- Fixed several important defects, among them:
- 8698: Cannot NTLM-authenticate with IIS7-based servers.
- 8700: Cannot consume Web service with TypedDataTable parameter.
- 8763: java.lang.VerifyError in specific rare usage of generics.
- 8766: Failed to read and write profile properties inside a property group.
- 8786: Failed to catch a generic object.
- 8970: SoapException/Fault does not deserialize detail field (expects namespace).
What's new in version 2.0?
Mainsoft for Java EE version 2.0 is a major upgrade to Mainsoft's .NET/Java EE interoperability
product suite, formerly called Visual MainWin for J2EE 1.8.1. Version 2.0 introduces
several productivity features that take advantage of Microsoft's latest development
technologies and enhance the ability to leverage Java EE platform capabilities.
This section describes the main new features of this version.
- Support for Visual Studio 2005
-
Version 2.0 is a cross-platform extension of the Microsoft Visual Studio development
platform and it leverages many of the Visual Studio 2005 productivity features,
including:
- C # and Visual Basic 2.0 languages support, including generics, partial classes,
and nullable types.
- .NET Framework 2.0 support: Mainsoft's Java EE implementation of the .NET Framework
has been upgraded to support the .NET Framework 2.0. The most significant upgrades
include:
- Visual Studio debugger integration, including generics type visualization.
-
Improvements to the Portal Edition
-
Mainsoft for Java EE, Portal Edition V2.0, introduces several new features that
enhance the integration of the Mainsoft ASP.NET Framework with IBM WebSphere Portal
and significantly enhances the .NET developer's ability to rapidly create .NET applications
that run on the Java EE portal. These enhancements include:
- Seamless ASP.NET integration with portal security: authentication and authorization.
ASP.NET developers can now leverage the portal security infrastructure without learning
new APIs.
- Automatic propagation of the portal's user identity to the ASP.NET Principal identity.
With no code changes, the ASP.NET applications can leverage the portal's single
sign-on infrastructure.
- Integration with WebSphere Portal User Management and authorization. ASP.NET applications
can access user management information and validate role-based access rules using
ASP.NET Membership and Role API.
- Mainsoft provides ASP.NET Membership and Role providers specialized for WebSphere
Portal that are based on WebSphere Portal User Management Architecture (PUMA).
- Seamless integration with portal personalization infrastructures. Mainsoft provides
a specialized profile provider, which is automatically initialized with the portal
user's profile data and stores custom application profile properties in the portlet
preferences.
- ASP.NET applications can access and update personalization data stored in portlet
preferences using easy-to-use ASP.NET Profile properties.
- ASP.NET applications can access portal user's profile data using ASP.NET Profile.
- Seamless integration with portal branding: ASP.NET portlets are rendered using the
portal's themes. Mainsoft provides an ASP.NET themes build on portal style-sheet
classes.
- Intuitive configuration of portal application: Mainsoft provides a visual Portlet
Designer that enables Visual Studio developers to configure the portal application
without editing the JSR 168 deployment descriptor manually. Adding portlets, portlet
modes, localizations, and user attributes is done using an intuitive graphic Portlet
Designer, while still allowing direct XML editing.
- Complex portal applications are easily developed and maintained from within the
Visual Studio IDE. Mainsoft's Portal Edition enables an integrated execution of
the WebSphere Portal configuration XML Access scripts from within the Visual Studio
build processes.
- Localization enhancements: the ASP.NET culture is automatically set according to
the language defined in the portal user's profile.
- Easy access to JSR 168 portlet classes from ASP.NET Mainsoft.Web.Portal.Page
properties, so there's no need for mapping functions.
- WebSphere Portal API and SPI documentation is integrated into the Visual Studio
2005 help collection.
-
Enhancements to developer productivity
-
Version 2.0 introduces several enhancements that improve the productivity in developing
Java EE applications.
- A new deployment process from the Visual Studio environment, which speeds the development
cycle and simplifies the packaging process.
- Quick Java EE application server configuration with automatic default parameter
fetching and no application server restart.
- Improved Java reference feature:
- Automatic detection of Java libraries available on the application server shared
classpath.
- Enhanced flexibility: Development can be done either with the Mainsoft Framework
packaged within the application, for quick out-of-the-box startup, or deployed inside
the server shared classpath, for an optimized development cycle.
- Unattended batch builds based on MSBuild, including ability to build Web projects
without having the application server running.
- Simplified console and class libraries development:
- Ability to configure the Java runtime environment (JRE).
- Ability to invoke Java EE APIs from one of the configured application servers.
- Batch file generation to ease the launch of the console application from the operating
system shell.
System requirements
Required software components
These are the required software components:
-
One of the following operating systems:
-
Visual Studio 2008, Standard or Professional editions, including the Visual Web
Developer component
System settings
The required system settings are:
Working with Windows Vista
In order to work with Mainsoft for Java EE on Windows Vista, you must launch Visual
Studio from an administrator command prompt and launch Tomcat application server
as an administrator.
Hardware requirements
Mainsoft for Java EE does not present hardware requirements beyond those specified
for the operation of the above software components, as described in their respective
technical documentation.
Java EE application servers requirements
If you are using Mainsoft for Java EE with a local IBM WebSphere Application Server
or IBM WebSphere Portal, the following hardware requirements apply:
-
Intel™ Pentium™ 4, at 3 GHz.
-
For WebSphere Application Server: a hyper-threaded machine, with at least 1 GB memory.
-
For WebSphere Portal: a dual core machine, with at least 2 GB memory (3 GB memory
is recommended).
For an elaborate list of system requirements for the application servers, check
these links:
Supported application servers
Mainsoft for Java EE is committed to the JSR specifications in creating Java EE
compliant applications, which can be deployed on any Java EE compliant server.
The Mainsoft for Java EE extension to Visual Studio provides development support
for the following Java EE application servers:
- In the Enterprise edition
- In the Portal edition
-
IBM WebSphere Application Server 6.0.2, 6.1.0.3, and higher
-
IBM WebSphere Portal 5.1 (portal server), both Test Environment and Enterprise editions
(Enable and Extend), which run on one of the supported WebSphere Application Servers.
-
IBM WebSphere Portal 6.0 (portal server)
-
Apache Tomcat 5.5
Note
The ASP.NET implementation of Mainsoft for Java EE, Portal edition, is based on
the JSR 168 specifications. In addition to the ASP.NET classes implemented in the
System.Web* namespaces, Mainsoft provides several APIs that are specific
to WebSphere Portal. To create JSR 168 portable portal applications to be deployed
on portal servers other than WebSphere Portal, you need to avoid using the following
namespaces or classes:
- In the Developer edition
Note
By default, a bundled Tomcat application server is installed with the Mainsoft for
Java EE installation. Tomcat is not a full-featured Java EE application server,
and therefore will not leverage all the Mainsoft for Java EE features.
Mainsoft SharePoint Integrator for WebSphere Portal system requirements
The system requirements for the Mainsoft SharePoint Integrator for WebSphere Portal are the same as those
for the Portal Edition, with the following additions:
Supported SharePoint releases:
- Windows SharePoint Services (WSS) Version 2 and Version 3
- Microsoft Office SharePoint Server (MOSS) 2003 and 2007
Supported MS SQL Reporting Services releases:
- MS SQL Server 2005 Reporting Services
Verified databases and JDBC drivers
The Mainsoft for Java EE ADO.NET implementation requires JDBC 2.0 and Java EE 1.3
compliant drivers. You may check the compliancy of your JDBC driver, in
http://developers.sun.com/product/jdbc/drivers.
Here is the list of databases and JDBC drivers that are tested and verified with
Mainsoft for Java EE:
-
Microsoft SQL Server 2005 (all editions) with SQL server 2005 JDBC driver
-
Microsoft SQL Server 2000 SP4 with SQL server 2000 JDBC driver
-
PostgreSQL 8.0 with JDBC 3 driver for JDK versions 1.4 and 1.5
-
Oracle 9.2 and Oracle 10g with JDBC driver 10g
-
IBM DB2 8.2 with JDBC driver 8.2
Upgrading to the latest version
Upgrading from Mainsoft for Java EE 2.x
You can install Mainsoft for Java EE 2.5 side-by-side on the same computer with
older Mainsoft for Java EE installations. Projects developed with Mainsoft for Java
EE 2.2 will be upgraded automatically when opening them in Visual Studio 2008. However,
if you have existing projects developed with Mainsoft for Java EE 2.0 or 2.1, you
will need to first upgrade them. For more information, read
Upgrading existing Mainsoft for Java EE projects.
Upgrading existing Mainsoft for Java EE projects
Upgrading Mainsoft 2.2 projects
Upgrading existing Mainsoft for Java EE 2.2 projects to Mainsoft for Java EE 2.5
requires opening the project in Visual Studio 2008 and running the Visual Studio
Conversion Wizard.
Upgrading Mainsoft 2.0/2.1 projects
In order to upgrade existing Mainsoft for Java EE 2.0/2.1 projects to Mainsoft for
Java EE 2.5, use the ProjectUpgrade.exe command line utility, which
is located in your <Mainsoft_install_dir>\bin directory. Then,
open the project in Visual Studio 2008 and run the Visual Studio Conversion Wizard.
The utility supports projects with extensions .csproj and .vbproj
as well as .sln files.
Note
We recommend that you back up all of your solution and project files before running
the upgrade utility.
To use the upgrade utility, open a Command Prompt window via Start > Programs >
Mainsoft for Java EE 2.5 > Mainsoft for Java EE 2.5 Command Prompt, then change
directory to your Mainsoft for Java EE installation's bin folder, and run a command
similar to the following:
ProjectUpgrade.exe <full path to project/solution file>
When upgrading a Web application that runs on WebSphere Application Server or when
upgrading a portal application project, where the Virtual path property and
the Assembly name property of your project have different values, you must
do as follows:
-
In the WebSphere administration console, stop or uninstall the application named
by the value of the Assembly name property.
-
Redeploy your application.
Upgrading Visual MainWin 1.x projects
To upgrade existing Visual MainWin 1.x projects to Mainsoft for Java EE 2.2, you
should run the ProjectUpgrade.exe command line utility twice: first,
to upgrade the .vmwcsproj or .vmwvbproj file from 1.x
to 2.0, then a second time, to upgrade the .csproj or .vbproj
file from 2.0 to 2.2.
Limitations
Following are the limitations to the ProjectUpgrade.exe command line
utility:
- Web applications projects within a solution cannot be upgraded by providing just
the .sln file as the command line argument. Instead, for the Web application projects
only, you will need to run the upgrade utility again with the specific
.csproj/.vbproj
file.
- No support for projects created with Visual MainWin for J2EE Preview releases and
interim builds.
- No support for these project properties:
- Start Page
- Enable Remote Debugging
- Debug Port Number
Upgrading portal applications projects from version 2.x
This feature applies to the Mainsoft for Java EE Portal Edition only.
This topic is relevant only if you set the Process Action property of one
of your portlets to True, in the Portlet Designer.
Mainsoft for Java EE 2.2 offers a new and improved request processing model in portal
applications, which automatically bridges the semantic gaps between the ASP.NET
model and the JSR 168 model. Due to this change, you may have to make some source
code changes in your portal applications.
To better understand this topic, we recommend reading Portlet request processing before you continue.
Start by running the ProjectUpgrade tool to upgrade your portal project to version
2.2. To learn how, read
Upgrading existing Mainsoft for Java EE projects.
Source code changes
In the following scenarios, you will need to make some source code changes in your
portal application:
- When executing render code in action requests.
-
In older versions of Mainsoft for Java EE, the Page life cycle methods were called
twice in action requests—once in processAction phase and once in render phase. In
the new request processing model, the Page life cycle methods are always called
once, regardless of whether the request is an action request or a render request.
Consider code similar to the following:
protected void Page_Load(object sender, EventArgs e)
{
if (IsInProcessAction)
SetRenderParameter("key", "value");
else
Response.Write("Hello");
}
In the old model, in action requests, both the if clause and the else clause were
executed, because the method was called twice. In the new model, only the if clause
is executed in action requests. It is recommended to remove the else clause in this
case. For more information on portal request processing, read Portlet request processing.
- When generating action URLs in action requests.
-
Generating action URLs in action requests, in a Page life cycle method, will no
longer work. The reason is that creating action URLs is only possible in the render
phase. In action requests, the Page life cycle methods, except for Render, are not
executed in the render phase.
Possible solutions:
- If you generated an action URL to create an inter portlet communication action,
you will need to change your code according to the guidelines in Step 2: Write source portlet code.
- In other cases, it is recommended to replace your current code with an ActionURL
expression. To learn how, read Portal ASP.NET expressions.
- When using the SetRenderParameter method in render phase.
-
The Mainsoft.Web.Portal.Page.SetRenderParameter method can only be
used in the processAction phase, otherwise an exception is thrown. As a solution,
use Mainsoft.Web.Portal.Page.IsInProcessAction property before calling
the Mainsoft.Web.Portal.Page.SetRenderParameter method.
- When using the HttpServerUtility.Transfer or HttpServerUtility.Execute methods in
processAction phase.
-
The HttpServerUtility.Transfer and HttpServerUtility.Execute
methods may only be used in the render phase, otherwise an exception is thrown.
As a solution, use the Response.Redirect method instead.
Troubleshooting the Mainsoft for Java EE setup
If you encounter installation problems, try troubleshooting by checking the log
file install.log, which is automatically saved in the Mainsoft for Java
EE installation folder.
Known issues
There are some specific limitations you may encounter when working with this release
of Mainsoft for Java EE. They include:
-
If you receive an error message box with the text "JDKData entry for <> is
not found", it probably means your Visual Studio 2008 installation had been corrupted
while uninstalling older versions of Visual Studio. To fix this issue, repair the
Visual Studio 2008 installation via the Add or Remove Programs dialog from
the Control Panel.
-
The Generate Java EE Project wizard only supports projects targeting .NET
Framework 2.0. In order to port your .NET application to Java, make sure the Target
Framework project property is set to .NET Framework 2.0.
-
When adding a reference to a JAR file, if one of the classes has a base class in
its hierarchy that is not referenced, then the class is created as an abstract class
and cannot be instantiated. In order to use the class you need to add a reference
to the missing base class.
See the limitations section of the online documentation
to get a more comprehensive view of the product limitations.
|