Veritabanı Dağıtma (VB)

Scott Mitchell tarafından

Kodu indirin veya PDF 'yi indirin

Bir ASP.NET Web uygulaması dağıtmak, geliştirme ortamından üretim ortamına gerekli dosyaları ve kaynakları almayı gerektirir. Veri odaklı web uygulamaları için bu veritabanı şemasını ve verilerini içerir. Bu öğretici, veritabanını geliştirme ortamından üretime başarıyla dağıtmak için gereken adımları ele alan ilk bir seridir.

Giriş

Bir ASP.NET Web uygulaması dağıtmak, geliştirme ortamından üretim ortamına gerekli dosyaları ve kaynakları almayı gerektirir. Son altı öğreticilerin, basit bir Book Incelemeleri Web uygulaması dağıtmaya baktık. Bu tanıtım sitesi bir dizi sunucu tarafı kaynağı-ASP.NET sayfa, yapılandırma dosyası, dosya ve benzer bir şekilde, Web.sitemap görüntüler ve CSS dosyaları gibi istemci tarafı kaynaklarla birlikte oluşur. Ancak veri odaklı web uygulamaları hakkında ne var? Veritabanı kullanan bir Web uygulamasını dağıtmak için hangi ek adımların alınması gerekir?

Bir sonraki birkaç öğreticilerde, veri odaklı bir Web uygulamasını dağıtmak için gereken adımları ele alınacaktır. Bu öğretici, sonraki öğreticide gereken yapılandırma değişikliklerine baktığı sırada, geliştirme ortamından üretim ortamına bir veritabanı şeması ve içeriği alma hakkında inceleyerek başlar. Aşağıda, Uygulama Hizmetleri (üyelik, roller, profil vb.) kullanan bir veritabanını dağıtmanın sorunlarını araştıracağız.

Güncelleştirilmiş kitap Incelemeleri Web uygulamasını İnceleme

Veri odaklı bir Web uygulamasının dağıtılmasını göstermek için, Book Incelemeleri Web uygulamasını basit ve statik bir Web sitesinden veri odaklı bir Web sitesine güncelleştirdim. Daha önce olduğu gibi, bu öğreticide uygulamanın iki sürümü indirilir: Web uygulaması proje modelini kullanan bir tane ve Web sitesi proje modelini kullanan bir.

Güncelleştirilmiş kitap Incelemeleri Web uygulaması, site s klasöründe () depolanan SQL Server 2008 Express Edition veritabanını kullanır App_Data ~/App_Data/Reviews.mdf . Bilgisayarınızda SQL Server 2008 yüklüyse tanıtım, hatasız çalışmalıdır. SQL Server eski bir sürümüne sahipseniz ücretsiz SQL Server 2008 Express sürümünü yükleyebilir ya da bu öğreticide bulunan veritabanı betiklerini kullanarak veritabanını kendiniz oluşturabilirsiniz.

Reviews.mdfVeritabanı dört tablo içerir:

  • Genres -Teknoloji, kurgu ve Iş gibi her bir tarz için bir kayıt içerir.
  • Books -Her inceleme için,, ve gibi sütunlarla Title GenreId ReviewDate diğerleri arasında bir kayıt içerir Review .
  • Authors -gözden geçirilmiş bir kitaba katkıda bulunan her yazar hakkında bilgi içerir.
  • BooksAuthors -yazarların hangi kitapları yazdıklarını belirten çoktan çoğa bir JOIN tablosu.

Şekil 1 ' de bu dört tablonun bir ER diyagramı gösterilmektedir.

Kitap, Web uygulaması veritabanının dört tablodan oluşur.

Şekil 1: kitap Inceleme Web uygulaması veritabanı dört tablodan oluşur (tam boyutlu görüntüyü görüntülemek için tıklayın)

