Skip navigation.

Log in | Sign up

senvang

Mỗi ngày tôi chọn một niềm vui ...

XÂY DỰNG ỨNG DỤNG TIN TỨC ĐƠN GIẢN VỚI ASP.NET 2.0

Chúng ta sẽ bắt đầu với phần giới thiệu sơ lược về mô hình phát triển thông dụng 3 lớp, tiếp theo chúng ta sẽ tiến hành thiết kế ứng dụng theo mô hình này. Trong bài viết này không có tham vọng trình bày lại chi tiết mô hình thiết kế ứng dụng đa lớp/tầng là như thế nào. Chỉ tóm tắt ngắn gọn lại những điểm chính của mô hình 3 lớp, mà cụ thể là 3 lớp logic.
Mô hình 3 lớp (3 layers)
Trong phát triển ứng dụng, để dễ quản lý các thành phần của hệ thống, cũng như không bị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thành phần có cùng chức năng lại với nhau và phân chia trách nhiệm cho từng nhóm để công việc không bị chồng chéo và ảnh hưởng lẫn nhau. Ví dụ trong một công ty bạn có từng phòng ban, mỗi phòng ban sẽ chịu trách nhiệm một công việc cụ thể nào đó, phòng này không được can thiệp vào công việc nội bộ của phòng kia như Phòng tài chính thì chỉ phát lương, còn chuyện lấy tiền đâu phát cho các anh phòng Marketing thì các anh không cần biết. Trong phát triển phần mềm, người ta cũng áp dụng cách phân chia chức năng này. Bạn sẽ nghe nói đến thuật ngữ kiến trúc đa tầng/nhiều lớp, mỗi lớp sẽ thực hiện một chức năng nào đó, trong đó mô hình 3 lớp là phổ biến nhất. 3 lớp này là gì? Là Presentation, Business Logic, và Data Access. Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ(services) mà mỗi lớp cung cấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi.

Lưu ý: Các bạn không nên nhầm lẫn khái niệm lớp(layer) trong phần này với khái niệm lớp(class) của các ngôn ngữ lập trình hướng đối tượng.
Presentation Layer
Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thị kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng. Lớp này sẽ sử dụng các dịch vụ do lớp Business Logic cung cấp. Trong .NET thì bạn có thể dùng Windows Forms, ASP.NET hay Mobile Forms để hiện thực lớp này.

Trong lớp này có 2 thành phần chính là User Interface Components và User Interface Process Components.

UI Components là những phần tử chịu trách nhiệm thu thập và hiển thị thông tin cho người dùng cuối. Trong ASP.NET thì những thành phần này có thể là các TextBox, các Button, DataGrid...

UI Process Components: là thành phần chịu trách nhiệm quản lý các qui trình chuyển đổi giữa các UI Components. Ví dụ chịu trách nhiệm quản lý các màn hình nhập dữ liệu trong một loạt các thao tác định trước như các bước trong một Wizard...

Lưu ý : lớp này không nên sử dụng trực tiếp các dịch vụ của lớp Data Access mà nên sử dụng thông qua các dịch vụ của lớp Business Logic vì khi bạn sử dụng trực tiếp như vậy, bạn có thể bỏ qua các ràng buộc, các logic nghiệp vụ mà ứng dụng cần phải có.
Business Logic Layer
Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do lớp Data Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation. Lớp này cũng có thể sử dụng các dịch vụ của các nhà cung cấp thứ 3 (3rd parties) để thực hiện công việc của mình(ví dụ như sử dụng dịch vụ của các cổng thanh tóan trực tuyến như VeriSign, Paypal...).

Trong lớp này có các thành phần chính là Business Components, Business Entities và Service Interface.

Service Interface là giao diện lập trình mà lớp này cung cấp cho lớp Presentation sử dụng. Lớp Presentation chỉ cần biết các dịch vụ thông qua giao diện này mà không cần phải quan tâm đến bên trong lớp này được hiện thực như thế nào.

Business Entities là những thực thể mô tả những đối tượng thông tin mà hệ thống xử lý. Trong ứng dụng chúng ta các đối tượng này là các chuyên mục(Category) và bản tin(News). Các business entities này cũng được dùng để trao đổi thông tin giữa lớp Presentation và lớp Data Access.

Business Components là những thành phần chính thực hiện các dịch vụ mà Service Interface cung cấp, chịu trách nhiệm kiểm tra các ràng buộc logic(constraints), các qui tắc nghiệp vụ(business rules), sử dụng các dịch vụ bên ngoài khác để thực hiện các yêu cầu của ứng dụng.

Trong ứng dụng của chúng ta, lớp này sẽ chứa các thành phần là CategoryService và NewsService làm nhiệm vụ cung cấp các dịch vụ quản lý chuyên mục và các bản tin (thêm, xóa, sửa, xem chi tiết, lấy danh sách...).
Data Access Layer

Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứng dụng. Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như SQL Server, Oracle,... để thực hiện nhiệm vụ của mình. Trong lớp này có các thành phần chính là Data Access Logic, Data Sources, Servive Agents).
Data Access Logic components (DALC) là thành phần chính chịu trách nhiệm lưu trữ vào và truy xuất dữ liệu từ các nguồn dữ liệu - Data Sources như RDMBS, XML, File systems.... Trong .NET Các DALC này thường được hiện thực bằng cách sử dụng thư viện ADO.NET để giao tiếp với các hệ cơ sở dữ liệu hoặc sử dụng các O/R Mapping Frameworks để thực hiện việc ánh xạ các đối tượng trong bộ nhớ thành dữ liệu lưu trữ trong CSDL. Chúng ta sẽ tìm hiểu các thư viện O/R Mapping này trong một bài viết khác.

Service Agents là những thành phần trợ giúp việc truy xuất các dịch vụ bên ngòai một cách dễ dàng và đơn giản như truy xuất các dịch vụ nội tại.

Chúng ta đã tìm hiểu qua các lớp của mô hình 3 lớp. Lý thuyết hơi nhiều một chút có thể làm bạn khó hiểu vì khả năng trình bày có hạn, nên bây giờ thử tìm hiểu một qui trình cụ thể hơn để biết các lớp này giao tiếp với nhau như thế nào. Ví dụ trong ứng dụng của chúng ta có thao tác tạo một chuyên mục mới, thì các lớp sẽ ltương tác với nhau như sau:

Lớp Presentation

- Trình bày một web form, có các text box cho phép người sử dụng nhập tên và mô tả cho chuyên mục
- Khi người dùng nhấn nút tạo trên form này, ứng dụng sẽ thực hiện việc tạo một Business Entity Category mới như đoạn code sau minh họa:
public void CreateNewCategory()
{
Category category = new Category();
category.Name = name.Text;
category.Description = description.Text;

// sử dụng dịch vụ do lớp Business cung cấp để tạo chuyên mục
CategoryService.CreateCategory(category);
}

Lớp Business Logic

Để cung cấp dịch vụ tạo một chuyên mục, thành phần CategoryService sẽ cung cấp hàm sau:
public static void CreateCategory(Category category)
{
// kiểm tra xem tên khóa của chuyên mục đã tồn tại chưa?
...
// kiểm tra tên khóa của chuyên mục có hợp lệ không?
...
// sử dụng DV của lớp Data Access để lưu chuyên mục mới này vào CSDL
CategoryDAO categoryDAO = new CategoryDAO();
categoryDAO.CreateCategory(category);
}

Lớp Data Access

Tương tự, để cung cấp dịch vụ lưu một chuyên mục mới vào CSDL, thành phần CategoryDAO sẽ cung cấp hàm sau (sử dụng ADO.NET để kết nối với CSDL):
public void CreateCategory(Category category)
{
// tạo connection
...
// tạo command, khởi tạo các tham số...
command.Parameters.Add(new SqlParameter("@KeyName", category.KeyName));
command.Parameters.Add(new SqlParameter("@Name", category.Name));
command.Parameters.Add(new SqlParameter("@Description", category.Description));
// lưu dữ liệu
command.ExecuteNonQuery();
}


