Description: Introduction
I will show you how I built a start page similar to Google IG in 7 nights using ASP.NET Ajax, .NET 3.0, Linq, DLinq and XLinq. I have logged my day to day development experience in this article and documented all the technical challenges, interesting discoveries and important design & architectural decisions. You will find the implementation quite close to actual Google IG. It has drag & drop enabled widgets, complete personalization of the pages, multi page feature and so on. It s not just a prototype or a sample project. It s a real living and breathing open source start page running at http://dropthings.omaralzabir.com/ which you can use everyday. You are welcome to participate in the development and make widgets for the project.
File list (Check if you may need any files):
Dashboard.bak
Readme.txt
src
...\bin
...\...\AjaxControlToolkit.dll
...\CustomDragDrop
...\..............\CustomDragDrop.csproj
...\..............\CustomDragDropBehavior.js
...\..............\CustomDragDropDesigner.cs
...\..............\CustomDragDropExtender.cs
...\..............\CustomFloatingBehavior.js
...\..............\CustomFloatingBehaviorDesigner.cs
...\..............\CustomFloatingBehaviorExtender.cs
...\Dashboard
...\.........\App_Code
...\.........\........\IWidget.cs
...\.........\........\PhotoInfo.cs
...\.........\........\UserProfile.cs
...\.........\........\WebServiceBase.cs
...\.........\........\WidgetService.cs
...\.........\App_Data
...\.........\App_Themes
...\.........\..........\Default
...\.........\..........\.......\HeaderBack.PNG
...\.........\..........\.......\max_blue.gif
...\.........\..........\.......\max_blue_highlight.gif
...\.........\..........\.......\min_blue.gif
...\.........\..........\.......\min_blue_highlight.gif
...\.........\..........\.......\StyleSheet.css
...\.........\..........\.......\x_blue.gif
...\.........\..........\.......\x_blue_highlight.gif
...\.........\Bin
...\.........\...\AjaxControlToolkit.dll
...\.........\...\CSharp3CodeDomProvider.dll
...\.........\Default.aspx
...\.........\Default.aspx.cs
...\.........\Footer.ascx
...\.........\Footer.ascx.cs
...\.........\Global.asax
...\.........\Header.ascx
...\.........\Header.ascx.cs
...\.........\LoginPage.aspx
...\.........\LoginPage.aspx.cs
...\.........\Logout.ashx
...\.........\vwd.webinfo
...\.........\web.config
...\.........\WidgetContainer.ascx
...\.........\WidgetContainer.ascx.cs
...\.........\Widgets
...\.........\.......\FlickrIcon.gif
...\.........\.......\FlickrWidget.ascx
...\.........\.......\FlickrWidget.ascx.cs
...\.........\.......\RSSWidget.ascx
...\.........\.......\RSSWidget.ascx.cs
...\.........\.......\WidgetTester.ascx
...\.........\.......\WidgetTester.ascx.cs
...\.........\WidgetService.asmx
...\DashboardBusiness
...\.................\Activities
...\.................\..........\AddWidgetOnPage.cs
...\.................\..........\AddWidgetOnPage.Designer.cs
...\.................\..........\AuthorizeActionActivity.cs
...\.................\..........\AuthorizeActionActivity.Designer.cs
...\.................\..........\CallWorkflow.cs
...\.................\..........\CallWorkflow.designer.cs
...\.................\..........\ChangePageNameActivity.cs
...\.................\..........\ChangePageNameActivity.Designer.cs
...\.................\..........\ChangeWidgetInstancePositionActivity.cs
...\.................\..........\ChangeWidgetInstancePositionActivity.Designer.cs
...\.................\..........\CreateDeafultWidgetsOnPageActivity.cs
...\.................\..........\CreateDeafultWidgetsOnPageActivity.Designer.cs
...\.................\..........\CreateDeafultWidgetsOnPageActivity.rules
...\.................\..........\CreateNewPageActivity.cs
...\.................\..........\CreateNewPageActivity.Designer.cs
...\.................\..........\DeleteWidgetInstanceActivity.cs
...\.................\..........\DeleteWidgetInstanceActivity.Designer.cs
...\.................\..........\GetUserGuidActivity.cs
...\.................\..........\GetUserGuidActivity.Designer.cs
...\.................\..........\GetUserPagesActivity.cs
...\.................\..........\GetUserPagesActivity.Designer.cs
...\.................\..........\GetUserSettingActivity.cs
...\.................\..........\GetUserSettingActivity.Designer.cs
...\.................\..........\GetWidgetsInPageActivity.cs
...\.................\..........\GetWidgetsInPageActivity.Designer.cs
...\.................\..........\LoadWidgetActivity.cs
...\.................\..........\LoadWidgetActivity.Designer.cs
...\.................\..........\PushDownWidgetsOnColumnActivity.cs
...\.................\..........\PushDownWidgetsOnColumnActivity.Designer.cs
...\.................\..........\ReorderWidgetInstanceOnColumnActivity.cs
...\.................\..........\ReorderWidgetInstanceOnColumnActivity.Designer.cs
...\.................\..........