잊지 않겠습니다.

'LinqToSql'에 해당되는 글 1건

  1. 2009.06.08 LINQToSQL vs. ADO .NET Entity Model
.NET 3.0 Framework을 내놓으면서 LINQToSQL을 발표하면서 데이터와 모델간의 하나의 큰 전환점을 MS는 가지고 왔다. Java 진형의 Hybernate나 iBatis에 대항한 LINQToSQL이 바로 이것인데.. Visual Studio에서 특별한 코딩이 없이, 바로 Db의 Schema를 데이터의 Type으로 얻어오는 것이 가능하고, 그 Type의 생성 및 수정, 삭제가 Data와 같이 연동되어서 사용되어 질 수 있는 MS 진형에서는 나름 혁명적인 사건이라고도 할 수 있다.; (개인적으로는.;)

물리적 Model인 Database의 data를 개념적인 모델인 class로 변경시키고, 개발자들은 보다더 개발에 대해서 Application과 object에 대한 관점을 높이는 것이 보다 더 나은 application을 만들 수 있다는 것이 기본적인 발상인데.. 

이번에 발표된 내용으로는 Visual Studio 2008에 있던 LINQToSQL을 조금은 버리고, ADO .NET Entity Model을 중점으로 갈 것 같다는 느낌이 든다. 

무엇보다 MS SQL Server에 치중된 LINQToSQL이 아닌, ADO .NET 에서 얻을 수 있는 모든 데이터는 다 사용 가능한 ADO .NET Entity Model이 더욱더 좋은 모델이겠지만, 이거 얼마 안지나서 또 바뀌는 것에 대한 이 찜찜함은.;;;

기본적인 사용법은 ADO .NET Entity Model과 LINQToSQL이 거의 같다. 
차이가 있다면 DataContext로 연결된 데이터 모델이 ObjectContext로 변경되었고, Generate되던 코드들의 차이점정도 이외에는 큰 차이가 나타나지 않는다. 

큰 차이가 하나 있다. 기본적으로 LINQToSQL은 DataContext에서 Table에 Insert, Delete가 가능하지만, ADO .NET Entity Model에서는 ObjectContext에서 AddTo{Table}, DeleteObject method를 이용해서 Insert, Delete를 한다. 좀 더 접근성을 높인 명명법을 만든 것인지 모르겠지만.... 기존것이 더 직관적이긴 했는데.;

MS에서 발표하기로는 속도면에서는 LINQToSQL이 훨씬 낫다고 하는데..
이건 기본적으로 ADO .NET에서 SqlConnection, SqlCommand 자체가 MS Sql에서 훨씬 빨랐던 그 차이를 그대로 가지고 온 것에 불과하고.... 

그럼 나머지는 모두 DbConnection, DbCommand가 내부적으로 구현되어서 사용되고 있는 것인가??? ;;
한번 뒤져볼 내용일 것 같다. 
Posted by Y2K
,