Добро пожаловать задавать тот же вопрос на группа Google. Вы найдете больше чем 500 пользователей там, и некоторые из них являются строительными проектами строительных компаний для их клиентов.
Мое впечатление - то, что большинство из них использует postgresql (это - то, что я делаю к), и некоторые другие используют Google App Engine. На самом деле web2py является единственной платформой, которая позволяет Вам писать код однажды, и тот же код будет работать на GAE, SQLite, MySQL, PostgreSQL, Oracle, MSSQL и FireBird (с ограничениями, наложенными GAE).
можно найти Красноватый (reddit клон) устройством с исходным кодом для GAE здесь
Здесь , можно найти ссылки на некоторое производственное приложение. Некоторые работают на GAE.
@Armin:
Ничто не неправильно с Django или Опорами. Они - превосходные платформы. Я использовал их прежде, чем разработать web2py. Существует несколько вещей, которые можно сделать с web2py, что Вы не можете с ними. Например:
существует много вещей, что web2py добивается большего успеха (использование более когерентного API) и быстрее (обрабатывающий шаблоны и генерирующий SQL, например). web2py также очень компактен (все модули помещаются в 265K байты), и поэтому намного легче поддержать, чем те конкурирующие проекты.
только необходимо изучить Python и 81 новую функцию/класс (50 из которых имеют те же имена и атрибуты, как соответствующие HTML-тэги, BR
, DIV
, SPAN
, и т.д. и 19 являются блоками проверки допустимости, IS_IN_SET
, IS_INT_IN_RANGE
, и т.д.).
Так или иначе, самая важная проблема - то, что web2py легче, чем Django, Опоры, PHP и направляющие.
Вы также заметите, что web2py размещается и на Google Code и Launchpad и нет открытых билетов. Все прошлые вопросы были решены меньше чем за 24 часа.
можно также проверить список рассылки Google, что все потоки (10 056 сообщений сегодня) закончились с ответом от меня или одного из других разработчиков в течение 24 часов.
можно найти книгу по web2py на Amazon.
Armin, я знаю, что Вы - разработчик Джинджи. Я люблю Джинджу, но имею различные принципы проектирования. И Django и Джинджа определяют их собственные шаблонные языки (и Джинджа в особенности имеет превосходную документацию), но я действительно предпочитаю использовать чистый Python в шаблонах так, чтобы мои пользователи не делали никакой потребности выучить шаблонный язык вообще. Я хорошо знаю о за и против каждого подхода. Позвольте нам, пользователи решают то, что они предпочитают. Никакая потребность подвергнуть критике друг друга.
@Andre: db.table.field относится к объекту поля. 'table.field' является именем поля. Можно всегда передавать объект поля, когда имя поля требуется, потому что str (db.table.field) является 'table.field'. Единственный случай Вы обязаны использовать строку вместо объекта, - когда необходимо сослаться по имени на поле, которое не было уже определено..., возможно, мы должны переместить это обсуждение в надлежащее место.;-)
я надеюсь, что Вы решите дать web2py попытку и, нравится ли Вам это или нет, я хотел бы услышать Ваше мнение.
Marcus,
You might want to at look at the answer for another StackOverflow question, which is very similar: Win32 File Name Comparison , which in turn mentions http://www.siao2.com/2005/10/17/481600.aspx .
Following a link in another answer to the same question and digging further, I came across the following MSDN article http://msdn.microsoft.com/en-us/library/ms973919.aspx . It is worth a read in general, but when it comes to file name comparison it recommends using StringComparison.OrdinalIgnoreCase. See Table 1 in the article, which contains file paths as one of the data types handled or the following the quote:
So, when interpreting file names, cookies, or anything else where something like the å combination can appear, ordinal comparisons still offer the most transparent and fitting behavior.
Hopes this helps, Boaz
Может, вам стоит попробовать следующее: http://msdn.microsoft.com/en-us/library/zkcaxw5y.aspx
Вы можете использовать InvariantCulture (см. http://msdn.microsoft.com /en-us/library/4c5zdc6a.aspx[1126074ght).[12128 impression В вашем примере:
FileA.Equals(FileB,StringComparison.InvariantCultureIgnoreCase )
Вы должны использовать StringComparison.OrdinalIgnoreCase
в соответствии с Рекомендации по использованию строк в .NET Framework .
Строковое поведение файловой системы, ключей и значений реестра, а также переменных среды лучше всего представлено StringComparison.OrdinalIgnoreCase.
Если вы используете культуру для сопоставления строк, вы можете получить ситуация, в которой, например, имена "häl.gif" и "hal.gif" будут считаться совпадающими.
а переменные среды лучше всего представлены StringComparison.OrdinalIgnoreCase.Если вы используете язык и региональные параметры для сопоставления строк, вы можете попасть в ситуацию, в которой, например, имена «häl.gif» и «hal.gif» будут считаться совпадение.
а переменные среды лучше всего представлены StringComparison.OrdinalIgnoreCase.Если вы используете язык и региональные параметры для сопоставления строк, вы можете попасть в ситуацию, в которой, например, имена «häl.gif» и «hal.gif» будут считаться совпадение.
Это невозможно сделать надежно.
Да, преобразование регистра для файловой системы нечувствительно к регистру.
Но таблица преобразования регистра хранится в самой файловой системе (для NTFS), и он меняется от версии к версии (например, таблица преобразования регистра Vista была переведена на уровень Unicode 5, поэтому Vista NTFS и XP NTFS имеют разные правила преобразования регистра).
И важно то, что ОС, которая форматировала файловую систему, а не текущая ОС.
Тогда вы можете столкнуться со всевозможными проблемами с другими файловыми системами (Mac OS выполняет некоторую нормализацию Unicode (не стандартную)), Linux ничего не делает , но Samba (реализующая протокол обмена файлами Windows) делает. И имеет другие таблицы, кроме Windows.
Так что же произойдет, если я сопоставлю букву сетевому диску, совместно используемому Linux или Mac OS?
В общем, вам никогда не следует пытаться сравнивать имена файлов. Если вы хотите узнать, есть ли он там, попробуйте получить к нему доступ.