2010-06-24 2 views
2

.net 3.5에있는 새 프로젝트를 만들고 있습니다.asp.net 사이트에 대한 패치 접근 방식

현재 클라이언트는 저장된 procs를 사용하고 있으며 대신 LINQ를 SQL에 사용하고 싶습니다. 그들이 procs를 사용하는 가장 큰 이유는 그들이 쉽게 업데이트 할 수 있다고 믿기 때문입니다. 특별한 사용 권한을 사용하지 않거나 LINQ를 통해 저장된 procs를 사용하는 것이 정당하다는 것을 알 수 있습니다.

나는 LINQ to SQL의 변경 사항을 쉽게 배포 할 수있는 솔루션을 제시 할 수 있다면 마음이 바뀌기 쉽습니다.

asp.net 프로젝트 (mvc 아님)와 같이 빌드 프로세스 중에 생성되는 다양한 어셈블리를 업데이트하는 방법에 대해 궁금합니다.

예를 들어 내 LINQ 코드가 모두 System.DataAccess 프로젝트에 있고 프로덕션 환경에 배포되면 생산성이 저하 된 버그가 LINQ로 식별됩니다. 변경된 DataAccess 프로젝트 (또는 배포 이후 중요한 변경 사항이있는 모든 프로젝트)를 배포하는 것이 얼마나 어렵습니다.

내가 상황을 돕는 한 가지 사실은 빌드 번호가 실제로 변경되었는지 여부에 관계없이 모든 프로젝트에서 빌드 번호가 업데이트된다는 것입니다. 버전 번호를 보면됩니다. 프로젝트를 재배포해야하는 프로젝트를 결정하기에는 충분하지 않습니다.

변경된 프로젝트 만 버전을 업데이트하도록 빌드를 수정할 수 있는지 확실하지 않습니다.

그래서 기본적으로 나는 다양한 패치 프로세스와 장단점에 대해 궁금합니다. 즉 ie 리셋 등이 필요합니다.

건배

답변

0

두 가지 모두 장단점이 있습니다.

SQL Stored Proc는 빠르고 효율적입니다. Stored proc로 SQL 작업을 많이 수행 할 수 있습니다. Stored proc은 코드에서 수행 할 수있는 작업보다 빠르게 실행되지만 다른 계층입니다.

LINQ는 변경이 발생할 때 많은 유지 관리 작업이 필요하지 않습니다. 쉽게 코드를 작성할 수 있습니다.

어떤 방법으로도 IIS를 재설정 할 필요가 없습니다. 해당 어셈블리의 코드를 변경하는 경우에만 모든 릴리스에 대해 어셈블리 파일 버전을 업데이트하는 것이 좋습니다. 번거롭고 필요하지 않기 때문에 버전을 업그레이드하십시오.

모두 패치가 가능합니다. LINQ가 더 쉬운 IMHO를 찾았습니다. 테이블 구조가 변경되면 저장 프로 시저 및 해당 저장 프로 시저를 사용하는 함수를 수정하지 않아도됩니다. 그것은 빠른 변경 스크립트입니다, DBML은 새 버전으로 테스트 해 왔기 때문에 이미 업데이트 된 상태 여야합니다.

나는 항상 쉽게 같은 DDL 릴리스이므로 같은 어셈블리에 내 LINQ 및 부분 데이터 클래스가 있습니다.

0

SQL 저장 프로 시저와 LINQ-SQL은 함께 사용할 수 없습니다.

일반적으로 복잡하고 욕심 많고 리소스를 많이 사용하는 작업의 경우 SQL 저장 프로 시저 (예 : 복잡한 하위 쿼리/db 논리에 의존하는 INSERT 작업)를 사용하여 LINQ-SQL 캔버스로 끌어옵니다.

패치 측면에서 보면 SQL Server에서 이러한 저장 프로 시저를 직접 패치 할 수 있으며 서명이 변경되지 않는 한 LINQ-SQL 클래스를 다시 컴파일해야하지는 않습니다 (매개 변수/반환 형식).

특정 어셈블리의 버전 번호를 업데이트하는 데 이상적이지 않습니다. 매우 지저분 해지고 문제가 발생할 수도 있습니다 (강력한 이름 지정).

모든 DB 논리/LINQ/CRUD 작업을 하나의 어셈블리 (DAL)에 저장해야합니다.

LINQ 로직을 분리하고 이러한 어셈블리를 독립적으로 배포하려는 경우 솔루션을 웹/응용 프로그램 서버로 분할하는 것이 좋습니다. 나는 LINQ DAL Assembly와 Facade-like Assembly를 사용하여 이러한 작업을 응용 프로그램 서버에 노출 한 다음 웹 사이트를 별도의 웹 서버에 노출합니다.

아키텍처에 따라 ASMX/WCF/.NET Remoting을 사용하여 웹/앱 서버 간의 호출을 원활하게 할 수 있습니다. (WCF는 크로스 도메인이 아닙니다.)

LINQ-SQL 클래스 (간단한 LINQ CRUD 작업, 뷰, 저장 프로 시저 혼합)가 올바르게 수행되었다고 가정하면 응용 프로그램에 영향을주지 않고 저장 프로 시저를 쉽게 패치 할 수 있습니다.

관련 문제