СОЛО на клавиатуре

среда, февраля 22, 2006

Руссификация ORM (Object Relational Mapping) ECO III

Итак немного о проблеме.
Работаю я значит с ECO3 и тут меня осиняет штука, запарился работать на англицком.
Интересно что в XML русский работает а в MapperDB нет.
А хочется всего ничего делать правда сменяемый ORM - типа отладил на XML а дальше поменял маппер и все вот тебе и база данных в качестве ПМ(далее буду писать транскирилицей чего-то глючит у меня смена раскладки ктрл+шифт а у блоггера на него же повешено превью - просто закачаться и вот при каждой смене раскладки он(блоггер) скрывает мне текст и показывает превью, зрелище не для слабонервных :))
ПМ персистенсе маппер.
Далее взял в руки классный .Нет дизассемблер, какой скажу, а просто дам ссылку там ищите.
пролазил около нескольких часов, результаты видны в моем блоге.
Познакомился с тулз-апи на примерах для Дельфи.
и вот он результат получилась классная утилита, в которой я поменял только несколько процедур. зато узнал много интересного и о метапрограммировании для .нет и о ЕСО3.
следите за публикациями новостей на сайте и форуме , скорее всего нарисую небольшую статью для тех кто хочет сделать свои компоненты для ЕСО дизайнера.
С уважением Алексей.

вторник, февраля 21, 2006

Транслитерация в ECO III

Так про транслитерацию.
Проблема:
1. при генерации базы данных из схемы, которая содержит русские символы происходит ошибка SQL которая говорит о том что база не позволяет создавать имена на национальных языках.
С подобной проблемой сталкивались и в Болд.
Задача: обнаружить и обезвредить проблемы в работе с NLS – сделать компонент или тулзу для транслитерации.
Обнаружено следующее:
1. при нажатии кнопки «Generate Schema» - вызывается метод соответствующего маппера базы данных.
public override void Execute(ExecuteArgs executeArgs)
{
if (executeArgs == null)
{
throw new ArgumentNullException("executeArgs");
}
try
{
PersistenceMapperDb db1 = DBToolBase.GetPersistenceMapper(executeArgs, PersistenceStringRes.sOperationCreateDatabase, false);
if (db1 != null)
{
ITypeSystemService service1 = DBToolBase.GetTypeSystemService(executeArgs);
db1.CreateDataBaseSchema(service1, new FormBasedConfigureCleanPS(executeArgs.ServiceProvider));
MessageHelper.AddMessage(PersistenceStringRes.sSchemaGenerationCaption, PersistenceStringRes.sSchemaCreated);
}
else
{
MessageHelper.AddMessage(PersistenceStringRes.sNoPMapper);
}
}
catch (Exception exception1)
{
MessageHelper.AddMessage(PersistenceStringRes.sSchemaGenerationCaption, exception1.ToString());
}
}
Далее генерируем базу db1 имеет тип PersistenceMapperDB.
public void CreateDataBaseSchema(ITypeSystemService typeSystemService)
{
this.CreateDataBaseSchema(typeSystemService, new DefaultCleanPsConfig(false));
}
public void CreateDataBaseSchema(ITypeSystemService typeSystemService, IConfigureCleanPS configureCleanPS)
{
if (configureCleanPS == null)
{
throw new ArgumentNullException("configureCleanPS");
}
if (typeSystemService == null)
{
throw new ArgumentNullException("typeSystemService");
}
IDatabase database1 = null;
try
{
database1 = this.m_ConnectionPool.RetrieveDatabaseConnection(true);
this.EffectiveNewMappingProvider.Initialize(typeSystemService.TypeSystem, null, database1.Config, true);
this.EffectiveNewMappingProvider.Mapping.Validate(database1.Config, typeSystemService.TypeSystem);
this.EffectiveOldMappingProvider.Initialize(null, null, database1.Config, false);
string text1 = this.GetNewDbName();
base.PersistenceHandleDb.CreateDataBaseSchema(typeSystemService, PersistenceMapperDb.GetDatabaseCollection(database1, text1), text1, this.EffectiveNewMappingProvider, this.EffectiveOldMappingProvider, configureCleanPS);
}
finally
{
if (database1 != null)
{
database1.Close();
this.m_ConnectionPool.ReturnDatabaseConnection(database1);
}
}
}

