Project DescriptionAjax Web Portal built on Linq, Workflow Foundation and ASP.NET AJAX. Code is in Visual Studio 2008 using .NET 3.0 and .NET 3.5.
Production site
http://dropthings.omaralzabir.comFor latest news and updates, visit my blog
http://msmvps.com/blogs/omar/
Source Code
http://code.google.com/p/dropthings/Book about this project
This book explains how this project has been built step by step. It also explains many advance AJAX concepts, development and production challenges for building and maintaining a high volume production website.
Get it from Amazon:
http://www.amazon.com/Building-Web-2-0-Portal-ASP-NET/dp/0596510500Technologies
- ASP.NET 2.0
- jQuery
- ASP.NET AJAX (.NET 3.5)
- Silverlight
- Linq to Sql
- Linq to Xml
- Workflow Foundation (.NET 3.0)
- Visual Studio 2008 and SQL Server 2005
Features
- Configure widgets for specific user roles.
- Configure different default page setup for different roles - Managers get some widgets, Employees get different widgets and so on.
- Ability to define page setup for anonymous users and different page setup for logged in users.
- Multiple Tabs.
- Customizable Widget Gallery.
- Different column setup.
- Build your own widgets using Silverlight, ASP.NET or plain Javascripts.
- Host widgets on any page of your website
- Easy to integrate Dropthings to your own website e.g. http://myoffice.bt.com is built on top of Dropthings.
- Business Layer is entirely Workflow Foundation driven - easy to plug-in your own business logic as Activities.
Join UsIf you are a seasoned ASP.NET Developer and have ASP.NET AJAX skill, come and join us to make Dropthings a feature rich Ajax Web Portal. Please email me at "OmarALZabir" at gmail dot com.
What is an AJAX PortalA
Portal refers to a page that allows users to customize their own homepage by dragging and dropping
widgets onto the page. This approach gives users complete control over what content they see on their page, where they want to see it, and how they want to interact with it.
A widget is a discrete piece on a Web page that performs a particular function and comes with its own UI and set of features. Examples of widgets include a to-do-list, an address book, a contact list, an RSS feed, or even a clock, calendar, playlist, stock ticker, weather report, traffic report, dictionary, game, or almost anything you can imagine that can be packaged up and dropped on a Web page. In a corporate environment, widgets can connect to internal systems, such as an Expense Tracker widget that interacts directly with the internal Accounting System. If you are familiar with Sharepoint Portal, then you already know about Widgets. They are called Web parts in Sharepoint’s term and also in ASP.NET 2.0.
Portals are powerful RSS aggregation platform. You can put as many RSS widgets as you like on your page and get fresh content delivered to you as soon as it is published. Some Portal like Pageflakes archives RSS for a long time and thus you can go back in time and read older posts, save posts, and forward interesting articles to your friends.
An Ajax-powered portal is specifically a portal that uses Ajax technologies to create richer experiences for its users. It is one step ahead of previous generation portals like My Yahoo or MSN.com, because it gives you state-of-the-art UI that behaves more like a Windows client application -- with widgets, animations, popups, client side data grids, and other effects not usually found on a non-Ajax Web portal .
How to run the project
- Download the latest source code from Google Code site http://code.google.com/p/dropthings/
- Follow the Readme.txt
How is ASP.NET AJAX used in this project?It is an N-tier application, with a user interface (UI) layer, a business layer, and a data access layer. I have used ASP.NET AJAX to implement the UI layer of the portal application which includes the homepage and the widgets’ UI. ASP.NET AJAX provides the framework for loading widgets onto the home page, updating widgets without doing any postbacks (via UpdatePanel), and changing page layout by dragging and dropping widgets on the page. It also provides a rich collection of Control Extenders, that add cool effects like fade in/fade out, smooth transitions, and client side animations . You can add to the rich clientside experience by providing auto-completion behavior on text boxes, asynchronous data loading via webservice calls, and client side paging, sorting and many more.
How is .NET 3.5 used in this projectThe business layer of the application is built with the Workflow Foundation in .NET 3.0 . Major operations like a first-time user visit, a subsequent user visit, adding a new widget, and creating a new page are all orchestrated using workflow . The workflows contain all the business rules and activities needed to complete each operation. For example, the "New User Visit" workflow creates the user account, populates the user profile with default values, creates some default pages, populates them with specific widgets, etc. Such compound operations are very easy to build with Workflows , which enables you to break the complete workflow operation into smaller chunks named Activities. Each Activity does a very small amount of work. It talks to the data access layer and performs the task. The data access layer is built with .NET 3.5 , utilizing LINQ to SQL .
The web project and the widgets make good use of .NET 3.5 by utilizing lambda expressions , LINQ to SQL, and LINQ to XML. You will use Linq queries to work with collections and database rows. Widgets make good use of Linq to Xml in order to consume XML from external data sources.
Warning: Dropthings.com is a very simple, open-source example of what can be done with AJAX and Microsoft technologies. It is intended for educational purposes only. Dropthings.com has absolutely nothing to do with
http://www.pageflakes.com. But this project does a good job to show you how all the new hot technologies work together in a working web application that's production ready.
My Blog
---