Welcome!

Java Authors: Roger Strukhoff, Lori MacVittie, Esmeralda Swartz, Trevor Parsons, Sandi Mappic

Related Topics: Java

Java: Article

Building Pure Java Apps Using Visual Studio

How to mix cats and dogs

We all know and love the Microsoft Visual Studio IDE, but did you know that you can use it to create Web and server applications that run on open systems such as Solaris or Linux? Urix, a predictive modeling software company and Mainsoft customer since 2005, is doing just that.

Urix
In January 2005, Urix migrated the development of its RiskSmart calculation engine from C to C#. RiskSmart consists of 150,000 lines of C# code and executes as a set of .NET assemblies, with no user interface, as part of a comprehensive solution for analyzing health care risks and associated costs.

However, according to Atul Mistry, vice-president of technology at Urix, the product's reliance on Windows and .NET effectively limited its market potential. "Our business partners have standardized on Unix, and virtually all of our largest health care insurance customers have Unix-only requirements in their datacenters, running on AIX, HP-UX, or Solaris. We figured we could convince some of the insurance companies to use Windows and .NET, but this wouldn't solve the significant sales barrier we faced. We also considered delivering RiskSmart as a Software as a Service (SaaS) offering, but the healthcare industry is not yet ready for this type of approach. Bottom line is we would lose significant business opportunities if we didn't deliver a Unix deployment."

Mistry considered rewriting RiskSmart in Java and maintaining two source bases. He estimated the rewrite would take two person-years for the initial port to Java, plus two Java developers on an ongoing basis to support ongoing maintenance and enhancement costs. "This approach would cost on the order of $200,000 annually," he explains.

Instead, Mistry chose Mainsoft's cross-compilation software, Mainsoft for Java EE. The software plugs into the Visual Studio development environment and compiles Microsoft's Common Intermediate Language (CIL) into Java bytecode. It also supports a long-term single source code development strategy across .NET and Java.

"The initial port of RiskSmart to Java using Mainsoft took about two person-weeks," Mistry said. "The port was exceptionally easy in part because the ported Java code ran directly on a Java VM. Because there was no user interface component to RiskSmart, there were no complexities associated with an application server. There were only a couple of things we had to do manually," he explained. "We used log4net, an Apache project, as our logging utility, and we simply had to switch that to log4j during the port. The second thing was that we used a lot of XML, and there are some inconsistencies between Microsoft XML and other implementations. Mainsoft's support team helped us resolve both these issues very quickly."

According to Mistry, "There's no apparent performance difference between the .NET and Java versions of the application. We take a minor performance hit in our current Java release because .NET 1.1 doesn't support generics and requires us to use boxing (or casting) in our code, which can have a negative effect on Java performance. We expect the minor performance gap will be eliminated when we upgrade to .NET 2.0 and take full advantage of generics, which is supported by Mainsoft, in lieu of boxing."

RiskSmart is currently in its third Java release and is now in production at virtually all of its largest health insurance customers' data centers, supporting 70% of all lives that are analyzed by the RiskSmart calculation engine. The development team builds the application nightly, and then executes Mainsoft to build the Java port. "Most product testing occurs on the .NET version, with some testing done on the Java side to assure its integrity. When RiskSmart for .NET is ready to ship, so is RiskSmart for Java."

Starting in .NET 2.0
If you're a Visual Studio developer, you can start with Mainsoft's Grasshopper to explore how to cross-compile and debug Java EE applications from Visual Studio. Grasshopper 2.0 is Mainsoft's freely available Developer Edition that includes a plug-in to Visual Studio 2005 and the open source Tomcat servlet engine for executing Java JSP and EE applications on a single CPU. You'll find that if you know C# or Visual Basic, you're on your way to becoming a Java EE developer!

