Namoskar!!!
The goal for the Web Application Toolkits is to provide Web Developers with resources such as project templates, controls, and code samples along with simplified documentation all in a consistent packaged format that is easy to download and run in a very short period of time. One of the key criteria around the Web Application Toolkits is to enable Web Developers to get to an F5 (Run) experience very quickly to ensure that this is the right solution for their problem; How many times have you heard developers trying for hours to get a sample to work only to find it does not do what they expected. The expectation is that with the correct prerequisites installed using the Web Platform Installer, a Web Developer can have a Web Application Toolkit sample application installed and running in 5mins.
For the Microsoft WebsiteSpark launch, we have released 7 Web Application Toolkits, together with an introduction to the Web Application Toolkits on Channel9 by James Senior and Jonathan Carter. The scenarios were selected based on feedback from community developers with the first 7 being detailed below.
Web Application Toolkit for Internet Explorer 8 Extensibility
Today users can access rich information and services while they are browsing a site; it's not a trivial task to expose this content to the same users when they are not on that site. The goal of this Web Application Toolkit is to leverage the new features in Internet Explorer 8 (Web Slices, Accelerators and Visual Search Providers) to extend the reach of your web site and services also to those users that are not on your site. The Web Application Toolkit includes a set of ASP.NET Web Controls that you can use to take advantage of these IE new features in your own Web application.
Check out the accompanying screencast.
Web Application Toolkit for Bing Search
Bing is a powerful new Decision Engine designed to help consumers accomplish tasks and make faster, more informed decisions. The Bing Application Programming Interface (API) provides developers programmatic access to Bing, offering flexible options for building or enhancing your site or applications. This Web Application Toolkit shows how to take advantage of the Bing API to add search capabilities to your Web site by leveraging the various search results that the Bing API provides, including Web content, images, news and videos, among others. Through this Web Application Toolkit you will also discover how to use ASP.NET AJAX and jQuery to provide an enhanced and more interactive end user experience when using the Bing API.
Web Application Toolkit for REST Services
Many Web applications today are starting to expose data as REST service interfaces, so it can be accessed through APIs by other tiers of the application or even by other applications. A RESTful web service is a simple Web service implemented using HTTP and the principles of REST. REST Services focus on resources; each one is represented by a unique URI, and users interact with them via their URI using the HTTP uniform interface. This Web Application Toolkit shows how to easily add REST service interfaces for an existing Web application. The Web Application Toolkit includes a sample REST service, two sample client applications that access the REST services, one using simple ASP.NET Web Forms and a second Web application using AJAX to asynchronously invoke the REST service and finally a custom project template for Visual Studio to make it very easy to build new REST Services.
Web Application Toolkit for Mobile Web Applications
This Web Application Toolkit is designed to demonstrate how to extend an existing ASP.NET MVC Web application to provide access from mobile devices. To enable mobile access, the Web application should have views targeting each of the mobile devices to be supported. The MVC pattern helps you create applications that separate the different aspects of the application (input logic, business logic, and UI logic), while providing a loose coupling between these elements. This Web Application Toolkit provides a component called MobileCapableViewEngine that enables the Web application to show the appropriate view depending on the device's browser that is performing the request. It also includes a sample site that provides different views for Windows Mobile, IPhone, and Blackberry devices.
Web Application Toolkit for Template-Driven Email
This Web Application Toolkit is designed to demonstrate how to generate and send dynamic, template-based emails from a web application. There are many common scenarios where notification emails need to be sent to end users. Examples of these common scenarios may involve notifying a user of their newly created account, sending a new password in respond to a forgotten password request, or emailing an alert under specific business circumstances, such as the creation of a order. Typically the E-mails sent from a Web application scenario are formatted as HTML, include CSS stylesheets, and images and need to be generated dynamically with custom or user-specific data. This Web Application Toolkit includes samples that show how to use templates to generate these dynamic email bodies.
Web Application Toolkit for making Your Web Site Social
Adding social capabilities to your Web site allows you to attract new users, keep them on your Web site for longer and get them to come back more often. This Web Application Toolkit shows how, using a few lines of code with the Windows Live Messenger Web Toolkit, it is possible to add social capabilities to a Web site with instant messaging from a website to various client endpoints like Windows, Windows Mobile, Xbox 360 and Mac. Behind the scenes is a powerful set of UI Controls and a JavaScript library that connect your website to the Messenger Service which is used by 330 million users around the world.
Web Application Toolkit for FAQs
The majority of web sites have the need to display a list of frequently asked questions to their users. Although it's not difficult to create a simple set of FAQ pages, creating a great user experience that supports searching for FAQs, filtering, and paging, can become more difficult. Furthermore, this is often common functionality that has to be implemented repeatedly in multiple Web sites. This Web Application Toolkit is designed to provide a starting set of code including ASP.NET pages, data access logic, and database schemas, for integrating Frequently Asked Questions into your own ASP.NET MVC Web application.
You can find the complete list of Web Application Toolkits here. With this initial release of 7 Web Application Toolkits, we are just getting started. We have plans for several more and we are exploring additional ways to make it easier for Web Developers to find and reuse this content.
Another super compilation http://www.hanselman.com/blog/ScottHanselmans2009UltimateDeveloperAndPowerUsersToolListForWindows.aspx
List is quite big!!!
Core Services
Web.config File Minification
Extensible Output Caching
Auto-Start Web Applications
Permanently Redirecting a Page
The Incredible Shrinking Session State
Expanding the Range of Allowable URLs
Extensible Request Validation
Object Caching and Object Caching Extensibility
Extensible HTML, URL, and HTTP Header Encoding
Performance Monitoring for Individual Applications in a Single Worker Process
Multi-Targeting
New Features in ASP.NET AJAX 4
Client Template Rendering
Instantiating Behaviors and Controls Declaratively
Live Data Binding
Using the Observer Pattern with JavaScript Objects and Arrays
The DataView Control
The AdoNetServiceProxy Class
The DataContext and AdoNetDataContext Classes
Refactoring the Microsoft AJAX Framework Libraries
The DOM Ready Event
Using JSONP to Retrieve Cross-Domain Data.
Web Forms
Setting Meta Tags with the Page.MetaKeywords and Page.MetaDescription Properties
Enabling View State for Individual Controls
Changes to Browser Capabilities
Routing in ASP.NET 4
Setting Client IDs
Persisting Row Selection in Data Controls
ASP.NET Chart Control
Filtering Data with the QueryExtender Control
Html Encoded Code Expressions
Project Template Changes
CSS Improvements
Hiding div Elements Around Hidden Fields.
Rendering an Outer Table for Templated Controls
ListView Control Enhancements
CheckBoxList and RadioButtonList Control Enhancements
Menu Control Improvements
Wizard and CreateUserWizard Controls
ASP.NET MVC
Dynamic Data
Enabling Dynamic Data for Existing Projects
Declarative DynamicDataManager Control Syntax
Entity Templates
New Field Templates for URLs and E-mail Addresses
Creating Links with the DynamicHyperLink Control
Support for Inheritance in the Data Model
Support for Many-to-Many Relationships (Entity Framework Only)
New Attributes to Control Display and Support Enumerations
Enhanced Support for Filters
Visual Studio 2010 Web Designer Improvements
Improved CSS Compatibility
HTML and JScript Snippets
JScript IntelliSense Enhancements.
Web Application Deployment with Visual Studio 2010
Web Packaging
Web.config Transformation
Database Deployment
One-Click Publish for Web Applications
Resources
Find at http://www.asp.net/learn/whitepapers/aspnet40/, more whitepapers on ASP.Net can be found at http://www.asp.net/learn/whitepapers/
It has quite a sometime we have been using .NET with System.Threading namespace. So what is new there in Parallel Computing in .NET Framework 4.0 with Visual Studio 2010. There are a lot
Ø Task-based fine grained parallelism
Ø Better debugger feature
Ø Structured Parallelism
Ø Declarative Parallelism
Above all you are getting yourself ready for better tomorrow. Why one should be using fine-grained parallelism not the classic Threading? I feel
Ø Threading still is with OS’s ownership
Ø Very much dependent on number of CPSs. Reason why it is, if you have more Threads than the number of CPUs it will have more context switches. Each Thread requires 1 MB dedicated memory. So more Threads more dedicated memory.
So what is special there in the Task class?
Ø It creates small pieces of work and distributes the work across the CPUs. More CPUs more distribution. Less CPU – no harm.
Ø It has a concept of work-stealing. What that means?
o With the improved CLR Thread Pool it works just like thread. It first creates work in Global Queue. Then passes them to all Worker Processes Local Queue. Till this time it has no difference from System.Threading.
o Now all the Local queue will create there sub Tasks and keeps on working. If one of the Worker Processes is empty they will not sit idle, they will steal the task from others local Queue.
o As well when it passes Task to other Worker Process does not give the last one which is fresh in CPU. Always give the first one so that not enough context switching will not happen.
I will be writing few post on Parallel Computing – keep watching and Happy Weekend.
I thought I will start the series of podcasting. This one is on Dynamic Object of C# 4.0