<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!--
Copyright (c) 2009, 2010, 2011, 2012, Oracle and/or its affiliates. All rights reserved.
-->

<html>
<head>
        <title>Support for IMP-NG Profile in NetBeans IDE</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css"> 
        <meta name="description" content="This screencast demonstrates the support for the Information Module Profile - Next Generation profile in the NetBeans IDE">
</head>
<body>
    

<h1>Support for IMP-NG Profile in NetBeans IDE</h1>

<table>
<tr>
<td class="valign-top">

<p>This screencast demonstrates the support for the Information Module Profile - Next Generation profile (<a href="http://jcp.org/en/jsr/detail?id=228">JSR 228</a>) when developing small embedded JavaME applications in the NetBeans IDE. In the screencast you create a simple IMP-NG application with an IMLet in a standard IDE project. The screencast also demonstrates a General Purpose Input/Output Demo created specifically for the IMP-NG platform on Windows.</p>
<P>Author: Alyona Stashkova <br>
  Time: 7:28 </p>
 <p><a href="http://bits.netbeans.org/media/imp-ng.mp4">Watch full size/Download</a> (.mp4)
                        (Ctrl-Click to download, 16,3 MB)</p>

 <div class="feedback-box"><a href="/about/contact_form.html?to=6&amp;subject=Feedback:%20Screencast%20-%20Support%20for%20IMP-NG%20Profile%20in%20NetBeans%20IDE">Send Us Your Feedback</a></div>


 <br style="clear:both;">
              </td>

                <td width="5">&nbsp; </td>
      <td class="valign-top" width="486">
   <script src="/images_www/js/mediaplayer-5.2/swfobject.js" type="text/javascript"></script>
    <div id="player" >
        <center>
	    <div id="flashContent"></div>
        </center>
    </div>
    <script type="text/javascript">
	$(function(){
	    var targetFile='http://bits.netbeans.org/media/imp-ng.mp4';
            var s1 = new SWFObject('/images_www/js/mediaplayer-5.2/player.swf','player','530','340','9');
            s1.addParam('allowfullscreen','true');
            s1.addParam('allowscriptaccess','always');
            s1.addParam('flashvars','file='+targetFile+'&autostart=true');
            s1.write('flashContent');
	});
    </script>
 
  </td>
            </tr>
        </table>
        <h2>Related links</h2>

        <ul>
            <li><a href="https://netbeans.org/kb/trails/mobility.html">Java ME and Java Card Application Technology Trail</a></li>
			<li><a href="http://www.oracle.com/technetwork/java/javame/javamobile/download/overview/index.html">Java Mobile Download Overview</a></li>
	    </ul>

</body>
</html>
