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

Сообщения

Блог переехал

Теперь веду блог на проекте Notissimus  http://notissimus.com/blog/
Недавние сообщения

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);       var srToString = sr.ReadToEnd();       //десериализуем JSON строку в объект       return JsonConvert.

Как определить с помощью 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, то перенаправл