<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>ASP.NET</title><link>http://relib.com/blogs/bazile/category/23.aspx</link><description>ASP.NET</description><managingEditor>Василий Петрухин</managingEditor><dc:language>ru-RU</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Василий Петрухин</dc:creator><title>Полезная функция - RegisterExpandoAttribute</title><link>http://relib.com/blogs/bazile/archive/2007/10/24/register_expando_attribute.aspx</link><pubDate>Wed, 24 Oct 2007 16:32:00 GMT</pubDate><guid>http://relib.com/blogs/bazile/archive/2007/10/24/register_expando_attribute.aspx</guid><wfw:comment>http://relib.com/blogs/bazile/comments/11047.aspx</wfw:comment><comments>http://relib.com/blogs/bazile/archive/2007/10/24/register_expando_attribute.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://relib.com/blogs/bazile/comments/commentRss/11047.aspx</wfw:commentRss><trackback:ping>http://relib.com/blogs/bazile/services/trackbacks/11047.aspx</trackback:ping><description>&lt;A href="http://blog.madskristensen.dk/post/The-expando-attribute.aspx"&gt;http://blog.madskristensen.dk/post/The-expando-attribute.aspx&lt;/A&gt;&lt;img src ="http://relib.com/blogs/bazile/aggbug/11047.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Василий Петрухин</dc:creator><title>Аналог Community Server от Microsoft</title><link>http://relib.com/blogs/bazile/archive/2007/04/02/microsoft_community_almost_ready.aspx</link><pubDate>Mon, 02 Apr 2007 14:48:00 GMT</pubDate><guid>http://relib.com/blogs/bazile/archive/2007/04/02/microsoft_community_almost_ready.aspx</guid><wfw:comment>http://relib.com/blogs/bazile/comments/10876.aspx</wfw:comment><comments>http://relib.com/blogs/bazile/archive/2007/04/02/microsoft_community_almost_ready.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://relib.com/blogs/bazile/comments/commentRss/10876.aspx</wfw:commentRss><trackback:ping>http://relib.com/blogs/bazile/services/trackbacks/10876.aspx</trackback:ping><description>Microsoft &lt;A href="http://blogs.msdn.com/dseven/archive/2007/03/29/codename-athens-rc-almost-baked.aspx"&gt;готовит&lt;/A&gt; аналог &lt;A href="http://communityserver.org/"&gt;Community Server&lt;/A&gt; под названием Microsoft.community для использования на своих сайтах. Будет интересно взглянуть на результат.&lt;img src ="http://relib.com/blogs/bazile/aggbug/10876.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Василий Петрухин</dc:creator><title>Best Practice Analyzer для ASP.NET</title><link>http://relib.com/blogs/bazile/archive/2007/02/08/best_practice_analyzer_for_aspnet.aspx</link><pubDate>Thu, 08 Feb 2007 14:00:00 GMT</pubDate><guid>http://relib.com/blogs/bazile/archive/2007/02/08/best_practice_analyzer_for_aspnet.aspx</guid><wfw:comment>http://relib.com/blogs/bazile/comments/10544.aspx</wfw:comment><comments>http://relib.com/blogs/bazile/archive/2007/02/08/best_practice_analyzer_for_aspnet.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://relib.com/blogs/bazile/comments/commentRss/10544.aspx</wfw:commentRss><trackback:ping>http://relib.com/blogs/bazile/services/trackbacks/10544.aspx</trackback:ping><description>&lt;P&gt;Случайно нашел интересный проект на сайте CodePlex - &lt;A href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=BPAEngine"&gt;Microsoft Best Practices Analyzer&lt;/A&gt;. Судя по интерфейсу это единый движок для различных best practices анализаторов. Данный проект идет только с плагином для анализа ASP.NET проектов на предмет соответствия рекомендуемым настройкам безопасности и производительности. Для анализа указывается путь к файлу machine.config, к корневому файлу web.config и к файлу web.config конкретного приложения. Непонятно только анализирует ли утилита вышерасположенные web.config, если приложение наследует часть настроек из родительского(-их) пприложения.&lt;/P&gt;&lt;img src ="http://relib.com/blogs/bazile/aggbug/10544.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Василий Петрухин</dc:creator><title>Бесплатный ISAPI фильтр перезаписи url для IIS 5.x/6</title><link>http://relib.com/blogs/bazile/archive/2007/01/18/iis_url_rewrite_isapi_filter.aspx</link><pubDate>Thu, 18 Jan 2007 16:27:00 GMT</pubDate><guid>http://relib.com/blogs/bazile/archive/2007/01/18/iis_url_rewrite_isapi_filter.aspx</guid><wfw:comment>http://relib.com/blogs/bazile/comments/10349.aspx</wfw:comment><comments>http://relib.com/blogs/bazile/archive/2007/01/18/iis_url_rewrite_isapi_filter.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://relib.com/blogs/bazile/comments/commentRss/10349.aspx</wfw:commentRss><trackback:ping>http://relib.com/blogs/bazile/services/trackbacks/10349.aspx</trackback:ping><description>&lt;P&gt;Теперь и для IIS есть бесплатный ISAPI фильтр перезаписи URL с поддержкой регулярных выражений и нескольких сайтов - &lt;A href="http://cheeso.members.winisp.net/IIRF.aspx"&gt;Ionic's ISAPI Rewrite Filter&lt;/A&gt;. Архив с программой занимает всего 360 Кб. В комплекте идет краткая документация и исходные тексты на C. Установка фильтра производится вручную, но это не должно вызывать затруднений так как подробно описана в документации. На тестовом сервере фильтр заработал без проблем. В ближайшее время постараюсь попробую его на рабочем сервере с хорошей нагрузкой.&lt;/P&gt;&lt;img src ="http://relib.com/blogs/bazile/aggbug/10349.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Василий Петрухин</dc:creator><title>Присвоение свойству различных значений в зависимости от браузера в ASP.NET 2</title><link>http://relib.com/blogs/bazile/archive/2007/01/17/10286.aspx</link><pubDate>Wed, 17 Jan 2007 15:59:00 GMT</pubDate><guid>http://relib.com/blogs/bazile/archive/2007/01/17/10286.aspx</guid><wfw:comment>http://relib.com/blogs/bazile/comments/10286.aspx</wfw:comment><comments>http://relib.com/blogs/bazile/archive/2007/01/17/10286.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://relib.com/blogs/bazile/comments/commentRss/10286.aspx</wfw:commentRss><trackback:ping>http://relib.com/blogs/bazile/services/trackbacks/10286.aspx</trackback:ping><description>&lt;P&gt;Недавно узнал что в ASP.NET можно назначать разные значения свойствам для элементов управления и директив. Например, в директиве @ Page можно написать: &amp;lt;%@ Page MasterPageFile="~/Default.master" ie:MasterPageFile="~/Default_ie.master" %&amp;gt;. Такая запись указывает, что для MSIE будет использоваться отдельный MasterPage и другой для всех остальных. Префикс ie в данном случае называется device identifier и соответствует значению атрибута id из файлов *.browser. Они находятся в папке %systemroot%\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\. При необходимости можно создать свой browser файл и выложить его в папку App_Browsers в корне приложения.&lt;/P&gt;
&lt;P&gt;Подобный синтаксис может использоваться в директивах @ Control и @ Master, а также для свойств элементов управления. Смотрите &lt;A href="http://weblogs.asp.net/scottgu/archive/2004/11/20/267362.aspx"&gt;примеры&lt;/A&gt; в блоге Скота Гатри (Scott Guthrie). Документация этой возможности есть в статье MSDN &lt;A href="http://msdn2.microsoft.com/en-us/library/ms178620(VS.80).aspx"&gt;ASP.NET Device Filtering Overview&lt;/A&gt;.&lt;/P&gt;&lt;img src ="http://relib.com/blogs/bazile/aggbug/10286.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Василий Петрухин</dc:creator><title>Вывод Windows иконок в приложении ASP.NET</title><link>http://relib.com/blogs/bazile/archive/2007/01/12/windows_icons_aspnet_http_handler.aspx</link><pubDate>Fri, 12 Jan 2007 13:55:00 GMT</pubDate><guid>http://relib.com/blogs/bazile/archive/2007/01/12/windows_icons_aspnet_http_handler.aspx</guid><wfw:comment>http://relib.com/blogs/bazile/comments/9433.aspx</wfw:comment><comments>http://relib.com/blogs/bazile/archive/2007/01/12/windows_icons_aspnet_http_handler.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://relib.com/blogs/bazile/comments/commentRss/9433.aspx</wfw:commentRss><trackback:ping>http://relib.com/blogs/bazile/services/trackbacks/9433.aspx</trackback:ping><description>Возможность вывода на своем сайте Windows иконок ассоцированных с конкретным расширением файла может оказаться весьма полезной и Майкл Володарский (Mike Volodarsky) написал HttpHandler для ASP.NET &lt;A href="http://mvolo.com/blogs/serverside/archive/2007/01/11/Display-pretty-file-icons-in-your-ASP.NET-applications-with-IconHandler.aspx"&gt;делающий&lt;/A&gt; именно это. В данный момент обработчик выложен в откомпилированном виде без исходников, но при наличии интереса Майк обещает выложить исходные тексты и описать детали реализации.&lt;img src ="http://relib.com/blogs/bazile/aggbug/9433.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Василий Петрухин</dc:creator><title>Как запустить проект ASP.NET в виде корневого сайта в VS2005 SP1</title><link>http://relib.com/blogs/bazile/archive/2006/12/20/how_to_run_a_root_site_using_vs2005_sp1.aspx</link><pubDate>Wed, 20 Dec 2006 20:16:00 GMT</pubDate><guid>http://relib.com/blogs/bazile/archive/2006/12/20/how_to_run_a_root_site_using_vs2005_sp1.aspx</guid><wfw:comment>http://relib.com/blogs/bazile/comments/7857.aspx</wfw:comment><comments>http://relib.com/blogs/bazile/archive/2006/12/20/how_to_run_a_root_site_using_vs2005_sp1.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://relib.com/blogs/bazile/comments/commentRss/7857.aspx</wfw:commentRss><trackback:ping>http://relib.com/blogs/bazile/services/trackbacks/7857.aspx</trackback:ping><description>&lt;P&gt;Совет от Скота Гутри (Scott Guthrie) - &lt;A href="http://weblogs.asp.net/scottgu/archive/2006/12/19/tip-trick-how-to-run-a-root-site-with-the-local-web-server-using-vs-2005-sp1.aspx"&gt;Tip/Trick: How to Run a Root "/" Site with the Local Web Server using VS 2005 SP1&lt;/A&gt;.&lt;/P&gt;&lt;img src ="http://relib.com/blogs/bazile/aggbug/7857.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Василий Петрухин</dc:creator><title>Использование Trace.Fail может привести к зависанию приложений ASP.NET 2.0 на стороне сервера</title><link>http://relib.com/blogs/bazile/archive/2006/09/21/6413.aspx</link><pubDate>Thu, 21 Sep 2006 11:23:00 GMT</pubDate><guid>http://relib.com/blogs/bazile/archive/2006/09/21/6413.aspx</guid><wfw:comment>http://relib.com/blogs/bazile/comments/6413.aspx</wfw:comment><comments>http://relib.com/blogs/bazile/archive/2006/09/21/6413.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://relib.com/blogs/bazile/comments/commentRss/6413.aspx</wfw:commentRss><trackback:ping>http://relib.com/blogs/bazile/services/trackbacks/6413.aspx</trackback:ping><description>&lt;P&gt;Если ваш код использует функцию Trace.Fail, то это может вызвать зависание рабочего процесса IIS, а значит, и приложения ASP.NET. Причина в появлении диалога на стороне сервера, на который некому реагировать. Чтобы избежать этого следует отказаться от использования Trace.Fail или добавить в web.config следующие настройки:&lt;/P&gt;&lt;PRE class=codeSample&gt;&lt;CODE&gt;&amp;lt;configuration&amp;gt;
   &amp;lt;system.diagnostics&amp;gt;
      &amp;lt;assert assertuienabled="false" logfilename="c:\log.txt"/&amp;gt;
   &amp;lt;/system.diagnostics&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;(via &lt;A href="http://www.hanselman.com/blog/PreventingDialogsOnTheServerSideInASPNETOrTraceFailConsideredHarmful.aspx"&gt;Preventing Dialogs on the Server-Side in ASP.NET or Trace.Fail considered Harmful&lt;/A&gt;)&lt;/P&gt;&lt;img src ="http://relib.com/blogs/bazile/aggbug/6413.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Василий Петрухин</dc:creator><title>Как определить програмным путем в каком режиме (debud или release) откомпилирована сборка</title><link>http://relib.com/blogs/bazile/archive/2006/08/31/6103.aspx</link><pubDate>Thu, 31 Aug 2006 14:05:00 GMT</pubDate><guid>http://relib.com/blogs/bazile/archive/2006/08/31/6103.aspx</guid><wfw:comment>http://relib.com/blogs/bazile/comments/6103.aspx</wfw:comment><comments>http://relib.com/blogs/bazile/archive/2006/08/31/6103.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://relib.com/blogs/bazile/comments/commentRss/6103.aspx</wfw:commentRss><trackback:ping>http://relib.com/blogs/bazile/services/trackbacks/6103.aspx</trackback:ping><description>&lt;P&gt;Вопрос определения режима компиляции програмным путем интересовал меня уже давно и благодаря Скотту Хансельману (Scott Hanselman) ответ найден: &lt;A href="http://www.hanselman.com/blog/HowToProgrammaticallyDetectIfAnAssemblyIsCompiledInDebugOrReleaseMode.aspx"&gt;How to Programmatically Detect if an Assembly is Compiled in Debug or Release mode&lt;/A&gt;. Спасибо Скотт!&lt;/P&gt;
