пятница, 26 февраля 2010 г.

SharePoint 2010. Ribbon и диалоговые окна

0 коммент.
Хочу поведать о том, как создавать диалоговые окна и кастомные кнопки на ленте.

Приступим..

1. Создаем новый пустой проект SharePoint (New Project -> SharePoint 2010 -> Empty SharePoint Project)

Назовем его RibbonDialog.
Мастер предложит указать URL нашего сайта и выбрать уровень безопасности. Т.к. я планирую обращаться к объектной модели SharePoint, то для уверенности, выберу полный доступ "Deploy as a Farm Solution"


2. Теперь необходимо добавить пустой элемент в созданный проект

Назовем его RibbonDialogElement.
Обратим внимание на то, что в папке Features проекта, автоматически была создана новая фича, в элементы которой и попал наш RibbonDialogElement. Проверить это можно через Feature Designer


3. Создадим кнопку в ленте (Ribbon button)
Для этого, перейдем к редактированию файла Elements.xml и заменим его содержимое на следующий код:


  
  

    
      
        
          

Нажимаем F5. При выборе документа из Shared Documents, в разделе Manage ленты (Location="Ribbon.Documents.Manage) появляется новая кнопка "Show Dialog", при нажатии на которую выпрыгивает alert.

4. Теперь приступим к созданию диалогового окна.
Добавим в проект SharePoint "Layouts" Mapped folder (Правый клик по проекту Add -> SharePoint "Layouts" Mapped folder)
В созданную папку добавим новый элемент Application Page

Дадим странице название DialogContent.aspx
Сейчас определимся с тем, что мы хотим видеть на этой странице.
В качестве примера, выведем имена файлов из библиотеки документов.
Вынесем на страницу новый контрол Label и перейдем к редактированию codebehind нашей страницы
namespace RibbonDialog.Layouts.RibbonDialog
{
    public partial class DialogContent : LayoutsPageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SPSite oSiteCollection = new SPSite("http://win2008r2/sites/test");
                
            SPWeb website = oSiteCollection.AllWebs[0];

            var documentLibrary = (SPDocumentLibrary)website.Lists["DocumentsLibraryName"];

            Label.Text += "
Files:

"; foreach (SPListItem oListItem in documentLibrary.Items) Label.Text += SPEncode.HtmlEncode(oListItem.File.Name) + "
"; } } }

В приведенном листинге, в Label мы выводим имена всех файлов содержащихся в библиотеке "DocumentsLibraryName".

Теперь займемся непосредственно созданием диалогового окна.
Перейдем к редактированию файла Elements.xml и изменим CommandUIHandler следующим образом
< CommandUIHandler Command="ShowRibbonDialogCmd"
  CommandAction="javascript:
          
  function demoCallback(dialogResult, returnValue)
         {
             SP.UI.Notify.addNotification('Operation Successful!');
                
             SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);
         }
              
         var options = 
  {              
            url: '/_layouts/RibbonDialog/DialogContent.aspx',
            tite: 'Ribbon Dialog',                
            width: 800,
            height: 600,
            dialogReturnValueCallback: demoCallback
  };
              
         SP.UI.ModalDialog.showModalDialog(options);" />

Обратим внимание на параметр url объекта option.

Теперь содержимое нашей страницы будет выводиться внутри диалогового окна.

вторник, 23 февраля 2010 г.

ODC в Регионы

2 коммент.
С каждым годом дефицит качественных IT-кадров увеличивается, несмотря на постоянно растущий выпуск среди новообразовавшихся компьютерных факультетов и кафедр технических ВУЗов. Особенно остро этот дефицит ощущается в самых технологически развитых регионах нашей необъятной страны – Москве и Санкт-Петербурге.
По данным четвертой конференции IT-образования в России, дефицит IT-кадров в Москве на сегодняшний день составляет 40 000 специалистов в год. Как следствие, поиск сотрудников в IT-отделы часто растягивается на месяцы и не приводит к желанным результатам, а для удержания текущего IT-персонала приходится затрачивать все больше и больше усилий. Эти усилия не всегда вознаграждаются, и специалисты уходят, унося с собой уникальные знания. Эти проблемы не только не исчезнут в ближайшем будущем, но, напротив, станут гораздо более ощутимыми из-за все более очевидного разрыва между темпами роста российской экономики и возможностями отечественных вузов по подготовке IT-специалистов.

Иногда поиск необходимого сотрудника в Москве растягивается на долгие месяцы, а стоимость IT-аутсорсинга на местном рынке зашкаливает за все разумные бюджетные рамки. Выход здесь один – IT-аутсорсинг в региональные центры разработки (ODC – Offshore Development Center)

Итак, начну с анализа зарплатных показателей в отдельных регионах страны. Для сравнения, среднее значение зарплаты программиста-разработчика, по данным результатов исследований headhunter и superjob.ru на конец 2009 года, в Москве составляет 55 000 рублей, в Санкт-Петербурге – 40 000 рублей, в Архангельске 20 000 рублей.
По результатам портала CMS Magazine:


Рассмотрим сформировавшиеся уровни средних цен на веб-услуги по регионам


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


Свой ODC в регионе позволяет:


  • Быстро расширить IT-отдел
  • Избежать зависимости от отдельных сотрудников
  • Добиться прозрачности договорных отношений с IT-командой
  • Обеспечить сохранность и накопление знаний и опыта работы с IT-системами в компании
  • Создать высокую мотивацию команды на результат
  • Сократить затраты на управление, поддержку и развитие внутренней IT-инфраструктуры
  • Сосредоточиться на принятии решений, а не на поиске, сохранении и мотивации специалистов


Потенциал регионов для Московских компаний


Успешный опыт IT-аутсорсинга убеждает в том, что в ближайшем будущем IT-потенциал российских регионов будет активно привлекаться для решения задач ведущих московских компаний. Умеренный уровень региональных зарплат, наличие профильных вузов, низкая текучесть кадров, готовность людей учиться и профессионально расти – все это делает регионы привлекательными для IT-аутсорсинга.


Преимуществами региональных офисов являются:


  • Высокая квалификация специалистов
  • Низкая текучесть кадров
  • Высокая лояльность работодателям
  • Готовность к долгосрочным проектам

понедельник, 8 февраля 2010 г.

ASP.NET против PHP

0 коммент.

Сайты создаются, в первую очередь, для их владельцев. Ведь им же потом приходится с ними возиться. Но при этом какую-либо информацию о преимуществах того или иного языка программирования неспециалисту очень сложно найти в сети. Выбирая между PHP и ASP.NET среднестатистический пользователь Интернета, будущий владелец сайта, запутается во всех тех терминах, которыми оперируют специалисты. В их споре «кто лучше?», к сожалению, вы будете просто наблюдателем, в лучшем случае. А в худшем – останетесь за бортом, вконец потеряв надежду что-либо понять и доверившись своему приятелю-самоучке.

Сторонников языка программирования PHP гораздо больше, чем ASP.NET. «PHP-шники» взахлеб доказывают преимущества их технологии: скорость, производительность, абсолютная бесплатность (платформа, хостинг), возможность создать любой проект – от мала до велика. Никогда не задумывались, почему они столь рьяно отстаиваютPHP (сайты на PHP, сайты на пхп)? Насколько провозглашаемые ими плюсы являются таковыми на самом деле?

Не стоит долго ломать голову, почему программирование на PHP получило столь широкое распространение. А большая часть армии программистов представлена, прежде всего, «пхп-шниками». Чтобы научиться писать на этом языке, достаточно прочесть "один-единственный учебник" и немного попрактиковаться. В то время, как с ASP.NET все намного труднее. Да, это сложная технология, но овладев данным «набором концепций», вы без проблем, не тратя много времени и усилий сможете добавлять нужные строчки, таблицы, оперативно проводить отладку и т.п. Усидчивость и желание понять окупятся сторицей.

В чем же заключается разница между PHP и ASP.NET? И есть ли какие-то серьезные отличия и преимущества сайта, созданного на PHP, от сайта на ASP.NET? Что получает конечный потребитель?

Для начала разберемся с понятиями. PHP (Personal Home Page Tools ) – открытая и бесплатная технология. PHP переводится как «Инструменты для создания персональных веб-страниц». Стоит знать, что пхп - это скриптовый язык (скрипт – это сценарий, последовательность операций), предназначенный для динамического вывода HTML (язык разметки документов, с его помощью создано большинство веб-страниц). А это для владельца сайта будет означать, что создавать на PHP крупные проекты – достаточно дорогостоящий и трудозатратный процесс. В итоге, получается один плюс (бесплатность) и один минус (сложность, с которой можно столкнуться при создании крупного проекта, особенно, если программист всего один).

ASP.NET – технология, предназначенная для создания веб-сайтов, веб-сервисов и приложений. Разработанная корпорацией Microsoft. Знакомить с этим мировым лидером в области программного обеспечения сейчас уже не приходится никого. Что это означает для будущего владельца сайта? Надежность, безопасность, устойчивость к атакам. В ASP.NET встроена защита от хакерских действий. То есть репутация вашей компании не будет подпорчена непредсказуемыми хакерами. Это большой плюс, особенно для крупных компаний и проектов.

Но это еще не все параметры, по которым можно сравнивать сайты на PHP и сайты на ASP.NET. Существует много споров относительно скорости работы. Большинство специалистов приходит к выводу, что PHP работает значительно быстрее. Обсуждение можно продолжить. Быстродействие будет зависеть от того, в какой связке используетсяASP.NET? Если это MS SQL, то по быстродействию ASP.NET не будет уступать связке РНР + MySQL.

В качестве минуса создания сайта на ASP.NET некоторые отмечают дорогой хостинг, в то время, как для PHP можно найти и бесплатный. Но если хорошо искать, то в сети можно обнаружить доступный, экономичный шаред хостинг (Shared Hosting), от слова share – доля, часть. Его плюс – провайдер не будет отрубать вас за превышение нагрузки, как, например, это часто бывает на PHP-хостинге. Бесплатный сыр только в мышеловке…

Но так ли важен этот пункт, если на кону – имидж компании, ваши будущие и настоящие клиенты и партнеры? Фактор надежности, безопасности и стабильной работы сайта, построенного на ASP.NET, важен для стабильной работы всей компании. Выбор за вами!

вторник, 15 апреля 2008 г.

Binding to DevExpress Grid

1 коммент.
Столкнулся с проблемой биндинга DevExpress'овского грида: В качестве DataSource Grid'a был выставлен BindingDataSource, который в свою очередь, на DataSet. Строка таблицы в датасете  содержала AllowNull поля. Биндинг проходил удачно, все строки необходимой таблицы корректно попадали в грид, перемещение по строкам грида не вызывало проблем.  Но стоило только этому гриду потерять фокус, как выползал Exception: "The value for column XXX in table YYY is DBNull". "Как так!?" Спросил я. "Ведь я не пытаюсь получить доступ к этому полю, тем более при потере фокуса %)" После 4х часов "мучений" решением всему стал ответ группы поддержки DevExpress: "Thank you for the question. We have researched this problem and found out that this behavior is by design. This causes a situation that when the Grid is about to post data, it tries to obtain all values of the underlying object. This is done to provide the ability to rollback changes if there are any exceptions raised when posting data. However, you can easily bypass this problem by setting the GridView's OptionsBehavior.CacheValuesOnRowUpdating property to "Disabled". This way the Grid will not cache object values before posting data." Вобщем, то самое свойство, обеспечивающее возможность отката изменений, мне и недавало спокойно закончить поставленный таск =)

