C ado teknologi. BERSIH

Didedikasikan untuk mereka yang menulis kueri di kode halaman...

Salam untuk semua!

Ada beberapa informasi tentang Habré bahwa versi selanjutnya dari VisualStudio 2008 akan memiliki ADO.NET EntityFramework. (Saya akan memberi tahu Anda sebuah rahasia, versi ini telah muncul.) Pengembangan ini adalah kerangka kerja universal yang memungkinkan Anda membuat logika data untuk proyek Anda dalam beberapa klik mouse.
Sejauh ini, bekerja dengan logika data, saya menemukan 2 jenis proyek. Yang pertama dibuat pada kerangka NHibernate yang terkenal, yang lain diimplementasikan oleh pemrogram. Saya telah menulis dan mengembangkan berbagai sistem selama 3 tahun, dan selama ini saya telah mengembangkan logika bekerja dengan pegangan ini secara eksklusif.
Jadi, beberapa hari yang lalu, setelah saya menginstal Windows baru, saya mengunduh VisualStudio WebDeveloper Express, dan dengan senang hati menemukan ADO.NET EntityFramework dalam paketnya. Setelah beberapa lama, saya mendaftarkan domain, membuat website sederhana, dan mulai melatih kekuatan saya dalam menulis program untuk framework ini.

Pertama, Anda perlu membuat proyek Web sederhana dengan database. Akan menyenangkan juga untuk terhubung ke database segera melalui DataBase Explorer. Ini hanya akan lebih nyaman nanti.

Setelah itu, elemen baru "Model Data Entitas ADO.NET" harus ditambahkan ke proyek.

Sistem perlu menentukan string untuk menghubungkan ke database, serta menentukan dari mana model ADO.NET EF pertama akan berasal.

Di database saya, saya sudah memiliki dua tabel Post dan User yang sangat sederhana, jadi tanpa basa-basi lagi, saya memaksa sistem untuk membuat model berdasarkan database saya. Setelah semua ini, sangat tindakan sederhana, saya mendapat model db yang berfungsi. Selain itu, setelah mempelajari model ini secara visual, saya tidak lupa untuk melihat ke dalam kode dan melihat bagaimana framework menjelaskan semua kelas saya?

  1. namespace DataBaseCore
  2. ///
  3. /// Tidak ada komentar untuk DbModel dalam skema.
  4. ///
  5. kelas parsial publik DbModel: global::System.Data.Objects.ObjectContext
  6. ///
  7. /// Menginisialisasi objek DbModel baru menggunakan string koneksi yang ditemukan di bagian "DbModel" dari file konfigurasi aplikasi.
  8. ///
  9. DbModel publik() :
  10. basis("nama=DbModel" , "DbModel" )
  11. ini .OnContextCreated();
  12. /* Dipangkas karena tidak perlu */
  13. kelas parsial publik Posting: global::System.Data.Objects.DataClasses.EntityObject
  14. ///
  15. /// Buat objek Posting baru.
  16. ///
  17. /// Nilai awal Id.
  18. Buat Posting publik statis (int id)
  19. Posting posting = Posting baru();
  20. pos.Id = id;
  21. pos kembali;

Mata terlatih dari spesialis logika data menunjukkan adanya kelas yang cukup sederhana dan elegan yang memungkinkan bekerja baik dengan posting di sistem maupun dengan pengguna.

Baiklah, kita sudah memiliki kodenya, tinggal mulai menggunakannya saja. Dan di sini, semua pesona dan kemungkinan ASP.NET diungkapkan kepada kami. Di antara sejumlah besar sumber data di halaman, saya melihat Sumber Data Entitas, yang dengan senang hati memberikan data berdasarkan permintaan dari kelas kami. Kami menyeretnya ke formulir, meluncurkan wizard penyiapan, dan dengan cepat melampirkan sumber data ke tabel posting kami.

Tidak diragukan lagi, deskripsi datasort dalam kode ASPX menjadi jauh lebih menyenangkan.

  1. < asp:EntityDataSource ID ="dsPosts" runat ="server" ConnectionString ="name=DbModel"
  2. DefaultContainerName ="DbModel" EntitySetName ="Posting">
* Kode sumber ini disorot dengan Penyorot Kode Sumber .

Bisa dikatakan - itu bersinar dengan anggun.

