вторник, 26 января 2010 г.

Идея: .NET IL box/unbox counter

Утилита для выявления в .NET коде потенциальных проблем с упаковкой и распаковкой значимых типов.
На вход утилита должна принимать .NET библиотеку или исполняемый файл. Декомпилировать его в IL код, и выявлять и подсчитывать количество циклов с вложенными упаковками/распаковками.

четверг, 14 января 2010 г.

jQuery v1.4

Сам код библиотеки тут, что нового в API читать здесь, и ждемс материальчики по новым фичам на сайте The 14 Days of jQuery

воскресенье, 13 сентября 2009 г.

С Днем Программиста!

Желаю всем побольше интересных задач, идей, красивого и качественного кода, ненадоедающей работы и множества возможностей реализовать себя!
Успехов ;-)

четверг, 10 сентября 2009 г.

ASP.NET MVC: jQuery Grid Plugin

Набросал небольшую статью.
Показал как прикрутить и отобразить данные с помощью плагина jqGrid, в дальнейшем планирую рассмотреть сценарии CRUD и различные типы входящих данных.

воскресенье, 30 августа 2009 г.

ASP.NET MVC: ActionLink with Image

Занадобилась мне ссылка с картинкой вместо текста, те ActionLink с картинкой вместо текста.


Попытки передать вместо текста ссылки готовый тег '<img src='Icons/edit.png'/>' ни к чему хорошему не привели, потому как оно выводится через метод HttpUtility.HtmlEncode, который заменяет в тексте знаки '<' '>' на '&lt;' и '&gt;' соответственно.
Сделал с помощью Extension methods (методы-расширения) для класса HtmlHelper.

    public static class Extensions

    {

        public static string ActionLinkImage(this HtmlHelper htmlHelper, string altImageText, string imagePath, string actionName)

        {

            return ActionLinkImage(htmlHelper, altImageText, imagePath, actionName, new RouteValueDictionary(), new RouteValueDictionary());

        }

 

        public static string ActionLinkImage(this HtmlHelper htmlHelper, string altImageText, string imagePath, string actionName, object routeValues)

        {

            return ActionLinkImage(htmlHelper, altImageText, imagePath, actionName, new RouteValueDictionary(routeValues), new RouteValueDictionary());

        }

 

        public static string ActionLinkImage(this HtmlHelper htmlHelper, string altImageText, string imagePath, string actionName, object routeValues, object htmlAttributes)

        {

            return ActionLinkImage(htmlHelper, altImageText, imagePath, actionName, new RouteValueDictionary(routeValues), new RouteValueDictionary(htmlAttributes));

        }

 

        public static string ActionLinkImage(this HtmlHelper htmlHelper, string altImageText, string imagePath, string actionName, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes)

        {

            const string linkTextReplacement = "F14E9A0EB8C4";

            string actionLink = System.Web.Mvc.Html.LinkExtensions.ActionLink(htmlHelper, linkTextReplacement, actionName, routeValues,htmlAttributes);

 

            return actionLink.Replace(linkTextReplacement, String.Format(@"<img src='{0}' alt='{1}'/>", imagePath, altImageText));

        }

    }



А применяется оно так:
'<%= Html.ActionLinkImage("Edit", "Icons/edit.png", "Edit", new { id = item.EmployeeId }, new {@class = "ImageLink"})%'>
Результат:
'<A class=ImageLink href="about:/Employee/Edit/100"><IMG alt=Edit src="about:Icons/edit.png">'</A>

суббота, 29 августа 2009 г.

Silverlight: SketchFlow для прототипирования интерфейсов

Очень интересная статья с примером использования SketchFlow для создания прототипов приложения. И перевод на русский Владимира Юнева.