Bagikan melalui


Menyebarkan ASP.NET Web Application dengan SQL Server Compact menggunakan Visual Studio atau Visual Web Developer: Menyebarkan Database SQL Server Compact - 2 dari 12

oleh Tom Dykstra

Unduh Proyek Starter

Rangkaian tutorial ini menunjukkan kepada Anda cara menyebarkan (menerbitkan) proyek aplikasi web ASP.NET yang menyertakan database SQL Server Compact dengan menggunakan Visual Studio 2012 RC atau Visual Studio Express 2012 RC for Web. Anda juga dapat menggunakan Visual Studio 2010 jika Anda menginstal Pembaruan Penerbitan Web. Untuk pengenalan seri ini, lihat tutorial pertama dalam seri ini.

Untuk tutorial yang menunjukkan fitur penyebaran yang diperkenalkan setelah rilis RC Visual Studio 2012, menunjukkan cara menyebarkan edisi SQL Server selain SQL Server Compact, dan menunjukkan cara menyebarkan ke Azure App Service Web Apps, lihat ASP.NET Penyebaran Web menggunakan Visual Studio.

Gambaran Umum

Tutorial ini menunjukkan cara menyiapkan dua database SQL Server Compact dan mesin database untuk penyebaran.

Untuk akses database, aplikasi Contoso University memerlukan perangkat lunak berikut yang harus disebarkan dengan aplikasi karena tidak termasuk dalam .NET Framework:

Struktur database dan beberapa (tidak semua) data dalam dua database aplikasi juga harus disebarkan. Biasanya, saat Anda mengembangkan aplikasi, Anda memasukkan data pengujian ke dalam database yang tidak ingin Anda sebarkan ke situs langsung. Namun, Anda mungkin juga memasukkan beberapa data produksi yang ingin Anda sebarkan. Dalam tutorial ini Anda akan mengonfigurasi proyek Contoso University sehingga perangkat lunak yang diperlukan dan data yang benar disertakan saat Anda menyebarkan.

Pengingat: Jika Anda mendapatkan pesan kesalahan atau sesuatu tidak berfungsi saat Anda melalui tutorial, pastikan untuk memeriksa halaman pemecahan masalah.

SQL Server Compact versus SQL Server Express

Aplikasi sampel menggunakan SQL Server Compact 4.0. Mesin database ini adalah opsi yang relatif baru untuk situs web; versi SQL Server Compact yang lebih lama tidak berfungsi di lingkungan hosting web. SQL Server Compact menawarkan beberapa manfaat dibandingkan dengan skenario pengembangan yang lebih umum dengan SQL Server Express dan menyebarkan ke SQL Server penuh. Tergantung pada penyedia hosting yang Anda pilih, SQL Server Compact mungkin lebih murah untuk disebarkan, karena beberapa penyedia mengenakan biaya tambahan untuk mendukung database SQL Server penuh. Tidak ada biaya tambahan untuk SQL Server Compact karena Anda dapat menyebarkan mesin database itu sendiri sebagai bagian dari aplikasi web Anda.

Namun, Anda juga harus menyadari keterbatasannya. SQL Server Compact tidak mendukung prosedur, pemicu, tampilan, atau replikasi tersimpan. (Untuk daftar lengkap fitur SQL Server yang tidak didukung oleh SQL Server Compact, lihat Perbedaan Antara SQL Server Compact dan SQL Server.) Selain itu, beberapa alat yang dapat Anda gunakan untuk memanipulasi skema dan data dalam database SQL Server Express dan SQL Server tidak berfungsi dengan SQL Server Compact. Misalnya, Anda tidak dapat menggunakan SQL Server Management Studio atau SQL Server Data Tools di Visual Studio dengan database SQL Server Compact. Anda memiliki opsi lain untuk bekerja dengan database SQL Server Compact:

  • Anda dapat menggunakan Server Explorer di Visual Studio, yang menawarkan fungsionalitas manipulasi database terbatas untuk SQL Server Compact.
  • Anda dapat menggunakan fitur manipulasi database WebMatrix, yang memiliki lebih banyak fitur daripada Server Explorer.
  • Anda dapat menggunakan alat pihak ketiga atau sumber terbuka dengan fitur yang relatif lengkap, seperti SQL Server Compact Toolbox dan utilitas skrip skema dan data Ringkas SQL.
  • Anda dapat menulis dan menjalankan skrip DDL (bahasa definisi data) Anda sendiri untuk memanipulasi skema database.