ORMapper должен реализовать интерфейс
public interface IORMappingProvider
{
// Methods
void Initialize(IEcoTypeSystem typeSystem, IDatabase db, SqlDatabaseConfig config, bool addMissingTypes);
void PostCreateDb(IDatabase db, SqlDatabaseConfig sqlDatabaseConfig, ORMappingDefinition newMapping);
void PostEvolveDb(IDatabase db, SqlDatabaseConfig sqlDatabaseConfig, ORMappingDefinition newMapping);
void SaveMappingInfo(IDatabase db, SqlDatabaseConfig sqlDatabaseConfig, ORMappingDefinition newMapping);
StringCollection SystemTableNames(SqlDatabaseConfig config);

// Properties
ORMappingDefinition Mapping { get; }
}
Имеет три реализации этого интерфейса
DBMapperProvider
DefaultORMappingBuilder
FileMappingProvider

Так все станосится очень интересно
DBMapperProvider – складывает инфу о маппинге в базу и позволяет работать с ним.
FileMappingProvider – хранит инфу о маппинге в файле.
DefaultORMappingBuilder – как раз делает все что нам и нужно делает маппинг.

Borland IDE Users Look Ahead или Немного мыслей судьбе IDE от Borland

Собственно говоря статья написана не так давно, или уже очень давно, но в ней есть некоторые предположения о возможных вариантах линейки продуктов IDE Borland.
и вот один парень предположил что если покупателем будет Google, тады в мире наступит рай и Дельфи будет выложен на каком-нибудь http://devtools.google.com и будет бесплатен для скачивания. Тут же в форуме прозвучало мнение о том, что по всей видимости справа или слева, или вверху Самой среды будет баннер Google.
Ладно почитайте посмотрите.

понедельник, февраля 20, 2006

ECO Space Designer Plugin

Сегодня смотрел примеры для ECO Space Designer Plugin — прикольно просто интересно стало для чего там стоит PersistenceService. Оказывается, что эта примочка должна стоят в классе, который работает с Объектным пространством ЕСО, просто замечательная штука,
Пример лежит в директории на моей системе: C:\Program Files\Borland\BDS\4.0\Demos\CSharp\ECO\EcoSpaceDesignerPlugins.
Соответственно у вас в вашей директории :) тут все прозрачно.
Интересно вот что – почему нет компонент реализующих этот механизм и почему их нельзя положить в дизайнер. По все видимости ответ очевиден – может быть и пригодится нескольким людям – так они могут положить это все в коде ручками, раз уж сами нарисовали свой сервис. Ну в общем – то логика есть :).
Что в примере Простой сервис который проверяет соответствие класса сохраняемого объекта ограничениям, наложенным пользователем системы.
Вот такой простой валидатор объектов. Смотрите примеры в директориях. Хотя к ним и нет описания, они довольно таки емки.

воскресенье, февраля 19, 2006

Пофиксил Адаптер для FB

Типа ура сегодня пофиксил адаптер для Firebird ECO.
как смотрите в форуме на борланде. Скоро выложу сайте http://mda-delphi.ru/

четверг, февраля 16, 2006

Давайте жить дружно.

Религиозный экстремизм
Блин, с чего начать. Сегодня слушал новости, и там было что-то про Волгоград – мол какая-то газета опубликовала карикатуры религиозного толка. Я просто взорвался от возмущения – ПРОСТИТЕ СКОЛЬКО МОЖНО ЭТО ТЕРПЕТЬ. Мы живем в светском государстве – церковь отделена от государства. Зачем это делать – что совсем тупые редакторы, или просто на скандал нарываются. Я просто понять не могу. Как-то глупа на форе карикатурной войны с некоторыми странами Европы мусульманского мира делать подобные шаги. Это может быть причиной конфликта.
Мое отношение к религии однозначно – я понимаю, что это нужно людям. В некоторых случаях это часть их культуры, часть их семьи и я не знаю, как сам бы поступил, если на мои ценности было бы оказано давление. Наверное, просто ушел и всё. Зачем конфликты. Их уже и без того достаточно.

среда, февраля 15, 2006

Go Delphi Go Delphi

