К основному контенту

Сообщения

Visual Studio 2012 Extension - вертикальные вкладки

Не так давно перебрался с 2010 Visual Studio (далее VS) на 2012. Дольше всего от перехода на новую версию меня останавливало отсутствие вертикальных вкладок для открытых файлов. Поработав с вертикальными вкладками в 2010 студии я уже не мог продолжать работать без них. Настолько с ними удобнее. И поэтому решил поделиться своим знанием. Вдруг кто-то еще не попробовал их? Чтобы установить вертикальные вкладки нужно скачать Extension(расширение для VS) по ссылке  Productivity Power Tools . Установив расширение, нужно в VS перейти в Tools/Options/Productivity Power Tools и выбрать Place tabs on the Left. Результат применения этого расширения: Цвета вкладок подсвечены в зависимости от проекта.

Работа для Web - программиста.

Сегодня я хочу поговорить о работе или скорее о тех, кто эту работу нам предоставляет. Так сказать об идеальной работе для программиста, а может и не только программиста. Бывает, что спрашиваешь себя: "Нравится ли тебе место в котором ты работаешь, твоя должность, круг задач, условия труда, отношения в коллективе? Этого ли ты хотел или нужно идти дальше?" И особенно часто эти мысли начинают посещать тебя, если на работе все последние действия руководства вызывают у тебя удивление, недоумение, но никак не способствуют повышению мотивации и желания работать. И ты сидишь, думаешь и взвешиваешь: да здесь меня все устраивает, а здесь я бы хотел лучших условий. Вот и я задумался и решил оформить все свои мысли на бумаге, чтобы, прежде всего для себя самого, определить какие условия работы были бы для меня близки к идеальным. С высоты своего опыта (а я успел поработать в разных компаниях крупных и не очень) могу сказать совершенно точно, что сейчас хотел бы выбрать компанию, к...

MVC. Как передавать в Controller коллекцию объектов.

Когда мы передаем в Controller один объект, то все просто и понятно. А что если нам нужно принимать коллекцию объектов? Для примера возьмем следующую модель сотрудников: public class Employee() { public string FirstName {get;set;} public string SecondName {get;set;} } На сервере нам нужно получить коллекцию пользователей public ActionResult ActionName(List<Employee> employees) { ... } Для передачи коллекции в контроллер нужно сформировать такую разметку (сотрудников у нас будет n+1): <form method="post" action="/ControllerName/ActionName"> <input type="text" name="employees[0].FirstName" value="" /> <input type="text" name="employees[0].SecondName" value="" /> <input type="text" name="employees[1].FirstName" value="" /> <input type="text" name="employees[1].SecondName" value="" /> ... <...

Чем отличаются RenderPartial и Partial, RenderAction и Action

Чем отличаются RenderPartial и Partial, RenderAction и Action? На этот вопрос попытаюсь ответить так: если мы используем приставку Render, то результаты выполнения сразу встраиваются в выходной поток. С приставкой Render - это void метод, поэтому в коде мы должны закрывать строку точкой с запятой и не можем использовать @ перед вызовом. Правильный вызов RenderPartial(RenderAction  аналогично): @{      Html.RenderPartial("View") ; } Без приставки Render Html.Partial (как и Html.Action) - возвращает html разметку. Разметка хранится в буфере, а потом также встраивается в выходной поток. Поэтому первый способ немного эффективнее. Правильный синтаксис (без точки с запятой): @Html.Partial("View")

C# GET. Пишем Generic метод.

Я уже писал о том, как отправлять запросы на сторонний сервер с помощью POST . Сегодня напишу как сформировать GET запрос. Зачастую я использую GET запрос  для получения ответа в виде JSON и сразу десериализую JSON строку в объект. Поэтому метод у меня будет универсальный. Для универсальности будем использовать Generics. Итак, смотрим: /// <summary> /// Generic GET Метод /// </summary> /// <param name="url">Адрес, по которому мы обращаемся с параметрами для GET запроса</param> //Здесь T - это объект, в который мы будем десериализовать JSON ответ public static T GetMethod<T>(string url) {    object value = null;    var reqGet = WebRequest.Create(url);    var resp = reqGet.GetResponse();    var stream = resp.GetResponseStream();    if (stream != null)    {       //читаем поток в строку       StreamReader sr = new StreamReader(stream);    ...

Как определить с помощью jquery (javascript), что к вам на сайт зашел пользователь с iPhone.

Наша задача - перенаправлять пользователя, который зашел на сайт с iPhone на приложение в AppStore. Для определения платформы будем использовать свойство userAgent, которое поддерживается всеми основными браузерами. //Если userAgent содержит слово iPhone, то перенаправляем в AppStore var isiPhone = navigator.userAgent.toLowerCase().indexOf("iphone"); if (isiPhone > -1) { if (confirm("Перейти к приложению для iPhone?")) { window.location = "http://itunes.apple.com/ru/app/ourapp"; } } Если мы не хотим быть назойливыми и не хотим показывать сообщение каждый раз, когда пользователь заходит на сайт, то можно хранить информацию о просмотре сообщения в cookie пользователя. Для записи и чтения cookie я использую удобный плагин jquery.cookie.js. С плагином код будет выглядеть так: var cookieName = "PhonePopUp"; var appstore = $.cookie(cookieName); //Если userAgent содержит слово iPhone и нет coookie PhonePopUp, то перенаправл...

Мониторинг нагрузки на сайт под управлением IIS средствами Windows Server. Показатели посещаемости.

Как мониторить нагрузку на сайт? Если мы хотим добиться бесперебойной работы сайта, то мы должны быть постоянно в курсе, что происходит с сайтом в данный момент времени. Чтобы в случае возникновения проблем быстро среагировать на них. В компании, где я сейчас работаю, в кабинете программистов висит ЖК телевизор-монитор, подключенный к компьютеру. На мониторе отображаются графики нагрузки на сервера, список  всех работающих сайтов со статусом доступности, а также онлайн статистика посещаемости из Google Analytics (в режиме реального времени отображается количество текущих пользователей на основном сайте в разрезе географии). Итак, какие показатели Веб-сервера мы считаем полезными для отображения на мониторе. Их четыре: % загрузки процессора, % использования выделенной памяти, всего запросов методов в секунду (Веб-служба), запросов в секунду (ASP.NET Apps). С первыми двумя все понятно. Счетчик В сего запросов методов в секунду (Веб-служба) - это  частота запросов HTTP,...