<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dev.net.ua/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Ivan Kolodyazhny</title><link>http://dev.net.ua/blogs/e0neuser/default.aspx</link><description /><dc:language /><generator>CommunityServer 2.1 (Build: 60809.935)</generator><item><title>UNETA: Доклад на тему DLR и динамических языках в .NET 4.0</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/12/25/9158.aspx</link><pubDate>Fri, 25 Dec 2009 11:45:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:9158</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>6</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/9158.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=9158</wfw:commentRss><description>&lt;P&gt;Так как сейчас активно интересуюсь DLR в целом и IronPython в частности, есть желание прготовить доклад на одну из ближайших встреч UNETA.&lt;/P&gt;
&lt;P&gt;Хотелось бы услышать виши комментарии ипожелания по этому поводу.&lt;/P&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=9158" width="1" height="1"&gt;</description><category domain="http://dev.net.ua/blogs/e0neuser/archive/tags/uneta/default.aspx">uneta</category></item><item><title>Программирование на .NET: С чего начать?</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/12/16/9123.aspx</link><pubDate>Wed, 16 Dec 2009 17:23:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:9123</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>10</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/9123.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=9123</wfw:commentRss><description>&lt;SPAN style="WIDOWS:2;TEXT-TRANSFORM:none;TEXT-INDENT:0px;BORDER-COLLAPSE:separate;FONT:medium 'Times New Roman';WHITE-SPACE:normal;ORPHANS:2;LETTER-SPACING:normal;WORD-SPACING:0px;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" class=Apple-style-span&gt;
&lt;DIV style="MARGIN:8px;FONT-FAMILY:Verdana, Arial, Helvetica, sans-serif;FONT-SIZE:10px;background-origin:initial;background-clip:initial;"&gt;
&lt;P&gt;Случилось так, что на работе попросили составить список из того, что нужно почитать/скачать/установить студентам, которые хотят писать на всеми любимом языке программирования C#. Решили, что раз они (студенты) этим интересуются, то вопрос "а оно нам(им) надо пропускаем.&lt;/P&gt;
&lt;P&gt;Для начала начала необходимо установить сам .NET framework и какуе-то IDE. C IDE вариантов не много: или бесплатные express версии (&lt;A href="http://www.microsoft.com/exPress/" target=_blank&gt;http://www.microsoft.com/exPress/&lt;/A&gt;), или trial полнофункциональной Visual Studio (&lt;A href="http://www.microsoft.com/visualstudio/en-us/default.mspx" target=_blank&gt;http://www.microsoft.com/visualstudio/en-us/default.mspx&lt;/A&gt;). Что дальше делать с триальной версией - каждый решает сам, но для студентов полно всяких програм, где можно получить всё это бессплатно и, главное, легально.&lt;/P&gt;
&lt;P&gt;При установки Visual Studio рекомендую сразу поставить SQL Server Express Edition (&lt;A href="http://www.microsoft.com/express/sql/default.aspx"&gt;http://www.microsoft.com/express/sql/default.aspx&lt;/A&gt;), т.к. я с трудом представляю какое более-менее большое приложение может работать без базы данных.&lt;/P&gt;
&lt;P&gt;Из-за того, что упор делается на web-разработку, разу ставим&amp;nbsp;Microsoft Web Platform Installer (&lt;A href="http://www.microsoft.com/web/downloads/platform.aspx" target=_blank&gt;http://www.microsoft.com/web/downloads/platform.aspx&lt;/A&gt;) - в нем уже есть всё нужное для разработки на платформе ASP.NET.&lt;/P&gt;
&lt;P&gt;Всё установили, настроили - теперь можно писать свою первую (или не первую) программу на .NET. Вот только ещё не известно как писать! Предлагаю список литературы.&lt;/P&gt;
&lt;P&gt;On-line сточники:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;MSDN (Microsoft Developers Network):&lt;A href="http://msdn.microsoft.com/en-us/default.aspx" target=_blank&gt;&amp;nbsp;http://msdn.microsoft.com/en-us/default.aspx&lt;/A&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;или русская версия&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://msdn.microsoft.com/ru-ru/default.aspx" target=_blank&gt;http://msdn.microsoft.com/ru-ru/default.aspx&lt;/A&gt;. Там действительно есть&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;всё&lt;/STRONG&gt;, но использовать его в качестве учебника трудно и неудобно. 
&lt;LI&gt;&lt;A href="http://www.asp.net/learn/" target=_blank&gt;http://www.asp.net/learn/&lt;/A&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;- много разного обучающего видео, демонстрирующего возможности ASP.NET. К каждому ролику можно скачать исходный код проекта, на случай, если что-то не получается. Только не стоит увлекаться: там показывают только самые(!) простые вещи, которые в больших приложения требуют хорошей обработки напильником. 
&lt;LI&gt;&lt;A href="http://www.asp.net/community/projects/" target=_blank&gt;http://www.asp.net/community/projects/&lt;/A&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;- Starter Kits – готовые приложения с исходниками. Не знаю что ещё можно об этом сказать. Очень полезная вещь. 
&lt;LI&gt;Всевозможные блоги, форумы, сообщества. Их сейчас очень много, т.ч. я не считаю что нужно их сдесть перечислять, всё-равно кому-то что-то не понравится. 
&lt;LI&gt;...&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;Книги:&lt;/DIV&gt;
&lt;DIV&gt;
&lt;UL&gt;
&lt;LI&gt;Эндрю Троелсен.&amp;nbsp;Язык программирования С# 2008 и платформа .NET 3.5 - своеобразный букварь по C#. Многие рекомендуют начинать именно с него. 
&lt;LI&gt;Книги по ASP.NET от Дино Эспозито - у него несклько книг, ориентированных на разный уровень читателей, каждый может выбрать себе книгу "по душе". 
&lt;LI&gt;
&lt;LI&gt;Джеффри Рихтер.&amp;nbsp;CLR via C#. Программирование на платформе Microsoft .NET Framework 2.0 на языке C# - отличнай книга, обязательна к прочтению каждым разработчиком, который пишет на .NET. Только я очень не(!) рекомендую начинать именно с неё. У меня было "тяжелое детство": начинал с Рихтера, поэтому пришлось читать 2 или 3 раза, чтобы понять о чём он пишет. 
&lt;LI&gt;...&lt;/LI&gt;&lt;/UL&gt;Для начала, наверное хватит. To be continued...&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;BR class=Apple-interchange-newline&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=9123" width="1" height="1"&gt;</description><category domain="http://dev.net.ua/blogs/e0neuser/archive/tags/.net+framework/default.aspx">.net framework</category><category domain="http://dev.net.ua/blogs/e0neuser/archive/tags/_3A043D04380433043804_/default.aspx">книги</category></item><item><title>Patterns &amp; Practices Roadshow</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/09/17/8847.aspx</link><pubDate>Thu, 17 Sep 2009 12:36:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:8847</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>0</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/8847.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=8847</wfw:commentRss><description>Вчера в Киеве прошла конференция&amp;nbsp;&lt;a href="http://pnp.in.ua/" target="_blank"&gt;Patterns&amp;nbsp;&amp;amp;&amp;nbsp;Practices&amp;nbsp;Roadshow&lt;/a&gt;.
Изначально она должна была пройти в офисе Microsoft Ukraine, но, т.к.
было многожелающих, провели её в Киевском кукольном театре. Очень
красивое место и здание. Из названия было понятно, что будет
обсуждаться Enterprice Library (EntLib), Entity Framework и всем, что
связано с &lt;a href="http://msdn.microsoft.com/en-us/practices/default.aspx" target="_blank"&gt;P'n'P&lt;/a&gt;. Догадки подтвердил опубликованный список ресурсов.&amp;nbsp; 

&lt;p&gt;
Началось всё со вступительного слова представителя компании Microsoft
Ukraine. Хотя, на самом деле всё началось с регистрации, где нам вдали
пакеты с анкетой, ручкой и каким-то учебником для ВУЗов на украинском
языке и кофе.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blog.e0ne.info/image.axd?picture=0.jpg" alt="" width="50%"&gt;
&lt;br&gt;Первый доклад имел гордое название "Patterns &amp;amp; practices –
взгляд в будущее", автором которого был Ajoy Krishnamoorthy, ведущий
специалист группы patterns &amp;amp; practices в Microsoft, а в прошлом -
PM продукта Visual Studio Team System. Было небольшое введение на тему
"что такое Patterns &amp;amp; Practices, EntLib". &lt;br&gt;&lt;/p&gt;&lt;p&gt;
Вторым на сцену вышел Don 
Smith, которого встретили бурными авациями в том числе и из-за его Mac Book Pro, на котором оказалась установленная Windows 7.
&lt;br&gt;
&lt;img src="http://blog.e0ne.info/image.axd?picture=1.jpg" alt="" width="50%"&gt;
&lt;br&gt;
&lt;br&gt;
Тут доклады немного пеменялись местами и мы услышали&amp;nbsp; доклад
"Руководство по архитектуре приложений: карта вашего путешествия",
который должен был быть после обеда. Но хуже от этого не стало. Нам
рассказали о "Application Architecture Guide", котором написано, что он
создан для разработки решений на платформе .NET, но, по сути, может
быть использован при использовании и других технологий. Это же нам
подтвердил Дон. Application Architecture Guide рассазывает нам о
высокоарзхитектурных решениях, не вдаваясь в подробности реализации
конкретных частей приложений. Думаю, что это будет интересно не только
архитекторам, но и всем разработчикам. Поэтому рекомендую прочесть этот
почти 400-страничный мануал.
&lt;/p&gt;
&lt;p&gt;
Следующим был доклад нашего земляка Григория Мельника (Grigori 
Melnik). 
&lt;br&gt;
&lt;img src="http://blog.e0ne.info/image.axd?picture=2.jpg" alt="" width="50%"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;Началось с приветствия и фразы "решил не выпендриваться и говорить
на русском" (дословно). Было интересно послушать про EntLib 5,в которой
будет поддерживаться совместимость до 2-й версии. Таким образом, если
вы испульзовалм более старую версию библиотеки, то вы практически без
проблем перейдёте на EntLib 5. К сожалению, из-за большого количества
вопросов, доклад получился не полным. Григорий успел рассказать в общих
чертах об Enterprice Library и рассказал о таких её частях, как Logging
и Unity. Очень хотелось послушать ещё о Exception Handling и Data
Access, который не является очередной ORM. Эту тему немного затронули в
другом докладе, посвященному доступу к данным.
&lt;/p&gt;
&lt;p&gt;Обед. После обеда снова появился Don Smith и с докладом "Современные
методы доступа к данным: шаблоны и реализации". Опять был сделан упор
не на конкретную реализицию, а на то, какие вообще могут быть
DataLayer. Немного была затронута тема Entity Libraкy и&amp;nbsp; LINQ to SQL.
Несколько примеров приложений с разными архитектурами data layer хорошо
продемонстрировали то, что Дон рассказывал и показывал на слайдах.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;Подводя итог, хочу сказать что конференция понравилась, не жалко
потраченных времени/денег. Докладчики хорошо разбираются в сути вопроса
и, что немаловажно, не просто говорят какие их технологии классные и
нужно использовать их, а просто говорят какие есть плюсы, а иногда и
минусы, тех&amp;nbsp; или иных подходов. Не было сказано не одной фразы похожей
на "это классно, используйте наши технологии". Всё было достаточно
объективно. Что касается организации, то не было привычных всем
футболок, зато в обмен назаполенную анкету давали флешку с материалами
конференции, на которой, к слову, не оказалось показанных презентаций и
примеров проггрмамм, которые использовали докладчики. Так же не было
EntLib 5, которая ещё не вышла в RTM. &lt;/p&gt;
&lt;p&gt;
P.S. &lt;a href="http://chaliy.name/" class="url fn"&gt;Mike Chaliy&lt;/a&gt;, спасибо за фото. 
&lt;br&gt;&lt;br&gt;Оригинал поста:&lt;a href="http://blog.e0ne.info/post/patterns-and-practices-roadshow.aspx"&gt; http://blog.e0ne.info/post/patterns-and-practices-roadshow.aspx&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=8847" width="1" height="1"&gt;</description></item><item><title>ASP.NET, сэссия и рестарт приложения</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/06/09/8475.aspx</link><pubDate>Tue, 09 Jun 2009 11:19:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:8475</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>0</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/8475.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=8475</wfw:commentRss><description>&lt;p&gt;
Всё началось с того, что в спецификации к проекту написали примерно
такое: "Время продолжительности сэссии пользователя на сайте должно
составлять 120 минут". После чего, в web.config была добавлена
следующая строка:&amp;nbsp;
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;em&gt;&amp;lt;sessionState mode="InProc" cookieless="false" timeout="120" /&amp;gt; 
	&lt;/em&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
А на страницу был добавлен такой мета-тег:
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;strong&gt;&amp;lt;meta http-equiv="Refresh" content="7200; URL=/EzRc/Pages/LogOn/SessionExpired.aspx" /&amp;gt; 
	&lt;/strong&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Следует упомянуть конфигурацию тестовых серверов: Windows
Vista/2008, IIS7, .NET 3.5. Ничто не предвещало беды. Но, как и
полагается, в один "прекрасный" день всеми людимые QA написали баг
следующего содержания: "Session expiration occurs prior to 30 min (and
as little as 10 min)." При этом повторить его было достаточно просто:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;залогиниться на сайт&lt;/li&gt;&lt;li&gt;оставить браузер в покое на 30 минут&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;После этих нетрудный манипуляций при попытке перейти по любой ссылке
мы оказывались на странице, в которой радостно говорилось об окончании
сэссии и предлагалось перейти на страницу логина. Естественно, этот баг
повторялся не всегда.&lt;br&gt;
&lt;br&gt;
Ещё раз убедившись в правильности настроек сэссии в web.config я реши
воспроизвести этот баг на локальном (dev) компьютере. Как ни странно,
но баг воспроизводился в 100% случаев. "Странно" - подумал я и налил
ещё чашку кофе.
&lt;/p&gt;
&lt;p&gt;Запустив Fiddler2 и залогинившись на сайт я снова оставил его в
покое на 30 минут. Через это время, убедившись, что cookie приходят
валидные, я наал смотреть логи. Напервый взгляд всё было хорошо, но
присмотревшись внимательно, увидел что отрабатывает событие
ApplicationStart. Теперь понятно почему заканчивается сэссия. Осталось
разобраться почему перезапускается приложение.
&lt;/p&gt;
&lt;p&gt;
Из логов IIS:
&lt;/p&gt;
&lt;blockquote&gt;
	Event code: 1002 &lt;br&gt;
	Event message: Application is shutting down. Reason: Hosting environment is shutting down. &lt;br&gt;
	Event time: 6/8/2009 1:50:21 PM &lt;br&gt;
	Event time (UTC): 6/8/2009 10:50:21 AM &lt;br&gt;
	Event ID: 80d0faffb34547fea6299cfff8cf1c6f &lt;br&gt;
	Event sequence: 4 &lt;br&gt;
	Event occurrence: 1 &lt;br&gt;
	Event detail code: 50002 &lt;br&gt;
	&amp;nbsp;&lt;br&gt;
	Application information: &lt;br&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; Application domain: /LM/W3SVC/1/ROOT/Web-1-128889305624881519 &lt;br&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; Trust level: Full &lt;br&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; Application Virtual Path: /EzRc &lt;br&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; Application Path: C:\Src\Sites\Web\ &lt;br&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; Machine name: localdev &lt;br&gt;
	&amp;nbsp;&lt;br&gt;
	Process information: &lt;br&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; Process ID: 6364 &lt;br&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; Process name: w3wp.exe &lt;br&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; Account name: NT AUTHORITY\NETWORK SERVICE &lt;br&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
После прочтения статьи из MSDN &lt;a href="http://msdn.microsoft.com/en-us/library/bb470252.aspx" target="_blank"&gt;ASP.NET Application Life Cycle Overview&lt;/a&gt;
ответ на интересующий вопрос не был получен, из чего был сделан вывод,
что проблема находится уровне выше, а именно в IIS. Начал детально
изучать настройки, которые могут повлиять на работу приложения и
остановился на Application Pools. После чтения документации и
нескольких неверных попыток был найден источник проблемы. Им оказался
параметр &lt;strong&gt;Idle Time-out&lt;/strong&gt;. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://blog.e0ne.info/image.axd?picture=apppool.jpg"&gt;&lt;/p&gt;&lt;p&gt;Оказалось, что при настройках по умолчанию, процесс, отвечающий за работу asp.net, тушится при условии, что к нему &lt;strong&gt;не обращаются&lt;/strong&gt; в течении 20 минут. Это объясняло, почему проблему можно было не всегда воспроизвести на тестовом сервере. 

&lt;/p&gt;&lt;p&gt;
Это же можно настроить и через файл machine.config. Подробнее описано &lt;a href="http://www.xefteri.com/articles/show.cfm?id=14" target="_blank"&gt;здесь&lt;/a&gt;. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Оригинал поста находится &lt;a href="http://blog.e0ne.info/post/aspnet-session-and-application-restart.aspx"&gt;здесь&lt;/a&gt;.&lt;br&gt;&lt;/p&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=8475" width="1" height="1"&gt;</description><category domain="http://dev.net.ua/blogs/e0neuser/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://dev.net.ua/blogs/e0neuser/archive/tags/iis/default.aspx">iis</category></item><item><title>Visual Studio 2010 и .NET Framework 4 Beta 1 доступны для скачивания</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/05/20/8359.aspx</link><pubDate>Wed, 20 May 2009 19:54:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:8359</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>0</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/8359.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=8359</wfw:commentRss><description>Свершилось! Visual Studio 2010 and .NET Framework 4 Beta 1 качаем &lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx" target="_blank"&gt;здесь&lt;/a&gt;, а &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=752cb725-969b-4732-a383-ed5740f02e93&amp;amp;displayLang=en" target="_blank"&gt;отсюда &lt;/a&gt;качаем Visual Studio 2010 and .NET Framework 4 Training Kit - May Preview.&lt;br&gt;&lt;br&gt;&lt;a href="http://blog.e0ne.info/post/Visual-Studio-2010-and-NET-Framework-4-Beta-1.aspx"&gt;Оригинал поста&lt;/a&gt;.&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=8359" width="1" height="1"&gt;</description></item><item><title>Visual Studio 2008: проблемы с генерацией .designer.cs для Web Application</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/04/16/8146.aspx</link><pubDate>Thu, 16 Apr 2009 11:06:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:8146</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>0</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/8146.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=8146</wfw:commentRss><description>чера столкнулся с интересным моментом при генерации
*.designer.cs-файлов. Сначала подумал что это баг, но после недолгих
размышлений пришел к выводу, что это не баг, а фича ("багофича" (с)).&amp;nbsp;

&lt;p&gt;Всё началось с того, что на одной из страниц сайта нужно было
создать некоторую функциональность, которая уже была доступна дадругой
странице. Сразу же было решено поместить эу функциональность в
UserControl.После достаточно стандартных действий, copy&amp;amp;pase нужной
разметки из страницы в только что созданный контрол, уже собирался
писать в нём логину, но... Но студия ругалась на любое упоминание о
вебконтроле, расположенном в mycontrol.ascx. "Странно" - подумал я и
посмотрел содеримое файла mycontrol.ascx.designer.cs. В нём оказалось
пусто. Тут же вспомнились похожие баги Visual Studio 2005 без установки
на неё Service Pack 1 и было принято решение (как озакалось потом -
ошибочное) руками дописать нужный код. Дописал. Сайт скомпилировался и
даже попытался запуститься, но run-time ошибка не дала ему нормально
функционировать. &lt;/p&gt;
&lt;p&gt;
Ошибка достаточно ясно указывала на источник проблемы: при копипасте я
забыл добавить в контол директиву &amp;lt;%@ Register TagPrefix="pref"
TagName="Popup" src="~/UserControl/Popup.ascx" %&amp;gt;
&lt;/p&gt;
&lt;p&gt;После добавление этой директивы в mycontrol.ascx,
mycontrol.ascx.designer.cs был успешно сгенерирован автоматически и всё
заработало, а я ещё раз убедился, что от copy&amp;amp;pase не стоит дать
ничего хорошего. &lt;br&gt;&lt;/p&gt;&lt;br&gt;Оригинал &lt;a href="http://blog.e0ne.info/post/Visual-Studio-2008-problems-with-designer-cs-files-in-Web-Application.aspx"&gt;здесь&lt;/a&gt;.&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=8146" width="1" height="1"&gt;</description></item><item><title>Архивы, архиваторы, Windows</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/04/14/8117.aspx</link><pubDate>Tue, 14 Apr 2009 09:49:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:8117</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>3</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/8117.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=8117</wfw:commentRss><description>&lt;div class="postcontent"&gt;&lt;p&gt;
На работе возникла необходимость отправить архив с ..., с чем-то очень
важным. По привычке, быстро сделал rar-архив, прикрепил его к письму и
уже собирался нажать кнопку Send, но вовремя остановился. Вспомнил что
в одном из писем мне присылали файлы, запакованы в zip-архив. Быстро
переархивировал нужные файлы отправил письмо и задумался о Windows,
Microsoft и архивах.
&lt;/p&gt;
&lt;p&gt;
Вчера скачивал &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&amp;amp;displaylang=en" target="_blank"&gt;Internet Explorer Application Compatibility VPC Image&lt;/a&gt;.
И там некоторые образы запакованы в rar-архив. Замечу, что это не
первый случай, когда на сайте Microsoft лежат rar-архивы. Обратил я на
это внимание потому, что сама ОС Windows "из коробки" может работать
только с zip-архивами. И как это безобразие понимать? Microsoft
рекламирует WinRar? Субъективно, было бы логичнее сжимать всё в zip,
чтобы разработчики не искали нужное ПО, чтобы разархивировать нужные
архивы. Или предполагается, что после покупки и установки OS Windows её
пользователю необходимо ещё скачать/купить/установить n-е количество
софта? Странно всё это... &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;Оригинал &lt;a href="http://blog.e0ne.info/post/Offtopic-d090d180d185d0b8d0b2d18b2c-d0b0d180d185d0b8d0b2d0b0d182d0bed180d18b2c-Windows.aspx"&gt;здесь&lt;/a&gt;.
&lt;/div&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=8117" width="1" height="1"&gt;</description><category domain="http://dev.net.ua/blogs/e0neuser/archive/tags/rar/default.aspx">rar</category><category domain="http://dev.net.ua/blogs/e0neuser/archive/tags/windows/default.aspx">windows</category></item><item><title>ASP.NET Ajax. Часть 1: что внутри?</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/04/02/8063.aspx</link><pubDate>Thu, 02 Apr 2009 14:03:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:8063</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>0</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/8063.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=8063</wfw:commentRss><description>&lt;p&gt;
На днях столкнулся такой ситуацией, что &lt;strike&gt;многие&lt;/strike&gt;
некоторые разработчики при упоминании Ajax имеют в виду компонент
UpdatePanel и не понимают как она работает. Сегодня я решил попытаться
исправить эту ситуацию и рассказать что такое и как устроен ASP.NET
Ajax.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;Для начала обратимся Википедии и посмотрим, что такое Ajax:
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt; AJAX (Asynchronous Javascript and XML — «асинхронный
JavaScript и XML») — это подход к построению интерактивных
пользовательских интерфейсов веб-приложений, заключающийся в «фоновом»
обмене данными браузера с веб-сервером. В результате при обновлении
данных веб-страница не перезагружается полностью, и веб-приложения
становятся более быстрыми и удобными. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Для выполнения асинхронных запросов, на JavaSctipt необходимо создать объект XMLHttpRequest&lt;span class="br0"&gt;&lt;/span&gt;,
который и будет взаимодействовать с сервером. В зависимости от
браузера, объект создаётся разными способами, но можно написать
универсальный метод для его создания:
&lt;/p&gt;
&lt;div class="javascript" style="font-family:monospace;"&gt;
&amp;nbsp; &amp;nbsp; &lt;span style="font-weight:bold;"&gt;function&lt;/span&gt; createRequestObject&lt;span&gt;(&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span&gt;{&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span style="font-weight:bold;"&gt;if&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;window.&lt;span&gt;XMLHttpRequest&lt;/span&gt;&lt;span&gt;)&lt;/span&gt; &lt;span&gt;{&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span style="font-weight:bold;"&gt;try&lt;/span&gt; &lt;span&gt;{&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span style="font-weight:bold;"&gt;return&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;new&lt;/span&gt; XMLHttpRequest&lt;span&gt;(&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span&gt;}&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;catch&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;e&lt;span&gt;)&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span&gt;}&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;else&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;if&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;window.&lt;span&gt;ActiveXObject&lt;/span&gt;&lt;span&gt;)&lt;/span&gt; &lt;span&gt;{&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span style="font-weight:bold;"&gt;try&lt;/span&gt; &lt;span&gt;{&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span style="font-weight:bold;"&gt;return&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;new&lt;/span&gt; ActiveXObject&lt;span&gt;(&lt;/span&gt;&lt;span&gt;'Msxml2.XMLHTTP'&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span&gt;}&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;catch&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;e&lt;span&gt;)&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span style="font-weight:bold;"&gt;try&lt;/span&gt; &lt;span&gt;{&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span style="font-weight:bold;"&gt;return&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;new&lt;/span&gt; ActiveXObject&lt;span&gt;(&lt;/span&gt;&lt;span&gt;'Microsoft.XMLHTTP'&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span&gt;}&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;catch&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;e&lt;span&gt;)&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span&gt;}&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span&gt;}&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span style="font-weight:bold;"&gt;return&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;null&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;span&gt;}&lt;/span&gt;&lt;br&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;

