<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7518595512347254965</id><updated>2011-11-28T02:45:05.151+03:00</updated><category term='Visual Studio'/><category term='сортировка'/><category term='бесплатно'/><category term='SQL'/><category term='MailMessage'/><category term='web'/><category term='encoding'/><category term='free'/><category term='localization'/><category term='dotnetnuke'/><category term='SQL Server Management Studio 2005'/><category term='hosting'/><category term='DbProviderFactories'/><category term='плата'/><category term='DataTable'/><category term='Windows'/><category term='почта'/><category term='subitem'/><category term='common table expressions'/><category term='odnoklassniki.ru'/><category term='cookie'/><category term='ASP.NET'/><category term='вебмастер'/><category term='HTTP'/><category term='t-sql'/><category term='Bez-Obid.Ru'/><category term='зажрались'/><category term='база данных'/><category term='LinqDataSource'/><category term='formatter'/><category term='RSS'/><category term='Бегун отстой'/><category term='remember me'/><category term='куки'/><category term='ComboBox'/><category term='e-mail'/><category term='размер'/><category term='display:inline-block'/><category term='производительность'/><category term='код'/><category term='Query'/><category term='2008'/><category term='blogger.com'/><category term='slidingexpiration'/><category term='сайт'/><category term='xml'/><category term='DateTimePicker'/><category term='MemoryStream'/><category term='CSS'/><category term='Resource'/><category term='е-мейл'/><category term='authentication'/><category term='GIF'/><category term='посещение'/><category term='деньги'/><category term='Opera'/><category term='хостинг'/><category term='DBML'/><category term='title'/><category term='Details'/><category term='Page.Title'/><category term='Transfer'/><category term='компрессия'/><category term='AppDomain'/><category term='transaction log'/><category term='edit'/><category term='Firefox'/><category term='EMAIL_USER_REGISTRATION_PUBLIC_BODY'/><category term='локализация'/><category term='liveinternet.ru'/><category term='CMS'/><category term='HTML'/><category term='кидалово'/><category term='Yandex'/><category term='Internet Explorer'/><category term='Firebird'/><category term='SendResultsRow'/><category term='MAIL_USER_REGISTRATION_PRIVATE_BODY'/><category term='toolboх'/><category term='error'/><category term='OnSelecting'/><category term='.NET'/><category term='MVC 2'/><category term='Analytics'/><category term='CLR'/><category term='CalendarExtender'/><category term='Microsoft'/><category term='загрузка'/><category term='запрос'/><category term='Одноклассники.ру'/><category term='приложение'/><category term='SQL Server'/><category term='ссылка'/><category term='контекстная реклама'/><category term='домен'/><category term='веб-страница'/><category term='transparent'/><category term='AJAX'/><category term='ToolStripControlHost'/><category term='load'/><category term='Begun'/><category term='WebMoney'/><category term='Бегун'/><category term='хранимая процедура'/><category term='иерархия'/><category term='compression'/><category term='лохотрон'/><category term='plain text'/><category term='SMTP'/><category term='address'/><category term='обман'/><category term='get_MajorVersion'/><category term='.NET framework 3.5'/><category term='NEWID'/><category term='Welcome e-mail'/><category term='блог'/><category term='image'/><category term='code'/><category term='DNN'/><category term='TextBox'/><category term='GZip'/><category term='ListView'/><category term='HttpWebRequest'/><category term='BACKUP LOG'/><category term='RenderAction'/><category term='feed'/><category term='POP3'/><category term='рекурсия'/><category term='панель инструментов'/><category term='SQL Server 2008'/><category term='bot'/><category term='случайно'/><category term='stored procedure'/><category term='ошибка'/><category term='DDEX'/><category term='header'/><category term='programming'/><category term='random'/><category term='Локализанция'/><category term='sorting'/><category term='Server'/><category term='Zhlobam.net'/><category term='сессия'/><category term='Deflate'/><category term='machine.config'/><category term='blog'/><category term='AjaxControlToolkit'/><category term='TRUNCATE_ONLY'/><category term='Google'/><category term='аттестат'/><category term='2005'/><category term='веб'/><category term='ModalPopupExtender'/><category term='C#'/><category term='запись'/><category term='Expect: 100-continue'/><category term='UserAgent'/><category term='ToolStrip'/><category term='CTE'/><category term='катоалог'/><category term='скин'/><category term='skin'/><category term='Linq'/><category term='Controller'/><category term='Global.asax'/><category term='форматирование'/><category term='exception'/><category term='регистрация'/><category term='помнить меня'/><category term='начальный аттестат'/><category term='IE'/><category term='javaScript'/><category term='конфигурирование'/><category term='timeout'/><category term='expires'/><category term='программирование'/><category term='счетчик'/><title type='text'>Разработка windows и веб-приложений на платформе .NET Framework</title><subtitle type='html'>Блог о разработке windows-приложений, веб-приложений, веб-сервисов на платфоме Microsoft .NET. Обсуждаются вопросы по использованию ASP.NET, AJAX, Silverlight, DotNetNuke, LINQ, JavaScript, ADO.NET и т.д.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-874815669180335560</id><published>2010-11-26T17:09:00.006+03:00</published><updated>2010-11-26T17:23:52.915+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC 2'/><category scheme='http://www.blogger.com/atom/ns#' term='ошибка'/><category scheme='http://www.blogger.com/atom/ns#' term='Controller'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='RenderAction'/><title type='text'>ASP.NET MVC 2 ошибка при использовании RenderAction : The controller for path '/' was not found or does not implement IController.</title><content type='html'>При использовании RenderAction в ASP.NET MVC view:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;Html.RenderAction(&lt;span class="str"&gt;"BrowserVersion"&lt;/span&gt;, &lt;span class="str"&gt;"HomeController"&lt;/span&gt;); &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Получаем ошибку:&lt;br /&gt;&lt;p class="rederror"&gt;The controller for path '/' was not found or does not implement IController.&lt;/p&gt;&lt;br /&gt;Ниже приведен фрагмент кода  HomeController-а:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; HomeController : Controller&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt; [ChildActionOnly]&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult BrowserName()&lt;br /&gt; {&lt;br /&gt;     ViewData[&lt;span class="str"&gt;"BrowserName"&lt;/span&gt;] = Request.Browser.Browser;&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; View();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;a name='more'&gt;&lt;/a&gt;Чтобы избавиться от ошибки, вызов RenderAction должен быть таким:&lt;br /&gt; RenderAction("BrowserName", "Home")&lt;br /&gt;, то есть без суффикса "Controller".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-874815669180335560?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/874815669180335560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/874815669180335560'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2010/11/aspnet-mvc-2-renderaction-controller.html' title='ASP.NET MVC 2 ошибка при использовании RenderAction : The controller for path &apos;/&apos; was not found or does not implement IController.'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-6279003148886405392</id><published>2010-01-21T16:30:00.004+03:00</published><updated>2010-11-26T17:24:07.728+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='панель инструментов'/><category scheme='http://www.blogger.com/atom/ns#' term='toolboх'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='2008'/><title type='text'>Как воостановить пропавшие панели инструментов в Visual Studio 2008?</title><content type='html'>Сегодня у меня пропали панели инструментов Visual Studio 2008.  Команда reset ничего не изменила. Поле этого сделал "show all".  Все панели со всеми компонтами появились (нужные и ненужные), но компоненты неактивные, добавить на форму нельзя.&lt;br /&gt;&lt;br /&gt;Но решение все-таки есть. Нужно в папке&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\[Имя пользователя]\Local Settings\Application Data\Microsoft\VisualStudio\9.0&lt;br /&gt;&lt;br /&gt;Найти файлы&lt;br /&gt;&lt;br /&gt;"toolbox.tbd", "toolboxIndex.tbd", "toolbox_reset.tbd", "toolboxIndex_reset.tbd"&lt;br /&gt;&lt;br /&gt;и удалить их.&lt;br /&gt;&lt;br /&gt;Теперь запустить Visual Studio 2008. Все вернулось на свои места.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-6279003148886405392?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/6279003148886405392/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=6279003148886405392' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/6279003148886405392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/6279003148886405392'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2010/01/visual-studio-2008.html' title='Как воостановить пропавшие панели инструментов в Visual Studio 2008?'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-822943643647835182</id><published>2009-12-07T17:38:00.004+03:00</published><updated>2010-11-26T17:24:18.062+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='transparent'/><category scheme='http://www.blogger.com/atom/ns#' term='image'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='MemoryStream'/><category scheme='http://www.blogger.com/atom/ns#' term='GIF'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Как создать прозрачное GIF изображение используя C#</title><content type='html'>&lt;span&gt;Не существует аппаратно легкого пути создания прозрачного GIF изображения используя .NET framework. Microsoft предоставила метод класс Bitmap именуемый MakeTransparent(), но он не работет для GIF-ов, похоже он работет только PNG файлов.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Решение:&lt;br /&gt;&lt;br /&gt;Нужно создать цветовую палитру используя спецификацию GIF specification. Для выполнения этого нужно сохранить непрозрачный GIF в MemoryStream, а затем перебрав бинарные данные, обновить цветову палитру новыми "прозрачными" битами.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;   &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="rem"&gt;/// Returns a transparent background GIF image from the specified Bitmap.&lt;/span&gt;&lt;br /&gt;   &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="rem"&gt;/// &amp;lt;param name="bitmap"&amp;gt;The Bitmap to make transparent.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="rem"&gt;/// &amp;lt;param name="color"&amp;gt;The Color to make transparent.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;New Bitmap containing a transparent background gif.&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; Bitmap MakeTransparentGif(Bitmap bitmap, Color color)&lt;br /&gt;   {&lt;br /&gt;       &lt;span class="kwrd"&gt;byte&lt;/span&gt; R = color.R;&lt;br /&gt;       &lt;span class="kwrd"&gt;byte&lt;/span&gt; G = color.G;&lt;br /&gt;       &lt;span class="kwrd"&gt;byte&lt;/span&gt; B = color.B;&amp;lt;/p&amp;gt;&lt;br /&gt;       MemoryStream fin = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream();&lt;br /&gt;       bitmap.Save(fin, System.Drawing.Imaging.ImageFormat.Gif);&lt;br /&gt;       MemoryStream fout = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream((&lt;span class="kwrd"&gt;int&lt;/span&gt;)fin.Length);&lt;br /&gt;       &lt;span class="kwrd"&gt;int&lt;/span&gt; count = 0;&lt;br /&gt;       &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] buf = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[256];&lt;br /&gt;       &lt;span class="kwrd"&gt;byte&lt;/span&gt; transparentIdx = 0;&lt;br /&gt;       fin.Seek(0, SeekOrigin.Begin);&lt;br /&gt;       &lt;span class="rem"&gt;//header&lt;/span&gt;&lt;br /&gt;       count = fin.Read(buf, 0, 13);&lt;br /&gt;       &lt;span class="kwrd"&gt;if&lt;/span&gt; ((buf[0] != 71) || (buf[1] != 73) || (buf[2] != 70)) &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;; &lt;span class="rem"&gt;//GIF&lt;/span&gt;&lt;br /&gt;       fout.Write(buf, 0, 13);&lt;br /&gt;       &lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0;&lt;br /&gt;       &lt;span class="kwrd"&gt;if&lt;/span&gt; ((buf[10] &amp;amp; 0×80) &amp;gt; 0)&lt;br /&gt;       {&lt;br /&gt;           i = 1 &amp;lt;&amp;lt; ((buf[10] &amp;amp; 7) + 1) == 256 ? 256 : 0;&lt;br /&gt;       }&lt;br /&gt;       &lt;span class="kwrd"&gt;for&lt;/span&gt; (; i != 0; i—)&lt;br /&gt;       {&lt;br /&gt;           fin.Read(buf, 0, 3);&lt;br /&gt;           &lt;span class="kwrd"&gt;if&lt;/span&gt; ((buf[0] == R) &amp;amp;&amp;amp; (buf[1] == G) &amp;amp;&amp;amp; (buf[2] == B))&lt;br /&gt;           {&lt;br /&gt;               transparentIdx = (&lt;span class="kwrd"&gt;byte&lt;/span&gt;)(256 – i);&lt;br /&gt;           }&lt;br /&gt;           fout.Write(buf, 0, 3);&lt;br /&gt;       }&lt;br /&gt;       &lt;span class="kwrd"&gt;bool&lt;/span&gt; gcePresent = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;       &lt;span class="kwrd"&gt;while&lt;/span&gt; (&lt;span class="kwrd"&gt;true&lt;/span&gt;)&lt;br /&gt;       {&lt;br /&gt;           fin.Read(buf, 0, 1);&lt;br /&gt;           fout.Write(buf, 0, 1);&lt;br /&gt;           &lt;span class="kwrd"&gt;if&lt;/span&gt; (buf[0] != 0×21) &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;           fin.Read(buf, 0, 1);&lt;br /&gt;           fout.Write(buf, 0, 1);&lt;br /&gt;           gcePresent = (buf[0] == 0xf9);&lt;br /&gt;           &lt;span class="kwrd"&gt;while&lt;/span&gt; (&lt;span class="kwrd"&gt;true&lt;/span&gt;)&lt;br /&gt;           {&lt;br /&gt;               fin.Read(buf, 0, 1);&lt;br /&gt;               fout.Write(buf, 0, 1);&lt;br /&gt;               &lt;span class="kwrd"&gt;if&lt;/span&gt; (buf[0] == 0) &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;               count = buf[0];&lt;br /&gt;               &lt;span class="kwrd"&gt;if&lt;/span&gt; (fin.Read(buf, 0, count) != count) &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;               &lt;span class="kwrd"&gt;if&lt;/span&gt; (gcePresent)&lt;br /&gt;               {&lt;br /&gt;                   &lt;span class="kwrd"&gt;if&lt;/span&gt; (count == 4)&lt;br /&gt;                   {&lt;br /&gt;                       buf[0] |= 0×01;&lt;br /&gt;                       buf[3] = transparentIdx;&lt;br /&gt;                   }&lt;br /&gt;               }&lt;br /&gt;               fout.Write(buf, 0, count);&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;       &lt;span class="kwrd"&gt;while&lt;/span&gt; (count &amp;gt; 0)&lt;br /&gt;       {&lt;br /&gt;           count = fin.Read(buf, 0, 1);&lt;br /&gt;           fout.Write(buf, 0, 1);&lt;br /&gt;       }&lt;br /&gt;       fin.Close();&lt;br /&gt;       fout.Flush();&lt;br /&gt;       &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(fout);&lt;br /&gt;   }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-822943643647835182?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/822943643647835182/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=822943643647835182' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/822943643647835182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/822943643647835182'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/12/gif-c.html' title='Как создать прозрачное GIF изображение используя C#'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-1806036451368255623</id><published>2009-07-28T11:54:00.008+03:00</published><updated>2010-11-26T17:24:29.020+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataTable'/><category scheme='http://www.blogger.com/atom/ns#' term='t-sql'/><category scheme='http://www.blogger.com/atom/ns#' term='хранимая процедура'/><category scheme='http://www.blogger.com/atom/ns#' term='Firebird'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='stored procedure'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='SendResultsRow'/><category scheme='http://www.blogger.com/atom/ns#' term='CLR'/><title type='text'>Получение данных из базы данных FireBird используя сторед процедуру, хранящуюся на MS SQL Server</title><content type='html'>При решении одной из задач (&lt;a href="http://avto-credit.com/"&gt;рассчет автокредита&lt;/a&gt;) мне понадобилась возможность, выполняя хранимую процедуру SQL Server 2005, получать данные из базы данных FireBird.&lt;br /&gt;&lt;br /&gt;Обычной хранимой процедурой на T-SQL сделать такое нельзя, поэтому я написал сторед процедуру на C#, в которой получаю необходимые данные в DataTable(s), откуда потом используя метод SqlContext.Pipe.SendResultsRow, передаю строки SQL Server-у.&lt;br /&gt;Примерный код такой:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; SQLFIREBIRDCLR&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt; [SqlProcedure()]&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ProcedureToFirebird(SqlString sServerName, SqlString sDatabaseName)&lt;br /&gt; {&lt;br /&gt;&lt;br /&gt;         FbConnectionStringBuilder cs = &lt;span class="kwrd"&gt;new&lt;/span&gt; FbConnectionStringBuilder();&lt;br /&gt;         cs.DataSource = sServerName.ToString();&lt;br /&gt;         cs.Database = sDatabaseName.ToString();&lt;br /&gt;         cs.UserID = &lt;span class="str"&gt;"SYSDBA"&lt;/span&gt;;&lt;br /&gt;         cs.Password = &lt;span class="str"&gt;"masterkey"&lt;/span&gt;;&lt;br /&gt;         cs.Dialect = 3;&lt;br /&gt;         &lt;span class="kwrd"&gt;string&lt;/span&gt; ConnectionString = cs.ToString();&lt;br /&gt;&lt;br /&gt;         SqlDataRecord record = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlDataRecord(&lt;br /&gt;                 &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlMetaData(&lt;span class="str"&gt;"field1"&lt;/span&gt;, SqlDbType.SmallInt),&lt;br /&gt;             &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlMetaData(&lt;span class="str"&gt;"field2"&lt;/span&gt;, SqlDbType.NVarChar, 30));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;         SqlContext.Pipe.SendResultsStart(record);&lt;br /&gt;         DataTable dt = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataTable();&lt;br /&gt;         FbConnection conn = &lt;span class="kwrd"&gt;new&lt;/span&gt; FbConnection(ConnectionString);&lt;br /&gt;     &lt;span class="kwrd"&gt;using&lt;/span&gt; (conn)&lt;br /&gt;         {&lt;br /&gt;                 &lt;span class="kwrd"&gt;string&lt;/span&gt; ssql = &lt;span class="str"&gt;"select field1, field2 from table1"&lt;/span&gt;;&lt;br /&gt;                 FbCommand command = &lt;span class="kwrd"&gt;new&lt;/span&gt; FbCommand(ssql, conn);&lt;br /&gt;             FbDataAdapter adapt = &lt;span class="kwrd"&gt;new&lt;/span&gt; FbDataAdapter(command);&lt;br /&gt;             conn.Open();&lt;br /&gt;             adapt.Fill(dt);&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;         &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (DataRow dr &lt;span class="kwrd"&gt;in&lt;/span&gt; dt.Rows)&lt;br /&gt;         {&lt;br /&gt;                 record.SetValue(0, dr[&lt;span class="str"&gt;"field1"&lt;/span&gt;]);&lt;br /&gt;                 record.SetValue(1, dr[&lt;span class="str"&gt;"field2"&lt;/span&gt;]);&lt;br /&gt;                 SqlContext.Pipe.SendResultsRow(record);&lt;br /&gt;     }&lt;br /&gt;         SqlContext.Pipe.SendResultsEnd();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-1806036451368255623?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/1806036451368255623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/1806036451368255623'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/07/firebird-ms-sql-server.html' title='Получение данных из базы данных FireBird используя сторед процедуру, хранящуюся на MS SQL Server'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-8078994062875513935</id><published>2009-06-10T14:23:00.007+03:00</published><updated>2010-11-29T09:22:08.348+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='DbProviderFactories'/><category scheme='http://www.blogger.com/atom/ns#' term='DDEX'/><category scheme='http://www.blogger.com/atom/ns#' term='machine.config'/><category scheme='http://www.blogger.com/atom/ns#' term='Firebird'/><category scheme='http://www.blogger.com/atom/ns#' term='2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Пропадает диалоговое окно настроек Visual Studio 2005/2008 DDEX Provider для Firebird</title><content type='html'>При попытке использовать Visual Studio 2005/2008 DDEX Provider для Firebird, диалогове откно с параметрами подключения исщезает сразу же при попытке что-нибудь изменить. Я прописал все необходимое в machine.config, в реестре, но сторлкнулся с такой проблемой.&lt;br /&gt;Оказалось что у многих такая проблема, но для меня она решилась тем, что по невнимательности я добавил в machine.config строку&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="FirebirdClient Data Provider"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;не до а после закрывающего тега&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;DbProviderFactories&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Вот такая невнимательность!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-8078994062875513935?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8078994062875513935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8078994062875513935'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/06/visual-studio-20052008-ddex-provider.html' title='Пропадает диалоговое окно настроек Visual Studio 2005/2008 DDEX Provider для Firebird'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-4491189740037259405</id><published>2009-04-28T15:03:00.005+03:00</published><updated>2010-11-29T09:22:13.165+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='рекурсия'/><category scheme='http://www.blogger.com/atom/ns#' term='запрос'/><category scheme='http://www.blogger.com/atom/ns#' term='common table expressions'/><category scheme='http://www.blogger.com/atom/ns#' term='иерархия'/><category scheme='http://www.blogger.com/atom/ns#' term='сортировка'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='sorting'/><category scheme='http://www.blogger.com/atom/ns#' term='CTE'/><title type='text'>Как в SQL Server отсортировать иерархический рекурсивный запрос?</title><content type='html'>В SQL Server 2005 появилось нововведение в виде CTE (common table expressions), которое позволяет выполнять иерархические рекурсивные запросы к базе данных.&lt;br /&gt;При разработке сайта &lt;a href="http://avto-credit.com/"&gt;Калькулятор на автокредит&lt;/a&gt; у меня появилась задача: отобразить иерархическую структуру страниц сайта, причем отсортированную по полю pageorder у страниц с одинаковым уровнем иерархии.&lt;br /&gt;&lt;br /&gt;Структура таблицы выглядит примерно так:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; [dbo].[pages](&lt;br /&gt;  [id] [&lt;span class="kwrd"&gt;int&lt;/span&gt;] &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;br /&gt;  [pid] [&lt;span class="kwrd"&gt;int&lt;/span&gt;] &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;br /&gt;  [title] [nvarchar](&lt;span class="kwrd"&gt;max&lt;/span&gt;) &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;br /&gt;  [pageorder] [&lt;span class="kwrd"&gt;int&lt;/span&gt;] &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;br /&gt;) &lt;span class="kwrd"&gt;ON&lt;/span&gt; [&lt;span class="kwrd"&gt;PRIMARY&lt;/span&gt;]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Поле pid указывает на id родителя данной записи. Кроме того должна еще существовать одна root-запись, у которой pid = NULL.&lt;br /&gt;&lt;br /&gt;Итак сам запрос выглядит таким образом:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;WITH&lt;/span&gt; CTE(pid, id, title, &lt;span class="kwrd"&gt;level&lt;/span&gt;, pageorder, pathstr) &lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;br /&gt;(&lt;br /&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; pid, id, title, 0, 0, &lt;span class="kwrd"&gt;CAST&lt;/span&gt; (&lt;span class="str"&gt;'/'&lt;/span&gt; &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;VARCHAR&lt;/span&gt;(&lt;span class="kwrd"&gt;MAX&lt;/span&gt;))&lt;br /&gt; &lt;span class="kwrd"&gt;FROM&lt;/span&gt; pages&lt;br /&gt; &lt;span class="kwrd"&gt;WHERE&lt;/span&gt; pid &lt;span class="kwrd"&gt;IS&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;UNION&lt;/span&gt; &lt;span class="kwrd"&gt;ALL&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; e.pid, e.id, e.title, &lt;span class="kwrd"&gt;level&lt;/span&gt; + 1, e.pageorder, d.pathstr + &lt;span class="kwrd"&gt;CAST&lt;/span&gt;(e.pageorder &lt;span class="kwrd"&gt;as&lt;/span&gt;  &lt;span class="kwrd"&gt;VARCHAR&lt;/span&gt;) + &lt;span class="str"&gt;'/'&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;FROM&lt;/span&gt; pages e&lt;br /&gt;     &lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; CTE d&lt;br /&gt;     &lt;span class="kwrd"&gt;ON&lt;/span&gt; e.pid = d.id&lt;br /&gt;&lt;br /&gt;)&lt;br /&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; pid, id, replicate(&lt;span class="str"&gt;'... '&lt;/span&gt;, &lt;span class="kwrd"&gt;level&lt;/span&gt;) + title &lt;span class="kwrd"&gt;as&lt;/span&gt; title, &lt;span class="kwrd"&gt;level&lt;/span&gt;, pageorder, pathstr&lt;br /&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; CTE&lt;br /&gt;&lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; pathstr&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Вот что мы получим после выполнения этого запроса:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;pid         id          level       pageorder   pathstr   title                                                                                                                                                                                                                                    title&lt;br /&gt;----------- ----------- ----------- ----------- --------- ------------------------------&lt;br /&gt;NULL        1           0           0           /            Главная&lt;br /&gt;1           4           1           3           /3/          ... Товары&lt;br /&gt;4           5           2           3           /3/3/        ... ... автомобили&lt;br /&gt;4           8           2           6           /3/6/        ... ... мотоциклы&lt;br /&gt;1           2           1           6           /6/          ... Услуги&lt;br /&gt;2           6           2           3           /6/3/        ... ... Лизинг&lt;br /&gt;2           3           2           6           /6/6/        ... ... Кредитование&lt;br /&gt;1           7           1           9           /9/          ... О сайте&lt;br /&gt;&lt;br /&gt;(8 row(s) affected)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Стоит также отметить, что в SQL Server 2008 появился новый тип данных hierarchyid, позволяющий работать с иерархическими данными намного проще и удобнее.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-4491189740037259405?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4491189740037259405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4491189740037259405'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/04/sql-server.html' title='Как в SQL Server отсортировать иерархический рекурсивный запрос?'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-7642321285445279082</id><published>2009-03-26T15:51:00.006+03:00</published><updated>2010-11-29T09:22:04.315+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Server'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server Management Studio 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Как подключиться к SQL Server 2008 используя SQL Server Management Studio 2005?</title><content type='html'>При разработке сайта &lt;a href="http://avto-credit.com"&gt;Автокредитование: калькулятор автокредита&lt;/a&gt; столкнулся с проблемой: на одном из хостинг-серверов админы установили SQL Server 2008 вместо SQL Server 2008. При попытке подключения со своей локальной машины к этому серверу через SQL Server Management Studio 2005 закончилась неудачей. Management Studio 2005 сообщила, что не не рассчитана на подключение к данной версии SQL Server-а. Установливать SQL Server 2008 и идущий с ней Management Studio 2008 мне пока не было необходимости, поэтому нашлось другое решение.&lt;br /&gt;&lt;br /&gt;Для начала я установил у себя Microsoft SQL Server 2005 Service Pack 2. После этого установил последний на нынешний момент апдейт на SP2: Cumulative update package 12 for SQL Server 2005 Service Pack 2 (server).&lt;br /&gt;И, наконец, самое главное: Cumulative update package 12 for SQL Server 2005 Service Pack 2 (naitive client)&lt;br /&gt;&lt;br /&gt;После этого теперь мой SQL Server Management Studio 2005 успешно заходит на SQL Server 2008.&lt;br /&gt;&lt;br /&gt;Замечу однако, что в SQL Server 2008 Express Edition with Advanced Services при попытке открытия таблицы (Open Table) или именения ee (Design) вываливается ошибка &lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;Неопознанная ошибка (MS Visual Database Tools)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;хотя в то же время запросы в Management Studio выполняются и результаты отображаются нормально.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-7642321285445279082?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/7642321285445279082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/7642321285445279082'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/03/sql-server-2008-sql-server-management.html' title='Как подключиться к SQL Server 2008 используя SQL Server Management Studio 2005?'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-7868214847266949271</id><published>2009-03-25T14:53:00.006+03:00</published><updated>2010-11-29T09:21:45.240+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='HttpWebRequest'/><category scheme='http://www.blogger.com/atom/ns#' term='header'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Expect: 100-continue'/><title type='text'>Как запретить передавать HTTP header  "Expect: 100-continue" при выполнении запроса используя класс HttpWebRequest в C#?</title><content type='html'>По умолчанию,  при   выполнении веб-запроса,  используя класс HttpWebRequest,  .NET Framework добавляет HTTP заголовок (HTTP header)   "Expect: 100-continue". Для того, чтобы запретить формирование этого заголовка нужно сделать следующее:&lt;br /&gt;&lt;br /&gt;HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://a-kicker.blogspot.com");&lt;br /&gt;myHttpWebRequest.ServicePoint.Expect100Continue = false; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-7868214847266949271?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/7868214847266949271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/7868214847266949271'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/03/http-header-expect-100-continue.html' title='Как запретить передавать HTTP header  &quot;Expect: 100-continue&quot; при выполнении запроса используя класс HttpWebRequest в C#?'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-4885433606135222193</id><published>2009-03-25T14:32:00.006+03:00</published><updated>2010-11-29T09:21:40.878+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DateTimePicker'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='ToolStrip'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='ToolStripControlHost'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Как поместить DateTimePicker на ToolStrip в Windows приложении на платформе Microsoft .NET?</title><content type='html'>Чтоб поместить DateTimePicker на ToolStrip в Windows Forms приложении на платформе Microsoft .NET, нужно сделать следующее:&lt;br /&gt;&lt;br /&gt;DateTimePicker dateTimePcr = new DateTimePicker();&lt;br /&gt;toolStrip1.Items.Add(new ToolStripControlHost(dateTimePcr));&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-4885433606135222193?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4885433606135222193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4885433606135222193'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/03/datetimepicker-toolstrip-windows.html' title='Как поместить DateTimePicker на ToolStrip в Windows приложении на платформе Microsoft .NET?'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-1244516906825777036</id><published>2009-03-03T11:04:00.003+03:00</published><updated>2010-11-29T09:21:25.495+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='компрессия'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='Global.asax'/><category scheme='http://www.blogger.com/atom/ns#' term='encoding'/><category scheme='http://www.blogger.com/atom/ns#' term='Deflate'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='GZip'/><category scheme='http://www.blogger.com/atom/ns#' term='compression'/><title type='text'>Как задействовать Gzip и Deflate HTTP компрессию в ASP.NET страницах?</title><content type='html'>Как задействовать Gzip и Deflate HTTP компрессию в ASP.NET страницах? В файле Global.asax нужно написать следующее:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&amp;lt;%@ Application Language=&lt;span class="str"&gt;"C#"&lt;/span&gt; %&amp;gt;&lt;br /&gt;&amp;lt;%@ Import Namespace=&lt;span class="str"&gt;"System.IO"&lt;/span&gt; %&amp;gt;&lt;br /&gt;&amp;lt;%@ Import Namespace=&lt;span class="str"&gt;"System.IO.Compression"&lt;/span&gt; %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script runat=&lt;span class="str"&gt;"server"&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span class="kwrd"&gt;void&lt;/span&gt; Application_PreRequestHandlerExecute(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;  HttpApplication app = sender &lt;span class="kwrd"&gt;as&lt;/span&gt; HttpApplication;&lt;br /&gt;  &lt;span class="kwrd"&gt;string&lt;/span&gt; acceptEncoding = app.Request.Headers[&lt;span class="str"&gt;"Accept-Encoding"&lt;/span&gt;];&lt;br /&gt;  Stream prevUncompressedStream = app.Response.Filter;&lt;br /&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;if&lt;/span&gt; (!(app.Context.CurrentHandler &lt;span class="kwrd"&gt;is&lt;/span&gt; Page) ||&lt;br /&gt;      app.Request[&lt;span class="str"&gt;"HTTP_X_MICROSOFTAJAX"&lt;/span&gt;] != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;      &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;if&lt;/span&gt; (acceptEncoding == &lt;span class="kwrd"&gt;null&lt;/span&gt; || acceptEncoding.Length == 0)&lt;br /&gt;      &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;  acceptEncoding = acceptEncoding.ToLower();&lt;br /&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;if&lt;/span&gt; (acceptEncoding.Contains(&lt;span class="str"&gt;"deflate"&lt;/span&gt;) || acceptEncoding == &lt;span class="str"&gt;"*"&lt;/span&gt;)&lt;br /&gt;  {&lt;br /&gt;      &lt;span class="rem"&gt;// defalte&lt;/span&gt;&lt;br /&gt;      app.Response.Filter = &lt;span class="kwrd"&gt;new&lt;/span&gt; DeflateStream(prevUncompressedStream,&lt;br /&gt;          CompressionMode.Compress);&lt;br /&gt;      app.Response.AppendHeader(&lt;span class="str"&gt;"Content-Encoding"&lt;/span&gt;, &lt;span class="str"&gt;"deflate"&lt;/span&gt;);&lt;br /&gt;  } &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (acceptEncoding.Contains(&lt;span class="str"&gt;"gzip"&lt;/span&gt;))&lt;br /&gt;  {&lt;br /&gt;      &lt;span class="rem"&gt;// gzip&lt;/span&gt;&lt;br /&gt;      app.Response.Filter = &lt;span class="kwrd"&gt;new&lt;/span&gt; GZipStream(prevUncompressedStream,&lt;br /&gt;          CompressionMode.Compress);&lt;br /&gt;      app.Response.AppendHeader(&lt;span class="str"&gt;"Content-Encoding"&lt;/span&gt;, &lt;span class="str"&gt;"gzip"&lt;/span&gt;);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-1244516906825777036?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/1244516906825777036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/1244516906825777036'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/03/gzip-deflate-http-aspnet.html' title='Как задействовать Gzip и Deflate HTTP компрессию в ASP.NET страницах?'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-3412339102058293618</id><published>2009-02-19T00:50:00.002+03:00</published><updated>2010-11-29T09:23:06.639+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='регистрация'/><category scheme='http://www.blogger.com/atom/ns#' term='EMAIL_USER_REGISTRATION_PUBLIC_BODY'/><category scheme='http://www.blogger.com/atom/ns#' term='plain text'/><category scheme='http://www.blogger.com/atom/ns#' term='е-мейл'/><category scheme='http://www.blogger.com/atom/ns#' term='Welcome e-mail'/><category scheme='http://www.blogger.com/atom/ns#' term='MAIL_USER_REGISTRATION_PRIVATE_BODY'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnetnuke'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='DNN'/><title type='text'>Как сделать, чтобы приветсвенный е-мейл отправлялся в виде HTML с сайта на базе DotNetNuke?</title><content type='html'>Для того, чтобы в сайте, созданном на базе DotNetNuke изменить приветсвенный е-мейл, который приходит на почту зарегострировавшегося пользователя (Welcome e-mail) нужно  в language editor изменить ресусную строку EMAIL_USER_REGISTRATION_PUBLIC_BODY.Text или EMAIL_USER_REGISTRATION_PRIVATE_BODY.Text, - если регистрация с подтверждением.&lt;br /&gt;Ядро DotNetNuke определяет присутсвие HTML тегов в этих строках и соответственно отсылает e-mail в виде простого текста или в виде HTML.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-3412339102058293618?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/3412339102058293618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/3412339102058293618'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/02/html-dotnetnuke.html' title='Как сделать, чтобы приветсвенный е-мейл отправлялся в виде HTML с сайта на базе DotNetNuke?'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-1635788391679065118</id><published>2009-02-18T17:22:00.003+03:00</published><updated>2010-11-29T09:23:09.761+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='почта'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='е-мейл'/><category scheme='http://www.blogger.com/atom/ns#' term='SMTP'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='e-mail'/><category scheme='http://www.blogger.com/atom/ns#' term='address'/><category scheme='http://www.blogger.com/atom/ns#' term='POP3'/><category scheme='http://www.blogger.com/atom/ns#' term='MailMessage'/><title type='text'>Как показать имя отправителя в адресе при отправке е-мейла используя ASP.Net MailMessage объект?</title><content type='html'>Как показать имя отправителя в адресе при отправке е-мейла используя ASP.Net MailMessage объект?&lt;br /&gt;&lt;br /&gt;Сделать это проще простого. Например вот так:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;System.Net.Mail.MailMessage message = &lt;span class="kwrd"&gt;new&lt;/span&gt; System.Net.Mail.MailMessage();&lt;br /&gt;message.From = &lt;span class="kwrd"&gt;new&lt;/span&gt; System.Net.Mail.MailAddress(&lt;span class="str"&gt;"admin of test.ru &amp;lt;support@test.ru&amp;gt;"&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Этот код был использован при написании сайта &lt;a href="http://avto-credit.com"&gt;калькулятор автокредита&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-1635788391679065118?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/1635788391679065118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/1635788391679065118'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/02/aspnet-mailmessage.html' title='Как показать имя отправителя в адресе при отправке е-мейла используя ASP.Net MailMessage объект?'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-7070486465663430829</id><published>2009-02-03T14:21:00.003+03:00</published><updated>2010-11-29T09:23:12.742+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='запись'/><category scheme='http://www.blogger.com/atom/ns#' term='NEWID'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='запрос'/><category scheme='http://www.blogger.com/atom/ns#' term='DBML'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Query'/><category scheme='http://www.blogger.com/atom/ns#' term='Linq'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='случайно'/><title type='text'>LINQ to SQL Как получить случайную запись из таблицы SQL Server</title><content type='html'>Мне нужно было получить случайную запись из определенной таблицы в базе данных SQL Server.&lt;br /&gt;В моем случае у меня была таблицы цитат и мне нужно было случайным образом выбирать запись(или записи) для отображения на веб-сайте. Кроме того я использовал LINQ to SQL на этом сайте, таким образом решение должно использовать эту технологию и, кроме того, быть достаточно простым и универсальным.&lt;br /&gt;&lt;br /&gt;Идея заключалась в сортировке записей по случайному параметру а затем получении TOP n количества записей. Функция NEWID() из SQL Server выглядит хорошим кандидатом для получения случайного параметра, так как она генерирует GUID.&lt;br /&gt;&lt;br /&gt;В SQL Server, попробуйте следующий запрос:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; Quote &lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; NEWID();&lt;/pre&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;SELECT TOP 1 * FROM Quote ORDER by NEWID();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Сейчас для для нашего кода мы должны сгенерировать подобное поведение на .NET. Мне нужно было получить эквивалент NEWID() в моем LINQ to SQL DBML. Отмечу, что мы не можем непосредственно использовать NEWID() в хранимой процедуре или функции, так как SQL Server выдаст ошибку: “Invalid use of side-effecting or time-dependent operator in 'newid' within a function”.  В обход этого мы создадим view который использует NEWID() и функцию, которая будет выбирать из этого view.&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;VIEW&lt;/span&gt; [dbo].[RandomView]&lt;br /&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; NEWID() &lt;span class="kwrd"&gt;As&lt;/span&gt; ID&lt;br /&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;FUNCTION&lt;/span&gt; [dbo].[GetNewId]&lt;br /&gt;(&lt;br /&gt;)&lt;br /&gt;&lt;span class="kwrd"&gt;RETURNS&lt;/span&gt; uniqueidentifier&lt;br /&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;RETURN&lt;/span&gt; (&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; ID &lt;span class="kwrd"&gt;FROM&lt;/span&gt; RandomView)&lt;br /&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;br /&gt;GO&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;В DBML, мы просто перетащим таблицу Quote, а затем функцию GetNewID в дизайнер. Следующий код выбирает случайную запись из таблицы Quotes.&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;DataContext db = &lt;span class="kwrd"&gt;new&lt;/span&gt; QuoteDataContext();&lt;br /&gt;var quote = db.Quote.OrderBy(q =&amp;gt; db.GetNewId()).First();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Фактически мы можем выбирать любое количество записей из любой таблицы.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-7070486465663430829?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/7070486465663430829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/7070486465663430829'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/02/linq-to-sql-sql-server.html' title='LINQ to SQL Как получить случайную запись из таблицы SQL Server'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-8470274773187998568</id><published>2009-01-30T11:15:00.011+03:00</published><updated>2010-11-29T09:23:16.872+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='expires'/><category scheme='http://www.blogger.com/atom/ns#' term='slidingexpiration'/><category scheme='http://www.blogger.com/atom/ns#' term='куки'/><category scheme='http://www.blogger.com/atom/ns#' term='timeout'/><category scheme='http://www.blogger.com/atom/ns#' term='cookie'/><category scheme='http://www.blogger.com/atom/ns#' term='remember me'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnetnuke'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='помнить меня'/><title type='text'>Как сделать, чтобы в DotNetNuke работала при авторизации опция "Помнить меня"</title><content type='html'>Опция "Помнить меня" ("Remember Me") при логине на сайте сделанном на DotNetNuke осуществлена посредством размещения зашифрованной аутентификационного куки (cookie) на компьютере пользователя.&lt;br /&gt;&lt;br /&gt;Окончане срока действия этого куки контролируется сначением параметра "timeout" в в узле Forms Autentication node  в конфигурационном файле web.config.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt; name=".DOTNETNUKE" protection="All" timeout="60" cookieless="UseCookies"&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Значение по умолчанию 60 минут, поэтому сайт не может "запомнить" кого-либо по истечении этого времени.&lt;br /&gt;&lt;br /&gt;Для увеличения времени запоминания аутентифицированных пользователей нужно увеличить значение параметра timeout.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt; name=".DOTNETNUKE" protection="All" timeout="22345" cookieless="UseCookies"&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Вы можете также установить режим sliding expiration, который подразумевает то, что каждый раз, когда пользователь посещает веб-сайт до истечения срока действия аутентификационного куки, то срок действия этого куки продлевается на величину параметра "timeout". Этот режим включается так:&lt;br /&gt;&lt;br /&gt;&lt; name=".DOTNETNUKE" protection="All" timeout="10080" slidingexpiration="true" cookieless="UseCookies"&gt;&lt;br /&gt;&lt;br /&gt;Посмотреть как это работает можно &lt;a href="http://dupka.ru"&gt;на этом сайте&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-8470274773187998568?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8470274773187998568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8470274773187998568'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/01/dotnetnuke.html' title='Как сделать, чтобы в DotNetNuke работала при авторизации опция &quot;Помнить меня&quot;'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-6585545158782254624</id><published>2009-01-13T15:29:00.003+03:00</published><updated>2010-11-29T09:23:22.296+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='display:inline-block'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>одновременно работающий display:inline-block для Firefox, Internet Explorer и Opera</title><content type='html'>Чтобы display:inline-block корректно работало одновременно в  Internet Explorer, Opera нужно в таблице стилей пропирсать следующее:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;div{&lt;br /&gt; display:-moz-inline-stack;/*Нужно для Firefox*/&lt;br /&gt; display:inline-block; /*Не применяется в IE и Firefox*/&lt;br /&gt; _overflow:hidden;/*фикс для IE6*/&lt;br /&gt; zoom:1;/*включаем hasLayout*/&lt;br /&gt; *display:inline;/*при hasLayout true display:inline ведёт себя как display:inline-block*/&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-6585545158782254624?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/6585545158782254624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/6585545158782254624'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/01/displayinline-block-firefox-internet.html' title='одновременно работающий display:inline-block для Firefox, Internet Explorer и Opera'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-8987043248476385738</id><published>2009-01-06T11:42:00.008+03:00</published><updated>2010-11-29T09:24:07.825+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TextBox'/><category scheme='http://www.blogger.com/atom/ns#' term='edit'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='ComboBox'/><category scheme='http://www.blogger.com/atom/ns#' term='ListView'/><category scheme='http://www.blogger.com/atom/ns#' term='Details'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='subitem'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Редактирование строк в ListView контроле на .NET</title><content type='html'>Если в ListView выбрать тип отображения (View) Details, и вам нужно будет редактировать значения ячеек, то вы сможете сделать это только в первой колонке.&lt;br /&gt;Чтобы редактировать значения ячеек, находящихся в колонках отличных от первой, нужно имитировать редактирование, подставляя пользователю TextBox или ComboBox в том месте и с тем размером, где находится предполагаемая редактируемая ячейка. Таким образом пользователь думает, что он редактирует ячейку, а на самом деле он редактирует TextBox (или ComboBox).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-8987043248476385738?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8987043248476385738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8987043248476385738'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/01/listview-net.html' title='Редактирование строк в ListView контроле на .NET'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-4842386120259393256</id><published>2009-01-06T11:05:00.009+03:00</published><updated>2010-11-29T09:24:02.475+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TRUNCATE_ONLY'/><category scheme='http://www.blogger.com/atom/ns#' term='Server'/><category scheme='http://www.blogger.com/atom/ns#' term='BACKUP LOG'/><category scheme='http://www.blogger.com/atom/ns#' term='transaction log'/><category scheme='http://www.blogger.com/atom/ns#' term='база данных'/><category scheme='http://www.blogger.com/atom/ns#' term='размер'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>ЗКак уменьшить размер базы данных MS SQL Server</title><content type='html'>На хостинг-серверах обычно существует квота для базы данных MS SQL Server. Даже если ваша база данных содержит не много данных, но идет интенсивное  добавление/модификация данных, то в определенный момент размер базы данных может превысить выделенный лимит и ваш аккаунт может быть, как говорят буржуи, "suspended".&lt;br /&gt;Это может произойти по причине увеличения transaction log.&lt;br /&gt;Очистиь его можно командой:&lt;br /&gt;&lt;b&gt;BACKUP LOG [databasename] WITH TRUNCATE_ONLY&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;После чего нужно будет еще сделать Shrink Database.&lt;br /&gt;Для примера, размер базы данных &lt;a href="http://avto-credit.com/"&gt;сайта&lt;/a&gt;, который мне доводится обслуживать, уменьшился с 890MB до 12MB.&lt;br /&gt;Стоит также отметить, что до следующего бекапа ваша БД остается незащищенной (на случай отказа оборудования и т.п.), так как transaction log мы очистили.&lt;br /&gt;&lt;br /&gt;Замечу также, что в SQL Server 2008 "WITH TRUNCATE_ONLY" не поддерживается. Поэтому очистить лог перед Shrink-ом можно переключив Recovery Model из режима Full в Simple.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-4842386120259393256?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4842386120259393256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4842386120259393256'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2009/01/ms-sql-server.html' title='ЗКак уменьшить размер базы данных MS SQL Server'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-8591816794242842825</id><published>2008-12-24T17:01:00.005+03:00</published><updated>2010-11-29T09:23:59.729+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='конфигурирование'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnetnuke'/><category scheme='http://www.blogger.com/atom/ns#' term='локализация'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='localization'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Resource'/><category scheme='http://www.blogger.com/atom/ns#' term='DNN'/><category scheme='http://www.blogger.com/atom/ns#' term='скин'/><category scheme='http://www.blogger.com/atom/ns#' term='skin'/><title type='text'>Как изменить строку "You are here" в сайте на Dotnetnuke чтобы она отображалась по русски</title><content type='html'>Как изменить строку "You are here" в сайте на Dotnetnuke чтобы она отображалась по русски?&lt;br /&gt;&lt;br /&gt;Нужно найти папку  /Portals/_defauls/Skins/MinimalExtrophy/App_localResources. Там будет файл index.ascx.resx. Нужно скопировать его в файл  index.ascx.ru-RU.resx, а потом в текстовом редакторе открыть этот файл и изменить там строку "You are here" на "Вы здесь".&lt;br /&gt;Такое решение работает для DNN версии 4.9 и выше. Посмотреть ка это работет можно &lt;a href="http://my11a.net"&gt;здесь&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-8591816794242842825?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8591816794242842825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8591816794242842825'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/12/you-are-here-dotnetnuke.html' title='Как изменить строку &quot;You are here&quot; в сайте на Dotnetnuke чтобы она отображалась по русски'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-325432023139805094</id><published>2008-11-17T16:21:00.007+03:00</published><updated>2010-11-29T09:24:05.259+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UserAgent'/><category scheme='http://www.blogger.com/atom/ns#' term='ошибка'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnetnuke'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='exception'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='bot'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='get_MajorVersion'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Yandex'/><category scheme='http://www.blogger.com/atom/ns#' term='DNN'/><title type='text'>Ошибка в сайте на Dotnetnuke: System.Web.Configuration.HttpCapabilitiesBase.get_MajorVersion()</title><content type='html'>Вот уже неделю наблюдаю в журнале &lt;a href="http://my11a.net/"&gt;сайта&lt;/a&gt;, сделанного на CMS Dotnetnuke, сообщение об ошибке:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;b style="font-style: italic; color: rgb(204, 0, 0);"&gt;Message: DotNetNuke.Services.Exceptions.PageLoadException: Value cannot be null. Parameter name: String ---&gt; System.ArgumentNullException: Value cannot be null. Parameter name: String at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer&amp;amp; number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Web.Configuration.HttpCapabilitiesBase.get_MajorVersion() at DotNetNuke.UI.Utilities.ClientAPI.BrowserSupportsFunctionality(ClientFunctionality eFunctionality) at DotNetNuke.UI.WebControls.DNNMenu.get_IsDownLevel() at DotNetNuke.UI.WebControls.DNNMenu.LoadPostedXML() at DotNetNuke.UI.WebControls.DNNMenu.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.AddedControl(Control control, Int32 index) at System.Web.UI.ControlCollection.Add(Control child) at DotNetNuke.UI.Skins.NavObjectBase.InitializeNavControl(Control objParent, String strDefaultProvider) at DotNetNuke.UI.Skins.Controls.Nav.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.AddedControl(Control control, Int32 index) at System.Web.UI.ControlCollection.Add(Control child) at DotNetNuke.Framework.DefaultPage.Page_Init(Object sender, EventArgs e) at System.Web.UI.Control.OnInit(EventArgs e) at System.Web.UI.Page.OnInit(EventArgs e) at DotNetNuke.Framework.PageBase.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace ---&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Причем бывает UserAgent: Mozilla и бывает UserAgent: Yandex/1.01.001 (compatible; Win16; F).&lt;br /&gt;&lt;br /&gt;Все это похоже на ботов Яндекса и Гугла, хотя, так как в журнале нет IP-адресов, пока это точно не известно. Нужно еще будет проверить лог IIS-а, чтобы это точно узнать. В любом случае как-то некрасиво получается, что можно вот так просто DNN-сайт свалить в эксепшн. А уж тем более, если это Боты, то такой вариант разработчики должны были учесть.&lt;br /&gt;&lt;br /&gt;Придется теперь лезть в ядро и ковыряться в vb.NET исходниках. Кто вообще придумал Dotnetnuke писать не на C# ?!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-325432023139805094?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/325432023139805094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/325432023139805094'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/11/cms-dotnetnuke-system.html' title='Ошибка в сайте на Dotnetnuke: System.Web.Configuration.HttpCapabilitiesBase.get_MajorVersion()'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-8205415984878753760</id><published>2008-11-10T11:21:00.005+03:00</published><updated>2010-11-29T09:23:56.630+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Бегун отстой'/><category scheme='http://www.blogger.com/atom/ns#' term='контекстная реклама'/><category scheme='http://www.blogger.com/atom/ns#' term='Бегун'/><category scheme='http://www.blogger.com/atom/ns#' term='аттестат'/><category scheme='http://www.blogger.com/atom/ns#' term='Begun'/><category scheme='http://www.blogger.com/atom/ns#' term='начальный аттестат'/><category scheme='http://www.blogger.com/atom/ns#' term='WebMoney'/><category scheme='http://www.blogger.com/atom/ns#' term='Transfer'/><title type='text'>Бегун требует аттестат WebMoney Transfer для вывода денег</title><content type='html'>С ноября 2008 года, вывести деньги из системы контекстной рекламы Бегун можно только тем, кто получил аттестат WebMoney Transfer. Причем, сумму меньше 300 у.е. можно вывести имея начальный аттестат, а больше - уже нужен персональный.&lt;br /&gt;&lt;br /&gt;Для получения начального аттестата нужно заполнить заявку в которой указать свои персональные данные (Ф.И.О., место и дату рождения, прописку, паспорт и т.д. вплоть до размера трусов). После чего эти данные будут проверены при ЛИЧНОЙ (!) встрече одним из Персонализаторов. При чем за это НУЖНО ЗАПЛАТИТЬ от $3 и выше! &lt;br /&gt;Персонализаторы есть только в больших городах. А если я живу в каком-то &lt;a href="http://my11a.net"&gt;Мухосранске&lt;/a&gt;? Теперь я должен ехать фиг знает куда, платить за билет, платить за персонализацию, выкладывать спецслужбам все свои данные... И все это ради того, чтобы получить жалкие $50?&lt;br /&gt;&lt;br /&gt;Begun сильно меня разочаровал. Думаю, что не только меня. С такими заморочками он потеряет много партнеров. А Яндекс директ и Google AdSence - приобретут. &lt;br /&gt;Зачем Бегун сам себе усложняет жизнь, вводя необходимость наличия аттестата WebMoney Transfer?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-8205415984878753760?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8205415984878753760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8205415984878753760'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/11/webmoney-transfer.html' title='Бегун требует аттестат WebMoney Transfer для вывода денег'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-2152074249487857138</id><published>2008-11-03T00:03:00.005+03:00</published><updated>2008-11-03T00:21:23.183+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='title'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Page.Title'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnetnuke'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='веб-страница'/><category scheme='http://www.blogger.com/atom/ns#' term='DNN'/><title type='text'>Как программно изменить название веб-страницы в Dotnetnuke ?</title><content type='html'>В обычной .aspx странице программно изменить название (title) очень просто:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;      &lt;span class="kwrd"&gt;this&lt;/span&gt;.Title = &lt;span class="str"&gt;"Обычная веб-страница"&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;В DNN модуле такой код не даст ничего. Название страницы будет то, которое сформирует ядро Dotnetnuke.&lt;br /&gt;Но Title страницы на Dotnetnuke все-таки можно без проблем изменить. Делается это так:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;           DotNetNuke.Framework.CDefault page = (DotNetNuke.Framework.CDefault)&lt;span class="kwrd"&gt;this&lt;/span&gt;.Page;&lt;br /&gt;           page.Title = &lt;span class="str"&gt;"Веб-страница в  Dotnetnuke"&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Посмотреть как это работает можно здесь: &lt;a href="http://my11a.net"&gt;сайт а-класса школа 5 города Ахтырка&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-2152074249487857138?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/2152074249487857138/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=2152074249487857138' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/2152074249487857138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/2152074249487857138'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/11/dotnetnuke.html' title='Как программно изменить название веб-страницы в Dotnetnuke ?'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-4547324915336292224</id><published>2008-11-02T11:09:00.004+03:00</published><updated>2008-11-02T12:36:15.120+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='регистрация'/><category scheme='http://www.blogger.com/atom/ns#' term='зажрались'/><category scheme='http://www.blogger.com/atom/ns#' term='odnoklassniki.ru'/><category scheme='http://www.blogger.com/atom/ns#' term='Одноклассники.ру'/><category scheme='http://www.blogger.com/atom/ns#' term='плата'/><category scheme='http://www.blogger.com/atom/ns#' term='сайт'/><category scheme='http://www.blogger.com/atom/ns#' term='деньги'/><title type='text'>Сайт Одноклассники.ру стал платным: зажрались окончательно!</title><content type='html'>Со вчерашнего дня за регистрацию на супер-пупер популярном сайте Одноклассники.ру придется раскошелиться: нужно будет прислать платное СМС, причем его цена различная для разных операторов. &lt;br /&gt;За эти сайтом уже давно замечена жажда к деньгам: то режим "невидимка" платный придумали, то оценку "5+" за деньги придумали, то "застраховать фотографию" опять же за деньги. Теперь вот и регистрация платная. Думаю следующим шагом будет абонплата.&lt;br /&gt;В условиях кризиса хозяева сайта решили повысить свои сверхприбыли. Это их право. В Сети есть еще много других БЕСПЛАТНЫХ социальных сетей, поэтому не нужно зацикливаться на этом зажравшемся сайте.&lt;br /&gt;Давно есть подозрения, что "Одноклассники.ру" контролируются спецслужбами, а так как в России карточку мобильного оператора не купить без паспорта, то теперь, отправив СМС для регистрации на сайте, эта карточка привязывается еще и к аккаунту на  "Одноклассниках". В общем тотальный контроль. Таким образом убиваются 2 зайца: сайт получает дополнительный доход, а спецслужбы по номеру телефона находят аккаунт на сайте.&lt;br /&gt;В крайнем случае можно создать свой сайт, например вот такой: &lt;a href="http://my11a.net"&gt;сайт 11-А класса 5-й школы&lt;/a&gt;, который всегда будет бесплатным и не будет тайным проектом спецслужб :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-4547324915336292224?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/4547324915336292224/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=4547324915336292224' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4547324915336292224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4547324915336292224'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/11/blog-post.html' title='Сайт Одноклассники.ру стал платным: зажрались окончательно!'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-8912733690177396039</id><published>2008-10-29T23:06:00.004+03:00</published><updated>2008-10-30T09:06:10.257+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bez-Obid.Ru'/><category scheme='http://www.blogger.com/atom/ns#' term='вебмастер'/><category scheme='http://www.blogger.com/atom/ns#' term='кидалово'/><category scheme='http://www.blogger.com/atom/ns#' term='лохотрон'/><category scheme='http://www.blogger.com/atom/ns#' term='Zhlobam.net'/><category scheme='http://www.blogger.com/atom/ns#' term='обман'/><title type='text'>Очередной лохотрон: обманщики на Bez-Obid.Ru ( Zhlobam.net)</title><content type='html'>Для заработка в интернет появился очередной сервис. Сначала размещался на Zhlobam.net а потом плано перешел на Bez-Obid.Ru. Суть в том, что одни люди размещают на этом сайте жалобы, а люди, кототрые хотят заработать берут специально подготовленные ссылки на жалобы и постят и где-попало: на сайтах, форума, блогах. За каждый уникальны клик (Uniq) сайт начисляет 0.5 цента на счет партнера. Минимальная сумма к выводу $20.&lt;br /&gt;Я тоже (в моем то возрасте!) повелся на эту фигню. Решил заработать двадцатку на пиво. Сначала вроде бы все шло неплохо были клики и около 80% из них были "уники". Но постепенно, в течении месяца процент "уников" уменьшался и дошло вообше до смешного. Смотрите скриншот:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_pjCycgL6f4Y/SQjFfsaP7MI/AAAAAAAAAAo/QL6SdBiqnSo/s1600-h/Zhlobi-Screenshot.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_pjCycgL6f4Y/SQjFfsaP7MI/AAAAAAAAAAo/QL6SdBiqnSo/s320/Zhlobi-Screenshot.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5262673312870296770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В общем, такими темпами $20, которые можно вывести себе на кошелек, соберутся только к старости.&lt;br /&gt;&lt;b&gt;Люди! Не ведитесь на этот лохотрон: Bez-Obid.Ru обманывают жестко и нагло. &lt;br /&gt;Bez-Obid.Ru - кидалово очередное.&lt;/b&gt;&lt;br /&gt;Жаль потраченного времени. Ну что-ж будет наука на будущее. Надеюсь мой опыт Вам поможет :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-8912733690177396039?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/8912733690177396039/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=8912733690177396039' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8912733690177396039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/8912733690177396039'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/10/bez-obidru-zhlobamnet.html' title='Очередной лохотрон: обманщики на Bez-Obid.Ru ( Zhlobam.net)'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_pjCycgL6f4Y/SQjFfsaP7MI/AAAAAAAAAAo/QL6SdBiqnSo/s72-c/Zhlobi-Screenshot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-2759810312618641886</id><published>2008-10-29T10:11:00.007+03:00</published><updated>2008-10-29T14:20:28.004+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='запрос'/><category scheme='http://www.blogger.com/atom/ns#' term='OnSelecting'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='ListView'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='LinqDataSource'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Query'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET framework 3.5'/><title type='text'>Как динамически сменить запрос для ListView привязанного к LinqDataSource?</title><content type='html'>Для того чтобы динамически сменить запрос  для ListView привязанному к LinqDataSource нужно обработать событие&lt;strong&gt; OnSelecting&lt;/strong&gt; у&lt;strong&gt; LinqDataSource. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Например вот так:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; dsMates_Selecting(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, LinqDataSourceSelectEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (Request.Params[&lt;span class="str"&gt;"classMateId"&lt;/span&gt;] != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; mateId;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt;.TryParse(Request.Params[&lt;span class="str"&gt;"classMateId"&lt;/span&gt;], &lt;span class="kwrd"&gt;out&lt;/span&gt; mateId))&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;using&lt;/span&gt; (DataClassesPrivateMsgDataContext db = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataClassesPrivateMsgDataContext())&lt;br /&gt;                    {&lt;br /&gt;                        e.Result = db.Classmates.Where(mate =&amp;gt; mate.Id == mateId).FirstOrDefault();&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;Посмотреть как это работает можно здесь: &lt;a href="http://my11a.net/нашкласс/tabid/59/Default.aspx"&gt;сайт а-класса&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-2759810312618641886?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/2759810312618641886/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=2759810312618641886' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/2759810312618641886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/2759810312618641886'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/10/listview-linqdatasource.html' title='Как динамически сменить запрос для ListView привязанного к LinqDataSource?'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-4848690754651393630</id><published>2008-10-28T09:57:00.002+03:00</published><updated>2008-10-28T10:13:34.044+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CalendarExtender'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='Локализанция'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnetnuke'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='AjaxControlToolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='javaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='localization'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET framework 3.5'/><title type='text'>Локализанция CalendarExtender в DotNetNuke</title><content type='html'>Классная все-таки штука AjaxControlToolkit: щелкнул 2 раза, и у тебя уже календарь на веб-страничке. Кинул себе календарь на форму в своем новом dotnetnuke модуле, немного насторил свойства и зашибись работает. Правда почему-то название месяцев по английски пишет, хотя должен настройки брать из браузера. &lt;br /&gt;Оказалось в DNN как всегда свои заморочки, особенно с  AJAX-ом. Чтобы исправить это пишем в модуле так:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Init(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (DotNetNuke.Framework.AJAX.IsInstalled())&lt;br /&gt;            {&lt;br /&gt;                DotNetNuke.Framework.AJAX.RegisterScriptManager();&lt;br /&gt;                DotNetNuke.Framework.AJAX.SetScriptManagerProperty(Page, &lt;span class="str"&gt;"EnableScriptGlobalization"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt;[] { &lt;span class="kwrd"&gt;true&lt;/span&gt; });&lt;br /&gt;                DotNetNuke.Framework.AJAX.SetScriptManagerProperty(Page, &lt;span class="str"&gt;"EnableScriptLocalization"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt;[] { &lt;span class="kwrd"&gt;true&lt;/span&gt; });&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;И, вуаля: названия дней недели и месяцев  в CalendarExtender отображаются по-русски.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-4848690754651393630?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/4848690754651393630/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=4848690754651393630' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4848690754651393630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4848690754651393630'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/10/calendarextender-dotnetnuke.html' title='Локализанция CalendarExtender в DotNetNuke'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-1055915760151620805</id><published>2008-10-21T13:05:00.006+03:00</published><updated>2008-10-21T14:10:39.234+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='ModalPopupExtender'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnetnuke'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='AjaxControlToolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='javaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET framework 3.5'/><title type='text'>Проблема с ModalPopupExtender в DotNetNuke (DNN) : ModalPopupExtender в Internet Explorer отображается не по центру экрана, а слева вверху</title><content type='html'>Захотелось мне сделать на AJAX красивые Popup-окошки в одном из разрабатываемых &lt;a href="http://my11a.net"&gt;сайтов&lt;/a&gt;, чтобы пользователя чувствовали себя как-будто они не на веб-старнице, а в настольном приложении. Сказано - сделано. Используя ModalPopupExtender это проще простого.&lt;br /&gt;Как обычно тестирую в 3-х браузерах: Opera, Internet Explorer и FireFox.&lt;br /&gt;В "Опере" и FireFox-е все работет хорошо, а вот в Internet Explorer-е ModalPopupExtender отображает попап-окно не по центру окна браузера, а слева вверху, причем центр этого окна находится в точке с коодинатами x=0, y=0.&lt;br /&gt;&lt;br /&gt;Такое положение дел меня явно не устраивало. Начал поиски причины и решения. Сайт я начал разрабатывать на DNN версии 4.8.4, но потом вышла версия 4.9 и модули (как и сам dotnetnuke) также тестировались на новой версии. Так вот я заметил, что на DNN 4.8.4 вышеописанная проблема наблюдалась, а на DNN 4.9 уже нет!&lt;br /&gt;&lt;br /&gt;Оказалось, что причина была в том, что сайт на DNN версии 4.8.4 рендерится браузерами в Quirks mode, благодаря вот этому:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;HTML&lt;/span&gt; &lt;span class="attr"&gt;PUBLIC&lt;/span&gt; &lt;span class="kwrd"&gt;"-//W3C//DTD HTML 4.0 Transitional//EN"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;А вот если посмотреть на страницы сгенерированную DNN 4.9 видим:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;PUBLIC&lt;/span&gt; &lt;span class="kwrd"&gt;"-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;/span&gt; &lt;span class="kwrd"&gt;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;И теперь уже браузеры рендерят станицы в Standarts Compilance Mode (Режим соответствия стандартам). Это радует. Наконец-то и dotnetnuke начинает пытаться соответствовать стандартам. Насколько было бы легче программистам, если бы все последовали их примеру:)&lt;br /&gt;&lt;br /&gt;Итак, как говорят в Голливуде : &lt;span style="font-weight:bold;"&gt;Problem solved&lt;/span&gt;. Хочу еще заметить: остерегайтесь установки скинов на свой сайт, так как после этого он, возможно, будет работать не совсе так как он работал до этого:)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Напомню, что прежде, чем использовать у себя в модуле ModalPopupExtender из набора AjaxControlToolkit, необходимо добавить следующую строку в .ascx файле Вашего модуля.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="asp"&gt;&amp;lt;%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Кроме того, чтобы AJAX работал в Вашем модуле, нужно в DotNetNuke-освском сайте  установить галочку &lt;span style="font-weight:bold;"&gt;"Supports Partial Rendering?"&lt;/span&gt; для Ваших user-контролов, в которых используется AJAX.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-1055915760151620805?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/1055915760151620805/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=1055915760151620805' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/1055915760151620805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/1055915760151620805'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/10/blog-post.html' title='Проблема с ModalPopupExtender в DotNetNuke (DNN) : ModalPopupExtender в Internet Explorer отображается не по центру экрана, а слева вверху'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-1948229874191343817</id><published>2008-10-21T11:59:00.004+03:00</published><updated>2008-10-22T13:05:40.026+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='блог'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='код'/><category scheme='http://www.blogger.com/atom/ns#' term='formatter'/><category scheme='http://www.blogger.com/atom/ns#' term='форматирование'/><category scheme='http://www.blogger.com/atom/ns#' term='javaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Форматтер C#  JavaScript HTML ASP.NET кода для вашего блога</title><content type='html'>Так как мне часто приходится выкладывать на своем блоге код на C#, javaScript, HTML, то хотелось, чтобы он был красиво и главное удобно для чтения оформлен. Поэтому я пользуюсь для этого бесплатным онлайн сервисом, который находится здесь:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;www.manoli.net/csharpformat/format.aspx&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Рекомендую всем!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-1948229874191343817?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/1948229874191343817/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=1948229874191343817' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/1948229874191343817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/1948229874191343817'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/10/c-javascript-html-aspnet.html' title='Форматтер C#  JavaScript HTML ASP.NET кода для вашего блога'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-4840278615641388344</id><published>2008-10-14T13:11:00.003+03:00</published><updated>2008-10-14T13:28:04.822+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='блог'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='ссылка'/><category scheme='http://www.blogger.com/atom/ns#' term='RSS'/><category scheme='http://www.blogger.com/atom/ns#' term='катоалог'/><category scheme='http://www.blogger.com/atom/ns#' term='feed'/><title type='text'>каталог сайтов, на которых можно разместить ссылку на свой блог</title><content type='html'>Полезная  подборка: "41 место, куда можете засунуть свой блог"&lt;br /&gt;лежит здесь: &lt;i&gt;www.ithorn.ru/2007/10/27/promote-your-rss/&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-4840278615641388344?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/4840278615641388344/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=4840278615641388344' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4840278615641388344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/4840278615641388344'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/10/41.html' title='каталог сайтов, на которых можно разместить ссылку на свой блог'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-3745824883118107117</id><published>2008-10-10T22:03:00.006+03:00</published><updated>2008-10-15T12:05:28.287+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='бесплатно'/><category scheme='http://www.blogger.com/atom/ns#' term='GIF'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='загрузка'/><category scheme='http://www.blogger.com/atom/ns#' term='free'/><category scheme='http://www.blogger.com/atom/ns#' term='load'/><title type='text'>анимированные gif - файлы загрузки для AJAX</title><content type='html'>Есть классниый сайт на котором в онлайне можно получить анимированную gif-ку для AJAX лоадера. Есть много шаблонов, можно выбрать цвета, размер. Сайт: ajaxload.info. Я на своем &lt;a href="http://my11a.net/"&gt;сайте одноклассников 11-А класса&lt;/a&gt; уже использую несколько таких.&lt;br /&gt;&lt;br /&gt;Для пользователей "Оперы" с сайта "Оперы" можно скачать виджет "Animated loading image generator!", и тогда можно будет генерить gif-ку не выходя со своего любимого  &lt;a href="http://my11a.net/"&gt;сайта одноклассников 11-А класса&lt;/a&gt; :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-3745824883118107117?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/3745824883118107117/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=3745824883118107117' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/3745824883118107117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/3745824883118107117'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/10/gif-ajax.html' title='анимированные gif - файлы загрузки для AJAX'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-367661445031353650</id><published>2008-10-08T13:56:00.005+03:00</published><updated>2008-10-21T15:51:45.064+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='блог'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='Analytics'/><category scheme='http://www.blogger.com/atom/ns#' term='liveinternet.ru'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger.com'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='посещение'/><category scheme='http://www.blogger.com/atom/ns#' term='счетчик'/><title type='text'>Как поставить счетчик liveinternet.ru в блоге</title><content type='html'>Решил поставить себе в блог счетчик посещений liveinternet.ru. Зарегистрировался, получил код. Добавил в блог гаджет text/html,  впихнул туда код счетчика. Смотрю на блог, а он выдает ошибки в javascript. Открываю снова гаджет,  и вижу что код счетчика  автоматически был изменен  (заменнены кое какие кавычки) и естественно не работает.&lt;br /&gt;Ладно,  прописываю код уже в шаблоне в  самом html. При попытке сохранить шаблон выскакивает ошибка:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;Не удалось проанализировать ваш шаблон, так как он неправильно сформирован. Убедитесь, что все элементы XML правильно закрыты.&lt;br /&gt;Сообщение об ошибке в XML: Open quote is expected for attribute "{1}"&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Понятно,  liveinternet до сих пор с xml-ем не дружит. И не только с xml, а и вообще со стандартами Веба. А на дворе то 21-й век.&lt;br /&gt;&lt;br /&gt;Черт с ним, с этим "живым интернетом". Пойдем к "Гуглу", любителю стандартов. Здесь:  www.google.com/analytics регистрируюсь, получаю код, копирую его в шаблон блога. И все работает. &lt;br /&gt;&lt;br /&gt;Возникает вопрос: почему  liveinternet.ru до сих пор не переделал код своего счетчика? Ведь такого рода компании должны быть впереди всех остальных?&lt;br /&gt;&lt;br /&gt;P.S. На одном блогспотовском блоге заметил стоЯщий и работающий счетчик liveinternet. То есть это возможно. Посмотрел HTML код и вижу, что код работающего счетчина разделен на несколько строк, а я в своих пробах установки всегда пробовал всунуть "вытянутый в одну строку". Что ж попытка - непытка: беру код многострочный и пихаю в гаджет text/html. И... работает. В чем фишка - не понял, и нет времени разбираться. Главное, что работает:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-367661445031353650?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/367661445031353650/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=367661445031353650' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/367661445031353650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/367661445031353650'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/10/liveinternetru.html' title='Как поставить счетчик liveinternet.ru в блоге'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7518595512347254965.post-2795343507112523206</id><published>2008-10-08T09:45:00.012+03:00</published><updated>2008-10-08T16:43:47.350+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='хостинг'/><category scheme='http://www.blogger.com/atom/ns#' term='производительность'/><category scheme='http://www.blogger.com/atom/ns#' term='домен'/><category scheme='http://www.blogger.com/atom/ns#' term='ошибка'/><category scheme='http://www.blogger.com/atom/ns#' term='сессия'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='веб'/><category scheme='http://www.blogger.com/atom/ns#' term='сайт'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnetnuke'/><category scheme='http://www.blogger.com/atom/ns#' term='AppDomain'/><category scheme='http://www.blogger.com/atom/ns#' term='DNN'/><category scheme='http://www.blogger.com/atom/ns#' term='приложение'/><title type='text'>В сайте сделанном на Dotnetnuke постоянно пересоздается домен приложения:  "The AppDomain shut down because of the hosting environment."</title><content type='html'>Создал сайт с использованием CMS DotNetNuke. На моей девелоперской машине он работал очень даже шустро. После размещения на американском хостинге заметил, что страницы, особенно первая, открываются очень долго.  Смотрю журнал сайта и вижу, что домен приложения (appDomain)  пересоздается несколько раз в минуту. Идут последовательные записи:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Application Shutting Down.&lt;i&gt;  Shutdown Details: The AppDomain shut down because of the hosting environment.&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;/strong&gt;&lt;strong&gt;Application Started.&lt;/strong&gt;&lt;strong&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;/strong&gt;Пересоздание домена приложения операция не быстрая, она и приводит к уменьшению производительности сайта (медленной загрузке страниц).&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;Так как я не не делал никаких изменений в файлах (в т.ч. конфигурационнных) веб-приложения, а также во вложенных папках проекта, возник вопрос: почему и как с этим бороться?&lt;br /&gt;&lt;br /&gt;Имея опыт работы с хостерами знаю, что бывает на хостинге,  в борьбе за ресурсы,  выставяют в конфигах время жизни сессии очень маленькое (sessionState.Timeout). Пишу приложение и проверяю: да, действительно сессия живет не более 10-ти секунд. Пишу письмо в саппорт с просьбой увеличить до 30-ти минут. Сделали.&lt;br /&gt;&lt;br /&gt;Теперь вижу, что appDomain уже не умирает так часто, как раньше. Теперь это повторяется раз в 15-20 минут. Так как сайт еще никто не посещает и зная, что домен приложения может уничтожаться при неактивности, пишу windows-службу, которая с интервалом 5 минут делает HTTP GET запрос к &lt;a href="http://my11a.net/"&gt;сайту&lt;/a&gt; . Результат: AppDomain практически не пересоздается. Проблема решена.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7518595512347254965-2795343507112523206?l=a-kicker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-kicker.blogspot.com/feeds/2795343507112523206/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7518595512347254965&amp;postID=2795343507112523206' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/2795343507112523206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7518595512347254965/posts/default/2795343507112523206'/><link rel='alternate' type='text/html' href='http://a-kicker.blogspot.com/2008/10/dotnetnuke-appdomain-shut-down-because.html' title='В сайте сделанном на Dotnetnuke постоянно пересоздается домен приложения:  &quot;The AppDomain shut down because of the hosting environment.&quot;'/><author><name>AK</name><uri>http://www.blogger.com/profile/09961221800490275710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pjCycgL6f4Y/SOxTR1Y5JhI/AAAAAAAAAAM/jk1z5_FYviI/S220/cat.jpg'/></author><thr:total>0</thr:total></entry></feed>
