문제

데이터 액세스를 위해 Microsoft에서 제공되는 다양한 옵션이 있습니다.확장 가능한 앱에 가장 적합한 것은 무엇입니까?

린크

Linq를 사용해야 할까요?확실히 쉬워 보이지만 SQL을 알고 있다면 정말 도움이 됩니다.또한 Linq를 사용하여 ASP.NET에서 비동기 쿼리를 실행할 수 없다고 들었습니다.그러므로 정말 확장성이 있는지 궁금합니다.Linq를 사용하는 정말 큰 사이트가 있습니까(Stackoverflow를 제외하고).

엔터티 프레임워크

Entity Framework에 대해 너무 많은 소문을 듣지 마십시오.내가 익숙한 개체 모델에 더 가까운 것 같습니다.

아스토리아/동적 데이터

데이터를 서비스로 노출해야 할까요?

나는 꽤 혼란스러워서 NHibernate와 같은 다른 ORM 제품을 사용하기 전이었습니다.어느 것이 더 나은지에 대한 아이디어나 지혜가 있습니까?

도움이 되었습니까?

해결책

NHibernate나 Entity Framework를 추천합니다.대규모 사이트의 경우 ADO.NET Data Services를 사용합니다.나는 LINQ to SQL을 사용하여 큰 작업을 수행하지 않을 것입니다.내 생각에 스택 오버플로는 3계층이 아닌 2계층에서 흥미로운 확장 문제로 끝날 수 있으며, 데이터베이스 변경의 물리적 측면과 이러한 변경 사항이 코드 전체에 파급되므로 리팩토링에도 문제가 있을 것입니다.그냥 생각입니다.

다른 팁

나는 ADO.Net Data Services(이전의 Astoria)가 큰 역할을 한다고 생각합니다.이는 웹의 REST 스타일 아키텍처와 잘 맞습니다.

웹은 확장 가능하므로 웹 아키텍처를 따르는 모든 것도 확장 가능하다고 생각합니다.또한 SQL Server Data Services에 대해서도 계속 살펴보고 싶을 수도 있습니다.

관계형 데이터베이스에 대해 이야기하고 있다면 다른 계층에서 액세스하는 방법에 관계없이 모든 데이터 작업을 저장 프로시저에 캡슐화하는 것이 내 투표입니다.

저장 프로시저를 통하지 않고 데이터베이스에 대한 모든 읽기/쓰기 액세스를 비활성화하면 잘 정의된 계약 뒤에 데이터 모델을 숨길 수 있습니다.데이터 모델은 자유롭게 변경할 수 있으므로 저장 프로시저는 여전히 입력과 출력을 존중합니다.

이를 통해 DBA는 애플리케이션을 자유롭게 조정하고 확장할 수 있습니다.데이터베이스 외부의 도구로 SQL을 생성하는 경우 이는 매우 어려운 작업입니다.

저장 프로시저를 잠그는 것은 요즘에는 점점 쇠퇴하는 사고 방식인 것 같습니다. 적어도 제가 현재 관찰한 바는 그렇습니다.이러한 사고 방식은 일반적으로 테이블에 대해 직접적으로 더 감정적이기 때문에 ORM 세계에 적합하지만 소금에 맞는 ORM은 프로세스 사용도 허용하므로 선택의 여지가 없는 경우도 있습니다.

EF에 대한 많은 의견이 있으며 누군가가 좋든 나쁘다고 말하든 상관없이 V1 제품이며 경험상 MS가 제대로 작동하려면 약 3회전이 필요하다는 점에서 다음 개정판을 기다리는 것이 현명할 수 있습니다. 최소.

이 분야에서 가장 큰 플레이어는 NHibernate인 것으로 보이며 커뮤니티에서 이에 대한 많은 지원이 있습니다.언어 기능인 Linq는 NHibernate 스택으로 향하는 데 너무 멀지 않아야 합니다.

당신에게 맞는 것을 사용하십시오.이미 상당히 정규화된 데이터베이스(예: 기본 키와 외래 키에 대한 올바른 정의)가 있는 경우 설정하기가 가장 쉽습니다.그러나 쉽게 정규화할 수 없는 데이터가 있는 경우 Entity Framework는 LINQ to SQL보다 유연하지만 구성하는 데 더 많은 작업이 필요합니다.

