Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

А кто что думает про RemObjects Chrome?   Найти похожие ветки 

 
vuk ©   (2006-02-16 11:50) [0]

Я посмотрел документацию... Вроде ничё так... Оно, конечно, олько под .NET, но там есть многие возможности, которых от Borland просили давно, но так и не дождались. И есть подозрение, что не дождемся теперь...


 
vuk ©   (2006-02-16 16:56) [1]

Тэ-э-эк... Никто ничего не думает?
Ну тогда вот для затравки.

По синтаксису Chrome - это на 80% Delphi.
Но есть некоторые отличия и расширения.

То что бросилось в глаза.

1. Generics.
Выглядит примерно так:
type
 PersistentCollection<T> = public class(ArrayList, IPersistentCollection)
   where T is PersistentObject, T has constructor;
 private
   method GetItem(aIndex: Integer): T;
 protected
   method GetItemName: String; virtual;
 public
   method LoadFromXml(aNode: XmlNode); virtual;
   method SaveToXml(aNode:XmlNode); virtual;
   property Items[aIndex: Integer]: T read GetItem;
   method AddNew: T;
   method AddNew(aName: String): T;
 end;


Method - можно писать вместо procedure и function

2. Обработка исключений почти такая же, но есть доп. фичи
try
 // :
except
 on E: SocketException where E.Errorcode = 10054 do begin
     // connection was closed gracefully
 end;
end;


3. Делегаты. В Delphi - "of object"
type
 MyEvent = delegate (Sender: Object; Args: MyCustomArgs);


4. with до кучи имеет такой синтаксис:

with p: Person := PersonArray[i] do begin
 :
 p.Name := "Klaus";
 :
end;

with b: Button := new Button do
 with c: Color := b.BackColor do begin
   :
   b.Text := "Hello World";
   self.Text := c.ToString;
   :
 end;
end;


5. using. примерно как в C#
using f := new FileStream(..) do begin
 :
end;


6. contracts
method MyObject.Add(aItem: ListItem);
require
 assigned(aItem) : "List Item for MyObject cannot be nil";
begin
 InternalList.Add(aItem);
ensure
 Count = old Count +1 : "MyObject: Count logic error";
End;


7. Invariants. Привожу цитату из Help


> In contrast to pre and post
> conditions, Invariants are used to define a fixed state
> the object must
> fulfill at any given time. Invariants can be public or private.
>  Public
> invariants will be checked at the end of every public method
> (after the
> method"s "ensure" block, if present, has been checked) and
> if an invariant
> fails, an assertion is raised. Private invariants will be
> checked at the end
> of every method call, public or private. The idea behind
> this separation is
> that public invariants must not be met by private methods,
>  so theoretically
> a public method can defer work to several private worker
> methods, and public
> invariants would only be checked after the public method
> finishes
> Examples:

type
 MyClass = class
 public
   : some methods or properties
 public invariants
   fField1 > 35;
   SomeProperty = 0;
   SomeBoolMethod() and not (fField2 = 5);
 private invariants
   fField > 0;
 end;


8. case по типу объекта
case somebody type of
 Person: msg := msg_Person;
 Employee: msg := msg_Employee;
end;


 
Игорь Шевченко ©   (2006-02-16 17:24) [2]

Все бы хорошо, еще бы документация на русском была - цены бы не было :)


 
vuk ©   (2006-02-16 18:28) [3]

>еще бы документация на русском была - цены бы не было
Это с каких это пор ты отказываешься доки на англицком читать? :)


 
Игорь Шевченко ©   (2006-02-16 18:30) [4]

vuk ©   (16.02.06 18:28) [3]

Да я не отказываюсь, просто настолько уже басурманский текст приелось читать, а главное, вникать в него :)


 
Суслик ©   (2006-02-17 12:35) [5]

Вопрос, а зачем он нужен?
Это для работы или для образования? (их сайт посмотрел, времени глубоко внимать нет).


 
DrPass ©   (2006-02-17 13:36) [6]

Для работы. В .NET компилятор существует не сам по себе, он пользуется общей средой и библиотеками. Так что вся мощь Visual Studio доступна и пользователям Chrome. В свете последних веяний есть вероятность, что любители Паскаля рано или поздно будут работать именно на Chrome :-)


 
vuk ©   (2006-02-17 14:22) [7]

