NHibernate is a open source Object-Relational Mapping (ORM) tool. This ORM tool hides sql query complexities by replacing query with mapping and class object.
Every .Net Project can use Nhibernate to work with database.
The purpose of NHibernate is to save developers work time thus increasing productivity. Large application may get more benefit from NHibernate than small app.
This blog post gives Asp.Net & NHibernate dummy examples. These examples cover select / retrieve records and insert a new record.
First thing first, we need to download Nhibernate files. Please download the zip file from http://sourceforge.net/projects/nhibernate/
As a brief, we need xml mapping file, a class which representates DB table, Nhibernate dll file, NHibernate xml configuration file, and Asp.Net file it self that contains NHibernate configuration object, NHibernate session etc to provide data to UI.
I use VS 2010 Express & SQL Server 2008 R2 to build this example.
Abstract factory pattern is to “provide an interface for creating families of related or dependent objects without specifying their concrete classes.”
For example a drawing & printing machine can process Low and High Resolution. Both have its own resolution drivers. Those drivers referred to concrete class with draw / print function. However the client implementation code asks the factory object class (not the concrete class) for a driver instance with provides information about resolution required. So this factory object return instance of concrete class.
The factory object implements an abstract class. It can instantiates a concrete class and return to client with casted to factory’s parent which is abstract Resolution driver.
The client uses the resolution driver as abstract without being aware about their concrete implementation.
Benefit of using factory pattern is in client code implementation, new resolution can be added with just providing that new resolution info as argument. So no change in client code.
Filling data to DataGridView with SqlDataAdapter is a common task but to cancel it in the middle of fill process need a tricky way. Especially when SqlDataAdapter returning large DataSet then no progress status informed to user since SqlDataAdapter need time to fetch DataSet. Also this project does not need to have button like “More records” to fetch more dataset. We can retrieve as much records you like and cancel it any time.
We need to show records immediately and user can cancel the retrieval process whenever they like. The basic idea is using int recordcount = SqlDataAdapter.Fill(int startrow, int maxrecords, DataTable dt) method at BackgroundWorker.DoWork event. That Fill method is similar to paging in web page. BackgroundWorker execute SqlDataAdapter.Fill in loop until it has no more record to fetch and we can cancel the process before or after SqlDataAdapter.Fill. Continue reading
Posted in C#
Tagged BackgroundWorker, C#, C# Example, DataGridView, dataset, DoWork, ProgressChanged, RunWorkerCompleted, SqlDataAdapter, Windows Form, WinForm
Winform application usually need asynchronous process. Progress status of this process commonly showed with progressbar control.
As a default Thread class accomplish the asynchronous process but .Net has built in BackgroundWorker component to do async easily.
BackgroundWorker component/class has events which are
DoWork handles main async job. ProgressChanged handles displaying async progress info to user. RunWorkerCompleted handles event when async process is completed.
This BackgroundWorker has Cancel ability, so that user can cancel asnyc in the middle of its process. Continue reading
AJAX is not a new programming language, but a new way to use existing standards.
AJAX is the art of exchanging data with a server, and update parts of a web page – without reloading the whole page.”
Ajax is a web client script so it can work with all server side scripting. Asp .Net with Visual Studio 2010 provides easy way to create Ajax application.
Some of main Component of Ajax are ScriptManager, UpdatePanel, ContentTemplate, Triggers. Continue reading