Внутренние платформы по сравнению с новыми технологиями C#

если self.automaticallyAdjustsScrollViewInsets = NO; не работает на Вас, удостоверьтесь высота или в tableview заголовке или разделите заголовок, CGFLOAT_MIN не 0.

, Например, если Вы хотите сделать tableview заголовок 0 высокими, можно сделать:

    CGRect frame = self.tableViewHeader.frame;
    frame.size.height = CGFLOAT_MIN; //not 0
    self.tableView.tableHeaderView.frame = frame;
    self.tableView.tableHeaderView = self.tableViewHeader;

Hope это помогает.

5
задан skaffman 11 December 2010 в 21:31
поделиться

13 ответов

  1. Потому что новые разработчики будут знать новые фреймворки, но не вашу
  2. Таким образом, вам не нужно тратить время на поддержку кода, который Microsoft будет поддерживать для вас

Кстати, "LINQ" по сути, это технология, дополняющая ваш фреймворк

16
ответ дан 18 December 2019 в 05:17
поделиться

Потому что то, что у вас сейчас есть, является частным и неизвестным ... и вы хотите все равно сможете эффективно разрабатывать свой код, если у вас появятся новые сотрудники.

Нет ничего плохого в написании собственной ORM, но, возможно, Entity Framework 2 содержит кое-что, о чем вы не думали - и за этим стоит целая команда и сообщество постоянно улучшать его, пока ваш код просто устаревает (кстати, я не говорю, что это так - это всего лишь пример).

С личной точки зрения знание nHibernate - это передаваемый навык. Зная, что CompanyXORM - нет.

Нет ничего плохого в написании собственной ORM, но, возможно, Entity Framework 2 содержит кое-что, о чем вы не задумывались - и за этим стоит целая команда и сообщество, которые постоянно улучшают его, пока ваш код просто устаревает (я Я, кстати, не говорю, что это так - это просто пример).

С личной точки зрения знание nHibernate - это передаваемый навык. Зная, что CompanyXORM - нет.

Нет ничего плохого в написании собственной ORM, но, возможно, Entity Framework 2 содержит кое-что, о чем вы не задумывались - и за этим стоит целая команда и сообщество, которые постоянно улучшают его, пока ваш код просто устаревает (я Я, кстати, не говорю, что это так - это просто пример).

С личной точки зрения знание nHibernate - это передаваемый навык. Зная, что CompanyXORM - нет.

10
ответ дан 18 December 2019 в 05:17
поделиться

У нас точно ваша ситуация, когда я работаю. У нас есть собственная структура ORM, созданная со времен .NET 1.1.

Мы постепенно принимаем новые технологии. Почему?

  • Потому что .NET framework теперь предлагает из коробки все, что было создано с большими усилиями. Было бы полезно выбросить большой кусок устаревшего кода в пользу нескольких вызовов API.

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

  • Если вы думаете о других ORM, позвольте мне сказать вам, что над ними работало большое количество очень квалифицированных людей, и они, вероятно, сделали это лучше, чем вы.

  • Если вы нанимаете новых людей, их легче в кратчайшие сроки сделать продуктивными, если вы построили на общей основе. В противном случае вы получите долгую неудачу, пока они не изучат вашу структуру.

  • Если вы не используете последние навороты, многие интересные люди не будут работать на вас. Или, если вам удастся обманом заставить их спеть, вы не сможете удерживать их надолго.

4
ответ дан 18 December 2019 в 05:17
поделиться

Еще один момент, который следует учитывать:
затраты против выгод

Сколько вам обходится:

  • поддерживать свою структуру, устранять ошибки, повышать производительность и т. д.
  • разрабатывать новые функции
  • обучать свой нынешний персонал улучшениям и внутренним передовым методам
  • обучать новых разработчиков, которые никогда не видели вашу структуру

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

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

3
ответ дан 18 December 2019 в 05:17
поделиться

На мой взгляд, вам следует, по крайней мере, проверить эти новые технологии и сравнить их с теми, которые вы разработали.
Составьте список плюсов и минусов новых технологий по сравнению с тем, что у вас есть, и решите, что лучше использовать в ваших следующих проектах.

Однако , если вашему фреймворку 16 лет, вам действительно следует позаботиться о нем, потому что на этом этапе он будет сдерживать вас в ряде ситуаций, которые вы встретите в новых проектах.

4
ответ дан 18 December 2019 в 05:17
поделиться

Ключевым моментом здесь является то, сколько времени и усилий вы вкладываете каждый год в поддержку этой 16-летней структуры. Вы должны оценить другие структуры, чтобы увидеть, соответствуют ли они вашим конкретным потребностям и сколько прямых / косвенных затрат потребуется в краткосрочной и долгосрочной перспективе.

2
ответ дан 18 December 2019 в 05:17
поделиться

Просто потому, что вашему новому работодателю наплевать на ваши знания какой-то проприетарной внутренней структуры.

1
ответ дан 18 December 2019 в 05:17
поделиться

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

Что касается конкретной области доступа к данным, если вы не используете LINQ / ADO.NET Data Services / ORM, вы найдете веские причины в нескольких областях:

  1. Поддержка RESTful API для доступа к вашей базе данных, которая не позволяет вам реализация множества контрактов и операций в ваших сервисах.

  2. Запросы LINQ очень эффективны для обработки данных без циклического обхода.

  3. Отход от модели хранимых процедур доступа к данным.

  4. Выходящие фреймворки / платформы предназначены для хорошей работы с этими технологиями. Например, LINQ довольно хорошо сочетается с WPF / Silverlight, поскольку вы имеете дело с множеством IEnumerable коллекций ваших простых старых объектов C # / объектов передачи данных.

Это всего несколько причин, но есть гораздо больше. Сообщество было важной причиной, по которой мне нравилось использовать внешние проекты - либо экосистему Microsoft, если вы выбираете Entity Framework, либо очень активное сообщество с открытым исходным кодом вокруг таких проектов, как NHibernate.

Хотя мне кажется, что многие люди, которые работают над этими проектами, умнее меня, на данный момент, если предположить, что я такой же умный, как и они, проблема, которая остается, заключается в том, что они тратят огромное количество времени на жизнь в этой конкретной проблемной области, в то время как у меня есть другие проблемы, на которых мои клиенты нуждаются во мне. Позволив Джону Смарту или Джейн Интеллигент сосредоточиться на ORM,

1
ответ дан 18 December 2019 в 05:17
поделиться

Я могу придумать пару причин.

  • LINQ принесет вам пользу во многих отношениях (выполняя все виды различных задач) и не исключает друг друга. linq 2 sql - это другая история
  • Вероятно, по этим общедоступным технологиям доступно больше знаний и руководств, чем по вашей структуре
  • Другие части технологии могут быть созданы для хорошей интеграции с этими общедоступными технологиями, где вы должны сделать работать для вашей структуры
  • Если клиенту когда-либо понадобится сменить магазин, ему будет легче (это больше польза для клиента, чем для вас, но я думаю, что ваш долг подумать об этом)
  • легче нанять новых сотрудников, которые уже знают эти общедоступные технологии. Скорее всего, вы не найдете того, кто знает вашу. Таким образом, время на привлечение новых людей может быть намного меньше.

Итак, глядя на эти аргументы, я думаю, вам нужно перевернуть вопрос и сказать. Чем моя технология превосходит другие, стоит ли это того? Может быть, вы могли бы что-то добавить к общественным технологиям?

0
ответ дан 18 December 2019 в 05:17
поделиться

Во многих случаях написание собственной реализации ORM / CodeGen / Workflow / Other позволяет вам быть очень чувствительным к потребностям вашего приложения. Вы можете настроить свою реализацию, чтобы полностью удовлетворить все требования, и развивать ее по мере изменения требований.

С другой стороны, вы несете ответственность за поддержку, тестирование и отладку еще большего количества кода. Если есть сторонние реализации, которые также соответствуют вашим требованиям, полезно их рассмотреть, поскольку это снижает нагрузку на вашу команду по обслуживанию. Кроме того, он будет продолжать развиваться и улучшаться, потому что это основная ответственность стороннего разработчика. В продукт могут быть включены новые функции и подходы, которые вы сочтете полезными, о которых вы не могли придумать или просто не могли оправдать затраты времени на внедрение. Вдобавок ко всему, объем инвестиций, которые вы должны вложить в обучение новых людей, сокращается, поскольку доступно больше материалов и повышается вероятность того, что они уже знакомы с этой технологией.

Но позвольте мне подчеркнуть - делайте то, что заставляет смысл тебе. Если ваша текущая ORM работает хорошо, нет необходимости изменять . Когда действительно придет время вносить изменения в ORM, будет полезно подумать, стоит ли просто переключиться на что-то еще, если это соответствует вашим требованиям.

s нет необходимо изменить . Когда действительно придет время вносить изменения в ORM, будет полезно подумать, стоит ли просто переключиться на что-то еще, если это соответствует вашим требованиям.

s нет необходимо изменить . Когда действительно придет время вносить изменения в ORM, будет полезно подумать, стоит ли просто переключиться на что-то еще, если это соответствует вашим требованиям.

0
ответ дан 18 December 2019 в 05:17
поделиться

Потому что другие разработчики возненавидят его использовать и будут возмущаться за то, что вы заставили их использовать его.

0
ответ дан 18 December 2019 в 05:17
поделиться

Использование существующих фреймворков дает множество преимуществ. - Знание. Всем, кого вы пригласите поработать с вашим фреймворком, придется изучить его. С другой стороны, есть масса людей, знающих, как работать с EF, NHibernate и т. Д.

  • Knowledge. Вы найдете множество информации, советов, практических рекомендаций, книг, видео и т. Д. О существующих фреймворках. Если вы хотите иметь эти материалы для своей структуры, вы должны заплатить за их создание.

  • Знание. Попробуйте задать вопрос о своем фреймворке в StackOverflow. Шансы получить ответ очень малы.

  • Эволюция. NHibernate и EF постоянно развиваются. Стоимость разработки собственной инфраструктуры полностью ложится на вас, и вы не можете делиться ею с другими компаниями ... если, конечно, вы не продаете лицензии на нее и не конкурируете с EF, NHibernate и т. Д.

  • Ошибки. Это связано с предыдущим. Вы должны исправить свои собственные ошибки, вместо того, чтобы просто сообщить о них.

  • Ловкость. Это самый большой из них. Ваш фреймворк так же прост в использовании и так же быстр в разработке, как и тот, который использует linq. Очень сложно создать что-то столь же хорошо продуманное, как linq.

  • Языковая интеграция. Преимущество Microsoft в том, что язык определяется так, чтобы он адаптировался к фреймворкам. Для Linq C # значительно эволюционировал. Без этих эволюций Linq даже не существовал бы.

Единственное преимущество в сохранении собственной структуры - это то, что вы ее контролируете. Это очень ложное ощущение безопасности, поскольку вы контролируете фреймворк, но все же не контролируете то, на чем вы его построили. Пребывание в зоне комфорта создает ложное чувство безопасности.

Ваш фреймворк так же прост в использовании и так же быстр в разработке, как и тот, который использует linq. Очень сложно создать что-то столь же хорошо продуманное, как linq.

  • Языковая интеграция. Преимущество Microsoft в том, что язык определяется так, чтобы он адаптировался к фреймворкам. Для Linq C # значительно эволюционировал. Без этих эволюций Linq даже не существовал бы.

  • Единственное преимущество в сохранении собственной структуры - это то, что вы ее контролируете. Это очень ложное ощущение безопасности, поскольку вы контролируете фреймворк, но все же не контролируете то, на чем вы его построили. Пребывание в зоне комфорта создает ложное чувство безопасности.

    Ваш фреймворк так же прост в использовании и так же быстр в разработке, как и тот, который использует linq. Очень сложно создать что-то столь же хорошо продуманное, как linq.

  • Языковая интеграция. Преимущество Microsoft в том, что язык определяется так, чтобы он адаптировался к фреймворкам. Для Linq C # значительно эволюционировал. Без этих эволюций Linq даже не существовал бы.

  • Единственное преимущество в сохранении собственной структуры - это то, что вы ее контролируете. Это очень ложное ощущение безопасности, поскольку вы контролируете фреймворк, но все же не контролируете то, на чем вы его построили. Пребывание в зоне комфорта создает ложное чувство безопасности.

    C # значительно эволюционировал. Без этих эволюций Linq даже не существовал бы.

    Единственное преимущество в сохранении собственной структуры - это то, что вы ее контролируете. Это очень ложное ощущение безопасности, поскольку вы контролируете фреймворк, но все же не контролируете то, на чем вы его построили. Пребывание в зоне комфорта создает ложное чувство безопасности.

    C # значительно эволюционировал. Без этих эволюций Linq даже не существовал бы.

    Единственное преимущество в сохранении собственной структуры - это то, что вы ее контролируете. Это очень ложное ощущение безопасности, поскольку вы контролируете фреймворк, но все же не контролируете то, на чем вы его построили. Пребывание в зоне комфорта создает ложное чувство безопасности.

    2
    ответ дан 18 December 2019 в 05:17
    поделиться

    Если вашей внутренней структуре, как вы говорите, 16 лет, вы должны избавиться от нее быстрее, чем Энн Хэтэуэй бросила своего итальянского парня, руководившего схемой Понци. К сожалению, ничего хорошего из этого быть не может.

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

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