Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему так не любят Delphi? 
:(
    Опции темы
Zloxa
Дата 20.4.2013, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 4
Всего: 161



Цитата(diadiavova @  20.4.2013,  13:52 Найти цитируемый пост)
там поддерживается шаблон проектирования MVVM

Почитал педевику
Цитата

Модель вида (ViewModel, что означает «Model of View»[1]) является с одной стороны абстракцией Вида, а с другой предоставляет обертку данных из Модели, которые подлежат связыванию. То есть она содержит Модель, которая преобразована к Виду, а также содержит в себе команды, которыми может пользоваться Вид, чтобы влиять на Модель.

Т.е. я правильно понимаю, что это как-то так:

У нас есть Модель, которая предоставляет данные. У нас есть обычный винконтроловский листбокс, он умеет рисоваться, но при этом этот винконтроловский листбокс умеет рисовать только то, что ему передано списком, который тот бережно хранит, дабы иметь возможность перериовыватсья. Получается если мы бахнем функционал, котрый обеспечит согласованность этого бережно хранимого листбоксом списка с моделью, список с этим функционалом будет являть суть Model of View.

Если мое понимание этого паттерна верно, то делфи его реализует своими ДБАварными компонентами. smile


Цитата(diadiavova @  20.4.2013,  13:52 Найти цитируемый пост)
Не только впф.

То что в жаве есть множество интересных негуевых плюх - я в курсе. В этом плане жава, думаю, дойнет уделает.
А с гуем у жавы уныло-уныло.

Это сообщение отредактировал(а) Zloxa - 20.4.2013, 13:18


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
k0rvin
Дата 20.4.2013, 13:32 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(Zloxa @  20.4.2013,  13:09 Найти цитируемый пост)
А с гуем у жавы уныло-уныло.

Я, наверное уже в третий раз, повторяю: JavaFX.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
SKrivosein
Дата 20.4.2013, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: нет
Всего: 8



Цитата

я например, пока толстую книжку по впф не прочитал, тоже смотрел на нее с колокольни своих знаний о гуестроительстве, а после книжки понял насколько я отстал от жизни

diadiavova а какую, если не секрет? Я на эту тему читал Мак-Дональда

Это сообщение отредактировал(а) SKrivosein - 20.4.2013, 14:48


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
Zloxa
Дата 20.4.2013, 13:36 (ссылка) |  (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 4
Всего: 161



k0rvin, я не говорю что ничего нет, я говорю что уныло smile
ну, или по меньшей мере - далеко не фапабельно.

Это сообщение отредактировал(а) Zloxa - 20.4.2013, 13:45


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
SKrivosein
Дата 20.4.2013, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: нет
Всего: 8



Цитата(Zloxa @ 20.4.2013,  13:09)
У нас есть Модель, которая предоставляет данные. У нас есть обычный винконтроловский листбокс, он умеет рисоваться, но при этом этот винконтроловский листбокс умеет рисовать только то, что ему передано списком, который тот бережно хранит, дабы иметь возможность перериовыватсья. Получается если мы бахнем функционал, котрый обеспечит согласованность этого бережно хранимого листбоксом списка с моделью, список с этим функционалом будет являть суть Model of View

MVVM это совствено говоря продвинутый под WPF MVC паттерн. Он позволяет с помощью команд и биндинга создать систему в которой Вид и Модель на прямую никак не связаны, но при этом реагируют на свои действия и изменеия в обе стороны. В идеале Вид XAML не имеет никакого кода и Модель никак на прямую не взаимодействует с Видом. Так по простенькому  smile 

Это сообщение отредактировал(а) SKrivosein - 20.4.2013, 15:50


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
k0rvin
Дата 20.4.2013, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(Zloxa @  20.4.2013,  13:36 Найти цитируемый пост)
k0rvin, я не говорю что ничего нет, я говорю что уныло 
ну, или по меньшей мере - далеко не фапабельно.

Ты неправ.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Zloxa
Дата 20.4.2013, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 4
Всего: 161



Цитата(SKrivosein @  20.4.2013,  16:06 Найти цитируемый пост)
В идеале Вид XAML не имеет никакого кода

Ты имеешь в виду, наверное код, который пишет разработчик.

В делфе для того, чтобы связать контрол с датасетом тоже как бы нет нужды в работе разработчика.
В VB6, емнип - тоже
В FoxPro - тоже

Тут одно из двух, либо я не правильно понял суть этого паттерна, либо он действительно не нов.

Цитата(k0rvin @  20.4.2013,  16:28 Найти цитируемый пост)
Ты неправ. 

Ты не можешь оценить степень моей правоты касательно моих субъективных ощущений.
По этой причине не прав ты, говоря мне что неправ я. smile



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
SKrivosein
Дата 20.4.2013, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: нет
Всего: 8



Zloxa просто приведу совсем простенький пример
Не один датасет а один контрол, а сорее целый интерфес и логика в модели.


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
Bother
Дата 20.4.2013, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 13.4.2013

Репутация: нет
Всего: нет



Цитата(SKrivosein @  20.4.2013,  17:50 Найти цитируемый пост)
Zloxa просто приведу совсем простенький пример
Не один датасет а один контрол, а сорее целый интерфес и логика в модели. 
т.е C переименовали в VM. И на это переименование каким то непонятным образом повлияло декларативное описание сигналов гуя?
PM MAIL   Вверх
SKrivosein
Дата 20.4.2013, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: нет
Всего: 8



Вики:
Цитата

MVVM удобно использовать вместо классического MVC и ему подобных в тех случаях, когда в платформе, на которой ведется разработка, присутствует «связывание данных».В MVC/MVP изменения в пользовательском интерфейсе не влияют непосредственно на модель, а предварительно идут через Контроллер/Presenter. В таких технологиях как WPF и Silverlight есть концепция «связывания данных», позволяющая связывать данные с визуальными элементами в обе стороны. Следовательно, при использовании этого приема применение модели MVC становится крайне неудобным из-за того, что привязка данных к представлению напрямую не укладывается в концепцию MVC/MVP.

Я и рисал что это под WPF подогнаный MVC


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
Zloxa
Дата 20.4.2013, 19:04 (ссылка) |  (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 4
Всего: 161



Цитата(SKrivosein @  20.4.2013,  18:50 Найти цитируемый пост)
простенький пример

Спасибо, вывернуло  smile 

Код

    public int Count
    {
        get { return Book.Count; }
        set
        {
            Book.Count = value;
            OnPropertyChanged("Count");
        }
    }


Передавать имя свойства литералом  smile 

Код

<Window x:Class="SampleMVVM.Views.MainView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:c="clr-namespace:SampleMVVM.Commands"
    Title="Main Window" Height="400" Width="800">
   
    <ListView ItemsSource="{Binding BooksList}">
        <ListView.ItemTemplate>
            <DataTemplate>
                <Border BorderBrush="Bisque" BorderThickness="1" Margin="10">
                    <StackPanel Margin="10">
                        <TextBlock Text="{Binding Title}" FontWeight="Bold"/>
                        <TextBlock Text="{Binding Author}" />
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="Осталось:" />
                            <TextBlock Text="{Binding Count}" FontWeight="Bold" Margin="10,0"/>
                            <TextBlock Text="шт" />
                        </StackPanel>
                    </StackPanel>
                </Border>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</Window>


Я прально понимаю, что этот "простой и незатейливый" код набран руками?

Когда дошел до раздела "команды", у меня случился диссонанс.
Я всегда полагал что бизнеслогика должна реализовываться моделью. Здесь ее фигачит вьюмодель.  smile 

Это сообщение отредактировал(а) Zloxa - 20.4.2013, 19:12


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Beltar
Дата 20.4.2013, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Цитата

Ты написал, что в дельфях в 2002-м году уже было все, к чему другие приходят только сейчас.


Скажем так, что если принять эффективность последней 2012-ой VS с шарпом за 100%, то Delphi 7 обеспечит где-то 75% для одиночного кодера, ну процентов 50 для команды, задача построения интерфейса в общем-то решена, язык хоть и не имеет ряда фич, но прост, как дубина, все необходимое есть, и многих проблем, от которых любители плюсов сбежали на шарп, не содержит. Что характерно, D7 до сих пор остается наиболее юзаемой версией Delphi. А как у нас с ценой приобретения этих самых новых версий для личного пользования, мы все прекрасно знаем, на нас сейчас даже ларьки по торговле пиратскими дисками заработать не могут.
Delphi XE3 обеспечит процентов 90 от последней студии и для одиночки, и для команды. Новую IDE, правда, 2-3 версии доводили до ума, так что в 2006 в принципе можно работать, надежность ниже, чем у D7, но меня устраивала, 2007 же вполне обоснованный выбор, чтобы перетащить на нее проект с D7 не исправляя в нем ни строчки кода (возможно придется ковырнуть сторонние компоненты, если нет версии под 2007). Т. е. все эти инструменты вроде рефакторинга, развертывания SVN, unit-тестирования там имеются, только они кардинально производительность работы программиста уже не поднимают, я, например, с трудом представляю, где мне поможет юнит-тестирование. Я и так при разработке модуль тестирую, а если пишу либу, то все равно подключаю ее к тестовой программе. В общем проект должен быть весьма нетривиальной сложности, чтобы оценить полезность.

Цитата

С практической точки зрения можно создавать очень гибкие интерфейсы, управляемые данными, которые будут меняться в зависимости от того, какие данные поступают. Взять к примеру обычный листбокс, там помимо шаблона самого листбокса есть еще шаблон для элементов листбокса. То есть если ты привязываешь к нему в качестве источника данных коллекцию неких объектов, то ты можешь сам определить как будет выглядеть каждый объект коллекции, то есть это не просто надпись появится, а ты можешь создать шаблон из нескольких контролов, которые расположишь как тебе удобно, каждый привяжешь к определенному свойству объекта данных и когда у тебя лисбокс отобразит список этих объектов, то информация по каждому будет более полной и более осмысленной. Это даже не будет выглядеть листбоксом, а больше будет напоминать какой-нибудь список товаров в интернет-магазине, где для каждого товара есть картинка, описание, цина и т.д. И тем не менее это будет обычный листбокс и подчиняться он будет логике заложенной в этот контрол.


С практической точки зрения разработка отдельного контрола для такой задачи может оказаться немногим сложнее ковыряния шаблона.

Цитата

 Ну и по части отделения логики от представления, там поддерживается шаблон проектирования MVVM, хотя тебе и без разницы, что в дельфах разделение обязанностей эмммммм... труднореализуемо.


Решения сложных задач вообще имеют тенденцию быть трудно-реализуемыми. Так что пример плиз, что я смогу сделать мышкой в VS 2012 (это единственный инструмент, который я принимаю всерьез помимо Delphi), а в Delphi XE3 буду долго кодить выписывая батонами procedure'ы, function'ы и begin'ы.

Цитата

Если в дельфах этого всего нет, то защищая дельфу, проще всего сказать, что все чего там нет вроде как и не нужно. Не забывай только о том, что более продвинутые технологии поднимают планку требований к тому же гую и плохой вид в конце концов будет и на спрос влиять. Относительно свистелок с перделками, вон на Злоху в дельфах в свое время впечатление произвели именно они, а теперь дельфисты пытаются убедить всех в том, что это для них не имеет значения. Что же тогда имеет?


Что значит свистелок и перделок? Сколько времени ты потратишь на GUI, особенно нетривиальный? В истории программирования было всего несколько революций:
- ассемблер.
- Фортран\Алгол.
- Структурное программирование,
- Персоналки, позволившие уйти от запуска в пакетном режиме, максимум 2-3 раза в день.
- Borland Pascal, задавший стандарты для IDE. По крайней мере, продажи символизируют.
- Визуальное программирование.

Все. ООП за революцию не считаю, объединение данных еще в Колобке, этом чудовищном порождении женского ума, ЕМНИП было. А паскалевские юниты явно поддерживают разделение зон видимости на private и public.

Цитата

Чарт-контрола в дельфах нет что ли?


ЧЯйный чарт. http://en.wikipedia.org/wiki/Teechart На моей памяти он был всегда. Кстати, поддерживает только GDI\GDI+. Само собой он был первым кандидатом. Потыкавшись, пошел в гугл, скачал, что нашел халявного, подумал... Надо сказать, что задача состояла в том, чтобы воспроизвести график-контрол из программы на шарпе, последняя была в исходнике от VS 2003, которая падала, как поставленная вертикально без заглубления в землю палка, версия исходника 1.25, при этом применявшаяся версия из последнего инсталлятора была 1.26, самого контрола в ней не было, я так понимаю, он был сделан в виде dll никаких сырцов оной я не видел, в инете по имени файла тоже не нашлось ничего. А у этого контрола (график протекания технологического процесса от времени, такие всегда есть в SCADA-системах) был довольно своеобразный функционал, помимо отдельных Y-осей для серий данных (как это сделать в TeeChart я вообще не нашел), способность выделять прямо на нем мышкой зону для увеличения, и еще он позволял отрисовать режимную карту в виде прямоугольников, так что сразу было видно, имел ли место выход за пределы. Видимо тоже самопал. В общем очень хорошо заточенный под конкретную задачу инструмент. Может и можно было ковырнуть dll'ку, но я такого не пробовал, да и хрен знает, как с ним вообще работать, ковырять же тысячи строк кода на шарпе улыбало тоже мало. Хотя весь GUI программы я перетряс и сделал по своему, график я постарался воспроизвести абсолютно точно. Результат меня в принципе устроил. Потом я этот контрол еще давал девочке, пишущей другую софтину, по ее мнению куда более удобный инструмент, чем чЯй-чарт.
Выводы: иногда искать и разбираться с чем-то достаточно сложным ничуть не легче, чем свой велосипед сделать, который еще удобнее будет.

Цитата

Если в дельфах этого всего нет, то защищая дельфу, проще всего сказать, что все чего там нет вроде как и не нужно. 


Как раз 3D-то я в примерах под FM видел, а что там в WPF ХЗ, но вопросов много, например, как там вообще пользоваться дизайнером форм, что-то весьма далекое от очевидного и когда уже среда перестанет тормозить. И вообще, если сама 2010-ая студия лагает, то почему сделанное в ней ПО на тех же библиотеках будет работать быстро? Ту же дельфовую IDE, которая использовала .NET ("потому что там тонны отличного кода") и в 2006 ощутимо лагала, от лага отучили. Надо полагать, переписали "очень хороший код" на старом добром нативном Паскале.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
SKrivosein
Дата 20.4.2013, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: нет
Всего: 8



Zloxa отвечу пока только на одно
Цитата

прально понимаю, что этот "простой и незатейливый" код набран руками?

Почему же? Можно в дизайнере Visual Studio, ещё лучше в Blende. И можно подправить руками, ну или написать руками, если человек мазохист.
А вообще ты спросил о MVVM я как мог ответил  smile  Возможно пример был не совсем удачный, хотелось только передать суть. Програматорская фалометрия меня лично не интересует. 
P.S. А как аналогичную задачку бы решили в Д?



--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
Beltar
Дата 20.4.2013, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Цитата

совсем простенький пример


ЧТО ЭТО?
Изменение отображаемого числа книжек в контроле и дизеблинг кнопки?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
k0rvin
Дата 21.4.2013, 08:40 (ссылка) |  (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(Beltar @  20.4.2013,  19:28 Найти цитируемый пост)
В истории программирования было всего несколько революций:
- ассемблер.
- Фортран\Алгол.
- Структурное программирование,
- Персоналки, позволившие уйти от запуска в пакетном режиме, максимум 2-3 раза в день.
- Borland Pascal, задавший стандарты для IDE. По крайней мере, продажи символизируют.
- Визуальное программирование.

Это какая-то альтернативная история.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0785 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.