Мы двигаем классический ASP с помощью платформы MVC в.Net 3.5?

После более чем недели упорных попыток я придумал элегантное решение:

В XML я использовал привязку данных:

<data>
        <variable
            name="shape"
            type="chat.rocket.android.helper.Constants"/>
</data>
...
<com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/image_avatar"
            android:layout_width="40dp"
            android:layout_height="40dp"
            app:roundedCornerRadius='@{shape.AVATAR_SHAPE_CIRCLE ? @dimen/circle_avatar_corner_radius : @dimen/square_avatar_corner_radius}' />

Поскольку roundedCornerRadius не иметь соответствующий setRoundedCornerRadiusIn BindingAdapters.kt,

@BindingAdapter("roundedCornerRadius")
fun setRoundedCornerRadius(view: SimpleDraweeView, height: Float) {
    val roundingParams = RoundingParams.fromCornersRadius(height)
    view.hierarchy.roundingParams = roundingParams
} 

Файл Constants.kt имеет константу, которую можно настроить для изменения формы:

object Constants {
    ...
    const val AVATAR_SHAPE_CIRCLE = true
}

В RecyclerViewAdapter, [1114 ]

...
val layoutInflater = LayoutInflater.from(parent.context)
val binding: ViewDataBinding = DataBindingUtil.inflate(layoutInflater, R.layout.item_contact, parent, false)
ContactViewHolder(binding.root)
...

Это лучшее решение, которое я мог придумать. Было бы замечательно, если бы был способ применить несколько атрибутов в зависимости от значения shape.AVATAR_SHAPE_CIRCLE. Например.

if(shape.AVATAR_SHAPE_CIRCLE)
    apply these attr
else
    apply these attr

Предложения приветствуются!

7
задан Murtaza Mandvi 28 January 2013 в 17:08
поделиться

5 ответов

Мы пятимся к не попытке абстрагировать далеко фундаментальные понятия как HTML и Запросы HTTP. На конце UI, который переводит в Представления, более тесно интегрируемые с выводом, который не является плохой вещью. классическая модель ASP перевела в тесно интегрирование всего с выводом, который является плохой вещью.

8
ответ дан 6 December 2019 в 21:21
поделиться

Можно было утверждать, что парадигма MVC является шагом назад, если Вы считаете парадигму ASP.NET шагом вперед, я предполагаю. Лично я всегда думал, что было намного легче написать чистый разделенный код в классическом ASP, а не.NET, где из синтезируемого текста дисплея обычно делали пюре в блоки кода, где это было невозможно к доступу со стандартным редактором HTML. Я всегда думал, что архитектура ASP.NET была больше о продвижении.NET, чем улучшение полной структуры нас приложение, таким образом, в этом смысле MVC является шагом вперед.

2
ответ дан 6 December 2019 в 21:21
поделиться

Это забавно, что Вы упоминаете это... У меня был тот же разговор с коллегой сегодня.

Действительно ли это - шаг, перемещающийся назад? Я не думаю так..., в то время как у классического asp у Вас была некоторая сложная логика в UI, от того, что я вижу с MVC, сложная логика должна все еще быть в Ваших бизнес-объектах, и любое сложное взаимодействие с объектом должно быть сделано через Контроллер.

Цель, снова, от того, что я вижу, состоит в том, чтобы сохранить UI подтянутым и в форме когда дело доходит до фактической бизнес-логики. Любое дополнительное чрезмерное увеличение размера было бы вызвано путем создания UI более удобным для пользователя с подобными Ajax и JQuery.

Это - просто мое начальное наблюдение относительно MVC. Это - очень прохладная технология, особенно с тем, как это находится сверху REST, делает очень легким работать с от других технологий.

Я надеюсь испытать его в нескольких будущих проектах!

1
ответ дан 6 December 2019 в 21:21
поделиться

Если Вы видите логику сложного кода в Представлении относительно Моделей и Контроллеров, чем, возможно, Вы приближаются к нему неправильный путь.

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

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

1
ответ дан 6 December 2019 в 21:21
поделиться

Весь смысл MVC для разделения кода. Модели должны содержать всю Вашу бизнес-логику, Представление должно просто обработать вывод пользователю, и Контроллер должен склеить те две части.

0
ответ дан 6 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: