Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Десктоп приложение / 24 сообщений из 24, страница 1 из 1
21.11.2014, 16:30
    #38813434
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
Требуется помощь зала!

Находимся на стадии планирования нового проекта, который, как ясно из названия, представляет из себя десктоп-приложение. Одним из требований является красивый легкоизменяемый дизайн. Т.е. специально обученный дизайнер (не имеющий понятия о .NET) где-то у себя в студии делает дизайн, мы как можно скорее натягиваем его на софт.

Возник диспут, на чем писать, варианты:

1. WinForms. Есть богатый опыт разработки, но вроде как считается устаревшей платформой, нет нормальный MVP-фреймворков, и вообще не модно.

2. WPF. Модно, стильно, современно, вот только разрабатывать на нем среди нас могут не только лишь все, мало кто может это делать. С другой стороны, MS пообещал развивать и поддерживать.

3. Что-то еще????

И параллельно, какие сторонние компоненты посоветуете для гламурного внешнего вида? На WinForms использовали DevExpress, в целом всё устраивает, но как-то тяжеловесно. Что скажете за другие библиотеки?

Спасибо.
...
Рейтинг: 0 / 0
21.11.2014, 18:10
    #38813604
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
Да кагбэ вопрос больше в резервах времени. Если время есть разобраться в WPF, то конечно лучше юзать WPF. Если проект нужно было сдать вчера, то юзайте что знаете.
...
Рейтинг: 0 / 0
21.11.2014, 18:17
    #38813612
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
Время есть
...
Рейтинг: 0 / 0
21.11.2014, 20:36
    #38813712
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
zz,

Если есть дизайнер, который ни сколько не знает .NET, то на чём он будет рисовать? HTML? WPF видел издалека, но писать на XAML думаю ему не понравится. Можно думаю веб-интерфейс сделать (наподобие HTA приложений), только практикуют ли это сейчас или WPF это всё
...
Рейтинг: 0 / 0
22.11.2014, 00:37
    #38813820
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
zzВремя есть
Тогда вперед. Если хотите сократить временные издержки, могу предложить консультации по проектированию на WPF/SL(XAML).
Оплата через договор по безналу.

P.S. В последнее время как-то больше приходится заниматься консультационными услугами.
...
Рейтинг: 0 / 0
22.11.2014, 10:07
    #38813916
Диез
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
EDUARD SAPOTSKI,

А гибридные приложения WinForms/WPF не проходилось делать?
Например, в WPF нет MDI - делаем обычный винформный MDI, а в дочерние окна вставляем elementHost и дальше всё под WPF.

Интересуют потенциальные грабли такого подхода. Насколько он жизнеспособен?
...
Рейтинг: 0 / 0
22.11.2014, 11:09
    #38813937
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
ДиезА гибридные приложения WinForms/WPF не проходилось делать?
Например, в WPF нет MDI - делаем обычный винформный MDI, а в дочерние окна вставляем elementHost и дальше всё под WPF.

Интересуют потенциальные грабли такого подхода. Насколько он жизнеспособен?
Это первая психологическая ломка, когда разработчик из WinForms приходит в WPF/SL - где MDI и как без него жить? На самом деле в WPF/SL почти все контролы по сути являются контейнерами. Реализовать свой MDI на WPF/SL это дело нескольких часов. И это наверное первое что пытаются сделать все разработчики, я тоже делал Но потом начинаешь понимать что в WPF/SL MDI по сути нафиг не нужен, в WinForms он фактически нужен от безисходности, а как иначе? А в WPF/SL можно очень много придумать других вариантов навигации, MDI один из множества.
По поводу гибридных приложений WinForms/WPF, мне чаще приходилось в WPF приложения добавлять ранее написанные компоненты WinForms. Никто не запрещает делать наоборот. Но я лично против такого подхода. Дело в том что вся сила WPF/SL не в возможностях делать гламурный UI, а в мощном механизме биндингов и широкие возможности при построении архитекруры приложений.
В WPF/SL может быть одна модель с данными к которой биндингами прикручены десятки формочек, в WinForms подобное тоже можно сделать, но через попу.
Получается, что если в WinForms приложение добавляем WPF компонент, мы только получаем возможность делать гламурный UI, а в остальном мы работаем как и работали в стиле WinForms.
Вот как-то так...
...
Рейтинг: 0 / 0
22.11.2014, 11:14
    #38813938
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
Что такое "стиль WinForms"?
...
Рейтинг: 0 / 0
22.11.2014, 11:26
    #38813943
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
skyANAЧто такое "стиль WinForms"?
Это когда берем ссылку на объект и ее передаем в один контруктор одной формочки, из нее в другой контруктор второй формочки... десятой. Затем из десятой дергаем метод девятой или генерим событие, из девятой восьмой... И затем половина разваливается при допиле 5-й формочки... лепота
...
Рейтинг: 0 / 0
22.11.2014, 11:49
    #38813957
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
EDUARD SAPOTSKIskyANAЧто такое "стиль WinForms"?
Это когда берем ссылку на объект и ее передаем в один контруктор одной формочки, из нее в другой контруктор второй формочки... десятой. Затем из десятой дергаем метод девятой или генерим событие, из девятой восьмой... И затем половина разваливается при допиле 5-й формочки... лепота Хм. Этот стиль называется "кривые ручки".
К сожалению встречается не только в WinForms проектах.
...
Рейтинг: 0 / 0
22.11.2014, 11:53
    #38813960
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
zzТребуется помощь зала!

