İSTANBUL TEKNİK ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK FAKÜLTESİ .NET VE SSCLI DA VERİTABANI KATMANLARININ TÜMLEŞİK OLUŞTURULMASI



Benzer belgeler
Yüz Tanımaya Dayalı Uygulamalar. (Özet)

KONTAKSĐ. Bitirme Ödevi. Metin Kaplan Ferhat Karakoç Bölüm : Bilgisayar Mühendisliği Anabilim Dalı: Bilgisayar Bilimleri

Virtualmin'e Yeni Web Sitesi Host Etmek - Domain Eklemek

İSTANBUL TEKNİK ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK FAKÜLTESİ ECZANE-DEPO AKILLI SİPARİŞ SİSTEMİ

First Stage of an Automated Content-Based Citation Analysis Study: Detection of Citation Sentences

İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM FAKÜLTESİ. Proje Kaynak Yönetimi

İŞLETMELERDE KURUMSAL İMAJ VE OLUŞUMUNDAKİ ANA ETKENLER

LINQ Language Integrated Query Dille Bütünleştirilmiş Sorgu Bir Veri Tabanı Tablosundan Veri Gösterme

WEEK 11 CME323 NUMERIC ANALYSIS. Lect. Yasin ORTAKCI.

Rapor Hazırlama Kuralları

YAPI ATÖLYESİ. make difference.. DESIGN & CONSTRUCTION ENGINEERING ARCHITECTURE CONTRACTING. Design & Construction

a, ı ı o, u u e, i i ö, ü ü

İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM FAKÜLTESİ LİNUX ÜZERİNDE ÇOKLU PROTOKOL ETİKET ANAHTARLAMANIN GERÇEKLENMESİ

İSTANBUL TEKNİK ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK FAKÜLTESİ DUYARGA AĞLARINDA HABERLEŞME ALGORİTMASI TASARIMI VE TINYOS ÜZERİNDE GERÇEKLEMESİ

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

ISCOM Kurumsal ISCOM KURUMSAL BİLİŞİM TEKNOLOJİLERİ EĞİTİM KATALOĞU

AİLE İRŞAT VE REHBERLİK BÜROLARINDA YAPILAN DİNİ DANIŞMANLIK - ÇORUM ÖRNEĞİ -

WEEK 4 BLM323 NUMERIC ANALYSIS. Okt. Yasin ORTAKCI.

«BM364» Veritabanı Uygulamaları

Educational On-line Programmes for Teachers and Students

Rapor Hazırlama Kuralları

4. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

BAŞKENT ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BENZER SÜREÇLERDE ÜRETİLEN ÜRÜNLER İÇİN YAPAY ZEKA İLE ZAMAN TAHMİNİ SONER ŞÜKRÜ ALTIN

İSTANBUL TEKNİK ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK FAKÜLTESİ. AKILLI FİYAT ARAMA MOTORU TiLQi.NET

HB1002: ORACLE 10G VERĐTABANI PL/SQL ile PROGRAMLAMA (32 saat)

Unlike analytical solutions, numerical methods have an error range. In addition to this

YZM 3215 İleri Web Programlama

BLM401 Mobil Cihazlar için ANDROID İşletim Sistemi. SQLite Veritabanı. BLM401 Dr.Refik SAMET

Turkish Vessel Monitoring System. Turkish VMS

> what is ansible*? "infrastructure as code"

Her Yönüyle SQL Enjeksiyonu. OWASP-Türkiye Bünyamin Demir

CmpE 320 Spring 2008 Project #2 Evaluation Criteria

SOFTWARE ENGINEERING PRACTICE Ders İzlence Formu. Kodu: CSE401 Dersin Adı: SOFTWARE ENGINEERING PRACTICE Toplam Saat

SOFTWARE ENGINEERING Ders İzlence Formu. Kodu:CSE400 Dersin Adı: SOFTWARE ENGINEERING Toplam Saat

STRAIGHT. Correct address for linear lighting: STRAIGHT

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

T.C. SÜLEYMAN DEMİREL ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ ISPARTA İLİ KİRAZ İHRACATININ ANALİZİ

HTML 4. Bölüm. Doç. Dr. İsmail Rakıp Karaş Dersin Course Page:

Demetleme Yönteminin Y 3-Katmanlı Mimari Yapı ile Gerçeklenmesi. eklenmesi. KalacakYer.com

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