Ура!!! Просто замечательное что-то твориться в DevCo (IDE Borland). Каждый день печатаются работы, все лучше и лучше становится поддержка.

Вот и сегодня обнаружил приятный сюрприз.

Borland Data Provider 2.5 Features

И вторая работа посвящена отчетам в ECO

Report Writing for an ECO Application - by Dick Walker

Просто замечательно, обязательно сделаю перевод.

понедельник, февраля 13, 2006

Список известных и не очень приложений написанных на Delphi

Собственно говоря эта ссылка получена, с блога Марко Канту
Очень интересно! разве для того чтобы активировать деятельность Делфистов в интернет необходимо чтобы борланд решила продать линейку продуктов.
Правда нас вед не видно и неслышно, а скольно замечательных продуктов сделано на Дельфи, просто никто не считал.

Flowing with Delphi - by Ed Vander Hoek

Прикольная статья, на фоне новой волны активности разработчиков.
просто и со вкусом о новых возможностях библиотеки Delphi VCL

Support Delphi, Now!

Аналогично и я согласен необходимо подержать Дельфи в текущем положении, показать что наш дух нельзя сломить.
На BDN началась активная работа куча статей за несколько дней.
Вот например, Business as usual - by John Kaster John Kaster говорить, что для того чтобы показать(доказать) что разработчики сфокусированы на своих обычных делах, небходимо показать над чем они сейчас работают. Я считаю визуальная разработка на CF.Net это просто клево, а тем более если туда можно прикрутить ECO.

суббота, февраля 11, 2006

BDNRadio: Developer Tools Future chat replay

Сегодня прослушал BDNRadio: Developer Tools Future chat replay
Здесь есть лог из разговора, переводить не имеет смысла.
mp3
Рекомендую прослушать.
Общее впечатление:

Разработчики все очень взволнованы происходящим, не меньше нашего, но Главное намерение Borland не просто выкинуть или отказаться от IDE линии продуктов, а просто сконцентрироваться на чем-то одном. Borland не хочет удерживать две линии продуктов: ALM и IDE. По всей видимости, сложно держать фокус на двух продуктах - в этом случае теряют обе линии.

Другой момент это отличия двух линий – различные уровни покупателей. Линия ALM - это шестизначные договоры для крупных компаний разработчиков программного обеспечения , а основными покупателями IDE являются как отдельные разработчики так и малые средние и крупных групп разработчиков. Соответственно для развития обеих линий необходимы различные стратегии.
Borland подбирает покупателя инвестора. Я еще раз акцентирую - именно подбирает ту компанию, которая будет инвестировать в новую линейку продуктов. И будет выбирать, пока не выберет лучшую – такое обещание дала компания своим сотрудникам и своим клиентам. До тех пор IDE линия продуктов будет частью компании.
Borland не хочет терять свои наработки в области, и поэтому будет сотрудничать с новой компанией. На счёт некоторых вопросов касающихся того не получается разделить компанию без проблем, например Together UML остается в Borland, но поскольку он очень тесно интегрирован в IDE Borland Developer Studio – в таком случае будут использоваться кросс лицензирование решений.
Кто с кем остается все предельно ясно, все сотрудники пока очень рады тому, что произойдет, хотя многие с самого начала не поняли что происходит.
Для технологических партнеров компании был проведен радио чат.
Я просто хочу добавить от себя. Как бы то ни было, но группу Борланд объединяет большой срок работы вместе, ребята все преданы своему делу, поэтому думаю что они не сдадутся и будут идти дальше.

четверг, февраля 09, 2006

blog.marcocantu.com

Интересно что 3 февраля Марко Канту(Mastering Delphi) написал следующее послание в своем блоге.
blog.marcocantu.com: "Where is the Kylix Community Project?"
Прикольно. Но на линукс уже есть порт Паскаль FreePascalCompiler.

Выделение Delphi или Go Delphi Go

Так Привет всем. Я хочу продолжить разговор на тему продажи Delphi и других IDE Борландом.