Anda dapat mulai dengan SQL Server Compact dan kemudian meningkatkan nanti seiring berkembangnya kebutuhan Anda. Tutorial selanjutnya dalam seri ini menunjukkan kepada Anda cara bermigrasi dari SQL Server Compact ke SQL Server Express dan ke SQL Server. Namun, jika Anda membuat aplikasi baru dan berharap membutuhkan SQL Server dalam waktu dekat, mungkin yang terbaik adalah memulai dengan SQL Server atau SQL Server Express.

Mengonfigurasi mesin database SQL Server Compact untuk Penyebaran

Perangkat lunak yang diperlukan untuk akses data di aplikasi Contoso University ditambahkan dengan menginstal paket NuGet berikut:

Tautan menunjuk ke versi paket ini saat ini, yang mungkin lebih baru dari apa yang diinstal dalam proyek pemula yang Anda unduh untuk tutorial ini. Untuk penyebaran ke penyedia hosting, pastikan Anda menggunakan Entity Framework 5.0 atau yang lebih baru. Versi Migrasi Pertama Kode yang lebih lama memerlukan Kepercayaan Penuh, dan di banyak penyedia hosting aplikasi Anda akan berjalan dalam Medium Trust. Untuk informasi selengkapnya tentang Medium Trust, lihat tutorial Menyebarkan ke IIS sebagai Lingkungan Pengujian .

Penginstalan paket NuGet umumnya mengurus semua yang Anda butuhkan untuk menyebarkan perangkat lunak ini dengan aplikasi. Dalam beberapa kasus, ini melibatkan tugas seperti mengubah file Web.config dan menambahkan skrip PowerShell yang berjalan setiap kali Anda membangun solusi. Jika Anda ingin menambahkan dukungan untuk salah satu fitur ini (seperti SQL Server Compact dan Kerangka Kerja Entitas) tanpa menggunakan NuGet, pastikan Anda mengetahui apa yang dilakukan penginstalan paket NuGet sehingga Anda dapat melakukan pekerjaan yang sama secara manual.

Ada satu pengecualian di mana NuGet tidak mengurus semua yang harus Anda lakukan untuk memastikan keberhasilan penyebaran. Paket NuGet SqlServerCompact menambahkan skrip pasca-build ke proyek Anda yang menyalin rakitan asli ke subfolder x86 dan amd64 di bawah folder bin proyek, tetapi skrip tidak menyertakan folder tersebut dalam proyek. Akibatnya, Web Deploy tidak akan menyalinnya ke situs web tujuan kecuali Anda secara manual menyertakannya dalam proyek. (Perilaku ini dihasilkan dari konfigurasi penyebaran default; opsi lain, yang tidak akan Anda gunakan dalam tutorial ini, adalah mengubah pengaturan yang mengontrol perilaku ini. Pengaturan yang dapat Anda ubah hanya file yang diperlukan untuk menjalankan aplikasi di bawah Item untuk disebarkan pada tab Web Paket/Terbitkan dari jendela Properti Proyek . Mengubah pengaturan ini umumnya tidak disarankan karena dapat mengakibatkan penyebaran lebih banyak file ke lingkungan produksi daripada yang diperlukan di sana. Untuk informasi selengkapnya tentang alternatif, lihat tutorial Mengonfigurasi Properti Proyek .)

Bangun proyek, lalu di Penjelajah Solusi klik Tampilkan semua File jika Anda belum melakukannya. Anda mungkin juga harus mengklik Refresh.

Solution_Explorer_Show_All_Files

Perluas folder bin untuk melihat folder amd64 dan x86 , lalu pilih folder tersebut, klik kanan, dan pilih Sertakan di Project.

amd64_and_x86_in_Solution_Explorer.png

Ikon folder berubah untuk memperlihatkan bahwa folder telah disertakan dalam proyek.

Solution_Explorer_amd64_included.png

Mengonfigurasi Migrasi Pertama Kode untuk Penyebaran Database Aplikasi

Saat Anda menyebarkan database aplikasi, biasanya Anda tidak hanya menyebarkan database pengembangan Anda dengan semua data di dalamnya ke produksi, karena banyak data di dalamnya mungkin hanya ada untuk tujuan pengujian. Misalnya, nama siswa dalam database pengujian bersifat fiktif. Di sisi lain, Anda sering tidak dapat menyebarkan hanya struktur database tanpa data di dalamnya sama sekali. Beberapa data dalam database pengujian Anda mungkin data nyata dan harus ada ketika pengguna mulai menggunakan aplikasi. Misalnya, database Anda mungkin memiliki tabel yang berisi nilai nilai yang valid atau nama departemen nyata.