Setelah penyedia data muncul di formulir, konsumen juga dibutuhkan. Tanpa pintar, saya menambahkan kode sederhana yang hanya menampilkan semua posting secara berurutan.

  1. < asp:Repeater runat ="server" ID ="repPosts" DataSourceID ="dsPosts" >
  2. < HeaderTemplate >
  3. < ItemTemplate >
  4. < div >
  5. < h3 >
  6. < asp:Label ID ="lblHeader" runat ="server" Text ="<%# Eval("Header") %>" >
  7. < p >
  8. < asp:Label ID ="lblText" runat ="server" Text ="<%# Helpers.TypographText(Eval("Text").ToString()) %>" >
* Kode sumber ini disorot dengan Penyorot Kode Sumber .

Dan di sini berakhir bagian paling sederhana dari cerita saya. Sejauh ini, semua yang telah dilakukan dapat diulangi dengan mouse. Itu cukup mudah. Kami baru saja membuat tampilan database berorientasi objek, dan menggunakan tampilan ini, kami mulai menampilkan data dari database di halaman. Pada saat yang sama, kami tidak pernah menulis satu permintaan pun, tidak menerima data dari database secara langsung, dll ...

Tapi apa yang harus ditampilkan kepada pengguna jika kita tidak punya apa-apa di database? Tidak baik. Anda perlu menulis formulir untuk mengisi database. Sekarang kita akan keluar dari pemrograman mouse dan mulai menulis kode.

Saya melakukan dua tindakan paling dasar untuk bekerja dengan posting di sistem - ini menambah dan menghapus. Membuat pengeditan dengan analogi dengan kode ini tidak akan menyulitkan siapa pun.

  1. ruang nama DBW
  2. pos kelas umum
  3. Pos publik()
  4. public static void Baru (String PostText, String PostHeader, Int32 UserId)
  5. p.Header = PostHeader;
  6. p.Teks = Pembantu.TypographText(PostTeks);
  7. p.TanggalPublikasikan = TanggalWaktu.Sekarang;
  8. p.User = (dari usr di m.User dimana usr.Id == UserId pilih usr).First();
  9. m.AddToPost(p);
  10. m.SaveChanges();
  11. public static void Delete (Int32 PostId)
  12. DataBaseCore.DbModel m = new DataBaseCore.DbModel();
  13. DataBaseCore.Post p = new DataBaseCore.Post();
  14. p = (dari pst di m.Post dimana pst.Id == PostId pilih pst).First();
  15. m.DeleteObject(p);
  16. m.SaveChanges();
* Kode sumber ini disorot dengan Penyorot Kode Sumber .

Tampaknya semuanya sederhana, dan ya, memang begitu. Tapi ada beberapa nuansa.
Pertama, ini LINQ. Tanpa itu, ADO.NET tidak akan kemana-mana. Jadi Anda tidak boleh mengelak dan umumnya mendapat skor pada SQL atau LINQ, Anda masih harus menulis kueri.
Kedua, kode ini dihasilkan secara otomatis oleh kerangka kerja, jadi Anda tidak perlu mengharapkan banyak kemudahan di beberapa titik, dan Anda harus selalu siap untuk mengubah kode yang sudah dibuat oleh studio. Misalnya, di sini, di baris 16, akan lebih mudah untuk menggunakan bukan objek dari tipe pengguna, yang harus saya pilih dari database, tetapi untuk segera meneruskan nilai pengidentifikasi pengguna. Akan lebih nyaman untuk kode ini, tetapi tidak universal. Oleh karena itu, kode perlu diperbaiki dan dipikirkan kembali. Mungkin Anda hanya perlu memberikan bukan ID pengguna, tetapi objek bertipe pengguna.

Apa berikutnya? Selanjutnya, saya akan terus menulis proyek, mempelajari seluk-beluk Kerangka Entitas ADO.NET, dan dengan senang hati saya akan berbagi penelitian saya dengan Anda, habrausers yang terhormat. Dengan demikian, akan ada artikel baru dengan data yang lebih serius dan mendalam.

UPD. Topiknya sangat luas. Bahkan tidak ada persentase kemungkinan yang diungkapkan di sini, tetapi kelanjutannya adalah 8-)

teknologi ADO.NET, . .NET Framework, CORBA

Teknologi akses database jarak jauh ADO .NET juga dikembangkan untuk arsitektur client-server. Selain dua level database jarak jauh - klien dan server - level tambahan muncul - server logika bisnis yang mengimplementasikan logika bisnis aplikasi.

