
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ext.NET - ASP.NET (Web Forms + MVC) component framework integrating the Sencha Ext JS JavaScript Library</title>
	<atom:link href="http://www.ext.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ext.net</link>
	<description>Components for ASP.NET Web Forms and ASP.NET MVC applications. Integrates the Sencha ExtJS framework.</description>
	<lastBuildDate>Thu, 23 May 2013 14:16:12 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Introducing Ext.NET 2.2</title>
		<link>http://www.ext.net/2013/05/08/introducing-ext-net-2-2/</link>
		<comments>http://www.ext.net/2013/05/08/introducing-ext-net-2-2/#comments</comments>
		<pubDate>Wed, 08 May 2013 14:07:27 +0000</pubDate>
		<dc:creator>geoffrey.mcgill</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.ext.net/?p=1517</guid>
		<description><![CDATA[<p class="lead">The official Ext.NET Pro 2.2 release, integrating Ext JS 4.2 is <strong>now available</strong>.</p>

<p>Please feel free to download directly from the Ext.NET <a href="/download/">download</a> page, or using <a href="http://nuget.org/packages/Ext.NET">NuGet</a>.</p>

<p>We also created a couple of <a href="http://examples.ext.net/#/Getting_Started/Introduction/Installation/">videos</a> demonstrating how to install Ext.NET into a WebForms project using NuGet. The same basic process applies to installing <code>Ext.NET.MVC</code> into an ASP.NET MVC project.</p>]]></description>
				<content:encoded><![CDATA[<p class="lead">The official Ext.NET Pro 2.2 release, integrating Ext JS 4.2 is <strong>now available</strong>.</p>

<p>Please feel free to download directly from the Ext.NET <a href="/download/">download</a> page, or using <a href="http://nuget.org/packages/Ext.NET">NuGet</a>.</p>

<code class="command"><a href="http://nuget.org/List/Packages/Ext.NET">PM> Install-Package Ext.NET</a></code>

<p>A new Ext.NET MVC specific NuGet package is now available. Search for <code>Ext.NET.MVC</code> in the NuGet Package Manager, or use the following console command to install.</p>

<code class="command"><a href="http://nuget.org/List/Packages/Ext.NET">PM> Install-Package Ext.NET.MVC</a></code>

<p>We also created a couple of <a href="http://examples.ext.net/#/Getting_Started/Introduction/Installation/">videos</a> demonstrating how to install Ext.NET into a WebForms project using NuGet. The same basic process applies to installing <code>Ext.NET.MVC</code> into an ASP.NET MVC project.</p>

<iframe height="400" src="https://www.youtube.com/embed/dsIyDwi3uxA?feature=player_detailpage" frameborder="0" allowfullscreen class="push-down-small"></iframe>

<p>A video tutorial demonstrating in greater detail an Ext.NET WebForms installation using Visual Studio and NuGet is also <a href="http://examples.ext.net/#/Getting_Started/Introduction/Installation/">available</a>.</p>

<hr class="rule">

<p>A lot of effort has gone into this release, so lets work our way through some of the highlights.</p>

<img src="http://www.ext.net/wp-content/uploads/2013/05/ie.png" alt="ie" class="feature-image feature-image-after"/>

<h2 class="gamma">Internet Explorer 10 Support</h2>

<p>As of Ext JS 4.2, IE 10 is now fully supported, including HTML5 capabilities such as CSS3 transitions, gradients and shadows.</p>

<h2 class="gamma">New VerticalMarker Plugin for Charts</h2>

<p>The <a href="http://examples.ext.net/#/Chart/Misc/VerticalMarker/">VerticalMarker</a> Plugin can be added to Line Charts to track your mouse movement in the vertical axis. This Plugin is especially helpful if you're rendering multiple series and would like to provide a visual aid for comparing data points.</p>

<figure class="feature-figure">
<a href="http://examples.ext.net/#/Chart/Line/Multiple_Axes/"><img src="http://www.ext.net/wp-content/uploads/2013/05/chart-vertical.png" alt="chart-vertical" class="feature-image"/></a>
<figcaption>Line Chart with VerticalMarker Plugin</figcaption>
</figure>

<p>To add to your Line Chart, just include the new <code>&lt;ext:VerticalMarker></code> config inside the Chart <code>&lt;Plugins></code>.</p>

<pre class="prettyprint">
&lt;ext:Chart runat="server">
    &lt;Plugins>
        &lt;ext:VerticalMarker runat="server" />
    &lt;/Plugins>
&lt;/ext:Chart>
</pre>

<p>As with all Ext.NET Components, the VerticalMarker Plugin is also fully supported in C# and ASP.NET MVC Razor.</p>

<p>Another great Chart demo is <a href="http://examples.ext.net/#/Chart/Line/Multiple_Axes/">Chart > Line > Multiple Axes</a>. Two different Axes are configured (Left and Right), both rendering at different scales, and nice use of the VerticalMarker Plugin.</p>

<figure class="feature-figure">
<a href="http://examples.ext.net/#/Chart/Line/Multiple_Axes/"><img src="http://www.ext.net/wp-content/uploads/2013/05/chart-multiple.png" alt="" class="feature-image"/></a>
<figcaption>Chart with Multiple Axes and VerticalMarker</figcaption>
</figure>

<h2 class="gamma">Kitchen Sink examples</h2>

<p>About twenty new "Kitchen Sink" samples have been ported over to the Examples Explorer. Most demonstrate basic Layout or configuration of Components, and are a good place to start if you're new to the framework.</p>

<figure class="feature-figure">
<a href="http://examples.ext.net/#/search/kitchen"><img src="http://www.ext.net/wp-content/uploads/2013/05/kitchen.png" alt="kitchen" class="feature-image"/></a>
<figcaption>Kitchen Sink Samples</figcaption>
</figure>


<h2 class="gamma">New Right-to-Left (RTL) Support</h2>

<p>A big new feature added to Ext JS 4.2 is RTL rendering and in Ext.NET 2.2 we pick up this functionality.</p>

<figure class="feature-figure">
<a href="http://examples.ext.net/#/Miscellaneous/RTL/Overview/"><img src="http://www.ext.net/wp-content/uploads/2013/05/rtl.png" alt="rtl" class="feature-image"/></a>
<figcaption>RTL Support</figcaption>
</figure>

<p>The RTL property can be set in several locations, including on the Viewport with <code>RTL="true"</code>. We've also done the extra work to add as a Global property, and set in any of the following locations:</p>

<ul>
<li>at the Page level using <code>&lt;ext:ResourceManager RTL="true" /></code></li>
<li>at the Application level using Web.config <code>&lt;extnet rtl="true" /></code></li>
<li>in the Session using <code>this.Session["Ext.Net.RTL"] = true;</code></li>
<li>in the HttpContext using <code>HttpContext.Current.Application["Ext.Net.RTL"] = true;</code></li>
</ul>

<h2 class="gamma">New TabPanel Features</h2>

<p>Vertical rendering of Tabs using new <code>TabPosition="Left|Right"</code> property.</p>

<p>We've also added Vertical rendering of Tabs to the <code>&lt;ext:TabStrip></code> Component. The <a href="http://examples.ext.net/#/TabPanel/TabStrip/Side_Tabs/">Docked TabStrip</a> is a crazy demonstration of how far you can push this functionality, including vertical Tab scrolling!</p>

<figure class="feature-figure">
<a href="http://examples.ext.net/#/TabPanel/Basic/Side_Tabs/"><img src="http://www.ext.net/wp-content/uploads/2013/05/tabs.png" alt="tabs" class="feature-image"/></a>
<figcaption>Vertical &amp; Docked Tabs</figcaption>
</figure>

<p>New Drag and Drop reordering of Tabs using the <code>&lt;ext:BoxReorderer /></code> Plugin.</p>

<figure class="feature-figure">
<a href="http://examples.ext.net/#/TabPanel/Basic/Reorderable_Tabs/"><img src="http://www.ext.net/wp-content/uploads/2013/05/tabs-reordable.png" alt="tabs-reordable" class="feature-image"/></a>
<figcaption>Reorderable Tabs</figcaption>
</figure>

<h2 class="gamma">New Neptune Theme</h2>

<p>The new Neptune Theme is now officially included and supported.</p>

<figure class="feature-figure">
<img src="http://www.ext.net/wp-content/uploads/2013/05/neptune-panel.png" alt="neptune-panel" class="feature-image"/>
<figcaption>Basic Panels w/ Neptune Theme</figcaption>
</figure>

<p>From the Sencha <a href="http://www.sencha.com/blog/introducing-ext-js-4-2/">blog post</a> announcing Neptune support:</p>

<blockquote>Neptune gives your application a clean, modern and lighter look by minimizing unnecessary visual elements such as borders and increased padding in many places to make the overall interface feel more relaxed and open.</blockquote>

<img src="http://www.ext.net/wp-content/uploads/2013/05/neptune.png" alt="neptune" class="feature-image feature-image-after"/>

<p>It's easy to test the new Neptune Theme in your application by setting <code>Theme="Neptune"</code> on the ResourceManager. Four Themes are officially included and fully supported: Neptune, Classic, Gray and Accessibility.</p>

<p>Neptune has also been added as an option in the Examples Explorer, so you can test against any of the 500+ samples. Please note, on Internet Explorer, Neptune is only supported on IE7+.</p>

<h2 class="gamma">New ThemePath Property</h2>

<p>Sometimes you might bring your own or another 3rd party Ext JS Theme .css file, and would prefer to exclude the embedded Theme from rendering. Set the <code>ThemePath</code> property on the <code>&lt;ext:ResourceManager></code> with a path to the file and we'll take care of adding the correct html markup to your Page.</p>

<pre class="prettyprint">
&lt;ext:ResourceManager ThemePath="~/resources/MyTheme/mytheme.css" />
</pre>

<p>As with almost all ResourceManager properties, you can also set across application wide by configuring the property in the Web.config, Session or Application object.</p>

<h2 class="gamma">New ResetStyles Property</h2>

<p>In Ext JS 4.2, the Reset styles were removed, which could cause some rendering issues if upgrading from an earlier 2.x version of Ext.NET.</p>

<p>The change to remove the Reset Stylesheet is a breaking change (for the better), although we have added a simple <code>ResetStyles</code> property to revert the functionality if you do not want to tackle the CSS upgrades within your application at this time.</p>

<p>If when upgrading your application to Ext.NET 2.2, you notice strange CSS rendering issues, try setting <code>ResetStyles="true"</code> property on the ResourceManager.</p>

<pre class="prettyprint">
&lt;ext:ResourceManager ResetStyles="true" /> // default value is "false"
</pre>

<p>While we're still on the subject of Themes and CSS, if you require total control over the rendering and placement of the Theme .css file, we've added a handy new <code>Theme="None"</code> option. If set on the ResourceManager (this is a Global property too), no .css file will be rendered by Ext.NET, and you're free to manually include as required.</p>

<pre class="prettyprint">
&lt;ext:ResourceManager Theme="None" />
</pre>

<h2 class="gamma">New "Development" ScriptMode</h2>

<p>On the ResourceManager, you can now set <code>ScriptMode="Development"</code> to render a different Ext JavaScript file and provide enhanced client-side debugging information into the browser console. These extra debugging statements and warnings can really come in handy if you're trying to track down a JavaScript related issue.</p>

<p>This new <code>ScriptMode</code> option is certainly useful during  development, but just remember to remove (or switch to <code>Release</code>) before releasing your application into production.</p>

<h2 class="gamma">New CheckboxGroupFor and RadioGroupFor MVC helpers</h2>

<p>Two new ASP.NET MVC Razor Helper Methods for rendering CheckboxGroups and RadioGroups have been added. Just pass in a Model, and any IEnumerable list of objects using that Model, and the GroupFor helper will go to work creating the Checkbox or Radio items.</p>

<pre class="prettyprint">
Html.X().RadioGroupFor(Model, IEnumerable)
</pre>

<p>Demo available in the <a href="http://mvc.ext.net/#/Form_Groups/GroupFor/">MVC Examples Explorer</a>.</p>

<h2 class="gamma">TreePanel CommandColumn and ComponentColumn</h2>

<p>You've been able to add <a href="http://examples.ext.net/#/GridPanel/Commands/Row_Command/">CommandColumns</a> and <a href="http://examples.ext.net/#/GridPanel/ComponentColumn/Overview/">ComponentColumns</a> to GridPanels for a long time with Ext.NET, but as of 2.2 you can also add to TreePanels. This opens up many new user interface possibilities for rendering or interacting with TreePanel data. Separate TreePanel <a href="http://examples.ext.net/#/TreePanel/Advanced/Command_Column/">Command Column</a> and <a href="http://examples.ext.net/#/TreePanel/Advanced/Component_Column/">Component Column</a> samples are available in the Examples Explorer.</p>

<figure class="feature-figure">
<a href="http://examples.ext.net/#/TreePanel/Advanced/Command_Column/"><img src="http://www.ext.net/wp-content/uploads/2013/05/columns.png" alt="columns" class="feature-image"/></a>
<figcaption>TreePanel CommandColumn and ComponentColumn</figcaption>
</figure>

<h2 class="gamma">SignalR + jQuery + Ext.NET</h2>

<p><a href="http://www.onenaught.com/">Anup Shah</a>, author of the <a href="http://www.ext.net/2012/12/04/new-book-ext-net-web-application-development/">Ext.NET Web Application Development Book</a>, has put together a cool demo integrating <a href="http://www.asp.net/signalr">SignalR</a>, <a href="http://jquery.com/">jQuery</a> and Ext.NET. There's a detailed <a href="http://www.ext.net/2013/03/19/signalr-with-ext-net/">blog post</a> outlining the process and a working sample is available in the <a href="http://examples.ext.net/#/SignalR/Basic/StockTicker/">Examples Explorer</a>.

<figure class="feature-figure">
    <a href="http://examples.ext.net/#/SignalR/Basic/StockTicker/"><img src="/wp-content/uploads/2013/03/signalr-stock-ticker-ext-net.png" alt="" class="feature-image" /></a>
    <figcaption>Ext.NET GridPanel Stock Ticker example using SignalR</figcaption>
</figure>

<p>Full source to the original SignalR sample is available on <a href="https://github.com/anupshah/ExtNET-SignalR-StockTicker">GitHub</a>.</p>

<h2 class="gamma">Summary</h2>

<p>Details regarding the Ext JS 4.2 release are also available in the <a href="http://www.sencha.com/blog/introducing-ext-js-4-2/">Introducing Ext JS 4.2</a> Sencha Blog post.</p>

<p>Many more features and performance improvements are packed in the Ext.NET 2.2 release, so we encourage you to upgrade your application and browse the <a href="http://examples.ext.net/">Examples Explorer</a> (<a href="http://mvc.ext.net/">MVC Examples Explorer</a>).</p>

<p>Please feel free to post any technical support questions in the <a href="http://forums.ext.net/">Community Forums</a>, and we'll be happy to assist.</p>

<p>Follow Ext.NET on Twitter using <a href="https://twitter.com/extnet">@extnet</a> or tag us using <code>#extnet</code>.</p>

<p><strong>NOTE:</strong> The Ext.NET Pro <a href="/store/">Bundle SALE</a> is ending May 31, 2013. Double the <a href="http://www.ext.net/2013/05/07/ext-net-one-on-one/">One on One</a> consulting time is included with Five and Twenty Pack Premium Support Subscriptions, but only until the end of May.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ext.net/2013/05/08/introducing-ext-net-2-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ext.NET One on One</title>
		<link>http://www.ext.net/2013/05/07/ext-net-one-on-one/</link>
		<comments>http://www.ext.net/2013/05/07/ext-net-one-on-one/#comments</comments>
		<pubDate>Tue, 07 May 2013 11:33:40 +0000</pubDate>
		<dc:creator>geoffrey.mcgill</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[sale]]></category>

		<guid isPermaLink="false">http://www.ext.net/?p=1398</guid>
		<description><![CDATA[<h2 class="gamma">What is <span class="one-on-one one-on-one-text">ONE<span class="on small">ON</span>ONE</span>?</h2>
<p>A new service offering is now included with all new Five Pack and Twenty Pack Premium Support Subscription <a href="/store/">purchases</a>.</p>

<p>One on One is a flexible block of Ext.NET related consulting time to be spent as you see fit. The consulting time will be provided by Ext.NET staff on the core Development and/or Technical Support teams.</p>]]></description>
				<content:encoded><![CDATA[<div class="panel soft-bottom-mini">
	<h3 class="hero push-down-mini">Introducing…</h3>
	<div class="row-fluid">
		<div class="span7">
			<div class="one-on-one-wrapper push-down-small feature-image alpha">
				<a href="/store#oneonone"><span class="one-on-one">ONE<span class="on gamma">ON</span>ONE</span></a>
			</div>
		</div>
		<div class="span5">
			<p class="text-null"><span class="one-on-one one-on-one-text">ONE<span class="on small">ON</span>ONE</span> is a flexible block of <strong>Ext.NET related consulting</strong> time to be spent <strong>as you see fit</strong>.</p>
		</div>
	</div>
</div>

<h2 class="gamma">What is <span class="one-on-one one-on-one-text">ONE<span class="on small">ON</span>ONE</span>?</h2>
<p>A new service offering is now included with all new Five Pack and Twenty Pack Premium Support Subscription <a href="/store/">purchases</a>.</p>

<p>One on One is a flexible block of Ext.NET related consulting time to be spent as you see fit. The consulting time will be provided by Ext.NET staff on the core Development and/or Technical Support teams.</p>

<p>This is a bit of an experiment for us at Ext.NET, as we've never offered consulting services in the past. We're considering this a trial run, a Beta test if you will. This trial period will extend <strong>only until the end of May 2013</strong>.</p>

<h2 class="gamma">How can I make the most of <span class="one-on-one one-on-one-text">ONE<span class="on small">ON</span>ONE</span>?</h2>
<p>Here's a few suggestions on how to spend your time:</p>

<ol>
	<li>
		<strong>Code review</strong>
		<p>Have an Ext.NET core developer review your project then report back with suggestions and samples demonstrating general enhancements.</p>
	</li>
	<li>
		<strong>Performance Tuning</strong>
		<p>Want to squeeze every last drop of performance you can out of Ext.NET and your application? Let's work together to dig into your app and ensure it's tuned up and running its best.</p>
	</li>
	<li>
		<strong>Training</strong>
		<p>Need informal training on Ext.NET or dive deep into a specific subject? We can tailor to your needs.</p>
	</li>
	<li>
		<strong>New Features</strong>
		<p>Missing something? Looking for a new key piece of functionality? We should be able to help.</p>
	</li>
	<li>
		<strong>Introduction to Ext.NET</strong>
		<p>Summary of Ext.NET history, features, benefits and what to expect going forward.<p>
	</li>
</ol>

<h2 class="gamma">How do I get started with <span class="one-on-one one-on-one-text">ONE<span class="on small">ON</span>ONE</span>?</h2>

<p>If you're interested in taking advantage of this offer, please <a href="/store/">purchase</a> an Ext.NET Five Pack or Twenty Pack Bundle before the end of May 2013.</p>

<p>To sweeten the deal even more (if it wasn't sweet enough already), we're <strong>doubling the included consulting hours until the end of May</strong>. The two hours included with the Five Pack will be doubled to Four. The five hours included with the Twenty Pack will be double to Ten. Check out the below table for further details.</p>

<table class="plain small">
	<thead>
		<tr>
			<th>
				Five Developer Bundle
			</th>
			<th>
				Twenty Developer Bundle
			</th>
		</tr>
	</thead>
	<tfoot>
		<tr>
			<td colspan="2" class="small"><strong class="ui-danger">HURRY! SALE ENDS MAY 31</strong> One On One consultation hours <strong>doubled</strong> until May 31.</td>
		</tr>
	</tfoot>
	<tbody>
		<tr>
			<td>
				<del class="text-danger">two</del> <span class="upper"><strong>four</strong></span> hours consultation.
			</td>
			<td>
				<del class="text-danger">five</del> <span class="upper"><strong>ten</strong></span> hours consultation.
			</td>
		</tr>
	</tbody>
</table>

<hr class="rule">
<h2 class="alpha headline push-down-mini"><span class="one-on-one one-on-one-text">ONE<span class="on gamma">ON</span>ONE</span></h2>
<h3 class="headline gamma">We're at your disposal for an Ext.NET power session.</h3>
<hr class="rule">

<h3 class="delta">Terms and Conditions</h3>

<p>Ext.NET One on One is only available with new Ext.NET Pro Bundle purchases. There are currently no options to upgrade or "add on" One on One services, although we might offer these options at a later time.</p>

<p>A basic report with comments, a summary and balance of time will be emailed upon completion of each consultation event. The time required to create this summary will not be deducted from your bank of consulting time.</p>

<p>Time to be used in a minimum of 30 minute blocks even if the full 30 minute block of time is not used.</p>

<p>Consulting is remote only. No on-site consultation is available at this time.</p>

<p>Remote communication will be through Skype for voice and TeamViewer for remote control. Phone conference calls may be possible if you wish to setup. Other remote control software may be used as well, but lets discuss first.</p>

<p>Consulting events are to be scheduled and booked in advance by emailing <a href="mailto:support@ext.net">support@ext.net</a> with your Customer Number. Ext.NET does not guarantee availability at a specific time, but will work with you to coordinate an acceptable time.</p>

<p>Services are provided in English.</p>

<p>Services are only provided to named developers in the Premium Support subscription. Please ensure your forum username is linked to your Premium Support Subscription by emailing to <a href="mailto:support@ext.net">support@ext.net</a>. We will not provide services to generic or shared accounts.</p>

<p>Your One on One services can be used at anytime during the life of your Premium Support Subscription. Any unused One on One services will expire with the Premium Support Subscription.</p>

<p>Ext.NET shall have no responsibility for loss of or damage to Customer’s data or software, regardless of the cause of any such loss or damage.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ext.net/2013/05/07/ext-net-one-on-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SignalR with Ext.NET</title>
		<link>http://www.ext.net/2013/03/19/signalr-with-ext-net/</link>
		<comments>http://www.ext.net/2013/03/19/signalr-with-ext-net/#comments</comments>
		<pubDate>Tue, 19 Mar 2013 15:18:28 +0000</pubDate>
		<dc:creator>Anup</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[extnet]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[signalr]]></category>

		<guid isPermaLink="false">http://www.ext.net/?p=1193</guid>
		<description><![CDATA[<p>SignalR promises a great evolution of real-time interactivity in web applications. It is also something that can be used with Ext.NET.</p>

<p>In this post we briefly look at what SignalR is and how it works. We then look at how Ext.NET can be used with SignalR by modifying a stock ticker example provided by the SignalR project. Lastly we look at some remaining things to be aware of if looking into using SignalR right now.</p>]]></description>
				<content:encoded><![CDATA[<p>SignalR promises a great evolution of real-time interactivity in web applications. It is also something that can be used with Ext.NET.</p>

<p>In this post we briefly look at what SignalR is and how it works. We then look at how Ext.NET can be used with SignalR by modifying a stock ticker example provided by the SignalR project. Lastly we look at some remaining things to be aware of if looking into using SignalR right now.</p>

<h2>What is SignalR?</h2>

<p><a href="http://www.asp.net/signalr">SignalR</a> is an ASP.NET library making it easier to create real time web applications.</p>

<p>The Web experience is traditionally a pull based approach — browsers pull requests from the server. And AJAX builds on top of that.</p>

<p>HTML5 has long discussed server side push, without the need for plugins and applets. Server Sent Push and more recently Web Sockets are the powerful features modern browsers are incorporating.</p>

<p>If a server can simply notify the connecting browser when it is ready then it opens the doors to many possibilities. For example,</p>
<ul>
<li>Chat applications</li>
<li>Collaborative working</li>
<li>Notification of system changes</li>
<li>And so on</li>
</ul>

<p>As an example, imagine a backoffice application, such as one to manage products for an ecommerce web site. Suppose you are updating product information. In the meanwhile a colleague logs into the same application and starts looking at it. There is of course the risk that one could override the other's changes.</p>

<p>Using SignalR you could both be notified that others are looking at the same data. Maybe you are given an option to chat about it ("hey, lets coordinate what we are going to edit here.") Or, maybe the app could lock it for others until you are done with it, and so on.</p>

<p>Perhaps the ecommerce app is getting an incoming feed of updated data from third parties or other systems (e.g. updated order or stock data). The server could notify any browsers connected, offering to update relevant information straight away.</p>

<h2>How does SignalR work?</h2>

<p>SignalR has libraries for the server side (.NET) and client side (both .NET clients and JavaScript clients). As different browsers have different capabilities, SignalR takes advantage of graceful degradation to determine which transport to use when communicating from a browser to a server:</p>
	
<blockquote>

<p>SignalR uses a fallback mechanism to connect the browser to the server. After an initial negotiation request the following transports are tried in order until a successful connection can be made:</p>
<ul>
<li>WebSockets (if the both the server and browser indicate they can support WebSockets)</li>
<li>Server Sent Events, aka EventSource (if the browser supports Server Sent Events, which is basically all browsers except Internet Explorer)</li>
<li>Forever Frame (for Internet Explorer only)</li>
<li>AJAX long polling</li>
</ul>

<p>WebSockets is the only true full-duplex connection transport. All other transports listed here use the technique/technology named for the incoming data from the server, and standard AJAX POSTs for sends from the client to the server.</p>

<p><small><a href="https://github.com/SignalR/SignalR/wiki/Faq#what-transports-does-signalr-use-in-various-browsers-to-mimic-a-real-time-connection">https://github.com/SignalR/SignalR/wiki/Faq#what-transports-does-signalr-use-in-various-browsers-to-mimic-a-real-time-connection</a> <cite>(as of March 16, 2013)</cite></small></p>
</blockquote>

<p>Unlike general HTTP, a SignalR client will make a <em>persistent</em> connection to the server (in the case of WebSockets, they are truly persistent; for others various techniques are used to make it appear like that). <a href="https://github.com/SignalR/SignalR">It is on GitHub</a> so you can have a look at how they are progressing it.</p>

<p>On the server side, you have Hubs that provide a high level abstraction for all the message pushing you will do. With your hubs you can push messages to all clients or specific groups of clients or individual clients. These hubs use dynamic methods and other such properties and result in dynamically generated proxies for the client to talk to the server (so on both client and server, you do not worry about low level transport/socket coding, but instead just do regular method calls). It ends up looking like RPC.</p>

<p>For a <em>really</em> quick and simple overview of how it works, I highly recommend you check out <a href="http://www.asp.net/vnext/overview/signalr/signalr-and-web-sockets">Scott Hanselman's video on SignalR</a>. It is just a few minutes, but really clearly explains everything you need to know to get started!</p>

<iframe class="push-down-small" width="640" height="480" src="http://www.youtube.com/embed/lQvpvkKCBmk?rel=0" frameborder="0" allowfullscreen></iframe>

<h2>Why not just stick with AJAX?</h2>

<p>AJAX based applications are immensely powerful, no doubt.</p>

<p>The above ecommerce backoffice scenarios could all be implemented with AJAX. However, to do that you would need to continuously poll the server. This can be wasteful. Instead with the client just waiting for notification events from the server, bandwidth and resources on both client and server are reduced.</p>

<p>SignalR, in effect, gets closer to more traditional client/server programming paradigms.</p>

<h2>What does this have to do with Ext.NET?</h2>

<p>There are a number of useful sample applications that Microsoft have provided to demonstrate SignalR, including a chat application, a stock ticker, and more.</p>

<p>Their examples are based on jQuery + HTML.</p>

<p>But this blog post demonstrates very briefly that the same techniques can just as easily be used with Ext.NET, so that your Ext.NET applications can potentially benefit from SignalR.</p>

<p><em>Note, we won't look at how the StockTicker hub was created in the original GitHub project that I forked. For an overview of hubs and other aspects of implementing SignalR do look at that short video mentioned above!</em></p>

<h2>Converting the SignalR StockTicker Demo into an Ext.NET friendly one</h2>

<p>There's a <a href="https://github.com/SignalR/SignalR-StockTicker">project</a> at GitHub demonstrating a simple fake stock ticker application using SignalR.</p>

<p>When you run the sample page, you get this:</p>

<figure class="feature-figure">
    <img src="/wp-content/uploads/2013/03/signalr-stock-ticker-sample.png" alt="" class="feature-image" />
    <figcaption>Original SignalR stock ticker example</figcaption>
</figure>

<p>The above screenshot shows a simple table on a page. When run, as updated stock values (fake ones!) are available from the server, they automatically update and various rows highlight momentarily in green or red depending on whether the price went up or down. The buttons above the table also show the market is already open (hence it is now disabled).</p>

<p>If you now open the same page on another browser it will start to show the same data automatically. If you close the market, all browsers will get the close event simultaneously. It is a nice way to see SignalR in action.</p>

<p>So I thought this would be a nice example to convert into an Ext.NET GridPanel instead. I forked the sample project on GitHub so you can get the full source code here:<br /><a href="https://github.com/anupshah/ExtNET-SignalR-StockTicker">https://github.com/anupshah/ExtNET-SignalR-StockTicker</a>.</p>

<p>The end result is the same data but showing up on an Ext.NET Grid Panel:</p>

<figure class="feature-figure">
    <img src="/wp-content/uploads/2013/03/signalr-stock-ticker-ext-net.png" alt="" class="feature-image" />
    <figcaption>Ext.NET GridPanel Stock Ticker example using Signal</figcaption>
</figure>

<p>In my fork I simply included Ext.NET 2 from NuGet. Here is the overall approach to the code changes I then made:</p>
<ol>
<li>Created a custom Ext.NET component that inherits the GridPanel (both .NET side and JavaScript side)</li>
<li>Initiated the SignalR connection from the custom GridPanel's JavaScript class</li>
<li>Updated the GridPanel's Store as and when data from the SignalR connection comes in</li>
<li>Highlighted updated rows using a fade technique for a similar effect as the original example</li>
</ol>

<p><em>Note, I didn't re-implement the ticker below the table that scrolls across, but the same ideas can be applied there if you wish to try it. In addition, I did not need to make any changes to their StockTicker hub class; I just reused it (and therefore the client proxy that it generates without any need for alterations for it to work with Ext.NET).</em></p>

<h3>Custom Ext.NET GridComponent (C#)</h3>

<pre class="prettyprint">using Ext.Net;

namespace Microsoft.AspNet.SignalR.StockTicker.Ext.NETSignalR.StockTicker
{
    public class SignalRGridPanel : GridPanel
    {
        public override string XType
        {
            get { return "signalrgridpanel"; }
        }

        public override string InstanceOf
        {
            get { return "ExtNetSignalRDemo.SignalRGridPanel"; }
        }

        protected override void OnInit(EventArgs e)
        {
            BuildTopBar();
            BuildStore();
            BuildColumns();
            BuildView();

            base.OnInit(e);
        }

        // All the private Build* methods omitted for brevity
        // Download the code from GitHub to see the details
    }
}
</pre>

<p>This subclass of GridPanel sets the <code>XType</code> and <code>InstanceOf</code> so that we can put our custom JavaScript inside a subclass of GridPanel on the client side. It then builds the grid here inside the component to demonstrate this being a fully self-contained and therefore much more reusable component. See the full source at GitHub to see how it is all set.</p>

<p>For the JavaScript definition of the custom GridPanel, here is an outline:</p>

<pre class="prettyprint">Ext.define('ExtNetSignalRDemo.SignalRGridPanel', {
    extend : 'Ext.grid.Panel',
    alias  : 'widget.signalrgridpanel',

    // the SignalR generated client-side hub proxy
    ticker : $.connection.stockTicker,

    // more configuration options here
    
    initComponent: function (config) {
        this.callParent(config);
        
        this.on('afterrender', this.onAfterRender, null, { single: true });
    },
    
    // ...
    
    onAfterRender: function () {
        // initialize the SignalR connection
    }
});
</pre>

<p>So, simply put, after the GridPanel is rendered, we will initialize the SignalR connection to the server and deal with the various operations that are possible. Notice there is a property called <code>ticker</code> which holds a reference to the client-side hub proxy for the stockTicker created by the SignalR components. Here is <code>onAfterRender</code>:</p>

<pre class="prettyprint">onAfterRender: function () {
    var gridInstance = this,
        store = gridInstance.getStore(),
        ticker = gridInstance.ticker;

    function init() {
        return ticker.server.getAllStocks().done(function (stocks) {
            $.each(stocks, function () {
                store.load(stocks);
            });
        });
    }

    // Client-side hub methods that the server will call
    $.extend(ticker.client, {
        updateStockPrice: function (stock) {
            var rowIndexOfStockItem = store.indexOfId(stock.Symbol),
                highlightRow = rowIndexOfStockItem,
                row, el, bgColor;

            if (rowIndexOfStockItem === -1) {
                store.loadData([stock], true);
                highlightRow = store.getCount();
            } else {
                store.getAt(rowIndexOfStockItem).set(stock);
            }

            row = gridInstance.getView().getNode(highlightRow);
            el = Ext.get(row);
            bgColor = stock.Change >= 0 ? gridInstance.upBgColor : gridInstance.downBgColor;

            if (el != null) {
                el.highlight(bgColor, { attr: 'backgroundColor', duration: 750 });
            }
        },

        marketOpened: function () {
            gridInstance.down("#btnOpen").setDisabled(true);
            gridInstance.down("#btnClose").setDisabled(false);
            gridInstance.down("#btnReset").setDisabled(true);
        },

        marketClosed: function () {
            gridInstance.down("#btnOpen").setDisabled(false);
            gridInstance.down("#btnClose").setDisabled(true);
            gridInstance.down("#btnReset").setDisabled(false);
        },

        marketReset: function () {
            return init();
        }
    });

    // Start the connection
    $.connection.hub.start()
        .pipe(init)
        .pipe(function () {
            return ticker.server.getMarketState();
        })
        .done(function (state) {
            if (state === 'Open') {
                ticker.client.marketOpened();
            } else {
                ticker.client.marketClosed();
            }
        });
}</pre>

<p>The above code is very similar to the JavaScript code for their original example, just refactored to be part of the Ext.NET custom GridPanel component.</p>

<p>In the above we see the ticker client extended with functions that will handle the messages sent by the server, such as <code>updateStockPrice</code>, <code>marketOpened</code>, <code>marketClosed</code> and <code>marketReset</code>.</p>

<p>Once those are set up, we simply start the hub connection.</p>

<p>In <code>updateStockPrice</code> we simply load the new stock data into the Store - we either add a new row if the symbol doesn't exist in the grid already, or we update the row that contains the symbol with the new data. We then get the row element and using the Ext JS <code>highlight</code> method we flash the green or red indicator depending on the stock price.</p>

<p>To put it all together, we simply use the custom GridPanel on a page, which can be as simple as follows:</p>

<pre class="prettyprint">&lt;ext:SignalRGridPanel ID="GridPanel1" runat="server" /&gt;</pre>

<h2>Remaining issues</h2>

<p>It is worth being aware of some of the limitations or implications of using SignalR right now, as it is still early days for it. For example, consider the following:</p>

<h3>Scaling out</h3>

<p>Perhaps one of the main limiting factors about SignalR at the moment is that there is a single point of failure. Redundancy or scaling your servers with hardware is currently not supported. On the plus side, they are working on it (just in pre-alpha stage as of writing). See for example, <a href="https://github.com/SignalR/SignalR/wiki/Azure-service-bus">https://github.com/SignalR/SignalR/wiki/Azure-service-bus</a>.</p>

<p>Still, that should not stop you trying it out and getting familiar with it.</p>

<h3>Depends on jQuery</h3>

<p>A point to note, perhaps more minor, is that the client side implementation of SignalR has been done with jQuery. While jQuery is an awesome library itself and pairs nicely with Ext.NET (Ext JS), perhaps Microsoft could have provided its SignalR implementation independent of any other JavaScript framework at its core, but then provide mechanisms such as plugins to work with popular frameworks such as jQuery and others.</p>

<p>That being said, the need to include an additional library such as jQuery within an Ext.NET application could perhaps be worth it given the benefits that come along with it.</p>

<h3>To take full advantage of WebSockets, you need IIS 8</h3>

<p>In terms of pre-requisites be aware that while many modern browsers support HTML5 Web Sockets, only IIS8 on the server does (i.e. Windows 8/Windows Server 2012).</p>

<p>That being said, Windows Server 2008 (IIS 7.5) still works, but WebSockets will not be used; instead Server Sent Events will be used instead as the fallback. (I dev'd the Ext.NET stock ticker demo on Windows Server 2008 R2, for example.)</p>

<h2>Links for further information</h2>

<p>The following links were used in the above article, but are summarized here as useful starting points</p>
<ul>
<li><a href="http://www.asp.net/vnext/overview/signalr/signalr-and-web-sockets">Scott Hanselman's short overview video of SignalR. Highly recommended.</a></li>
<li><a href="http://www.asp.net/signalr">Microsoft's official SignalR page with videos and tutorials</a></li>
<li><a href="https://github.com/SignalR/SignalR">SignalR GitHub project where you can access all the code</a></li>
<li><a href="https://github.com/SignalR/SignalR-StockTicker">The original stock ticker example also on GitHub</a></li>
<li><a href="https://github.com/anupshah/ExtNET-SignalR-StockTicker">My forked stock ticker example with Ext.NET support as used in this article, also on GitHub</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.ext.net/2013/03/19/signalr-with-ext-net/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Introduction to Ext.NET Events</title>
		<link>http://www.ext.net/2012/12/19/introduction-to-ext-net-events/</link>
		<comments>http://www.ext.net/2012/12/19/introduction-to-ext-net-events/#comments</comments>
		<pubDate>Wed, 19 Dec 2012 08:30:28 +0000</pubDate>
		<dc:creator>vladimir</dc:creator>
				<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.ext.net/?p=991</guid>
		<description><![CDATA[<h2>Listeners, DirectEvents, DirectMethods and MessageBus</h2>

<p>Understanding the differences between Ext.NET event types and when to choose a certain type is an important concept to learn. Your project requirements will help determine which event type to use given a particular scenario.</p>

<p>In this series of four articles on the subject we will discuss client side and server side events, how they are triggered, how to handle each, and potential use cases for each.</p>

<p>This first post will investigate usage of client side Listeners.</p>]]></description>
				<content:encoded><![CDATA[<h2>Listeners, DirectEvents, DirectMethods and MessageBus</h2>

<p>Understanding the differences between Ext.NET event types and when to choose a certain type is an important concept to learn. Your project requirements will help determine which event type to use given a particular scenario.</p>

<p>In this series of four articles on the subject we will discuss client side and server side events, how they are triggered, how to handle each, and potential use cases for each.</p>

<p>This first post will investigate usage of client side Listeners.</p>

<p>All Ext.NET components, such as <strong>Panel</strong>, <strong>Window</strong> and <strong>Button</strong>, enable four types of events handlers:</p>

<table>
<thead>
<tr>
    <th>Type</th>
    <th>Description</th>
</tr>
</thead>
<tbody>
<tr>
    <td>Listeners</td>
    <td>Client side handlers of client side events</td>
</tr>
<tr>
    <td>DirectEvents</td>
    <td>Server side event handlers of client side events using AJAX.</td>
</tr>
<tr>
    <td>DirectMethods</td>
    <td>Call a server side Method (such as C# or VB) from client side JavaScript using AJAX.</td>
</tr>
<tr>
    <td>MessageBus</td>
    <td>The MessageBus allows loosing of coupling of component events because events can publish or subscribe to events without knowing about each other. Each component has <code>MessageBusListeners</code> (client side handlers of MessageBus client side events) and <code>MessageBusDirectEvents</code> (server side handlers of MessageBus client side events).</td>
</tr>
</tbody>
</table>

<h2>Listeners</h2>

<p>Listeners are event handlers for client side triggered events. The Listener event handler will execute JavaScript code you provided after the action is triggered, such as a clicking a <code>Button</code>.</p>

<p>Using Visual Studio Intellisense is a great way to discover which events are available on the component. Each component inherits events from its super class and will typically extend with more events unique to that component.</p>

<p>All classes in Ext.NET inheriting from the Observable class trigger events. All client side events are defined inside the <code>&lt;Listeners&gt;</code> property.</p>

<figure class="feature-figure">
<img src="/wp-content/uploads/2012/12/button_listeners_intellisense.png" alt="" title="Listener config in Visual Studio" class="feature-image" />
<figcaption>All Listeners available on the component can be viewed using Intellisense</figcaption>
</figure>

<p>If a component fires a Listener event (client side), in order to handle that event (run custom logic) you must first subscribe to the event by adding a JavaScript function. Subscribing to an event can be accomplished by the following ways:</p>

<h3>Listeners Configuration</h3>

<p>The Listeners property is configured on the component in markup or code-behind. To handle the 'click' event of a <strong>Button</strong> you configure the <code>Click</code> Listener by setting the <code>Handler</code> property with some JavaScript. The JavaScript within the <code>Handler</code> will be executed in the browser when the <strong>Button</strong> is clicked.</p>

<pre class="prettyprint">// C#
Button1.Listeners.Click.Handler = "alert('Hello World');";


// ASPX
&lt;ext:Button runat="server" Text="Submit"&gt;
    &lt;Listeners&gt;
        &lt;Click Handler="alert('Hello World');" /&gt;
    &lt;/Listeners&gt;
&lt;/ext:Button&gt;


// Razor (ASP.NET MVC)
@(Html.X().Button()<br />    .Listeners(ev =&gt; <br />        ev.Click.Handler = "alert('Hello World');"<br />    )<br />)
</pre>

<figure class="feature-figure">
<img src="/wp-content/uploads/2012/12/button_click_alert.png" alt="" title="Ext.NET Button with alert" class="feature-image" />
<figcaption>Clicking the <strong>Button</strong> will cause a JavaScript <code>alert</code><br /> to be raised with the message 'Hello World'.</figcaption>
</figure>
    
<p>Another important Listener property is <code>Fn</code>.</p>

<p>The <code>Fn</code> property is set with a JavaScript function name or inline function. Here are examples of valid <code>Fn</code> values:</p>

<pre class="prettyprint">// A JavaScript function is defined
// somewhere on the page. 
var doSomething = function () {
    alert('Hello World');
};

// Option #1
// .Fn property is set with the JavaScript function name
Fn="doSomething"; 

// Option #2
// An inline JavaScript function definition
Fn="function () { alert('Hello World'); }"

// Option #2b
// Same function as above, but with named arguments
Fn="function (item, e) { alert('Hello World'); }"
</pre>

<p>The <code>Handler</code> property is set with only the body of the JavaScript function. This code is automatically wrapped in a proper JavaScript function template.</p>

<p>For example, if you set:</p>

<pre class="prettyprint">&lt;ext:Button runat="server" Text="Submit"&gt;
    &lt;Listeners&gt;
        &lt;Click Handler="alert('Hello World');" /&gt;
    &lt;/Listeners&gt;
&lt;/ext:Button&gt;
</pre>

<p>Ext.NET will convert the above to the following when rendered to the page.</p>

<pre class="prettyprint">Ext.create("Ext.button.Button", {
    text: "Submit",
    listeners: {
        click: function (item, e) {
            alert('Hello World');
        }
    }
});
</pre>

<p>Each event has its own list of arguments. You can find arguments in the Sencha Ext JS client side <a href="http://docs.sencha.com/ext-js">API documentation</a> or reviewing the Ext.NET source code of the Listeners class (all listeners classes are located in the <code>&lt;Ext.Net&gt;\Events\Listeners</code> folder).</p>

<p>There's also a handy sample in the <a href="http://examples.ext.net/">Examples Explorer</a> for listing all Listeners related to a component and showing their event signatures, see <a href="http://examples.ext.net/#/Events/Listeners/Arguments/">Listeners Arguments Reflector</a>.</p>

<figure class="feature-figure">
<img src="/wp-content/uploads/2012/12/button_listener_arguments.png" alt="" title="Button Click Listener arguments" class="feature-image" />
<figcaption>Button Click Listener arguments</figcaption>
</figure>

<p>The <strong>Button</strong> Click Listener has two arguments: <code>item</code> and <code>e</code>. The <code>item</code> will be an instance of the <strong>Button</strong> component. The <code>e</code> is an instance of the event object.</p>

<p>The Reconfigure listener of the GridPanel is called with the following arguments: <code>item</code>, <code>store</code> and <code>columns</code>.</p>

<figure class="feature-figure">
<img src="/wp-content/uploads/2012/12/gridpanel_listener_arguments.png" alt="" title="GridPanel Reconfigure Listener arguments" class="feature-image" />
<figcaption>GridPanel Reconfigure Listener arguments</figcaption>
</figure>

<p>If you set the <code>Fn</code> property, you must add the required function arguments manually. The arguments can be given different names, but the order is important. For example, the following two functions use different function argument names (<code>item</code> vs <code>cmp</code>), but each will work exactly the same.</p>

<pre class="prettyprint">var doSomething = function (item, e) {
    alert(item.id); // alerts 'Button1'
};

var doSomethingElse = function (cmp, ev) {
    alert(cmp.id); // alerts 'Button2'
};

&lt;ext:Button ID="Button1" runat="server"&gt;
    &lt;Listeners&gt;
        &lt;Click Fn="doSomething" /&gt;
    &lt;/Listeners&gt;
&lt;/ext:Button&gt;

&lt;ext:Button ID="Button2" runat="server"&gt;
    &lt;Listeners&gt;
        &lt;Click Fn="doSomethingElse" /&gt;
    &lt;/Listeners&gt;
&lt;/ext:Button&gt;
</pre>

<p>Every Listener includes the following properties:</p>

<table>
<thead>
<tr>
    <th>Name</th>
    <th>Description</th>
    <th>Default Value</th>
</tr>
</thead>
<tbody>
<tr>
    <td>AutoPostBack</td>
    <td>Initiate a hard postback of the page. Same as a classic ASP.NET Control.</td>
    <td><code>false</code></td>
</tr>
<tr>
    <td>BroadcastOnBus</td>
    <td>Broadcast the event on the MessageBus (will be explained in 
MessageBus tutorial)</td>
    <td><code>false</code></td>
</tr>
<tr>
    <td>Buffer</td>
    <td>Causes the handler to be scheduled to run delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.</td>
    <td><code>0</code></td>
</tr>
<tr>
    <td>Delay</td>
    <td>The number of milliseconds to delay the invocation of the handler after the event fires.</td>
    <td><code>0</code></td>
</tr>
<tr>
    <td>Delegate</td>
    <td>A simple selector to filter the target or look for a descendant of the target. If you set <code>Delegate=”a”</code> for Click event then the event handler will be executed only if you click on anchor tag inside target component.</td>
    <td><code>""</code></td>
</tr>
<tr>
    <td>PreventDefault</td>
    <td>True to prevent the browsers default handling of the event.</td>
    <td><code>false</code></td>
</tr>
<tr>
    <td>Scope</td>
    <td>The scope in which to execute the handler function. The handler function's <code>this</code> context. If omitted, defaults to the object which fired the event.</td>
    <td><code>this</code></td>
</tr>
<tr>
    <td>Single</td>
    <td>True to add a handler to handle just the next firing of the event, and then remove itself (handler will be executed once only).</td>
    <td><code>false</code></td>
</tr>
<tr>
    <td>StopEvent</td>
    <td>True to stop the event. That is stop propagation, and prevents the browsers default action. It should be used with browser native events only (like click, mousemove, keypress, etc).</td>
    <td><code>false</code></td>
</tr>
<tr>
    <td>StopPropagation</td>
    <td>True to prevent event propagation.</td>
    <td><code>false</code></td>
</tr>
</tbody>
</table>

<h3>Using .On and .AddListener server side Methods</h3>

<p>These methods should be used to add a Listener to a component during a DirectEvent, after the component has been rendered in the browser.</p>

<p>The methods allow adding of client side handlers after a component has been created and are typically used during a DirectEvent. Unlike using the <code>&lt;Listeners&gt;</code>, the <code>On</code> Method allows to add several handlers for one event (one handler for each <code>On</code> call).</p>

<pre class="prettyprint">Button1.On("click", new JFunction("alert('The button is clicked');", "button", "e"));</pre>

<p>Arguments can be omitted if you don't use it in the handler.<br />Please note that if the handler returns <code>false</code> then other handlers will not be executed (returning <code>false</code> cancels the event handling), DirectEvent handlers for this event will not be executed also.</p>

<h3>Using .on or .addListener client side methods</h3>

<p>If you need to add an event handler using client side JavaScript, you can call the <code>on</code> function on the client side instance of a component.</p>

<pre class="prettyprint">Button1.on(<br />    "click", <br />    function (button, e) {<br />        alert('The button is clicked');<br />    }<br />);
</pre>

<p>Additional tips and tutorials can be found in the <a href="http://docs.sencha.com/ext-js/4-1/#!/api/Ext.util.Observable-method-on">client side API</a> documentation.</p>

<p>You can also trigger an event to fire manually in JavaScript by calling the <code>fireEvent</code> JavaScript function. You must pass the name of the event as the first argument. The following sample demonstrates calling the <code>fireEvent</code> function:</p>

<pre class="prettyprint">// this will cause all 'click' Listeners 
// on the Button to fire.
App.Button1.fireEvent('click', App.Button1); 
</pre>

<p>Please note that DirectEvents can also be initiated by calling the <code>fireEvent</code> function (DirectEvents are executed after Listeners, but the sequence can change by using <code>Delay</code> property of the Listener).</p>

<p>A DirectEvent can be canceled if any Listener (without a <code>Delay</code> set) returns <code>false</code>. Please see <code>fireEvent</code> <a href="http://docs.sencha.com/ext-js/4-1/#!/api/Ext.util.Observable-method-fireEvent">client side</a> documentation.</p>

<h2>Summary</h2>

<p>In this part of the article we considered Listeners - client side handlers of client side events. Listeners allow us to handle events in the client browser with instant feedback upon user actions and without server interaction.</p>

<p>DirectEvents will be explored in the next tutorial.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ext.net/2012/12/19/introduction-to-ext-net-events/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ext.NET 2 Now Available</title>
		<link>http://www.ext.net/2012/12/04/ext-net-2-now-available/</link>
		<comments>http://www.ext.net/2012/12/04/ext-net-2-now-available/#comments</comments>
		<pubDate>Tue, 04 Dec 2012 16:50:40 +0000</pubDate>
		<dc:creator>geoffrey.mcgill</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.ext.net/?p=375</guid>
		<description><![CDATA[<img src="http://www.ext.net/wp-content/uploads/2012/12/ext2.png" alt="ext.net2" class="feature-image feature-image-after" />

<p>After over more than year and a half of development, the official Ext.NET 2 release is now available for <a href="/download/">download</a>.</p>

<p>Ext.NET 2 integrates the Sencha ExtJS 4 library making it even easier for ASP.NET developers, both Web Forms and MVC (more on that below), to build the next generation of HTML5 enabled web applications.</p>]]></description>
				<content:encoded><![CDATA[<img src="http://www.ext.net/wp-content/uploads/2012/12/ext2.png" alt="ext.net2" class="feature-image feature-image-after" />

<p>After over more than year and a half of development, the official Ext.NET 2 release is now available for <a href="/download/">download</a>.</p>

<p>Ext.NET 2 integrates the Sencha ExtJS 4 library making it even easier for ASP.NET developers, both Web Forms and MVC (more on that below), to build the next generation of HTML5 enabled web applications.</p>

<blockquote>With access to 100+ Controls, Ext.NET developers now have the largest integrated suite of ASP.NET Controls and HTML5 based Charts available today.</blockquote>

<p><img class="feature-image feature-image-after" src="/wp-content/uploads/2012/06/ext.net_.sticker2.jpg" />Thousands of new features and improvements have been added to Ext.NET 2, and it's going to take more than a few blog posts to work through the details. To help you get the most out of Ext.NET, we're starting a regular blog series to communicate new features, functionality, and developer tips.</p>

<h2>Quick Installation</h2>

<p>The quickest and easiest way to install Ext.NET 2 is using the Visual Studio Package Manager and NuGet. One simple call to <code>Install-Package Ext.NET</code> using NuGet and everything you need will be automatically installed and configured within seconds.</p>

<code class="command"><a href="http://nuget.org/List/Packages/Ext.NET">PM> Install-Package Ext.NET</a></code>

<p>All download options are available on the new Ext.NET <a href="/download">download page</a>.</p>

<p>Public release versions of Ext.NET Pro, including the <a href="http://examples.ext.net/">Examples Explorer</a>, and the new <a href="http://mvc.ext.net">MVC Examples Explorer</a> are available with full source code from <a href="">GitHub</a>. Be sure to keep up to date by following the <a href="https://github.com/extnet/Ext.NET.Pro">Ext.NET Pro</a> project.<p>

<h2>ASP.NET MVC Support</h2>

<p>With Ext.NET 2 we are thrilled to announce full support for ASP.NET MVC, including full support for the Razor View Engine.</p>

<p>Everything in Ext.NET now &quot;just works&quot; in both Web Forms and MVC projects. All Ext.NET Components, all properties, all methods and all client/server-side events are fully supported.</p>

<p><strong>Please note</strong>, this is not some subset of additional widgets, or an under-developed side library. With Ext.NET you choose your platform and know you need not make sacrifices for missing functionality. The versatility of language options allow Ext.NET developers to choose an architecture best suited for their project and team.</p>

<p>The following sample demonstrates creating the same basic <strong>Window</strong> Component using three different language options: ASP.NET MVC Razor, ASP.NET Web Forms markup, and C# code-behind.</p>

<h4>Example (ASP.NET MVC Razor)</h4>

<pre class="prettyprint">
@(Html.X().Window()
    .Title("Hello World")
    .Icon(Icon.Application)
    .Height(215)
    .Width(350)
    .BodyPadding(5)
    .Html("An Ext.NET Window")
)
</pre>

<h4>Example (ASP.NET Web Forms)</h4>

<pre class="prettyprint">
&lt;ext:Window 
    runat="server"
    Title="Hello World"
    Icon="Application"
    Height="215"
    Width="350"
    BodyPadding="5"
    Html="An Ext.NET Window"
    />
</pre>

<h4>Example (C#)</h4>

<pre class="prettyprint">
var win = new Window { 
    Title = "Hello World",
    Icon = Icon.Application,
    Height = 215,
    Width = 350,
    BodyPadding = 5,
    Html = "An Ext.NET Window"
};</pre>

<h2>Charting</h2>

<p><img class="feature-image feature-image-after" src="/wp-content/uploads/2012/12/ext-net-charts-e1355224663555.png" />New in Ext.NET 2 (ExtJS 4) is a <strong>plugin free</strong> (no Flash!) Charting package. Charting is included in the main Ext.NET library and not a separate package. Install Ext.NET and you also instantly have a fully integrated powerful Charting package right within the library.</p>

<p>And... just like all other Components in Ext.NET, the Charting library is fully supported in ASP.NET MVC Razor View Engine.</p>

<pre class="prettyprint">
@(Html.X().Chart()
    .Height(350)
    .Width(350)
    .Shadow(true)
    .Series(Html.X().PieSeries()
        .Highlight(true)
        .HighlightSegmentMargin(20)
        .Label(new SeriesLabel
        {
            Field = new string[] { "Name" },
            Display = SeriesLabelDisplay.Rotate
        })
    ))
</pre>

<h2>New Ext.NET Book</h2>

<p><a href="/2012/12/04/new-book-ext-net-web-application-development/"><img src="/img/book.png" alt="book" class="feature-image feature-image-after" /></a>In case you missed the recent <a href="/2012/12/04/new-book-ext-net-web-application-development/">blog post</a> announcing the new Ext.NET book, there's a new Ext.NET book available from Packt.</p>

<blockquote>It's 400+ pages, and it's awesome!</blockquote>

<p>Authored by long time Ext.NET community member and friend of Ext.NET <a href="http://forums.ext.net/member.php?562-anup">Anup Shah</a> (<a href="http://www.onenaught.com/">onenaught.com</a>), the book provides a comprehensive look into all the major components, features and functionality of Ext.NET 2.</p>

<p>If you're an active Ext.NET developer, Chapter 9 on "<cite>Extending Ext.NET Controls – Custom Controls and Plugins</cite>" is worth the price of the book alone.</p>

<h2>Get the book for FREE!</h2>

<a href="/store/"><img src="/wp-content/uploads/2012/12/sale.png" alt="Sale" title="sale" /></a>

<p>As a special reward for all new Ext.NET <a href="/store/">Pro bundle</a> purchasers, Ext.NET is including a FREE copy of the eBook, or “Print Book + eBook”, depending on the quantity of licenses purchased. More information and pricing available in the <a href="/store/">Store</a>.</p>
<table>
<tr>
    <td>Single Developer</td>
    <td>One (1) free eBook</td>
</tr>
<tr>
    <td>Five Developers</td>
    <td>Two (2) free copies of the Print Book* + eBook + PacktLib access</td>
</tr>
<tr>
    <td>Twenty Developers</td>
    <td>Five (5) free copies of the Print Book* + eBook + PacktLib access</td>
</tr>
<tr>
    <td>&nbsp;</td>
    <td><small>* Includes free world-wide shipping.</small></td>
</tr>
</table>

<h2>Community Forums</h2>
<p>We're seeing activity within the <a href="http://forums.ext.net/">Community Forums</a> increase daily and regularly hitting 125+ new posts per day. The post count is closing in quickly on 100,000 and recently passed 22,000 discussions.</p>

<h2>Special Thanks</h2>
<p>We want to thank all community members for their feedback during our earlier releases. Thanks! Your contributions, feedback and bug reporting were fantastic and really helped to refine the Ext.NET 2 release.</p>

<p>We're super excited about this release. It's been a lot of work, and we're interested in your feedback. Please feel free to post questions or comments in the Ext.NET <a href="http://forums.ext.net/">Community Forums</a> and let us know what you think.</p>

<p>Follow Ext.NET on Twitter using <a href="https://twitter.com/extnet">@extnet</a> or tag us using <code>#extnet</code>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ext.net/2012/12/04/ext-net-2-now-available/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New Book: Ext.NET Web Application Development</title>
		<link>http://www.ext.net/2012/12/04/new-book-ext-net-web-application-development/</link>
		<comments>http://www.ext.net/2012/12/04/new-book-ext-net-web-application-development/#comments</comments>
		<pubDate>Tue, 04 Dec 2012 10:28:49 +0000</pubDate>
		<dc:creator>Anup</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.ext.net/?p=547</guid>
		<description><![CDATA[<p>The book <cite>Ext.NET Web Application Development</cite> has just recently been published by Packt Publishing.</p>

<blockquote>A guide to building Rich Internet Applications with Ext.NET using ASP.NET Web Forms and ASP.NET MVC</blockquote>

<p>The technical editors were the entire Ext.NET team (<a href="http://forums.ext.net/member.php?2345-Daniil">@Daniil</a>, <a href="http://forums.ext.net/member.php?52-Vladimir">@Vladimir</a> &#38; <a href="http://forums.ext.net/member.php?2-geoffrey-mcgill">@geoffrey.mcgill</a>) so it could not get any better! As a result, this book will have many tips and techniques not yet mentioned elsewhere.</p>

<p>As far as we are aware, this is the first book on Ext.NET, so it was an honour to be asked to write it.</p>]]></description>
				<content:encoded><![CDATA[<p>The book <cite>Ext.NET Web Application Development</cite> has just recently been published by Packt Publishing.</p>

<blockquote>A guide to building Rich Internet Applications with Ext.NET using ASP.NET Web Forms and ASP.NET MVC</blockquote>

<p>The technical editors were the entire Ext.NET team (<a href="http://forums.ext.net/member.php?2345-Daniil">@Daniil</a>, <a href="http://forums.ext.net/member.php?52-Vladimir">@Vladimir</a> &amp; <a href="http://forums.ext.net/member.php?2-geoffrey-mcgill">@geoffrey.mcgill</a>) so it could not get any better! As a result, this book will have many tips and techniques not yet mentioned elsewhere.</p>

<p>As far as we are aware, this is the first book on Ext.NET, so it was an honour to be asked to write it.</p>

<h2>About the book</h2>

<p><img src="/img/book.png" alt="book" class="feature-image feature-image-before" />The book provides an overview of Ext.NET 2 covering major areas and features of Ext.NET and also empowers the reader to know how to find out more details when needed.</p>

<p>If you are an ASP.NET developer looking to incorporate Ext.NET and Ext JS into your application then this book is for you.</p>

<p>You will find tips and code samples in addition to discussions about features not discussed elsewhere.</p>

<p>With over 400 pages, this book will help you:</p>

<ul>
<li>Understand how Ext.NET and Ext JS fit together to help create applications with seamless server side integration</li>
<li>Learn how to organize controls and layouts to create highly interactive UIs with the richness of desktop-like applications</li>
<li>Understand the different AJAX options available to interact with the server and choose the techniques that suit your needs</li>
<li>Know the various options to represent and model data, locally or remotely, and reuse them where needed</li>
<li>Learn how to build sophisticated grids, trees, and other AJAX-based components that interact with the server efficiently</li>
<li>Gain confidence in extending components and creating plugins for reusability and maintainability</li>
<li>Create user-friendly forms with rich and custom client and server side validation</li>
<li>Learn how to troubleshoot your applications</li>
</ul>

<figure class="feature-figure">
<img src="/wp-content/uploads/2012/12/book-sample-tip.png" alt="" title="Sample Tip" class="feature-image" />
<figcaption>Tips are scattered throughout the book.</figcaption>
</figure>

<figure class="feature-figure">
<img src="/wp-content/uploads/2012/12/ext-net-book-screenshot-gridpanel-rowselection-multi.png" alt="Sample Code" class="feature-image" />
<figcaption>Code samples are supported with numerous screenshots.</figcaption>
</figure>

<h2>Chapter overviews</h2>

<p>Here's a summary of what each chapter contains:</p>

<p><strong>Chapter 1, Getting Started with Ext.NET</strong>, provides an overview of what Ext.NET is and how it is related to Ext JS and ASP.NET. In addition, this chapter covers how you can obtain and set up your development environment ready for Ext.NET development.<p>

<p><strong>Chapter 2, Ext.NET Controls Overview</strong>, introduces various types of controls available in Ext.NET. Using the Button control, we introduce many concepts common throughout the Ext.NET control suite. We also look at how client-side and server-side events can be set up. This chapter also introduces other more common components including Panels, Toolbars, Menus, Windows, and Tooltips. We also get a glimpse of some of the complex UIs that are possible by reusing these components.</p>

<p><strong>Chapter 3, Layout with Ext.NET</strong>, covers the numerous layout options available in Ext.NET to help you organize your web applications. Topics covered include the Viewport, and specific layouts such as Border, Accordion, Fit, HBox, VBox, and more.</p>

<p><strong>Chapter 4, AJAX with Ext.NET</strong>, looks at the powerful AJAX options Ext.NET supports. We cover the powerful DirectEvents and DirectMethods features, as well as AJAX options specific to certain controls. This is a powerful chapter that lays the foundation for slick and usable applications that are responsive to user interactions.</p>

<p><strong>Chapter 5, Working with Data</strong>, looks at the powerful data handling techniques available in Ext.NET. We cover XTemplates, which allows you to define HTML templates to bind data to, and we explain the Stores, Models, and Proxies architecture that allows for powerful data-binding reuse across many Ext.NET components. The ComboBox and DataView are introduced as examples of controls that reuse this architecture.</p>

<p><strong>Chapter 6, Introducing GridPanels</strong>, covers the popular and highly sophisticated GridPanel control. It is another control that reuses the Stores, Models, and Proxies architecture, but is given its own chapter. We look at various features of the GridPanel such as paging, filtering, sorting, grouping, column summaries, row expanding, and selection models. We also look at how grid editing can be enabled, including in-line grid editing at the row or cell level. As large as this chapter is, there are many other GridPanel capabilities that we have not been able to fit into this book, so many links to further examples and resources are also provided.</p>

<p><strong>Chapter 7, Forms and Validation</strong>, looks at the numerous form controls available in Ext. NET, how to lay them out, and how to enable client and remote validation. We also look at how custom validators can be created. Lastly, we also see how Ext.NET's data-binding capabilities can also be reused with forms.</p>

<p><strong>Chapter 8, Trees and Tabs with Ext.NET</strong>, introduces the popular TreePanel and TabPanel controls. Due to limited space in the book, we cannot cover all the sophisticated possibilities that these controls offer, but we do provide an overview of how tree nodes can be loaded asynchronously and how to reuse the Store, Models, and Proxies architecture to bind data to trees. We also look at various ways TabPanels can be configured, including how to load content on-demand using various AJAX techniques supported by Ext.NET.</p>

<p><strong>Chapter 9, Extending Ext.NET Controls – Custom Controls and Plugins</strong>, is perhaps the most powerful chapter in this book. It shows you how to extend Ext.NET controls in a variety of ways to support both ASP.NET Web Forms and ASP.NET MVC Razor templates, enabling you to create highly reusable components. Most of the chapter looks at how controls can be extended, but we also look at how you can use the available plugin mechanisms to reuse functionality across different types of components.</p>

<p><strong>Chapter 10, Troubleshooting and Debugging</strong>, looks at how to debug your Ext.NET applications. In particular, we look at how to enable debug versions of Ext.NET and Ext JS JavaScript and what tools to use for cross-browser troubleshooting. This chapter also provides important tips on how to request help in the Ext.NET forums in a way that will increase your chances of receiving a quick response.</p>

<p><em>My personal favorite is chapter 9. Not only did I learn a lot myself when putting it together, I think it is also one of the most important; I wish I knew this about 3 or 4 years ago as it would have helped make my own apps even more reusable. For me it is worth getting the book for this chapter alone!</em></p>

<h2>Get the book for FREE!</h2>

<a href="/store/"><img src="/wp-content/uploads/2012/12/sale.png" alt="Sale" title="sale" /></a>

<p>As a special reward for all new Ext.NET <a href="/store/">Pro bundle</a> purchasers, Ext.NET is including a FREE copy of the eBook, or “Print Book + eBook”, depending on the quantity of licenses purchased. More information and pricing available in the <a href="/store/">Store</a>.</p>
<table>
<tr>
    <td>Single Developer</td>
    <td>One (1) free eBook</td>
</tr>
<tr>
    <td>Five Developers</td>
    <td>Two (2) free copies of the Print Book* + eBook + PacktLib access</td>
</tr>
<tr>
    <td>Twenty Developers</td>
    <td>Five (5) free copies of the Print Book* + eBook + PacktLib access</td>
</tr>
<tr>
    <td>&nbsp;</td>
    <td><small>* Includes free world-wide shipping.</small></td>
</tr>
</table>

<h2>About the author</h2>

<p>I've been a web developer since 1997. In 2007 or 2008 I shifted focus from public-facing sites to web-based lines of business applications. While the techologies were the same, the emphasis was different. More JavaScript, AJAX and componentisation was needed as we were creating a shrink-wrapped product.</p>

<p>Frustrated with the toolset I was using at the time, I searched for components that integrated with ASP.NET but also gave me full control on the client side when needed. I came across an early version of Ext.NET. It was great because it had just the right layout components I needed (the BorderLayout was what drew me in!) and it integrated with the powerful client side JavaScript framework, Ext JS. The components were far richer than YUI or jQuery UI, and very quickly we started to incorporate the framework into our product.</p>

<p>I've been immensely productive using Ext.NET. The powerful AJAX framework and flexible component architecture has helped us drive our product forward even more making it both responsive and highly usable.</p>

<p>So when Packt Publishing approached me to write a book on Ext.NET it was hard to resist. I hope the book helps provide some useful insights and guidance to creating Ext.NET-based web applications.</p>

<p>You can find me on the <a href="http://forums.ext.net">Ext.NET Forums</a> (user name "<a href="http://forums.ext.net/member.php?562-anup">anup</a>") or on my web site: <a href="http://www.onenaught.com">http://www.onenaught.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ext.net/2012/12/04/new-book-ext-net-web-application-development/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ext.NET v1 Available Today</title>
		<link>http://www.ext.net/2011/09/20/ext-net-v1-available-today/</link>
		<comments>http://www.ext.net/2011/09/20/ext-net-v1-available-today/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 17:49:06 +0000</pubDate>
		<dc:creator>geoffrey.mcgill</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.ext.net/?p=331</guid>
		<description><![CDATA[<p>The Ext.NET team is pleased to announce the official release of Ext.NET v1 (currently at v1.2.0).</p>

<p>Installation packages available for <a href="http://www.ext.net/download/" title="Ext.NET Download">download</a> or <a href="http://nuget.org/List/Packages/Ext.NET" title="Ext.NET on NuGet">NuGet</a>. </p>

<blockquote>Ext.NET is a dramatic step forward for rich dynamic web application system development in ASP.NET.</blockquote>]]></description>
				<content:encoded><![CDATA[<p>The Ext.NET team is pleased to announce the official release of Ext.NET v1 (currently at v1.2.0).</p>

<p>Installation packages available for <a href="http://www.ext.net/download/" title="Ext.NET Download">download</a> or <a href="http://nuget.org/List/Packages/Ext.NET" title="Ext.NET on NuGet">NuGet</a>. </p>

<blockquote>Ext.NET is a dramatic step forward for rich dynamic web application system development in ASP.NET.</blockquote>

<h2>Install with NuGet</h2>

<img class="feature-image feature-image-before" src="http://www.ext.net/wp-content/uploads/2011/09/nuget.gif" alt="" />

<p>We're now releasing Ext.NET Pro as a <a href="http://nuget.org/List/Packages/Ext.NET" title="Download Ext.NET from NuGet">NuGet Package</a> enabling quick installation into your ASP.NET web application within seconds.</p>

<code class="command"><a href="http://nuget.org/List/Packages/Ext.NET" title="Download Ext.NET from NuGet">PM>Install-Package Ext.NET</a></code>

<p>Simply search for "Ext.NET" with the NuGet package manager and NuGet automatically handles installation of the most recent Ext.NET Assemblies (.dll) and merging of correct Web.config settings.</p>

<p>Given the overwhelming ease and convenience of using NuGet, we're contemplating moving installation/download of Ext.NET Pro exclusively to NuGet. Your feedback is appreciated.</p>

<h2>Updated Examples Explorer</h2>

<p>The <a href="http://examples.ext.net/" title="Ext.NET Examples Explorer">Examples Explorer</a> has been updated with several new samples and refinements including a "Recent SVN Commits" browser. The public SVN Commits browser allows for quick previewing of all recent source code changes and their associated commit comments.</p>

<a href="http://examples.ext.net/"><img class="feature-image" src="http://www.ext.net/wp-content/uploads/2011/09/extnet_examples_explorer.gif" alt="" /></a>

<h2>Continuous Development</h2>

<img class="feature-image feature-image-before" title="Sencha" src="http://www.ext.net/wp-content/uploads/2010/11/sencha_logo.gif" alt="" />

<p>Continual development of Ext.NET ensures new features are being introduced into the framework weekly. The next major release of Ext.NET (v2) is well underway and will include integration of Sencha ExtJS 4. </p>

<p>Full support for ASP.NET MVC (all View Engines, including Razor) will be built directly into the Ext.NET Assembly.</p>

<p>A private "Developer Preview" of Ext.NET v2 will be available soon to all <a href="http://www.ext.net/store/" title="Ext.NET Store">Ext.NET Pro</a> license holders with a valid Premium Support Subscription. Release of a public (Ext.NET Community License) preview will happen shortly thereafter.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ext.net/2011/09/20/ext-net-v1-available-today/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Echo. X-ray. Tango.</title>
		<link>http://www.ext.net/2010/11/02/echo-xray-tango/</link>
		<comments>http://www.ext.net/2010/11/02/echo-xray-tango/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 08:08:17 +0000</pubDate>
		<dc:creator>geoffrey.mcgill</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://new.ext.net/?p=6</guid>
		<description><![CDATA[<p>We are happy to announce the launch of the new <a href="http://www.ext.net/">Ext.NET</a> website and <a href="/download/">download</a> of the new Ext.NET Version 1.0 release candidate.</p>

<p>With the v1.0 release, we've integrated the latest <a href="http://www.sencha.com/">Sencha</a> <a href="http://www.sencha.com/products/js/">Ext JS</a> release, added 40 new controls, and have now broken the 100+ control mark (plus dozens of plugins). Never before have ASP.NET developers had access to such a powerful and cohesive suite of web controls for building rich ajax enabled web applications.</p>]]></description>
				<content:encoded><![CDATA[<p>We are happy to announce the launch of the new <a href="http://www.ext.net/">Ext.NET</a> website and <a href="/download/">download</a> of the new Ext.NET Version 1.0 release candidate.</p>

<h2>NEW Components</h2>

<img class="feature-image feature-image-before" src="http://www.ext.net/wp-content/uploads/2010/11/sencha_logo.gif" alt="Sencha" />

<p>With the v1.0 release, we've integrated the latest <a href="http://www.sencha.com/">Sencha</a> <a href="http://www.sencha.com/products/js/">Ext JS</a> release, added 40 new controls, and have now broken the 100+ control mark (plus dozens of plugins). Never before have ASP.NET developers had access to such a powerful and cohesive suite of web controls for building rich ajax enabled web applications.</p>

<p>Some notable new Components include:</p>
<ol>
	<li><strong>Calendar</strong>: Wicked awesome new <a href="http://examples.ext.net/#/Calendar/Overview/Basic/">Calendar</a> with Day, Week and Month views.</li>
	<li><strong>ButtonGroup</strong>: Create <a href="http://examples.ext.net/#/Buttons/ButtonGroup/Overview/">Button groupings</a> and layouts similar to Microsoft Office toolbars.</li>
	<li><strong>ListView</strong>: A fast and <a href="http://examples.ext.net/#/ListView/Basic/Overview/">light-weight</a> implementation of a Grid.</li>
	<li><strong>MultiCombo</strong>: ComboBox with <a href="http://examples.ext.net/#/Form/ComboBox/MultiCombo/">multi selection</a> ability.</li>
	<li><strong><a href="http://examples.ext.net/#/Layout/HBoxLayout/Basic/">HBox</a> and <a href="http://examples.ext.net/#/Layout/VBoxLayout/Basic/">VBox</a> Layouts</strong> for flexible control of horizontal and vertical item layouts.</li>
</ol>

<h2>NEW Community Forums</h2>

<p><a href="http://forums.ext.net/"><img class="feature-image feature-image-before" title="extnet_forums" src="http://www.ext.net/wp-content/uploads/2010/11/extnet_forums.gif" alt=""/></a>Looking for some technical support? Want to connect with other Ext.NET developers? Post some cool code? Please be sure to check out the recently updated <a href="http://forums.ext.net/">Community Forums</a>.</p>

<p>With an active community of developers, a dedicated professional support team, and 40,000+ posts, this valuable resource of information is always available to help answer questions.</p>

<h2>NEW Examples Explorer</h2>

<p><a href="http://examples.ext.net/#/Getting_Started/Introduction/Component_Overview/"><img class="feature-image" title="Ext.NET Component Overview" src="http://www.ext.net/wp-content/uploads/2010/11/extnet_component_overview.png" alt=""/></a>The Version 1.0 Examples Explorer has been updated with over 100 new samples and now contains over 300 live working demos. We obviously have a lot to talk about here in future blog posts, but a few new notable samples include:</p>
<ol>
	<li><a href="http://examples.ext.net/#/Getting_Started/Introduction/Component_Overview/">Component Overview</a>
Complete list of Ext.NET Components packed onto one page with theme switching.</li>
	<li><a href="http://examples.ext.net/#/XRender/Basic/New_Window/">Dynamic Component creation with XRender</a>
All Ext.NET and/or ASP.NET controls can now be added dynamically during ajax requests.</li>
	<li><a href="http://examples.ext.net/ASP.NET_MVC/Applications/Northwind/">ASP.NET MVC Demo</a></li>
	<li><a href="http://examples.ext.net/#/Combination_Samples/Applications/Simple_Tasks/">Simple Tasks Demo</a></li>
	<li><a href="http://examples.ext.net/#/GridPanel/Plugins/RowEditor/">GridPanel with RowEditor Plugin</a></li>
</ol>

<h2>NEW Pricing</h2>

<p>We've gone back through the Ext.NET Pro license pricing and sharpened our pencils. Along with the new release we're introducing new <a href="/store/">pricing</a> and a simplified structure for Ext.NET Pro Licenses and Premium Support Subscriptions.</p>

<p><a href="/store/">Options</a> are now bundled in simplified single (1), five (5) or twenty (20) license packs.</p>

<h2>On Sale Now <span class="label label-inline">SALE</span></h2>

<p>For a limited time (ending December 10, 2010), all Ext.NET Pro + Support Bundles are on <a href="/store/">SALE</a>. If you’ve been thinking about purchasing a Pro License, now is your chance to jump in and support Ext.NET with even better pricing.</p>

<h2>Premium Support For All</h2>

<p>Premium Support Subscriptions are now available for both <a href="/license/">closed-source</a> Pro License and <a href="/license/">open-source</a> Community License members. In the past we've only been able to offer Premium Support Subscriptions to Pro License holders, but now Premium Support is opened up to both Pro and open-source Community developers. Included with a Premium Support Subscription is <a href="http://forums.ext.net/forumdisplay.php?9-Premium-Help">priorty technical support</a>, direct access to the real-time project source code, and early access to future releases.</p>

<p>Premium Support Subscriptions can be purchased in the <a href="/store/">Ext.NET Store</a>.</p>

<h2>Free Upgrades For Pro + Premium Support Bundle Purchase</h2>

<p>Starting today, when an Ext.NET Pro License and Premium Support subscription is purchased together, a free upgrade to the next major release is included. This is in addition to the already included free minor version upgrades. For example, upgrading from 1.0 to 1.1 to 1.x are all free, and now upgrading to a future 2.0 release would be included during your twelve month subscription.</p>

<h2>Thanks!</h2>

<p>We would love to hear from you and feedback is always appreciated. Please feel free to join in the conversations happening within the <a href="http://forums.ext.net/">forums</a> and let us know what you think.</p>

<p>Follow our new Twitter handle <a href="http://www.twitter.com/extnet">@extnet</a> or tag us using <a href="http://search.twitter.com/search?q=extnet">#extnet</a>.</p>

<p>Finally, here's a big high-five to the Ext.NET developer community and all those who sent their feedback, support and encouragement. Thanks for hanging in there.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ext.net/2010/11/02/echo-xray-tango/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The constant WPCACHEHOME must be set in the file wp-config.php and point at the WP Super Cache plugin directory. -->