понедельник, 25 октября 2010 г.

Производительность LuaInterface

LuaInterface - это лучший, насколько мне известно, LUA wrapper для .Net-а на сегодняшний день. Конечно, нет предела совершенству, но оперировать враппером действительно очень просто, да и возможности завораживают. Кто не читал, очень рекомендую ознакомиться с документацией, доступной на сайте проекта LuaInterface.

Однако, с точки зрения производительности, всё далеко не так радужно. В этом посте я приведу замеры производительности и использования памяти для библиотеки LuaInterface.

четверг, 21 октября 2010 г.

SharePoint 2010 Ribbon: как удалять и заменять OOTB кнопки на риббоне

Всё-таки, Ribbon в шарепойнте - штука полезная. К примеру, Content Editor Web Part именно благодаря Ribbon'у выглядит подобно Word'у, и оттого так нравится многим (в том числе и мне). И естественно, что частенько требуется кастомизировать этот самый Ribbon.


Чаще всего задача заключается в добавлении какой-нибудь кнопки для собственного списка. Это делается довольно просто, и описано в MSDN. А вот недавно мы столкнулись с необходимостью удаления трех кнопок из риббона библиотеки документов - "Создать", "Отправить" и "Создать папку". Вместо них планировалось добавить одну собственную кнопку, которая должна была перенаправлять пользователей на страницу, где на основе вводимых данных документ для библиотеки генерировался бы программно.

Однако, стандартный в таких случаях HideCustomAction элемент, несмотря на несколько часов попыток, не помог удалить искомые кнопки из Ribbon'а. В этом посте я расскажу, как нам удалось обойти эту проблему и добиться желаемого.

вторник, 19 октября 2010 г.

Microsoft Magic: Локализация стандартного списка Links

Видимо, серия Microsoft Magic скоро станет самой большой серией постов в этом блоге :)

Итак, задача очень распространенная. Есть в шарике стандартный список Links. Если мы хотим создать инстанс этого списка для собственных целей, это делается очень просто, создаем айтем ListInstance, и заполняем его примерно следующим XML-ем:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ListInstance Id=""
                Title="$Resources:core,linksList"
                OnQuickLaunch="FALSE"
                TemplateType="103"
                FeatureId="00bfea71-2062-426c-90bf-714c59600103"
                Url="PersonalLinks"
                Description="">
    <Data>
      <Rows>
        <Row>
          <Field Name="ID">1</Field>
          <Field Name='URL'>http://google.ru, Поиск Google</Field>
        </Row>
        <Row>
          <Field Name="ID">2</Field>
          <Field Name='URL'>http://omlin.blogspot.com, Блог Омлина :)</Field>
        </Row>
      </Rows>
    </Data>
  </ListInstance>
</Elements>

Ну и дальше, всё это добавляется в фичу и успешно деплоится.
И вот, мне потребовалось контент этого списка локализовать. Ну например, чтобы у америкосов был google.com, а у китайцев - baidu.com. Создаем ресурсный файл, ну и выносим ссылки. Все вроде просто. Но вот тут всплыл вдруг такой эксепшен:
Недопустимый URL-адрес: $Resources: TestResources. >> в Microsoft.SharePoint.Administration.SPElementDefinitionCollection.ProvisionListInstances(SPFeaturePropertyCollection props, SPSite site, SPWeb web, Boolean fForce)

Нерабочий вариант:

<Row>
    <Field Name="ID">1</Field>
    <Field Name='URL'>$Resources: TestResources, Links_ItemUrl1</Field>
</Row>

Совершенно случайно, обнаружился рабочий вариант. Сравниваем:

<Row>
    <Field Name="ID">1</Field>
    <Field Name='URL'>$Resources:TestResources, Links_ItemUrl1</Field>
</Row>

No comments :)

P.S. Актуально для полей типа URL в любых списках.

Бесплатный профайлер для .Net

Разрабатываю некий редактор мира для онлайн-игры (не по работе). Ну там, монстры, комнаты, предметы... На WinForms. Ну вот, почему-то так сложилось, что не WPF, и я думаю, правильно сложилось...

Дак вот, нужно, чтобы карта спокойно держала 200к объектов, из которых 20к комнат. Неудивительно, что потребовался профайлер. Однако, дома у меня Visual C# Express, и встроенного майкрософтовского профайлера я, посему, лишен. Между прочим, также как владельцы Visual Studio Professional, так что весьма актуально, как мне кажется.

Пришлось искать какой-то бесплатный аналог. Хотелось, чтобы профайлер выполнял свою основную функцию, без наворотов, но чтобы при этом не надо было думать или иным путем выпендриваться...

воскресенье, 10 октября 2010 г.

Видео-доклад с презентацией: FLVScrubber, Flex-Ajax Bridge и SWFObject

Очень часто бывает необходимо выложить видео-доклад в интернете. Однако, доклад чаще всего делают со слайдами, а нередко - даже с онлайн-написанием кода, и если использовать только одну камеру - и для докладчика, и для изображения с проектора, получается, что изображение с проектора видно плохо.

Если же выводить только изображение с проектора, и фоном аудиозапись доклада - опять же, получается неполная картина, поскольку докладчик может шутить, улыбаться, жестикулировать... К примеру, я для себя заметил, что большую часть времени я смотрю именно на докладчика, а не на слайды. Конечно, всё зависит от конкретного доклада, но всё-таки, смотреть на человека бывает весьма интересно.

Итак, идеальный вариант - совмещать на одном видео и изображение докладчика, и изображение с проектора. Чтобы это проделать, используются различные методы.