Tải bản đầy đủ (.pdf) (18 trang)

13 chuong 13 tủ tài liệu bách khoa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (831.87 KB, 18 trang )

Chương 13 Triển khai
Cuối cùng, và quan trọng, bước vào phát triển ứng dụng là triển khai: làm ứng
dụng của bạn có sẵn cho cả thế giới sử dụng. Ở chương này, tôi sẽ cho bạn xem
cách để chuẩn bị và triển khai ứng dụng SportsStore.
Có nhiều cách khác nhau để triển khai các ứng dụng MVC Framework, và một loạt
các mục tiêu triển khai.
Bạn có thể triển khai đến Window Server máy chạy Internet Information Services
(IIS) mà bạn chạy và quản lý cục bộ; bạn có thể triển khai một dịch vụ lưu trữ từ
xa để quản lý các máy chủ của bạn; hoặc sau này, bạn có thể triển khai một nền
tảng cơ sở hạ tầng cho điện toán đám mây quy định và quy mô ứng dụng của bạn
để liên tục đáp ứng nhu cầu.
Tôi đã suy nghĩ rất lâu và kĩ về làm như thế nào để triển khai một ví dụ hữu ích
trong chương này. Tôi không hiển thị cho bạn làm cách nào để triển khai trực tiếp
đến IIS bởi vì quá trình cấu hình máy chủ rất lâu và phức tạp, và hầu hết các nhà
phát triển MVC là đích máy chủ cục bộ phụ thuộc vào nhóm hoạt động CNTT để
thực hiện cấu hình và triển khai các công việc. Tôi không triển khai cho một công
ty quản lý lưu trữ bởi vì mỗi người đều có quá trình triển khai tùy chỉnh riêng của
mình và không có một công ty đặt tiêu chuẩn cho lưu trữ.
Vì vậy, một vài theo mặc định, tôi giải quyết trên thể hiện một triển khai Windows
Azure, đó là nền tảng điện toán đám mây của Microsoft và đó có một số hỗ trợ rất
tốt cho các ứng dụng MVC. Tôi không gợi ý rằng Azure là phù hợp cho tất cả các
triển khai, nhưng tôi thích cách nó hoạt động và sử dụng nó trong chương này cho
phép tôi chứng minh quá trình triển khai hơn là bị sa lầy trong IIS và Windows các
vấn đề cấu hình. Có 90 ngày dùng thử miễn phí có sẵn trên Azure như tôi viết (và
MSDN đăng ký bao gồm Azure), có nghĩa là bạn sẽ có thể làm theo các ví dụ trong
chương này, ngay cả khi bạn không có ý định sử dụng Azure để lưu trữ ứng dụng
của bạn.
 Chú ý: Tôi khuyên bạn nên thực hành triển khai sử dụng một ứng dụng thử
nghiệm và máy chủ trước khi cố gắng để triển khai một ứng dụng thực tế
vào một môi trường sản xuất. Giống như mọi khía cạnh khác của vòng đời
phát triển phần mềm, những lợi ích từ quá trình triển khai thử nghiệm. Tôi




có một cổ phiếu của câu chuyện kinh dị của các đội dự án đã bị phá hủy các
ứng dụng hoạt động thông qua các thủ tục triển khai quá vội vàng và thử
nghiệm kém. Nó không phải là các tính năng triển khai ASP.NET đặc biệt
nguy hiểm, họ không-nhưng là, bất kỳ sự tương tác có liên quan đến một
ứng dụng đang chạy với dữ liệu người dùng thực sự xứng đáng suy nghĩ và
lập kế hoạch cẩn thận
Triển khai một ứng dụng web đã từng là một quá trình mệt mỏi và dễ bị lỗi nhưng
Microsoft đã đặt rất nhiều nỗ lực vào việc cải thiện các công cụ triển khai trong
Visual Studio. Vì vậy, ngay cả khi bạn cần để triển khai đến một loại khác nhau
của cơ sở hạ tầng, bạn sẽ tìm thấy rằng Visual Studio có thể làm rất nhiều công
việc nặng nhọc cho bạn.

