Một ví dụ về mô hình 3-tiers

Tranh thủ hôm cuối tuần, gửi con đi nhà trẻ, lên công ty viết cái ví dụ này. Hi vọng sẽ giúp ích cho những ai quan tâm.

Đây là một ứng dụng quản lý sách được viết dựa trên mô hình 3 tầng (3-tiers ), sử dụng LINQ to SQL như lớp truy xuất dữ liệu (DAL). Vì đây là một ứng dụng mẫu nên tôi đã cố gắng giảm thiểu chức năng cũng như việc dùng các tính năng được hỗ trợ bởi COM+, giúp chương trình đơn giản, dễ hiểu.

Continue reading “Một ví dụ về mô hình 3-tiers”

Những tính năng mới trong WPF 4

Cung cấp các control mới
Ba loại control mới được thêm vào WPF cho phép dễ dàng tạo ra các ứng dụng kinh doanh. Các control này cũng hầu như 100% tương thích với các phiên bản Silverlight. Điều này cho phép các nhà phát triển có thể dùng lại code và tạo ra các phiên bản client và web nhanh chóng. Các control này bao gồm:

Continue reading “Những tính năng mới trong WPF 4”

Clean Web.Config Files (VS 2010 and .NET 4.0 Series)

Đây là bài đầu tiên trong loạt bài về VS 2010 và .NET 4.0.

Có thể bài viết này hơi ngắn, nhưng đây là một thay đổi hay, thay đổi đầu tiên sẽ đến với bản ASP.NET 4.0 là: file web.config đơn giản, sáng sủa hơn.

Bạn sẽ thấy ngay điều này ngay khi tạo một dự án ASP.NET 4.0 mới (đó là lý do tại sao tôi chọn bài này là bài đầu tiên).

Continue reading “Clean Web.Config Files (VS 2010 and .NET 4.0 Series)”

VS 2010 and .NET 4 Series

Tiếp theo các loạt bài về LINQ, Silverlight… trong thời gian tới, tôi sẽ bắt đầu dịch loạt bài VS 2010 and .NET 4 Series của MR.ScottGu. Loạt bài này giới thiệu về những thay đổi có trong phiên bản kế tiếp của .NET và trình IDE nổi tiếng Visual Studio.

Link các bài viết gốc tại đây: http://weblogs.asp.net/scottgu

Bài viết này sẽ được cập nhật danh sách các bài dịch.

Hi vọng loạt bài này sẽ giúp chúng ta tìm hiểu kỹ hơn và tận dụng những ưu điểm mới của .NET 4.0 và VS 2010.

Dùng biểu thức LINQ tùy biến với <asp:LinqDatasource> (LINQ to SQL phần 9)

Vài tuần trước tôi bắt đầu viết loạt bài về LINQ to SQL. LINQ to SQL là một bộ khung (framework) có sẵn cho O/RM (object relational mapping) trong .NET 3.5, nó cho phép bạn dễ dàng mô hình hóa các CSDL quan hệ dùng các lớp .NET. Bạn có thể dùng các biểu thức LINQ để truy vấn CSDL, cũng như có thể cập nhật/thêm/xóa dữ liệu từ đó.

Dưới đây là 8 phần đầu tiên của loạt bài này:

Continue reading “Dùng biểu thức LINQ tùy biến với <asp:LinqDatasource> (LINQ to SQL phần 9)”

Thực thi các biểu thức SQL tùy biến (LINQ to SQL phần 8)

Vài tuần trước tôi bắt đầu viết loạt bài về LINQ to SQL. LINQ to SQL là một bộ khung (framework) có sẵn cho O/RM (object relational mapping) trong .NET 3.5, nó cho phép bạn dễ dàng mô hình hóa các CSDL quan hệ dùng các lớp .NET. Bạn có thể dùng các biểu thức LINQ để truy vấn CSDL, cũng như có thể cập nhật/thêm/xóa dữ liệu từ đó.

Dưới đây là 7 phần đầu tiên của loạt bài này:

Continue reading “Thực thi các biểu thức SQL tùy biến (LINQ to SQL phần 8)”

Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7)

Vài tuần trước tôi bắt đầu viết loạt bài về LINQ to SQL. LINQ to SQL là một bộ khung (framework) có sẵn cho O/RM (object relational mapping) trong .NET 3.5, nó cho phép bạn dễ dàng mô hình hóa các CSDL quan hệ dùng các lớp .NET. Bạn có thể dùng các biểu thức LINQ để truy vấn CSDL, cũng như có thể cập nhật/thêm/xóa dữ liệu từ đó.

Dưới đây là 6 phần đầu tiên của loạt bài này:

Trong phần 6 tôi đã nói tới cách chúng ta có thể dùng các Stored Procedure (SPROC) và các hàm do người dùng định nghĩa (UDF) để truy vấn và lấy dữ liệu về dùng mô hình dữ liệu  LINQ to SQL. Trong viết này, tôi sẽ nói về cách dùng các thủ tục này để cập nhật, thêm hoặc xóa dữ liệu.

Continue reading “Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7)”

Lỗi “Name ‘__o’ is not declared” trong trang ASP.NET

Khi viết ASP.NET, bạn có thể gặp trường hợp sau:

– Khi dịch VS sẽ báo lỗi “Name ‘__o’ is not declared”  ở những dòng có dạng output (<%=”my value”%>), mặc dù bạn không có bất kỳ biến nào có tên __o.

– Những dòng lỗi này sẽ bị gạch chân trong trình soạn thảo.

– Tuy nhiên khi chạy chương trình vẫn bình thường.

Continue reading “Lỗi “Name ‘__o’ is not declared” trong trang ASP.NET”

LINQ tip #4: Dùng WHERE

Khi xây dựng các form tìm kiếm với SQL, chúng ta vẫn thường phải xây dựng một chuỗi SQL với nhiều điều kiện trong WHERE, theo kiểu như:

string sql = "select * from Customers";
string where = "";
if (txtCustomerName.Text != "")
    where += String.Format("CustomerName = {0}", txtCustomerName.Text);
if (where != "")
    sql += " WHERE " + where;

MyDataGrid.DataSource = ... <kết quả trả về bởi câu truy vấn>

Trong LINQ, nếu muốn xây dựng một câu truy vấn LINQ kiểu như vậy, bạn có thể sử dụng câu lệnh Where() kết hợp với biểu thức LAMBDA, với ví dụ trên tôi có thể viết như sau:

DataClasses1DataContext dc = new DataClasses1DataContext();
var q = from p in dc.Products select p;
if (txtCustomerName.Text != "")
    q = q.Where(p => p.Name != txtCustomerName.Text);
MyDataGrid.DataSource = q;