Fırat Üniversitesi Personel Otomasyonu

İSTANBUL TEKNİK ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK FAKÜLTESİ ÖZET FONKSİYON TABANLI GÜVENLİ BİR RFID PROTOKOLÜNÜN FPGA ÜZERİNDE GERÇEKLENMESİ

FIRAT ÜNİVERSİTESİ PERSONEL OTOMASYONU

MÜHENDİSLİK FAKÜLTESİ / ENSTİTÜSÜ / YÜKSEKOKULU BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ BÖLÜMÜ /ABD LİSANS PROGRAMI - 2 ( yılı öncesinde birinci

ĐSTANBUL TEKNĐK ÜNĐVERSĐTESĐ ELEKTRĐK-ELEKTRONĐK FAKÜLTESĐ HATA TAKĐP YAZILIMI. Bitirme Ödevi. Mehmet CAMBAZ

İnternet Programcılığı

Argumentative Essay Nasıl Yazılır?

Asp.Net Veritabanı İşlemleri

A UNIFIED APPROACH IN GPS ACCURACY DETERMINATION STUDIES

IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu

Parça İle İlgili Kelimeler

Veritabanı Yönetim Sistemleri (PL/pgSQL - SQL Procedural Language)

Veritabanı İşlemleri

License. Veri Tabanı Sistemleri. Konular büyük miktarda verinin etkin biçimde tutulması ve işlenmesi. Problem Kayıt Dosyaları

İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM FAKÜLTESİ. Akıllı Yemek Önerme Sistemi

İSTANBUL TEKNİK ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK FAKÜLTESİ GENOPE

VERİ TABANI UYGULAMALARI

BİLİŞİM TEKNOLOJİLERİ ALANI THE INFORMATION TECHNOLOGIES DEPARTMENT

İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM FAKÜLTESİ İSTANBUL İÇİN AKILLI TUR PLANLAYICI

econn (Supplier Portal) of the MANN+HUMMEL Group

Dynamic report design brings us to create relative queries between many different tables in the database.

Bağlaç 88 adet P. Phrase 6 adet Toplam 94 adet

T.C. Hitit Üniversitesi. Sosyal Bilimler Enstitüsü. İşletme Anabilim Dalı

Dr. Aysın Yeltekin. EST Enerji

Swing ve JDBC ile Database Erişimi

IDENTITY MANAGEMENT FOR EXTERNAL USERS


FIRAT ÜNİVERSİTESİ SMS - WAP OTOMASYONU UNIVERSITY OF FIRAT SMS - WAP OUTOMASION

T.C. İZMİR KÂTİP ÇELEBİ ÜNİVERSİTESİ BİLİMSEL ARAŞTIRMA PROJELERİ KOORDİNASYON BİRİMİ

Our İstanbul based Law Office provides professional legal services all over Turkey.

BBM Discrete Structures: Final Exam Date: , Time: 15:00-17:00

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

MM103 E COMPUTER AIDED ENGINEERING DRAWING I

MOBİL UYGULAMA GELİŞTİRME

LEARNING GOALS Human Rights Lessons

Makbul Re y Tefsirinin Yöneldiği Farklı Alanlar. The Different Fields Twords That The Commentary By Judgement Has Gone

The RestructuredText Book Documentation

1 / 11. Akın Gündoğdu. İletişim Bilgileri. Kişisel Bilgiler. İş Deneyimleri. : akin-gundogdu@hotmail.com developerakin@gmail.com Adres Bilgileri

ÖRNEKTİR - SAMPLE. RCSummer Ön Kayıt Formu Örneği - Sample Pre-Registration Form

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

DOKUZ EYLUL UNIVERSITY FACULTY OF ENGINEERING OFFICE OF THE DEAN COURSE / MODULE / BLOCK DETAILS ACADEMIC YEAR / SEMESTER

MIRACLE DATA WORKS KURULUM DOKÜMANI

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I

Delta Pulse 3 Montaj ve Çalıstırma Kılavuzu.


İSTANBUL TEKNİK ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK FAKÜLTESİ PROJECT TEAMWORK

OSPF PROTOKOLÜNÜ KULLANAN ROUTER LARIN MALİYET BİLGİSİNİN BULANIK MANTIKLA BELİRLENMESİ

YÜKLENİCİ FİRMALARDA İNTERNET TABANLI YÖNETİM ENFORMASYON SİSTEMLERİ ÖRNEK BİR ÇALIŞMA

T.C. Hitit Üniversitesi. Sosyal Bilimler Enstitüsü. İşletme Anabilim Dalı

Bilgisayarlı Muhasebe ve Uygulamaları (MGMT 418) Ders Detayları

MOZAİK SANATI ANTAKYA VE ZEUGMA MOZAİKLERİNİN RESİM ANALİZLERİ MEHMET ŞAHİN. YÜKSEK LİSANS TEZİ Resim Ana Sanat Dalı Danışman: Doç.

DERS BİLGİ FORMU DERS BİLGİLERİ. Türü Zorunlu/ Seçmeli DERS PLANI

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi

Java Programlama Giriş

Özgeçmiş Burak ÖZ. Telefon: (90)

Welcome. Hos Geldiniz. Summer Schools Presentation. Yaz Okulları Sunumu. Sandi Engler Overseas College Counselor Yurtdışı Üniversiteler Danışmanı

Konforun Üç Bilinmeyenli Denklemi 2016

FOREIGN CAPITAL AND INVESTMENT AND FINANCIAL CONSULTING FOR COMPANIES WITH FOREIGN CAPITAL

Transkript:

İSTANBUL TEKNİK ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK FAKÜLTESİ.NET VE SSCLI DA VERİTABANI KATMANLARININ TÜMLEŞİK OLUŞTURULMASI Bitirme Ödevi İlker NACAKLI 040020358 Bengü DEREN 040020320 Bölüm : Bilgisayar Mühendisliği Anabilim Dalı : Bilgisayar Bilimleri Danışman : Yrd. Doç. Feza Buzluca Mayıs 2007

I Özgünlük Bildirisi 1. Bu çalışmada, başka kaynaklardan yapılan tüm alıntıların, ilgili kaynaklar referans gösterilerek açıkça belirtildiğini, 2. Alıntılar dışındaki bölümlerin, özellikle projenin ana konusunu oluşturan teorik çalışmaların ve yazılım/donanımın benim tarafımdan yapıldığını bildiririm. İstanbul, 2007 İlker NACAKLI Bengü DEREN

.NET VE SSCLI DA VERİTABANI KATMANLARININ TÜMLEŞİK OLUŞTURULMASI ( ÖZET ) Günümüzde geliştirilen yazılım projelerinin çok büyük bir kısmı veritabanı uygulamaları içermektedir. Programcılar uygulamalarını geliştirdikleri süreç içerisinde veritabanı işlemlerini gerçekleştirmek ve proje kodunu yazmak için farklı uygulamalar kullanmaktadırlar. Bu süreçte, veritabanı ve kod arasında bir iletişim katmanına ihtiyaç duymaktadırlar. Her uygulamada aynı anda farklı iki platform kullanmak ve iletişimi sağlayacak katmanın, her projede benzer özellikler taşımasına rağmen baştan yazılması yazılımcılar için yorucu ve zaman kaybettirici olmaktadır. Bu şekilde tanımlanabilen problemin çözümü için üretilmiş olan ürünler ise kullanım zorluğu ve platform bağımlılığı gibi sebeplerden dolayı soruna tam bir çözüm getirememektedir. Geliştirilen proje, yazılım projelerinde kullanılan veritabanıyla ilgili katmanların temel işlevlerinin, yazılımın geliştirildiği platformdan otomatik olarak oluşturulmasını sağlayarak, yazılımcıya zaman kazandırmaktır. Hazırlanan yazılım; veritabanı tablolarını, tablolarla ilgili temel prosedürleri ve prosedürlere erişmek için kullanılacak veriye erişim katmanını otomatik olarak oluşturmaktadır. Proje, hem.net hem de SSCLI (Shared Source Common Language Infrastructure-ROTOR) platformlarına entegre edilerek, yazılımcının yazılım geliştirdiği platformdan hem veritabanı sorgularını kontrol etmesi, hem de veriye erişim katmanını oluşturması sağlanmıştır. Sonuç olarak her uygulamada tekrarlanmak zorunda kalınan işlemler kısaltılarak yazılımcıların daha hızlı program geliştirmeleri sağlanmıştır. Bunun yanı sıra oluşturulan veri tabanı elemanları ve veriye erişim katmanı belli bir standarda göre isimlendirildiği için birden çok yazılımcının çalıştığı projelerde yaşanabilecek olan uyum sorununun da önüne geçilmiştir. Son olarak, proje SSCLI da da geliştirildiği için SSCLI projelerinde de kullanılabilecektir. Ayrıca proje içeriğinde yer alan SSCLI ile ilgili teknik bilgilerle ve SSCLI araçlarının örnek kullanımlarıyla SSCLI da geliştirilecek bundan sonraki çalışmalara yardımcı olabilecek niteliktedir.

III INTEDRATED AUTO-GENERATE DATABASE LAYERS IN.NET AND SSCLI ( SUMMARY ) Most of the software projects use database systems to store data that collected in the solution phase. That s why, software projects are developed in two fundamental layers. These fundamental layers generally have been generated from separate platforms. Layers that generated from different programs have conceptually different mechanism. This issue produces a necessity to use communication layer between distinct mechanisms. Software developer has to use these separate platforms in every phase of project and consume time by duplicate the similar process. The main goal of this project is to generate the basic processes in database layers automatically from the software platform and save time for developer by atomize the similar jobs. This project generates the database tables, basic store procedures and data access layers that will be used for accessing these store procedures, automatically. Project is developed for both MS.NET and SSCLI (Shared Source Common Language Infrastructure-ROTOR) platforms so developer can manage database and data access layer processes from the platform that use to develop software. Besides the main goal, this project generates database members and data access layer with a suitable naming convention. Because of this, developers that use this project are forced to fit these naming conventions and remove the conformity problems in team members. In addition, project can be used for projects that are developed by SSCLI. Because of this property of project, it facilitates the project development in SSCLI by the help of autogenerated database layers. At the beginning, projects that are results of the previous studies in this area, developed as a third-party tool (separate from the software platform). For example Alachisoft Company develops the Tier Developer program for auto-generate the database layers. Tier Developer, generates the database queries for store procedures belongs to database tables

IV that is taken from the database platforms. In addition to this process, it generates the data access layer in MS.NET with selected programming language. Otherwise, Microsoft implements a component to the.net Framework 2.0 that can autogenerate and manage the data access layer in the same platform. Through the aim of this projects, project is developed in six phase. These phases are education, analysis, architectural design, development, and documentation. In the analysis phase problem is specified as a first step. As mentioned before, nowadays software projects, independent from the type of project (Web Application, Windows Application etc.) needs database systems. That s why these projects are generally developed in three layers. These layers are database layer that stores data, data access layer that provides access to stored data, and presentation layer that collects, and use this data. The aim of this stratified architecture is protect the whole system from specific damages by separates these layer and shortened the code by prevent to duplicate similar issues. Although these stratified architecture nearly the same for projects, programmer duplicate the similar job in every project by developing these architecture in the beginning. In second step, project is modeled as a two main module to solve the problems that analysis. First module is the Database Module. This module focuses on the database. It automatically generates the tables and the main stored procedures in the way the user chooses. Also this module creates a naming convention so that the programmers will not have high risk for the naming problem. The second module is the data access layer module which is designed for using the first module for the projects easily by the user. With the second the data access layer is automatically created by the project in C# language. The class UML of the project can be seen below.

V Data Column Data Table +Value : object SqlColumn +SqlColumn(in ColumnName : string, in ColumnType) CSClassGenerator -ConnectionString : string = "" +prconnectionstring() : string +ClassHeader()() : string +ClassFooter()() : string CSFunctionGenerator +Generate(params SQLTable[] tables)() : void -GenerateFunctions(SQLTable table)() : string -GenerateLoadAllFunction(SQLTable table)() : string -GenerateLoadFunction(SQLTable table)() : string -GenerateInsertFunction(SQLTable table)() : string -GenerateUpdateFunction(SQLTable table)() : string -GenerateDeleteFunction(SQLTable table)() : string SQLTable +PrimaryKey : SqlColumn +connstr : string +Conn +conn_status : bool +SQLTable(in str : string) +Open_Connection(in connstr : string) : bool +Close_Connection() : bool SQLFunctions +GenerateAllSps(in tables : SQLTable) +GenerateLoadSp(in table : SQLTable) : bool +GenerateUpdateSp(in table : SQLTable) : bool +GenerateInsertSp(in table : SQLTable) : object +GenerateDeleteSp(in table : SQLTable) : bool +GenerateLoadAllSp(in table : SQLTable) : bool +GenerateTable(in table : SQLTable) +GetIfNullable(in column) : string +GetConstraint(in column) : string +SetPrimaryKey(in tbl : SQLTable) : SQLTable +GetDBType(in columntype : string) : string SQL Helper CommonFunctions +GenerateSPParameters(string ConnectionString, string SPName, object[] ParameterValues)() : <unspecified> +ExecuteSPReturnsDS(string ConnectionString, string SPName, params object[] ParameterValues)() : <unspecified> +ExecuteSP(string ConnectionString, string SPName, params object[] ParameterValues)() : void +ExecuteSP(SqlConnection conn,sqltransaction tran, string SPName, params object[] ParameterValues)() : void +ExecuteSPReturnsID(string ConnectionString, string SPName, params object[] ParameterValues)() : long +ExecuteSPReturnsID(SqlConnection conn,sqltransaction tran, string SPName, params object[] ParameterValues)() : long BatchGenerator +CompileWithRotor(in RotorPath : string, in SolutionPath : string) : void +CompileWithMSNET(in SolutionPath : string) : void -SaveBatch(in strbatch : short) : void -RunBatch(in strbatch : string) : void The Class UML diagrams In the presentation layer of the project there will be an object created by giving the SQLTable class a connection string in sting format. After this the table s columns will be generated by giving the SQLColumn class the necessary parameters and these columns will be added to the table object. SQLFunctions class s GenerateTable function will be called with SQLTable classes objects in order to create the tables in database. The same table objects will be sent to GenerateAllSps function of SQLFunctions class in order to cerate the basic stored procedures. After the database actions completed, the table objects will be sent to CSFunctionGenerator class s Generate function. In this way the data access methods will be created by accessing the CSClassGenerator class s methods.the data access class will be created in C# language and the class will be saved to user s C: disc. After this process by using BatchGenerator class the user can choose which platform to

VI use in order to compile the data access class.the CompileWithRotor and CompileWithMSNET methods of BatchGenerator class can be used for this task. These methods will create and call the suitable batch files and save the data access class s dll to user s specified path. Finally the CommonFunction class is designed for the user to call data access class methods. The project is tested with two different test programs. One of them is created with Microsoft.NET 2.0 the other one is created by using SSCLI 2.0. With both of the test projects two phases are passed. In the first phase the framework set up to different platforms and checked if it works correctly or not. In the second phase the data access layer which is created by the project in C# is tried on different platforms and two different test programs. As a result of these test programs results it is observed that with a table of three columns the framework creates almost a hundred lines of code automatically. It can be said that if a software project with more database tables is used by the developers the gain will increase. It is also an advantage that the framework s database objects can be used with under the same transaction. Besides the framework supports SSCLI 2.0 so that it can be used in this platform just like.net 2.0 platforms. There are some incomplete parts in the developed framework. One of the missing parts is that the framework does not support relational database. But the project can be developed in time and it is possible to add relation property to the project. With this volume of the project if the user creates the database tables the basic stored procedures can be automatically generated by the project despite not supporting the relational database. The project does not support special stored procedures which are dependent to processes. But after creating the database tables, basic procedures and the data access layer by using the project the user can add the special procedures by using the database platform. Also the user can add the necessary methods to the data access layer. The project supports MS SQL 2000 and MS SQL 2005. In the project the SQLHelper class is used in as lower data access layer. Because of this with adding some features for Oracle the framework can be used wih Oracle database platform,too. The project does not give infotmation messages to the user.this feature can be added to the project in a very short time because the infrastructure is desined in early parts of the poject.

VII Despite using SSCLI in the project, the framework has only been tested on Windows operating system.sscli is dependent from operating system type so that with more effort the project can become pearting system independent. Finally the project contains a lot of information about SSCLI.With this property it can be used as a guide for the projects which will use SSCLI in development.

VIII İÇİNDEKİLER 1.GİRİŞ... 1 2.PROJENİN TANIMI VE PLANI... 2 2.1.Projenin Tanımı...2 2.2.Proje Planı...2 3.KURAMSAL BİLGİLER... 4 3.1.Microsoft.NET Platformu...4 3.2.SSCLI (Shared Source Common Language Infrastructure):...6 3.3.SQLHelper...8 3.4 Tier Developer...9 3.5.MS.NET 2005 te TableAdapter Yapısı...11 4.ANALİZ VE MODELLEME... 13 5.TASARIM, GERÇEKLEME VE TEST... 17 5.1.Tasarım...17 5.2.Gerçekleme...17 5.2.1.Veritabanı Modülü...17 5.2.2.Veriye Erişim Modülü...22 5.3.Test...33 5.3.1.Projenin Kurulumu...33 5.3.2.Projenin Testi...35 6.DENEYSEL SONUÇLAR... 43 7.SONUÇ VE ÖNERİLER... 47 8.KAYNAKLAR... 48

1.GİRİŞ Günümüzde geliştirilen yazılım projelerinin büyük çoğunluğu topladığı verileri depolamak için veritabanı kullanmaktadır. Bu nedenle yazılım projeleri iki ana katmandan oluşturulur. Bu katmanlar da genellikle iki farklı program yardımıyla oluşturulmaktadır. Katmanların farklı programlarda olması ve farklı işleyişlere sahip olması, katmanlar arasında bir iletişim katmanı ihtiyacını doğurmuştur. Programcı, projenin her aşamasında bu farklı katmanları farklı programlarda kullanmak durumunda kalmakta ve benzer işlemleri tekrarlayarak zaman kaybetmektedir. Projenin temel hedefi, yazılım projelerinde kullanılan veritabanıyla ilgili katmanların temel işlevlerinin, yazılımın geliştirildiği platformdan otomatik olarak oluşturulmasını sağlayarak, yazılımcıya zaman kazandırmaktır. Hazırlanan yazılım; veritabanı tablolarını, tablolarla ilgili temel prosedürleri ve prosedürlere erişmek için kullanılacak veriye erişim katmanını otomatik olarak oluşturmaktadır. Proje, hem.net hem de SSCLI (Shared Source Common Language Infrastructure-ROTOR) platformlarına entegre edilerek, yazılımcının yazılım geliştirdiği platformdan hem veritabanı sorgularını kontrol etmesi, hem de veriye erişim katmanını oluşturması sağlanmıştır. Geliştirilen proje temel hedefinin yanında veritabanı elemanlarını ve veriye erişim katmanını belirli bir isimlendirme standardına göre oluşturmaktadır. Böylece yazılımcıların, bu standarda bağlı kalarak yazılım geliştirmeleri sağlanarak grup projelerinde yaşanan uyum probleminin önüne geçilmesi amaçlanmıştır. Ayrıca proje SSCLI da da geliştirildiğinden bundan sonra yapılacak SSCLI projelerinde kullanılabilecektir. Proje bu özelliğiyle, geliştirme zorluğu ve kaynak yetersizliği nedeniyle sınırlı sayıda geliştirilmiş olan SSCLI projelerinin, veri katmanının otomatik olarak oluşturulması sayesinde kısmen kolaylaştırmaktadır. Bu alanda yapılmış olan çalışmalar incelendiğinde ilk olarak veri katmanını otomatik oluşturan programlar yazılım platformundan ayrı özel paket programlar olarak geliştirilmiştir. Bunlara Alachisoft şirketi tarafından geliştirilen Tier Developer örnek olarak gösterilebilir. Tier Developer programı, farklı veri tabanı sistemlerinden veri tabanı nesnelerini alarak bu nesnelere ait temel prosedürleri oluşturacak sorguları hazırlamaktadır. Bunun yanı sıra Microsoft.NET te veriye erişim katmanını çeşitli dillerde oluşturmaktadır. Alachisoft şirketinin ticari web sitesinde Tier Developer ın geliştirme süresini yarıya indirdiğini iddia etmektedir.[1] Ayrıca Microsoft.NET Framework 2.0 da getirilen bir özellikle veriye erişim katmanını oluşturan ve bu katmanı yöneten bir yapı Framework yapısına eklenmiştir. Microsoft eğitim dokümanında veri tabanı erişimi olan projelerde genel olarak çok katmanlı yapı kullanıldığı ve sunum, veri erişimi, veritabanı olmak üzere kullanılan yapının katmanlandırılarak birbirinden daha bağımsız çalışmasının sağlanması, bu eklentinin amacını olarak belirtilmiştir.[2]