Chuẩn bị Windows Azure
Bạn cần phải tạo một tài khoản trước khi bạn có thể sử dụng Azure, mà bạn có thể
làm bằng cách vào www.windowsazure.com. Tại thời điểm viết bài, Microsoft
đang cung cấp tài khoản thử nghiệm miễn phí, và MSDN gói bao gồm các dịch vụ
Azure. Một khi bạn đã tạo tài khoản, bạn có thể quản lý các dịch vụ Azure của bạn
bằng cách vào để cung cấp thông tin của bạn.
Khi bạn bắt đầu, bạn sẽ thấy những cách nhìn tổng thể hiện trong hình 13-1.


Hình 13.1 Các cổng Azure
Tôi bắt đầu bằng cách tạo ra một trang web và cơ sở dữ liệu dịch vụ mới, đó là hai
trong số các dịch vụ đám mây được cung cấp bởi Azure. Nhấp vào dấu cộng ở góc
dưới bên trái của cửa sổ cổng và chọn Compute >Web App >Custom Create. Bạn
sẽ nhìn thấy hình minh họa trong hình 13-2.



Hình 13.2 Tạo một web site mới và cơ sở dữ liệu
Tôi cần phải chọn một URL cho ứng dụng của tôi. Đối với các dịch vụ Azure miễn
phí, tôi đang bị hạn chế đối với tên miền trong azurewebsites.net. Tôi đã chọn tên


giaydep, nhưng bạn sẽ phải chọn tên riêng của bạn vì mỗi trang web Azure đòi hỏi
một tên duy nhất.
Chọn khu vực mà bạn muốn ứng dụng của bạn được triển khai tới và đảm bảo rằng
tùy chọn Create a new SQL database là lựa chọn cho các trường cơ sở dữ
liệu(Database). (Azure có thể sử dụng MySql, mà ứng dụng SportsStore không
được thiết lập để sử dụng, vì vậy tôi muốn chọn cho tôi một cơ sở dữ liệu SQL
Server).
Đặt DB Connection String Name tên là DBGiayDep. Đây là tên các ứng dụng
SportsStore dùng để một kết nối cơ sở dữ liệu từ các tập tin Web.config, và bằng
cách sử dụng tên này trong dịch vụ Azure, tôi đảm bảo rằng các mã ứng dụng hoạt
động trong triển khai mà không sửa đổi.
Khi bạn đã điền vào mẫu form trên, nhấp vào nút mũi tên để chuyển sang mẫu
form như hình 13-3.

Hình 13.3 Cấu hình cơ sở dữ liệu
Đặt tên cho cơ sở dữ liệu. Tôi đã sử dụng giaydep_db nó là hiển nhiên mà ứng
dụng cơ sở dữ liệu liên quan đến. Chọn tùy chọn New SQL Data Server cho phần
Server và nhập tên đăng nhập và mật khẩu. Tôi đã chỉ định một tên sportsstore và


theo các hướng dẫn được cung cấp bởi các hình thức để lựa chọn một mật khẩu
gồm có chữ hoa, chữ thường và số. Hãy ghi nhớ tên người dùng và mật khẩu mà
bạn sử dụng bởi vì bạn sẽ cần đến chúng trong các phần tiếp theo. Nhấn vào nút
dấu tích để hoàn tất quá trình thiết lập. Azure sẽ tạo trang dịch vụ web và cơ sở dữ
liệu, nó có thể mất một vài phút. Bạn sẽ được trả lại cho các tổng quan khi thiết lập

xong và bạn sẽ thấy các Web Sites và danh mục SQL Databases báo cáo một hàng,
như thể hiện trong hình 13-4.

Chuẩn bị cơ sở dữ liệu cho quản trị từ xa

Bước tiếp theo là cấu hình cơ sở dữ liệu Azure để nó có chứa cùng một lược đồ và
dữ liệu mà tôi đã sử dụng trong Chương 7. Nhấp vào liên kết SQL Databases
trong trang tổng quan Azure và sau đó nhấn vào tên cơ sở dữ liệu đã cấu hình trong
bảng SQL Databases. (Nếu bạn đang theo ví dụ của tôi, cơ sở dữ liệu sẽ được gọi
là giaydep_db.)
Các portal sẽ hiển thị cho bạn các chi tiết của cơ sở dữ liệu và các tùy chọn khác
nhau cho việc cấu hình và quản lý nó. Nhấp vào địa chỉ link Set up Windows


Azure firewall rules for this address, cái mà bạn sẽ tìm thấy trong Design Your
Database của trang. Bạn sẽ thấy một thông báo cho bạn rằng địa chỉ IP hiện tại
của bạn (cái này là địa chỉ IP máy trạm của bạn)thì không có trong các quy tắc
tường lửa. Nhấp vào nút Yes như trong hình 13-5.

