Pages

Friday, September 18, 2009

ASP.NET Dynamic Data

Dynamic Data Road Map

ASP.NET Dynamic Data 4.0 Preview 4 Refresh

Refreshed 6/26

  • DomainDataSource had errors updating foreign keys
  • Cannot edit many to many relationship with table per type inheritance
  • Better exception handling

The ASP.NET Dynamic Data Preview 4 Refresh is a new release of Dynamic Data based on some of the early bits we are working on for the next release of the framework. This preview release runs on .NET 3.5 SP1 / VS 2008 SP1. The final version will ship with .NET 4.0 and VS 2010.

This preview shows some of the areas in which we are expanding Dynamic Data:
  • A new QueryExtender control, contained in the sample projects to simplify common data filtering operations. It supports a rich ASP.NET declarative query syntax that makes it easy to do things like search data for text or have filters based on ranges.
  • A new Dynamic Data filter model that enables the developers to apply templates to pages just like field templates (including user defined filters).
  • Support for inheritance in Entity Framework and Linq to SQL.
  • Support for many to many relationships in Entity Framework.
  • New Entity Templates which allow fine control over how an object is displayed and edited.
  • Attributes for controlling the filters appearance and order.
  • A DomainDataSource control that uses a data provider model which enables the developers to build their own custom business logic.
  • A datasource control for ADO.NET Data Services that works with ASP.NET and an ADO.NET Data Service Provider for Dynamic Data.
  • Starter templates for building new applications with the bits for DomainService, Entity Framework and Linq to SQL.
  • Simple Dynamic Data for adding field templates, validation, and entity template support to existing ASP.NET data driven pages.
Download: ASP.NET Dynamic Data Preview 4 Refresh
This also contains the Dynamic Data Futures project which contains some things we the team is considering for future releases of Dynamic Data.

ASP.NET Dynamic Data MVC Preview contains a preview release of Dynamic Data MVC. This contains samples of how Dynamic Data support may be added to future releases of MVC.

Friday, September 11, 2009

Take Control of your Web Site

Beezilla CMS website builder is a simple and powerful website content management system (CMS). With Beezilla CMS website builder you can easily create your website on your own.

Creating your website is simple and quick. Choose a website design from our template library or create your own custom template. Add pages to your website with a click of a button. Save some time and create your content using our visual elements library.

Beezilla’s CMS interface is simple, fast and easy to use. Our technology is based on leading web technologies: Apache, PHP, MySQL and ExtJS.

No more delays, no more expensive maintenance cost You can take control of your web site NOW. It's Free!!!

Click here for details .......

Saturday, September 5, 2009

How To Create MultiColum Dropdownlist using DropDownExtender Control

In this programming field a developer always facing a new requirement, need from their clients and as per the requirement new controls, tips and techniques developed.

Today, i am here to find out that how can we create a multi coloumn dropdown in asp.net

Visit the following link .....

AJAX CascadingDropdown Control SQL DataBinding

AJAX CascadingDropdown extender control provides the functionality to load the data in ASP.Net dropdown list controls using AJAX based web service methods. AJAX CascadingDropdown extender works with 2 or more Dropdownlist controls that enable you to load the primary data in first dropdown and further it populates the second Dropdown list control dynamically with related data on selected index change event of first dropdownlist.

All this functionality performs without refreshing the ASP.Net web page. In this sample we have used the Northwind SQL Database to load the category names in first Dropdownlist control that will populate the related products into the second dropdownlist control accroding to the category name selected.

Download the sample code .......

Click here for details .......

Sunday, August 16, 2009

Flash Control for ASP.NET

FlashControl is an ASP.NET server control which allow you to add swf Flash movies or Flex in your ASP.NET projects. As any WebControl, you can add FlashControl in Visual Studio Toolbox, and just drag and drop it in your ASP.NET web pages ! It is now compatible with ASP.NET AJAX!






Click here for details ......

Sunday, August 9, 2009

ASP.NET Tab Generator

One of the controls I feel ASP.NET is missing is a tab control. While this itself is not a control, it will create the code you need to simulate tabs and tab views.

You can see an example of how the feature works right now! The "Info" and "Changelog" tabs above were made using this tool.

Click here for details ......

Lazy Loading jQuery Tabs with ASP.NET

This article looks at efficient use of jQuery tabs when displaying data. Specifically, it covers how to lazy-load data, so that it is only accessed and displayed if the tab is clicked.

Lazy Loading is a well-known design pattern that is intended to prevent redundant processing within your application. In the case of tabbed data, there seems little point retrieving and binding data that appears in a tabbed area that no one looks at. So, this examples covers how to defer data access and display until the user wants it - which is defined by them clicking the relevant tab.

Click here for details ......

Sunday, July 26, 2009

Free cross-browser WYSIWYG editor

Finally, a free cross-browser WYSIWYG editor that's packed with every rich-text editing feature you need to make your content management system that much better.

Setting up open WYSIWYG is so easy, you can quickly turn any textarea into a powerful WYSIWYG editor with just a few simple lines of code.

Packed with every rich text editing feature you need, open WYSIWYG gives you total control over formatting your text. The ultimate textarea replacement for your content management system.

Click here for details .......

Monday, July 20, 2009

How to create PDF document using PDFDoc Scout library in ASP.NET

This page contains step by step tutorial how to create PDF document in ASP.NET using PDFDoc Scout library.

IMPORTANT NOTE: To use PDFDoc Scout library on web-server you have to have additional "Web License"
PDFDoc Scout library is capable of generating of in-memory PDF files so file needn't to be stored as a file on hard drive and can be streamed right into the browser window.
There is a special "GenerateInMemoryFile" property for such purposes. Set this property to TRUE and the library will generate and keep your PDF as in-memory stream without using of any temporary files.
1) Install PDFDoc Scout library on your computer and run Visual Studio.NET
2) Go to File menu and select New Project:
New project menu
Select ASP.NET Web Application project type and click OK
ASP.NET new project wizard
3) Visual Studio.NET will create new empty ASP.NET project. Double-click on the empty space of the form:
New blank project generated by ASP.NET
This will open source code editor window on procedure handling Page_Load event. We will place our code for PDF PDF animation generation into this procedure:
Page load handler procedure generated by ASP.NET IDE
4) Use the following code for procedure (you can simply copy and paste this code from this page into ASP.NET source code editor window):