Teknologi ADO .NET menetapkan skema berikut untuk klien untuk bekerja dengan server database:

Membangun koneksi ke server;

Mendapatkan data yang diperlukan;

Menutup koneksi;

Pengolahan data;

Membangun koneksi untuk mentransfer data yang diubah kembali ke server.

ADO .NET didasarkan pada dua modul utama:

Penyedia Data .NET Framework

Database relasional residen (DataSet).

Penyedia data, seperti namanya, bertanggung jawab untuk mengkomunikasikan aplikasi dengan sumber data dan untuk memanipulasi data. Penyedia data menyertakan objek manipulasi data berikut:

a) Koneksi digunakan untuk membuat koneksi ke sumber data, serta untuk mengelola transaksi.

b) Perintah memungkinkan Anda untuk memanipulasi data sumber, serta menjalankan prosedur tersimpan. Dalam hal ini, parameter untuk transfer data di kedua arah dapat digunakan.

c) DataAdapter berfungsi sebagai penghubung antara database DataSet residen dan sumber data dan biasanya menggunakan objek Command untuk mengeksekusi perintah SQL baik saat mengisi DataSet dengan data maupun saat mengirim kembali data yang diubah oleh klien ke sumber. Ini memiliki empat metode untuk melakukan fungsi-fungsi ini: SelectCommand, InsertCommand, UpdateCommand, dan DeleteCommand.

d) DataReader menyediakan data read-only dari sumbernya. Jika aplikasi klien tidak mengubah data dan tidak memerlukan pemilihan data yang sewenang-wenang, tetapi tampilan satu kali sudah cukup, maka menggunakan DataReader sebagai pengganti DataSet akan menghemat sumber daya komputer, serta meningkatkan kinerja aplikasi.

Database relasional penduduk adalah basis data relasional yang diterima oleh klien, yang disimpan dalam RAM residennya.

Selanjutnya, klien offline memproses data dan, jika perlu, memodifikasinya, setelah itu koneksi ke server dibuat lagi dan informasi yang dimodifikasi dari database residen dikirim kembali.

Skema interaksi semacam itu agak mirip dengan karya arsitektur file -

server dan sering digunakan oleh perusahaan saat bekerja dengan database jarak jauh melalui jaringan global Internet.

Untuk menyediakan akses ke objek melalui Internet global, sebagai bagian dari ADO .NET, disediakan modul .NET FrameWork yang menyediakan interaksi antara berbagai format presentasi data, termasuk HTML dan XML.

Dari karakteristik tersebut dapat dilihat bahwa teknologi ADO .NET menyediakan:

Kemampuan untuk berinteraksi antara data dari berbagai format, termasuk HTML dan XML;

Penghematan biaya yang signifikan saat bekerja dengan database jarak jauh melalui Internet global.

Pembaruan terakhir: 31.10.2015

Saat ini, bekerja dengan data sangatlah penting. Digunakan untuk menyimpan data berbagai sistem manajemen basis data: MS Server SQL, Oracle, MySQL, dan sebagainya. Dan sebagian besar aplikasi besar menggunakan sistem manajemen basis data ini dengan satu atau lain cara untuk menyimpan data. Namun, perantara diperlukan untuk berkomunikasi antara database dan aplikasi C#. Dan perantara seperti itu adalah teknologi ADO.NET.

ADO.NET menyediakan teknologi data yang didasarkan pada .NET Framework. Teknologi ini memberi kita satu set kelas di mana kita dapat mengirim kueri ke basis data, membuat koneksi, menerima respons dari basis data, dan melakukan sejumlah operasi lainnya.

Selain itu, penting untuk dicatat bahwa ada banyak sistem manajemen basis data. Intinya, mereka mungkin berbeda. MS SQL Server, misalnya, menggunakan bahasa T-SQL, sedangkan MySQL dan Oracle menggunakan PL-SQL. Sistem basis data yang berbeda mungkin memiliki jenis data yang berbeda. Poin lain mungkin juga berbeda. Namun, fungsionalitas ADO.NET dibangun sedemikian rupa untuk memberi pengembang antarmuka terpadu untuk bekerja dengan berbagai macam DBMS.

