Trong
Visual Studio, bạn có thể tạo ra Web Application Projects, Web Site
Projects. Từng loại dự án có ưu điểm và nhược điểm riêng, điều này thật
sự hữu ích để hiểu sự khác biệt giữa chúng để chọn loại dự án tốt nhất
cho nhu cầu của bạn. Bạn phải chọn loại dự án thích hợp trước khi bạn
tạo dự án, bởi vì thực tế không dễ dàng để chuyển thành loại dự án khác.
Đối
với một số tình huống, bạn không có lựa chọn. Ví dụ, nếu bạn muốn tạo
ứng dụng ASP.NET MVC, bạn phải sử dụng Web application projects.
Chủ đề này bao gồm các phần sau:
- Script
- Tóm tắt các sự khác biệt
- Cấu trúc tập tin dự án
- Compilation
- Triển khai
Script
Script trong Web application projects là sự lựa chọn ưa nhìn bao gồm:
• Bạn muốn để có thể sử dụng Chỉnh sửa và Tiếp tục tính năng của các trình gỡ lỗi Visual Studio.
• Bạn muốn chạy kiểm thử đơn vị trên mã đó trong các tập tin lớp được liên kết với các trang ASP.NET.
• Bạn muốn tham chiếu các lớp được liên kết với các trang và điều khiển người dùng từ các lớp độc lập.
• Bạn muốn có được sự phụ thuộc dự án giữa các dự án Web.
• Bạn muốn trình biên dịch tạo ra assembly duy nhất cho toàn bộ trang web.
• Bạn muốn kiểm soát tên assembly và số phiên bản được tạo ra cho các trang web.
• Bạn muốn sử dụng MSBuild hay Team Buiding để lập dự án. Ví dụ, bạn có thể muốn thêm các bước pre-build và post-build.
• Bạn muốn tránh đặt mã nguồn trên máy chủ product.
• Bạn muốn sử dụng các công cụ triển khai tự động có sẵn trong Visual Studio 2010.
Kịch bản trong đó Web site projects là sự lựa chọn ưa thích bao gồm những điều sau đây:
• Bạn
muốn bao gồm cả C # và mã Visual Basic trong dự án Web duy nhất. (Theo
mặc định, một ứng dụng Web được biên soạn dựa trên các cài đặt ngôn ngữ
trong các tập tin dự án ngoại lệ có thể được thực hiện, nhưng nó là
tương đối khó khăn.)
• Bạn muốn mở trang web product trong Visual Studio và cập nhật trong thời gian thực bằng cách sử dụng FTP.
• Bạn không muốn lập dự án để triển khai nó.
• Nếu
bạn precompile các trang web, bạn muốn trình biên dịch tạo ra nhiều cụm
cho các trang web, trong đó có thể bao gồm assembly cho mỗi trang hoặc
control người dùng, hoặc một hoặc nhiều assembly cho mỗi thư mục.
• Bạn
muốn để có thể cập nhật các tập tin cá nhân trong product bằng cách chỉ
cần sao chép phiên bản mới cho các máy chủ product, hoặc bằng cách
chỉnh sửa các tập tin trực tiếp trên máy chủ product.
• Nếu
bạn precompile các trang web, bạn muốn để có thể cập nhật trang web cá
nhân ASP.NET (tập tin .aspx) mà không cần phải biên dịch lại toàn bộ
trang web.
• Bạn muốn giữ mã nguồn trên máy chủ product vì nó có thể phục vụ như là bản sao lưu bổ sung.
Tóm tắt các sự khác biệt
Bảng sau đây tóm tắt những khác biệt chính.
Khu vực
|
Web application projects
|
Web site projects
|
Project file
structure
|
Dự án Visual Studio ( .csproj hoặc .Vbproj) lưu trữ thông tin về
dự án, chẳng hạn như danh sách các tập tin bao gồm trong dự án, và bất kỳ tài
liệu tham khảo dự án để dự án.
|
Không có tập tin dự án (.csproj hoặc .Vbproj) Tất cả
các tập tin trong cấu trúc thư mục sẽ tự động trong trang web.
|
Compilation
|
·
Biên dịch mã nguồn trên máy tính được sử dụng để phát triển
hoặc kiểm soát nguồn.
·
Theo mặc định, trình biên dịch tập tin mã
(không bao gồm các tập tin .aspx và .Ascx)
xuất assembly
duy nhất.
|
·
Mã nguồn được biên dịch tự động (automatically)
của ASP.NET trên máy chủ lần đầu tiên nhận được yêu cầu sau khi trang web
đã được cài đặt hoặc cập nhật.
Bạn có thể precompile các trang web (biên
dịch trước trên máy tính hoặc trên máy chủ).
·
Theo mặc định, biên soạn xuất nhiều assembly.
|
Namespaces
|
Namespaces được thêm vào các trang web, điều khiển, và các lớp theo mặc định.
|
Namespaces không được thêm vào các trang web, điều khiển, và các lớp theo mặc
định, nhưng bạn có thể thêm chúng bằng tay.
|
Triển khai
|
·
Bạn sao chép assembly một máy chủ. Assembly
được xuất bằng cách biên dịch các ứng dụng.
·
Visual Studio cung cấp các công cụ tích hợp
với các công cụ triển khai IIS Web để tự động hóa các nhiệm vụ triển khai.
|
· Sao chép các tập tin mã nguồn ứng dụng cho một máy tính đã cài
đặt IIS trên nó.
·
Nếu bạn precompile các trang web trên một
máy tính, bạn sao chép các Assembly
·
Visual Studio cung cấp các công cụ cho việc
triển khai, nhưng họ không tự động hoá càng nhiều nhiệm vụ triển khai như các
công cụ có sẵn cho các dự án ứng dụng Web.
|
Cấu trúc tập tin dự án
Web
application projects sử dụng các tập tin dự án Visual Studio (.csproj
hoặc .Vbproj) để theo dõi các thông tin về dự án. Trong số các nhiệm vụ
khác, điều này làm cho nó có thể để xác định các tập tin bao gồm hoặc
loại trừ khỏi dự án, và do đó các tập tin được biên dịch trong Run Time.
Đối
với Web site projects, tất cả các tập tin trong cấu trúc thư mục sẽ tự
động trong các trang web. Nếu bạn muốn loại bỏ gì đó từ biên dịch, bạn
phải loại bỏ các tập tin từ thư mục dự án trang web hoặc thay đổi tên
tập tin mở rộng không được biên dịch và không được phục vụ bởi IIS.
Một lợi thế của việc sử dụng các tập tin trong Web application projects như sau:
• Nó
rất dễ dàng để tạm thời loại bỏ các tập tin từ các trang web, nhưng vẫn
đảm bảo rằng bạn không bị mất theo dõi, bởi vì chúng vẫn còn trong cấu
trúc thư mục. Ví dụ, nếu một trang không sẵn sàng để được triển khai,
bạn có thể tạm thời loại bỏ nó từ việc xây dựng mà không xóa nó từ cấu
trúc thư mục.
Một lợi thế của việc sử dụng cấu trúc thư mục mà không có file dự án trong Web site projects:
• Bạn
không cần phải quản lý cấu trúc của dự án trong Visual Studio. Ví dụ,
bạn có thể sao chép các tập tin vào dự án hoặc xóa chúng khỏi dự án bằng
cách sử dụng Windows Explorer.
Compilation
Đối
với Web application projects, bạn thường xây dựng các dự án trong
Visual Studio hoặc bằng cách sử dụng trình biên dịch thực thi ASP.NET
trên một máy tính đó không xuất trên máy chủ IIS. Tất cả các mã-đằng
sau các tập tin lớp và các tập tin lớp độc lập trong dự án được biên
dịch vào một assembly duy nhất, sau đó được đặt trong thư mục Bin của
Web application project'.
Đối với Web site projects, bạn không
phải tự lập dự án. Web site projects thường được biên dịch tự động
ASP.NET (trên máy tính của cả hai phát triển và sản xuất các máy chủ
IIS). Bạn có thể chọn giữa các chế độ biên soạn hàng loạt, mà thường sản
xuất assembly cho mỗi thư mục, và chế độ biên soạn cố định, mà thường
sản xuất assembly cho mỗi trang hoặc kiểm soát người dùng.
Ưu điểm của mô hình biên dịch cho Web application projects bao gồm những điều sau đây:
• Bạn có thể sử dụng MSBuild để tạo ra tiến trình thực thi biên dịch tùy chỉnh.
• Nó rất dễ dàng để xác định các thuộc tính assembly chẳng hạn như tên và phiên bản.
• Biên
dịch trước đảm bảo rằng người dùng không phải chờ đợi trong khi trang
web biên dịch trên các máy chủ sản xuất. (Nếu trang web là rất lớn, năng
động lập một dự án trang web có thể mất một số lượng đáng kể thời gian
biên soạn động xảy ra khi một yêu cầu cho một nguồn tài nguyên trang web
nhận được sau khi một bản cập nhật cho trang web, và yêu cầu kích hoạt
trình biên dịch có thể là bị trì hoãn trong khi các nguồn lực cần được
biên dịch. Nếu chậm trễ này là không thể chấp nhận được, bạn có thể
precompile các trang web. Tuy nhiên, sau đó một số trong những lợi thế
của biên dịch động bị mất).
• Bạn
có quyền kiểm soát hoàn toàn nơi bạn đặt các tập tin mã trong cấu trúc
thư mục của dự án, và làm thế nào bạn các lớp trong dự án tham khảo với
nhau. (Dynamic biên soạn yêu cầu rằng mã nguồn cho bất kỳ lớp được sử
dụng trong trang web phải có trong thư mục App_Code Bạn có thể tham khảo
một trang hoặc lớp kiểm soát người sử dụng từ một lớp trong App_Code).
Ưu điểm của mô hình biên soạn cho Web site projects bao gồm:
• Bạn
có thể kiểm tra các trang cụ thể bất kể trạng thái của các trang khác.
Điều này là bởi vì chạy một trang cá nhân không yêu cầu biên dịch toàn
bộ trang web thành công, chỉ có trang và các thành phần phụ thuộc vào,
chẳng hạn như mã trong thư mục App_Code hoặc tập tin Global.asax. (Trong
Web application project, nếu có lỗi biên dịch bất cứ nơi nào trong
trang web, bạn không thể tạo assembly và do đó không thể kiểm tra ngay
cả các phần của trang web mà biên dịch.)
• Nó
rất dễ dàng để cập nhật một trang web trong product. Bạn có thể cập
nhật các tập tin mã nguồn cá nhân trên các máy chủ product mà không cần
phải biên dịch lại các trang web một cách rõ ràng. Bạn có thể cập nhật
các tập tin cá nhân mà đã sẵn sàng cho việc triển khai ngay cả khi các
tập tin khác chưa sẵn sàng để biên dịch lỗi. Bạn cũng có thể mở trang
web trên máy chủ IIS xuất trực tiếp trong Visual Studio và cập nhật các
trang web trong thời gian thực.
• Tiền
biên dịch nhiều cụm có thể có một lợi thế thực hiện trong một số tình
huống. Một ví dụ điển hình là một trang web có nhiều trang với rất nhiều
mã được viết. Hầu hết các trang hiếm khi được yêu cầu và chỉ có một số
được sử dụng thường xuyên. Nếu bạn biên dịch một trang web như thế này
thành nhiều cụm, các máy chủ product chỉ có thể tải các assembly được
yêu cầu cho các yêu cầu hiện tại. Nếu một trang không có yêu cầu, tương
ứng assembly không được tải.
Không có sự khác biệt về hiệu
năng giữa Web site project và Web application project. Chỉ có trường hợp
ngoại lệ đáng kể là những người đã được ghi nhận, và như là một vấn đề
thực tế, chúng chỉ áp dụng cho các trang web rất lớn. Các yêu cầu đầu
tiên cho trang web có thể yêu cầu trang web được biên dịch, có thể dẫn
đến chậm trễ. Và nếu trang web được chạy trên một máy chủ IIS vào bộ
nhớ, bao gồm toàn bộ trang web trong một assembly duy nhất có thể sử
dụng nhiều bộ nhớ hơn sẽ được yêu cầu cho nhiều assemblies.
Triển khai
Để
triển khai Web application project, bạn sao chép assembly được tạo ra
bằng cách biên dịch các dự án đến một máy chủ IIS. Ngược lại, để triển
khai Web site project, bạn thường sao chép các tập tin dự án mã nguồn
đến một máy chủ IIS.
Ưu điểm của chiến lược triển khai đối với Web application projects:
• Bạn
có thể tránh việc triển khai mã nguồn đến các máy chủ IIS. Trong một số
tình huống, chẳng hạn như môi trường chia sẻ lưu trữ, bạn có thể quan
tâm đến việc truy cập trái phép vào mã nguồn trên máy chủ IIS. (Đối với
Web site project, bạn có thể tránh được nguy cơ này bằng tiền biên dịch
trên một máy tính phát triển và triển khai các assembly tạo ra thay vì
mã nguồn. Tuy nhiên, trong trường hợp bạn bị mất một số lợi ích của việc
cập nhật trang web dễ dàng.)
• Triển
khai thường liên quan đến các nhiệm vụ khác ngoài việc sao chép
assembly hoặc mã đến một máy chủ. Ví dụ, các kịch bản cơ sở dữ liệu có
thể có để chạy trong product, và chuỗi kết nối trong file Web.config có
thể phải được thay đổi cho một máy chủ product. Visual Studio cung cấp
các công cụ như một cú nhấp chuột làm việc với các dự án ứng dụng Web để
tự động hóa nhiều những công việc này. Những công cụ này không có sẵn
cho Web site projects.
Ưu điểm của chiến lược triển khai cho Web site projects:
• Nếu
bạn thực hiện một thay đổi nhỏ cho trang web, bạn không cần phải triển
khai lại toàn bộ trang web. Thay vào đó, có thể sao chép chỉ thay đổi
các tập tin hoặc các tập tin máy chủ IIS. Bạn cũng có thể chỉnh sửa các
tập tin trực tiếp trên máy chủ. (Bởi vì các tập tin mã của một ứng dụng
Web của dự án được biên dịch thành một file assembly duy nhất, bạn phải
triển khai toàn bộ trang web ngay cả đối với những thay đổi nhỏ, trừ khi
sự thay đổi duy nhất là đến một file .ascx hoặc .aspx)
Comments[ 0 ]
Đăng nhận xét