우리는 클러스터된 환경에서 LINQ를 실험해 왔으며 개별 컴퓨터와 클러스터 전체에서 잘 확장되는 것으로 보입니다.제공한 3가지 옵션 중에서 각 옵션의 대상 고객이 조금씩 다르지만 LINQ가 더 나은 선택이라고 말하고 싶습니다. 따라서 액세스 패러다임을 결정하기 전에 데이터로 수행할 작업을 정의해야 합니다.

나는 linq를 제안하고 싶습니다.이는 우리 사이트에서 잘 확장되며 사용하기에 충분히 간단합니다.

LINQ와 함께 저장 프로시저를 사용하세요. 하지만 sproc이 데이터 액세스 계층으로 바뀌지는 마세요!

이 게시물은 클라우드가 실제로 등장하기 전인 2008년의 게시물입니다.답변 업데이트가 필요한 것 같습니다.몇 가지 링크와 개요만 제공하겠습니다.이 주제에 대한 최신 게시물이 이 사이트에 더 많이 있을 것이라고 확신하며, 해당 게시물을 찾으면 여기에 링크를 추가하겠습니다.

데이터 확장성과 트랜잭션 처리 확장성에 관해 2017년에는 클라우드 및 클라우드 서비스 제공업체에 대해 이야기해야 합니다.

요즘 상위 3개 클라우드 제공업체는 다음과 같습니다.

비용

클라우드 서비스 사용의 가장 큰 장점 중 하나는 초기 비용이나 해지 수수료가 없으며 사용한 만큼만 비용을 지불한다는 것입니다.(알바씨의 2016년 기사 인용 "AWS, Google Cloud 및 Azure를 나란히 비교")

우리는 AWS를 직접 사용합니다.VM을 설치하고 실행하는 동안에만 비용을 지불하므로 저렴하게 시작할 수 있습니다.일반적으로 서비스 제공업체는 분 또는 시간 단위로 요금을 청구하지만 전체 시간 동안 요금이 보장됩니다.

더 저렴한 방법은 최선의 현물 가격 책정입니다.스팟 가격은 단일 스팟 요청이 이행되도록 보장하기 위해 입찰해야 하는 가격 이상을 나타냅니다.입찰 가격이 스팟 가격보다 높으면 Amazon EC2는 스팟 인스턴스를 시작하고, 스팟 가격이 입찰 가격보다 높아지면 Amazon EC2는 스팟 인스턴스를 종료합니다.(Amazon의 사용자 가이드를 뻔뻔하게 인용함) 여기)

AWS, Google Cloud 및 Azure를 나란히 비교 이용 가능한 이 세 가지 서비스 제공업체를 나란히 비교하는 좋은 기사입니다. 여기.

클라우드 서비스에 대해 좀 더 학문적으로 살펴보려면 Yu, Wang, Ren 및 Lou의 2010년 논문을 읽어보세요.클라우드 컴퓨팅에서 안전하고 확장 가능하며 세분화된 데이터 액세스 제어 달성" INFOCOM 2010 절차에서 사용 가능 여기, 그러나 이에 액세스하려면 IEEE 회원이어야 할 수도 있습니다.다소 오래되었지만 훌륭하며 출발점으로 사용할 수 있습니다.

클라우드에서의 확장이 폭발적으로 증가하고 있으며 최근까지 몇 초 만에 새로운 가상 머신을 시작하여 확장이 완료되었지만 컨테이너를 사용하면 밀리초 만에 새 인스턴스를 가동할 수 있습니다.이에 대한 자세한 내용은 Docker 및 Docker 컨테이너를 확인하세요. 여기.

이 답변이 더 많은 정보에 대한 링크일 뿐이어서 사과드립니다. 하지만 이 질문에 대한 답변에는 업데이트가 있어야 한다고 생각했습니다.이것이 누군가가 직접 자세한 내용을 제공하도록 영감을 주기를 바랍니다.이미 관련 정보를 게시한 경우 자신의 게시물에 대한 링크를 제공하는 것을 고려해 보세요.감사해요!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top