Hình 13.5 Thêm địa chỉ máy trạm IP để các quy tắc tường lửa Azure
 Chú ý :Visual Studio đã hỗ trợ cho việc triển khai cơ sở dữ liệu cùng với các
ứng dụng. Tôi khuyên bạn không nên sử dụng tính năng này vì nó là thường
dễ dàng quét sạch dữ liệu ứng dụng thực tế của bạn với một menu lựa chọn
bất cẩn hay không cẩn thận. Luôn cập nhật cơ sở dữ liệu của bạn một cách
riêng biệt và kiểm tra kỹ lưỡng trước khi làm như vậy.

Tạo các lược đồ
Bước tiếp theo là tạo ra các lược đồ cho các cơ sở dữ liệu. Nhấp vào liên kết
Design your SQL database trong Connect to your Database. Nhập tên cơ sở dữ



liệu (giaydep_db), tên người dùng (sportsstore), và mật khẩu mà bạn xác định khi
tạo cơ sở dữ liệu, và nhấp vào nút Log On, như thể hiện trong hình 13-6.

Lời khuyên: Quản lý cơ sở dữ liệu đòi hỏi Silverlight, mà bạn có thể cần phải cài
đặt trong trình duyệt của bạn trước khi bạn có thể tiếp tục. Ở phía trên cùng của
cửa sổ, bạn sẽ thấy một nút New Query. Nhấp vào nút đó và một khu vực văn bản
sẽ nhập vào đó bạn có thể gõ lệnh SQL. Đây là nơi tôi sẽ cung cấp cho các lệnh
SQL mà sẽ tạo ra các bảng cơ sở dữ liệu tôi cần.

Lấy lệnh của lược đồ
Tôi có thể nhận được các câu lệnh SQL tôi cần từ Visual Studio. Mở cửa sổ Server
Explorer và mở rộng các mục nó chứa cho đến khi bạn tới bảng Products trong
ứng dụng phát triển SportsStore. Kích chuột phải vào bảng Products và chọn Open
Table Definition. Các chỉnh sửa cho các lược đồ bảng sẽ được mở ra. Trong tab TSQL, bạn sẽ thấy lệnh SQL trong Bảng liệt kê13-1.
Bảng liệt kê 13.1: Câu lệnh để tạo bảng sản phẩm
CREATE TABLE [dbo].[Products] (
[ProductID]
[Name]

INT

IDENTITY (1, 1) NOT NULL,

NVARCHAR (100) NOT NULL,

[Description] NVARCHAR (500) NOT NULL,
[Category]
[Price]


NVARCHAR (50) NOT NULL,
DECIMAL (16, 2) NOT NULL,

(MAX) NULL,
Sao [ImageData]
chép SQL từVARBINARY
Visual Studio,
dán nó vào vùng văn bản trong trình duyệt, và
nhấp[ImageMimeType]
vào nút Run ởVARCHAR
trên cùng
cửa sổ trình duyệt. Sau một giây, bạn sẽ nhìn
(50)của
NULL,
thấyPRIMARY
các lệnh
thông báo (s) thành công, mà chỉ ra rằng các cơ sở dữ liệu Azure
KEY CLUSTERED ([ProductID] ASC) );
chứa cơ sở dữ liệu sản phẩm sử dụng cùng một lược đồ như tôi đã nêu trong ứng
dụng SportsStore.

Thêm dữ liệu bảng


Bây giờ tôi đã tạo ra bảng, Tôi có thể điền nó với các dữ liệu sản phẩm mà tôi sử
dụng trong Chương 7. Quay trở lại mục Products trong cửa sổ Database Explorer,
nhấp chuột phải và chọn Show Data Table từ menu pop-up. Bạn sẽ tìm thấy một
nút Script ở phía trên cùng của cửa sổ được mở ra, như thể hiện trong hình 13.7.

Hình 13-7. Nút script in the table data display

Một cửa sổ mới sẽ mở ra có chứa một câu lệnh SQL khác, mà tôi thấy trong bảng
liệt kê 13-2.

