Версия 3.0.7 intid

17.10.2007

  • Добавлен класс IdentifierList - хэш-список и генератор идентификаторов.
  • В классе NerealAbstract добавлено свойство UID.
  • В XmlSchemaConverter добавлена обработка типа unsignedInt.
  • Удален класс NerealAbstractTree, вся работа с Parent/Childs перенесена в NerealAbstract.
  • Удалено все, что оказалось лишним в новой организации данных. Эта версия пока абсолютно не работоспособна.

18.10.2007

  • Все методы работы с абстракциями в классе World сделаны статическими.
  • Метод-событие OnDeserialize разделен на OnBeforeDeserialize и OnAfterDeserialize.
  • В GlobalConfig добавлено свойство DefaultLocation.
  • Удален статик-метод World.GetDefaultLocation.
  • В Character свойство Location изменено с сохраняемого на вычисляемое.
  • В Recipe добавлено свойство RecipeName.
  • Добавлена инициализация корневого шаблона и корневого рецепта.
  • Убраны отладочные сообщения о восстановлении дерева при десериализации.
  • В контексте регистрации реализованы запрос логина и проверка наличия имени.
  • В контексте входа вопрос "введите ваше имя" заменен на "введите ваш логин".
  • Убрана собственная регистрация класса World в списке идентификаторов, так как она теперь проводится в самой абстракции.
  • В IdentifierList исключена возможность повторного добавления той же абстракции.
  • В схемах данных добавлена возможность указания имени класса с информацией о свойстве (xsd:appinfo/field/@info).
  • В PropertyInfo поле ValueType заменено на свойство (небольшая экономия памяти).
  • В Serializer методы Write***List теперь принимают IEnumerable вместо List.
  • В NerealAbstract добавлено вирт.свойство NeedSerialize - нужно ли сохранять эту абстракцию, если она в списке Childs. По умолчанию оно равно true.
  • В NerealAbstract свойству Childs установлен тип NerealAbstractChildsInfo - при сериализации сохраняет из списка только те абстракции, что нужно сохранять.
  • В Observer указано, что его не нужно сохранять.
  • Класс LinkSide удален, его свойства перенесены в Link.
  • Класс Link реорганизован в одностороннюю связь, которая должна быть вложена в исходную локацию, и в которой есть ссылки на конечную локацию и на обратную связь.
  • Исправлена ошибка генерации PropertyInfo на списки.
  • Удален тип ItemPlace.
  • Базовый тип всех ссылок на NerealAbstract и его потомков заменен с xsd:string на xsd:unsignedInt.
  • Все свойства класса Names переименованы на заглавную букву.
  • В Navigator реализована поддержка списков без элемента-группы. XPath-запросы теперь нормально работают на новой структуре данных.

19.10.2007

  • Добавлен класс Group - именованное представление группы других абстракций.
  • Добавлены класс ItemTemplateGroup и RecipeGroup, наследуемые от Group.
  • Удалены методы InitializeAsRoot в классах ItemTemplate и Recipe.
  • В World поисковые свойства RootZone, RootTemplate и RootRecipe заменены на ссылки на соответствующие объекты в дереве.
  • В метод NerealAbstract.GetEntities добавлен рекурсивный обход, если встречается объект класса Group.
  • Методы GetRecipes перенесены из класса Recipe в RecipeGroup, и реализованы через GetEntities.
  • Восстановлен ранее закомментированный код в команде автоматических рецептов.