2009-12-10 6 views
2

ASP.NET MVC에 대한 몇 가지 사항을 알고 싶습니다. NHibernate입니다.ASP.NET MVC with NHibernate

  1. 는 ASP.NET MVC와 함께 사용되는 가장 ORM NHibernate에인가?
  2. 그렇다면 NHibernate가 응용 프로그램의 속도를 느리게합니까?
  3. NHibernate를 사용하여 ASP.NET MVC 응용 프로그램의 성능을 향상시키기 위해 수행 할 수있는 작업은 무엇입니까?
+0

asp.net mvc와 orm에는 공통점이 있습니까? 그들은 완전히 다른 두 가지입니다. – Paco

+0

@Paco - 그래서? –

+0

@Mike C : 응용 프로그램을 빌드하는 UI 프레임 워크의 유형은 응용 프로그램에서 ORM이 작동하는 방식에 영향을 미치지 않습니다. – Paco

답변

10
  1. 에 따라 다릅니다. 전체 초보자의 경우 entity framework을 시도해 볼 수 있습니다. 여기에는 끌어다 놓기로 엔티티 클래스를 만들 수있는 모든 ORM 디자이너 클래스가 포함되어 있습니다.
  2. 아니요, 그렇지 않습니다. NHibernate is used은 많은 사이트에서 사용하고 있으며 이전 작업을 캐싱하여 속도를 향상시킬 수있는 first and second level caching feature을 가지고 있으므로 성능이 실제로 문제가되지 않습니다.
  3. 병목 현상을 식별 한 후에 만 ​​앱을 개선 할 수 있습니다. 성급하게 최적화하지 마십시오.
+3

엔티티 프레임 워크는 초보자를위한 것이 아닙니다 (다시 ORM이 없음). –

+1

아마 SQL에 약간의 Linq .. 아프지 않을거야 –

3
  1. 는 ASP.NET MVC와 함께 사용 할 가장 ORM 없습니다. 가장 좋은 ORM은 사용자의 요구를 충족하는 입니다.
  2. 아니요, 응용 프로그램의 속도를 늦추는NHibernate에는 고유 한 내용이 없습니다.
  3. 향후 문제가되지 않는 한 성능에 대해 걱정하지 마십시오. 성능 요구 사항이 높은 이유가 있습니까?
6

나는 GarageCommerce.com에 대한 ASP.NET MVC와 NHibernate에를 사용하고 매우 빠르게도 매우 낮은 예산 하드웨어입니다. Hibernate의 오버 헤드는 데이타베이스와 통신하는 데 드는 원시 비용에 비해 무시할 만하다.

입증 된 패턴이 있으며 NHibernate Profiler과 같은 도구를 지원합니다. 자체 데이터베이스 액세스를 롤아웃 한 경우보다 더 효율적인 애플리케이션으로 끝날 가능성이 높습니다.

NH와 같은 강력한 도구를 사용하면 확장 성 문제를 해결할 수 있습니다. 2 차 캐시를 켜고 memcache를 사용하여 다시 캐시 할 수 있습니다. 또한 데이터를 가로로 분할하는 데 도움이되는 NHiberate.Shards에 대한 작업도 있습니다.

+0

감사합니다 micheal 매우 유용했다 –

0

그냥 호기심 ... 우리는 웹 기반보고 환경에 대한 수정 보고서를 사용합니다 ... 오랜 시간 동안 DB를 묶어서 pdf로 내보내는 무겁고 복잡한 저장 프로 시저.

NHibernate와 같은 ORM을 사용하여 HTML 기반 솔루션으로 변환합니까? 성능 조정 측면에서 더 많은 유연성이있는 것 같습니다.

1

Michael, nHibernate는 CRUD 연산과 비즈니스 객체의 복잡한 연산 처리에 적합합니다. 복잡한 쿼리를 처리 할 수는 있지만 보고서를 작성할 때는 Crystal 보고서를 고수해야합니다 ... 저장 프로 시저가 많으면 ORM이 너무 많이 좋아합니다.