SET IDENTITY_INSERT [dbo].[Products] ON INSERT INTO [dbo].[Products]
([ProductID], [Name], [Description], [Category], [Price], [ImageMimeType])
VALUES (1, N'Kayak', N'A boat for one person', N'Watersports', CAST(275.00 AS
Decimal(16, 2)), NULL)
INSERT INTO [dbo].[Products] ([ProductID], [Name], [Description],
[Category], [Price], [ImageMimeType]) VALUES (4, N'Lifejacket', N'Protective
and fashionable', N'Watersports', CAST(48.95 AS Decimal(16, 2)), NULL)
INSERT INTO [dbo].[Products] ([ProductID], [Name], [Description],
[Category], [Price], [ImageMimeType]) VALUES (5, N'Soccer Ball',
N'FIFAapproved size and weight', N'Soccer', CAST(19.50 AS Decimal(16, 2)),
NULL)


INSERT INTO [dbo].[Products] ([ProductID], [Name], [Description],
[Category], [Price], [ImageMimeType]) VALUES (6, N'Corner Flags', N'Give
your playing field a professional touch', N'Soccer', CAST(34.95 AS Decimal(16,
2)), NULL)
INSERT INTO [dbo].[Products] ([ProductID], [Name], [Description],
[Category], [Price], [ImageMimeType]) VALUES (7, N'Stadium', N'Flat-packed
35,000-seat stadium', N'Soccer', CAST(79500.00 AS Decimal(16, 2)), NULL)
INSERT INTO [dbo].[Products] ([ProductID], [Name], [Description],
[Category], [Price], [ImageMimeType]) VALUES (8, N'Thinking Cap', N'Improve
your brain efficiency by 75%', N'Chess', CAST(16.00 AS Decimal(16, 2)),
N'image/jpeg')
INSERT INTO [dbo].[Products] ([ProductID], [Name], [Description],
[Category], [Price], [ImageMimeType]) VALUES (9, N'Unsteady Chair',
N'Secretly give your opponent a disadvantage', N'Chess', CAST(29.95 AS

Decimal(16, 2)), NULL)
INSERT INTO [dbo].[Products] ([ProductID], [Name], [Description],
[Category], [Price], [ImageMimeType]) VALUES (10, N'Human Chess Board',
N'A fun game for the family', N'Chess', CAST(75.00 AS Decimal(16, 2)), NULL)
INSERT INTO [dbo].[Products] ([ProductID], [Name], [Description],
[Category], [Price], [ImageMimeType]) VALUES (11, N'Bling-Bling King',
N'Gold-plated, diamond-studded King', N'Chess', CAST(1200.00 AS Decimal(16,
2)), NULL) SET IDENTITY_INSERT [dbo].[Products] OFF

Xóa vùng văn bản trong cửa sổ trình duyệt Azure và dán SQL hiển thị trong bảng
liệt kê ở vị trí của nó. Nhấn vào nút Run. Các script sẽ được thực thi và thêm dữ
liệu vào bảng.


Triển khai các ứng dụng
Bây giờ cài đặt hoàn tất, triển khai ứng dụng rất đơn giản. Quay trở lại cổng Azure
chính và nhấp vào nút Sites Web. Nhấp vào trang web giaydep để mở trang bảng
điều khiển và nhấp vào Download the publish profile trong Publish your app. Lưu
tập tin này trong một vị trí dễ thấy.
Đối với dịch vụ Azure của tôi, các tập tin được gọi là giaydep.azurewebsites.net.
PublishSettings và tôi đã lưu nó vào máy tính để bàn. Tập tin này có chứa các chi
tiết mà Visual Studio cần xuất bản ứng dụng của bạn cho các cơ sở hạ tầng Azure.
Quay trở lại Visual Studio và kích chuột phải vào project SportsStore.WebUI trong
Solution Explorer và chọn Publish từ menu pop-up. Bạn sẽ thấy cửa sổ hộp thoại
Publish Web, như minh họa trong Hình 13-8.

Hình 13.8: Hộp thoại Publish Web
Nhấn vào nút Import và xác định vị trí các tập tin mà bạn tải về từ các cổng thông
tin Azure. Visual Studio sẽ xử lý các tập tin và hiển thị các chi tiết của cấu hình
dịch vụ Azure của bạn, như thể hiện trong hình 13-9. Thông tin chi tiết của bạn sẽ

phản ánh tên bạn chọn cho trang web của bạn.


Hình 13.9 Chi tiết về các dịch vụ Azure rằng các ứng dụng sẽ được triển khai đến
Không cần phải thay đổi bất kỳ giá trị được hiển thị. Nhấp vào nút Next để chuyển
sang giai đoạn tiếp theo của quá trình triển khai, trong đó bạn có thể thấy trong
hình 13-10.


Hình 13.10 Cài đặt cho các ứng dụng triển khai
Bạn có thể lựa chọn cấu hình cái mà được sử dụng trong triển khai. Điều này
thường sẽ được Release, nhưng bạn có thể chọn Debug nếu bạn có ý định thử
nghiệm ứng dụng của bạn trên cơ sở hạ tầng Azure và muốn cài đặt gỡ lỗi và cho
các trình biên dịch ứng dụng của bạn.
Các phần khác của quá trình này là cấu hình kết nối cơ sở dữ liệu. Visual Studio
cung cấp cho bạn cơ hội để tạo ra bản đồ liên kết giữa các kết nối cơ sở dữ liệu
được xác định trong dự án của bạn và các cơ sở dữ liệu có liên quan đến trang web
Azure. File Web.config chỉ chứa một tập hợp các thông tin chi tiết, và kể từ khi tôi
tạo ra một cơ sở dữ Azure, chỉ có một mục để chọn từ danh sách thả xuống. Nếu
bạn có nhiều cơ sở dữ liệu trong ứng dụng của bạn, bạn phải làm sao để đảm bảo
rằng cơ sở dữ liệu Azure phải được chọn.
Nhấp vào nút Next để xem trước hiệu ứng của việc triển khai của bạn, như được
hiển thị trong hình 13-11. Khi bạn nhấp vào nút Start Preview, Visual Studio duyệt


qua quá trình triển khai, nhưng không thực sự gửi các tập tin đến máy chủ. Nếu
bạn đang nâng cấp một ứng dụng đã được triển khai, điều này có thể là một kiểm
tra có ích để đảm bảo rằng bạn chỉ đang thay thế các tập tin mà bạn mong muốn.

Hình 13.11: Các phần Preview của hộp thoại Publish Web

Đây là lần đầu tiên mà tôi triển khai ứng dụng này, vì vậy tất cả các tập tin vào dự
án sẽ xuất hiện trong cửa sổ xem trước, như hiển thị trong hình 13-12. Chú ý rằng
mỗi tập tin có một hộp kiểm bên cạnh nó. Bạn có thể ngăn chặn các tập tin cá nhân
từ khi đang triển khai, mặc dù vậy bạn cũng nên cẩn thận khi làm điều này. Tôi khá
bảo thủ trong vấn đề này và tôi thà triển khai tập tin mà tôi không cần chứ không
phải quên để triển khai cái mà tôi làm.


Hình 13.12 Xem trước các thay đổi triển khai
Nhấp vào nút Publish để triển khai các ứng dụng của bạn với nền tảng Azure. Hộp
thoại Publish Web sẽ đóng lại và bạn sẽ có thể xem chi tiết về tiến độ triển khai
trong cửa sổ Visual Studio Output, như hiển thị trong hình 13-13.


Hình 13.13 Triển khai một ứng dụng cho nền tảng Azure
Nó có thể mất một vài phút để triển khai một ứng dụng, nhưng sau đó quá trình
hoàn tất. Visual Studio sẽ mở một cửa sổ trình duyệt mà điều hướng đến các URL
của trang web của bạn Azure. Đối với tôi, đây là URL
, như hiển thị trong hình 13-14.


Hình 13.14 Các ứng dụng SportsStore chạy trên nền tảng Windows Azure

Tóm tắt
Trong chương này, chúng tôi đã giới thiệu cách triển khai một MVC Framework
cho nền tảng Windows Azure. Có nhiều cách khác nhau để triển khai ứng dụng và
nhiều nền tảng khác nhau mà bạn có thể nhắm đến, nhưng các quy trình tôi đã giới
thiệu trong chương này là tiêu biểu của những gì bạn có thể kì vọng, thậm chí nếu
bạn không sử dụng Azure. Và đó là sự kết thúc của các ứng dụng SportsStore và
phần này của cuốn sách. Trong phần 2, tôi bắt đầu quá trình đào sâu vào các chi



tiết và hiển thị cho bạn làm thế nào với các tính năng mà tôi sử dụng để tạo ra các
ứng dụng làm việc ở mức ứng dụng cao hơn.



×