Phân tích và thiết kế

Ứng dụng của chúng ta sẽ viết bằng ASP.NET 2.0 và SQL Server 2000/2005. Ngôn ngữ được dùng là C#.

Chúng ta đã tìm hiểu qua các thành phần chính trong mô hình 3 lớp, giờ đến lúc bắt tay vào thiết kế các thành phần đó cho ứng dụng tin tức của chúng ta. Trong ứng dụng tin tức mà chúng ta đã tìm hiểu yêu cầu qua bài viết trước, chúng ta thấy có hai đối tượng thông tin chính mà chúng ta cần quản lý là các chuyên mục(category) và tin tức(news). Ứng dụng quản lý của chúng ta sẽ thu thập những đối tượng dữ liệu này từ người dùng(phóng viên, biên tập viên) và trình bày lại cho người sử dụng khác xem(độc giả). Giờ chúng ta bắt tay vào thiết kế các thành phần Business Entities.
Business Entities

Ứng dụng của chúng ta sẽ bao gồm 2 entity chính là Category và News.

Trước hết là Category. Một chuyên mục (Category) sẽ gồm những thông tin sau:

CategoryId: Mã chuyên mục - sẽ được sinh tự động khi tạo mới
: Tên chuyên mục. VD: Vi tính, Kinh tế...
KeyName: Tên gợi nhớ dùng để phân biệt chuyên mục với nhau (không được trùng nhau). VD với VNExpress bạn sẽ thấy có Vi-tinh, Suc-khoe...
Description: Mô tả cho chuyên mục. VD: Description cho Vi-tinh là: thông tin mới nhất về công nghệ thông tin của Việt Nam và thế giới...
Picture: Hình ảnh đại diện cho chuyên mục

Trong ứng dụng đơn giản này, chúng ta chỉ thiết kế chuyên mục có một cấp, không có các chuyên mục con, cháu... Và ứng dụng này cũng không có phần quản lý các nhà biên tập viên, nhà báo và cơ chế cấp quyền hạn duyệt bài, gửi bài...Tôi dành phần này cho các bạn phát triển thêm, nhưng tôi cũng sẽ gợi ý cho các bạn cách thiết kế trong phần mở rộng ứng dụng.

Tiếp theo là News. Mỗi một bản tin sẽ có các thông tin sau:

NewsId: mã bản tin. Sẽ được sinh tự động khi tạo mới.
Title: tiêu đề chính của bản tin. VD: Microsoft tuyên bố phá sản!
Subtitle: tiêu đề phụ của bản tin. VD: Bill Gates từ chức!
Excerpt: phần giới thiệu ngắn gọn của bản tin
Authors: danh sách tác giả bản tin. VD: Nguyễn Văn A, Hoàng Thị B
Keywords: danh sách từ khóa chính trong bản tin dùng để tìm kiếm. VD: Microsoft, broken
Body: Đây là phần nội dung chính của bản tin.
Picture: Hình ảnh minh họa cho bản tin.
CreationTime: Ngày giờ tạo bản tin
LastModificationTime: Ngày giờ chỉnh sửa cuối cùng của bản tin
PublishedTime: Ngày giờ bản tin được đăng
TotalViews: Tổng số lượt người xem bản tin
TotalRates: Tổng số lượt người đánh giá bản tin
Rate: Điểm đánh giá trung bình của bản tin
Status: Trạng thái hiện tại của bản tin. Có thể là Writting(Đang viết), Approving(Đang chờ duyệt), Published(Đã được đăng)

Business Service Components

Bước tiếp theo chúng ta sẽ phân tích và thiết kế các Business Service Components. Các thành phần này sẽ làm nhiệm vụ chính cung cấp các dịch vụ cho lớp Presentation dùng để lấy và lưu trữ thông tin.

Lớp CategoryService

Chúng ta cần những thao tách chính trên đối tượng dữ liệu Category:
Tạo mới - CreateCategory(Category category)
Cập nhật - UpdateCategory(Category category)
Xóa - DeleteCategory(int categoryId)
Lấy thông tin chi tiết - GetCategory(int categoryId)
Lấy danh sách các category - GetCategories()
Kiểm tra một Key xem có trong database chưa - CheckKey(string keyName). Thao tác này dùng để kiểm tra xem khi tạo mới một category thì KeyName đã tồn tại trong hệ thống chưa. Thao tác này có thể dùng trên lớp Presentation để kiểm tra và thông báo lỗi cho người dùng khi họ nhập một tên khóa đã có trong hệ thống

Lưu ý: Chúng ta sẽ thực hiện các business logic của hệ thống trong lớp này.

Tương tự đối với lớp NewsService, dựa trên những gì yêu cầu chúng ta phân tích ở bài viết đầu tiên, chúng ta cần những thao tác chính sau đây trên đối tượng News:
Tạo mới - CreateNews(News news)
Cập nhật - UpdateNews(News news)
Xóa - DeleteNews(int newsId)
Lấy thông tin chi tiết - GetNews(int newsId)
Lấy danh sách các bản tin thuộc một chuyên mục nào đó, sắp xếp theo tin mới nhất - GetNewsOfCategory(int categoryId, int page, int pageSize, out int totalRecords)
Cập nhật số lần xem của một bản tin - UpdateTotalViews(int newsId)
Cập nhật đánh giá cho một bản tin - UpdateRate(int newsId, int rate)
Tìm bài viết dựa trên từ khóa - SearchNews(string keyWords, int page, int pageSize, out int totalRecords)

Trong các hàm trên, các bạn chú ý đến hàm GetNewsOfCategory. Trong hàm này có các tham số dùng để phân trang các bản tin. Chúng ta cần đến chức năng này vì khi trình bày trên trang tin, chúng ta chỉ trình bày một số lượng có hạn các bản tin của một chuyên mục nào đó chứ không thể trình bày tất cả trên màn hình được. Khi người dùng muốn xem thêm, họ có thể chọn trang tiếp theo hoặc nhấp vào link Xem tiếp, lúc đó ứng dụng sẽ trình bày các bản tin ở các trang tiếp theo. Tham số totalRecords cho chúng ta biết được tổng số bản tin thật sự có trong chuyên mục đó.

Lưu ý: Khi phân tích thiết kế ban đầu bạn không thể nào hình dung được hết các yêu cầu phát sinh để thiết kế trước các thao tác cần thiết. Bạn phải cập nhật bản thiết kế thường xuyên để phù hợp với yêu cầu. Bản thiết kế này vẫn còn thiếu một số chức năng cần thiết mà tôi sẽ trình bày cho các bạn trong bài viết tiếp theo, chúng ta sẽ chỉnh sửa bản thiết kế này trong quá trình phát triển ứng dụng để phù hợp với các yêu cầu phát sinh mà chúng ta chưa nhìn thấy hết khi thiết kế.

Data Access Components

Bây giờ chúng ta sẽ thiết kế các lớp dùng để truy xuất và cập nhật dữ liệu. Các hàm của các lớp DAO cũng khá đơn giản, chỉ làm nhiệm vụ cập nhật dữ liệu vào database và truy xuất dữ liệu từ database. Các bạn cũng thấy chức năng nó giống như trên lớp Business Logic, nhưng ở đây chúng ta không có bất kỳ ràng buộc logic gì, chỉ đơn giản thực hiện việc truy xuất dữ liệu mà thôi. Các business logic đã được kiểm tra trên lớp Business Logic.

Hiện thực lớp Business Logic & Data Access

Sau khi đã xong bước thiết kế, chúng ta sẽ tiến hành hiện thực 2 lớp Business và Data Access. Các bạn có thể xem source code đính kèm để biết chi tiết cách hiện thực 2 lớp này như thế nào. Lớp Presentation sẽ được thiết kế và hiện thực trong bài viết tiếp theo. Phần bên dưới tôi sẽ trình bày một số điểm chính trong cách hiện thực.

Hiện thực Data Access Components

