Будет ли эта архитектурная стратегия работать для бизнес-приложений, написанных на F #? - PullRequest
1 голос
/ 20 августа 2010

Я думал о том, как написать бизнес-приложение только на F # с WPF. Вот мои мысли об общих чертах того, как это сделать, но я ищу, будет ли это работать или нет:

  1. Начните с ADO.NET Entities для автоматического создания слоя доступа к данным.
  2. Поскольку F # не поддерживает частичные классы, используйте методы расширения F # для создания BLL, который расширяет объекты-сущности дополнительными членами (они должны будут мутировать объекты)
  3. Вместо написания явных ViewModels, напишите функции F #, которые на лету строят объекты ViewModel, используя выражения объектов.
  4. Напишите функцию F #, которая использует активные шаблоны и деревья решений для создания представлений WPF на лету, учитывая объекты ViewModel в качестве входных данных. Он также позаботится о настройке привязок между объектами View и ViewModel.

Таким образом, открытие формы или страницы потребовало бы выполнения функции для создания экземпляра объекта ViewModel, а затем передачи ее функции, которая создает представление из ViewModel, и установки ее в качестве содержимого вашего окна. С этого момента он выполняется обычным «изменяемым» способом MVVM.

Мои знания по F # по-прежнему ограничены, поэтому я могу спуститься не в ту кроличью нору.

Вопрос (ы):

  • Будет ли это работать (в общем) или нет?
  • Есть ли лучший способ, о котором вы знаете?

Ответы [ 2 ]

3 голосов
/ 20 августа 2010

Я не знаю много о сущностях ADO.NET, или MVVM, или WPF, поэтому я не могу лично дать много критики технических идей. Похоже, у вас есть опыт работы со всеми этими технологиями и вы знаете, что там происходит. Так что мой единственный комментарий заключается в том, что, похоже, слишком много новых вещей, чтобы попробовать все сразу. Чтобы снизить риски и повысить шансы на успех, я бы разбил это на несколько проектов. Например. возможно, начните с традиционного слоя данных, используя существующие инструменты, и просто попробуйте свои идеи для F # View & ViewModel. И как только вы разобрались с изломами и освоились с F #, попробуйте заняться уровнем данных.

Также будьте в курсе

http://blogs.msdn.com/b/dsyme/archive/2010/07/29/some-f-project-templates-available-online.aspx

которые включают, например, Стартовые шаблоны MVVM для F #, если они дают какие-либо идеи / ценность (мне неясно, насколько ваша стратегия отходит от традиции, чтобы знать, будет ли это полезно).

Вот еще одна случайная ссылка, которая может или не может быть ценной:

F # и ADO.NET - идиоматический F #

0 голосов
/ 20 августа 2010

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

Но меня беспокоит производительность: F # использует много рекурсии, особенно в случае деревьев решений, что будет много работы во время выполнения.Я хотел бы рассмотреть предварительную генерацию всего или систему кеширования.Это нормально для генерации во время выполнения с использованием метапрограммирования, но зачем делать это каждый раз, когда вы можете сделать это только один раз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...