작은 응용 프로그램을 만들고 호스팅 비용과 종속성을 줄이기 위해 모든 영구 데이터를 SQL Server가 아닌 XML 파일에 저장할 계획입니다. 데이터 베이스.ASP.NET 사이트에서 xml 파일 기반 저장소를 데이터베이스 대안으로 올바르게 사용
이 경우 사이트 방문자는 친구 및 가족으로 제한됩니다. 동시 사용자가 몇 명만 예상되므로 사이트는으로 확장 할 필요가 없습니다. 말 그대로 모든 트랜잭션에서 디스크의 xml 파일을 열고 닫을 수 있습니까? 대부분의 페이지는 몇 xml 파일의 데이터를 표시 할 수 있으며 사용자는 때때로 하나의 업데이트가 필요한 작업을 수행합니다.
예를 들어, 대략 얻고 저장하는 저장소 패턴 다음과 같은 "것들"몇 가지 방법은 같은 싶습니다 :이 방법
public IEnumerable<Thing> GetThings() {
XElement xml = XElement.Load(_xmlRepositoryPath);
var q = from s in xml.Descendants("Thing")
select new Thing {
//set properties...
};
return q;
}
public void SaveThing(Thing t) {
XElement xml = XElement.Load(_xmlRepositoryPath);
//update xml...
xml.Save(_xmlRepositoryPath);
}
어떤 함정이나 문제가? 차라리 추가 캐싱 또는 메모리 내 데이터 계층을 추가하는 복잡성을 피할 수 있습니다. 추가 크레딧 : 사용자로드 또는 거래 레벨의 어느 시점에서 이것이 다르게 구현되어야 할 필요가 있다고 생각합니까?
SQL을 사용하지 않는 이유는 무엇입니까? 비용/라이센스상의 이유로 MS SQL Server를 사용하지 않는다면 SQLite는 아주 좋은 경량 대안입니다. 일을 단순하게 유지하기 위해 SQL을 사용하지 않는다면, XML이 좋은 대안이 될 수 있습니다. – FrustratedWithFormsDesigner
호스팅 비용 때문에 SQL을 피할 수는 있지만 SQLite처럼 보이는 것은 옵션입니다. 감사합니다. –