Book Incelemeleri Web sitesinin önceki sürümünde, her kitap için ayrı bir ASP.NET sayfası vardı. Örneğin, ~/Tech/TYASP35.aspx 24 saat içinde kendinize ASP.NET 3,5 öğretmek için gözden geçirmeyi içeren adlı bir sayfa vardı. Web sitesinin bu yeni veri odaklı sürümünde, veritabanında depolanan incelemeler ve tek bir ASP.NET sayfasında, belirtilen kitap için gözden geçirmeyi gösteren Review. aspx? ID =BookID bulunur. Benzer şekilde, belirtilen tarzda gözden geçirilmiş kitapları listeleyen bir tarz. aspx? ID =Genreıd sayfası vardır.

Şekil 2 ve 3, Genre.aspx ve Review.aspx sayfalarını eylemde görüntüleyin. Her sayfanın adres çubuğundaki URL 'YI aklınızda edin. Şekil 2 ' de bu tarz. aspx? ID = 85d164ba-1123-4c47-82a0-c8ec75de7e0e. 85d164ba-1123-4c47-82a0-c8ec75de7e0e, GenreId teknoloji tarzı için değer olduğundan, sayfa başlığı "teknoloji incelemelerini" okur ve madde işaretli liste bu tarz içinde olan sitede bu İncelemeleri numaralandırır.

Teknoloji tarzı sayfası

Şekil 2: teknoloji tarzı sayfası (tam boyutlu görüntüyü görüntülemek için tıklayın)

ASP.NET 3,5, 24 saat içinde kendi kendinize eğitim verebilir

Şekil 3: ASP.NET 3,5 (tam boyutlu görüntüyü görüntülemek Için tıklayın) için gözden geçirin.

Book Incelemeleri Web uygulaması, yöneticilerin tarzlar, incelemeler ve yazar bilgilerini ekleyebilecekleri, düzenleyebildiği ve silebileceği bir yönetim bölümü de içerir. Şu anda herhangi bir ziyaretçi Yönetim bölümüne erişebilir. Gelecekteki bir öğreticide Kullanıcı hesapları için destek ekleyecek ve yalnızca yetkili kullanıcılara yönetim sayfalarına izin vereceğiz.

Book Incelemeleri uygulamasını indirdiğinizde, bunun amacını, veri tabanlı bir uygulama dağıtma hakkında dikkat edin. Uygulama tasarımı kadar en iyi yöntemleri göstermez. Örneğin, ayrı bir veri erişim katmanı (DAL) yoktur; ASP.NET sayfaları, kod arkasındaki sınıflarda bulunan SqlDataSource Control veya ADO.NET Code aracılığıyla doğrudan veritabanıyla iletişim kurar. Katmanlı bir mimari kullanarak veri odaklı uygulamalar oluşturmaya yönelik daha ayrıntılı bir bakış için veri öğreticilerle çalışmabölümüne bakın.

Geliştirme ve üretime yönelik veritabanları

Veri odaklı bir Web uygulamasında geliştirme başlattığınızda, veritabanına bağlanma hakkında uygulama ayrıntıları sağlayan bir veritabanı bağlantı dizesi belirtmeniz gerekir. Bu bağlantı dizesi, diğer şeyleri, veritabanı sunucusunu, veritabanı adını ve güvenlik bilgilerini belirtir. Çoğu zaman, geliştirme sırasında uygulama tarafından kullanılan veritabanı, üretimde olduğu zaman kullanılan veritabanından farklıdır. Geliştirme ve üretime karşı farklı veritabanlarını kullanmanın birçok avantajı vardır. Geliştirme sırasında farklı bir veritabanı olması, canlı verileri yanlışlıkla değiştirme veya silme konusunda endişelenmeniz gerekmediği anlamına gelir. Ayrıca, üretimde uygulamadaki etkilerle ilgili endişelenmenize gerek kalmadan kukla test verilerini veya veri modelinde önemli değişiklikler yapmanızı sağlar. Geliştirme ve üretim ortamlarında farklı bir veritabanına sahip olmanın dezavantajı, uygulamanın veritabanını dağıtmasının yanı sıra veritabanı şemasında veya verilerde yapılan ilgili değişikliklerin de dağıtılması gerekir.