Теперь вернёмся в ASP.NET.&lt;br&gt;&lt;a href="http://blog.e0ne.info/post/ASPNET-Ajax-Part1-Look-Inside.aspx"&gt;Читать дальше.&lt;/a&gt;&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=8063" width="1" height="1"&gt;</description><category domain="http://dev.net.ua/blogs/e0neuser/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://dev.net.ua/blogs/e0neuser/archive/tags/ajax/default.aspx">ajax</category></item><item><title>Пути использования Open Source</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/03/27/8033.aspx</link><pubDate>Fri, 27 Mar 2009 13:27:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:8033</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>0</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/8033.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=8033</wfw:commentRss><description>&lt;p&gt;
На мысль натолкнуло исправление очередного бага в Ajax Control Toolkit.
&lt;/p&gt;
&lt;p&gt;
Часто мы в проектах, чтобы не изобретать велосипед, используем уже
готовые инструменты. Иногда это open source приложения/библиотеки. И
что делать, если нам не хватает функциональности этих библиотек или
надо срочно исправить какуе-то ошибку? Первая же мысль - это взять
исходники, подправить/дописать, после чего скомпилировать и радоваться
жизни. Но радоваться будем недолго, до выхода новой версии этой
замечательной библиотеке, в которой есть необходимые изменения.
Приходится качать исходники, опять вносить туда свои изменение,
компилировать и т.д. В процессе этого пишуться письма авторам
библиотеке, создаются новые запись в ихнем багтрекере, но необходимых
изменений в очередной версии мы так и не получаем. &lt;br&gt;&lt;/p&gt;&lt;p&gt;После нескольких таких итераций голову приходит очередная мысль (нет,
не отказаться от этого продукта): "А, может, не будем изменять
исходники? Может, просто приспособимся к их API или сделаем
класс-наследник и добавим в него недостающую функциональность?". В этот
момент начинает казаться, что пользы от open source становится всё
меньше и меньше. При таком подходе переход на новую версию используемой
библиотеке становится менее болезненным, но мы не застрахованы, что в
новой версии ничего не изменится и не поломает нашу функциональность.&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.e0ne.info/post/Ways-to-Use-Open-Source.aspx"&gt;Читать дальше.&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=8033" width="1" height="1"&gt;</description></item><item><title>Dynamic Language Runtime: динамические языки в .NET</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/03/24/8001.aspx</link><pubDate>Mon, 23 Mar 2009 21:56:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:8001</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>0</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/8001.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=8001</wfw:commentRss><description>&lt;span class="Apple-style-span" style="border-collapse:separate;font-family:'Lucida Sans Unicode';font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;"&gt;&lt;span style="margin:0px;padding:0px;"&gt;&lt;a href="http://www.codeplex.com/dlr" target="_blank" style="margin:0px;padding:0px;"&gt;Dynamic Language Runtime (DLR)&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;- позволяет создавать свои динамические языки на платформе .NET. Сейчас самыми популярными из них являются IronPython и IronRuby. Также на просторах CodePlex существует&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a id="ctl00_ctl00_MasterContent_RightSideBar_RelatedProjects_Sidebar_ProjectList_ctl04_ProjectNameLink" href="http://ironlisp.codeplex.com/" style="margin:0px;padding:0px;"&gt;IronLisp&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;и другие динамические языки. Последняя версия DLR имеет номер 0.9 и была выпущена 10 декабря 2008 года.&lt;br&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse:separate;font-family:'Lucida Sans Unicode';font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;"&gt;Кроме того, что DLR позволяет создавать динамические языки, она также позволяет добавлять динамические элементы в уже сеществующие языки: C# 4.0 уже использует DLR - смотрите в сторону IDynamicObject.&amp;nbsp; Если я правильно понял документ DLR Overview, то DLR 1.0 будет частью Common Language Runtime (CLR), выход которой уже не за горами.&lt;br&gt;&lt;br&gt;&lt;a href="http://blog.e0ne.info/post/Dynamic-Language-Runtime-Dynamic-Languages-in-dot-NET.aspx"&gt;Читать дальше.&lt;/a&gt;&lt;br&gt;&lt;/span&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=8001" width="1" height="1"&gt;</description></item><item><title>Делаем Build правильно</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/03/20/7954.aspx</link><pubDate>Fri, 20 Mar 2009 12:23:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:7954</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>3</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/7954.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=7954</wfw:commentRss><description>&lt;p&gt;
Осталось реализовать ещё несколько методов... Сейчас допишу последнюю
строчку... Проект пока что не компилируется... Ура! Вот эта заветная
строчка в окне Output Visual Studio:
&lt;/p&gt;
&lt;blockquote style="border-style:none;margin:0px 0px 0px 40px;padding:0px;"&gt;
	========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
