개발 이야기/ORM2012. 4. 15. 12:26

Entity Framework 들어가기

최근 닷넷계에서 화두 되고 있는 분야 중에 하나가 오픈 소스일 것 입니다우리는 그 동안 닷넷프레임워크에서 제공되는 Base Class Library 기반에 어플리케이션을 잘 구현해왔죠하지만 좀 더 효율적으로 좀 더 유연하게 프로젝트를 수행하기 위해 자바처럼 여러 프레임워크의 장점들을 닷넷 프레임워크와 함께 선택적으로 사용하고자 하는 need가 생겨나기 시작했죠하여 iBatis.net이나 spring.net, log4.net등의 닷넷 버전의 오픈 소스 프레임워크가 나타나게 되었습니다이런 시대의 흐름을 MS가 인지하여서 일까요? MS ORM기반의 Entity Framework를 릴리즈하였습니다아직까지 닷넷계에서는 오픈 소스가 자바계만큼 크게 활용되고 있지는 않지만 오픈 소스가 많은 프로젝트에 닷넷과 함께 활용될 때 닷넷 기술도 성장 할 수 있지 않을까 조심스레 생각해봅니다하여 이번 아티클에서 프레임워크와 엔티티 프레임워크에 대해서 소개를 하려 합니다.

 

프레임워크의 개념

과연 프레임워크는 무엇일까이 아티클을 읽는 분들은 대부분 개발자이거나 이 분야 전공 학생일 것입니다그쵸지금 여러분들의 머릿속에 프레임워크에 관련된 뭔가가 두리뭉실하게 그려질 것입니다프레임워크란 기반이 되는 뼈대라고 생각하면 됩니다.예를 들어 건물을 짓는 것을 봤다면 건물이 다 지어지기 전까지 그 건물이 상가인지 아파트인지 한옥인지 알 수 없습니다다만 건물을 짓기 위한 공통된 작업 즉 초기에 땅을 파고 땅에서 물과 돌을 제거하죠기반을 단단히 다지는 작업인데요이런 밑그림,기반 틀이 프레임워크입니다.

닷넷 개발자라면 닷넷 프레임워크 기반에서 개발을 수행하게 되는데요닷넷 프레임워크는 보시다시피 닷넷 Base Class Library기반으로 응용프로그램을 구현합니다.

1_dotnet framework.gif

[그림 1-1] .NET Framework

사실 닷넷을 사용하는데 가장 큰 장점 중 하나가 Base Class Library가 제공된다는 것입니다파일을 핸들링 하기 위해서 닷넷에서 제공되는 System.IO DataBase를 사용하기 위해 ADO.NET을 이용하면 보다 빠르고 쉽게 응용프로그램을 구현할 수 있습니다.이런 개념만 이해한다면 초보개발자도 닷넷 기술을 이용하여 응용프로그램을 후닥 개발할 수 있죠~

2_Class Library.jpg

[그림 1-2] .NET Framework Class Library

개발자 측면에서 프레임워크란 이처럼 응용프로그램을 만들기 위해서 기반이 되어주는 기능별로 모듈화가 되어 있고 재사용 가능한 구조틀이라고 정의할 수 있습니다.

 

닷넷계 연계 가능한 오픈소스

자바 진영에서는 수많은 프레임워크가 있다프로젝트 특성에 맞춰 프레임워크가 선택적으로 사용되기도 하죠웹 어플리케이션 영역에서 활용되는 벨로시티 프레임워크나 스프링 프레임워크, Data 매핑의 Hibernate, iBatis 프레임워크로깅관련 된 Log4J 프레임워크 등등의 프레임워크가 있습니다이 모든 프레임워크가 자바 진영에서는 활용될 수 있는 것은 그만큼 오프소스에 대해 열려있었기 때문인데요그에 비해 닷넷은 오픈 소스에 대해서 폐쇄적이었습니다최근에 들어서는 닷넷계에서도 닷넷 기반에서 오픈소스 프레임워크 접목하려는 시도가 점차 늘어가고 있습니다. ORM(Object Relational Mapping)  iBatis.NET이나 NHibernate, loc(Inversion of Control)기반의 Spring.NET 등이 있는데요이는 닷넷 버전으로 자바에서 사용되었던 프레임워크가 컨버팅 된 닷넷 버전 프레임워크입니다. Entity Framework 아티클이 마무리되면 위에 언급한 프레임워크를 자세히 소개하는 시간을 가져보겠습니다.

 

위대한 탄생엔티티 프레임워크 탄생!

오픈 소스에서 ORM에 관련된 프레임워크가 인기를 끌게 되면서 MS는 기존의 ADO.NET에서 ORM 기반의 프레임워크를 Visual studio 2008 sp1에 정식 릴리즈 했습니다그것이 바로 Entity Framework입니다.

3_EF_OverView.PNG