İlk dağıtımdan önce, veritabanının yalnızca bir örneği vardır ve bu örnek geliştirme ortamında bulunur. Uygulamayı üretime ilk kez dağıttığınızda, yalnızca gerekli sunucu tarafı ve istemci tarafı dosyalarını kopyalamamız, ayrıca veritabanını geliştirme ortamından üretim ortamına kopyalamanız gerekir. Bu, şu anda Book Incelemeleri Web uygulamasıyla birlikte sunduğumuz, veritabanının App_Data geliştirme ortamımızda klasöründe bulunduğu ancak henüz üretim ortamına gönderilmemiş olduğu yerdir.

Uygulama dağıtıldıktan sonra veritabanının iki kopyası vardır. Uygulama geliştikçe, yeni özellikler eklenebilir, veri modelinde bir değişiklik tasarımda (varolan tablolara yeni sütunlar ekleme, mevcut sütunlarda değişiklik yapma, yeni tablolar ekleme vb.). Web uygulaması bir sonraki dağıtıldığında, son dağıtımın üretim veritabanına uygulanması gerektiğinden bu değişiklikler geliştirme ortamında veritabanına uygulanır. Bu işlemi yönetmeye yönelik bazı stratejiler gelecekteki bir öğreticide ele alınmıştır. Bu öğretici, tüm veritabanını geliştirme ortamından üretime dağıtmaya odaklanır.

Veritabanını üretim ortamına dağıtma

Bu öğreticinin geri kalanı, veritabanını geliştirme ortamından üretim ortamına nasıl dağıtacağınızı inceler. Aşağıdaki durumlarda, Web ana bilgisayar sağlayıcınızla hesabınızın Microsoft SQL Server veritabanı desteği içerdiğinden emin olmanız gerekir. Ayrıca, veritabanı sunucu adı, veritabanı adı ve veritabanına bağlanmak için kullanılan Kullanıcı adı ve parola gibi bazı bilgilere de sahip olmanız gerekir.

Bu öğreticide daha önce belirtildiği gibi kitap, Web sitesi s veritabanını, klasörde depolanan bir SQL Server 2008 Express Edition veritabanıdır App_Data . Bu tür bir veritabanının dağıtılmasının, App_Data klasörü geliştirme ortamından üretim ortamına kopyalamak kadar basit olması neden olur. Ancak, güvenlik nedenleriyle çoğu Web ana bilgisayar sağlayıcısı, veritabanlarının barındırılmasını desteklemez App_Data . Bunun yerine, Web Konakları, ortamları içinde SQL Server veritabanı sunucusu üzerinde bir hesap sağlar. Veritabanını geliştirme ortamınızdan üretim ortamına dağıtmak için veritabanınızın Web ana bilgisayar s veritabanı sunucusunda kayıtlı olması gerekir.

Bu nedenle, veritabanınızı geliştirme ortamından üretim ortamına nasıl alabilirim? Web ana bilgisayarın sunduğu hizmetlere bağlı olarak bunu yapmanın birkaç yolu vardır. DiscountASP.NET gibi bazı konaklarla, bir veritabanının veya gerçek dosyanın bir yedeğini .mdf Web sitenize yükleyebilir ve sonra denetim masasından, yedekleme dosyasını geri yükleyebilir veya .mdf dosyayı SQL Server veritabanı sunucusuna ekleyebilirsiniz. Bu tür araçlarla veritabanını dağıtmak, App_Data klasörü üretim ortamına kopyalamak ve sonra Denetim Masası aracılığıyla eklemek kadar basittir. Bu muhtemelen veritabanınızı ilk kez yayımlamanın en kolay ve en hızlı yoludur.