&lt;/blockquote&gt;
&lt;blockquote style="border-style:none;margin:0px 0px 0px 40px;padding:0px;"&gt;
	&amp;nbsp;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;Теперь предстоит запустить проект. Но все не так просто. Часто для
проектов, которые больше чем знаменитый "Неllo World!" и который пишет
команда из нескольких человек, необходимы какие-то условия для запуска:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;скопировать конфигурационный файл;&lt;/li&gt;&lt;li&gt;запустить веб-службу;&lt;/li&gt;&lt;li&gt;отправить письмо о успешном билде;&lt;/li&gt;&lt;li&gt;и т.д. и т.п.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;Как правило, на первых порах это все делается вручную, но по мере
роста проекта таки задач становится все больше, приходят новые люди и
кто-то что-то обязательно забудет и потеряет n-е количество времени,
которого всегда и так не хватает, для запуска проекта. После нескольких
таких случаев, эти вещи начинают документировать (wiki проекта,
спецификация, текстовый файл в репозитарии рядом с исходниками), иногда
появляется инсталлятор, который делает вместо пользователя, но никак не
помогает в процессе разработки.
&lt;/p&gt;
Но тут к нам приходит на помощь всеми (не)любимая компания Microsoft
со своей утилитой MS Build, которая достаточно хорошо интегрирована в
Visual Studio.&lt;br&gt;&lt;br&gt;&lt;a href="http://blog.e0ne.info/post/Make-Build-Correct.aspx"&gt;Читать дальше.&lt;/a&gt;&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=7954" width="1" height="1"&gt;</description></item><item><title>Первый взгляд на Microsoft Sync Framework</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/03/19/7942.aspx</link><pubDate>Thu, 19 Mar 2009 12:15:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:7942</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>0</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/7942.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=7942</wfw:commentRss><description>&lt;p&gt;
Пока все делятся впечатлениями от новинох, представленными на &lt;a href="http://2009.visitmix.com/" target="_blank"&gt;MIX09&lt;/a&gt;, я решил написать о &lt;a href="http://code.msdn.microsoft.com/sync/" target="_blank"&gt;Microsoft Sync Framework&lt;/a&gt;. Исходя из того, что сказано на их сайте, можно синхроизировать всё.
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;span&gt;Microsoft
	Sync Framework – a comprehensive synchronization platform enabling
	collaboration and offline for applications, services and devices with
	support for any data type, any data store, any transfer protocol, and
	network topology.&lt;/span&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;

