Большинство хелперов в asp.net mvc 3 это методы-расширения класса System.Web.Mvc.HtmlHelper.
Однако не всегда удобно создавать отдельный статический класс для 2-3 хелперов необходимых в одной вьюшке. И совсем неудобно создавать хелперы возвращающие большие блоки html-кода: ни подсветки синтаксиса, ни интеллисенса, ни прочих плюшек.
Для решения этих проблем в Razor есть два замечательных блока. Они позволяют создавать хелперы непосредственно в .cshtml-файлах.
А вообще аватар — это картинка, которая отображается рядом с Вашим ником, когда Вы пишете комментарии. А ещё её видно в Вашем Хабрацентре. Она помогает другим пользователям выделить Вас из серой массы тех, кто пока не закачал аватар себе в профиль.
Возникала ли у тебя, %username%, мысль: «а не поставить ли на аватар немного измененного хабрачеловека?». Что приходят в голову первыми? Поднять не левую руку, а правую? Показать fuck? Поднять обе руки?
Я решил провести небольшое исследование и выяснить на что способно воображение хабровчан,
посмотреть на хабрачеловеков.
Оказалось, что с воображением на хабре просто замечательно! Всего мною был обнаружен 101 хабрачеловек. Многие из них просто великолепны: )
Уже почти год пользую одну замечательную опенсорсную утилиту для отладки WPF-приложений. Snoop (не самое информативное название для программы) позволяет посмотреть VisualTree WPF приложения.
Вообще возможностей у тулзы немного и рассказ будет коротким, но она просто незаменима при отладке. Позволяет не только понять где и какой Margin/Padding пагубно влияет на положение элемента, но и поможет разобраться с логикой построения элементов управления в wpf.
Есть много способов вычислить значение выражения мне больше всего нравится метод с двумя стеками.
Нравится за его элегантность и простоту реализации.
Суть метода 2х стеков (наверняка у него есть красивое научное название.) заключается в том, что любое сложно выражение, в конечном счете, сводится к последовательности простых операций. В нашем случае это будет бинарная операция над операндами A и В.
Мы будем идти слева на право, добавляя операнды в один стек, а операции в другой. При каждом добавлении новой операции мы будем пытаться вытолкнуть из стека старые, руководствуясь приоритетами операций.