<?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>AJAX Planet &#187; ASP.Net</title>
	<atom:link href="http://www.ajaxplanet.ru/tag/aspnet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ajaxplanet.ru</link>
	<description></description>
	<lastBuildDate>Thu, 13 Oct 2011 13:00:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Выпущен ASP.NET AJAX 1.0</title>
		<link>http://www.ajaxplanet.ru/asp-net-ajax-1-released/</link>
		<comments>http://www.ajaxplanet.ru/asp-net-ajax-1-released/#comments</comments>
		<pubDate>Wed, 24 Jan 2007 07:43:12 +0000</pubDate>
		<dc:creator>darius</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[atlas]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[ASP.NET-AJAX]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/asp-net-ajax-1-released/</guid>
		<description><![CDATA[Вчера официально зарелизился ASP.NET AJAX 1.0. В принципе, никаких неожиданностей, всё происходит в полном соответствии с давно объявленными планами. Подробно о релизе можно прочесть в блоге Скотта Гатри (Scott Guthrie) &#169; AJAX Planet, 2007. &#124; Постоянная ссылка &#124; Комментарии Интересна эта тема? Посмотрите архив сообщений по теме AJAX, atlas, Microsoft, Библиотеки и фреймворки.]]></description>
			<content:encoded><![CDATA[<p>Вчера официально зарелизился <noindex><a href="http://ajax.asp.net/">ASP.NET AJAX 1.0</a></noindex>. В принципе, никаких неожиданностей, всё происходит в полном соответствии с <noindex><a href="http://www.ajaxplanet.ru/microsoft-atlas-plans/">давно объявленными планами</a></noindex>. Подробно о релизе можно прочесть в <noindex><a href="http://weblogs.asp.net/scottgu/archive/2007/01/23/asp-net-ajax-1-0-released.aspx">блоге Скотта Гатри (Scott Guthrie)</a></noindex></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2007. |
	  <a href="http://www.ajaxplanet.ru/asp-net-ajax-1-released/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/asp-net-ajax-1-released/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/atlas/" title="Просмотреть все записи в рубрике &laquo;atlas&raquo;" rel="category tag">atlas</a>, <a href="http://www.ajaxplanet.ru/category/microsoft/" title="Просмотреть все записи в рубрике &laquo;Microsoft&raquo;" rel="category tag">Microsoft</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/asp-net-ajax-1-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP for Microsoft AJAX Library</title>
		<link>http://www.ajaxplanet.ru/php-for-microsoft-ajax-library/</link>
		<comments>http://www.ajaxplanet.ru/php-for-microsoft-ajax-library/#comments</comments>
		<pubDate>Wed, 24 Jan 2007 07:23:02 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[atlas]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[ASP.NET-AJAX]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[фреймворк]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/php-for-microsoft-ajax-library/</guid>
		<description><![CDATA[Как известно, ASP.NET AJAX, ранее известный как Atlas, про который я достаточно много писал, исходно создавался для работы с ASP.Net. Впрочем, сама библиотека Microsoft AJAX Library &#8212; это чистый JavaScript, который можно скачать отдельно и попытаться использовать независимо от ASP.Net. Сегодня появился первый публичный релиз проекта &#8220;PHP for Microsoft AJAX Library, небольшой библиотечки, которая призвана [...]]]></description>
			<content:encoded><![CDATA[<p>Как известно, <noindex><a href="http://ajax.asp.net/">ASP.NET AJAX</a></noindex>, ранее известный как <noindex><a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/atlas/">Atlas, про который я достаточно много писал</a></noindex>, исходно создавался для работы с ASP.Net. Впрочем, сама библиотека Microsoft AJAX Library &#8212; это чистый JavaScript, который можно скачать отдельно и попытаться использовать независимо от ASP.Net. </p>
<p>Сегодня появился первый публичный релиз проекта &#8220;<noindex><a href="http://codeplex.com/phpmsajax">PHP for Microsoft AJAX Library</a></noindex>, небольшой библиотечки, которая призвана облегчить использование Microsoft AJAX Library в приложениях, написанных на PHP. Проект открытый, базируется на и выпущен под Microsoft Permissive License.</p>
<p>Пока лишь альфа-релиз, и, при наличии множества конкурирующих библиотек, судьба проекта туманна. В качестве примера приведу код с использованием PHP for Microsoft AJAX Library, работающий с веб-сервисом. По построению на ASP.Net было бы то же самое: </p>
<p><strong>HelloService.php:</strong></p>
<p><code lang="php">< ?php</p>
<p>require_once ‘../../dist/MSAjaxService.php’;</p>
<p>class HelloService extends MSAjaxService<br />
{<br />
function SayHello($name)<br />
{<br />
return "Hello, " . $name . "!";<br />
}<br />
}</p>
<p>$h = new HelloService();<br />
$h->ProcessRequest();</p>
<p>?></p>
<p></code></p>
<p><strong>index.html:</strong></p>
<p><code lang="HTML"><br />
<html><br />
<head></p>
<p><script type="text/javascript" src="../../MicrosoftAjaxLibrary/MicrosoftAjax.js"></script><br />
<script type="text/javascript" src="HelloService.php/js"></script><br />
</head><br />
<body><br />
Name:<br />
<input id="name" type="text" />
<input type="button" value="Say Hello" onclick="button_click(); return false;" />
<br />
Response from server: <span id="response"></span><br />
</body><br />
<script type="text/javascript">
function button_click() {
HelloService.SayHello($get(’name’).value, function (result) {
$get(’response’).innerHTML = result;
});
}
</script><br />
</html></p>
<p></code></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2007. |
	  <a href="http://www.ajaxplanet.ru/php-for-microsoft-ajax-library/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/php-for-microsoft-ajax-library/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/atlas/" title="Просмотреть все записи в рубрике &laquo;atlas&raquo;" rel="category tag">atlas</a>, <a href="http://www.ajaxplanet.ru/category/microsoft/" title="Просмотреть все записи в рубрике &laquo;Microsoft&raquo;" rel="category tag">Microsoft</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/php-for-microsoft-ajax-library/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>IronPython CTP for ASP.NET</title>
		<link>http://www.ajaxplanet.ru/ironpython-ctp-for-aspnet/</link>
		<comments>http://www.ajaxplanet.ru/ironpython-ctp-for-aspnet/#comments</comments>
		<pubDate>Mon, 20 Nov 2006 12:52:54 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Компании]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[IronPython]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Visual-Studio]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/ironpython-ctp-for-aspnet/</guid>
		<description><![CDATA[Как выяснилось, я пропустил одно очень любопытное событие &#8212; 2-ого ноября Microsoft выпустила превью Python для ASP.NET. Официально он именуется &#8220;IronPython for ASP.NET&#8220;. Текущая версия уже носит гордое имя 1.0, но с постфиксом CTP &#8212; Community Technology Preview. Разработка приложений на Python поддерживается в Visual Studio и в бесплатном Visual Web Developer. Обещана &#8220;интеграция с [...]]]></description>
			<content:encoded><![CDATA[<p>Как выяснилось, я пропустил одно очень любопытное событие &#8212; 2-ого ноября <noindex><a href="http://www.asp.net/ironpython">Microsoft выпустила превью Python для ASP.NET</a></noindex>. Официально он именуется &#8220;<noindex><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=55932211-0D7E-4C6E-9B18-8F9D2AC1EE43&#038;displaylang=en">IronPython for ASP.NET</a></noindex>&#8220;. Текущая версия уже носит гордое имя 1.0, но с постфиксом CTP &#8212; Community Technology Preview. Разработка приложений на Python поддерживается в Visual Studio и в бесплатном Visual Web Developer. Обещана &#8220;интеграция с .NET Framework&#8221; и &#8220;легкий доступ ко всем библиотекам .NET&#8221;.  Почитать про реализацию можно <noindex><a href="http://www.asp.net/ironpython/WhitePaper.aspx?tabid=62">у Девида Эббо</a></noindex>. В соответствиями с последними веяниями <noindex><a href="http://www.codeplex.com/IronPython">исходный код доступен на Codeplex</a></noindex>. Там же лежат примеры, список отличий между <span id="ctl00_ctl00_Content_Main_wikiSourceLabel">IronPython 1.0 и CPython 2.4.3</span> и FAQ (последние 2 пункта, правда, пока выкидывают ошибку&#8230;). Что ж, выбор &#8212; это всегда хорошо.</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/ironpython-ctp-for-aspnet/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/ironpython-ctp-for-aspnet/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/microsoft/" title="Просмотреть все записи в рубрике &laquo;Microsoft&raquo;" rel="category tag">Microsoft</a>, <a href="http://www.ajaxplanet.ru/category/company/" title="Просмотреть все записи в рубрике &laquo;Компании&raquo;" rel="category tag">Компании</a>, <a href="http://www.ajaxplanet.ru/category/technology/" title="Просмотреть все записи в рубрике &laquo;Технологии&raquo;" rel="category tag">Технологии</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/ironpython-ctp-for-aspnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Выпущен ASP.NET AJAX Beta 1</title>
		<link>http://www.ajaxplanet.ru/asp-net-ajax-beta-1-released/</link>
		<comments>http://www.ajaxplanet.ru/asp-net-ajax-beta-1-released/#comments</comments>
		<pubDate>Mon, 23 Oct 2006 06:54:00 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[atlas]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[ASP.NET-AJAX]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/asp-net-ajax-beta-1-released/</guid>
		<description><![CDATA[Как я уже писал, Микрософт определился со своими планами по поводу проекта &#8220;Atlas&#8221;, своей реализации AJAX. Итак, микрософтовцы решили именовать этот проект просто ASP.NET AJAX и обещали разделить Atlas на несколько компонентов и включить его ядро в состав следующей версии ASP.Net. Что ж, на пршлой неделе мы увидели первые последствия этого решения: был выпущен ASP.NET [...]]]></description>
			<content:encoded><![CDATA[<p>Как я <noindex><a href="http://www.ajaxplanet.ru/microsoft-atlas-plans/">уже писал</a></noindex>, Микрософт определился со своими планами по поводу проекта &#8220;Atlas&#8221;, своей реализации AJAX. Итак, микрософтовцы решили именовать этот проект просто ASP.NET AJAX и обещали разделить Atlas на несколько компонентов и включить его ядро в состав следующей версии ASP.Net. Что ж, на пршлой неделе мы увидели первые последствия этого решения: был выпущен <noindex><a href="http://ajax.asp.net/">ASP.NET AJAX Beta 1.</a></noindex></p>
<p>Как и было обещано, проект разделили на компоненты. Что очень порадовало, наконец-то, занялись оптимизацией: JavaScript теперь &#8212; не один здоровый и тяжелый файл, а несколько достаточно компактных, подключаемых по необходимости. Более того, оптимизация JavaScript не свелась просто к разделению файлов, занялись и содержимым, скриптовая составляющая стала компактнее, так что у пользователя и загрузка должна походить заметно быстрее. Есть ощущение, что и сами библиотеки стали работать шустрее. По заявлениям разработчиков, позаботились они и о снижении объема служебного трафика, впрочем, не проверял. Что интересно, пусть и не так актуально лично для меня, микрософтовский AJAX заработал и с Safari (раньше с совместимостью у Atlas были <noindex><a href="http://www.ajaxplanet.ru/provalnoe-testirovanie-ms-atlas/">большие проблемы</a></noindex>&#8230;). У Скотта Гатери (Scott Guthrie) в блоге есть <noindex><a href="http://weblogs.asp.net/scottgu/archive/2006/10/20/ASP.NET-AJAX-Beta-1-Released.aspx">большой и подробный обзор</a></noindex> нового релиза.<br />
В самом процессе разработки за 2 дня работы с новым релизом каких-то особенных эпохальных отличий в работе я не увидел. Ранее написанные код работает с новыми библиотеками без каких-либо проблем.</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/asp-net-ajax-beta-1-released/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/asp-net-ajax-beta-1-released/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/atlas/" title="Просмотреть все записи в рубрике &laquo;atlas&raquo;" rel="category tag">atlas</a>, <a href="http://www.ajaxplanet.ru/category/microsoft/" title="Просмотреть все записи в рубрике &laquo;Microsoft&raquo;" rel="category tag">Microsoft</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/asp-net-ajax-beta-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Динамическое добавление ConfirmButtonExtender</title>
		<link>http://www.ajaxplanet.ru/dinamicheskoe-dobavlenie-confirmbuttonextender/</link>
		<comments>http://www.ajaxplanet.ru/dinamicheskoe-dobavlenie-confirmbuttonextender/#comments</comments>
		<pubDate>Tue, 15 Aug 2006 13:08:51 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[atlas]]></category>
		<category><![CDATA[Статьи про MS Atlas]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[ASP.NET-AJAX]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/dinamicheskoe-dobavlenie-confirmbuttonextender/</guid>
		<description><![CDATA[Я уже показывал, что во многих случаях для создания веб-приложения при помощи Atlas вообще не требуется собственно программировния. Сплошной drag&#8217;n'drop, настройка папаметров и &#8220;декларативное программирование&#8221;, когда контролы напоминают шестеренки в механизме, а вы просто указываете, какая шестеренка и как зацепляет свою соседку. Однако зачастую этого недостаточно и контролы из того же Atlas Control Toolkit приходится [...]]]></description>
			<content:encoded><![CDATA[<p>Я уже  показывал, что во многих случаях <noindex><a href="http://www.ajaxplanet.ru/ms_atlas-updatepanel-basics/">для создания веб-приложения при помощи Atlas вообще не требуется собственно программировния</a></noindex>. Сплошной drag&#8217;n'drop, настройка папаметров и &#8220;декларативное программирование&#8221;, когда контролы напоминают шестеренки в механизме, а вы просто указываете, какая шестеренка и как зацепляет свою соседку. Однако зачастую этого недостаточно и контролы из того же Atlas Control Toolkit приходится добавлять динамически.</p>
<p>Простой пример &#8212; корзина заказа. На странице выводится список предзаказанных товаров, происходит окончательная проверка, а затем &#8212; непосредственно отправка заказа. Предположим, что мы хотим при отправке спросить, действительно ли клиент уверен, что все поля заполнены правильно. Естественным выбором, если вы используете Atlas, будет <noindex><a href="http://atlas.asp.net/atlastoolkit/ConfirmButton/ConfirmButton.aspx">ConfirmButtonExtender</a></noindex>. Одна беда &#8212; а что, если у нас в корзине нет товаров и, соответственно, отсутствует кнопка &#8220;заказать&#8221;, к которой привязывается <noindex><a href="http://atlas.asp.net/atlastoolkit/ConfirmButton/ConfirmButton.aspx">ConfirmButtonExtender</a></noindex>? Он, конечно же, будет выдавать ошибку. Значит, нам придется проверять, есть ли в форме эта кнопка и динамически добавлять контрол. Беда только в том, что в документации примера нет, но ничего обойдемся.</p>
<p>Итак, есть кнопка btnOrder, расположенная внутри UpdatePanel upButton. И есть наш контрол ConfirmButtonExtender, который принимает 2 параметра: TargetControlID (ID кнопки, на которую вешаем подтверждение) и ConfirmText  (вопрос, который мы задаем пользователю). Итак:</p>
<p><code lang="c#">//создаем новый ConfirmButtonExtender<br />
AtlasControlToolkit.ConfirmButtonExtender cbeOrderBtn =  new AtlasControlToolkit.ConfirmButtonExtender();</p>
<p>//создаем настройки  ConfirmButtonProperties<br />
AtlasControlToolkit.ConfirmButtonProperties cbeProp =  new AtlasControlToolkit.ConfirmButtonProperties();</p>
<p>//добавляем параметр ConfirmText<br />
cbeProp.ConfirmText = "Заказ сформирован правильно?";</p>
<p>//добавляем параметр  TargetControlId<br />
cbeProp.TargetControlID = btnOrder.ID;</p>
<p>//сопоставляем наш ConfirmButtonExtender и его свойства<br />
cbeOrderBtn.TargetProperties.Add(cbeProp);</p>
<p>//добавляем контрол в панель upButton<br />
upButton.Controls.Add(cbeOrderBtn);<br />
</code></p>
<p>Ну вот и все =)</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/dinamicheskoe-dobavlenie-confirmbuttonextender/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/dinamicheskoe-dobavlenie-confirmbuttonextender/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/atlas/" title="Просмотреть все записи в рубрике &laquo;atlas&raquo;" rel="category tag">atlas</a>, <a href="http://www.ajaxplanet.ru/category/ms-atlas-articles/" title="Просмотреть все записи в рубрике &laquo;Статьи про MS Atlas&raquo;" rel="category tag">Статьи про MS Atlas</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/dinamicheskoe-dobavlenie-confirmbuttonextender/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Atlas July CTP и новый Atlas Control Toolkit</title>
		<link>http://www.ajaxplanet.ru/atlas-july-ctp/</link>
		<comments>http://www.ajaxplanet.ru/atlas-july-ctp/#comments</comments>
		<pubDate>Wed, 09 Aug 2006 09:05:12 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[atlas]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[ASP.NET-AJAX]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/atlas-july-ctp/</guid>
		<description><![CDATA[Как-то я пропустил выход новой версии Atlas &#8212; Atlas July CTP. Основные изменения &#8212; багфиксы (скажем честно, пока это достаточно актуально). Кроме того, была выпущена новая версия Atlas Control Toolkit. На текущий момент в Atlas Control Toolkit входит 21 контрол. В последний релиз вошли несколько новинок, в том числе NumericUpDown, который я вчера начал делать [...]]]></description>
			<content:encoded><![CDATA[<p>Как-то я пропустил выход новой версии Atlas &#8212; <noindex><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D746076A-3352-4407-B9D5-832BA4DFFC7B&#038;displaylang=en">Atlas July CTP</a></noindex>. Основные изменения &#8212; багфиксы (скажем честно, пока это достаточно актуально). Кроме того, была выпущена новая версия <noindex><a href="http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=AtlasControlToolkit">Atlas Control Toolkit</a></noindex>.</p>
<p>На текущий момент в Atlas Control Toolkit входит 21 контрол. В последний релиз вошли несколько новинок, в том числе NumericUpDown, который я вчера начал делать сам =). Что интересно, Atlas Toolkit разрабатывается в духе open source на сайте <noindex><a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=AtlasControlToolkit"> CodePlex</a></noindex> и в этот релиз включены первые контролы от сторонних разработчиков &#8212; PasswordStrengthExtender (автор Paul Glavich) и FilteredTextBox (Christian Wenz). Похоже, Microsoft чему-то учится. Приятно. К концу года обещано 50 контролов.<br />
<font size="2" face="arial" /></p>
<p><font size="2" face="arial"><font size="2" face="arial" /></font><font size="2" face="arial"> </font></p>
<p style="margin: 0in 0in 10pt" class="MsoNormal"><span style="font-size: 10pt; line-height: 115%; font-family: 'Arial','sans-serif'"><font size="2" face="arial"></font><font size="2" face="arial"><font size="2" face="arial" /></font></span></p>
<p><font size="2" face="arial"></font><font size="2" face="arial"><font size="2" face="arial" /></font><font size="2" face="arial"> </font></p>
<p style="margin: 0in 0in 10pt" class="MsoNormal"><span style="font-size: 10pt; line-height: 115%; font-family: 'Arial','sans-serif'"><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"><img alt="Atlas Toolkit July" id="image263" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/08/atlas-toolkit-july.png" /><br />
</font></span></p>
<p><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"><font size="2" face="arial" /></font><font size="2" face="arial"> </font>
</p>
<p style="margin: 0in 0in 10pt" class="MsoNormal"><span style="font-size: 10pt; line-height: 115%; font-family: 'Arial','sans-serif'"><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"><font size="2" face="arial" /></font></span></p>
<p><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"><font size="2" face="arial" /></font><font size="2" face="arial"> </font></p>
<p style="margin: 0in 0in 10pt" class="MsoNormal"><span style="font-size: 10pt; line-height: 115%; font-family: 'Arial','sans-serif'"><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"></font><font size="2" face="arial"><font size="2" face="arial" /></font></span></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/atlas-july-ctp/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/atlas-july-ctp/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/atlas/" title="Просмотреть все записи в рубрике &laquo;atlas&raquo;" rel="category tag">atlas</a>, <a href="http://www.ajaxplanet.ru/category/microsoft/" title="Просмотреть все записи в рубрике &laquo;Microsoft&raquo;" rel="category tag">Microsoft</a>, <a href="http://www.ajaxplanet.ru/category/technology/" title="Просмотреть все записи в рубрике &laquo;Технологии&raquo;" rel="category tag">Технологии</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/atlas-july-ctp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atlas, первые шаги. Drag &amp; Drop</title>
		<link>http://www.ajaxplanet.ru/ms_atlas-drag-and-drop/</link>
		<comments>http://www.ajaxplanet.ru/ms_atlas-drag-and-drop/#comments</comments>
		<pubDate>Wed, 09 Aug 2006 05:56:51 +0000</pubDate>
		<dc:creator>darius</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[atlas]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[Статьи про MS Atlas]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[ASP.NET-AJAX]]></category>
		<category><![CDATA[Drag-&-Drop]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/ms_atlas-drag-and-drop/</guid>
		<description><![CDATA[Сегодня мы продолжаем серию статей, посвященных использованию MS Atlas, микрософтовской реализации AJAX, и публикуем статью про использование Drag &#038; Drop, написанную уважаемым Exception для форума Vingrad. Значит, так. На этот раз мы рассмотрим сразу два способа реализации Drag&#38;Drop на странице. Способ №1 Сначала мы рассмотрим стандартный способ. Создайте новую страничку. Далее необходимо заполнить её контентом [...]]]></description>
			<content:encoded><![CDATA[<p><em>Сегодня мы продолжаем серию статей, посвященных использованию MS Atlas, микрософтовской реализации AJAX, и публикуем статью про использование Drag &#038; Drop, написанную уважаемым <noindex><a href="http://forum.vingrad.ru/index.php?showuser=777&#038;nickname=Exception">Exception</a></noindex> для <noindex><a href="http://forum.vingrad.ru/">форума Vingrad</a></noindex>.</em></p>
<p>Значит, так. На этот раз мы рассмотрим сразу два<br />
способа реализации Drag&amp;Drop на странице.</p>
<p>
<strong>Способ №1</strong></p>
<p>
Сначала  мы рассмотрим стандартный способ. Создайте новую страничку. Далее  необходимо заполнить её контентом &#8211; дело в том, что панели &quot;ездят&quot;, то  есть двигаются только внутри самой страницы (что понятно), а посему не  могут двигаться там, где страницы уже нет . Как вариант &#8211; сделать большой <strong>div</strong> и запихнуть всё в него. Я лично для просмотра границ всяких <strong>div</strong>&#8216;ов пользую Web Developer Toolbar &#8211; хороший плагин для Firefox.</p>
<p>
Допустим, у нас есть заполненная страничка. Теперь нужно проделать довольно-таки стандартную процедуру &#8211; поместить на страницу <strong>ScriptManager</strong>. Думаю, это Вы умеете. Теперь давайте сделаем две панельки.</p>
<p>
Красивыми они у нас не будут &#8211; я сейчас не в настроении пускаться в дизайнерские изыски:</p>
<p><code>&lt;asp:Panel ID=&quot;FirstPanel&quot; runat=&quot;server&quot; CssClass=&quot;floatPanel&quot;&gt;<br />
&lt;asp:Label ID=&quot;FirstLabel&quot; runat=&quot;server&quot; Text=&quot;Это область, которую можно таскать мышкой <img src='http://www.ajaxplanet.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &quot; /&gt;<br />
&lt;/asp:Panel&gt;<br />
&lt;asp:Panel ID=&quot;SecondPanel&quot; runat=&quot;server&quot; CssClass=&quot;floatPanel&quot;&gt;<br />
&lt;asp:Label ID=&quot;SecondLabel&quot; runat=&quot;server&quot; Text=&quot;Это область, которую можно таскать мышкой <img src='http://www.ajaxplanet.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &quot; /&gt;<br />
&lt;/asp:Panel&gt;</code>
<p>
Теперь объявим класс CSS <strong>floatPanel</strong>:</p>
<p><code>.floatPanel<br />
  {<br />
cursor:move;<br />
background-color:#a50;<br />
border-style:solid;<br />
border-width:1px;<br />
height:160px;<br />
width:160px;<br />
}</code>
<p>
Кстати, если не поставить <strong>background-color</strong>, то панель будет прозрачной.</p>
<p>
У  нас есть страница и две панели. Что с ними делать? Нам нужно добавить к  ним поведение Drag&amp;Drop, то есть, чтобы их можно было двигать по  всеёй странице.</p>
<p>
Для этого мы добавим на страницу ещё один контрол Atlas: <strong>DragOverlayExtender</strong>.</p>
<p>
Этот контрол является чем-то сродни <strong>AutoCompleteExtender</strong> (как мы потом узнаем, они на самом деле родня ближе чем по <strong>Control</strong>&#8216;у).</p>
<p>
Внутри него может быть помещён (и не один) тег <strong>DragOverlayProperties</strong> (да-да, это аналог <strong>AutoCompleteProperties</strong>). В нашем случае это будет выглядеть так:</p>
<p><code>&lt;atlas:DragOverlayExtender ID=&quot;MyDragOverlayExtender&quot; runat=&quot;server&quot;&gt;<br />
&lt;atlas:DragOverlayProperties TargetControlID=&quot;FirstPanel&quot; Enabled=&quot;True&quot; /&gt;<br />
&lt;atlas:DragOverlayProperties TargetControlID=&quot;SecondPanel&quot; Enabled=&quot;True&quot; /&gt;<br />
&lt;/atlas:DragOverlayExtender&gt;</code>
<p>
Кстати, самое интересное, что при добавлении extender&#8217;а на страницу у панели появляется свойство <strong>DragOverlay</strong> с теми же параметрами &#8211; оно связывается с <strong>DragOverlayProperties</strong>.</p>
<p>
Вот и готова наша страница! Теперь две панели могут перемещаться по всей области страницы.</p>
<p>
<strong>Способ №2</strong></p>
<p>
Этот способ подразумевает наличие у Вас Atlas Controls Toolkit, о котором я говорил несколькими постами выше.</p>
<p>
Он является более удобным и совершенным.</p>
<p>
Давайте чуточку видоизменим панели. Для начала, уберите из стиля строку</p>
<p><code>cursor:move;</code>
<p>
Мы сделаем так, чтобы двигать панель можно было только за определённый участок.</p>
<p>
Добавим по &quot;заголовку&quot; в панели:</p>
<p><code>&lt;asp:Panel ID=&quot;FirstPanel&quot; runat=&quot;server&quot; CssClass=&quot;floatPanel&quot;&gt;<br />
&lt;asp:Label ID=&quot;FirstHeader&quot; runat=&quot;server&quot; Text=&quot;Тащи за меня&quot; CssClass=&quot;panelHeader&quot; /&gt;<br />
&lt;br /&gt;<br />
&lt;asp:Label ID=&quot;FirstLabel&quot; runat=&quot;server&quot; Text=&quot;Здесь находится содержание панели&quot; /&gt;<br />
&lt;/asp:Panel&gt;<br />
&lt;asp:Panel ID=&quot;SecondPanel&quot; runat=&quot;server&quot; CssClass=&quot;floatPanel&quot;&gt;<br />
&lt;asp:Label ID=&quot;SecondHeader&quot; runat=&quot;server&quot; Text=&quot;Тащи за меня&quot; CssClass=&quot;panelHeader&quot; /&gt;<br />
&lt;br /&gt;<br />
&lt;asp:Label ID=&quot;SecondLabel&quot; runat=&quot;server&quot; Text=&quot;Здесь находится содержание панели&quot; /&gt;<br />
&lt;/asp:Panel&gt;</code>
<p>
Собственно, объявим класс CSS panelHeader так:</p>
<p><code>.panelHeader<br />
  {<br />
font-weight:bold;<br />
cursor:move;<br />
}</code>
<p>
Это будет та область, за которую можно &quot;таскать&quot; мышкой панель.</p>
<p>
Ну и самое главное &#8211; необходимо объявить <strong>DragPanelExtender</strong> из Atlas Control Toolkit. В нашем случае это объявление выглядит так:</p>
<p><code>&lt;atlasToolkit:DragPanelExtender ID=&quot;MyDragPanelExtender&quot; runat=&quot;server&quot;&gt;<br />
&lt;atlasToolkit:DragPanelProperties TargetControlID=&quot;FirstPanel&quot; DragHandleID=&quot;FirstHeader&quot; /&gt;<br />
&lt;atlasToolkit:DragPanelProperties TargetControlID=&quot;SecondPanel&quot; DragHandleID=&quot;SecondHeader&quot; /&gt;<br />
&lt;/atlasToolkit:DragPanelExtender&gt;</code>
<p>
Всё очень просто. Вот мы и познакомились с техникой создания Drag&amp;Drop на странице.</p>
<p>
Полный код страницы (я пишу только для варианта № 2, для первого надо чуть изменить):</p>
<p><code>&lt;%@ Register Assembly=&quot;AtlasControlToolkit&quot; Namespace=&quot;AtlasControlToolkit&quot; TagPrefix=&quot;atlasToolkit&quot; %&gt;<br />
  &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0  Transitional//EN&quot; <br />
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;<br />
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;Drag&amp;Drop&lt;/title&gt;<br />
&lt;style type=&quot;text/css&quot;&gt;<br />
.floatPanel<br />
{<br />
background-color:#a50;<br />
border-style:solid;<br />
border-width:1px;<br />
height:160px;<br />
width:160px;<br />
}<br />
.panelHeader<br />
{<br />
font-weight:bold;<br />
cursor:move;<br />
}<br />
&lt;/style&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;form id=&quot;mainForm&quot; runat=&quot;server&quot;&gt;<br />
&lt;div id=&quot;content&quot; style=&quot;text-align: center;&quot;&gt;<br />
&lt;atlas:ScriptManager ID=&quot;MyScriptManager&quot; runat=&quot;server&quot; /&gt;<br />
&lt;asp:Panel ID=&quot;FirstPanel&quot; runat=&quot;server&quot; CssClass=&quot;floatPanel&quot;&gt;<br />
&lt;asp:Label ID=&quot;FirstHeader&quot; runat=&quot;server&quot; Text=&quot;Тащи за меня&quot; CssClass=&quot;panelHeader&quot; /&gt;<br />
&lt;br /&gt;<br />
&lt;asp:Label ID=&quot;FirstLabel&quot; runat=&quot;server&quot; Text=&quot;Здесь находится содержание панели&quot; /&gt;<br />
&lt;/asp:Panel&gt;<br />
&lt;asp:Panel ID=&quot;SecondPanel&quot; runat=&quot;server&quot; CssClass=&quot;floatPanel&quot;&gt;<br />
&lt;asp:Label ID=&quot;SecondHeader&quot; runat=&quot;server&quot; Text=&quot;Тащи за меня&quot; CssClass=&quot;panelHeader&quot; /&gt;<br />
&lt;br /&gt;<br />
&lt;asp:Label ID=&quot;SecondLabel&quot; runat=&quot;server&quot; Text=&quot;Здесь находится содержание панели&quot; /&gt;<br />
&lt;/asp:Panel&gt;<br />
&lt;atlasToolkit:DragPanelExtender ID=&quot;MyDragPanelExtender&quot; runat=&quot;server&quot;&gt;<br />
&lt;atlasToolkit:DragPanelProperties TargetControlID=&quot;FirstPanel&quot; DragHandleID=&quot;FirstHeader&quot; /&gt;<br />
&lt;atlasToolkit:DragPanelProperties TargetControlID=&quot;SecondPanel&quot; DragHandleID=&quot;SecondHeader&quot; /&gt;<br />
&lt;/atlasToolkit:DragPanelExtender&gt;<br />
Здесь должен находиться контент страницы<br />
&lt;/div&gt;<br />
&lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</code>
<p>
До скорых встреч!</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/ms_atlas-drag-and-drop/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/ms_atlas-drag-and-drop/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/atlas/" title="Просмотреть все записи в рубрике &laquo;atlas&raquo;" rel="category tag">atlas</a>, <a href="http://www.ajaxplanet.ru/category/microsoft/" title="Просмотреть все записи в рубрике &laquo;Microsoft&raquo;" rel="category tag">Microsoft</a>, <a href="http://www.ajaxplanet.ru/category/technology/" title="Просмотреть все записи в рубрике &laquo;Технологии&raquo;" rel="category tag">Технологии</a>, <a href="http://www.ajaxplanet.ru/category/ms-atlas-articles/" title="Просмотреть все записи в рубрике &laquo;Статьи про MS Atlas&raquo;" rel="category tag">Статьи про MS Atlas</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/ms_atlas-drag-and-drop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MS Atlas &amp; UpdatePanel &#8212; доступная мощь</title>
		<link>http://www.ajaxplanet.ru/ms_atlas-updatepanel-basics/</link>
		<comments>http://www.ajaxplanet.ru/ms_atlas-updatepanel-basics/#comments</comments>
		<pubDate>Mon, 07 Aug 2006 07:35:18 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[atlas]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[Статьи про MS Atlas]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[ASP.NET-AJAX]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/ms_atlas-updatepanel-basics/</guid>
		<description><![CDATA[Помнится, в одном коммьюнити я говорил, что использование MS Atlas – штука простая и в большинстве случаев сводится к применению контрола UpdatePanel. Давайте посмотрим на это на конкретном примере. Сегодня я покажу пример реального приложения. Итак, дано: существует база данных, в которой хранятся сообщения от клиентов менеджерам и обратно. Список сообщений хранится в MS SQL [...]]]></description>
			<content:encoded><![CDATA[<p>Помнится, в одном коммьюнити я говорил, что использование MS Atlas – штука простая и в большинстве случаев сводится к применению контрола UpdatePanel. Давайте посмотрим на это на конкретном примере. Сегодня я покажу пример реального приложения.</p>
<p>Итак, дано: существует база данных, в которой хранятся сообщения от клиентов менеджерам и обратно. Список сообщений хранится в MS SQL и выводится хранимой процедурой. Конкретное сообщение также получаем через хранимую процедуру, принимающую один параметр. Плюс, на странице будет возможность переключить тип сообщения – входящий или исходящий.</p>
<p>Итого нам потребуется: DropDownList с выбором типа сообщения, GridView со списком сообщений и FormView для просмотра сообщения. Что ж, начнем с дропдауна.</p>
<p>Для DropDownList руками вводим 2 пункта: «Входящие» и «Исходящие», значения, соответственно, 1 и 2. AutoPostBack выставляем true.</p>
<p><img id="image251" alt="DropDownList" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/08/dropdownlist.png" /></p>
<p>Теперь давайте займемся GridView. Для него нам важно настроить DataSource.</p>
<p><img id="image252" alt="GridView. New DataSource" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/08/gridview_datasource.png" /></p>
<p>Целиком процесс я показывать не буду: уверен, что все, кто работает с ASP.Net 2.0 это видели далеко не раз, а новичкам не даст заблудиться толковый визард. Нас в этом заинтересует лишь вкладка с параметрами, передаваемыми хранимой процедуре. Нам необходимо выставить, что тип сообщения передается от дропдауна, который мы настроили раньше.</p>
<p><img alt="DataSource1 parameters" id="image253" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/08/datasource1_parameter.png" /></p>
<p>После настройки DataSource автоматом будет создан список колонок с названиями, соответствующими названиям полей в базе. В свойствах грида укажем, что он поддерживает сортировку, пейджинг и выбор.</p>
<p><img alt="GridView SmartTag" id="image254" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/08/gridview_smarttag.png" /></p>
<p>Затем отредактируем список колонок и поменяем их названия.</p>
<p><img alt="GridView. Edit columns" id="image255" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/08/gridview_edit_columns.png" /></p>
<p>Укажем ключевое поле, по которому у нас будет отбираться в дальнейшем сообщение (DataKeyNames)</p>
<p><img alt="GridView DataKeyNames" id="image256" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/08/gridview_datakeynames.png" />.</p>
<p>Что ж, настала очередь FormView. Для него нам тоже потребуется настроить DataSource. На сей раз параметр для хранимой процедуры передается из уже настроенного GridView.</p>
<p><img id="image257" alt="DataSource2 parameters" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/08/datasource2_parameter.png" /></p>
<p>После настройки DataSource автоматически формируются шаблоны. Опять же, мы их немного поправим.</p>
<p><img id="image258" alt="FormView Templates" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/08/formview_templates.png" /></p>
<p>Костяк страницы у нас готов. Мы можем запустить и посмотреть результат. Всё должно работать.</p>
<p>Наверняка вы спросите: а при чем здесь AJAX? Всё, что мы только что сделали – обычная страница ASP.Net 2.0, и ничего нового и интересного тут нет. Что ж, давайте займемся AJAX, а точнее – MS Atlas.</p>
<p>Для начала на страницу нам потребуется добавить AtlasScriptManager:</p>
<p><code>&lt;atlas:ScriptManager  ID="AJAX_ScriptManager" EnablePartialRendering="True" runat="server"  /&gt;</code></p>
<p>А теперь наступает пора уже упоминавшегося контрола UpdatePanel. Дропдаун, грид и FormView мы поместим в обертку этого контрола:</p>
<p><code><br />
&lt;atlas:UpdatePanel  ID="произвольный_id"  runat="server"&gt;<br />
&lt;ContentTemplate&gt;</p>
<p>содержимое</p>
<p>&lt;/ContentTemplate&gt;<br />
&lt;/atlas:UpdatePanel&gt;</code></p>
<p><img alt="Result page design" id="image259" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/08/result_design.png" /><br />
А теперь… А теперь всё, можете открыть страницу и проверить. Все наши запросы теперь проходят асинхронно без перезагрузки страницы. Как вы видели, всю страницу мы собрали практически не касаясь руками кода и совсем не влезая в code behind. Работа с контролами, входящими в Atlas Toolkit тоже проста до невозможности и хорошо задокументирована. В большинстве случаев вам будет достаточно просто добавить контрол на страницу и затем указать объект, функциональность которого необходимо «расширить».</p>
<p>Ну и текст получившейся страницы целиком:</p>
<p><code><br />
&lt;%@ Page Language="C#"  AutoEventWireup="true" CodeFile="message_demo.aspx.cs"  Inherits="message_demo" %&gt;</p>
<p>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0  Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</p>
<p>&lt;html  xmlns="http://www.w3.org/1999/xhtml" &gt;<br />
&lt;head  runat="server"&gt;<br />
&lt;title&gt;Untitled Page&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;form id="form1"  runat="server"&gt;<br />
&lt;div&gt;<br />
&lt;atlas:ScriptManager  ID="AJAX_ScriptManager" EnablePartialRendering="True"  runat="server" /&gt;<br />
&lt;atlas:UpdatePanel ID="upDDL"  runat="server"&gt;<br />
&lt;ContentTemplate&gt;<br />
&lt;asp:DropDownList  ID="ddlFilter" runat="server"  AutoPostBack="True"&gt;<br />
&lt;asp:ListItem  Value="1"&gt;Входящие&lt;/asp:ListItem&gt;<br />
&lt;asp:ListItem  Value="2"&gt;Отправленные&lt;/asp:ListItem&gt;<br />
&lt;/asp:DropDownList&gt;<br />
&lt;/ContentTemplate&gt;<br />
&lt;/atlas:UpdatePanel&gt;<br />
&lt;atlas:UpdatePanel  ID="upGV" runat="server"&gt;<br />
&lt;ContentTemplate&gt;<br />
&lt;asp:GridView  ID="GridView1" runat="server" AllowPaging="True"  AllowSorting="True"<br />
AutoGenerateColumns="False"  DataKeyNames="ID" DataSourceID="SqlDataSource1"&gt;<br />
&lt;Columns&gt;<br />
&lt;asp:CommandField  SelectText="выбрать"  ShowSelectButton="True" /&gt;<br />
&lt;asp:BoundField  DataField="SubjectFrom" HeaderText="Автор"  SortExpression="SubjectFrom" /&gt;<br />
&lt;asp:BoundField DataField="SubjectTo" HeaderText="Адресат"  SortExpression="SubjectTo" /&gt;<br />
&lt;asp:BoundField  DataField="Subject" HeaderText="Тема" SortExpression="Subject" /&gt;<br />
&lt;asp:BoundField  DataField="MessageSent" HeaderText="Отправлено"  SortExpression="MessageSent" /&gt;<br />
&lt;asp:BoundField  DataField="Accepted_DateTime" HeaderText="Прочитано"  SortExpression="Accepted_DateTime" /&gt;<br />
&lt;/Columns&gt;<br />
&lt;/asp:GridView&gt;<br />
&lt;/ContentTemplate&gt;<br />
&lt;/atlas:UpdatePanel&gt;<br />
&lt;asp:SqlDataSource  ID="SqlDataSource1" runat="server"  ConnectionString="&lt;%$ ConnectionStrings:SOI_AK_Test_ConnectionString  %&gt;"<br />
SelectCommand="wprov_get_client_messages"  SelectCommandType="StoredProcedure"&gt;<br />
&lt;SelectParameters&gt;<br />
&lt;asp:ControlParameter  ControlID="ddlFilter" DefaultValue="1"  Name="messageType" PropertyName="SelectedValue"<br />
Type="Int32"  /&gt;<br />
&lt;asp:SessionParameter  DefaultValue="233" Name="clientId"  SessionField="cliID" Type="Int32" /&gt;<br />
&lt;/SelectParameters&gt;<br />
&lt;/asp:SqlDataSource&gt;<br />
&lt;atlas:UpdatePanel  ID="upFV" runat="server"&gt;<br />
&lt;ContentTemplate&gt;<br />
&lt;asp:FormView  ID="FormView1" runat="server" DataSourceID="SqlDataSource2"&gt;<br />
&lt;ItemTemplate&gt;<br />
Автор:<br />
&lt;asp:Label  ID="SubjectFromLabel" runat="server" Text='&lt;%#  Bind("SubjectFrom") %&gt;'&gt;&lt;/asp:Label&gt;&lt;br /&gt;<br />
Адресат:<br />
&lt;asp:Label  ID="SubjectToLabel" runat="server" Text='&lt;%#  Bind("SubjectTo") %&gt;'&gt;&lt;/asp:Label&gt;&lt;br /&gt;<br />
Тема:<br />
&lt;asp:Label  ID="SubjectLabel" runat="server" Text='&lt;%#  Bind("Subject") %&gt;'&gt;&lt;/asp:Label&gt;&lt;br /&gt;<br />
Отправлено:<br />
&lt;asp:Label  ID="MessageSentLabel" runat="server" Text='&lt;%#  Bind("MessageSent") %&gt;'&gt;&lt;/asp:Label&gt;&lt;br /&gt;<br />
Получено:<br />
&lt;asp:Label  ID="Accepted_DateTimeLabel" runat="server" Text='&lt;%# Bind("Accepted_DateTime")  %&gt;'&gt;&lt;/asp:Label&gt;&lt;br /&gt;<br />
&lt;asp:Label  ID="ContentLabel" runat="server" Text='&lt;%#  Bind("Content") %&gt;'&gt;&lt;/asp:Label&gt;&lt;br /&gt;<br />
&lt;/ItemTemplate&gt;<br />
&lt;/asp:FormView&gt;<br />
&lt;/ContentTemplate&gt;<br />
&lt;/atlas:UpdatePanel&gt;<br />
&lt;asp:SqlDataSource  ID="SqlDataSource2" runat="server"  ConnectionString="&lt;%$ ConnectionStrings:SOI_AK_Test_ConnectionString  %&gt;"<br />
SelectCommand="wprov_get_client_message"  SelectCommandType="StoredProcedure"&gt;<br />
&lt;SelectParameters&gt;<br />
&lt;asp:ControlParameter  ControlID="GridView1" Name="messageId"  PropertyName="SelectedValue"<br />
Type="Int32"  /&gt;<br />
&lt;/SelectParameters&gt;<br />
&lt;/asp:SqlDataSource&gt;</p>
<p>&lt;/div&gt;<br />
&lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</code></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/ms_atlas-updatepanel-basics/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/ms_atlas-updatepanel-basics/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/atlas/" title="Просмотреть все записи в рубрике &laquo;atlas&raquo;" rel="category tag">atlas</a>, <a href="http://www.ajaxplanet.ru/category/microsoft/" title="Просмотреть все записи в рубрике &laquo;Microsoft&raquo;" rel="category tag">Microsoft</a>, <a href="http://www.ajaxplanet.ru/category/technology/" title="Просмотреть все записи в рубрике &laquo;Технологии&raquo;" rel="category tag">Технологии</a>, <a href="http://www.ajaxplanet.ru/category/ms-atlas-articles/" title="Просмотреть все записи в рубрике &laquo;Статьи про MS Atlas&raquo;" rel="category tag">Статьи про MS Atlas</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/ms_atlas-updatepanel-basics/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Atlas, первые шаги. Autocomplete</title>
		<link>http://www.ajaxplanet.ru/atlas-autocomplete/</link>
		<comments>http://www.ajaxplanet.ru/atlas-autocomplete/#comments</comments>
		<pubDate>Fri, 28 Jul 2006 08:37:56 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[atlas]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[Статьи про MS Atlas]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[ASP.NET-AJAX]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/atlas-autocomplete/</guid>
		<description><![CDATA[Недавняя статья &#8220;Atlas, первые шаги&#8221; оказалась достаточно востребованной, что, в условиях нехватки информации по Atlas, и не удивительно. Сегодня мы продолжаем серию и публикуем вторую статью, написанную уважаемым Exception для форума Vingrad и посвященную Atlas, микрософтовской реализации AJAX. Сегодня речь пойдет об автодополнении. Итак, для начала нам нужно создать Web-сервис, предоставляющий список строк для автозаполнения. [...]]]></description>
			<content:encoded><![CDATA[<p><em>Недавняя статья &#8220;<noindex><a href="http://www.ajaxplanet.ru/atlas-first-steps/">Atlas, первые шаги</a></noindex>&#8221; оказалась достаточно востребованной, что, в условиях нехватки информации по <noindex><a href="http://atlas.asp.net">Atlas</a></noindex>, и не удивительно. Сегодня мы продолжаем серию и публикуем вторую статью, написанную уважаемым <noindex><a href="http://forum.vingrad.ru/index.php?showuser=777&#038;nickname=Exception">Exception</a></noindex> для <noindex><a href="http://forum.vingrad.ru/">форума Vingrad</a></noindex> и посвященную Atlas, микрософтовской реализации AJAX. Сегодня речь пойдет об автодополнении.</em></p>
<p>Итак, для начала нам нужно создать Web-сервис, предоставляющий список строк для автозаполнения. Это сделать нетрудно.</p>
<p>Вот код этого сервиса:</p>
<p><code>Namespace AtlasTest<br />
&lt;WebService(Namespace:="http://tempuri.org/")&gt; _<br />
&lt;WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)&gt; _<br />
Public Class WebService<br />
Inherits System.Web.Services.WebService<br />
Private members As String() = _<br />
{"arilou", "mr.DUDA", "chipset", "alir", "Exception", "Wowa", "Vit", _<br />
"Poseidon", "2man", "Akina", "cardinal", "DezmASter", "bagira", _<br />
"SoWa", "Kagor", "Pegas", "sergej.z", "Gannibal", "ivashkanet", _<br />
"VisualProgrammerNET", "asdf", "oleg1973", "Guedda"}<br />
Private _prefixText As String<br />
&lt;WebMethod()&gt; _<br />
Public Function GetWordList(ByVal prefixText As String, ByVal count As Integer) As String()<br />
_prefixText = prefixText<br />
Dim resultArray(count) As String<br />
resultArray = Array.FindAll(members, AddressOf ArrayFilter)<br />
Return resultArray<br />
End Function<br />
Private Function ArrayFilter(ByVal item As String) As Boolean<br />
Return item.StartsWith(_prefix, StringComparison.InvariantCultureIgnoreCase)<br />
End Function<br />
End Class<br />
End Namespace</code></p>
<p><code>namespace AtlasTest<br />
[WebService(Namespace="http://tempuri.org/")] _<br />
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]<br />
public class WebService : System.Web.Services.WebService<br />
{<br />
private string members[] =<br />
{"arilou", "mr.DUDA", "chipset", "alir", "Exception", "Wowa", "Vit",<br />
"Poseidon", "2man", "Akina", "cardinal", "DezmASter", "bagira",<br />
"SoWa", "Kagor", "Pegas", "sergej.z", "Gannibal", "ivashkanet",<br />
"VisualProgrammerNET", "asdf", "oleg1973", "Guedda"};<br />
private string _prefix;<br />
[WebMethod]<br />
public string[] GetWordList(string prefixText, int  count)<br />
{<br />
_prefix = prefixText;<br />
string[] resultArray = new string[count];<br />
resultArray = Array.FindAll(members, new System.Predicate&lt;string&gt;(ArrayFilter));<br />
return resultArray;<br />
}<br />
private bool ArrayFilter(string item)<br />
{<br />
return item.StartsWith(_prefix, StringComparison.InvariantCultureIgnoreCase);<br />
}<br />
}<br />
}</code></p>
<p>Работа этого сервиса проста. Если смотреть на него, как на &#8220;чёрный ящик&#8221;, то можно составить такое описание метода GetWordList:</p>
<p>GetWordList</p>
<p>Параметры:</p>
<p>* prefixText &#8211; текст, набранный пользователем<br />
* count &#8211; количество результатов</p>
<p>Результирующее значение: массив, состоящий из не более count строк, начинающихся с префикса prefixText.</p>
<p>Например, если пользователь наберёт &#8220;c&#8221; на клавиатуре, то в ответ ему придут &#8220;chipset&#8221; и &#8220;cardinal&#8221;, если, конечно, count больше или равен двум.</p>
<p>Хорошо, мы написали сервис. Что дальше? Как обычно, добавьте на страницу контрол ScriptManager:</p>
<p><code>&lt;atlas:ScriptManager ID="MyScriptManager" runat="server" /&gt;</code></p>
<p>Далее, добавьте на форму самый что ни на есть обыкновенный TextBox:</p>
<p><code>&lt;asp:TextBox ID="MyTextBox" runat="server" /&gt;</code></p>
<p>Теперь приступим к самому главному.</p>
<p>Для добавления к полю AutoComplete-поведения нобходимо объявить соответствующий элемент:</p>
<p><code>&lt;atlas:AutoCompleteExtender runat="server" ID="MyAutoCompleteExtender"&gt;<br />
&lt;/atlas:AutoCompleteExtender&gt;</code></p>
<p>Этот контрол позволяет расширять любой TextBox на странице путём добавления соответствующего тега:</p>
<p><code>&lt;atlas:AutoCompleteProperties TargetControlID="MyTextBox" Enabled="True" ServicePath="WebService.asmx"<br />
ServiceMethod="GetWordList" MinimumPrefixLength="1" /&gt;</code></p>
<p>Всё просто, не так ли?</p>
<p>Всё, автозаполнение работает!</p>
<p>Полный код страницы:</p>
<p><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0  Transitional//EN"<br />
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;Yo&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;form id="mainForm" runat="server"&gt;<br />
&lt;atlas:ScriptManager ID="MyScriptManager" runat="server" /&gt;<br />
&lt;div id="content"&gt;<br />
&lt;asp:TextBox ID="MyTextBox" runat="server" /&gt;<br />
&lt;atlas:AutoCompleteExtender runat="server" ID="MyAutoCompleteExtender"&gt;<br />
&lt;atlas:AutoCompleteProperties<br />
TargetControlID="MyTextBox" Enabled="True"<br />
ServicePath="WebService.asmx" ServiceMethod="GetWordList"<br />
MinimumPrefixLength="1" /&gt;<br />
&lt;/atlas:AutoCompleteExtender&gt;<br />
&lt;/div&gt;<br />
&lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</code></p>
<p>В следующем обзоре мы рассмотрим, как сделать Drag&#038;Drop на странице.</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/atlas-autocomplete/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/atlas-autocomplete/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/atlas/" title="Просмотреть все записи в рубрике &laquo;atlas&raquo;" rel="category tag">atlas</a>, <a href="http://www.ajaxplanet.ru/category/technology/" title="Просмотреть все записи в рубрике &laquo;Технологии&raquo;" rel="category tag">Технологии</a>, <a href="http://www.ajaxplanet.ru/category/ms-atlas-articles/" title="Просмотреть все записи в рубрике &laquo;Статьи про MS Atlas&raquo;" rel="category tag">Статьи про MS Atlas</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/atlas-autocomplete/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Война с Атласом.</title>
		<link>http://www.ajaxplanet.ru/atlas-beta/</link>
		<comments>http://www.ajaxplanet.ru/atlas-beta/#comments</comments>
		<pubDate>Mon, 10 Jul 2006 08:28:01 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[atlas]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Компании]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[ASP.NET-AJAX]]></category>
		<category><![CDATA[Visual-Studio]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/atlas-beta/</guid>
		<description><![CDATA[Всю прошлую неделю я воевал с Atlas, Microsoft-овской реализацией AJAX. Что я могу сказать&#8230; Atlas &#8212; типичный микросовтовский продукт на стадии бета-тестирования. Он многое умеет. Действительно многое. Очень много вещей вы можете сделать буквально за секунды, удобно, комфортно, не копаясь в необозримых пространствах JavaScript-овых библиотек. И, что удивительно, то что у вас работает сразу, действительно [...]]]></description>
			<content:encoded><![CDATA[<p>Всю прошлую неделю я воевал с <noindex><a href="http://atlas.asp.net/">Atlas</a></noindex>, Microsoft-овской реализацией AJAX. Что я могу сказать&#8230; Atlas &#8212; типичный микросовтовский продукт на стадии бета-тестирования. Он многое умеет. Действительно многое.</p>
<p>Очень много вещей вы можете сделать буквально за секунды, удобно, комфортно, не копаясь в необозримых пространствах JavaScript-овых библиотек. И, что удивительно, то что у вас работает сразу, действительно работает! Работает и в Internet Explorer, и в Mozilla Firefox. Скажу честно &#8212; я не тестировал работоспособность в Opera и Safari, но всё, что я тестировал в моих основных браузерах, работает. На проблемы, <noindex><a href="http://www.ajaxplanet.ru/provalnoe-testirovanie-ms-atlas/">упомянутые ранее</a></noindex>, я не натолкнулся. Очень радует уровень интеграции с Visual Studio 2005.</p>
<p>Всё это хорошо, но в какой-то момент вы натыкаетесь на баг/недоработку/архитектурное ограничение (зачастую сложно определить, что же это) и всё. Сделать с этим что-то практически невозможно. Документация многие вещи пока либо не описывает, либо описывает очень кратко. Не факт, что вы сможете найти пример, где выполняется задача, над которой вы сейчас работаете. Сообщество пользователей пока небольшое, вопрос, заданный на форуме имеет большие шансы остаться без ответа.</p>
<p>Одно радует &#8212; библиотека действительно развивается, а многие вещи уже сейчас работают прекрасно. Да и интеграция с прочими микрософтовскими продуктами на высоте. Так что, если вы используете ASP.Net 2.0, выбора у вас практически не будет, хорошо это или плохо.</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/atlas-beta/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/atlas-beta/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/atlas/" title="Просмотреть все записи в рубрике &laquo;atlas&raquo;" rel="category tag">atlas</a>, <a href="http://www.ajaxplanet.ru/category/microsoft/" title="Просмотреть все записи в рубрике &laquo;Microsoft&raquo;" rel="category tag">Microsoft</a>, <a href="http://www.ajaxplanet.ru/category/company/" title="Просмотреть все записи в рубрике &laquo;Компании&raquo;" rel="category tag">Компании</a>, <a href="http://www.ajaxplanet.ru/category/technology/" title="Просмотреть все записи в рубрике &laquo;Технологии&raquo;" rel="category tag">Технологии</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/atlas-beta/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