Для чего это может пригодиться?&lt;br&gt;&lt;br&gt;&lt;a href="http://blog.e0ne.info/post/First-Look-To-The-Microsoft-Sync-Framework.aspx"&gt;Читать дальше.&lt;/a&gt;&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=7942" width="1" height="1"&gt;</description></item><item><title>Подключаем базу от SQL Server Express к SQL Server Developer Edition</title><link>http://dev.net.ua/blogs/e0neuser/archive/2009/02/13/7757.aspx</link><pubDate>Fri, 13 Feb 2009 10:53:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:7757</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>2</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/7757.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=7757</wfw:commentRss><description>&lt;p&gt;
SQL Server Express хоть и бесплатен, но обладает некоторыми
недостатками. Мне кажется для разработчика один из главных - это то,
что он не соответствеут боевым условиям. Ведь мало кто использует
Express версию в production. Поэтому разработчики часто ставят SQL
Server Developer Edition (опустим вопрос о лицензировании). Вот только
тут появляются новые проблемы: скачал новый starter kit, а он в
качестве СУБД использует SQL Server Expres. Не ставить же его из-за
этого? Хотя можно и поставить...&amp;nbsp; Но я для себя выбрал другой путь:
подключить эту базу к полноценному MS SQL серверу.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;Что мы имеем:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Файлы базы данных: &lt;br&gt;
	Localization.mdf и Localization_log.ldf;&lt;/li&gt;&lt;li&gt;Приложение, которое использует эту базу данных, подключаемую таким обрахом:&lt;br&gt;
	&lt;em&gt;connectionString="server=(local)\SQLExpress;AttachDbFileName=|DataDirectory|Localization.mdf;Integrated