Do ứng dụng của chúng ta đơn giản nên được giới hạn sẽ dùng với CSDL SQL Server 2000/2005 nên lớp này không được thiết kế để chạy cùng lúc với nhiều loại database khác nhau. Chúng ta sẽ dùng cái Stored Procedures để truy xuất dữ liệu an toàn và dễ thay đổi hơn, tránh bị các lỗi như SQL Injection(không thể tránh hoàn toàn nếu bạn không hiện thực đúng). Các bạn có thể xem qua một cách hiện thực một hàm cơ bản như thế nào:
public void CreateCategory(Category category)
{
using (SqlConnection connection = GetConnection())
{
SqlCommand command = new SqlCommand("spCategoriesCreate", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@KeyName", category.KeyName));
command.Parameters.Add(new SqlParameter("@Name", category.Name));
command.Parameters.Add(new SqlParameter("@Description", category.Description));
command.Parameters.Add(new SqlParameter("@Picture", category.Picture));
SqlParameter paramCategoryId = new SqlParameter("@CategoryId", SqlDbType.Int, 4);
paramCategoryId.Direction = ParameterDirection.Output;
command.Parameters.Add(paramCategoryId);
connection.Open();
command.ExecuteNonQuery();
if (paramCategoryId.Value != DBNull.Value)
category.CategoryId = (int)paramCategoryId.Value;
else
throw new DataAccessException(String.Format(Resources.Strings.CreateEntityException, "Category"));
}
}

Stored Procedure spCategoriesCreate đơn giản được viết như sau:
CREATE PROCEDURE dbo.spCategoriesCreate
@Name nvarchar(50),
@KeyName varchar(30),
@Description ntext,
@Picture varchar(256),
@CategoryId int output
AS
INSERT INTO Categories
(
Name,
KeyName,
Description,
Picture
)
VALUES
(
@Name,
@KeyName,
@Description,
@Picture
)

SELECT @CategoryId = SCOPE_IDENTITY()

Hiện thực lớp Business Logic

Hiện thực lớp Business Logic đòi hỏi bạn phải nắm rõ các business logic của ứng dụng. Ví dụ đối với ứng dụng tin tức của chúng ta thì khi tạo một chuyên mục mới, bạn phải kiểm tra xem KeyName của chuyên mục đó đã có trong hệ thống chưa? Nếu có rồi thì phải báo lỗi, và nếu chưa có thì chúng ta kiểm tra KeyName đó có hợp lệ hay không? (Chỉ chứa kí tự alphabet, chữ số, gạch dưới và gạch ngang...).
public static void CreateCategory(Category category)
{
// Has this key name existed?
if (!CheckKey(category.KeyName))
throw new BusinessException(String.Format(Resources.Strings.KeyNameExisted, category.KeyName));
// is this key name valid?
if (!ValidateKey(category.KeyName))
throw new BusinessException(String.Format(Resources.Strings.InvalidKeyName, category.KeyName));
// ok , now save it to database
CategoryDAO categoryDAO = new CategoryDAO();
categoryDAO.CreateCategory(category);
}

Click vào link dưới đây đểdownload.
Ứng dụng tin tức asp.net 2.0
Bài tham khảo

Cách Tạo RSS trong ASP.NET (Tham khảo từ zensoft.vn)

Chắc Các bạn đã từng nhìn thấy hoặc từng sử dụng chức năng RSS của một website. Bài viết này sẽ hướng dẫn các bạn làm thế nào để tạo một RSS cho một website, Thật Đơn giản.

Trước hết, chúng ta tìm hiểu định nghĩa về RSS là gì.

RSS (Really Simple Syndication) là định dạng dữ liệu dựa theo chuẩn XML được sử dụng để chia sẻ và phát tán nội dung Web. Việc sử dụng các chương trình đọc tin (News Reader, RSS Reader hay RSS Feeds) sẽ giúp bạn luôn xem được nhanh chóng tin tức mới nhất

Mỗi tin dưới dạng RSS sẽ gồm : Tiêu đề, tóm tắt nội dung và đường dẫn nối đến trang Webchứa nội dung đầy đủ của tin.

Quay trở lại về chương trình. Trước hết, chúng ta sẽ tạo 2 struct để thể hiện kênh (channel) và nội dung. Về sau chỉ việc dùng 2 channel này để tạo các kênh và nội dung thông tin
Đây là struct cho một RSS Channel
 
     public struct RssChannel
        {
            public string Title;
            public string Link;
            public string Description;
         }

Còn đây là struct cho một RSS Item
      public struct RssItem
        {
            public string Title;
            public string Link;
            public string Description;
        }

Sau đó chúng ta viết 2 methods để tạo channel và tạo các item trong channel như sau:
       private static XmlDocument addRssChannel(XmlDocument xmlDocument, RssChannel channel)
         {
             XmlElement channelElement = xmlDocument.CreateElement("channel");

             XmlNode rssElement = xmlDocument.SelectSingleNode("rss");

             rssElement.AppendChild(channelElement);

             XmlElement titleElement = xmlDocument.CreateElement("title");

             titleElement.InnerText = channel.Title;

             channelElement.AppendChild(titleElement);

             XmlElement linkElement = xmlDocument.CreateElement("link");

             linkElement.InnerText = channel.Link;

             channelElement.AppendChild(linkElement);

             XmlElement descriptionElement = xmlDocument.CreateElement("description");

             descriptionElement.InnerText = channel.Description;

             channelElement.AppendChild(descriptionElement);

              // Generator information

             XmlElement generatorElement = xmlDocument.CreateElement("generator");

             generatorElement.InnerText = "Your RSS Generator name and version ";

             channelElement.AppendChild(generatorElement);

             return xmlDocument;
          }

và Đây là code để tạo một item cho channel:
         private static XmlDocument addRssItem(XmlDocument xmlDocument, RssItem item)
           {
              XmlElement itemElement = xmlDocument.CreateElement("item");

              XmlNode channelElement = xmlDocument.SelectSingleNode("rss/channel");

              XmlElement titleElement = xmlDocument.CreateElement("title");

              titleElement.InnerText = item.Title;

              itemElement.AppendChild(titleElement);

              XmlElement linkElement = xmlDocument.CreateElement("link");

              linkElement.InnerText = item.Link;

              itemElement.AppendChild(linkElement);

              XmlElement descriptionElement = xmlDocument.CreateElement("description");

              descriptionElement.InnerText = item.Description;
 
              itemElement.AppendChild(descriptionElement);

                // append the item

              channelElement.AppendChild(itemElement);

              return xmlDocument;
            }

Sau đó ta lập một class để sinh ra RSS, ví dụ tên class là NewsRss, class này sẽ chứa 2 cái struct trên và cả 2 methods trên.

Code của class thì chỉ quan trọng cái constructor để tạo XmlDocument và một số methods nhằm tạo channel, add item, trả về
xml document:
        public NewsRSS()
         {
             _rss = new XmlDocument();
             XmlDeclaration xmlDeclaration = _rss.CreateXmlDeclaration("1.0", "utf-8", null);
             _rss.InsertBefore(xmlDeclaration, _rss.DocumentElement);

             XmlElement rssElement = _rss.CreateElement("rss");
             XmlAttribute rssVersionAttribute = _rss.CreateAttribute("version");

             rssVersionAttribute.InnerText = "2.0";
             rssElement.Attributes.Append(rssVersionAttribute);

             _rss.AppendChild(rssElement);
       
            }

         public void AddRssChannel(RssChannel channel)
           {
               _rss = addRssChannel(_rss, channel);
           }

         public void AddRssItem(RssItem item)
           {
               _rss = addRssItem(_rss, item);
           }

         public string RssDocument
           {
              get
                 {
                    return _rss.OuterXml;
                 }
           }

    public XmlDocument RssXMLDocument
    {
        get
        {
            return _rss;
        }
    }

Về bây giờ ta tạo các instant của class này mà sử dụng thôi:

Ví dụ tạo rss document và tạo channel:
        NewsRSS rss = new NewsRSS();

        NewsRSS.RssChannel channel = new NewsRSS.RssChannel();

        channel.Title = "Zensoft Website";

        channel.Link = "http://zensoft.vn";

        channel.Description = "Website Chia xẻ Thông tin về CNTT.";

        rss.AddRssChannel(channel);

Ví dụ tạo rss item:/COLOR]

        NewsRSS.RssItem item = new NewsRSS.RssItem();

        item.Title = "Lập Trình";

        item.Link = "http://zensoft.vn/ShowCategory.aspx?ID=9";

        item.Description = "Các Bài Viết Hướng Dẫn về lập Trình";

        rss.AddRssItem(item);

Cuối cùng, write cái Rss trên thành Xml document ra Response object trại cái ASPX page tương tác với bên ngoài:
        Response.Clear();

        Response.ContentType = "text/xml";

        Response.Write(rss.RssDocument);

        Response.End();

Các Bạn có thể download mã nguồntại đây.

Những tính năng mới trong SQL Server 2005 - Phần II.

Những tính năng mới của một sản phẩm mới luôn được mọi người quan tâm. Đó chính là những điều khác biệt của sản phẩm mới với những sản phẩm cũ.

5. Nâng cao độ sẵn sàng của CSDL:

SQL Server 2005 hỗ trợ 3 loại nâng cao độ sẵn sàng của CSDL:

- Truy cập dữ liệu đồng thời.

- Sẵn sàng sau khi Server bị hỏng hoặc do một thảm họa gì đó.

- Sẵn sàng trong khi bảo trì CSDL và sửa đổi.

a, Truy cập dữ liệu đồng thời: Có nghĩa là bạn có thể nhận được dữ liệu trong khi những người dùng khác cũng đang truy cập nó.

- Tạo ảnh dữ liệu: Tạo bản sao logic của CSDL ở thời điểm xác định. Bạn có thể dùng ảnh dữ liệu (Snapshot) làm nguồn cho các báo cáo Reporting Services mà không cần nạp bản sao trực tuyến của CSDL.

- Cô lập ảnh dữ liệu: Đây là cấp cô lập giao dịch mới để cải thiện độ sẵn sàng của CSDL cho các ứng dụng đọc, bởi vì cơ chế ghi không khóa cơ chế đọc. Các ứng dụng ghi bắt buộc phải dò tìm xung đột.

- Lập chỉ mục trực tuyến: Trong thời gian chỉ mục được xây dựng lại, nó vẫn có thể được dùng cho việc truy xuất dữ liệu. Điều này xem như cải thiện hiệu suất thực thi trong khoảng thời gian đó.

b, Sẵn sàng sau khi Server bị hỏng: SQL Server 2005 cung cấp khả năng sẵn sàng của CSDL liên quan đến hỏng hóc của Server hay các tình huống sự cố khác tốt hơn. Các tính năng sau được thêm vào liên kết lỗi server đã được hỗ trợ trong SQL Server 2000 Enterprise:

- Khôi phục nhanh hơn: Sau khi server bị hỏng, CSDL được làm để sẵn sàng cho người dùng nhanh hơn trong quá trình khôi phục.

- Tạo bản sao CSDL trực tuyến (Database Mirroring): Sử dụng phần cứng chuẩn, Server lưu bản sao (Mirror Server) luôn được duy trì bản sao CSDL mới nhất. Khi Server chính bị lỗi, Server lưu bản sao sẵn sàng để sử dụng chỉ trong vài giây và server chính lúc này bị ẩn đi đối với người dùng.

- Định hướng ngầm lại kết nối cho Client: Khi khôi phục server lưu bản sao dùng định hướng ngầm lại kết nối cho client (Transparent Client redirect). Lớp MDAC (Micrososft Data Access Component) ghi nhận Mirror Server khi kết nối đến server chính. Nếu server chính bị hỏng, MDAC định hướng kết nối tới Mirror Server.

c, Sẵn sàng trong khi bảo trì CSDL: Quá trình sao lưu và khôi phục phải tin cậy nếu bạn muốn khôi phục dữ liệu hiệu quả. Sau đây là một số tính năng hay mà SQL Server 2005 cung cấp:

- Sửa chữa trực tuyến từng phần (Finer Grained Online repairs): Bạn có thể khôi phục dữ liệu fileGroup với CSDL đang sẵn sàng sau khi fileGroup chính được khôi phục.

- Nâng cao chức năng kiểm tra sao lưu dự phòng (Enhanced Backup Verification): Việc kiểm tra các bản sao lưu dự phòng hoàn thiện hơn các phiên bản SQL Server trước. Cú pháp Restore Verify Only kiểm tra mọi thức có thể kiểm, rút ngắn quá trình ghi bản sao lưu dự phòng xuống Server.

- Tạo bản sao của bản sao lưu dự phòng (Backup Media Mirrroring): Điều này cho phép bạn tạo thêm bản sao lưu dự phòng để giảm thiểu khả năng khôi phục không thành công hoặc tạo bản sao lưu ngoài.

- Kiểm tra tổng trang CSDL (Database Page Checksums): Kiểm tra tổng (Checksum) được thêm vào từng trang dữ liệu trong CSDL để dò tìm lỗi, nếu không có thể bị sai sót.

- Kiểm tra tổng bản sao lưu dự phòng (Backup Checksums): Thêm cơ chế dò tìm lỗi trong khi thực hiện sao lưu dự phòng. Nó có thể tìm lỗi trước và sửa lỗi sau.

- Sao lưu dự phòng dữ liệu và tập tin log (backup Data and Logs): Những vấn đề với sao lưu dự phòng tập tin log cùng thời gian với sao lưu dự phòng dữ liệu của các phiên bản trước đã được giải quyết trong SQL Server 2005. Bây giờ nó có thể tiến hành sao lưu dự phòng dữ liệu cùng lúc với sao lưu dự phòng tập tin log tương ứng.

6. Nâng cao khả năng mở rộng CSDL:

- Cài đặt trong một liên cung: Bạn có thể cài đặt SQL Server 2005 trong một liên cung (Cluster) lên đến tám nút có thông báo tình trạng của quá trình trên mỗi nút. Khi cài đặt, Analysis Services sẽ được cài đặt trong một liên cung. Khả năng cài đặt tự hành vào liên cung là điểm mới của SQL Server 2005.

- Phân vùng dữ liệu: Một vài đối tượng CSDL rất lớn, vì thế cần thiết phải chia nhỏ các đối tượng CSDL thành những phần nhỏ hơn để có thể quản lý được. Giả sử bạn có một bảng chứa dữ liệu bán lẻ trực tuyến rất lớn chứa dữ liệu của nhiều tháng. Bạn có thể cải thiện hiệu suất thực thi bằng cách chia bảng thành nhiều phân vùng nhỏ hơn với mỗi phân vùng chứa dữ liệu của từng tháng. Bạn cũng có thể phân vùng chỉ mục. Nếu phân vùng dữ liệu và chỉ mục được canh phù hợp với nhau, bạn có thể lấy các phân vùng ra khỏi bảng hoặc đưa vào bảng. Điều này rất hữu ích nếu bạn có dữ liệu của 12 tháng sau cùng, phân vùng theo từng tháng. Bạn có thể lấy dữ liệu của 12 tháng trước ra khỏi CSDL và tạo phân vùng mới cho tháng hiện thời.

- Giám sát điều chỉnh cỗ máy CSDL: Database Engine Tuning Advisor (DTA): là chức năng giám sát điều chỉnh cỗ máy CSDL của SQL Server 2005 thay thế cho SQL Server 2000 Index Tuning Wizard. Database Tuning Advisor có thể giúp bạn điều chỉnh hiệu suất thực thi cho toàn bộ CSDL chứ không chỉ riêng cho lập chỉ mục như phiên bản trước.

+ DTA có thể quản lý các phân vùng và hỗ trợ điều chỉnh vài hoạt động liên quan đến việc sử dụng nhiều CSDL . Nó giúp cải thiện khả năng sẵn sàng của CSDL trong khi tạo chỉ mục. Bạn có thể thiết lập thời gian tối đa cho DTA để đạt mức tiêu chuẩn nhằm tránh các trường hợp chạy quá lâu. Bạn cũng có thể tìm hiểu các phân tích "What if" trong Database Tuning Advisor cho phép bạn khám phá những hiệu quả có thể tiếp cận được.

- Hỗ trợ gắn nóng bộ nhớ: Nếu nhu cầu bộ nhớ của của SQL Server của bạn tăng đáng kể và bạn đang chạy SQL Server trên Window Server 2003 với phần cứng thích hợp. Bạn có thể tận dụng khả năng hỗ trợ gắn nóng bộ nhớ (Hot - Add Memory) để gắn thêm bộ nhớ mà không cần tắt máy chủ. Điều này cho phép bạn cải thiện hiệu suất thực thi dưới tải cao và tránh được thời gian chết.

- Replication (Đồng bộ): Hiệu suất sao chép và đồng bộ được cải thiện trong SQL Server 2005. Số Subscriber trong replication được tăng lên.

Zensoft Website - Những tính năng mới trong SQL 2005.

Analysis Services

7. Tăng cường khả năng khai thác thông tin:

- Khai thác thông tin (Business Intelligence) là sức mạnh đáng chú ý của SQL Server 2005. Các tính năng được thêm vào Analysis Services. Integration Services thay thế cho Data Transformation Services và Reporting Services được xây dựng trên các tính năng của Reporting Services 2000 được phát hành đầu tiên vào năm 2004.

- Khai thác thông tin trong SQL Server 2005 sử dụng các mẫu Integrate, Analyze và Report. Bạn có thể dùng Integration Services để kết hợp dữ liệu từ nhiều nguồn lại với nhau. Sử dụng Analysis Services để có được cái nhìn chi tiết bên trong dữ liệu. Bạn có thể tạo các báo cáo thể hiện các phân tích kinh doanh với người dùng bằng reporting Services.

a, Integration Services:

- SQL Server Integration services (SSIS) là một cải tiến từ dịch vụ biến đổi dữ liệu (Data Transformation). Những khác biệt chính bao gồm việc giới thiệu các công cụ thể hiện dạng đồ họa như SSIS Designer thông qua BIDS và SQL Server Import and Export Wizard. Tăng khả năng mở rộng bằng cách sử dụng các tác vụ tùy chỉnh, nguồn dữ liệu, nơi lưu gửi dữ liệu tới và những biến đổi dữ liệu. những thay đổi về kiến trúc.

- Dòng dữ liệu và dòng điều khiển được tách biệt thành 2 cỗ máy riêng: Cỗ máy điều khiển ở thời gian chạy cho Integration Services và cỗ máy dòng dữ liệu cho Integration Services. Sự tách biệt này giúp cho sự kiểm soát việc thực thi gói dữ liệu tốt hơn, tăng tính trực quan của việc biến đổi dữ liệu và nâng cao khả năng mở rộng của integration Services bằng cách đơn giản hóa việc tạo và thực thi các tác vụ tùy chỉnh và biến đổi dữ liệu.

- Các tác vụ mới:

+ WMI Data Reader: truy vấn dữ liệu WMI(Windows Management Instrumentation).

+ WMI Event Watcher: Lắng nghe các sự kiện WMI.

+ Hệ thống tập tin: Thực hiện các hoạt động trên tập tin và thư mục trong hệ thống tập tin.

+ Web Service: Truy xuất Web Service.

+ XML: Làm việc với các tài liệu XML

+ Analysis Services Execute DDL: Thực thi các tập lệnh DDL.

+ Data Mining Query: Truy vấn dữ liệu cho các mô hình khai thác dữ liệu.

b. Analysis Service:

- Có nhiều thay đổi được thực hiện đối với công cụ Analysis Service, thỉnh thoảng được xem như là công cụ phân tích kinh doanh (Business Analytics). Được xây dựng từ nền tảng SQL Server 2000 Analysis Services, Microsoft SQL Server 2005 Analysis Service (SSAS) hỗ trợ thêm cho chức năng khai thác thông tin (Business Intelligent), khả năng mở rộng gia tăng, tính sẵn có và bảo mật cho các giải pháp Business Intelligent trong khi làm cho chúng dễ tạo, dễ triển khai và dễ quản lý.

- Các Trình thiết kế trong SSAS:

Trình Thiết kế Diễn Giải
Cube Designer Hỗ trợ cho việc sử dụng thông tin phân tích, giao dịch, kịch bản tập lệnh MDX và các hàm chỉ số hoạt động chính KPI.
Data Mining Model Designer Được dùng để định nghĩa, xem và kiểm tra các cấu trúc khai phá, các mô hình khai phá trong BIDS.
Data Source View Designer. Cung cấp môi trường dựa trên kiểu biểu đồ, đơn giản để định nghĩa các bảng và các quan hệ trong Data Source View tới các đối tượng Analysis Service.
Dimension Designer Nâng cao để cung cấp cho những định nghĩa mã phân tích dựa trên thuộc tính, các cấu trúc phân cấp thuộc tính và do người dùng định nghĩa, giao dịch và ghi trả mã phân tích.

- Các Wizard SSAS mới và cải tiến:

Wizard Diễn Giải
Business Intelligent Wizard Cung cấp các tính năng khai thác thông tin nâng cao, như chuyển đổi tiền tệ.
Cube Wizard Hướng dẫn bạn thực hiện từng bước thiết kế và lặp mẫu dữ liệu ba chiều. Cung cấp những tính năng nâng cao bao gồm công nghệ tự xây để phân tích và quyết định mã phân tichsm kiến trúc hình cây, đánh giá các nhóm từ các bảng và quan hệ của nguồn dữ liệu bên dưới.
Data Mining Model Wizard Tạo mới các cấu trúc khai phá dựa trên quan hệ hoặc là dữ liệu phân tích đa chiều có thể được sửa đổi sau đó bằng Data Mining Designer.
Data Source View Wizard Tự động và nhanh chóng nhận thông tin giản đồ quan hệ của nguồn dữ liệu và xây dựng các bảng, các quan hệ trên các đối tượng Analysis Services, như Dimensions và Cubes.
Dimension Wizard Thêm dần những thay đổi về chiều dữ liệu, ghi trở lại chiều dữ liệu, đánh giá dựa trên tài khoản và thời gian để thiết kế các chiều của CSDL trong Analysis Services.
Migration Wizard Chuyển CSDL từ các phiên bản Analysis Services trước đây sang thể hiện của SSAS.
Schema Generation Wizard Cho phép bạn tạo các giản đồ quan hệ dựa trên các đối tượng Analysis Service đang tồn tại, Có thể được dùng để định nghĩa các chiều và các khối dữ liệu. Sau đó thiết kế bảng nhìn của nguồn dữ liệu có thể được dùng để tạo và đưa đến một CSDL quan hệ đặc trưng để hỗ trợ giải pháp khai thác thông tin của bạn.

- Những thay đổi và cải tiến trong SSAS:

Tính Năng Diễn Giải
ADOMD.NET Trước đây là thành phần trong SQL Server 2000 ADOMD.NET SDK, bây giờ được tích hợp trong SSAS
Analysis Management Objects (AMO) AMO thay thế cho mô hình đối tượng Decision Support Objects (DSO)
Microsoft .NET FrameWork SSAS được tích hợp hoàn toàn vào Microsoft .NET Framework.
Các biểu thức đa chiều dữ liệu Ngôn ngữ Multidimetion Expression (MDX) được thêm vào hỗ trợ cho kịch bản dòng lệnh, kiểm soát phạm vi ngữ cảnh, cải thiện tương tác khối dữ liệu con.
Lưu giữ kết quả tính toán Các kết quả của thành viên được tính toán hoặc các ô được tính toán bấy giờ có thể được lưu giữ và quản lý trong vùng nhớ tạm riêng biệt cho mỗi khối.
Thủ tục lưu sẵn SSAS cung cấp khả năng lập trình và mở rộng hơn trong thủ tục lưu sẵn. Bạn có thể dùng các chương trình bên ngoài trong ngôn ngữ C#, C++ hoặc Visual basic để mở rộng chức năng thực thi của SSAS .
Liên kết lỗi Hỗ trợ liên kết lỗi 8 nút trên hệ thống 32 bit và 4 nút trên hệ thống 64 bit.
Hỗ trợ ngôn ngữ và đối chiếu Hỗ trợ thiết lập ngôn ngữ và đối chiếu ở cả mức thể hiện và mức CSDL.
Hỗ trợ đa thể hiện. Khả năng cài đặt tới 50 thể hiện của dịch vụ Analysis Services từ phiên bản Microsoft SQL Server 2005 Enterprise Edition trên một máy tính. Lên đến 16 thể hiện của dịch vụ Analysis Services có thể được cài đặt từ các phiên bản khác của SQL Server 2005.
Các dòng dữ liệu bị mồ côi trong bảng Khả năng sử dụng thiết lập cho mỗi cấu trúc phân cấp trong một chiều dữ liệu để xác định làm thế nào quản lý các dòng dữ liệu bị mồ côi trong bảng.
Lưu tạm tích cực Dùng để làm tăng hiệu năng của các xử lý chiều, phân vùng và tập hợp dữ liệu.
Hỗ trợ xử lý Hỗ trợ trực tiếp xử lý song song.
Hỗ trợ ngôn ngữ kịch bản Khả năng thực thi dòng lệnh các đối tượng CSDL và thường trình bằng cách sử dụng Analysis Services Script language (ASSL)
Hỗ trợ XML Hỗ trợ hoàn toàn XML theo đặt tả XMLA 1.1 (XML for Analysis)

- Những cải tiến trong khối, chiều và khai thác dữ liệu:

Đối Tượng Mục Diễn Giải
Khối dữ liệu Chỉ số hoạt động KPI KPI là phương pháp đánh giá có thể tùy chỉnh được dùng bởi các công ty để theo dõi và cải tiến hiệu năng.
Nhiều bảng thật Nhiều bảng thật trong một khối đơn được hỗ trợ thông qua việc sử dụng các nhóm đánh giá.
Luật phối cảnh Luật phối cảnh mới cho phép bạn định nghĩa tập con xem được của một khối dữ liệu và có thể cung cấp một điểm nhìn rõ ràng về ứng dụng hoặc kinh doan trên khối dữ liệu
Các phép tính bán công thêm Cho phép thực hiện các phép tính tập hợp trên mã phân tích tài khoản được thiết lập bằng tài khoản. Người sử dụng sau đó thiết lập khối phản ánh cấu trúc tài khoản công ty mà không cần viết các công thức dài lê thê và phức tạp
Chiều dữ liệu các thuộc tính Chiều dữ liệu bây giờ dựa trên các thuộc tính tương ứng với các cột trong bảng của chiều
Các nhóm phép tính đã liên kết và các chiều dữ liệu Dữ liệu từ các nguồn dữ liệu khác nhau có thể được sử dụng bằng cách liên kết một khối với nhóm phép tính trong một khối khác được lưu trữ trong cùng CSDL hoặc trong một CSDL khác trên thể hiện của SSAS. Bạn cũng có thể liên kết khối với chiều trong một CSDl khác.
Đa cấu trúc phân cấp Chỉ được hỗ trợ trong một chiều đơn.
Các kiểu chiều dữ liệu đã được đơn giản hóa Hai chiều kiểu dữ liệu là chuẩn và liên kết thay thế cho 4 kiểu chiều khác nhau trong SQL Server 2000 Analysis Services.
Khai phá dữ liệu Giải thuật Microsoft Association Giải thuật này xây dựng cho những qui tắc mô tả những thông tin dữ liệu nào thường xuất hiện với nhau trong một giao dịch nhất.
Giải thuật Microsoft Linear Regression Giải thuật này cung cấp hỗ trợ hồi quy tuyến.
Giải thuật Microsoft Logistic Regression Giải thuật này cung cấp hỗ trợ hồi quy logic.
Giải thuật Microsoft Nave Bayes Giải thuật này được dùng để khám phá dữ liệu giữa các cột đầu vào và các cột có thể dự đoán trước và khám phá quan hệ giữa chúng.
Giải thuật Microsoft Neural Network Giải thuật này tạo sự phân loại và mô hình khám phá hồi quy bằng cách xây dựng các mạng neron cảm nhận đa lớp. Lý tưởng cho các mô hình phi tuyến tính.
Giải thuật Microsoft Sequence Clustering Giải thuật này nhận ra các cung liên kết của các sự kiện tương tự nhau được sắp xếp theo thứ tự trong một chuỗi mà có thể được dùng để dự đoán thứ tự tương tự của các sự kiện trong chuỗi dựa trên những đặc tính đã biết.
Giải thuật Microsoft Time Series Giải thuật phân tích dữ liệu có liên hệ đến thời gian, chẳng hạn như dữ liệu bán hàng hàng tháng hoặc lợi nhuận hàng năm, cho các mẫu dùng để dự đoán giá trị trong thời gian tới.

- Những thay đổi khác đối với khối dữ liệu, chiều dữ liệu và khai thác dữ liệu bao gồm:

+ Dữ liệu và siêu dữ liệu bây giờ chỉ được nạp vào bộ nhớ khi cần thiết, không giới hạn chiều dữ liệu.

+ Một vài tác vụ được thêm vào SSAS có thể được dùng để tạo một giải pháp khai phá dữ liệu hoàn hảo.

+ Yêu cầu nhóm thành viên cho các chiều dữ liệu đã được loại bỏ.

c. Reporting Services:

- Nếu có một công nghệ được mọi người dùng nhiều nhất khi truy cập vào SQL Server 2005 thì đó chính là dịch vụ báo cáo Reporting Services. Với hầu hết người dùng, báo cáo vẫn là trái tim của việc quản lý CSDL. Với Report Builder mới và Report Designer đã được cải thiện rất nhiều. Tất cả đã được tích hợp hoàn toàn với BIDS.

- Report Builder: Có thể chứng minh là phần thêm được chờ đợi nhiều nhất trong SQL Server 2005. Được thiết kế cho người dùng cuối mà không cần có nhiều kiến thức kỹ thuật, được dùng từ giao diện web để tạo ra những báo cáo đặc biệt. Report Builder có thể được truy suất thông quan URL hoặc từ Report Manager.

- Model Builder: Một loại dự án mới được thêm vào, nó được dùng bởi Report Builder để tạo các báo cáo đặc biệt. Bạn có thể tạo một mẫu dùng Model Designer trong BIDS, Model Designer cung cấp một số Wizard (Tạo theo quy trình mẫu) để giúp bạn chỉ ra nguồn dữ liệu, View dữ liệu và phát sinh các báo cáo mẫu.

- Report Designer: Report Designer mới chạy trong BIDS với một số thay đổi và cải tiến so với phiên bản trước:

+ Expression Editor bây giờ chứa nhiều hàm cho người tạo cũng như những tính năng theo ngữ cảnh.

+ Bây giờ bạn có thể chỉ ra nguồn dữ liệu đông, cho phép bạn chuyển đổi nguồn dữ liệu ở thời gian chạy dựa trên điều kiện bạn chỉ ra trong biểu thức.

+ Analysis Services Query Designer mới giúp bạn tạo các truy vấn MDX

+ Xử lý dữ liệu mở rộng mới cho phép bạn xây dựng các báo cáo từ dữ liệu được phát sinh bởi gói SSIS.

- Report Functionality: SQL Server 2005 Reporting Services bao gồm những cải tiến trong chức năng báo cáo đem đến những lợi ích đặc biệt cho người dùng:

+ Sắp xếp theo những tương tác trong báo cáo.

+ Khả năng in các báo cáo nhiều trang.

+ Khả năng dùng các tham số đa trị.

- Reporting Services Configuration Tool: Đây là công cụ mới chạy từ trình đơn Start của Window trên máy tính chạy Report Server: (Start > SQL Server 2005 > Configuration Tool > Reporting Services Configuration). Được dùng để cấu hình Report Server để tạo và sử dụng CSDL Report Server trên một thể hiện của SQl Server từ xa.

Trên đây là một số những tính năng mới tiêu biểu của SQL Server 2005.

Những tính năng mới trong SQL Server 2005 Phần I. Mới tham khảo trên zensoft.vn

Khi SQL Server 2005 ra đời, thì những kiến thức về SQl 2000 thực sự không đủ để bạn làm chủ được SQL 2005. Khả năng và độ linh họat của SQl Serve 2005 được phản ánh rất rõ trong công cụ Management Studio mới và BIDS.

1. Nâng cao bảo mật:

Bảo mật là trong tâm chính cho những tính năng mới trong SQL Server 2005. Điều này phản ánh sự phản ứng lại của Microsoft với sâu máy tính Slammer đã tấn công SQL Server 2000. Nó cũng cho thấy một thế giới ngày càng có nhiều dữ liệu kinh doanh có nguy cơ bị lộ ra ngoài Internet.

a, Bảo mật nhóm thư mục hệ thống:

- Nhóm mục hệ thống bao gồm các View bên dưới cấu trúc dữ liệu hệ thống. Người sử dụng không thấy được bất cứ bảng bên dưới nào, vì thế những người dùng không có kỹ năng hoặc có ý phá hoại không thể thay đổi hoặc làm hư hỏng các bảng này được. Điều này ngăn bạn hoặc bất kỳ ai khác làm hỏng cấu trúc chính mà SQL Server phụ thuộc vào.

b, Bắt buộc chính sách mật khẩu:

- Khi bạn cài Window Server 2003, bạn có thể áp dụng chính sách mật khẩu của Window (bạn đang áp dụng) cho SQL Server 2005. Bạn có thể thi hành chính sách về mức độ và ngày hết hạn của mật khẩu trên SQL Server 2005 giống hệt như cho tài khoản đăng nhập vào Windows mà trong 2000 không hỗ trợ tính năng này. Bạn có thể tắt hoặc mở việc bắt buộc chính sách mật khẩu cho từng đăng nhập riêng.

Zensoft Website - Tính năng bảo mật trong SQL Server 2005.

c, Tách biệt giản đồ và người dùng:

- SQL Server 2000 không có khái niệm giản đồ (Schema): Người dùng sở hữu các đối tượng CSDL. Nếu một người dùng User1 tạo một đối tượng là myTable thì tên của đối tượng sẽ là User1.myTable. Nếu User1 bị xóa khi một nhân viên rời khỏi công ty chẳng hạn, bạn cần thay đổi tên của đối tượng. Việc này gây ra vấn đề với những ứng dụng phụ thuộc vào tên của đối tượng để truy xuất dữ liệu.

- Trong SQL Server 2005, người dùng có thể tạo giản đồ có tên khác với người dùng để chứa các đối tượng CSDL. Ví dụ User1 có thể tạo giản đồ có tên là HR và tạo một đối tượng Employee. Bạn tham chiếu đến đối tượng đó như là HR.Employee. Vì thế nếu User1 rời khỏi công ty, bạn không cần thay đổi tên giản đồ, nghĩa là mã ứng dụng vẫn được giữ nguyên bởi vì đối tượng vẫn được gọi là HR.Employee.

d, Tự động tạo chứng nhận cho SSL:

- Trong SQL Server 2000, khi bạn dùng Secure Sockets Layer (SSL) để đăng nhập vào thể hiện SQL Server, bạn phải tạo chứng nhận để làm cơ sở sử dụng SSL. SQL Server 2005 tự tạo chứng nhận cho bạn, điều đó cho phép bạn sử dụng SSL, mà không cần phải quan tâm việc tạo chứng nhận.

2. Mở rộng T-SQL:

- Transact - SQL là một phiên bản của Structured Query Language (SQl), được dùng bởi SQL Server 2005. Transact-SQL thường được gọi là T-SQL. T-SQL có nhiều tính năng do Microsoft phát triển không có trong ANSI SQL (SQL chuẩn).

- Cải tiến khả năng hỗ trợ XML: SQL Server 2000 cho phép bạn nhận dữ liệu quan hệ ở dạng XML với mệnh đề FOR XML, hoặc lưu trữ XML như dữ liệu quan hệ trong SQL Server sử dụng mệnh đề OPEN XML. SQL Server 2005 có thêm một kiểu dữ liệu mới là XML cho phép bạn viết mã nhận dữ liệu XML như là XML, tránh việc biến đổi từ XML thành dữ liệu quan hệ khi dùng OPEN XML. Bạn cũng có thể dùng tài liệu giản đồ biểu diễn trong ngôn ngữ W3C XML Schema Definition (đôi khi gọi là giản đồ XSD) để chỉ ra cấu trúc hợp lệ trong XML.

- Việc sử dụng khối Try... Catch trong mã T-SQL cho phép bạn chỉ ra điều gì phải làm khi lỗi xảy ra.

- Trong SQL Server management Studio, bạn có thể tìm thấy nhiều đoạn mã mẫu giúp bạn thực hiện những tác vụ thường gặp với T-SQL. Để xem các mẫu này, bạn chọn trình đơn View > Template Explorer.

3. Tăng cường hỗ trợ người phát triển:

a, Hỗ trợ cho Common Language Runtime (CLR):

- CLR Được dùng bơi mã .NET, được nhúng vào trong cỗ máy CSDL SQL Server 2005. bạn có thể viết các thủ tục lưu sẵn, trigger, hàm, tính toán tập hợp và các kiểu dữ liệu do người dùng định nghĩa bằng cách sử dụng các ngôn ngữ như VB.NET hoặc C#.

- Thử tục lưu sẵn được viết bằng ngôn ngữ .NET là một thay thế tốt cho thủ tục lưu sẵn mở rộng trong SQL Server 2000 bởi vì bạn có thể chỉ ra mức độ bảo mật cho mã .NET. Có 3 mức độ bảo mật cho mã .NET:

+ An Toàn: Mức độ này không cho phép truy cập ngoài phạm vi SQL Server. Mã của bạn không được phép truy cập hệ thống tập tin, registry, các biến môi trường hoặc mạng. Đây là mức bảo mật cao nhất.

+ Truy xuất mở rộng: Mức độ này cho phép mã của bạn truy xuất có giới hạn ra ngoài phạm vi SQL Server. Cụ thể là bạn có thể truy xuất registry, hệ thống tập tin, các biến môi trường hoặc mạng.

+ Không an toàn: Ở mức độ này bạn có thể truy xuất bất kỳ chức năng mong muốn nào ngoài phạm vi SQL Server 2005. Bạn chỉ nên dùng mức độ bảo mật này nếu chắc chắn mã được viết tốt, và bạn tin cậy người viết mã đó.

b, Các kiểu dữ liệu mới:

- Varchar(max): Kiểu này cho phép bạn dùng chuỗi kí tự lớn hơn 8000 byte (8000 kí tự). Tối đa là 2 GB.

- Nvarchar(max): Kiểu này cho phép bạn dùng chuỗi kí tự Unicode lớn hơn 8000 byte (4000 kí tự). Tối đa là 2 GB.

- Varbinary(max): kiểu này cho phép bạn dùng dữ liệu nhị phân lớn hơn 8000 byte.

c, SQL Management Object (SMO):

- SMO thay thế cho Distributed Management Objects (DMO) được dùng trong SQL Server 2000. SMO nhanh hơn DMO ở nhiều thiết lập bởi vì mỗi đối tượng chỉ được thực hiện từng phần. Ví dụ, bạn muốn liệt kê một danh sách hàng ngàn đối tượng lên tree view (Cấu trúc hình cây), bạn không cần nạp đầy đủ thông tin của đối tượng ngay một lần. Ban đầu bạn chỉ cần hiển thị tên của đối tượng, khi nào cần thì mới nạp đầy đủ thông tin của đối tượng đó. Điều này giúp các bạn tiết kiệm được nhiều thời gian cho các tác vụ đơn giản.

d, Tự động thực thi mã kịch bản:

- Nếu bạn đã dùng các chương trình của Microsoft như Microsoft Access, Excel, bạn biết rằng có thể tạo các macro (mã thực thi) cho phép bạn thực hiện tự động một số tác vụ nào đó. SQL Server 2005 bây giờ có tính năng tự động tạo mã kịch bản T-SQL từ những hành động mà bạn dùng gian diện hình ảnh trong SQL Server Management Studio.

e, Truy cập Http:

- Dùng giao thức HTTP để truy cập vào SQL Server 2005 là tính năng mới cho phép người lập trình truy cập vào SQL Server mà không phụ thuộc vào việc IIS có đang chạy trên cùng máy hay không. SQL Server có thể cùng tồn tại với IIS nhưng không giống với SQL Server 2000, IIS không còn là yêu cầu bắt buộc với SQL Server 2005. Truy cập HTTP cho phép phát triển dung XML Web Service với SQL Server 2005. Truy cập HTTP có thể thực thi nhóm lệnh T-SQL hoặc thủ tục lưu sẵn. Tuy nhiên, vì lí do bảo maajtm truy cập HTTP mặc định sẽ bị vô hiệu hóa. Để sử dụng truy cập HTTP bạn phải chỉ rõ người dùng, thủ tục lưu sẵn và CSDL được phép hỗ trợ nó.

4. Tăng cường khả năng quản lý:

Các công cụ quản lý trong SQL Server 2005 có sự thay đổi rất lớn với SQL Server 2000. Thay đổi chính đến từ SQL Server management Studio.

a, Những công cụ quản lý mới:

- Trong SQL Server 2000, công cụ quản lý chủ yếu là Enterprise Manager và Query Analyzer. SQL Server 2005, Với công cụ quản lý mới là SQL Server Management Studio đã thay thế hoàn toàn 2 công cụ trên của SQL 2000. Công cụ này cho phép bạn quản lý nhiều thể hiện SQL Server dễ dàng hơn. Từ một giao diện, bạn có thể quản lý nhiều thể hiện của cỗ mãy CSDL SQL Server, Analysis Services, Intergration Services và Reporting Services.

- Công cụ mới SQL Server Configuration Manager cho phép bạn kiểm soát các dịch vụ kết hợp với SQL Server 2005. Nó có thể thay thế cho Services Manager và công cụ cấu hình mạng cho Server và Client. Bạn cũng có thể kiểm soát một số dịch vụ khác như: SQL Server, SQL Agent, SQL Server Analysis Services, DTS Server (Cho SQL Server Integration Services), Full - Text Search, SQL Browser.

b, Profiler:

- Cho phép bạn phân tích những vấn đề về hiệu suất thực thi trong SQL Server 2005. Ví dụ, Profiler mở các tập tin truy vết mà bạn đã lưu trong hệ thống tập tin để bạn xem lại và phân tích các quá trình SQL Server mà bạn quan tâm. Profiler có thể biểu diễn thông tin truy vết ở dạng đồ thị để bạn có thể dễ dàng xem điều gì đã xảy ra. Nó có thể nhận dữ liệu được ghi lại bởi Windows Performance Monitor. Bạn có thể hiển thị dữ liệu dạng đồ thị, , xem hiệu suất thực thi trên khoảng thời gian đã chọn. Từ đồ thị, bạn có thể truy cập đến điểm có vấn đề.

c, SQL Server Agent:

- Những khả năng của SQL Server Agent, thành phần hỗ trợ cho các tác vụ đã được lập thời gian biểu, được nâng cao. ví dụ, số tác vụ đồng thời mà SQL Server Agent có thể chạy được tăng lên. SQL 2000 chỉ dùng SQL Agent trong những tác vụ liên quan đến cỗ máy CSDL. còn trong 2005, SQL Server Agent thực thi các tác vụ cho Analysis Services và Integration Services. SQL Server Agent dùng Windows Management Instrumentation (WMI), cho phép ạn viết mã tránh thực thi tác vụ, như khi đĩa cứng đầy thì các tác vụ vẫn được thực thi thành công.

d, Cấu hình động:

- Trong SQL Server 2005, bạn có thể thực hiện bất kì Thay đổi cấu hình nào mà không cần khởi động lại SQL Server, kể cả khi bạn đang chạy trên Windows Server 2003. Bên cạnh đó, bạn cũng có thể thay đổi áp lực CPU và I/O nếu bạn cần, có thể thêm nóng bộ nhớ cho Server nếu bạn có phần cứng thích hợp.

e, Gửi mail từ CSDL:

- Đây là tính năng khá mới mẻ trong SQL Server 2005. Nó thay thế SQL Mail trong SQL Server 2000. Database Mail sử dụng giao thức Simple Mail Transfer Protocol (SMTP). Không còn bất kỳ phụ thuộc nào với Messaging Application Programming Interface(MAPI) và cũng không còn đòi hỏi phải có Outlook. Việc loại bỏ những phụ thuộc này tránh được hiều vấn đề mà người dùng SQL Server 2000 gặp phải với SQL Mail. Ngoài ra, Database Mail cũng hỗ trợ hoạt động liên tiếp, ghi tập tin Log và kiểm tra hoạt động.

Trên đây là một số những tính năng mới trong SQL Server 2005

Cần Giờ



Lâu rùi mới được đi chơi, thật là thủi mái











Sao phải đợi ?????

Sao phải đợi một nụ cười mới trở nên thật xinh tươi? Sao phải đợi đến lúc cô dơn mới nhận ra giá trị của một người bạn? Sao phải đợi được yêu rồi mới đem lòng yêu người? Sao phải đợi có một chỗ làm tốt mới bắt đầu công việc? Sao phải đợi thật nhiều rồi mới chia sẻ một chút? Sao phải đợi thất bại mới nhớ đến một lời khuyên? Sao phải đợi có thời gian mới đem sức mình ra phục vụ? Bạn ơi, sao phải đợi? Bởi có thể rằng bạn không biết bạn sẽ phải đợi đến bao lâu... :wait:

Thơ Thẩn !!!!!

Hôm nay tự dưng lang thang trên mạng vì chán thì tình cờ đọc được blog của một người, nhưng đã qua đời cách đó vào ngày, tự nhiên lại thích bài thơ này

Khát

Người đàn bà khát yêu
Thèm từ sự vá víu
Thèm cả sự thờ ơ

Đau
Muốn yêu
Dù chỉ một lần
Trái tim này, anh không vẽ lên được
Mắt tôi đầy nước
Anh thì bèo dạt mây trôi
Tôi thì đứng đó xa xôi đợi chờ

( Nguyễn Hồng Công )

I'm yours

sleep song



Lyric
Lay down your head
And I'll sing you a lullaby
Back to the years
Of loo-li,lai-ley
And I'll sing you to sleep
And I'll sing you tomorrow
Bless you with love
For the road that you go

May you sail fair
To the far fields of fortune
With dimonds and pearls
At your head and your feet
And may you need never
To banish missfortune
May you find kindness
In all that you meet

May there always be angels
To watch over you
To guard you each step of the way
To guard you and keep you
Safe from all harm
Loo-li,loo-li,lai-ley

May you bring love
And may you bring happieness
Be loved in return
To the end your days
Now fall of to sleep
I'm not meaning to keep you
I'll just sit for awhile
And sing
Loo-li,lai-ley

May there always be angels
To watch over you
To guard you each step of the way
To guard you and keep you
Safe from all harm
Loo-li,loo-li,lai-ley
Loo-li,loo-li,lai-ley

Listen, and feel the life slowly



Mỗi khi nghe những giai điệu này, tâm hồn như chậm lại, thư thái