Antarmuka database di ADO.NET didasarkan pada rentang objek yang terbatas: Connection, Command, DataReader, DataSet, dan DataAdapter. Objek Connection membuat koneksi ke sumber data. Objek Command memungkinkan Anda untuk melakukan operasi pada data dari database. Objek DataReader membaca data yang diterima sebagai hasil dari permintaan. Objek DataSet dirancang untuk menyimpan data dari database dan memungkinkan Anda untuk bekerja dengannya secara terpisah dari database. Dan objek DataAdapter adalah perantara antara DataSet dan sumber data. Terutama, melalui objek-objek ini, pekerjaan dengan database akan berjalan.

Namun, untuk menggunakan kumpulan objek yang sama untuk sumber data yang berbeda, yang sesuai penyedia data. Sebenarnya melalui penyedia data di ADO.NET, interaksi dengan database dilakukan. Selain itu, untuk setiap sumber data di ADO.NET mungkin ada penyedianya sendiri, yang sebenarnya menentukan implementasi spesifik dari kelas-kelas di atas.

Secara default, ADO.NET memiliki penyedia bawaan berikut:

    Penyedia untuk MS SQL Server

    Penyedia untuk OLE DB (Menyediakan akses ke beberapa versi lama MS SQL Server, serta ke database Access, DB2, MySQL, dan Oracle)

    Penyedia untuk ODBC (Penyedia untuk sumber data yang tidak ada penyedianya)

    Penyedia untuk Oracle

    penyedia EntityClient. Penyedia data untuk teknologi ORM Entity Framework

    Penyedia untuk SQL Server Compact 4.0 Server

Selain provider yang sudah built-in ini, masih banyak juga yang lainnya yang didesain untuk berbagai database, seperti MySQL.

Ruang nama utama yang digunakan di ADO.NET adalah:

    System.Data: mendefinisikan kelas, antarmuka, delegasi yang mengimplementasikan arsitektur ADO.NET

    System.Data.Common: berisi kelas umum untuk semua penyedia ADO.NET

    System.Data.Design: mendefinisikan kelas yang digunakan untuk membuat dataset mereka sendiri

    System.Data.Odbc: Menentukan fungsionalitas penyedia data untuk ODBC

    System.Data.OleDb: Menentukan fungsionalitas penyedia data untuk OLE DB

    System.Data.Sql: Menyimpan kelas yang mendukung fungsionalitas khusus SQL Server

    System.Data.OracleClient: Menentukan fungsionalitas penyedia untuk database Oracle

    System.Data.SqlClient: mendefinisikan fungsionalitas penyedia untuk database MS SQL Server

    System.Data.SqlServerCe: Menentukan fungsionalitas penyedia untuk SQL Server Compact 4.0

    System.Data.SqlTypes: berisi kelas untuk tipe data MS SQL Server

    Microsoft.SqlServer.Server: Menyimpan komponen untuk SQL Server untuk berkomunikasi dengan runtime bahasa umum

Secara skematis, arsitektur ADO.NET dapat direpresentasikan sebagai berikut:

Secara fungsional, kelas ADO.NET dapat dipecah menjadi dua tingkatan: terhubung dan terputus. Setiap penyedia data .NET mengimplementasikan versinya sendiri dari Connection, Command, DataReader, DataAdapter, dan sejumlah objek lain yang membentuk layer terhubung. Artinya, dengan bantuan mereka, koneksi ke database dibuat dan interaksi dilakukan dengannya. Sebagai aturan, implementasi objek ini untuk setiap penyedia tertentu memiliki awalan dalam namanya yang menunjukkan penyedia:

Kelas-kelas lain seperti DataSet, DataTable, DataRow, DataColumn, dan sejumlah lainnya membentuk lapisan yang terputus, karena begitu data diambil ke dalam DataSet, kita dapat bekerja dengan data itu apakah koneksi dibuat atau tidak. Artinya, setelah menerima data dari database, aplikasi dapat diputus dari sumber data.

Ketika arsitek arsitektur tingkat-n mengevaluasi teknologi, pola, atau strategi baru, mereka memutuskan bagaimana potongan teka-teki baru itu akan cocok dengan arsitektur. Jika ada Kerangka Entitas, integrasi tidak menimbulkan kesulitan. Itu dapat diintegrasikan ke dalam arsitektur n-tier serta arsitektur single-tier.

19.03.2009 15:32

FAQ Kerangka Entitas