Как я понял, конфликт назревал давно, и конфликт очень серьёзный. Множество клиентов которые пользовались продуктами Borland, просто находятся в недоумении, кто-то теперь принимает решения в сторону VS от МелкоМягкого. И говорят, типа теперь выбор будет очевиден,  в сторону его же. На некоторых Delphi сайтах уже пошла реклама от MS типа «Разработка стала не настолько сложной» - блин косяк. Она была очень сложной, а теперь стала не настолько сложной. Да, короче говоря, маркетинг.
Для меня так линия продуктов Delphi просто незаменима. Необходимо портировать ECO/ Bold на Линух под Киликс - я думая самый простой способ на данный момент.
Так, продолжим. Я нашел множество материалов в подтверждение своему предположению о несогласии разработчиков работать под управлением текущего менеджмента. Они просто радуются тому что появится шанс работать только в одном направлении – разработка IDE.
Тем более Borland обещает, что подойдет к подбору покупателя осень серьезно, и продаст только той компании, которая будет развивать линию продуктов.
Есть несколько других моментов – например:
кто предполагаемый покупатель компании.
А может Борланд так и останется с Delphi, а выделят как раз сектор ALM.
Короче говоря, время покажет.
Я думаю, что будет только лучше. Многие сотрудника недовольны текущим управляющим персоналом, и просто счастливы, что этот продукт может развиваться самостоятельно.
Ниже даю подборку ссылок на блоги разработчиков Borland/Delphi.
Borland plans separate company for Delphi, JBuilder, C++Builder, InterBase, JDataStore and other developer products...
What are other Borlanders... er... uh -ers :-) saying
Delphi grows up, moves out
Exciting times for Borland's developer tools
It's a fabulous day!
Sojourn of Delphi
More info on Borland selling Delphi
Borland looks for buyer of IDE business...
Go Delphi! Go NewCo!
О попытке купить Delphi неким Robert Coates в сентябре 2005 года:
Borland: Investor Relations: SEC Filings
Robert Coates Tries to Buy Delphi... and the Board of Directors rejects his offer.
Borland's Conference Call and Bob Coates
Пока что всё.
На самом деле мне далеко не безразлично все что происходит.
Буду следить дальше.

Opera RulezZzZZzzz

вот провел для себя эксперимент: сутки сидел на IE....
Блин вот это муки, просто могу сказать какие...
1. сеанс не сохраняется
2. Нет быстрого перехода Вперед назад, почему-то IE нужен интернет для того чтобы посмотреть откуда я пришел.
3. При быстром(в интернете) переходе назад почему-то некоторые формы теряют всю инфу. Блин несколько раз вводить сообщение для форума это уж слишком.
4. Куча окон в трее. пришлось её раздвигать, при том что эта панель находится справа и места для каждого окна занимается только иконкой.
5. да мне кажется предыдущих 4-х достаточно.

А плюсы. ну да они тоже есть, например правильно отображаются некоторые, написанные специально для IE страницы :)
итак ставлю 3+ для этого браузера.
Буду тестить FireBird. :) только с завтрашнего дня :)

Fly! Be free!

Вчера Борланд сказал что собирается разделить свой бизнес и деинвестировать , линию продуктов.

Вот почитайте,
Fly! Be free!
Да просто прикольно, парниша говорит что так будет лучше, для всех и для нас разработчиков в том числе.
просто кульно, когда компания не будет занята постоянной гонкой, подгонкой сроков выпуска своего продукта.
Да так будет лучше и для нас и для всех. НО только в том случае если кто нить купит эту компанию. Думаю купят, поэтому повода для волнений нет. Вопрос кто купит :/
Но по любому люди-то останутся.
Ждемс...
а пока почитайте вот
Официалная инфа
Borland to Acquire Software Quality Company, Segue Software;
Announces Plan to Divest IDE Product Lines
Letter from Borland CEO Tod Nielsen
Borland plans separate company for its developer products - by David Intersimone
тут FAQ по покупке Segue

От людей
Delphi grows up, moves out
Borland plans separate company for Delphi, JBuilder, C++Builder, InterBase, JDataStore and other developer products...
Вот так.

понедельник, февраля 06, 2006

Чего-то с машиной моею стало

умерла IPSec Service, вот все переустановил.
И это мне подарок на мой день рожденья от старого друга моего компа :)
Ну это надо было сделать.
К сожалению потелась вся почта, все закладки и весь борладновксий форум. Ну ни чего еще раз просмотрю все.