Security=true;User Instance=true".&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;
Исправляем этот недостаток.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Шаг 1.&amp;nbsp; &lt;/strong&gt;Подключаем базу к SQL Server Developer Edition (в примере я использую 2005-ю версию, но всё это работект и на SQL Server 2008). &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.e0ne.info/post/SQL-Server-Express-Db-to-SQl-Server-Developer-Edition.aspx"&gt;Читать дальше.&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=7757" width="1" height="1"&gt;</description></item><item><title>Unit тесты и наследование</title><link>http://dev.net.ua/blogs/e0neuser/archive/2008/12/23/7380.aspx</link><pubDate>Tue, 23 Dec 2008 13:29:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:7380</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>0</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/7380.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=7380</wfw:commentRss><description>&lt;span class="Apple-style-span" style="border-collapse:separate;font-family:'Lucida Sans Unicode';font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;"&gt;&lt;p style="margin:0px;padding:0px 0px 1.2em;font-size:inherit;"&gt;При разработке unit тестов в Visual Studio часто хочется создать какой-то базовый клас для тестирования базовой лоники. Например у нас есть такой класс:&lt;/p&gt;&lt;p style="margin:0px;padding:0px 0px 1.2em;font-size:inherit;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0px;padding:0px 0px 1.2em;line-height:normal;font-size:inherit;"&gt;&lt;span style="margin:0px;padding:0px;font-size:10pt;font-family:'Courier New';"&gt;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;font-family:Verdana;font-size:11px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;[&lt;span style="margin:0px;padding:0px;"&gt;TestClass&lt;/span&gt;]&lt;br style="margin:0px;padding:0px;"&gt;&lt;span style="margin:0px;padding:0px;color:blue;"&gt;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;font-family:Verdana;font-size:11px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;public virtual&lt;/span&gt;&amp;nbsp;&lt;span style="margin:0px;padding:0px;color:blue;"&gt;class&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin:0px;padding:0px;"&gt;PersonTestBase&lt;br style="margin:0px;padding:0px;"&gt;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;"&gt;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;font-family:Verdana;font-size:11px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;{&lt;br style="margin:0px;padding:0px;"&gt;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;font-family:Verdana;font-size:11px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;[&lt;span style="margin:0px;padding:0px;"&gt;TestMethod&lt;/span&gt;]&lt;br style="margin:0px;padding:0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;font-family:'Courier New';font-size:13px;"&gt;&lt;span style="margin:0px;padding:0px;color:blue;"&gt;public&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin:0px;padding:0px;color:blue;"&gt;void&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin:0px;padding:0px;"&gt;GetNameTest&lt;/span&gt;()&lt;br style="margin:0px;padding:0px;"&gt;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;font-family:Verdana;font-size:11px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0px;padding:0px 0px 1.2em;line-height:normal;font-size:inherit;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;font-family:'Courier New';font-size:13px;"&gt;//...&lt;br style="margin:0px;padding:0px;"&gt;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;font-family:Verdana;font-size:11px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;font-family:'Courier New';font-size:13px;"&gt;}&lt;br style="margin:0px;padding:0px;"&gt;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;line-height:14px;"&gt;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;font-family:Verdana;font-size:11px;line-height:normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0px;padding:0px 0px 1.2em;line-height:normal;font-size:inherit;"&gt;&amp;nbsp;и его класс наследник:&lt;br style="margin:0px;padding:0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;font-family:'Courier New';font-size:13px;"&gt;[&lt;span style="margin:0px;padding:0px;"&gt;TestClass&lt;/span&gt;]&lt;br style="margin:0px;padding:0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="margin:0px;padding:0px;color:blue;"&gt;public&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin:0px;padding:0px;color:blue;"&gt;class&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin:0px;padding:0px;"&gt;CustomerTest&lt;/span&gt;:&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin:0px;padding:0px;"&gt;PersonTestBase&lt;br style="margin:0px;padding:0px;"&gt;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br style="margin:0px;padding:0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&lt;span style="margin:0px;padding:0px;"&gt;TestMethod&lt;/span&gt;]&lt;br style="margin:0px;padding:0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="margin:0px;padding:0px;color:blue;"&gt;public&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin:0px;padding:0px;color:blue;"&gt;override&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin:0px;padding:0px;color:blue;"&gt;void&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin:0px;padding:0px;"&gt;GetNameTest&lt;/span&gt;()&lt;br style="margin:0px;padding:0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br style="margin:0px;padding:0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="margin:0px;padding:0px;color:blue;"&gt;base&lt;/span&gt;.&lt;span style="margin:0px;padding:0px;"&gt;GetNameTest&lt;/span&gt;();&lt;br style="margin:0px;padding:0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br style="margin:0px;padding:0px;"&gt;&lt;span class="Apple-style-span" style="margin:0px;padding:0px;line-height:14px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0px;padding:0px 0px 1.2em;line-height:normal;font-size:inherit;"&gt;&lt;a href="http://blog.e0ne.info/post/Unit-tests-and-inheritance.aspx"&gt;&amp;nbsp;Читать далее...&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;/span&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=7380" width="1" height="1"&gt;</description></item><item><title>IronPython и ASP.NET</title><link>http://dev.net.ua/blogs/e0neuser/archive/2008/10/30/7106.aspx</link><pubDate>Thu, 30 Oct 2008 11:05:00 GMT</pubDate><guid isPermaLink="false">434e5f47-9beb-46b7-aee2-adf5f643f7c6:7106</guid><dc:creator>Ivan Kolodyazhny</dc:creator><slash:comments>1</slash:comments><comments>http://dev.net.ua/blogs/e0neuser/comments/7106.aspx</comments><wfw:commentRss>http://dev.net.ua/blogs/e0neuser/commentrss.aspx?PostID=7106</wfw:commentRss><description>&lt;p&gt;
В предывущем &lt;a href="http://blog.e0ne.info/post/Hello-World-with-IronPython.aspx" target="_blank"&gt;посте&lt;/a&gt; я рассказал как подружить Visual Studio и IronPython. Сегодня мы напишем первое приложение на ASP.NET на языке IronPython.
&lt;/p&gt;