One example to get you started is a Web-based accounting application with membership and role-based security using ASP.NET 2.0. The application uses Master Pages and the Login, Wizard, and Gridview controls and was originally developed by Paolo de Nictolis for JavaDay 2006 in Rome (http://roma.javaday.it ). The application relies on Mainsoft's full implementation of the ASP.NET 2.0 Membership, Role, and Profile providers based on Apache Derby (http://db.apache.org/derby/), an embedded database that offers a pure Java runtime alternative to MS SQL Express. Paolo shows you how to access application data, which remains stored in MS SQL Express 2005 (www.microsoft.com/sql/editions/express/default.mspx); how to take advantage of the integrated debugger, based on open standard JPDA (Java Platform Debugger Architecture, http://java.sun.com/products/jpda/); and how to create a deployment package that can be used over multi-platform application servers.

Let's take a deeper look at implementing this accounting application using Mainsoft's Grasshopper 2.0.

The Preliminaries
You'll have to download a few files from several places first. The setup file for JD Expenses is available at http://dev.mainsoft.com/JDExpensesDemo. It assumes you have Visual Studio 2005 with Service Pack 1 (SP1) installed.

The next thing you'll need to download is Grasshopper 2.0, which is available at http://dev.mainsoft.com/Default.aspx?tabid=117. Installation instructions along with release notes, feature limitations, and known issues are there as well. Basic requirements include a Windows XP SP2 machine, a Windows 2003 Server, or Windows Vista Ultimate or Business.

Note: If you choose to install Grasshopper on Windows Vista, you must launch Visual Studio from an administrator command prompt and launch the Tomcat application server as an administrator.

Starting with a Database
There's no denying it. Creating a well-designed application database can help make application development proceed much faster. JDExpenses, our imaginary accounting application, allows conference speakers to input their expenses, and the administrator to view each person's balances, while role-based authentication is provided out-of-the-box by the ASP.NET 2.0 Membership and Role API. Balance is defined as a BigInteger to demonstrate how Grasshopper handles a native Java type.

Database structure is shown in Figure 1. For us to use the SQL Server from a Grasshopper application, we have to configure it: we'll log in using SQL Server authentication and enable Mixed Mode Authentication in the database Properties. To do this, you can use Microsoft's SQL Server Management Studio Express (SSMSE) tool freely available for download from Microsoft at www.microsoft.com/downloads/details.aspx?familyid=C243A5AE-4BD1-

4E3D-94B8-5A0F62BF7796&displaylang=en.

Launch SSMSE, sign in, select the database, and right-click. From the context menu, select Properties. You'll see the SQL Server Properties dialog. Select Security and make sure that the SQL Server and Windows Authentication mode radio button is selected.


More Stories By Philippe Cohen

Philippe Cohen is the vice president of products for Mainsoft Corporation, where he is responsible for overseeing product management, R&D, and support teams for Mainsoft's product suite.

More Stories By Paolo de Nictolis

Paolo de Nictolis is an Italian Web developer, a technical contributor to MSDN and UGI.NET, and a freelance IT journalist.

Comments (1)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@ThingsExpo Stories
The Internet of Things will greatly expand the opportunities for data collection and new business models driven off of that data. In her session at Internet of @ThingsExpo, Esmeralda Swartz, CMO of MetraTech, will discuss how for this to be effective you not only need to have infrastructure and operational models capable of utilizing this new phenomenon, but increasingly service providers will need to convince a skeptical public to participate. Get ready to show them the money! Speaker Bio: Esmeralda Swartz, CMO of MetraTech, has spent 16 years as a marketing, product management, and busin...
Samsung VP Jacopo Lenzi, who headed the company's recent SmartThings acquisition under the auspices of Samsung's Open Innovaction Center (OIC), answered a few questions we had about the deal. This interview was in conjunction with our interview with SmartThings CEO Alex Hawkinson. IoT Journal: SmartThings was developed in an open, standards-agnostic platform, and will now be part of Samsung's Open Innovation Center. Can you elaborate on your commitment to keep the platform open? Jacopo Lenzi: Samsung recognizes that true, accelerated innovation cannot be driven from one source, but requires a...
SYS-CON Events announced today that Red Hat, the world's leading provider of open source solutions, will exhibit at Internet of @ThingsExpo, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Red Hat is the world's leading provider of open source software solutions, using a community-powered approach to reliable and high-performing cloud, Linux, middleware, storage and virtualization technologies. Red Hat also offers award-winning support, training, and consulting services. As the connective hub in a global network of enterprises, partners, a...
P2P RTC will impact the landscape of communications, shifting from traditional telephony style communications models to OTT (Over-The-Top) cloud assisted & PaaS (Platform as a Service) communication services. The P2P shift will impact many areas of our lives, from mobile communication, human interactive web services, RTC and telephony infrastructure, user federation, security and privacy implications, business costs, and scalability. In his session at Internet of @ThingsExpo, Robin Raymond, Chief Architect at Hookflash Inc., will walk through the shifting landscape of traditional telephone a...
SYS-CON Events announced today that Matrix.org has been named “Silver Sponsor” of Internet of @ThingsExpo, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Matrix is an ambitious new open standard for open, distributed, real-time communication over IP. It defines a new approach for interoperable Instant Messaging and VoIP based on pragmatic HTTP APIs and WebRTC, and provides open source reference implementations to showcase and bootstrap the new standard. Our focus is on simplicity, security, and supporting the fullest feature set.
BSQUARE is a global leader of embedded software solutions. We enable smart connected systems at the device level and beyond that millions use every day and provide actionable data solutions for the growing Internet of Things (IoT) market. We empower our world-class customers with our products, services and solutions to achieve innovation and success. For more information, visit www.bsquare.com.
How do APIs and IoT relate? The answer is not as simple as merely adding an API on top of a dumb device, but rather about understanding the architectural patterns for implementing an IoT fabric. There are typically two or three trends: Exposing the device to a management framework Exposing that management framework to a business centric logic • Exposing that business layer and data to end users. This last trend is the IoT stack, which involves a new shift in the separation of what stuff happens, where data lives and where the interface lies. For instance, it’s a mix of architectural style...
From a software development perspective IoT is about programming "things," about connecting them with each other or integrating them with existing applications. In his session at @ThingsExpo, Yakov Fain, co-founder of Farata Systems and SuranceBay, will show you how small IoT-enabled devices from multiple manufacturers can be integrated into the workflow of an enterprise application. This is a practical demo of building a framework and components in HTML/Java/Mobile technologies to serve as a platform that can integrate new devices as they become available on the market.
SYS-CON Events announced today that SOA Software, an API management leader, will exhibit at SYS-CON's 15th International Cloud Expo®, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. SOA Software is a leading provider of API Management and SOA Governance products that equip business to deliver APIs and SOA together to drive their company to meet its business strategy quickly and effectively. SOA Software’s technology helps businesses to accelerate their digital channels with APIs, drive partner adoption, monetize their assets, and achieve a...
SYS-CON Events announced today that Utimaco will exhibit at SYS-CON's 15th International Cloud Expo®, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Utimaco is a leading manufacturer of hardware based security solutions that provide the root of trust to keep cryptographic keys safe, secure critical digital infrastructures and protect high value data assets. Only Utimaco delivers a general-purpose hardware security module (HSM) as a customizable platform to easily integrate into existing software solutions, embed business logic and build s...
Connected devices are changing the way we go about our everyday life, from wearables to driverless cars, to smart grids and entire industries revolutionizing business opportunities through smart objects, capable of two-way communication. But what happens when objects are given an IP-address, and we rely on that connection, sometimes with our lives? How do we secure those vast data infrastructures and safe-keep the privacy of sensitive information? This session will outline how each and every connected device can uphold a core root of trust via a unique cryptographic signature – a “bir...
Internet of @ThingsExpo Silicon Valley announced on Thursday its first 12 all-star speakers and sessions for its upcoming event, which will take place November 4-6, 2014, at the Santa Clara Convention Center in California. @ThingsExpo, the first and largest IoT event in the world, debuted at the Javits Center in New York City in June 10-12, 2014 with over 6,000 delegates attending the conference. Among the first 12 announced world class speakers, IBM will present two highly popular IoT sessions, which will take place November 4-6, 2014 at the Santa Clara Convention Center in Santa Clara, Calif...
Almost everyone sees the potential of Internet of Things but how can businesses truly unlock that potential. The key will be in the ability to discover business insight in the midst of an ocean of Big Data generated from billions of embedded devices via Systems of Discover. Businesses will also need to ensure that they can sustain that insight by leveraging the cloud for global reach, scale and elasticity.
WebRTC defines no default signaling protocol, causing fragmentation between WebRTC silos. SIP and XMPP provide possibilities, but come with considerable complexity and are not designed for use in a web environment. In his session at Internet of @ThingsExpo, Matthew Hodgson, technical co-founder of the Matrix.org, will discuss how Matrix is a new non-profit Open Source Project that defines both a new HTTP-based standard for VoIP & IM signaling and provides reference implementations.

SUNNYVALE, Calif., Oct. 20, 2014 /PRNewswire/ -- Spansion Inc. (NYSE: CODE), a global leader in embedded systems, today added 96 new products to the Spansion® FM4 Family of flexible microcontrollers (MCUs). Based on the ARM® Cortex®-M4F core, the new MCUs boast a 200 MHz operating frequency and support a diverse set of on-chip peripherals for enhanced human machine interfaces (HMIs) and machine-to-machine (M2M) communications. The rich set of periphera...

SYS-CON Events announced today that Aria Systems, the recurring revenue expert, has been named "Bronze Sponsor" of SYS-CON's 15th International Cloud Expo®, which will take place on November 4-6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Aria Systems helps leading businesses connect their customers with the products and services they love. Industry leaders like Pitney Bowes, Experian, AAA NCNU, VMware, HootSuite and many others choose Aria to power their recurring revenue business and deliver exceptional experiences to their customers.
The Internet of Things (IoT) is going to require a new way of thinking and of developing software for speed, security and innovation. This requires IT leaders to balance business as usual while anticipating for the next market and technology trends. Cloud provides the right IT asset portfolio to help today’s IT leaders manage the old and prepare for the new. Today the cloud conversation is evolving from private and public to hybrid. This session will provide use cases and insights to reinforce the value of the network in helping organizations to maximize their company’s cloud experience.
The Internet of Things (IoT) is making everything it touches smarter – smart devices, smart cars and smart cities. And lucky us, we’re just beginning to reap the benefits as we work toward a networked society. However, this technology-driven innovation is impacting more than just individuals. The IoT has an environmental impact as well, which brings us to the theme of this month’s #IoTuesday Twitter chat. The ability to remove inefficiencies through connected objects is driving change throughout every sector, including waste management. BigBelly Solar, located just outside of Boston, is trans...
SYS-CON Events announced today that Matrix.org has been named “Silver Sponsor” of Internet of @ThingsExpo, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Matrix is an ambitious new open standard for open, distributed, real-time communication over IP. It defines a new approach for interoperable Instant Messaging and VoIP based on pragmatic HTTP APIs and WebRTC, and provides open source reference implementations to showcase and bootstrap the new standard. Our focus is on simplicity, security, and supporting the fullest feature set.
Predicted by Gartner to add $1.9 trillion to the global economy by 2020, the Internet of Everything (IoE) is based on the idea that devices, systems and services will connect in simple, transparent ways, enabling seamless interactions among devices across brands and sectors. As this vision unfolds, it is clear that no single company can accomplish the level of interoperability required to support the horizontal aspects of the IoE. The AllSeen Alliance, announced in December 2013, was formed with the goal to advance IoE adoption and innovation in the connected home, healthcare, education, aut...