&lt;P&gt;Эту методику можно использовать как в обычном приложении так и в приложении ASP.NET. Замените вызов Assembly.LoadFrom на Assembly.GetExecutingAssembly или Assembly.GetCallingAssembly. Результат работы кода внутри приложения ASP.NET зависит не только от режима компиляции самой сборки, но и параметра debug из файла web.config.&lt;/P&gt;
&lt;P&gt;[обновление от 22 января 2007г] В ASP.NET работу в режиме отладки можно определить с помощью HttpContext.Current.IsDebuggingEnabled. (&lt;A href="http://west-wind.com/weblog/posts/10228.aspx"&gt;источник&lt;/A&gt;)&lt;/P&gt;&lt;img src ="http://relib.com/blogs/bazile/aggbug/6103.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Василий Петрухин</dc:creator><title>Шаблон файла проекта для компиляции с помощью MSBuild</title><link>http://relib.com/blogs/bazile/archive/2006/08/25/msbuild_project_template.aspx</link><pubDate>Fri, 25 Aug 2006 19:33:00 GMT</pubDate><guid>http://relib.com/blogs/bazile/archive/2006/08/25/msbuild_project_template.aspx</guid><wfw:comment>http://relib.com/blogs/bazile/comments/5988.aspx</wfw:comment><comments>http://relib.com/blogs/bazile/archive/2006/08/25/msbuild_project_template.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://relib.com/blogs/bazile/comments/commentRss/5988.aspx</wfw:commentRss><trackback:ping>http://relib.com/blogs/bazile/services/trackbacks/5988.aspx</trackback:ping><description>&lt;p&gt;Вместе с .NET Framework 2.0 поставляется утилита &lt;a href="http://msdn2.microsoft.com/en-us/library/wea2sca5.aspx"&gt;MSBuild&lt;/a&gt; позволяющая компилировать проекты Visual Studio без ее установки, при условии наличия всех исходных файлов, конечно. Это может оказаться полезным для компиляции проекта ASP.NET прямо на рабочем веб-сервере или, при работе&amp;nbsp;группы над большим проектом, ежедневных ночных компиляций. Кроме этого можно создавать свои собственные проекты. Формат несложный и &lt;a href="http://msdn2.microsoft.com/en-us/library/0k6kkbsd.aspx"&gt;полностью описан&lt;/a&gt; в MSDN, но там не хватает готового примера компиляции проекта с режимами debug и release. В результате я решил сделать такой пример самостоятельно и выкладываю его здесь для всеобщего обозрения. Вдруг кому-то еще пригодится.&lt;/p&gt;
&lt;pre class="codeSample"&gt;&lt;code&gt;&amp;lt;Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build"&amp;gt;
    &amp;lt;PropertyGroup&amp;gt;
        &amp;lt;SourcePath&amp;gt;source&amp;lt;/SourcePath&amp;gt;
    &amp;lt;/PropertyGroup&amp;gt;
    &amp;lt;Choose&amp;gt;
        &amp;lt;When Condition="'$(Configuration)'=='DEBUG'"&amp;gt;
            &amp;lt;PropertyGroup&amp;gt;
                &amp;lt;DefineConstants&amp;gt;DEBUG&amp;lt;/DefineConstants&amp;gt;
                &amp;lt;Optimize&amp;gt;false&amp;lt;/Optimize&amp;gt;
                &amp;lt;CheckForOverflowUnderflow&amp;gt;true&amp;lt;/CheckForOverflowUnderflow&amp;gt;
                &amp;lt;EmitDebugInformation&amp;gt;true&amp;lt;/EmitDebugInformation&amp;gt;
            &amp;lt;/PropertyGroup&amp;gt;
        &amp;lt;/When&amp;gt;
        &amp;lt;Otherwise&amp;gt;
            &amp;lt;PropertyGroup&amp;gt;
                &amp;lt;DefineConstants&amp;gt;&amp;lt;/DefineConstants&amp;gt;
                &amp;lt;Optimize&amp;gt;true&amp;lt;/Optimize&amp;gt;
                &amp;lt;CheckForOverflowUnderflow&amp;gt;false&amp;lt;/CheckForOverflowUnderflow&amp;gt;
                &amp;lt;EmitDebugInformation&amp;gt;false&amp;lt;/EmitDebugInformation&amp;gt;
            &amp;lt;/PropertyGroup&amp;gt;
        &amp;lt;/Otherwise&amp;gt;
    &amp;lt;/Choose&amp;gt;
    &amp;lt;Target Name="Resources"&amp;gt;
    &amp;lt;/Target&amp;gt;
    &amp;lt;Target Name="Build" DependsOnTargets="Resources"&amp;gt;
        &amp;lt;Csc
             Sources="@(CSFile)"
             TargetType="library"
             OutputAssembly="$(MSBuildProjectName).dll"
             KeyFile="$(MSBuildProjectName).snk"
             CheckForOverflowUnderflow="$(CheckForOverflowUnderflow)"
             EmitDebugInformation="$(EmitDebugInformation)"
             DefineConstants="$(DefineConstants)"
             Optimize="$(Optimize)"
             NoLogo="true"
        /&amp;gt;
    &amp;lt;/Target&amp;gt;
    &amp;lt;ItemGroup&amp;gt;
        &amp;lt;CSFile Include="$(SourcePath)\AssemblyInfo.cs" /&amp;gt;
        &amp;lt;!-- остальные исходные файлы проекта --&amp;gt;
        ...
    &amp;lt;/ItemGroup&amp;gt;
