Archive for the 'Программирование' Category

Обзор Gartner по SCCM платформам 2008

Наткнулся вчера вот на такое исследование Gartner -  Magic Quadrant for Software Change and Configuration Management for Distributed Platforms, 2008.

Квадраты выглядят вот так:

image

К своему стыду, ничего не слышал про лидеров кроме IBM :(

Итак, кто лидеры:

Достаточно интересно полазить по сайтам и посмотреть что предлагается. Я если честно,  думал что на этом рынке уже нет ничего интересного. Ан нет :)

Из игроков, сам работал только с IBM, Borland и Microsoft. С последними двумя кстати гораздо больше… Borland понравился функциональным богатством, а Microsoft хорошей интегрированностью и простатой.

Понравились слабые стороны MS:

  • The Server component must be hosted on Windows.
  • Clients for non-Microsoft platforms are supplied by a third party.
  • Many administration interfaces are sparse, with additional functions to be delivered in later releases.
  • The installation process is still Spartan and needs to be simplified.
  • Security setup and administration are spread throughout the product, thus are time-consuming

Первые два пункта приминимы ко всем продуктам MS :)

В общем, все кто выбирает для себя подобные решения — советую просмотреть документ. Как минимум есть повод посмотреть на новые продукты (для меня новые :) ) .

Что нового в Delphi начиная с ver. 7

Не забывая свое прошлое:

Leveraging What You Have: 10 Top Things Added to Delphi Since Delphi 7

Очень интересно посмотреть ретроспективу развития инструмента, с которого начинал серьездно программировать.

Я правда успел поработать только с 5,6 и 2006 версиями.

В общем рекомендую почитать всем любителям Borland и истории :)

Обработка событий в APE-формах Borland StarTeam

При разработке APE-форм для Borland StarTeam часто возникает желание обрабатывать некоторые события на уровне всего объекта (например Task).

Так что небольшой кусок кода, который показывает как можно отслеживать следующие вещи:

  1. Изменение атрибута (свойства) объекта — addPropertyChangeListener
  2. Предобработка глобальных событий (сохранение например) объекта — addPreprocessListener
  3. Постобработка глобальных событий — addPostprocessListener

Самое сложное — хоть убей не помню, где же есть описание вот этого:

        String str = ev.getOperation();
        if (str.equals(«update«))

Ну а вот и сам кусок кода:

package com.starbase.starteam.task;

public class TaskForm extends JPanel {

  public static JFrame f;
  private static DefaultNavigatorPanel defNav;
  ItemCatcher itemCatch = new ItemCatcher();

  public TaskForm() {
  }

  void jbInit() throws Exception {
  }

  public static void main(String[] args) {
  }

  private void onLoadItem() {

  }

  class ItemCatcher extends JComponent implements ItemDisplayListener {
    ItemCatcher() {
    }

    public void refreshDisplay() {
      // Do nothing
    }

    public void setItem(ItemWrapper item) {
      Container con = this.getParent().getParent();
      defNav = (DefaultNavigatorPanel) con.getParent();
      item.addPropertyChangeListener(new PropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent ev) {
          onLoadItem();
        }
      });

    defNav.navigator.addPreprocessListener(new PreprocessListener() {
      public void preprocess(PreprocessEvent ev) throws AbortException {
        String str = ev.getOperation();
        if (str.equals(«update»)) {
      }
    });

    defNav.navigator.addPostprocessListener(new PostprocessListener() {
      public void postprocess(PostprocessEvent ev) {
        String str = ev.getOperation();
        if (str.equals(«update»)) {
        }
      }
    });
  }
}

Если что — спрашивайте. Постараюсь помочь :)

Как из custom формы в StarTeam вызвать другую custom форму и задать у нее какие-то параметры

Небольшая преамбула. Есть компания разработчик ПО. В качестве инструментария для версионности, управления изменениями и баг-трекинга используется Borland StarTeam. Используются 3 объекта:
Запрос — общение с Заказчиком и аля требования
Задача
ОшибкаВсе формы кастомизированы (реализованы с использованием APE) На прошлой неделе возникла необходимость вызывать из формы Запроса форму Задачи.
Начали смотреть как бы это проще реализовать. Первое на что подумали стандартный контрол для StarTeam — AddAndLinkButton. Но он к сожалению не дает возможности задать какие-нибудь параметры создаваемой формы, а хочется например часть информации из Запроса копировать в Задачу.После этого стали смотреть в сторону класса Locator из API StarTeam. Вроде как есть в нем подходящий метод — launchPropertyEditor, но к сожалению в документации вообще не описаны параметры, что надо передавать (в частности PropertyEditorCommand).После этого, посидели почесали репу и решили декомпилировать класс AddAndLinkButton и посмотреть как это в нем реализовано. В качестве декомпилятора взяли — JADЭтот способ оказался самым действенным :) В итоге сделали вот так вот:
try
{
java.awt.Window w = UI.findParentFrameOrDialog(this);
com.starbase.starteam.Folder folder;
folder = logic._workItem.getView().getRootFolder();
Item newItem = Item.createItem(«ChangeRequest», folder);
newItem.put(«USR_CR_NAME», «А вот так вот!!!»);
PropertyEditorUtils.edit(w, «», new Item[] {newItem}, 0, false, true);
if(!newItem.isNew())
logic._workItem.linkItem(newItem, false);
} catch (Exception ex) {}
Получилось вроде как совсем не плохо :)