Я не соглашаюсь с ответом John's. DataContext (или Linq к Объектам ObjectContext) является большим количеством "единицы работы", чем соединение. Это справляется с отслеживанием изменений, и т.д. Посмотрите это сообщение в блоге для описания:
Время жизни LINQ к SQL DataContext
четыре основных момента этого сообщения в блоге то, что DataContext:
Should be used very carefully after
any SumbitChanges() operation.
по этой причине, я не думаю с помощью больше чем одного DataContext, делал бы что-то плохое - на самом деле, создавание различного DataContexts для различных типов работы поможет сделать LinqToSql impelmentation более usuable и организованным. Единственный недостаток - Вы, не был бы в состоянии использовать sqlmetal, чтобы автоматически сгенерировать Ваш dmbl.
PyQt, если вы разрабатываете что-то серьезное, особенно потому, что то, что вы изучаете, будет напрямую переведено на работу с Qt и на других языках, если вам когда-нибудь понадобится, а Qt, вероятно, лучший кроссплатформенный набор инструментов интерфейса доступен прямо сейчас.
Есть только два реальных (потенциальных) недостатка:
PyQt доступен только под лицензией GPL. Это означает, что если вы выпускаете свой код, он должен быть доступен по совместимой лицензии, в соответствии с условиями Исключения GPL Nokia или по коммерческой лицензии (которая стоит денег). В этом отличие от Qt, который теперь доступен в рамках LGPL.
PyQt по умолчанию не включен в установку Python. Вам придется самостоятельно упаковать библиотеку. (У Ars Technica есть хорошая статья о том, как это сделать для Windows и OS X.)
Я использую tkinter
для небольших приложений с простым интерфейсом. Мне это очень нравится, даже если отсутствие хорошего WYSIWYG редактора может быть проблемой для более крупного приложения.
Для больших приложений PyQt
может быть лучшим выбором. У него очень хороший дизайнер экрана, но с лицензированием могут возникнуть проблемы.
Наконец, wxPython
может быть хорошей альтернативой, поскольку у него нет этих недостатков.
PyQt сейчас является нашим основным набором инструментов графического интерфейса, и после 1 года разработки я не хочу возвращаться ни к чему другому. Он стабильный, зрелый, кроссплатформенный и полностью нативный. Даже системные диалоговые окна (например, для открытия файлов) используются вашей операционной системой.
Я изменил свою тему XP, и теперь мои приложения выглядят соответственно. Это создает очень профессиональный вид, несравнимый с таким инструментарием, как Swing
. API обширен и выходит за рамки чисто графических элементов, таких как виджеты. Он поддерживает подключение к базе данных, печать, многопоточность (я использовал его, и он работает как шарм), ... Я даже использую его для создания PDF-файлов (никаких других внешних библиотек не требуется). Я бы порекомендовал книгу Марка Саммерфилда « Быстрое программирование графического интерфейса с помощью Python и Qt », чтобы ускорить процесс.
Я даже использую этот конструктор для создания макетов, чтобы показать их пользователям (это так просто!).
Я представил его двум другим разработчикам и не слышал, чтобы они жаловались ...
Я использую PyQt - кроссплатформенный, простой в работе и надежный.
Я использовал TkInter очень легкий, и я не могу найти смысла сделать tkInter лучше, чем PyQt .
PyQt действительно легко изучить, и документация для Qt также работает для PyQt, также есть порты для .NET и Java. Итак, это сказочная кросс-платформа и кросс-язык. Также у вас есть PyQt, интегрированный в Eric IDE .
Поддержка стилей CSS также действительно великолепна.
См. Новый установщик OpenSuSE, чтобы узнать, что вы можете с ним сделать.