The Story of MainsoftEstablished in 1993, Mainsoft originally started integrating C++ into Unix and Linux environments. Located in California, they have been an Advanced IBM Partner since 2004. They are known for their .NET to Java interoperability and their vision to move towards Open Systems while helping organizations preserve existing Microsoft-oriented IT investments. In 2002 they started developing solutions to integrate .NET applications in Java solutions. According to the company, they spent over US$ 14 mil. to develop the core compilation technology that’s used in their products today.
The Problem and The ChallengeThe business problem is fairly straightforward, and not unfamiliar to most of us. How do organizations provide a single view of their information and streamline their business processes when they have any number of applications and systems in a mixture of technologies like .NET and Java, SharePoint and WebSphere? Any solution must enable the bridging of disparate data silos and must provide single sign-on capability.
In the case of SharePoint, the problem is how to pull together all the silos of information often found in departments implementations, and make them available to the wider enterprise audience?
Mainsoft for WebSphere PortalMainsoft has created a product suite called Mainsoft for WebSphere Portal. This is a Visual Studio-based SDK that helps MS developers create applications that will run as JSR-168 portlets natively in WebSphere Portal -- no Java knowledge required. There are three components to the Suite: Mainsoft Portal Edition This product enables developers to create .NET applications in C# or VB.NET and compile them to run as portlets within WebSphere Portal. Developers also have access to WebSphere Portal Services when they are developing their applications to create truly integrated solutions.
Mainsoft SharePoint Federator for WebSphere Portal The SharePoint Federator enables developers to easily incorporate SharePoint lists and document libraries into WebSphere Portal. There are several out of the box portlets that can be easily configured to connect to existing SharePoint lists. This includes single sign-on from WebSphere to SharePoint. In addition, composite applications can be developed that incorporate SharePoint data and then deloyed a native Java portlets in WebSphere Portal.
SQL Reporting Services Federator This Federator provides role-based access to SQL Reports within the WebSphere Portal. Reports can be integrated as drill down reports through the Portal Dashboard.
How They Do ItSo this is all pretty interesting, but you are wondering just how they do it? How do they get the caramel in the caramilk bar? Okay no, how do they compile .NET apps into JSR-168 compliant Java portlets? Well they could do it using WSRP web services or web clipping technology, but they don’t.
Instead, Mainsoft have spent years perfecting a patented cross-compiler. This compiler takes .NET source code and compiles it into Java bytecode. Using the Visual Studio SDK described above, developers can continue to build their applications in .NET. Once built, they then use Mainsoft Portal Edition to package the compiled application and .NET class libraries into native JSR 168-compliant portlets.
Mainsoft for Websphere Portal currently supports the .NET Framework 2.0 and with Visual Studio 2005. There are plans to extend support to the latest version of the framework (3.5) and Visual Studio 2008 by the end of 2008.
Playing on My OwnNever completely satisfied to just talk about the technology, Mainsoft was good enough to provide us with an environment to test their product. Thanks to Danielle Matthews and Jenna Dobkin from Mainsoft for aiding us through the exploration and supporting our virtual playground. And so test we did...
The TestsWith access to a full WebSphere Portal and SharePoint 2007 environment, we conducted two different tests. With guidance from Oved Yavine of Mainsoft, we followed a series of steps that included reading topical material and then completing a number of exercises to get the full understanding of what the product can do. Creating a Portal Application The first test involved creating a basic portlet that displays a list of stocks and their prices. We started by creating an ASP.NET Portal Application and adding a Web Reference to a web service that returns a set of stock quotes.
Next we created an ObjectDataSource control that pulled data from an XML file (which the web service connected to). We then customized the look of the data set.
Once this was completed, we tied in the WebSphere User Profile to the portlet. This was done by mapping the ASP.NET Profile APIs to the portal user profile management. Mainsoft’s portal application template generates a web.config file that contains the Mainsoft WebSphere specialized profile.
By opening the portlet.xml we were able to view and select the user profile variables that are declared via the JSR-168 application. Once this was done we could drop a wpPerson control into the app, which provided people awareness to the portlet.
The final step consisted of creating an edit form that allows a user to change to stock exchange for the dataset.
Integrating SharePoint Content into WebSphere Portal The second test demonstrated how easy it is to integrate SharePoint data into WebSphere Portal through a portlet using the Mainsoft SharePoint Federator.
To start, we created a new list in SharePoint and added a number of items to the list. Next we opened Visual Studio and created a new ASP.NET Portal Application. To this we added a DataGrid control and a SharePointDataSource control that connected to SharePoint to pull the list of content. Note that the SharePointDataSource control is one of the components of Mainsoft's SharePoint Federator package.
The SharePointDataSource control has a design time wizard that let's one easily connect to the correct SharePoint list, and customize the data we wanted to retrieve -- including which columns and rows to pull back, as well as any desired sorting or grouping. This is done using CAML code -- either writing the code directly or by using an XML editor. As a second part of the test, we checked-out the Save Credentials control. This control enables us to store the credentials for the connection to SharePoint without having to hard-code them into the DataSourceControl.
The WebSphere Portal Credential Vault is a location that Mainsoft’s SharePoint Federator portlets can safely store the connection information to connect to SharePoint sites. With a Credential Vault users can modify the connection information via an edit form. The first time you access the portlet, you will get prompted to enter the credentials. They will then be saved to the vault Both these controls were simple to implement and the results were there immediately.