Memahami pemodelan entitas, memetakan model tersebut ke database relasional, dan merancang Model Data Entitas (EDM) adalah langkah pertama untuk memahami Kerangka Entitas. Saya akan memulai artikel ini dengan menjawab pertanyaan tentang dasar-dasar Entity Framework, termasuk kelas ObjectContext, lalu menjawab pertanyaan tentang kapan dan di mana menggunakan Entity Client dengan Entity SQL. Selain itu, saya berencana untuk menjelaskan perbedaan antara EntityClient dan Object Services, dan implikasi penggunaan kueri LINQ dan Entity SQL bersama dengan layanan ini.

16.02.2009 15:15

Ikhtisar Kerangka Entitas ADO.NET

Dalam masalah Studio visual 2008, ADO.NET memperkenalkan arsitektur Entity Framework baru. Ini memungkinkan pengembang untuk mengakses data menggunakan model objek alih-alih model data logis atau relasional. Kerangka Entitas membantu abstrak diagram logika data ke dalam model konseptual dan menyediakan beberapa cara untuk berinteraksi dengan model konseptual melalui Object Services dan penyedia data baru bernama EntityClient. Artikel bulan ini membahas apa itu Entity Framework, bagaimana itu diterapkan pada aplikasi, dan bagaimana merancang dan memprogramnya.

13.02.2009 18:44

Mengembangkan Model Data Entitas dengan Kerangka Entitas

Kerangka Entitas adalah teknologi baru, dirancang untuk ADO.NET. Ini memungkinkan pengembang untuk memvisualisasikan data menggunakan model logis daripada model fisik, yang memberikan beberapa fleksibilitas pengembangan. Pada majalah edisi Juli 2007, di bawah tajuk "Poin Data", kami berikan gambaran rinci Teknologi Entity Framework (seharusnya dirilis secara resmi pada paruh pertama tahun 2008).

13.02.2009 18:33

Menggunakan Atribut untuk Menormalkan dan Memvalidasi Entitas Bisnis

Dalam pemrograman korporat, saat mendesain lapisan akses data, pertanyaan tentang bekerja dengan objek bisnis (entitas bisnis) sering muncul: ini memuat / mengubah / menyimpan dan berpindah antar level. Ada dua pendekatan utama untuk melakukan ini - menggunakan entitas bisnis Anda sendiri atau sarana standar(ADO.NET menyediakan cara yang cukup nyaman untuk melakukan ini) - menggunakan DataSet.

20.01.2007 03:54

ADO.NET: Ikhtisar Teknologi

Banyak programmer bekerja dengan database di platform Microsoft, dapat menghargai kesederhanaan dan kenyamanan teknologi ADO - Objek Data ActiveX. Antarmuka yang intuitif dan sekumpulan objek yang logis, bersama dengan kemudahan pemrograman, telah sepatutnya mendapat pengakuan dari pemrogram. Meskipun demikian, bersama dengan platform .NET yang baru, Microsoft juga memperkenalkan alat akses basis data generasi baru - ADO.NET.

27.12.2006 01:32

Operasi pada data dengan struktur hierarkis. Mengembangkan aplikasi terdistribusi di .NET

Artikel ini mendemonstrasikan teknik membaca dan menulis kumpulan baris hierarki di sumber data. Pada contoh kode yang diberikan pada artikel ini, untuk melakukan koneksi ke database Data Microsoft SQL Server atau Microsoft Desktop Engine (MSDE) menggunakan penyedia terkelola SQL. Untuk terhubung ke sumber data lain yang sesuai dengan OLEDB, gunakan penyedia terkelola ADO.

27.12.2006 01:26

Bekerja dengan Data Offline di ADO.NET

ADO.NET, tidak seperti pendahulunya ADO dan OLE DB, dirancang khusus untuk digunakan dalam aplikasi web, di mana tidak ada koneksi permanen ke database. Pekerjaan tradisional dengan data di ADO.NET dibangun menurut skema berikut: Koneksi, lalu dibuka dengan metode Open, sebuah objek Command dibuat dengan enkapsulasi perintah SQL, itu dijalankan dan koneksi kemudian ditutup. Pendekatan ini memberikan akses berulir ke hasil kueri. Itu. saat membaca data dengan DataReader, Anda tidak dapat melompati beberapa catatan atau kembali ke yang sebelumnya. Akses streaming memiliki performa maksimal.



Memuat...
Atas