<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <!--
        
        Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
        
        -->
        <title>Video: NetBeans IDE 7.2 Overview</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
    </head>
    <body>
        <h1>NetBeans IDE 7.2 Overview</h1>

        <p> Find out what is new and cool in the latest NetBeans IDE
            release.
            The NetBeans IDE is an integrated development environment for software
            developers. It provides the tools you need to create professional
            desktop, enterprise, web, and mobile applications with the Java
            language, as well as PHP, JavaScript, Groovy and Grails, and C/C++. </p>
        <p> <a href="https://netbeans.org/community/releases/72/">NetBeans IDE 7.2</a> provides a significantly 
            improved performance and coding experience, with new static code analysis capabilities 
            in the Java Editor and smarter project scanning.  
            Other notable features include integration with JavaFX Scene Builder, 
            support for multiple PHP frameworks, updated Groovy support and enhancements for Java EE, 
            Maven, C/C++ and the NetBeans Platform.
        </p>
        <p><a href="http://bits.netbeans.org/media/nb72_overview_video.mp4">Download this video</a> [Size: 57MB]
        </p>

        <br style="clear: both;">

        <script src="/images_www/js/mediaplayer-5.9/jwplayer.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/nb72_overview_video.mp4';
                jwplayer('flashContent').setup({
	                'id': 'flashContentId',
	                'width': '960',
	                'height': '540',
	                'autostart': 'true',
	                'file': targetFile,
	                'controlbar':{position:'bottom'},
	                'modes': [
	                      {type: 'html5'},
	                      {type: 'flash', src: '/images_www/js/mediaplayer-5.9/player.swf'},
	                      {type: 'download'}
	                         ]
	           });
            });
        </script>
        <br/>
       
        <h2>Related Links</h2>
        <ul>
            <li><a href="https://netbeans.org/kb/index.html">NetBeans
                    IDE Tutorials</a> </li>
                    <li><a href="https://netbeans.org/kb/docs/intro-screencasts.html">NetBeans
                    IDE Screencasts</a> </li>
            <li><a href="https://netbeans.org/community/index.html">NetBeans
                    Community</a> </li>
        </ul>
        <div class="feedback-box" style="float: left;"> <a
                href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Netbeans%207.2%20overview%20screencast">Send
                Us
                Your
                Feedback</a> </div>
        <br class="cear" style="clear:both"/>
    </body>
</html>