понедельник, 7 апреля 2008 г.

ИсХоДнИк WiNdOwS Vi$tA

0 коммент.
Очень улыбнуло =)  

четверг, 13 марта 2008 г.

Разгоняем студию (SpeedUp VS2005)

0 коммент.
Приведу несколько шагов в сторону увеличения скорости работы VisualStudio2005. Ускоряем запуск Задизаблим "Start Page" Для этого: Tools | Options | Environment | Startup Выбираем в комбике "Show empty environment" Убираем SplashScreen (как не странно, но это действительно ускоряет запуск): В свойствах ярлыка добавляем параметр -nosplash к объекту. Рекомендация: Закрывайте все ненужные группы/вкладки, чтобы препятствовать их загрузке, при запуске IDE. Ускоряем работу Выключаем анимацию Tools | Options | Environment |  Снимаем галку с "Animate environment tools". Отключаем Панель навигации Если Вы используете ReSharper,  то не нуждаетесь в обновлении листа методов и полей в заголовке файла (CTRL-F12 делает это прекрасно). Для этого следуем в Tools | Options | Text Editor | C# и снимаем галку с Navigation bar. Выключаем Track Changes Tools | Options | Text Editor убираем галку с Track changes. Это уменьшит задержки и ускорит ответ IDE. Выключаем Track Active item Это избавит от скачка в explorer'e всякий раз, когда Вы выбираете другие файлы в других проектах. Tools | Options | Projects and Solutions Снимаем галку с Track Active Item in Solution Explorer. Ну и на последок, можно отключить автоматическое заполнение панели инструментов контролами. Включенной, эта опция может быть полезна при разработке своих контролов, т.к. обновляет их при билде. Но зачастую, эта операция отнимает большое кол-во времени. Для отключения Tools | Options | Windows Forms Designer Установите AutoToolboxPopulate в False. Удачного полета господа.... =)

