Приложение Windows Forms "Дизайн" - PullRequest
0 голосов
/ 18 января 2009

Я планирую написать «среднее» приложение WinForms, которое я напишу на C #, .NET 3.5. У меня есть несколько «общих вопросов о дизайне», которые я надеялся получить здесь.

  1. Обработка исключений в целом. Каков наилучший способ обработки исключений? Использовать блоки try / catch везде? это
  2. Локализация. Если я хочу иметь поддержку нескольких языков в своем приложении, что я должен использовать? Я считаю "спутниковые сборки" очень ... ну, "громоздким", кажущимся решением - мне не нужен "ад" файла ресурсов, и я не хочу вводить переводы внутри интерфейса VS. 1008 *
  3. Хранение данных локально. Ранее я использовал System.Data.SQLite в проекте, но я подумал, есть ли что-то еще, что я должен рассмотреть.
  4. Что-нибудь еще, что я должен иметь в виду?

Спасибо (?)

Ответы [ 6 ]

3 голосов
/ 18 января 2009

1) Не ловите никаких исключений. Подавляющее большинство из них сообщают вам об ошибке в вашем коде, вы захотите узнать о них сразу же. Если во время тестирования и развертывания вы обнаружите ошибки, которые, по вашему мнению, можно устранить (их не так много), вы всегда можете добавить блок try / catch. Если вы планируете обрабатывать исключения, обязательно обильно посыпьте блоки try / finally в своем коде, чтобы сохранить состояние ваших классов, даже если есть исключение, препятствующее выполнению кода очистки. Нет никаких заметных затрат на использование try без улова.

2) Сателлитные сборки не громоздкие. Просто небольшая DLL в подкаталоге вашей папки развертывания. Никакого специального кода не требуется, все автоматически. Прежде всего, это стандартное решение. Вы можете отправлять файлы .resx в службу локализации, и они будут использовать стандартные инструменты (например, Winres.exe), чтобы предоставить вам переводы. Просить их разобраться с чем-то нестандартным будет дорого и потенциально хлопотно.

3) Альтернативами являются SQL Server CE (такой же подход, как SQLite) и SQL Server Express. Последний дает вам максимальную отдачу, но должен быть установлен. Это не сложно.

4) Это зависит от вашей целевой аудитории, но если внешний вид влияет на решение о покупке, наймите дизайнера пользовательского интерфейса. Он / она поймает блокпосты пользовательского интерфейса и сделает его элегантным.

1 голос
/ 18 января 2009
# 1 - Если вы заботитесь о производительности своего приложения, избегайте try / catch. Воспользуйтесь профилировщиком, например, из RedGate (к сожалению, ANTS - это не бесплатная программа), чтобы убедиться, что блок try / catch потребляет много процессорного времени, особенно если нужно перейти в «catch». Просто попробуйте найти другой путь, у .net есть много других методов, которые вы можете использовать, чтобы сделать берег, исключений не будет, я знаю, что проще использовать try / catch, но решите, какова ваша цель.

# 2 - Я полагаю, что вы можете использовать файлы ресурсов, скомпилированные с вашим приложением, поэтому у вас не будет никакого отдельного файла, если это то, что вы спрашиваете?

# 3 - я действительно должен ответить на этот вопрос :), лично я думаю, что нет лучшего / более удобного способа локального хранения данных, чем использование XML, как уже упоминалось ранее, вы можете использовать LINQ to XML для запроса этого файла, что очень просто. Он небольшой, быстрый, простой в создании, обслуживании и, что более важно, вы можете отправить его через Интернет без каких-либо проблем, которые могут возникнуть при использовании других способов хранения данных, например - брандмауэр или любой ISD не будет проблемой, потому что это в основном текстовый файл. Я просто люблю XML.

Это было полезно?
0 голосов
/ 03 марта 2009

Почему бы не загрузить Visual C # 2005 или 2008 Express Edition? Проектирование просто

  1. Открыть Visual C #
  2. Открыть Создать
  3. Открыть диалог создания проекта
  4. Дизайн это
  5. Код это
  6. Опубликовать

Скачать 2005 ->

Скачать 2008 ->

0 голосов
/ 18 января 2009
  1. Как упоминалось ранее, блок обработки исключений
  2. Не сделано много локализации, но обработка ресурсов в VS 2008 значительно лучше чем VS 2003
  3. SQL Server Compact Edition , VistaDB и Codegear Blackfish это продукт, который вы может расследовать. SQL CE бесплатный но остальные стоят денег
0 голосов
/ 18 января 2009

У меня почти такой же ответ, как и у aku на первый вопрос, вы можете взглянуть на Enterprise Library в целом, так как есть несколько полезных блоков, таких как блоки Logging и Validation.

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

Без лучшего представления о том, какие данные / приложения вы разрабатываете, довольно сложно порекомендовать локальное хранилище данных. У меня есть пара мыслей (без определенного порядка):

  1. Файл XML является переносимым и может управляться с помощью LINQ-> XML.
  2. Ваши объекты стабильны? Вы всегда можете их сериализовать .... (хотя я не рекомендую это)
  3. Несмотря на то, что данные локальны, они будут (в некоторых случаях или все) лучше передаваться на сервер другим пользователям в будущем.
  4. Вы упомянули SQLite, рассматривали ли вы SQL Server CE?
  5. Какую производительность запросов должен поддерживать уровень данных?
0 голосов
/ 18 января 2009

По первому вопросу - взгляните на Корпоративная библиотека Блок обработки исключений. Microsoft проделала большую работу по предоставлению документации и кода для решения этой проблемы.

Что касается другого вопроса (особенно № 4), трудно что-то порекомендовать, не зная деталей вашего заявления.

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