&amp;lt;/Project&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Предполагается, что в папке с файлом проекта есть дочерняя папка source с исходными&amp;nbsp;файлами. В результате компиляции получается библиотека с именем совпадающим с именем файла проекта. Рядом с файлом проекта должен также находиться файл с ключами для цифровой подписи итоговой сборки.&lt;/p&gt;
&lt;p&gt;Для компиляции проекта в режиме release команда выглядит так:&lt;/p&gt;&lt;pre class="codeSample"&gt;&lt;code&gt;msbuild myProject.proj&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Для компиляции в режиме debug так:&lt;/p&gt;&lt;pre class="codeSample"&gt;&lt;code&gt;msbuild myProject.proj /p:Configuration=Debug&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Для компиляции проекта на VB.NET вместо &lt;a href="http://msdn2.microsoft.com/en-us/library/s5c8athz.aspx"&gt;задачи &amp;lt;Csc&amp;gt;&lt;/a&gt;надо будет использовать &lt;a href="http://msdn2.microsoft.com/en-us/library/sb7a1e29.aspx"&gt;задачу &amp;lt;Vbc&amp;gt;&lt;/a&gt;, у которой вместо параметра CheckForOverflowUnderflow используется параметр RemoveIntegerChecks. Других отличий вроде нет.&lt;/p&gt;&lt;img src ="http://relib.com/blogs/bazile/aggbug/5988.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>