Başka bir yaklaşım de veritabanı Yayımlama Sihirbazı 'nı kullanmaktır. Veritabanı Yayımlama Sihirbazı, veritabanınızı, saklı yordamları, görünümleri, Kullanıcı tanımlı işlevleri, vb. ve isteğe bağlı olarak tablolardaki verileri oluşturmak için SQL komutlarını oluşturacak bir Windows masaüstü uygulamasıdır. Daha sonra SQL Server Management Studio aracılığıyla Web ana bilgisayar sağlayıcısı veritabanı sunucunuza bağlanabilir ve ardından veritabanını üretimde çoğaltmak için bu betiği yürütebilirsiniz. Daha da iyisi, Web ana bilgisayar sağlayıcınız Microsoft s veritabanı yayımlama hizmetlerini destekliyorsa, veritabanı Yayımlama Sihirbazı tarafından oluşturulan betiğin sizin adınıza veritabanı sunucusunda otomatik olarak yürütülmesini sağlayabilirsiniz. Veritabanı Yayımlama Sihirbazı veritabanı şemasını ve verilerini oluşturan bir betik oluşturduğundan, Web ana bilgisayar sağlayıcınız karşıya yüklenen bir dosyayı iliştirme gibi özellikler sunmadığına bakılmaksızın çalışacaktır .mdf .

Veritabanı oluşturma Sihirbazı 'Nı kullanarak veritabanı şemasını ve verilerini oluşturmak için SQL komutları oluşturma

Kitap Incelemelerinin veritabanını üretime dağıtmak için veritabanı Yayımlama Sihirbazı 'nı kullanmayı görelim. Visual Studio 2008 veya sonrasını kullanıyorsanız, veritabanı Yayımlama Sihirbazı zaten yüklüdür. Visual Studio 2005 kullanıyorsanız, öncelikle Sihirbazı indirmeniz ve yüklemeniz gerekecektir.

Visual Studio 'Yu açın ve veritabanına gidin Reviews.mdf . Visual Web Developer kullanıyorsanız, Veritabanı Gezgini gidin. Visual Studio kullanıyorsanız, Sunucu Gezgini kullanın. Şekil 4 Reviews.mdf ' te, Visual Web Developer veritabanı Gezgini veritabanı gösterilmektedir. Şekil 4 ' te gösterildiği gibi, Reviews.mdf veritabanı dört tablodan, üç saklı yordamdan ve Kullanıcı tanımlı bir işlevle oluşur.

Veritabanı Gezgini veya Sunucu Gezgini veritabanını bulun

Şekil 4: Veritabanı Gezgini veya Sunucu Gezgini veritabanını bulun (tam boyutlu görüntüyü görüntülemek için tıklayın)

Veritabanı adına sağ tıklayın ve bağlam menüsünden "sağlayıcıya Yayımla" seçeneğini belirleyin. Bu, veritabanı Yayımlama Sihirbazı 'Nı başlatır (bkz. Şekil 5). Ileri ' ye tıklayarak giriş ekranını ilerletin.

Veritabanı Yayımlama Sihirbazı Giriş ekranı

Şekil 5: veritabanı Yayımlama Sihirbazı Giriş ekranı (tam boyutlu görüntüyü görüntülemek için tıklayın)

Sihirbazdaki ikinci ekran, veritabanı Yayımlama Sihirbazı 'Nın erişebileceği veritabanlarını listeler ve seçili veritabanındaki tüm nesneleri betiğe veya betiğe yönelik nesneleri seçmenizi sağlar. Uygun veritabanını seçin ve "seçili veritabanındaki tüm nesneleri komut dosyası" seçeneğini işaretlenmiş olarak bırakın.

Note

Şekil 6 ' da gösterilen ekranda Ileri ' ye tıklandığınızda, "Bu sihirbaz tarafından komut dosyası \ dosya adı \ Betik veritabanı \ ' de bir nesne yok" hatasını alırsanız, veritabanı dosyanızın yolunun aşırı uzun olmadığından emin olun. Veritabanı Yayımlama Sihirbazı proje sayfasında Bu tartışma öğesinde belirtildiği gibi, veritabanı dosyasının yolu çok uzun olduğunda bu hata ortaya çıkabilir.

Veritabanı Yayımlama Sihirbazı Giriş ekranı