[그림 1-3] Entity Framework 아키텍처H:%5CEF%20%EC%9E%90%EB%A3%8C%5C%EC%95%84%ED%8B%B0%ED%81%B4%5C1%EA%B0%95%5CEF_%EC%84%9C%EB%B9%84%EC%8A%A4%EC%8A%A4%ED%83%9D.png

Entity Framework Data Entity로 매핑 할 수 있는 것으로 우리가 흔히 쓰는 Database 개체들을 Object화 할 수 있습니다. Entity Framework가 릴리즈 될 당시에 .NET Framework 3.5에서는 LINQ가 포함되어 관계형 데이터를 보다 용이하게 질의할 수 있게 제공하였는데 Entity Framework가 추가되면서 개발자로 하여금 더 높은 생산성의 향상을 기대하게 하였죠또한 Entity Framework는 직관적인 DAO(Data Access Object) 패턴의 응용프로그램을 구현하게 됩니다.

4_EF_서비스스택.PNG

[그림 1-4] Service Stack

위 그림에서 보여주는 것과 같이 Entity Client는 중간에서 기존의 Linq To Entities Entity SQL을 ADO.NET 모델로 확장을 합니다

이번 아티클은 OverView 수준이었습니다다음 아티클부터는 본격적으로 Entity Framework에 대해서 알아보겠습니다.^^ 끝까지 읽어주셔서 감사합니다.^.^



sqler에 아티클 작성 했던것을 공유합니다.

출처 : http://www.sqler.com/373895

Posted by 사나에
개발 이야기/DB2011. 12. 20. 16:58

For a further investigation, please try these steps as below: 

  1. Enable IntelliSense: 

    1. For all query windows, please go to Tools >> Options >> Text Editor >> Transact-SQL >> IntelliSense, and select Enable IntelliSense.
    2. For each opening query window, please go to Query >> Intellisense  Enabled.  
  2. Refresh IntelliSense local cache: please go to >> Edit >> IntelliSense >>Refresh Local Cache or use the CTRL+Shift+R keyboard shortcut to refresh.
  3. Enable statement completion: please go to Tools >> Options >> Text Editor >> Transact-SQL >> General, and check on Auto list members and Parameter information boxes.
  4. Reboot SQL Server Management Studio.



출처 : http://social.msdn.microsoft.com/Forums/en/sqltools/thread/36e3d0db-3150-434a-885d-97810fe199c5
Posted by 사나에
IT/IT소식2011. 11. 25. 09:00


MSDN세미나가 오랜만에 열립니다. 유익한 내용, 현업에서의 경험을 서로 나누는 귀중한 시간이 될것 같습니다. 많이 오셔서 서로가 가지고 있는 고민을 나누는 시간이 되었으면 합니다.^^



Posted by 사나에
IT/IT소식2011. 9. 15. 13:26
해외 유학,어학연수 박람회가 금주 주말에 열립니다.

Posted by 사나에
IT/IT소식2011. 9. 9. 18:46

지난 8월 30일에 MVP Day가 있었습니다.
이번 모임의 주제는 Office 365였습니다.
오랜만에 MVP님들과 인사도 나누고 Office 365 정도도 얻고 1석 2조의 모임이였습니다. ㅋㅋ



세션은 총 3개로 진행되었습니다.
1. Office 365 및 Office 15 로드맵 소개 - 한국마이크로소프트 이승식 부장
2. 쉽고 간단한 Offuce 365 관리자 기능 및 개발자 시나리오 - 이피언스 최정우 차장
3. Windows Phone 7 Mango 소개 - 한국마이크로소프트 김영삼 부장

간략히 내용을 소개하자면...
1. Office 365 및 Office 15 로드맵 소개 - 한국마이크로소프트 이승식 부장
Office 365는 클라우드 서비스로 제공되며 Microsoft Office Professional Plus, Lync, SharePoint, Exchange제품들과 함께 Office 365는 서비스를 극대화 할 수 있습니다.

012



2. 쉽고 간단한 Office 365 관리자 기능 및 개발자 시나리오 - 이피언스 최정우 차장
제가 이 모임에 참석한 이유가 아니었나싶네요. 개발자 관점에서 관련 서비스를 어떻게 제공 할 수 있는지 궁금했는데 그 부분을 해소해 준 세션이었습니다.
Office 365 관리

01234


Office 365 개발


Exchange Online 개발
- EWS 제공
- URL : http://msdn.microsoft.com/en-us/exchange/gg490662

Lync Online 개발
- Lync 2010 Managed API 제공
- URL : http://msdn.microsoft.com/en-us/lync/gg394186

ShrePoint Online 개발
- SharePoint Designer
- VisualStudio 2010
- 스마트 솔루션


3. Windows Phone 7 Mango 소개 - 한국마이크로소프트 김영삼 부장
윈도우 폰 7 망고에 대해서 소개해주셨는데요. 한국 출시는 미정이지만 올해 말을 목표로하고 있다고 합니다.
무엇보다 Office 365가 윈도우 폰을 통해서 서비스가 제공되기에 망고가 기대된다는 것입니다.^^




Posted by 사나에