четверг, 29 мая 2014 г.

Как отключить автозагрузку DevExpress CodeRush при старте Visual Studio

Ситуация 
Visual Studio сильно тормозит при загрузке из-за CodeRush.

Решение
Помогла статья https://www.devexpress.com/Support/Center/Question/Details/Q390681

Если в двух словах и по русски
Заходите в настройки CodeRush
Выставляете в дропдауне снизу уровень "Эксперт"

В левой панели выбираете Core/Startup  (опция Startup появляется только при выставлении уровня "Эксперт")
И ставите галочку  "Load manually" (Загружать вручную)

Тогда CodeRush не будет загружаться автоматически при старте студии

вторник, 27 мая 2014 г.

Visual Studio 2012 переход ASP.NET MVC проекта на Razor 3

Как в студии

по простому: установите пакет Microsoft.AspNet.Mvc

и замените 2 на 3 в вебконфиге там где встречается слово WebPages

ссылка по теме: http://stackoverflow.com/questions/19102831/how-to-install-asp-net-mvc-5-in-visual-studio-2012

среда, 21 мая 2014 г.

Инструкции по обновлению, вставке или удалению из хранилища затронули непредвиденное число строк ({0})

Окружение

Visual Studio 2012
EF 5
MS SQL Server 2008

При добавлении записи в таблицу возникает ошибка

Инструкции по обновлению, вставке или удалению из хранилища затронули непредвиденное число строк ({0}). Сущности могли быть изменены или удалены с момента их загрузки. Обновите записи диспетчера ObjectStateManager

Как искал

В русскоязычном сообществе почти ничего не нашел

нашел занятный сайт - переводчик ошибок
http://finderr.net/clr/ru/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D0%B8-%D0%BF%D0%BE-%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8E-%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B5-%D0%B8%D0%BB%D0%B8-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8E-%D0%B8%D0%B7-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B0-%D0%B7%D0%B0%D1%82%D1%80%D0%BE%D0%BD%D1%83%D0%BB%D0%B8-%D0%BD%D0%B5%D0%BF%D1%80%D0%B5%D0%B4%D0%B2%D0%B8%D0%B4%D0%B5-/17429932

Далее искал уже по ошибке

Store update, insert, or delete statement affected an unexpected number of rows ({0}). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.

Свел возможные варианты решения

1. Вы не указываете значение первичного ключа при записи.
Проверьте. если дейстительно первичный ключ нулл - задайте его явно (часто ребята забывают возвращать его из формы, или при database сценарии указывают это поле как пропускаемое)

если у вас этот вариант - смотрите ссылки
http://rpelepei.blogspot.com/2010/05/0.html
или
http://stackoverflow.com/questions/1836173/entity-framework-store-update-insert-or-delete-statement-affected-an-unexpec

2. Ошибки многопользовательской работы
http://stackoverflow.com/questions/1836173/entity-framework-store-update-insert-or-delete-statement-affected-an-unexpec

3. Побочные эффекты триггеров

http://stackoverflow.com/questions/6819813/solution-for-store-update-insert-or-delete-statement-affected-an-unexpected-n

http://stackoverflow.com/questions/5820992/error-when-inserting-into-table-having-instead-of-trigger-from-entity-data-frame

http://www.britishdeveloper.co.uk/2010/06/entity-framework-optimisticconcurrencye.html

У меня был третий вариант. опишу поподробнее:
Сразу оговорюсь, что игра с SET NOCOUNT ON/OFF мне не помогла.
Также не помог фиктивный  селект в конце триггера.

Таблица заказов ORDER
на ней висит триггер на Insert.
Триггер в свою очередь вызывал хранимую процедуру (синхронизация с таблицей пользователей) в которой делалась выборка из заказа (ORDER) которая не возвращала записей.
Оказалось этот селект и мешал Entity Framework'у нормально работать.

Что сделал: я переделал логику так чтобы не было пустых селектов из исходной таблицы



среда, 14 мая 2014 г.

Outlook: Сбой при регистрации библиотеки макрокоманд VB

Окружение

Windows 8.1,
установил Outlook2013

Проблема

Outlook при запуске выдает сообщение:

Сбой при регистрации библиотеки макрокоманд VB. Установите ее заново или выполните команду Regsvr32.exe Vbscript.dll для регистрации

Что НЕ помогло

Несколько раз сносил/ставил/восстанавливал Outlook, менял версии 64 на 32-разрядные.
Все без толку.

Суть проблемы и Решение

Оказалось, проблема в том, что некоторые программы, в том числе Outlook не могут работать, когда папка профиля пользовтаеля названа по русски (если быть точнее - с использованием символов Unicode).

Соответственно, Windows называет так папку, если вы указали русское имя пользователя
В проводнике Windows Показывает эту папку как
C:\Пользователи\Ваня 

Но на самом деле папка называется так
C:\Users\Ваня

(имя "Ваня" взял для примера, у вас может быть "Олег" или "Маша")

Решение: сделать так, чтобы папка профиля пользователя была названа с использванием только английских букв

Есть несколько путей решения

1. Полностью переустановить систему, и назвать нового пользователя английским именем.

2. Сменить имя папки профиля пользователя на английское

Пример для Windows 7 с использованием загрузочного диска
http://sos.mirtesen.ru/blog/43556428021/Izmenenie-papki-polzovatelya-v-Windows-7

Пример для Windows 8 с использованием другого пользователя с правами администратора
http://www.youtube.com/watch?v=jwl4YJlAx-A


Честно говоря я в спешке полностью переустановил систему, т.к. ноутбук был новый, данных особо не было.

PS: Никогда! Никогда! не называйте пользователя Windows русскими буквами!

Ссылки по теме

Обсуждение Outlook 2013 failed to start in Windows 8.1
http://answers.microsoft.com/en-us/office/forum/office_2013_release-outlook/outlook-2013-failed-to-start-in-windows-81/0c01712d-6f82-4e27-b331-61491730b215

Заметка в базе знаний Microsoft
Errors when you start Outlook, and your Windows user account contains Unicode characters
http://support.microsoft.com/kb/961100/en-us