Untuk mensimulasikan skenario umum ini, Anda akan mengonfigurasi metode Code First Migrations Seed yang disisipkan ke dalam database hanya data yang ingin Anda berada di sana dalam produksi. Metode Seed ini tidak akan menyisipkan data pengujian karena akan berjalan dalam produksi setelah Code First membuat database dalam produksi.

Dalam versi Code First yang lebih lama sebelum Migrasi dirilis, metode Seed umum untuk menyisipkan data pengujian juga, karena dengan setiap perubahan model selama pengembangan database harus dihapus sepenuhnya dan dibuat ulang dari awal. Dengan Migrasi Pertama Kode, data pengujian dipertahankan setelah perubahan database, jadi termasuk data pengujian dalam metode Seed tidak diperlukan. Proyek yang Anda unduh menggunakan metode pra-Migrasi termasuk semua data dalam metode Seed dari kelas penginisialisasi. Dalam tutorial ini Anda akan menonaktifkan kelas penginisialisasi dan mengaktifkan Migrasi. Kemudian Anda akan memperbarui metode Seed di kelas konfigurasi Migrasi sehingga hanya menyisipkan data yang ingin Anda sisipkan dalam produksi.

Diagram berikut mengilustrasikan skema database aplikasi:

School_database_diagram

Untuk tutorial ini, Anda akan berasumsi bahwa Student tabel dan Enrollment harus kosong ketika situs pertama kali disebarkan. Tabel lain berisi data yang harus dimuat sebelumnya saat aplikasi ditayangkan.

Karena Anda akan menggunakan Migrasi Pertama Kode, Anda tidak lagi harus menggunakan penginisialisasi Pertama Kode DropCreateDatabaseIfModelChanges . Kode untuk penginisialisasi ini ada di file SchoolInitializer.cs dalam proyek ContosoUniversity.DAL. Pengaturan dalam elemen appSettings dari file Web.config menyebabkan penginisialisasi ini berjalan setiap kali aplikasi mencoba mengakses database untuk pertama kalinya:

<appSettings>
  <add key="Environment" value="Dev" />
  <add key="DatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL" value="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity.DAL" />
</appSettings>

Buka file Web.config aplikasi dan hapus elemen yang menentukan kelas Penginisialisasi Pertama Kode dari elemen appSettings. Elemen appSettings sekarang terlihat seperti ini:

<appSettings>
  <add key="Environment" value="Dev" />
</appSettings>

Catatan

Cara lain untuk menentukan kelas penginisialisasi adalah melakukannya dengan memanggil Database.SetInitializer dalam Application_Start metode dalam file Global.asax . Jika Anda mengaktifkan Migrasi dalam proyek yang menggunakan metode tersebut untuk menentukan penginisialisasi, hapus baris kode tersebut.

Selanjutnya, aktifkan Migrasi Pertama Kode.

Langkah pertama adalah memastikan bahwa proyek ContosoUniversity ditetapkan sebagai proyek startup. Di Penjelajah Solusi, klik kanan proyek ContosoUniversity dan pilih Atur sebagai Proyek Startup. Migrasi Pertama Kode akan terlihat di proyek startup untuk menemukan string koneksi database.

Dari menu Alat , klik Manajer Paket NuGet lalu Konsol Pengelola Paket.

Selecting_Package_Manager_Console

Di bagian atas jendela Konsol Manajer Paket pilih ContosoUniversity.DAL sebagai proyek default lalu pada PM> perintah masukkan "enable-migrations".

enable-migrations_command

Perintah ini membuat file Configuration.cs di folder Migrasi baru di proyek ContosoUniversity.DAL.

Migrations_folder_in_Solution_Explorer

Anda memilih proyek DAL karena perintah "enable-migrations" harus dijalankan dalam proyek yang berisi kelas konteks Code First. Ketika kelas tersebut berada dalam proyek pustaka kelas, Migrasi Pertama Kode mencari string koneksi database dalam proyek startup untuk solusi tersebut. Dalam solusi ContosoUniversity, proyek web telah ditetapkan sebagai proyek startup. (Jika Anda tidak ingin menunjuk proyek yang memiliki string koneksi sebagai proyek startup di Visual Studio, Anda dapat menentukan proyek startup di perintah PowerShell. Untuk melihat sintaks perintah untuk perintah enable-migrations, Anda dapat memasukkan perintah "get-help enable-migrations".)