Находимся на стадии планирования нового проекта, который, как ясно из названия, представляет из себя десктоп-приложение. Одним из требований является красивый легкоизменяемый дизайн. Т.е. специально обученный дизайнер (не имеющий понятия о .NET) где-то у себя в студии делает дизайн, мы как можно скорее натягиваем его на софт.

Возник диспут, на чем писать, варианты:

1. WinForms. Есть богатый опыт разработки, но вроде как считается устаревшей платформой, нет нормальный MVP-фреймворков, и вообще не модно.

2. WPF. Модно, стильно, современно, вот только разрабатывать на нем среди нас могут не только лишь все, мало кто может это делать. С другой стороны, MS пообещал развивать и поддерживать.

3. Что-то еще????

И параллельно, какие сторонние компоненты посоветуете для гламурного внешнего вида? На WinForms использовали DevExpress, в целом всё устраивает, но как-то тяжеловесно. Что скажете за другие библиотеки?

Спасибо.Посмотрите в сторону Telerik, у них вроде как есть возможность и свои темы дизайнить. Советую напрямую к ним обратиться со своими вопросами.
...
Рейтинг: 0 / 0
22.11.2014, 12:15
    #38813969
Alexsalog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
...
Рейтинг: 0 / 0
22.11.2014, 15:18
    #38814069
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
skyANAEDUARD SAPOTSKIпропущено...

Это когда берем ссылку на объект и ее передаем в один контруктор одной формочки, из нее в другой контруктор второй формочки... десятой. Затем из десятой дергаем метод девятой или генерим событие, из девятой восьмой... И затем половина разваливается при допиле 5-й формочки... лепота Хм. Этот стиль называется "кривые ручки".
К сожалению встречается не только в WinForms проектах.
+
...
Рейтинг: 0 / 0
22.11.2014, 19:08
    #38814169
RomanH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
EDUARD SAPOTSKI Но потом начинаешь понимать что в WPF/SL MDI по сути нафиг не нужен, в WinForms он фактически нужен от безисходности, а как иначе?

-1. причем жирный минус :)
Все известные десктоп операционные системы используют многооконность(многодокументность-MDI). Во многих из них есть MDI-навигатор(всем известный taskbar). Люди уже как 30 лет имеют возможность работать ОДНОВРЕМЕННО с несколькими окнами. И используя вышеупомянутый taskbar, переключаться с одной формы на другую и это более удобнее чем закладки(ИМХО и не только, некоторые юзеры предпочитают работать с десктоп приложениями так же как и в ОС - работа с несколькими формами в одном фрэме)
...
Рейтинг: 0 / 0
24.11.2014, 10:10
    #38814811
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
Уважаемые, я ничего не имею против MDI, юзайте на здоровье!
Говорю, что времена меняются, сегодня у нас есть множество вариантов организации навигации. Почему MDI стал так популярен? В первую очередь потому что разрешение экранов раньше было 800х600 и даже меньше, буржуйством считалось 1024х768. Что в такой экран засунешь? Правильно, одну простенькую формочку!
Сейчас сижу за моником 1680х1050, в такой размер можно спокойно засунуть одну жирную форму, которая информационно будет закрывать определенную категорию задач. Зачем таскбар? Можно через табы сделать, или рибон какой прикрутить.
Возмите тот же офис 2007 который вышел с рибоном всесто классического меню. По началу все плевались, и я плевался. Но вот 6 лет прошло и юзеры гартают те же рибоны и уже не плюются.
Технология WPF гораздо гибче в плане построения UI, если юзаю WPF то точно знаю, что заказчик не поставит меня в тупик очередной хотелкой в плане UI.
...
Рейтинг: 0 / 0
24.11.2014, 10:26
    #38814829
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
EDUARD SAPOTSKI, а не фиг писать глупости про безысходность в WinForms :)
...
Рейтинг: 0 / 0
24.11.2014, 10:36
    #38814845
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
RomanHEDUARD SAPOTSKI Но потом начинаешь понимать что в WPF/SL MDI по сути нафиг не нужен, в WinForms он фактически нужен от безисходности, а как иначе?

