8/29/11

Tóm tắt kiến thức về môn NET Advanced Programming

1) Attribute:

Kiến thức cơ bản/Basic:
Attribute là không phải là những đoạn code, cũng không phải là đoạn comment, nó là những dòng viết thêm vào code nhằm mục đích hướng dẫn chương trình dịch cách “đối xử” với các class hoặc assembly.
Các Attribute trong giáo trình đề cập đến bao gồm:
Session 1 (Attribute) => Obsolete, DllImport, Conditional
Session 3 (Assembly) => assembly: AssemblyKeyFile
Session 13 (Serialization) => Serializable
….

Cách tạo/How to:
Để tạo nên attribute, bạn chỉ cần viết thêm vào đầu của class tên của attribute trong dấu ngoặc vuông.
Tra cứu/References:
Session 1
Session 3: Trang 44
Session 13
2) Assembly:

Basic:
Assembly là thành phần cơ bản nhất của DOT NET. Bản chất của nó chính là tập hợp (assembly có nghĩa là tập hợp) của các đoạn mã trung gian (MSIL, hay còn gọi là CIL) và các thành phần khác như (assemably and type) metadata, resources. Các file exe hoặc dll được tạo ra bởi VS (và chạy trên DOTNET Framework) chính là các assemply.
How to:
Để tạo nên assembly, ta dịch ứng dụng bằng lệnh Build trên menu hoặc dùng lệnh csc
Command/Các lệnh liên quan:
csc
- Tên lệnh: C Sharp Compiler
- Chức năng: Lệnh tạo ra module hoặc file exe/dll từ 1 chương trình .cs
- Các tham số thông dụng:
/target:module (tạo file .netmodule)
/target:library (tạo file .dll)
/out:filename (tạo file tên là filename)
/addmodule:modulename (thêm module tên là modulename vào assemply)
- Ví dụ:
csc /target:module mysource.cs (trang 32)
csc /target:library /addmodule:mysource.netmodule /out:A2.dll (trang 32)
ildasm
- Tên lệnh: IL DisASseMbler
- Chức năng: Xem mã IL của một assembly.
- Ví dụ:
ildasm A2.dll (trang 36)
resgen
- Tên lệnh: Resources Generator
- Chức năng: Sinh ra tập tin resources (.resX) từ tập tin text (.txt). Nếu muốn dùng tập tin dạng khác, ta phải dùng lớp ResourcesWriter
- Ví dụ:
resgen addr.txt
resgen addr.txt addr.resX
References:
Session 3
3) GAC:

Basic:
GAC là Global Assemply Cache, có thể hiểu đó là một kho chứa các assembly dùng chung.
How to:
Để tạo nên GAC, ta … không cần làm gì cả. Windows đã tạo sẵn một thư mục (ví dụ trong WinXP là C:\WINDOWS\assembly) để chứa các assembly dùng chung. Có điều đây là một thư mục đặc biệt, để đưa một assembly vào (hoặc ra) GAC, ta cần dùng lệnh gacutil , chứ không thể đơn thuần copy/paste như với file thông thường.
Command:
gacutil
- Tên lệnh: GAC Utility
- Chức năng: Cài/gỡ một assembly vào/tại GAC.
- Tham số:
/i (cài đặt assembly vào GAC)
/u (gỡ cài một assembly từ GAC)
/l (liệt kê danh sách (list) assembly tại GAC)
/upre (gỡ assemply khỏi NIC - xem thêm 3 -> NIC)
- Ví dụ:
gacutil /i AacEx3.dll (trang 45)
regedit
Tên lệnh: Registry Editor
Chức năng: mở cửa sổ soạn thảo Registry
Registry:
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramewor k]
References:
Session 3
4) NIC:

Basic:
NIC là Native Image Cache. NIC là một phần của GAC. Điểm khác biệt của NIC so với các phần khác của GAC là NIC chứa các assembly đã được dịch sẵn sang mã máy (native code). Sử dụng các assembly trong NIC làm chương trình chạy hơn do không phải biên dịch lại.
How to:
Ta cũng không cần làm gì để tạo ra NIC, mà chỉ dùng lệnh ngen để đưa một assembly vào NIC.
Command:
ngen
- Tên lệnh: NIC generator
- Chức năng: Tạo ra file dạng native code trong GAC
- Tham số:
/show:
- Ví dụ:
ngen MyAssembly.dll (trang 42)
ngen /show MyAssembly.dll (trang 42)
5) Strong Name:

Basic:
Strong Name là tên được tự động sinh ra theo những thuật toán mã hoá phức tạp. Strong Name được áp dụng vào việc tạo khoá cho Assembly, nhằm phân biệt giữa các Assembly nếu chúng vô tình trùng tên.
How to:
Dùng lệnh sn để tạo strong name.
Command:
sn
- Tên lệnh: Strong Name
- Tham số:
-k (sinh ra key file)
- Ví dụ:
sn -k strongname.snk (trang 43)
6) RCW:

Basic:
RCW là Runtime Callable Wrapper, đây chính là một proxy (bộ phận trung gian) cho phép ứng dụng .NET giao tiếp được với các phần tử COM. Thực tế, proxy này chính là một dll của .NET.
How to:
Để tạo ra RCW cho 1 ứng dụng .NET nào đó, ta dùng lệnh TlbImp đối với file COM mà ta muốn giao tiếp.
Command:
TlbImp
- Tên lệnh: Type LiBrary IMPort.
- Chức năng: Tạo file dll có chức năng như một RCW để ứng dụng .NET giao tiếp được với COM component.
- Tham số:
/out:filename (xuất ra file tên là filename)
- Ví dụ:
tlbimp Calculator.dll /out:CalcNet.dll (trang 78)
regsvr32
- Chức năng: đăng ký 1 file COM component (dạng dll chẳng hạn) với hệ điều hành.
- Ví dụ:
regsvr32 Calculator.dll (trang 78)
7) CCW:

Basic:
CCW là COM Callable Wrapper, cũng là một proxy có chức năng ngược lại với RCW, nó cho phép các ứng dụng COM sử dụng được các dll của DOTNET. Như thế, thực chất CCW chính là một dll tương thích với COM. Cũng như RCW, nó vẫn chạy trong môi trường managed và không chứa business logic; cả chỉ chứa thông tin về .NET component dưới hình thức Type Library.
How to:
Để tạo ra CCW cho 1 ứng dụng COM nào đó, ta dùng lệnh Regasm đối với file tlb của được tạo ra bởi lệnh TlbExp tương ứng với file dll của DOTNET mà ta muốn COM giao tiếp được.
Command:
TlbExp
- Tên lệnh: Type LiBrary EXPort.
- Chức năng: Tạo file tlb là một Type Library cho phép các ứng dụng không phải .NET có thể tham chiếu tới dll của ứng dụng .NET
- Ví dụ:
tlbexp Hospital.dll (trang 82)
RegAsm
- Tên lệnh: Register Assembly.
- Chức năng: đăng ký Type Libray (cùng file DLL của nó) với hệ thống để các ứng dụng COM có thể dùng được.
- Ví dụ:
regasm /tlb:Hospital.tlb Hospital.dll (trang 82)
Windows Services:

Basic:
Windows Services là các ứng dụng đặc biệt trong Windows, chúng có thể tự động chạy khi khởi động Windows, và thường không có giao diện người dùng.
How to:
- Để xem các Windows Services ta dùng lệnh services.msc hoặc vào Administrative Tools trong Control Panel, chọn Service (trang 115)
- Để lập trình với Windows Services ta dùng dll sau: System.ServiceProcess.dll. (xem thêm: 8 - Các bước tạo ra 1 Windows Services)
- Để cài đặt hoặc gỡ cài đặt một Service do ta tạo ra, ta dùng lệnh installutil
Command:
services.msc
- Tên lệnh: Services.msc (MSC = MicroSoft management Console)
- Chức năng: Gọi ra cửa sổ quản lý các Window Services.
installutil
- Tên lệnh: Install Utility
- Chức năng: Lệnh tiện ích hỗ trợ cho việc cài đặt ứng dụng.
- Tham số:
/u (gỡ bỏ cài đặt)
- Ví dụ:
installutil MyFirstService.exe (trang 95)
installutil /u MyFirstService.exe (trang 96)
9) Windows Services (tiếp):

Steps/Các bước tạo ra và cài đặt:
Xem lại bài Lab trang 108
- step 1:
Tạo 1 Project dạng Window Services
- step 2:
Thêm serviceProcessInstaller (Bằng cách bấm phải chuột vào màn hình design, chọn Add Installer). Nhớ đổi Account sang LocalSystem.
- step 3:
Sửa lại code của Windows Services vừa tạo ra theo ý mình bằng cách sửa các phần OnStart, OnStop…
- step 4:
Dịch Project ra file chạy (.exe)
- step 5:
Dùng lệnh installutil để biến file exe vừa tạo ra thành Window Service
Code/Các class hoặc đoạn code quan trọng:
- Trang 101, 102
….
using System.ServiceProcess
….
public class Service1 : System.ServiceProcess.ServiceBase
….
System.ServiceProcess.ServiceBase[] ServicesToRun;
….
System.ServiceProcess.ServiceBase.Run(ServicesToRu n)
….
- Trang 120
….
ServiceController[] services;
services = ServiceController.GetServices();
foreach(ServiceController x in services)
{
… x.DisplayName;
… x.Status
}
….
- Trang 121, 122
….
if (x.Status == System.ServiceProcess.ServiceControllerStatus.Runn ing) …
….
x.Stop();
….
x.Start();
10) Event Logging:

Basic:
Event Logging là cách Windows Services ghi lại các sự kiện vào hệ thống log của Windows.
How to:
- Để xem các Event Log ta dùng Event Viewer Administrative Tools trong Control Panel, chọn Event Viewer (trang 124)
Code:
- Trang 125, và : http://www.webreference.com/programming/asp/logging/
….
using System.Diagnostics;
….
EventLog.WriteEntry(”MyNewLog”,
“Message number ” + i,
EventLogEntryType.Information);
….
EventLog log = new EventLog(”MyNewLog”);
foreach(EventLogEntry ei in log.Entries)
{
System.Console.WriteLine(ei.Message);
}
//delete the Log
EventLog.Delete(”MyNewLog”);


Theo Internet or Some Document
Bookmark and Share

0 comments:

Post a Comment

Next previous home

Cộng đồng yêu thiết kế Việt Nam Thiet ke website, danang