среда, 12 марта 2008 г.

Первый шаг к разработке сложных Smart Client решений (Установка)

0 коммент.
Не раз, возникало много вопросов по поводу установки Smart Client Software Factory и всех сопутствующих компонентов. Решил запостить несколько рекомендаций. Во первых, давайте разберемся чтоже это за зверь такой SCSF !? =) Smart Client Software Factory — Интегрированный набор документаций (демо-реализаций, шаблоны, документы «how-to», пакеты Guidance Automation Toolkit, документация по архитектуре и примеры кода), которая вкупе с CAB и Enterprise Library делает возможной разработку сложных смарт-клиентов. А чем иным…. как ни «разработкой сложных смарт-клиентов» мы хотим начать заниматься!? Для этого, нужно произвести установку всех необходимых компонентов… Вот рекомендуемый порядок установки: 1. MS .NET Framework 3,0 2. MS VS2005 extensions for .NET 3,0 (WCF & WPF) 3. Composite UI Application Block 4. Enterprise Library 3,1 5. Guidance Automation Extension 6. Guidance Automation Toolkit 7. Smart Client Software Factory ------------------------ Частые ошибки: The project factory VisualBasic is not registered, template C:\Program Files\Microsoft Smart Client factory\Guidance Package\Templates\Projects\Module.Business.Tests.VB\Module.Tests.vstemplate cannot be installed. Диагноз: При установке Visual Studio не был выбран VB.NET. В этом случае, SCSF пропускает установку необходимых VB шаблонов. Лечение: Добавьте VB.NET к установке VS и сделайте Repair SCSF.