LuaInterface - это лучший, насколько мне известно, LUA wrapper для .Net-а на сегодняшний день. Конечно, нет предела совершенству, но оперировать враппером действительно очень просто, да и возможности завораживают. Кто не читал, очень рекомендую ознакомиться с документацией, доступной на сайте проекта LuaInterface.
Однако, с точки зрения производительности, всё далеко не так радужно. В этом посте я приведу замеры производительности и использования памяти для библиотеки LuaInterface.
понедельник, 25 октября 2010 г.
четверг, 21 октября 2010 г.
SharePoint 2010 Ribbon: как удалять и заменять OOTB кнопки на риббоне
Всё-таки, Ribbon в шарепойнте - штука полезная. К примеру, Content Editor Web Part именно благодаря Ribbon'у выглядит подобно Word'у, и оттого так нравится многим (в том числе и мне). И естественно, что частенько требуется кастомизировать этот самый Ribbon.
Чаще всего задача заключается в добавлении какой-нибудь кнопки для собственного списка. Это делается довольно просто, и описано в MSDN. А вот недавно мы столкнулись с необходимостью удаления трех кнопок из риббона библиотеки документов - "Создать", "Отправить" и "Создать папку". Вместо них планировалось добавить одну собственную кнопку, которая должна была перенаправлять пользователей на страницу, где на основе вводимых данных документ для библиотеки генерировался бы программно.
Однако, стандартный в таких случаях HideCustomAction элемент, несмотря на несколько часов попыток, не помог удалить искомые кнопки из Ribbon'а. В этом посте я расскажу, как нам удалось обойти эту проблему и добиться желаемого.
Чаще всего задача заключается в добавлении какой-нибудь кнопки для собственного списка. Это делается довольно просто, и описано в MSDN. А вот недавно мы столкнулись с необходимостью удаления трех кнопок из риббона библиотеки документов - "Создать", "Отправить" и "Создать папку". Вместо них планировалось добавить одну собственную кнопку, которая должна была перенаправлять пользователей на страницу, где на основе вводимых данных документ для библиотеки генерировался бы программно.
Однако, стандартный в таких случаях HideCustomAction элемент, несмотря на несколько часов попыток, не помог удалить искомые кнопки из Ribbon'а. В этом посте я расскажу, как нам удалось обойти эту проблему и добиться желаемого.
вторник, 19 октября 2010 г.
Microsoft Magic: Локализация стандартного списка Links
Видимо, серия Microsoft Magic скоро станет самой большой серией постов в этом блоге :)
Итак, задача очень распространенная. Есть в шарике стандартный список Links. Если мы хотим создать инстанс этого списка для собственных целей, это делается очень просто, создаем айтем ListInstance, и заполняем его примерно следующим XML-ем:
Ну и дальше, всё это добавляется в фичу и успешно деплоится.
И вот, мне потребовалось контент этого списка локализовать. Ну например, чтобы у америкосов был google.com, а у китайцев - baidu.com. Создаем ресурсный файл, ну и выносим ссылки. Все вроде просто. Но вот тут всплыл вдруг такой эксепшен:
Нерабочий вариант:
Совершенно случайно, обнаружился рабочий вариант. Сравниваем:
No comments :)
P.S. Актуально для полей типа URL в любых списках.
Итак, задача очень распространенная. Есть в шарике стандартный список 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, так что весьма актуально, как мне кажется.
Пришлось искать какой-то бесплатный аналог. Хотелось, чтобы профайлер выполнял свою основную функцию, без наворотов, но чтобы при этом не надо было думать или иным путем выпендриваться...
Дак вот, нужно, чтобы карта спокойно держала 200к объектов, из которых 20к комнат. Неудивительно, что потребовался профайлер. Однако, дома у меня Visual C# Express, и встроенного майкрософтовского профайлера я, посему, лишен. Между прочим, также как владельцы Visual Studio Professional, так что весьма актуально, как мне кажется.
Пришлось искать какой-то бесплатный аналог. Хотелось, чтобы профайлер выполнял свою основную функцию, без наворотов, но чтобы при этом не надо было думать или иным путем выпендриваться...
воскресенье, 10 октября 2010 г.
Видео-доклад с презентацией: FLVScrubber, Flex-Ajax Bridge и SWFObject
Очень часто бывает необходимо выложить видео-доклад в интернете. Однако, доклад чаще всего делают со слайдами, а нередко - даже с онлайн-написанием кода, и если использовать только одну камеру - и для докладчика, и для изображения с проектора, получается, что изображение с проектора видно плохо.
Если же выводить только изображение с проектора, и фоном аудиозапись доклада - опять же, получается неполная картина, поскольку докладчик может шутить, улыбаться, жестикулировать... К примеру, я для себя заметил, что большую часть времени я смотрю именно на докладчика, а не на слайды. Конечно, всё зависит от конкретного доклада, но всё-таки, смотреть на человека бывает весьма интересно.
Итак, идеальный вариант - совмещать на одном видео и изображение докладчика, и изображение с проектора. Чтобы это проделать, используются различные методы.
Если же выводить только изображение с проектора, и фоном аудиозапись доклада - опять же, получается неполная картина, поскольку докладчик может шутить, улыбаться, жестикулировать... К примеру, я для себя заметил, что большую часть времени я смотрю именно на докладчика, а не на слайды. Конечно, всё зависит от конкретного доклада, но всё-таки, смотреть на человека бывает весьма интересно.
Итак, идеальный вариант - совмещать на одном видео и изображение докладчика, и изображение с проектора. Чтобы это проделать, используются различные методы.
Подписаться на:
Сообщения (Atom)