-1. причем жирный минус :)
Все известные десктоп операционные системы используют многооконность(многодокументность-MDI). Во многих из них есть MDI-навигатор(всем известный taskbar). Люди уже как 30 лет имеют возможность работать ОДНОВРЕМЕННО с несколькими окнами. И используя вышеупомянутый taskbar, переключаться с одной формы на другую и это более удобнее чем закладки(ИМХО и не только, некоторые юзеры предпочитают работать с десктоп приложениями так же как и в ОС - работа с несколькими формами в одном фрэме)

В WPF в принципе тоже есть MDI, точнее tabbed-MDI ( http://avalondock.codeplex.com/)
...
Рейтинг: 0 / 0
24.11.2014, 12:04
    #38814986
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
EDUARD SAPOTSKIТехнология WPF гораздо гибче в плане построения UI, если юзаю WPF то точно знаю, что заказчик не поставит меня в тупик очередной хотелкой в плане UI.

Вот это решающий аргумент в нашем случае.
...
Рейтинг: 0 / 0
24.11.2014, 13:15
    #38815079
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
Arm79В WPF в принципе тоже есть MDI, точнее tabbed-MDI ( http://avalondock.codeplex.com/)
Шум на пустом месте, проще надо быть. За 10 минут набросал:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" TextOptions.TextFormattingMode="Display">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="24" />
        </Grid.RowDefinitions>
        <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="4" />
            <RowDefinition Height="4*" />
            <RowDefinition Height="4" />
            <RowDefinition Height="2*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="4" />
            <ColumnDefinition Width="4*" />
            <ColumnDefinition Width="4" />
            <ColumnDefinition Width="2*" />
        </Grid.ColumnDefinitions>
        
        <Grid Grid.Column="2" Grid.Row="2" Background="#FF282E3B">
            <Grid.RowDefinitions>
                <RowDefinition Height="24" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <Grid Grid.Column="0" Grid.Row="0">
                <Grid.Background>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FF424E5C" Offset="0" />
                        <GradientStop Color="#FF262C34" Offset="1" />
                    </LinearGradientBrush>
                </Grid.Background>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="24" />
                    <ColumnDefinition Width="24" />
                    <ColumnDefinition Width="24" />
                </Grid.ColumnDefinitions>
                <TextBlock x:Name="textBlockTitle" Text="Window" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="8,0,0,0" Foreground="#FFF2DFDF" FontWeight="Bold" />
                <Button Grid.Column="1" Grid.Row="0" Template="{DynamicResource ButtonMDI_Template}" Background="{x:Null}" BorderBrush="#FF272D35" BorderThickness="1,0,0,0" Content="_" Foreground="White"/>
                <Button Grid.Column="2" Grid.Row="0" Template="{DynamicResource ButtonMDI_Template}" Background="{x:Null}" BorderBrush="#FF272D35" BorderThickness="1,0,0,0" Foreground="White" Content="±"/>
                <Button Grid.Column="3" Grid.Row="0" Template="{DynamicResource ButtonMDI_Template}" Background="{x:Null}" BorderBrush="#FF272D35" BorderThickness="1,0" Foreground="White" Content="X"/>
            </Grid>
			<Border Grid.Row="1" Margin="4,0,4,4" x:Name="content"  Background="#FF3A4450">		
			</Border>
        </Grid>
        <GridSplitter Grid.Column="2" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Stretch" Height="4" />
        <GridSplitter Grid.Column="2" Grid.Row="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Height="4" />
        <GridSplitter Grid.Column="1" Grid.Row="2" VerticalAlignment="Stretch" HorizontalAlignment="Center" Width="4" />
        <GridSplitter Grid.Column="3" Grid.Row="2" VerticalAlignment="Stretch" HorizontalAlignment="Center" Width="4" />
        </Grid>
        <Grid Grid.Row="1">
            <Grid.Background>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF424E5C" Offset="0" />
                    <GradientStop Color="#FF262C34" Offset="1" />
                </LinearGradientBrush>
            </Grid.Background>
        </Grid>
        <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Stretch" HorizontalAlignment="Left">
            <Button Content="Window 1" Width="120" Style="{DynamicResource ButtonMDI}" Template="{DynamicResource ButtonMDI_Template}" Background="{x:Null}" Foreground="White" BorderThickness="1,0" BorderBrush="#FF272D36"/>
            <Button Content="Window 2" Width="120" Template="{DynamicResource ButtonMDI_Template}" Background="{x:Null}" Foreground="White" BorderThickness="0,0,1,0" BorderBrush="#FF272D36"/>
            <Button Content="Window 3" Width="120" Background="{x:Null}" Template="{DynamicResource ButtonMDI_Template}" Foreground="White" BorderThickness="0,0,1,0" BorderBrush="#FF272D36"/>
            <Button Content="Window 4" Width="120" Background="{x:Null}" Template="{DynamicResource ButtonMDI_Template}" Foreground="White" BorderThickness="0,0,1,0" BorderBrush="#FF272D36"/>
        </StackPanel>
    </Grid>
</Window>




Как разнести это в отдельные классы, динамически подгружать контент и прописать разные драг энд дропы надеюсь объяснять не нужно.
...
Рейтинг: 0 / 0
24.11.2014, 13:18
    #38815088
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
EDUARD SAPOTSKIКак разнести это в отдельные классы, динамически подгружать контент и прописать разные драг энд дропы надеюсь объяснять не нужно.
Не-а, не нужно, я WFP пока не увлекаюсь. Но AvalonDocks и WpfMdi на слуху были.
...
Рейтинг: 0 / 0
25.11.2014, 10:23
    #38815831
Диез
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
EDUARD SAPOTSKIArm79В WPF в принципе тоже есть MDI, точнее tabbed-MDI ( http://avalondock.codeplex.com/)
Шум на пустом месте, проще надо быть. За 10 минут набросал:
...

Как разнести это в отдельные классы, динамически подгружать контент и прописать разные драг энд дропы надеюсь объяснять не нужно.

То, что вы реализовали, внешне слегка напоминает MDI, но таковым не является :)

Нет, по крайней мере, двух важных (на мой взгляд) фич:

- Управление окнами с клавиатуры (т.е. без мыши, от слова "вообще")
- Merge главного меню дочерних окон в главное меню родительского.

MDI, при всей его древности, весьма продуманный интерфейс. А вот в наше время разработчики часто забывают про эргономику как таковую ;)

Сколько времени, по-вашему, займет реализация этих пунктов на WPF?
И не проще ли взять готовое решение? Хотя бы тот же MDI (хотя я предпочитаю DockPanel Suite )
...
Рейтинг: 0 / 0
25.11.2014, 10:53
    #38815854
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
.. какая клавиатура, если скоро все будут тыкать в форму пальцами .. ну, или чем придется ...
...
Рейтинг: 0 / 0
25.11.2014, 10:58
    #38815867
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
carrotikкакая клавиатура, если скоро все будут тыкать в форму пальцами
Распространенное заблуждение. На самом деле есть такие категории пользователей (например, операционисты банка), для которых скорость реакции интерфейса очень важна. И они массово используют горячие клавиши. Иногда мне кажется, что они буквально играют на клавиатуре, как на рояле.
...
Рейтинг: 0 / 0
25.11.2014, 11:03
    #38815870
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Десктоп приложение
ДиезСколько времени, по-вашему, займет реализация этих пунктов на WPF?
У меня уже есть MDI который написал несколько лет назад. Тогда на это ушло несколько дней. Сейчас на реализацию такого уйдет не более дня.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Десктоп приложение / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]