Да, вот еще про исключения. В отличие от Delphi, где два типа блоков - try..except..end и try..finally..end, в Chrome только один - try..except..finally..end, что несколько удобнее, не нужно делать вложенных блоков для обработки исключений и финализации.

to Суслик ©   (17.02.06 12:35) [5]:
>Вопрос, а зачем он нужен?
Хороший вопрос. Зачем нужен компилятор? Компилировать, ясен пень! :o)
А вообще говоря, см DrPass ©   (17.02.06 13:36) [6]. Тут ведь в чем дело, большинство возможностей, отличающих Chrome от Delphi - это то, что давно просили у Борланд и на что были ответы в духе "идите на фиг" и "может быть в следующей пятилетке".


 
Игорь Шевченко ©   (2006-02-17 14:26) [8]

vuk ©   (17.02.06 14:22) [7]


> Да, вот еще про исключения. В отличие от Delphi, где два
> типа блоков - try..except..end и try..finally..end, в Chrome
> только один - try..except..finally..end, что несколько удобнее,
>  не нужно делать вложенных блоков для обработки исключений
> и финализации.


Что несколько неудобнее, так как не каждый раз используются два блока вместе (try..except и try..finally вокруг него или наоборот, внутри). В моей практике чаще встречались либо try..finally, либо try..except


 
Суслик ©   (2006-02-17 14:30) [9]


> Хороший вопрос. Зачем нужен компилятор? Компилировать, ясен
> пень! :o)

Т.е. это что-то типа компилятор delphiподобного языка в net?


 
Igorek ©   (2006-02-17 14:41) [10]

http://www.remobjects.com/testimonials/


 
vuk ©   (2006-02-17 15:56) [11]

to Игорь Шевченко ©   (17.02.06 14:26) [8]:
>Что несколько неудобнее, так как не каждый раз используются два блока
>вместе
Любой из блоков except и finally можно пропускать, что позволяет получать полные эквиваленты Delphi-шным.

to Суслик ©   (17.02.06 14:30) [9]:
>Т.е. это что-то типа компилятор delphiподобного языка в net?
Угадал. :o)


 
Игорь Шевченко ©   (2006-02-17 16:00) [12]

vuk ©   (17.02.06 15:56) [11]


> Любой из блоков except и finally можно пропускать, что позволяет
> получать полные эквиваленты Delphi-шным


Вот же сволочи.

Ну точно, осталось документацию на русском, и чтобы в VS Express Edition встраивался.


 
Igorek ©   (2006-02-17 16:40) [13]

> Игорь Шевченко ©   (17.02.06 16:00) [12]
> Вот же сволочи.
>
> Ну точно, осталось документацию на русском, и чтобы в VS
> Express Edition встраивался.

Попробую что-нибуть сделать. ;)


 
Джо ©   (2006-02-17 16:54) [14]

Хороший язык.
Мне очень понравились async methods. Многопоточность без лишней писанины и очень наглядная.


 
jack128 ©   (2006-02-17 16:59) [15]

Игорь Шевченко ©   (17.02.06 16:00) [12]
и чтобы в VS Express Edition встраивался


не знаю, как в EE, а в обычную студию встраивается http://www.chromesville.com/articles/?id={E7D39DFF-B0AE-4EE9-8C98-4F2BC22E5231}


 
Игорь Шевченко ©   (2006-02-17 17:36) [16]

jack128 ©   (17.02.06 16:59) [15]

Обычная денег стоит, ЕЕ в течение года вроде бесплатная.



Страницы: 1 вся ветка

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.031 c
2-1140528763
DDS
2006-02-21 16:32
2006.03.12
Перемешивание!


2-1140516533
bolbes
2006-02-21 13:08
2006.03.12
Квадрат


8-1126694605
Kair+
2005-09-14 14:43
2006.03.12
Захват видео с помощью DSPack


3-1137613145
Dataqbazer
2006-01-18 22:39
2006.03.12
Как правльно? в чем может быть ошибка?


1-1139473306
nastya
2006-02-09 11:21
2006.03.12
Не видно MainMenu в форме