Buka file Configuration.cs dan ganti komentar dalam Seed metode dengan kode berikut:

var instructors = new List<Instructor>
{   
    new Instructor { FirstMidName = "Kim",     LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11"), OfficeAssignment = new OfficeAssignment { Location = "Smith 17" } },
    new Instructor { FirstMidName = "Fadi",    LastName = "Fakhouri",    HireDate = DateTime.Parse("2002-07-06"), OfficeAssignment = new OfficeAssignment { Location = "Gowan 27" } },
    new Instructor { FirstMidName = "Roger",   LastName = "Harui",       HireDate = DateTime.Parse("1998-07-01"), OfficeAssignment = new OfficeAssignment { Location = "Thompson 304" } },
    new Instructor { FirstMidName = "Candace", LastName = "Kapoor",      HireDate = DateTime.Parse("2001-01-15") },
    new Instructor { FirstMidName = "Roger",   LastName = "Zheng",       HireDate = DateTime.Parse("2004-02-12") }
};
instructors.ForEach(s => context.Instructors.AddOrUpdate(i => i.LastName, s));
context.SaveChanges();

var departments = new List<Department>
{
    new Department { Name = "English",     Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 1 },
    new Department { Name = "Mathematics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 2 },
    new Department { Name = "Engineering", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 3 },
    new Department { Name = "Economics",   Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 4 }
};
departments.ForEach(s => context.Departments.AddOrUpdate(d => d.Name, s));
context.SaveChanges();

var courses = new List<Course>
{
    new Course { CourseID = 1050, Title = "Chemistry",      Credits = 3, DepartmentID = 3, Instructors = new List<Instructor>() },
    new Course { CourseID = 4022, Title = "Microeconomics", Credits = 3, DepartmentID = 4, Instructors = new List<Instructor>() },
    new Course { CourseID = 4041, Title = "Macroeconomics", Credits = 3, DepartmentID = 4, Instructors = new List<Instructor>() },
    new Course { CourseID = 1045, Title = "Calculus",       Credits = 4, DepartmentID = 2, Instructors = new List<Instructor>() },
    new Course { CourseID = 3141, Title = "Trigonometry",   Credits = 4, DepartmentID = 2, Instructors = new List<Instructor>() },
    new Course { CourseID = 2021, Title = "Composition",    Credits = 3, DepartmentID = 1, Instructors = new List<Instructor>() },
    new Course { CourseID = 2042, Title = "Literature",     Credits = 4, DepartmentID = 1, Instructors = new List<Instructor>() }
};
courses.ForEach(s => context.Courses.AddOrUpdate(s));
context.SaveChanges();

courses[0].Instructors.Add(instructors[0]);
courses[0].Instructors.Add(instructors[1]);
courses[1].Instructors.Add(instructors[2]);
courses[2].Instructors.Add(instructors[2]);
courses[3].Instructors.Add(instructors[3]);
courses[4].Instructors.Add(instructors[3]);
courses[5].Instructors.Add(instructors[3]);
courses[6].Instructors.Add(instructors[3]);
context.SaveChanges();

Referensi untuk List memiliki garis berlekuk merah di bawahnya karena Anda belum memiliki using pernyataan untuk namespace layanannya. Klik kanan salah satu instans List dan klik Atasi, lalu klik menggunakan System.Collections.Generic.

Mengatasi dengan menggunakan pernyataan

Pilihan menu ini menambahkan kode berikut ke using pernyataan di dekat bagian atas file.

using System.Collections.Generic;

Catatan

Menambahkan kode ke Seed metode adalah salah satu dari banyak cara untuk menyisipkan data tetap ke dalam database. Alternatifnya adalah menambahkan kode ke Up metode dan Down dari setiap kelas migrasi. Metode Up dan Down berisi kode yang mengimplementasikan perubahan database. Anda akan melihat contohnya dalam tutorial Menyebarkan Pembaruan Database .

Anda juga dapat menulis kode yang menjalankan pernyataan SQL dengan menggunakan Sql metode . Misalnya, jika Anda menambahkan kolom Anggaran ke tabel Departemen dan ingin menginisialisasi semua anggaran departemen ke $1.000,00 sebagai bagian dari migrasi, Anda dapat menambahkan baris kode berikut ke metode untuk migrasi tersebut Up :

Sql("UPDATE Department SET Budget = 1000");

Contoh ini ditunjukkan untuk tutorial ini menggunakan AddOrUpdate metode dalam Seed metode kelas Migrasi Configuration Pertama Kode. Migrasi Pertama Kode memanggil Seed metode setelah setiap migrasi, dan metode ini memperbarui baris yang telah dimasukkan, atau menyisipkannya jika belum ada. Metode AddOrUpdate ini mungkin bukan pilihan terbaik untuk skenario Anda. Untuk informasi selengkapnya, lihat Mengurus Metode AddOrUpdate EF 4.3 di blog Julie Lerman.

Tekan CTRL-SHIFT-B untuk membangun proyek.

Langkah selanjutnya adalah membuat DbMigration kelas untuk migrasi awal. Anda ingin migrasi ini membuat database baru, jadi Anda harus menghapus database yang sudah ada. SQL Server Compact database terkandung dalam file .sdf di folder App_Data. Di Penjelajah Solusi, perluas App_Data dalam proyek ContosoUniversity untuk melihat dua database SQL Server Compact, yang diwakili oleh file .sdf.

Klik kanan file School.sdf dan klik Hapus.

sdf_files_in_Solution_Explorer

Di jendela Konsol Manajer Paket , masukkan perintah "add-migration Initial" untuk membuat migrasi awal dan beri nama "Inisial".

add-migration_command

Migrasi Pertama Kode membuat file kelas lain di folder Migrasi , dan kelas ini berisi kode yang membuat skema database.

Di Konsol Manajer Paket, masukkan perintah "update-database" untuk membuat database dan jalankan metode Seed .

update-database_command

(Jika Anda mendapatkan kesalahan yang menunjukkan tabel sudah ada dan tidak dapat dibuat, itu mungkin karena Anda menjalankan aplikasi setelah Anda menghapus database dan sebelum Anda menjalankan update-database. Dalam hal ini, hapus file School.sdf lagi dan coba lagi perintahnya update-database .)

Jalankan aplikasi. Sekarang halaman Siswa kosong tetapi halaman Instruktur berisi instruktur. Inilah yang akan Anda dapatkan dalam produksi setelah Anda menyebarkan aplikasi.

Empty_Students_page

Instructors_page_after_initial_migration

Proyek sekarang siap untuk menyebarkan database Sekolah .

Membuat Database Keanggotaan untuk Penyebaran

Aplikasi Contoso University menggunakan sistem keanggotaan ASP.NET dan membentuk autentikasi untuk mengautentikasi dan mengotorisasi pengguna. Salah satu halamannya hanya dapat diakses oleh administrator. Untuk melihat halaman ini, jalankan aplikasi dan pilih Perbarui Kredit dari menu flyout di bawah Kursus. Aplikasi menampilkan halaman Masuk , karena hanya administrator yang berwenang untuk menggunakan halaman Perbarui Kredit .

Log_in_page

Masuk sebagai "admin" menggunakan kata sandi "Pas$w0rd" (perhatikan angka nol sebagai pengganti huruf "o" di "w0rd"). Setelah Anda masuk, halaman Perbarui Kredit ditampilkan.

Update_Credits_page

Saat Anda menyebarkan situs untuk pertama kalinya, adalah umum untuk mengecualikan sebagian besar atau semua akun pengguna yang Anda buat untuk pengujian. Dalam hal ini, Anda akan menyebarkan akun administrator dan tidak ada akun pengguna. Daripada menghapus akun pengujian secara manual, Anda akan membuat database keanggotaan baru yang hanya memiliki satu akun pengguna administrator yang Anda butuhkan dalam produksi.

Catatan

Database keanggotaan menyimpan hash kata sandi akun. Untuk menyebarkan akun dari satu komputer ke komputer lain, Anda harus memastikan bahwa rutinitas hash tidak menghasilkan hash yang berbeda di server tujuan daripada yang mereka lakukan di komputer sumber. Mereka akan menghasilkan hash yang sama ketika Anda menggunakan Penyedia Universal ASP.NET, selama Anda tidak mengubah algoritma default. Algoritma default adalah HMACSHA256 dan ditentukan dalam atribut validasi elemen machineKey dalam file Web.config.

Database keanggotaan tidak dikelola oleh Migrasi Pertama Kode, dan tidak ada penginisialisasi otomatis yang menyemai database dengan akun pengujian (seperti yang ada untuk database Sekolah). Oleh karena itu, untuk menjaga data pengujian tetap tersedia, Anda akan membuat salinan database pengujian sebelum membuat yang baru.

Di Penjelajah Solusi, ganti nama file aspnet.sdf di folder App_Data menjadi aspnet-Dev.sdf. (Jangan membuat salinan, cukup ganti namanya — Anda akan membuat database baru sebentar lagi.)

Dalam Penjelajah Solusi, pastikan bahwa proyek web (ContosoUniversity, bukan ContosoUniversity.DAL) dipilih. Kemudian di menu Proyek , pilih konfigurasi ASP.NET untuk menjalankan Alat Administrasi Situs Web (WAT).

Pilih tab Keamanan.

WAT_Security_tab

Klik Buat atau Kelola Peran dan tambahkan peran Administrator .

WAT_Create_New_Role

Navigasi kembali ke tab Keamanan , klik Buat Pengguna, dan tambahkan pengguna "admin" sebagai administrator. Sebelum Anda mengklik tombol Buat Pengguna pada halaman Buat Pengguna , pastikan Anda memilih kotak centang Administrator . Kata sandi yang digunakan dalam tutorial ini adalah "Pas$w0rd", dan Anda dapat memasukkan alamat email apa pun.

WAT_Create_User

Tutup browser. Di Penjelajah Solusi, klik tombol refresh untuk melihat file aspnet.sdf baru.

New_aspnet.sdf_in_Solution_Explorer

Klik kanan aspnet.sdf dan pilih Sertakan dalam Proyek.

Membedakan Pengembangan dari Database Produksi

Di bagian ini, Anda akan mengganti nama database sehingga versi pengembangannya adalah School-Dev.sdf dan aspnet-Dev.sdf dan versi produksinya adalah School-Prod.sdf dan aspnet-Prod.sdf. Ini tidak diperlukan, tetapi melakukannya akan membantu membuat Anda tidak mendapatkan versi pengujian dan produksi database yang bingung.

Di Penjelajah Solusi, klik Refresh dan perluas folder App_Data untuk melihat database Sekolah yang Anda buat sebelumnya; klik kanan dan pilih Sertakan dalam proyek.

Including_School.sdf_in_project

Ganti nama aspnet.sdf menjadi aspnet-Prod.sdf.

Ganti nama School.sdf menjadi School-Dev.sdf.

Saat menjalankan aplikasi di Visual Studio, Anda tidak ingin menggunakan versi -Prod dari file database, Anda ingin menggunakan versi -Dev . Oleh karena itu Anda harus mengubah string koneksi dalam file Web.config sehingga mereka menunjuk ke versi -Dev database. (Anda belum membuat file School-Prod.sdf, tetapi tidak apa-apa karena Code First akan membuat database tersebut dalam produksi saat pertama kali menjalankan aplikasi Anda di sana.)

Buka file Web.config aplikasi, dan temukan string koneksi:

<configuration>
  <!-- Settings -->
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=|DataDirectory|aspnet.sdf" providerName="System.Data.SqlServerCe.4.0" />
    <add name="SchoolContext" connectionString="Data Source=|DataDirectory|School.sdf" providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>
  <!-- Settings -->
</configuration>

Ubah "aspnet.sdf" menjadi "aspnet-Dev.sdf", dan ubah "School.sdf" menjadi "School-Dev.sdf":

<configuration>
  <!-- Settings -->
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=|DataDirectory|aspnet-Dev.sdf" providerName="System.Data.SqlServerCe.4.0" />
    <add name="SchoolContext" connectionString="Data Source=|DataDirectory|School-Dev.sdf" providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>
  <!-- Settings -->
</configuration>

Mesin database SQL Server Compact dan kedua database sekarang siap untuk disebarkan. Dalam tutorial berikut, Anda menyiapkan transformasi file Web.config otomatis untuk pengaturan yang harus berbeda dalam lingkungan pengembangan, pengujian, dan produksi. (Di antara pengaturan yang harus diubah adalah string koneksi, tetapi Anda akan menyiapkan perubahan tersebut nanti saat membuat profil penerbitan.)

Informasi Lebih Lanjut

Untuk informasi selengkapnya tentang NuGet, lihat Mengelola Pustaka Proyek dengan Dokumentasi NuGet dan NuGet. Jika Anda tidak ingin menggunakan NuGet, Anda harus mempelajari cara menganalisis paket NuGet untuk menentukan apa yang dilakukannya saat diinstal. (Misalnya, ini mungkin mengonfigurasi transformasi Web.config , mengonfigurasi skrip PowerShell untuk dijalankan pada waktu build, dll.) Untuk mempelajari selengkapnya tentang cara kerja NuGet, lihat terutama Membuat dan Menerbitkan File Paket dan Konfigurasi dan Transformasi Kode Sumber.