Şekil 6: veritabanı Yayımlama Sihirbazı Giriş ekranı (tam boyutlu görüntüyü görüntülemek için tıklayın)

Bir sonraki ekranda bir betik dosyası oluşturabilir veya Web ana bilgisayarınız destekliyorsa, veritabanını doğrudan Web ana bilgisayar sağlayıcınız s veritabanı sunucusuna yayımlayabilirsiniz. Şekil 7 ' de gösterildiği gibi, betiğe dosyaya yazıyorum C:\REVIEWS.MDF.sql .

Veritabanını bir dosyaya komut dosyası olarak veya doğrudan Web ana bilgisayar sağlayıcınızda yayımlayın

Şekil 7: veritabanını bir dosyaya komut dosyasına koyun veya doğrudan Web ana sağlayıcınıza yayımlayın (tam boyutlu görüntüyü görüntülemek için tıklayın)

Sonraki ekranda çeşitli komut dosyası seçenekleri istenir. Bu mevcut nesneleri kaldırmak için betiğin DROP deyimlerini içerip içermediğini belirtebilirsiniz. Bu varsayılan olarak true değerini alır, bu, bir veritabanını ilk kez dağıtmada ince bir değerdir. Hedef veritabanının SQL Server 2000, SQL Server 2005 veya SQL Server 2008 olduğunu da belirtebilirsiniz. Son olarak, şemayı ve verileri, yalnızca verileri veya yalnızca şemayı betiğin yapılıp yapılmayacağını belirtebilirsiniz. Şema, veritabanı nesneleri, tablolar, saklı yordamlar, görünümler vb. koleksiyonudur. Veriler, tablolarda bulunan bilgiler.

Şekil 8 ' de gösterildiği gibi, Sihirbazı var olan veritabanı nesnelerini bırakacak, SQL Server 2008 veritabanı için betik oluşturacak ve hem şemayı hem de verileri yayınlayacak şekilde yapılandırdım.

Yayımlama seçeneklerini belirtin

Şekil 8: yayımlama seçeneklerini belirtin (tam boyutlu görüntüyü görüntülemek için tıklayın)

Son iki ekran, alınması gereken eylemleri özetler ve sonra betik durumunu görüntüler. Sihirbazı çalıştırmanın net sonucu, üretimde veritabanını oluşturmak için gereken SQL komutlarını içeren bir betik dosyası ve geliştirmeyle aynı verilerle doldurulmaktır.

Üretim ortamı veritabanında SQL komutları yürütülüyor

Artık veritabanını oluşturmak için SQL komutlarını içeren betiğimize ve bu durumda kalan tüm veriler, betiği üretim veritabanında çalıştırmaktır. Bazı Web ana bilgisayar sağlayıcıları, veritabanınızdaki yürütmek üzere SQL komutları girebileceğiniz Denetim Masası 'nda bir metin kutusu sunar. Çok büyük bir betik dosyanız varsa, bu seçenek çalışmayabilir ( REVIEWS.MDF.sql Örneğin, betik dosyasının boyutu 425 KB 'tan fazla).

Daha iyi bir yaklaşım, SQL Server Management Studio (SSMS) kullanarak doğrudan üretim veritabanı sunucusuna bağlanmasıdır. Bilgisayarınızda yüklü SQL Server Express olmayan bir sürümüne sahipseniz, büyük olasılıkla SSMS zaten yüklüdür. Aksi takdirde, SQL Server Management Studio Express Edition 'ın ücretsiz bir kopyasını indirebilir ve yükleyebilirsiniz .

SSMS 'yi başlatın ve Web ana bilgisayar sağlayıcınız tarafından sunulan bilgileri kullanarak Web ana bilgisayar s veritabanı sunucunuza bağlanın.

Web ana bilgisayar sağlayıcınız s veritabanı sunucunuza bağlanma

Şekil 9: Web ana bilgisayar sağlayıcınızda veritabanı sunucusuna bağlanma (tam boyutlu görüntüyü görüntülemek için tıklayın)