Для начала необходимо скачать &lt;span class="CodePlexPageHeader"&gt;&lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=17613" target="_blank"&gt;ASP.NET Dynamic Language Support&lt;/a&gt;, к&lt;/span&gt;&lt;span class="CodePlexPageHeader"&gt;оторый включает в себя документацию и два примера: ASP.NET MVC IronPython Sample и ASP.NET Webforms &lt;/span&gt;&lt;span class="CodePlexPageHeader"&gt;IronPython Sample. &lt;/span&gt;&lt;span class="CodePlexPageHeader"&gt;Webforms sample- это обычный web site проект с такими файлами:&lt;/span&gt;

&lt;p&gt;
&amp;nbsp;
&lt;img src="http://blog.e0ne.info/image.axd?picture=webforms.JPG" alt=""&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;К сожалению, в текущей версии не поддердивается проект Web Application.&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
C ASP.NET MVC Sample всё на много интереснее. Т.к. Python - это
динамичский язык и не поддерживает атрибутов, то код контроллеров
приходится писать на C#. С model и view всё значитально проще. Можно
использовать IronPython, только во view нужно указать
Language="IronPython". В остальном создание приложение ничем не
отличается от такового на C#. &lt;/p&gt;
&lt;p&gt;
Ну и напоследок хочу сказать, что на прошлой неделе вышел &lt;a href="http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=17404" target="_blank"&gt;IronPython &lt;/a&gt;&lt;span class="CodePlexPageHeader"&gt;&lt;a href="http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=17404" target="_blank"&gt;2.0 Release Candidate 1&lt;/a&gt;.&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Продолжение следует. 
&lt;/p&gt;&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=7106" width="1" height="1"&gt;</description></item></channel></rss>