'Put user code to initialize the page here
Dim PDFDoc
Dim Size As Long
Dim MemoryImage As System.Array
' create new PDFDoc object
PDFDoc = CreateObject("PDFDocScout.PDFDocument")
' initalize library
PDFDoc.InitLibrary("demo", "demo")
' set in-memory mode
PDFDoc.GenerateInMemoryFile = true ' set to True to generate PDF document in memory without any files on disk to output it to end-user to browser
' starts PDF document generation
PDFDoc.BeginDocument ' start PDF document generation

' add text to current page
PDFDoc.Page.AddText "Hello, World!", 100, 100, 15

PDFDoc.EndDocument ' close PDF document generation

' get size of generated in-memory PDF document
Size = PDFDoc.BinaryImageSize
' create new buffer with size equal to generated pdf document file
Dim Buffer(CInt(Size)) As Byte
' get in-memory pdf file as byte stream
MemoryImage = PDFDoc.BinaryImage
' copy byte stream into buffer
Array.Copy(MemoryImage, Buffer, Size)
' clear http output
Response.Clear()
' set the content type to PDF
Response.ContentType = "application/pdf"
' add content type header
Response.AddHeader("Content-Type", "application/pdf")
' set the content disposition
Response.AddHeader("Content-Disposition", "inline;filename=helloworld.pdf")
' write the buffer with pdf file to the output
Response.BinaryWrite(Buffer)
Response.End()
' set library object instance to Nothing
PDFDoc = Nothing

5) Now run ASP.NET project using Debug | Start command:
Start project menu
Visual Studio.NET will run ASP.NET project on web-server and you will see Internet Explorer window with generated PDF document:
PDF document generated by ASP.NET application
Click here to download the source code of this example.

Wednesday, July 15, 2009

Dynamically create ASP.NET user control using ASP.NET Ajax and Web Service

This article will explain how to load ASP.NET user control dynamically using ASP.NET AJAX and Web Service. In next post we will explain the same thing using JQuery.

Lots of user asked to mentioned examples in VB.NET, so in this article, example codes both in language C#/VB.NET

Click here for details .....

Tuesday, July 14, 2009

Color Picker ASP.NET AJAX Extender Control

I was looking for a client-side color picker control and found it extremely difficult to find something that would satisfy to my requirements. I have found plenty of pure JavaScript controls written on very different levels of proficiency and there was even one ASP.NET color-picker control that I almost liked but still my major requirement was not satisfied: I was looking for AJAX .NET Extender control - easy to use and based on a solid and proven platform.

So I have researched what other color picker controls do and decided to write the one myself that I would base on Microsoft AJAX .NET platform. After some considerations I've decided to go even further and build an AJAX Control Toolkit Extender control.

As an example I took an AJAX Control Toolkit Calendar extender and in my Color Picker extender control I also internally used another AJAX Control Toolkit control: Popup extender.

So what are the advantages of implementing a client control as an ASP.NET AJAX extender?

  1. You use ASP.NET page mark-up to render the control content to the browser.
  2. No need to manually inject JavaScript, HTML and other resources.
  3. You develop JavaScript code in a standalone file leveraging ASP.NET AJAX framework and Visual Studio intellisense abilities.
  4. JavaScript per se is very well structured, easy to read and debug.
  5. Many of the hassles of JavaScript client coding such as cross-browser compatibility, event handling, asynchronous calls are taken care of by ASP.NET AJAX framework.

So I have spent a few days coding the control and finally it's out there. I have created a Codeplex project for it so if you are interested just go there and download the control and a Demo Web site.

Now just a few more words about the extender. First, this is how it looks:

Second, it's extremely easy to use. The extender attaches to an ASP.NET TextBox server control and to an optional button that can open a popup window and an element that samples a selected color in the background. User selects a color by clicking on a colored area. Below is a code example of using an extender on an ASP.NET page.

    <asp:TextBox ID="TextBox1" runat="server" Columns="7" MaxLength="7">asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/icon_colorpicker.gif" />
<cdt:ColorPickerExtender ID="cpe" runat="server"
TargetControlID="TextBox1"
SampleControlID="ImageButton1"
PopupButtonID="ImageButton1"
/>

Feel free to download the extender from the Codeplex, try it and post any comments or suggestions on the Codeplex project page.

Sunday, July 12, 2009

Using ASP.NET AJAX Control Extenders in VS 2008

What are ASP.NET Control Extenders?

ASP.NET Control Extenders are controls that derive from the System.Web.UI.ExtenderControl base class, and which can be used to add additional functionality (usually AJAX or JavaScript support) to existing controls already declared on a page. They enable developers to nicely encapsulate UI behavior, and make it really easy to add richer functionality to an application.

Click here for details ......

Thursday, July 9, 2009

Image processing/resizing in ASP.NET tutorial utilizing url rewrite

Image resizing is a common challenge when building web applications which I have realized when building the next version of my ASP.NET CMS. In this tutorial, I will show how to do elegant ASP.NET image resizing combined with URL rewriting in order to create flicker-like image processing API.

First step we need to create a script that resizes an image on the fly. In this case I choose to work with three different image sizes, for the simplicity of the matter.

Click here for details ......

Thursday, July 2, 2009

Making sense of ASP.Net Paths

ASP.Net includes quite a plethora of properties to retrieve path information about the current request, control and application. There's a ton of information available about paths on the Request object, some of it appearing to overlap and some of it buried several levels down, and it can be confusing to find just the right path that you are looking for.

To keep things straight I thought it'd be a good idea to summarize those options briefly along with describing some common scenarios of how they might be used.


Click here for details .......

Saturday, June 27, 2009

Future of Searching and RSS

I'll admit I was excited when the Google API was made available for public use. Nice idea and opens up some cool new ways to integrate searching into your applications or websites. That is, as long as you don't exceed the allowable 1000 queries per day as per the developer license. It was easy enough to use but it was still not enough to get me that fired up about using it. I have that same excitement now about the MSN Search (beta) site. But this time things are different. There is no daily query limitation, there is not even an API. MSN Search allows you to take any query/search and get the results back as RSS/XML. Now we're talking!

Append the QueryString “format” parameter to specify that you want the results back in the form of RSS. For example, if I do an MSN search for “Ryan Farley”, I'll end up with the following:

Now, if I want that same search back as RSS/XML I simply add the format parameter to the query string as follows:

Not too shabby. But, where this starts to get really cool is how easy it is to seamlessly integrate searching into your own websites, and your users won't even know that MSN is being used for the searches. No redirects to some MSN Search page or anything. You just take the value that they are searching for, append your site URL to the search and then display the resulting RSS from the MSN Search however you want, on your own page, with your sites style. For example, if I wanted to search my blog for something like IDisposable - and get back the results as RSS/XML I would use the following:

If you wanted to make things really easy on yourself, you could use something like Scott Mitchell's RssFeed ASP.NET server control to easily display the returned RSS with no coding on your part. All you have to do is form the search query string and set it as the DataSource to the control and you've got instant searching for your site, all courtesy of the MSN Search.

Setting the Value of a TextBox with TextMode=Password

When the TextMode property of an ASP.NET TextBox is set to Password the value set in the Text property will not display at runtime. This can be a pain, however it is actually by design to prevent the unmasked password from being displayed in the HTML source of the page.

While the security reasons are good to not display the masked password value, leaving it unmasked in the source, it is also necessary at times to display the masked value in the TextBox. For example, a user profile page where the user has the ability to change their password. It makes sense to display it there. After all, the user has already authenticated to get to the page (although the value is sent with the data to the browser and could easily be sniffed).

Security reasons aside, you can work around this by adding the password value to the control as as Attribute. Since the TextBox renders as an HTML input control, you can set the value attribute easily, just as you would set the Text property.

PasswordText.Attributes.Add("value", "ThePassword");

Use this to set the value, instead of setting the Text property. You can still read the value from the control via the Text property.

Thursday, June 25, 2009

A Simple Image Slide Show

This is a simple C# application that can open and view images, and show the images one by one in a slide show. The purpose of this article is for a beginner to know how to create an image slide show using timers, in C#.

Click here for details .......

Tuesday, June 23, 2009

A Complete URL Rewriting Solution for ASP.NET 2.0

This article describes a complete solution for URL rewriting in ASP.NET 2.0. The solution uses regular expressions to specify rewriting rules and resolves possible difficulties with postback from pages accessed via virtual URLs.

Why use URL rewriting?

The two main reasons to incorporate URL rewriting capabilities into your ASP.NET applications are usability and maintainability.

Click here for more details ......

Monday, June 22, 2009

