yet another blog about computer, technology, programming, and internet

Tuesday, June 27, 2006

Implementing DAL with Microsoft Visual Studio.NET

Tuesday, June 27, 2006 Posted by Ismail Habib , 20 comments
DAL (Database Abstraction Layer) concept is extremely useful, especially when it comes to large applications. However, it has several drawbacks. One of them is that implementing a DAL might require a lot of time. Fortunately, there are some "tools" that allow us to cut the DAL implementation time required.

Microsoft Visual Studio.NET (VS.NET) itself gives a way to implements DAL in your application. As far as I know, VS.NET gives two way to access database. The first one is by accessing it through a SQL command, I call this direct database connection. The other way is by using ADO.NET. As ADO.NET provides several components to access databases, they are adapter and dataset. While adapter is dependent to specific database, dataset is completely transparent to any kind of database. VS.NET implements a dataset as a class that provide several methods to access database. Adapter works as an intermediate between database and dataset. Its implementation contains SQL queries relevant to actions (add, edit, delete) which are going to be invoked from dataset. Remember, this only work if you use database access with dataset manipulation and not direct database access.

Creating a Restore Point Using Windows Management Instrumentation (WMI) and C#.NET

Tuesday, June 27, 2006 Posted by Ismail Habib , , 29 comments
I have tried to find a way to create a restore point in Windows, but no matter how hard I tried, I just can't find the one using C#, one of my favourite language. Sigh, I have to make one on my own :P Windows has something called WMI (Windows Management Instrumentation). It contains a huge classes and objects that allow programmers to do a lot of things, creating a restore point is just one of them.
Here is the source code to create a restore point in Windows:

ManagementScope oScope = new ManagementScope("\\\\localhost\\root\\default");
ManagementPath oPath = new ManagementPath("SystemRestore");
ObjectGetOptions oGetOp = new ObjectGetOptions();
ManagementClass oProcess = new ManagementClass(oScope,oPath,oGetOp);

ManagementBaseObject oInParams = oProcess.GetMethodParameters("CreateRestorePoint");
oInParams["Description"] = "My Restore Point";
oInParams["RestorePointType"] = 0;
oInParams["EventType"] = 100;

ManagementBaseObject oOutParams = oProcess.InvokeMethod("CreateRestorePoint", oInParams, null);

Hope this will be useful. Don't forget to add System.Management as a reference!