вторник, 20 января 2009 г.

Delphi Prism - первое знакомство

Пару дней назад кое-как руки дошли и до нового продукта - Delphi Prism. (Что-то отставать я стал от технологий :)). Буду наверстывать.

Первое что бросается в глаза - разработчики обленились не стали возиться с собственной IDE и воспользовались бесплатным готовым решением компании Microsoft - оболочкой Microsoft Visual Studio.

Собственно, как и обещали разработчики - Delphi Prism совершает скачок из феодализма в коммунизм из .NET 1.1 в .NET 3.5. И первым подключенным по умолчанию модулем является System.Linq. На эту возможность я и решил сегодня посмотреть в первую очередь.

Для первого теста я выбрал LINQ to XML - решил посмотреть как будет выглядеть работа с XML файлами здесь. Файл и задачу выбрал такую же что и в моем предыдущем посте про работу с XML в Delphi. И по аналогии с C# быстро набросал код программы.

Первое, что бросилось в глаза - синтаксис LINQ немного отличается, так например меня ввело в ступор сообщение об ошибке на операторе orderby, оказывается тут он пишется как order by. Так же по привычке объявил переменные перед блоком begin ... end; что тут являлось ошибкой. :)

В конце-концов у меня получился следующий код:


namespace ConsoleApplication1;

interface

uses
System.Linq,
System.Xml,
System.Xml.Linq;

type
ConsoleApp = class
public
class method Main;
end;

implementation

class method ConsoleApp.Main;
begin
var ComputersFile: System.Xml.Linq.XElement;
ComputersFile := XElement.Load('test.xml');
var Elements := from el in ComputersFile.Descendants()
where el.Name = 'DisplayName'
order by el.Value
select el;

for e in Elements do
Console.WriteLine(e.value);

Console.Read;
end;

end.

Такую же программу я написал и на C# и решил их сравнить. Первое - размеры файлов были разные. Файл написанный с помощью Delphi Prism был больше. Мне это показалось странным - решил выяснить. Оказалось все просто: Delphi по умолчанию даже к консольному приложению, по каким-то своим личным соображениям добавляет иконку по умолчанию, удалив ее - размеры файлов стали одинаковы.

Еще не поленился дизассемблировать обе версии программы. IL-код их оказался совершенно разным, как собственно я и предполагал, сам не знаю что я надеялся там увидеть :) Не стал дальше копать и на этом решил пока остановиться.

В общем, первое впечатление осталось приятное - надо бы найти время по плотнее сесть поразбираться, но катастрофически ни на что не хватает времени.

Кстати в поставку Delphi Prism входят провайдеры для доступа к базам данных Interbase и Blackfish SQL, что позволяет писать управляемый код для работы с этими базами данных. Интересно, а как Delphi Prism интегрируется с Visual Studio? Будут ли доступны эти провайдеры при написании кода на C#? Но это уже материал для следующей заметки...

7 комментариев:

  1. Имхо, Delphi Prism - очередное УГ. Они уже откровенно задрали выпускать никем не востребованные продукты-однодневки аля Delphi 8, Delphi for PHP и тому подобные.

    ОтветитьУдалить
  2. Delphi Prism - единственный вопрос, нахрена?

    ОтветитьУдалить
  3. Этот комментарий был удален администратором блога.

    ОтветитьУдалить
  4. Этот комментарий был удален администратором блога.

    ОтветитьУдалить
  5. Этот комментарий был удален администратором блога.

    ОтветитьУдалить
  6. Сам работал на D 7, D 2009.Затем перешел на C# и VisualStudio.Сравнивая обе IDE скажу что VS на порядок лучше. О языках...
    С# более логичный. Ни в какой призм я уже не вернусь, хоть пусть меня тут отругают все паскалевцы.
    По мне так С++ - достаточно сложен, Obj Pascal - не логичен. С# пока то что надо. Может и призм отличается от Об. Паск. Но учить, смысла не вижу.

    ОтветитьУдалить