기본 콘텐츠로 건너뛰기

라벨이 Metadata인 게시물 표시

[DCAB.Fx] 기본적인 프레임워크 컨셉...

이런 저런  생각을 하던 끝에 가칭 DCAB.Fx 라는 이름을 사용하기로 했다. 뭔가 내가 하고자 하는 것을 잘 표현하는 것이 필요하지만 머리가 굳어가고 있는지... 전혀 생각이 넓게 퍼져나가지 못하고 있다. ㅠㅠ DCAB : Dynamic Composite Application Block Fx : Extensible Framework by Meta 나름 CAB / SCSF 쪽에 매력을 느끼고 있었던지라... 그 컨셉을 그대로 녹여(?) 보려고 하는 욕심에 정한 이름이지만 너무 평이한 것 같기도 하고... 아주 근본적인 컨셉 구상 막상 생각하고 어떤 방식으로 접근을 해야할지를 고민하고 있는데... 컨셉 그림을 그리고 보니... 너무 모르는 것이 많다.... 지금까지 뭔가 많이 한 것 같은데... 정작 시작하려고 하니... 몰라도 너무 모른다. 뭐, 시작이 반이니... 힘내서 열심히... ^^

[Framework] 개발 프레임워크 구성을 위한 기본적인 정리...

>>> 잡설... ㅠㅠ 지금까지 미루고, 뒤집고, 포기하고, 다짐하고, 매번 재 시작을 하면서도 진행을 하지도 못하고 매번 실패로 끝날 수 밖에 없던 개발 프레임워크 만들기에 다시 한번 도전을 한다. 벌써 많은 세월이 흘러서 더 이상의 도전은 없을 듯 하다. 아니 내가 원해도 시장과 환경들이 기회를 주지 않을 듯 하다. 세상의 수 많은 사람들이 개발 프레임워크에 대해서 고민하고, 토의하고, 격론을 통해서 나온 좋은 프레임워크들은 이미 많다. 내가 구성하고 싶은 프레임워크 역시도 많은 단점을 가질 것이고, 앞서 나온 수 많은 훌륭한 프레임워크를 흉내조차 내지 못할지도 모르고, 너무 시대에 뒤 떨어진 것일지도 모른다. 하지만, 내가 하고 싶었고, 내가 원하는 방향으로 나만의, ... 내 이름을 걸고 하나의 프레임워크가 있었으면 좋겠다는 생각이다. 제발 이번만은 먹고 살기 위해서 프로젝트 뛰느라.. 포기하게 되는 그런 무책임하고 무모한 도전으로 끝나지 않기를 희망한다. 얼마만큼의 시간과 노력이 들어갈지는 모르지만... [ 전제 조건 들 ] 메타 정보를 기반으로 한다. 개발 툴(현재는 Visual Studio)에 융합되어야 한다. 메타 정보는 손 쉽게 변경과 적용이 가능해야 한다. 메타 정보를 기반으로 여러 가지 어플리케이션(모바일, 웹, 데스크탑, ...) 에 적용이 가능해야 한다. 메타 정보를 기준으로 실행을 할 수도, 실제 어플리케이션에 맞는 컴파일 및 구동이 가능한 코드로의 변환이 가능하여야 한다. 본 개발을 진행하기 전에 간단한 시나리오를 통해서 메타 정보를 구성하고, 프로토타입 검증이 가능하여야 한다. 성능 모니터와 연동하여 구성 컴포넌트들의 라이프사이클 추적이 가능하여야 한다. [ 요소 항목 들 ] 메타 정보 처리를 위한 메타 프레임워크 메타 정보 작성을 위한 메타 디자인 프레임워크 메타 정보 구동을 위한 구동엔진 프레임워크 어플리케이션 유형에 맞는 코드 출력을 위한 코드 생성 프레임

[Oracle] Oracle Schemas Metadata…

역시나 이번 프로젝트에서 새롭게 추가할 항목이 Oracle Database에 대한 Code Generator (C#) 이다. 어떻게 하면 쉽고, 간편하게(?) 스키마 정보를 가져올 수 있을까 생각하고 있던 중에 예전에 잠시 보았던 DbConnection 개체의 GetSchema 메서드를 활용해 보기로 했다. 별도의 코드 작성 없이도 구성할 수 있는 부분이 매력적이다. Tool 로 구성하기 위해서는 범용적인 부분을 염두에 두어야 하지만, 당장은 프로젝트에 적용해야 하는 문제로 Oracle에 대해서만 정리해 놓도록 한다. GetSchema() 를 이용하면 일반적인 DBMS 의 각종 스키마들을 모두 또는 지정한 것들만 DataTable 형식으로 받아서 처리할 수 있다. 물론 Oracle 도 DbConnection을 구현한 것이기 때문에 다른 DBMS도 동일하게 적용될 수 있다. 사용 방법 public virtual abstract DataTable GetSchema(); public virtual abstract DataTable GetSchema(string collectionName); public virtual abstract DataTable GetSchema(string collectionName, string[] restrictionValues); collectionName 은 찾고자 하는 스키마의 종류를 의미하고, restrictionValues 는 스키마 정보를 조회할 때 사용할 제약정보들을 지정하면 된다. 자세한 부분은 참고와 샘플로 확인한다. 참고 사항 collectionName 은 다음과 같은 것들을 지정할 수 있다. Collection Name Number of restrictions Remarks MetaDataCollections 0 Returns this list. Same as using GetSchema() method without parameters. ReservedWords 0