Veritabanları sekmesini genişletin ve veritabanınızı bulun. Araç çubuğunun sol üst köşesindeki Yeni sorgu düğmesine tıklayın, veritabanı Yayımlama Sihirbazı tarafından oluşturulan betik dosyasından SQL komutlarını yapıştırın ve Yürüt düğmesine tıklayarak bu komutları üretim veritabanı sunucusunda çalıştırın. Betik dosyanız özellikle büyükse, komutların yürütülmesi birkaç dakika sürebilir.

Web ana bilgisayar sağlayıcınız s veritabanı sunucunuza bağlanma

Şekil 10: Web ana bilgisayar sağlayıcınızda veritabanı sunucusuna bağlanma (tam boyutlu görüntüyü görüntülemek için tıklayın)

İşte bu kadar! Bu noktada, geliştirme veritabanı üretime çoğaltılır. SSMS 'de veritabanını yenilerseniz yeni veritabanı nesnelerini görmeniz gerekir. Şekil 11 ' de, geliştirme veritabanını yansıtan üretim veritabanı tabloları, saklı yordamlar ve Kullanıcı tanımlı işlevler gösterilir. Veritabanı Yayımlama Sihirbazı 'nın verileri yayımlamasını sağladığımızda, üretim veritabanı tabloları, sihirbazın yürütüldüğü sırada geliştirme veritabanı s tablolarıyla aynı verilere sahiptir. Şekil 12 ' de, Books üretim veritabanındaki tablodaki veriler gösterilir.

Veritabanı nesneleri üretim veritabanında yinelendi

Şekil 11: veritabanı nesneleri üretim veritabanında yinelendi (tam boyutlu görüntüyü görüntülemek için tıklayın)

Üretim veritabanı, geliştirme veritabanıyla aynı verileri Içerir

Şekil 12: üretim veritabanı geliştirme veritabanıyla aynı verileri içerir (tam boyutlu görüntüyü görüntülemek için tıklayın)

Bu noktada, yalnızca geliştirme veritabanını üretime dağıttık. Web uygulamasını dağıtmaya henüz bakmadınız veya üretimde uygulamanın üretim veritabanını kullanması için hangi yapılandırma değişikliklerinin gerekli olduğunu inceliyoruz. Bu sorunları sonraki öğreticide ele alacağız!

Özet

Veri odaklı bir Web uygulamasının dağıtımı, geliştirme sırasında kullanılan veritabanının üretim ortamına kopyalanmasını gerektirir. Birçok Web ana bilgisayar sağlayıcısı, bir veritabanını dağıtma işlemini basitleştirmek için araçlar sunar. Örneğin, DiscountASP.NET ile veritabanı .mdf dosyanızı (veya bir yedeklemeyi) FTP Ile denetim masasından veritabanını veritabanı sunucusuna ekleyebilirsiniz. Web ana bilgisayar sağlayıcınız tarafından sunulan özelliklerden bağımsız olarak çalışarak, geliştirme veritabanı şemasını ve verilerini oluşturmak için bir SQL komutları betiği üreten Microsoft s veritabanı Yayımlama Sihirbazı aracı olan bir diğer seçenektir. Bu komut dosyası oluşturulduktan sonra üretim veritabanında yürütebilirsiniz.

Artık kitap, Web uygulaması veritabanını gözden geçirdiklerinde uygulamayı dağıtabileceğiniz bir üretim. Ancak, Web uygulaması yapılandırma bilgileri veritabanına yönelik bağlantı dizesini belirtir ve bu bağlantı dizesi geliştirme veritabanına başvurur. Siteyi üretime dağıttığınızda Bu bağlantı dizesi bilgilerini güncelleştirmemiz gerekir. Sonraki öğretici bu yapılandırma farklarına bakar ve veri odaklı kitap Incelemeleri sitesini üretime yayımlamak için gereken adımları adım adım açıklar.

Programlamanın kutlu olsun!

Daha Fazla Bilgi

Bu öğreticide ele alınan konular hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın: