Objectives:
ü Hiểu về Microsoft Intermediate Language (MSIL)
ü Các loại Assembly
ü Làm việc với Private Assembly
ü Tại sao và cách khai báo Shared Assembly
ü Khái niệm Strong Name và tiện ích SN.EXE
ü Làm việc với tiện ích GACUtil
ü Đăng ký Shared Assembly đến Global Assembly Cache(GAC)
ü Cách khai báo Friend Assembly
ü Tại sao và cách khai báo Friend Assembly
EXERCISES : Tạo mới Solution tên Exercise03Soln
Exercise 01 : Thêm Class Library mới vào Solution tên là PrivateAssembly
· Using System.Data.SqlClient
· Đổi Class1 thành DataProvider.cs
o Khai báo biến Protected
§ Khai báo protected statics kiểu là SqlConnection với tên sqlConnection
§ Khai báo protected kiểu là string với tên commandText
§ Khai báo protected kiểu là string với tên connectionString giá trị mặc định là : "server=(local);database=StudentManagementForProfessional;integrated security=true";
#region variable
protected static SqlConnection sqlConnection ;
protected string commandText = string.Empty;
protected string connectionString = "server=(local);database=StudentManagementForProfessional;integrated security=true";
#endregion variable
o Khai báo Public Properties
§ Khai báo Public get và set Property kiểu là string với tên CommandText
§ Khai báo Public get và set Property kiểu là string với tên ConnectionString
#region Properties
public string CommandText
{
get { return commandText; }
set { commandText = value; }
}
public string ConnectionString
{
get { return connectionString; }
set { connectionString = value; }
}
#endregion Properties
o Khai báo Public Method
§ Khai báo phương thức OpenConnection và khởi tạo đối tượng sqlConnection với biến connectionString
§ Khai báo phương thức CloseConnection để đóng và hủy đối tượng sqlConnection
#region Method
public void OpenConnection()
{
if (sqlConnection==null)
{
sqlConnection = new SqlConnection(connectionString);
sqlConnection.Open();
}
}
public void CloseConnection()
{
if (sqlConnection!=null)
{
sqlConnection.Close();
sqlConnection.Dispose();
}
}
#endregion Method
Exercise 02 : Tiếp tục với PrivateAssembly
· Thêm mới 1 Class tên là DataTableProvider.cs
· Khai báo kế thừa từ Class DataProvider
· Khai báo phương thức tên GetDataTable trả ra đối tượng DataTable dựa trên biến commandText
o Dựa trên biến static sqlConnection
o Khởi đối tượng SqlDataAdapter và SqlCommand
namespace PrivateAssembly
{
public class DataTableProvider:DataProvider
{
public DataTable GetDataTable()
{
DataTable dataTable = null;
OpenConnection();
SqlCommand sqlCommand = new SqlCommand(commandText, sqlConnection);
SqlDataAdapter sqldataAdapter = new SqlDataAdapter(sqlCommand);
dataTable = new DataTable();
sqldataAdapter.Fill(dataTable);
return dataTable;
}
}
}
· Build project và kiểm tra PrivateAssembly.dll được tạo trong folder BIN \ Debug ?
Exercise 03 : Thêm mới Windows Application Project đến Exercise03Soln tên là UsePrivateAssembly
· Add reference PrivateAssembly.dll từ PrivateAssembly project
· Kiểm tra PrivateAssembly.dll đã được copy đến thư mục BIN \ Debug ?
· Khai báo sử dụng namespace là PrivateAssembly
· Thêm DataGridView và Button (btnShow) vào Form1
o Khởi tạo DataTableProvider và gán cho thuộc tính CommandText là Select * from TableName
o Gọi phương thức GetDataTable và lấy ra đối tượng DataTable sau đó đổ vào DataGridView
· Thay đổi folder hiện hành thành C:\
· Tạo file strong name by cách sau :
· Kiểm tra ShareAssembly.snk có trong C:/ ?
Exercise 05: Thêm Class Library mới vào Solution tên là SharedAssembly
· Xóa Class1.cs
· Copy DataProvider.cs và DataTableProvider.cs từ PrivateAssembly đến SharedAssembly project
· Thay đổi namespace
o Mở Class DataProvider và đổi namespace PrivateAssembly thành SharedAssembly
o Mở Class DataTableProvider và đổi namespace PrivateAssembly thành SharedAssembly
o Chép ShareAssembly.snk từ đĩa C:/ vào folder ShareAssembly
o Mở AssemblyInfo.cs và xuống bên dưới của file
o Add [assembly: AssemblyKeyFile("ShareAssembly.snk")]
o Build project và kiểm tra ShareAssembly.dll được tạo trong folder BIN \ Debug ?
Exercise 06 : Mở Visual Studio 2008 Command Promt
· Copy ShareAssembly.dll đến C:\Windows\Microsoft.NET\Framework\v2.0.50727
· Mở đường dẫn C:\Windows\assembly
· Đăng ký assembly đến GAC bằng cách sử dụng 1 trong 2 cách sau
o Copy ShareAssembly.dll đến C:\Windows\assembly
o Trong Visual Studio 2008 Command Promt gõ GACUtil.exe /I C:\Windows\Microsoft.NET\Framework\v2.0.50727
· Kiểm tra ShareAssembly.dll có trong C:\Windows\assembly ?
Exercise 07 : Thêm mới Windows Application Project đến Exercise03Soln tên là UseSharedAssembly
· Add reference SharedAssembly.dll từ Tab .NET
· Kiểm tra SharedAssembly.dll đã được copy đến thư mục BIN \ Debug ?(không có)
· Khai báo sử dụng namespace là SharedAssembly
· Thêm DataGridView và Button (btnShow) vào Form1
o Khởi tạo DataTableProvider và gán cho thuộc tính CommandText là Select * from TableName
o Gọi phương thức GetDataTable và lấy ra đối tượng DataTable sau đó đổ vào DataGridView
Exercise 08: Thêm Class Library mới vào Solution tên là FriendAssembly
· Xóa Class1.cs
· Copy DataProvider.cs và DataTableProvider.cs từ PrivateAssembly đến SharedAssembly project
· Thay đổi namespace
o Mở Class DataProvider và đổi namespace PrivateAssembly thành FriendAssembly
o Mở Class DataTableProvider và đổi namespace PrivateAssembly thành FriendAssembly
o Mở DataTableProvider và khai báo Using
using System.Runtime.CompilerServices;
o Trước namespace FriendAssembly thêm [assembly:InternalsVisibleTo("UseFriendAssembly")]
o Build project và kiểm tra FriendAssembly.dll được tạo trong folder BIN \ Debug ?
Exercise 09 : Thêm mới Windows Application Project đến Exercise03Soln tên là UseFriendAssembly
· Add reference FriendAssembly.dll từ folder BIN\Debug của project FriendAssembly
· Kiểm tra FriendAssembly.dll đã được copy đến thư mục BIN \ Debug của UseFriendAssembly?(có)
· Khai báo sử dụng namespace là FriendAssembly
· Thêm DataGridView và Button (btnShow) vào Form1
o Khởi tạo DataTableProvider và gán cho thuộc tính CommandText là Select * from TableName
o Gọi phương thức GetDataTable và lấy ra đối tượng DataTable sau đó đổ vào DataGridView
Exercise 10 : Thêm mới Windows Application Project đến Exercise03Soln tên là UseCanNotFriendAssembly
· Add reference FriendAssembly.dll từ folder BIN\Debug của project FriendAssembly
· Kiểm tra FriendAssembly.dll đã được copy đến thư mục BIN \ Debug của UseCanNotFriendAssembly ?(có)
· Khai báo sử dụng namespace là FriendAssembly
· Thêm DataGridView và Button (btnShow) vào Form1
o Khởi tạo DataTableProvider và gán cho thuộc tính CommandText là Select * from TableName
o Gọi phương thức GetDataTable và lấy ra đối tượng DataTable sau đó đổ vào DataGridView
o Bạn sẽ thấy lỗi khi khởi tạo DataTableProvider vì không nhìn thấy assembly đươc add reference vào*********
0 comments:
Post a Comment