Howto: Create a Custom Control in ASP.NET (C#)

Creating custom controls can save you a lot of time and effort when building an application. The built-in sever controls provided can do just about anything you need them to, but sometimes it takes a great deal of coding (hacking) to make it do exactly what you want it to do. Consider the possibility that you need a textbox control that you would like to be able to assign a readony property to it so it either renders as a regular textbox if false or plain text if true.

You may also want a textbox that will cause it's on "OnTextChanged" to bubble up in the "GridViewCommandEvent" of a Gridview control. By default the textbox does not support that.

Click here for details .....

Saturday, June 20, 2009

Accessing the Html Header in ASP.NET 2.0

Taking a look at the Page class there is a Header property that looks tempting to be able to do something like dynamically add a stylesheet. The problem is that when you type in Page.Header it doesn't appear that you have full control over the header, even though there is the ever so tempting System.Web.UI.HtmlControls.HtmlHead class. What I had been doing is throwing an id and a runat="server" onto the head tag in my HTML, which I really didn't like because an id tag on the head tag isn't valid XHTML 1.1.

Today, a break through. This has always bothered me, so I took a deeper look and it turns out that Page.Header is defined as IPageHeader. Perhaps, just maybe I could cast Page.Header into System.Web.UI.HtmlControls.HtmlHead. And sure enough, it worked great. Anyways, I feel a little silly about not figuring that out sooner but now that I've gotten this working I feel much better. Anyways, here's some example code to add a stylesheet to a page:

Dim header As Web.UI.HtmlControls.HtmlHead
header = TryCast(Me.Page.Header, Web.UI.HtmlControls.HtmlHead)
If header IsNot Nothing Then
Dim link As New HtmlLink
link.Attributes.Add("href", "~/whatever.css")
link.Attributes.Add("media", "screen")
link.Attributes.Add("rel", "stylesheet")
link.Attributes.Add("type", "text/css")
header.Controls.Add(link)
End If

Tuesday, June 16, 2009

Make your web application run faster

It is easy to develop your own ASP.NET web application. But making it do some useful things for your users while keeping the design simple and elegant is not so easy. If you are lucky, your web application will be used by more than a handful of users, in that case, performance can become important. For some of the web applications I worked on, performance is vital: the company will lose money if users get frustrated with the slow response.

There are many factors that can result in bad performance, the number of users is just one of them. As a developer in a big corporation, you usually don't have a chance to mess with real production servers. However, I think it is very helpful for developers to take a look at the servers that are hosting their applications.

For more details, Click here ......

Programmatically Manage IIS

This article is about managing IIS programmatically. It provides a class library that represents the tree hierarchy used by IIS for its every aspect. The project is accompanied by a Windows Forms applications that is used to pinpoint and extract any data required.

Click here for details .......

Sunday, June 14, 2009

Dynamically Adding Meta Tags in ASP.NET 2.0

The HtmlMeta class is provided to created meta tags dynamically in your page header.

You can easily create a HtmlMeta object and add it to the Controls collection in the HtmlHead class exposed via Page.Header.

Here is the sample:

Custom Adding Title Tag :

Me.Header.Title = "Title Of Page Here"

Custom Adding Meta Tag :
Dim metaDescription As New HtmlMeta()
metaDescription.Name = "description"
metaDescription.Content = "A description of page here."
Me.Header.Controls.Add(metaDescription)

Working with Web User Controls at Run-time

Introduction

In addition to HTML and Web server controls, ASP.Net provides with the capability to easily create custom reusable controls by using the same techniques that are used to develop an ASP.Net page. These controls are called user controls.

User controls offer great flexibility than server-side includes (SSIs) by accessing the object model support provided by ASP.NET. Using User Controls you can program against any properties declared in the control just like any other ASP.Net server control, rather than simply including the functionality provided by another file.

Furthermore, in a single application, multiple user controls can exist that are authored using different languages. For example, an application can have a user control created with Visual Basic while another in C#, and have both these controls on the same ASP.Net page.

In this article I will create a simple login user control, and load that to a web-page dynamically.

Prerequisites

This tutorial assumes that you own a copy of Visual Studio 2005 or Visual Web Developer Express. It also assumes that you are familiar with ASP.Net 2.0 basics and have worked with user controls before.

Creating the Website

If you have an existing web site, you can skip this section. Otherwise, you can create a new web site and page by following these steps.

To create a file system Web site:

* Open Visual Studio 2005.
* On the File menu, open New and click on Web Site.

The New Web Site dialog box appears.

* Under Visual Studio installed templates, click ASP.NET Web Site.
* In the Location box, enter the name of the folder where you want to keep the pages of your Web site.

For example, type the folder name C:\WebSites\mySite.

* In the Language list, click Visual Basic (or the language you prefer to work with).
* Click OK.

Visual Web Developer creates the folder and a new page named Default.aspx

Adding a User Control to the Website

Right-click in the solution explorer and select Add New Item. Select Web User Control and type in the name of the control. Click on Add to add the user control to the web application.

This will add a .ASCX file to the project. This is our user control.

Preparing Our Control

Double click loginCtrl.ascx to open the new user control and switch to design view. Add a table to the page by clicking Inset Table under the Layout Menu. Design a page similar to the following:

As you can see, this user control defines a typical Login Control. I also added two Required Field Validation controls and a Validation Summary control. Make sure that the ControlToValidate properties of the validation controls are set, otherwise the application will result in an error at run-time.

Now, switch to the code-behind of the user control. I am going to add property methods to retrieve the values entered in the text-boxes.

Partial Class loginCtrl

Inherits System.Web.UI.UserControl

Property pUser() As String

Get

Return txtUser.Text.Trim

End Get

Set(ByVal value As String)

txtUser.Text = value

End Set

End Property

Property pPass() As String

Get

Return txtPassword.Text

End Get

Set(ByVal value As String)

txtPassword.Text = value

End Set

End Property

End Class

This completes our user-control. You can create a much advanced user-control by adding login button to the user-control and handling the login functionality in the control itself. This way you can completely separate the login functionality from the presentation layer.

Adding the control to the Web-Page at design time

First we will try out our control by adding it to the Default.aspx page at desing-time. Open Default.aspx and switch to Design-view. Now click on loginCtrl.ascx in the solution explorer and drag it onto Default.aspx. This will add the user control onto the page, just like it does a server control.

After adding the control, I created a login button on the page. Switch to code-behind class and create a button event handler for the login button.

Protected Sub btnLogin_Click(_, _) Handles btnLogin.Click

Dim tempString As String = ""

tempString = "UserName: " + Me.LoginCtrl1.pUser

tempString = tempString + "... "

tempString = tempString + "Password: "

tempString = tempString + Me.LoginCtrl1.pPass + "."

Response.Write(tempString)

End Sub

This will fetch the user-name and password from the user control and write it onto the web-page.

Compile and run the web-application. Using planned layout, you can create professional and eye-catching applications with ASP.Net easily. With the use of User Controls, you can keep your presentation layer from your data and business layer.

Adding the control to the Web-Page at run-time

The main focus of this article was in explaining how to setup a user control to be loaded on a page at run-time. This is a very important and useful technique in creating ASP.Net applications. For instance, you have created two menus, one is an administrator menu, and the other is the basic user menu_ Based on the login credentials you can easily identify the user of your site as a simple client or an administrator. Thus, you can load whichever user control as required at run-time.

In the Default.aspx page, switch to design-view and delete the loginCtrl.ascx that we earlier dragged onto the page. Go to ToolBox and drag-n-drop a PlaceHolder where the User Control had been. This place holder will hold our user control, i.e. at run-time, I will add the user control to this placeholder.

Switch to the code-behind class and make changes to the code in order to have the following:

Protected Sub Page_Load(_, _) Handles Me.Load

Dim tempControl As Control = LoadControl("loginCtrl.ascx")

Me.myPlaceHolder.Controls.Add(tempControl)

End Sub

Protected Sub btnLogin_Click(_, _) Handles btnLogin.Click

Try

For Each tempControl As loginCtrl In myPlaceHolder.Controls

Dim tempString As String = ""

tempString = "UserName: " + tempControl.pUser

tempString = tempString + "... "

tempString = tempString + "Password: "

tempString = tempString + tempControl.pPass + "."

Response.Write(tempString)

Next

Catch ex As Exception

End Try

End Sub

The loadControl function is used to create an instance of the user control at run-time. You can define a static path to the .ascx file or a dynamic path. Using the dynamic approach can create the application more portable.

Next follows the changes to the Button handler. What we do in this event handler is locate the loginCtrl instance inside the place holder. If it was successfully loaded, then it would exist. The rest is the same as before.

Taking into consideration our two-menu example, in the button event-handler, we will loop for both controls. On page load, one of the menu is added, and thus the code for that will be executed, while since the other won't exist.

Friday, June 12, 2009

Creating a GridView with Resizable Column Headers

Before I get into the implementation details, here is a quick screen shot of the grid. Unfortunately the mouse cursor didn't come across in the screen shot, but when it is placed over the cell borders in the header row, it displays the east/west pointing arrow. Before I get into the implementation details, here is a quick screen shot of the grid.

Unfortunately the mouse cursor didn't come across in the screen shot, but when it is placed over the cell borders in the header row, it displays the east/west pointing arrow.

Adding this behavior to the existing GridView required implementing a handful of JavaScript functions. My approach for implementing this features was to do the following:

  1. Handle each of the header cells's mousemove events to determine when the user has the cursor placed roughly over the cell's right hand border. If a resize is already in processes then I use this event to determine what the new width of the column should be
  2. Handle each of the header cell's mousedown events to determine when the resizing begins
  3. Handle the document's mouseup event. When this occurs I make sure that the resize has stopped
  4. Handle the document's selectstart event. I cancel this event if a resize is currently in executing. Doing this make's sure that the header cell's text isn't highlighted when I am resizing the cell. I learned this trick from the AjaxControlToolkit's ResizeableControlExtender.

Download the Code

Wednesday, June 10, 2009

How to use HttpWebRequest and HttpWebResponse in .NET

Internet applications can be classified broadly into two kinds: client applications that request information, and server applications that respond to information requests from clients. The classic Internet client-server application is the World Wide Web, where people use browsers to access documents and other data stored on Web servers worldwide.

Applications are not limited to just one of these roles; for instance, the familiar middle-tier application server responds to requests from clients by requesting data from another server, in which case it is acting as both a server and a client.

The client application makes a request by identifying the requested Internet resource and the communication protocol to use for the request and response. If necessary, the client also provides any additional data required to complete the request, such as proxy location or authentication information (user name, password, and so on). Once the request is formed, the request can be sent to the server.

Click here for details .......

Paging, Selecting, Deleting, and Editing in the ASP.NET 2.0 GridView Control with Keyboard Shortcuts

The ASP.NET 2.0 framework comes with the GridView, a feature-rich ASP.NET server control to display, page through, and edit data on a webpage. Paging, selecting, and editing of the GridView is achieved by declaratively adding properties to the markup of the GridView. This adds link buttons to the data rows of the GridView. You have to click on one of the link buttons to delete or edit a row. One feature I missed is the ability to use these features via keyboard shortcuts.

To achieve that, I developed an ASP.NET 2.0 AJAX Extensions Extender Control for use with ASP.NET 2.0 GridView on ASP.NET 2.0 AJAX enabled web pages.

GridViewKeyboardExtender_src

Click here for details ......

GridView Paging using ASP.NET AJAX Slider Extender

As given in the ASP.NET AJAX Toolkit documentation “The Slider extender allows to upgrade an asp:TextBox to a graphical slider that allows the user to choose a numeric value from a finite range.” In this article, we will explore how to implement paging in an ASP.NET GridView using an ASP.NET AJAX SliderExtender.
Note: Visual Studio 2008 is using and thereby utilizing the ASP.NET AJAX plumbing that comes along with it.

Click here for details .......

Monday, June 8, 2009

Freeze ASP.NET GridView Headers by Creating Client-Side Extenders

Lately We've been working on a pet project where I needed to freeze a GridView header so that it didn't move while the grid records were scrolled by an end user. After searching the Web we came across a lot of "pure" CSS ways to freeze a header. After researching them more they tend to rely on a lot of CSS hacks to do the job and require HTML to be structured in a custom way. We also found a lot of custom GridView classes (another one here), and more.

Some of the solutions were really good while others seemed a bit over the top and required a lot of custom C# or VB.NET code just to do something as simple as freezing a header. Freezing a header requires CSS and potentially JavaScript depending upon what needs done. Regardless if CSS or JavaScript are used, these are client-side technologies of course. We started to write our own derivative of the GridView class but quickly realized that it made more sense to use the standard GridView control and simply extend it from the client-side. An example of what we were after is shown next:



Click here for details .......

Ajax ModalPopup Extender in Asp.Net GridView Control

This article helps you more to explore the ModalPopup Extender integrated with Asp.Net GridView control. By reading this article, you will understand the way to show dynamic data in the ModalPopup, edit the data in the ModalPopup extender and save it into database by making a postback.

Very interesting article, click here for details .......

Sunday, June 7, 2009

Oracle to SQL Server VB.NET Utility application

This is a small utility application that I wrote to help retrieve data from an Oracle source database, then to create the structure dynamically in SQL Server and perform a Bulk Copy. I put a GUI on top of it so that you can use this to test multiple connections and queries.

This utility performs the following steps:

  1. Retrieves the data from Oracle through a OracleDataReader
  2. Converts the OracleDataReader to a DataTable
  3. Creates the SQL Server Tables based on the DataTable Structure
  4. Performs a SQLBulkCopy of the DataTable into the new SQL Server tables.

Screenshot - screen.jpg

Click here for details ......

C#/VB - Automated WebSpider / WebRobot

















What is a WebSpider

A WebSpider or crawler is an automated program that follows links on websites and calls a WebRobot to handle the contents of each link.

What is a WebRobot

A WebRobot is a program that processes the content found through a link, a WebRobot can be used for indexing a page or extracting useful information based on a predefined query, common examples are - Link checkers, e-mail address extractors, multimedia extractors and update watchers.

Click here for details ......

Saturday, June 6, 2009

Checking Link Validity with ASP.NET

If you have an index of links, it can be important to check that a link really exists before showing it off on your site. Here's a way to do it.

This is really not a difficult proposition. Think about it - all you have to do is try to reach the page, and if you can't reach it, chances are it's not there. ASP.NET provides plenty of network functionality as part of the framework - this is one of the things the framework was designed for, after all - network computing - so why not?

In this case, the class we need to look at is the WebRequest class, a rather aptly named class which allows you to request documents over HTTP or HTTPS. The ASP.NET documentation (which you shoudl have handy, if you don't want to recieve everyone's wrath online) explains it quite well, but here's my example.

First, we set up a little form into which one can enter a URL. Let's pretend this is part of my 'links' section on this site. Into this textbox goes the URL, and the form gets submitted. Then, on submission, we simply request the page. Now, if it's successful, there's all manner of things you can do. You could use Regular expression to strip out the title tag and meta tags (this is explained in the ASP section), you could cache the page for later. You could pull all the text and perform analysis on it, like a mini-google to rank the page based on its content. Of course, if the requestisn't successful, then you can reject the link outright, and save yourself from the old dead-link syndrome.

Here's the simple checkURL function which is called on submission.

void checkURL(Object o, EventArgs e)
{

pnlDone.Visible = true;
pnlStart.Visible = false;
WebRequest objRequest = WebRequest.Create(strURL.Value);
lblExists.Text = "Link unchecked";
try
{
WebResponse objResponse = objRequest.GetResponse();
lblExists.Text = "Link exists";
objResponse.Close();
}
catch(WebException ex)
{
lblExists.Text = "Link doesn't exist ";
}
}

Things to note. The first thing to note is that my form is in one asp:panel, and the results are displayed in another, hence I do the show/hide shuffle at the start. Then I request the URL in a try/catch block. If the page is not found, the code will throw a WebException, which will usually in this context be a ProtocolError exception, though we're not concerned with that in this simple code. IF the exception is thrown, we tell the user. If it's not, well, we can go on to add the link to our database, carrying out whichever operations we want to on the way. Very simple, eh?

This article was inspired by a recent thread on ASP.NET, as a number of coming articles will be. These articles won't be long on content, but you can be sure the answers will be relevant to real-world problems, so keep checking back for some solutions inspired by real people.

How To Generate PDF Files Dynamically Using ASP.NET

There are currently many ways to generate PDF files dynamically. The most widely known way is to use ASP together with Acrobat Full Version (4.0 or 5.0) and Acrobat FDF Toolkit.

With Microsoft .NET many developers are wondering about how to use ASP.NET instead of ASP to tackle this same situation. To my surprise I could not find any related documentation from Adobe.

I asked this question in many forums and no one had an answer for me. I had to roll up my sleeves and to my surprise--it's not so difficult. Now, I will make it even easier for all of you.

Click here for details ......

Friday, June 5, 2009

LINQ Code generator

Introduction

LINQ code generator is simple application which generates SQl based LINQ codes by taking some inputs. As LINQ is new to many developers This basic generator is used to generate and test basic Sql based LINQ codes in less than Minutes.

Background

as i started working on LINQ,I came to a very strong conclusion that LINQ has great future.But found it needs more changes still to be done by microsoft.

Click here for download .....

Running ASP.NET websites outside of IIS

Ever come across the need to demo your ASP.NET website on a PC that didn't have IIS installed or access to the internet? OK here is a simple application that can do exactly that. Using the internal web server that Visual Studio uses to run and debug websites could also be used outside Visual Studio to run your web sites on it.

However there are many more uses for the internal web server that is included in Visual Studio if you can think of it.

Click here for details .....

Session Vizualizer for Visual Studio 2005

The purpose of this tool is to let developers easily analyze Session content during debugging and also browse stored objects. For this, a simple interface was built, and a PropertyGrid control is used. In large web applications, there are situations when developers leave old objects stored in the Session, and these are disposed only when the session in ended. Using this tool, it is easy to see the Session content and improve the code that manages Session content.

Click here for details .....

Wednesday, June 3, 2009

RequiredIfValidator - Extending from the BaseValidator class



When writing ASP.NET pages that need to be validated before submission, I find myself coming across controls that only need to be validated if another control contains a particular value. A classic example of this is an "If other, please specify" field. Typically, you'll have a combobox that contains a list of choices, and at the end of the list is an "Other" item. If the user chooses "Other", you'd like them to specify exactly what "Other" means.

Click here for details .......

Generate an Image with a Random Number

We need to check if it is a real person who is registering on our Web site. So we decided to generate an image with a random code, hidden for robots, and feed it to the browser instead of a page response. We show it in our registration form, and let the user enter the code to check it.

Click here for details .....

Tuesday, June 2, 2009

Generic Search Web User Control with event



This control provides a functionality to search a table based on the name column. The user interface uses DataGrid to display the records and the control fires an event trapped by the container to process the request.

Click here for details .....

Web Page Source Transmitter: Get The Page As The Customer Sees It

Web applications without bugs - it is a myth.

Every developer has many problems when he should reproduce a customer's bug. Usually, the customer cannot provide enough information about conditions before an exception (field values he entered; page which was opened before an exception, etc.).

It will be very useful if the application can produce (restore) the source of the opened web page with the data entered, as it was before an exception and store it (e.g. into a database). In this case, the developer can get the source of the page (e.g. from the database), put it to an HTML file and open it in a browser. The developer will get a copy of the page as it was before the exception.

Click here for details ......

Displaying Collapisble Data in GridView

The code is intended to make a high performance GridView that has minimum postback operations, as well as has a collapsible client-side feature to show additional details for a row.

Click here for details .....

Monday, June 1, 2009

PleaseWaitButton ASP.NET Server Control



It is often useful upon a form submission in a web application to display a "please wait" message, or animated .gif image, particularly if the submission process lasts a few seconds or more. The application inserts the uploaded data from the spreadsheets into a database. The upload/insert process may only take a few seconds, but even a few seconds on the web is a noticeable wait.

When testing, some users clicked the upload button repeatedly; it was useful to provide a visual clue that the upload was underway. For that matter, it was useful to hide the upload button altogether, preventing multiple clicks. The control presented here, a subclass of the Button control, demonstrates how client-side JavaScript code encapsulated in an ASP.NET server control can provide such functionality conveniently.

Click here for details ......

Sunday, May 31, 2009

ASP.NET File Uploader with Overwrite Message

This ASP.NET application is a file uploader dialog box that can be called from classic ASP. It is designed for use in an intranet site. The file uploader displays an overwrite warning as a popup or a warning message. The overwritten file is archived with a time stamp appended to the filename. Checking if the file already exists turned out to be the biggest obstacle. The FileExists Java function uses an ActiveX control that causes browser security warnings. The workaround was to access a code-behind routine by calling AJAX Web Services.





Click here for details .....

Roll your own ASP.NET Chart Control

Have you ever wanted to build a custom web control, but lost confidence once you started to navigate the MSDN information ocean? Ever wanted to build a web control only to find out that you don't know where to start and worse yet there are no comprehensive examples available on the internet? If you have faced any or all of these situations, sit back and relax! Throughout this article I will detail the major "gotchas" relating to building a custom web control and deploy it to your web application.



Click here for details ......

Friday, May 29, 2009

Navigation Web User Control

Navigation Web User Control Derived from WebControl (dll). It creates navigations buttons at run time so the user can navigate on the data list or any other controls. The developer can change the alignment and separation text between links or show and hide first, last, previous and next links. This control gets his style from its container the developer just need PageIndexClick event to type his code when the page clicked and set paging count in page load.

Click here for details .....

Thursday, May 28, 2009

Implementing Tab Navigation with ASP.NET 2.0

One of the most basic ways to navigate within an application is by use of a tab control. Tabs are easy to use and users are very familiar with them. There have been many implementations of tab controls for Web applications, but they had often required advanced client-side script that was only supported in a few browsers, or they required extensive and confusing server-side include files. ASP.NET 2.0 provides a few things that make this easier to do with no dependency on functional code. In this article I'll show you how you can use the new features of ASP.NET 2.0 to easily create a tab control for your Web application.

Click here for details .....

Google Maps! AJAX-Style Web Development Using ASP.NET

There are three goals in this article. First, to provide a high-level overview of AJAX-style applications. Second goal is to provide a detailed description of asynchronous callback features of ASP.NET 2.0. Finally, to provide an insight into upcoming enhancements of tools and frameworks for building AJAX-style applications.

Click here for details ......

Wednesday, May 27, 2009

Simple ASP.NET 2.0 Tips and Tricks that You May (or may not) have Heard About

ASP.NET 2.0 is an awesome framework for developing Web applications. If you've worked with it for awhile then that's no secret. It offers some great new features that you can implement with a minimal amount of code. I wanted to start a list of some of the most simple (yet cool) things you could do with it that required little or no C#/VB.NET code. If you have other suggestions add a comment and I'll update the list if the suggestion is a simple task that can be applied easily.

Click here for details ......

Tip/Trick: Url Rewriting with ASP.NET

People often ask for guidance on how they can dynamically "re-write" URLs and/or have the ability to publish cleaner URL end-points within their ASP.NET web applications.

This post post summarizes a few approaches you can take to cleanly map or rewrite URLs with ASP.NET, and have the option to structure the URLs of your application however you want.

Click here for details ......

.Net Framework 4.0: System.Linq.Parallel

.Net Framework 4.0 has parallel computing extensions for LINQ. Previously it was possible to download parallel extensions for LINQ separately from CodePlex. Of course, you can still use these extensions if you have older version that 4.0. I wrote a little, simple and pretty pointless example that illustrates how parallel queries work in .Net Framework 4.0.

Click here for details ......

Thursday, May 21, 2009

CSS Control Adapter Toolkit for ASP.NET 2.0

Tired of having elements rendered by the built-in ASP.NET server controls and wishing you could use a pure CSS solution instead? Read on...

Today we published the CSS Control Adapter Toolkit for ASP.NET. This toolkit provides information about how the ASP.NET 2.0 Control Adapter Architecture works, as well as a set of 5 sample control adapters (with full source that you can optionally tweak/modify) that provide CSS friendly adapters for 5 of the built-in ASP.NET controls (specifically: Menu, TreeView, DetailsView, FormView and DataList).

You can download this release for free from here, and immediately begin using it in your ASP.NET 2.0 sites today.

Click here for details .......

What is a Model View Controller (MVC) Framework?

MVC is a framework methodology that divides an application's implementation into three component roles: models, views, and controllers.

  • "Models" in a MVC based application are the components of the application that are responsible for maintaining state. Often this state is persisted inside a database (for example: we might have a Product class that is used to represent order data from the Products table inside SQL).
  • "Views" in a MVC based application are the components responsible for displaying the application's user interface. Typically this UI is created off of the model data (for example: we might create an Product "Edit" view that surfaces textboxes, dropdowns and checkboxes based on the current state of a Product object).
  • "Controllers" in a MVC based application are the components responsible for handling end user interaction, manipulating the model, and ultimately choosing a view to render to display UI. In a MVC application the view is only about displaying information - it is the controller that handles and responds to user input and interaction.

Click here for details ......

Saturday, May 16, 2009

ASP.NET Ajax Grid and Pager

Today, learn how to create a custom AJAX Grid and Pager with the Microsoft ASP.NET AJAX platform.

Introduction

This article will show you how to create an AJAX Grid and a generic pager, which mimics the built-in GridView control on the client side.

Features

The Control(s) Provides:

  • Able to bind to any web service call that returns an array.
  • A GridView like API on the client side.
  • Able to AutoGenerate Columns based upon the dataSource.
  • Support for Sorting and Paging where developer can spawn his/her own logic.
  • Full VS Design Time Support.
  • Supports Column Drag and Drop.
  • Compatible with all major browsers including IE, Firefox, Opera and Safari.
Visit for more details ......

Create An Ajax Style File Upload

In this post, you will find that how to create Ajax like version of the file upload.

1.


2.


3.


Visit for more details .....

Tuesday, May 12, 2009

Sending attachment with an email from fileupload control

VB.NET

If FileUpload1.HasFile Then

Dim toAddress As String = "you@yourprovider.com"
Dim fromAddress As String = "you@yourprovider.com"
Dim mailServer As String = "smtp.yourprovider.com"

Dim myMailMessage As MailMessage = New MailMessage()

myMailMessage.To.Add(toAddress)
myMailMessage.From = New MailAddress(fromAddress)
myMailMessage.Subject = "Test Message"

Dim fileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
Dim myAttachment As New Attachment(FileUpload1.FileContent, fileName)
myMailMessage.Attachments.Add(myAttachment)

Dim mySmtpClient As New SmtpClient(mailServer)

mySmtpClient.Send(myMailMessage)

End If

Sunday, May 10, 2009

Create Dynamic Image with Text

To avoid the spamming and to prevent hacking from your web forms, i am letting you to find out to create dynamic image with text. You can use it as CAPTCHA on your web forms.

Visit the place for details ......

Convert an Excel XLS file to PDF

There are many times when developer needs to convert their files into the another format like excel, pdf, xml, word, etc. The following tip would let you find out that how to convert an excel file into the pdf format. See the below code:

C#

// Saving an XLS file in Aspose.Pdf xml format
Workbook wb = new Workbook();
wb.Open("C:\\book1.xls);
wb.Save("C:\\xls2pdf.xml", FileFormatType.AsposePdf);

// Converting XLS file to PDF through Aspose.Pdf using Aspose.Pdf xml file as a medium
Aspose.Pdf.Pdf pdf = new Aspose.Pdf.Pdf();
pdf.BindXML("c:\\xls2pdf.xml", null);
pdf.Save("C:\\xls2pdf.pdf");

VB.NET

' Saving an XLS file in Aspose.Pdf xml format
Dim wb as Workbook = new Workbook()
wb.Open("C:\book1.xls)
wb.Save("C:\xls2pdf.xml", FileFormatType.AsposePdf)

' Converting XLS file to PDF through Aspose.Pdf using Aspose.Pdf xml file as a medium
Dim pdf as Aspose.Pdf.Pdf = new Aspose.Pdf.Pdf()
pdf.BindXML("c:\\xls2pdf.xml", null)
pdf.Save("C:\xls2pdf.pdf")

FusionCharts Free v2.1 - Free Flash Charts

FusionCharts Free is a flash charting component that can be used to render data-driven & animated charts for your web applications and presentations.

It is a cross-browser and cross-platform solution that can be used with PHP, Python, Ruby on Rails, ASP, ASP.NET, JSP, ColdFusion, simple HTML pages or even PowerPoint Presentations to deliver interactive and powerful flash charts. You do NOT need to know anything about Flash to use FusionCharts. All you need to know is the language you're programming in.

Click here to get it now ......

Simple NumericTextBox Web custom control

Just a simple textbox control which allows only integer input using client-side javascript code. it also provides a property of type int, so that setting and getting the value of control can be made much easier.

Click here to get it ......

Three Tier Code Generator For ASP.NET

The 3-Tier Code Generator is a wonder tool that will help developers to code within minutes a simple module to add, update records in the table. At the same time it keeps the best practices and industry standards in mind. It exploits the object oriented features of .NET.

Click here for details .....

Saturday, May 9, 2009

DropDown and MultiselectDropDown Controls for ASP.NET


This article discusses about two user controls written in ASP.NET. Working on a project recently, I needed to develop a custom DropDown control with multiselect options in the form of CheckBox. I searched around for something simple, yet useful for my needs, and I wasn't able to find anything, so I developed my own control. Later, I reused the code to create a regular DropDown control (no multiselect checkbox options). The two controls can be merged into one, but I might do that at a later stage. On to the controls.

Click here for details ......

Friday, May 8, 2009

Tuesday, May 5, 2009

Switching Between HTTP and HTTPS Automatically

Let's face it. Providing sensitive information on a Web site is a risk. Many visitors will not give out that kind of data even if they see that the Web site claims security. Many more will certainly not reveal their personal details if the warm-and-fuzzy closed padlock isn't visible in their browser window.

See the What's New section for the latest updates.

Sunday, May 3, 2009

Hierarchical Data Using the GridView Control



This article presents a control which displays hierarchical data using the ASP.NET GridView control. This extension of the GridView control can also be used to display extended data details for a data row.

Click here for details .......

Versions of the .NET Framework and the IIS6 Application Pools

When a new version of any technology appears, there are always new rules to be considered.

As part of my job as a Web Administrator, I used to test the new web technologies on Testing Environment before applying it on the real one. Microsoft has made the .NET Framework starting with Version 1.0 followed by v1.1 and now there are new releases v2.0 and v3.0. Microsoft gave them the ability to run together on the same server at the same time.

Click here for details ......

Saturday, May 2, 2009

ASP.NET AJAX Extender for multicolumn drag and drop


This open source AJAX Web Portal, www.dropthings.com, has an ASP.NET AJAX Extender which provides multi-column drag and drop for widgets. You can see similar drag and drop behavior in commercial AJAX Start Pages like Pageflakes. The Extender allows reordering of content on the same column and drag and drop content between columns. It also supports client-side notification so that you can call a web service and store the position of the content behind the scene without producing (async) postback.

Click here for details .......

Thursday, April 30, 2009

CAPTCHA Image

CAPTCHA stands for "completely automated public Turing test to tell computers and humans apart." What it means is, a program that can tell humans from machines using some type of generated test. A test most people can easily pass but a computer program cannot.

You've probably encountered such tests when signing up for an online email or forum account. The form might include an image of distorted text, like that seen above, which you are required to type into a text field.

Click here for details ......

Free CAPTCHA ASP.NET Server Control

Key features of Mondor's Captcha ASP.NET 2.0 Server Control:
  • Ability to set any size for your captcha
  • Set alphabet and string length
  • Set the level of noise and line noise
  • Timer to make your captcha obsolete after specified period of time
  • Set various fonts for your captcha
Click here for details .....

Wednesday, April 29, 2009

ListView Header Sort Direction Indicators

The ASP.NET version 3.5 ListView provides developers with a much needed breath of fresh air with respect to simplifying HTML complexity when a data bound grid control is needed. The ListView enables developers to have full control over generated HTML, yet have simplified data binding, custom paging, and column sorting features.



While column sorting is provided with ListView, a clear indication as to which column has been most recently sorted is not provided. There are many techniques on the Internet for providing DataGrid and GridView column sort indicators. The purpose of this posting is to provide a custom control for providing a ListView column sort indicator.

Click here for details .....

Please Wait Button ASP.NET Server Control

It is often useful upon a form submission in a web application to display a "please wait" message, or animated .gif image, particularly if the submission process lasts a few seconds or more. I recently developed a survey submission application in which internal users upload excel spreadsheets through a web page. The application inserts the uploaded data from the spreadsheets into a database.

The upload/insert process may only take a few seconds, but even a few seconds on the web is a noticeable wait. When testing, some users clicked the upload button repeatedly; it was useful to provide a visual clue that the upload was underway. For that matter, it was useful to hide the upload button altogether, preventing multiple clicks. The control presented here, a subclass of the Button control, demonstrates how client-side JavaScript code encapsulated in an ASP.NET server control can provide such functionality conveniently.

Click here for details ......

Web 2.0 AJAX Portal using jQuery, ASP.NET 3.5, Silverlight, Linq to SQL, WF and Unity

Dropthings – my open source Web 2.0 Ajax Portal has gone through a technology overhauling. Previously it was built using ASP.NET AJAX, a little bit of Workflow Foundation and Linq to SQL. Now Dropthings boasts full jQuery front-end combined with ASP.NET AJAX UpdatePanel, Silverlight widget, full Workflow Foundation implementation on the business layer, 100% Linq to SQL Compiled Queries on the data access layer, Dependency Injection and Inversion of Control (IoC) using Microsoft Enterprise Library 4.1 and Unity. It also has a ASP.NET AJAX Web Test framework that makes it real easy to write Web Tests that simulates real user actions on AJAX web pages. This article will walk you through the challenges in getting these new technologies to work in an ASP.NET website and how performance, scalability, extensibility and maintainability has significantly improved by the new technologies. Dropthings has been licensed for commercial use by prominent companies including BT Business, Intel, Microsoft IS, Denmark Government portal for Citizens; Startups like Limead and many more.

Click here for details ......

Tuesday, April 28, 2009

Dragging and dropping with ASP.NET 2.0 and Atlas

This tutorial is intended to help readers understand how certain aspects of Microsoft's new AJAX Extensions technology works. AJAX Extensions is intended to simplify the development of AJAX-style functionality. As with all technologies, however, to use a tool well, it is important to understand the underlying technology that Atlas abstracts. One of the key ASP.NET AJAX abstractions is the new XML markup syntax developed to make coding with AJAX easier (originally included with the core Atlas files, XML markup is now a part of the CTP called AJAX Futures). With XML markup, developers can modify their code declaratively.

However, there are times when a developer may want to be able to change her code programmatically, and in order to accomplish this, she will need to understand that underneath the markup abstraction, she is actually dealing with good 'ol JavaScript and some custom JavaScript libraries developed by Microsoft. In order to demonstrate the relationship between the Atlas declarative model and the programmatic model, I will go through a series of examples in which the same task will be accomplished both declaratively and programmatically. I will be demonstrating how to use the PreviewDragDrop library file to perform basic drag-drop operations as well as setting up drop zones.

Click here for details ......