September 2009 - Posts

Web Application Toolkits – V1.0

I think we maybe a bit late to talk about these, nevertheless it is worth mentioning. Recently a week back MS launched the WebsiteSpark initiative and this surely has brought all the buzz in the web world and it surely is catching some spark in a number of forums … I personally feel there is tons of reasons to be excited about. If you want the specifics, feel free to check ScottGu’s blog which has the specifics.

Along with release has also come a number of Web Application Toolkits. 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.

This release gets out 7 Web Application Toolkits based on the various feedbacks from the community. Do try to take a look at each of them when time permits -

1. 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.

2. 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.

3. 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.

Check out the accompanying screencast.

4. 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.  

Check out the accompanying screencast.

5. 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. 

Check out the accompanying screencast.

6. 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. 

Check out the accompanying screencast.

7. 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.

Check out the accompanying screencast.

You can find the complete list of Web Application Toolkits here. Feel free to subscribe to the Web Application Platform Team Blog and twitter account.

MapPoint Add-in for SQL Server 2008

It has been close to a month of the release and I have been wanting to drop a line on this. The MapPoint 2009 Add-in for SQL Server 2008 capitalized on the spatial data that come out-of-box with SQL Server and integrates with the maps. More about it is over the homepage I have shared.

You can get various views of its integration and get amazing views like a heat-map or button locate or analyze environment data etc. An intro video of this integration of MapPoint and SQL Server is available. For folks who are yet to get an idea of MapPoint, do visit the MapPoint HomePage for some details. Fundamentally it integrates maps, demographics and geographical data into your business solutions. This add-in is just an entry level mapping solution and you will see a lot more work happening here in the future too. BTW, it works with MapPoint North America or MapPoint Europe only for now. Some of the salient features for me are:

1. Can use the local store of MapPoint hence network is not an mandate.

2. Seamlessly integrates with SQL Server 2008 spatial datatype – natively.

3. Support for ESRI and MIF file imports available

You can download the add-in from Downloads site. I also recommend reading the Spatial Storage topic on SQL Server 2008 BOL to efficiently and effectively use these capabilities.

Estimated Vs Actual rows

I have seen this as a constant struggle to understand even when people come to the performance labs in our environments. Today I got a chance to read this post from Gail Shaw on Estimated rows, actual rows and execution count which are all a common areas of confusion. Gives a very good indicator to what to lookout for …

Visual Web Developer Express Videos

Using Express edition is something I recommend a lot in my sessions. But a number of times people ask do we really have easy to learn videos … Well, with all the web-technologies hype here are a number of too good video’s that you can use from the ASP.NET site.

Intro to Visual Web Developer
IntelliSense
Intro to Web Forms
Page Layout
Page Lifecycle Events
Intro to ASP.NET Controls
Submit and Postback
Application Level Objects
Session Level Objects
Debugging
CSS
MasterPages
An Introduction to SOAP Based Web Services with Visual Web Developer 2008
AJAX Style Services with Microsoft Visual Web Developer 2008
Validation
Login Controls

Have fun and do feel free to comment if you like the same.

Sizing Tools with SQL Server?

I have seen a number of people ask me if there are tools and easy way to do sizing esp when working with SQL Server. I was browsing through the HP site and bumped into these cool resources which I felt is worth sharing. You might find a similar set of resources with other Hardware vendors too … But here is the starter links:

Business Intelligence Sizer for Microsoft SQL Server

Best practices for Microsoft SQL Server 2005 for Very Large Database (VLDB) BI solutions

OLTP Sizer for Microsoft SQL Server 2005/2008

These were some of the bookmarks I made and sharing. There are tons of others which can also help our readers and I request you folks to write a comment and your experiences.

Service Broker – Bookmarker

Since SQL Server 2005 this feature of Service Broker has been in the outside world but in my opinion is an underutilized feature. In SQL Server 2008 the capabilities atleast from a UI has been addressed partially via the Management Studio which was one of the biggest drawback for using this feature. 

Quick Intro - Service Broker provides queuing, scalable and reliable messaging for inside SQL Server. Service Broker is used both for applications that use a single SQL Server instance and applications that distribute work across multiple instances. It is completely an asynchronous programming model which reduces the response time back to the application rather than getting blocked ... For highly throughput systems this sort of reliable delivery and speed is very essential. There are multiple advantages of Service Broker when compared to other solutions like MSMQ, let me outline couple of them for you -

  1. Message ordering and coordination simplified
  2. Loose application coupling provides workload flexibility
  3. Related message locking allows more than one instance of an application to process messages from the same queue without explicit synchronization
  4. Automatic activation allows applications to scale with the message volume

and many more …

I thought of pointing you some of the awesome resources on SB from the product team already online.

SQLServer SSB Team Blog - http://blogs.msdn.com/sql_service_broker/

Remus' blogs - http://rusanu.com/blog/

Service broker waitytpes

http://blogs.msdn.com/sql_service_broker/archive/2008/12/01/service-broker-wait-types.aspx

Securing dialogs with certificates

http://blogs.msdn.com/sql_service_broker/archive/2008/08/26/securing-a-dialog-with-certificates.aspx

http://blogs.msdn.com/sql_service_broker/archive/2008/06/10/a-simple-secure-dialog-with-certificates.aspx

Poison Messages

http://blogs.msdn.com/sql_service_broker/archive/2008/06/30/poison-message-handling.aspx

Fire and forget

http://rusanu.com/2006/04/06/fire-and-forget-good-for-the-military-but-not-for-service-broker-conversations/

Reuse conversations

http://rusanu.com/2008/11/05/reusing-conversations-a-better-mouse-trap/

http://blogs.msdn.com/sql_service_broker/archive/2008/07/25/reusing-dialogs-with-a-dialog-pool.aspx

Recycle conversations

http://rusanu.com/2007/05/03/recycling-conversations/

Resending messages

http://rusanu.com/2007/12/03/resending-messages/

Troubleshooting dialogs

http://rusanu.com/2005/12/20/troubleshooting-dialogs/

http://rusanu.com/2007/11/28/troubleshooting-dialogs-the-sequel/

Error handling

http://rusanu.com/2007/10/31/error-handling-in-service-broker-procedures/

http://rusanu.com/2008/08/13/error-handling-and-activation/

Fast data push

http://blogs.msdn.com/sql_service_broker/archive/2008/08/12/fast-data-push-tuning.aspx

Using multiple routes in service broker

http://blogs.msdn.com/sql_service_broker/archive/2008/07/14/using-multiple-routes-in-service-broker.aspx

Periodic tasks

http://blogs.msdn.com/sql_service_broker/archive/2008/06/26/service-broker-periodic-tasks.aspx

Replacing certificates near expiration

http://rusanu.com/2008/11/26/replacing-service-certificates-that-are-near-expiration/

Query Notification (SqlDependency)

http://rusanu.com/2006/06/17/the-mysterious-notification/

http://rusanu.com/2007/11/10/when-it-rains-it-pours/

http://rusanu.com/2008/01/04/sqldependencyonchange-callback-timing/

Alter database set enable broker

http://rusanu.com/2006/01/30/how-long-should-i-expect-alter-databse-set-enable_broker-to-run/

Writing service broker stored procedures

http://rusanu.com/2006/10/16/writing-service-broker-procedures/

Reusing dialogs with a dialog pool

http://blogs.msdn.com/sql_service_broker/archive/2008/07/25/reusing-dialogs-with-a-dialog-pool.aspx

Other MSDN resources that are also useful are -

Overview - An Introduction to SQL Server Service Broker  -  http://msdn2.microsoft.com/en-us/library/ms345108.aspx

Links to Service Broker Architecture and Implementation - http://msdn2.microsoft.com/en-us/library/ms166043.aspx

Service Broker Tutorials - http://msdn2.microsoft.com/en-us/library/bb839489.aspx

Online Video Training

MSDN Webcast: Introducing Service Broker in SQL Server 2005—Level 200

http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&EventID=1032263311

http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?EventID=1032289816&EventCategory=5&culture=en-US&CountryCode=US

Lastly, the Technet Site http://technet.microsoft.com/en-us/sqlserver/bb671396.aspx has several white papers, books, and blogs on Broker.

ZoomIT V4.0 from SysInternals

I do a lot of these presentations and many times I use some zomming tools to show the code and explain the concepts. And a number of times people have come back to me asking what that tool was …

image

No rocket science :) … I have been using ZoomIT from Sysinternals for ages and I still love using them because of the simplicity and the ease at which I can turn them on. Few weeks back I got to see the updated version of the same online from Mark. The photo maybe shows some of the capabilities for me to use Arrows to point at a text, create rectangles or circles to highlight certain sections and best part is I can also write free text easily in this Zoomed size. Press ESC and everything else vanishes and we are back to normal view. Awesome tool and I highly recommend.

Testing from Windows Live Writer

How cool is to use the Windows Live writer. Testing to see if it will also display pictures without any problems :)

windows_7_aura_by_windowsnetAre we good here … I just rebuild my machine with Win7 + SQL Server 2008 + Office 2010 all x64 version. And it really rocks !!!

P&P Developing SharePoint Applications V2 Released

Developing SharePoint Applications guidance integrates new guidance with the original release, SharePoint Guidance – November 2008, into a single download. The guidance contains the following components:

SharePoint Guidance Library

A set of reusable components that helps developers manage configuration, build repositories for SharePoint lists, log traces and events, and use service location.

Guide    

The documentation includes a variety of topics, such as how to use design and application patterns, how to integrate LOB systems with SharePoint applications, building scalable applications, upgrading SharePoint applications, and using SharePoint capabilities to create, and deploy content. It also includes the design decisions made for the Partner Portal and Training Management applications and explanations of their implementations.

Contoso Partner Portal Reference Implementation

This SharePoint application shows how Contoso created an extranet where it can interact with its partners. Among the items demonstrated are techniques for building manageable and scalable enterprise applications, and how to incorporate publishing and page composition features, flexible navigation, collaboration sites, and LOB integration. It includes more advanced techniques than the Training Management reference implementation and requires Microsoft Office SharePoint Server 2007 with Service Pack 1 or Service Pack 2.

Contoso Training Management Reference Implementation

This SharePoint application illustrates how the Contoso Human Resources department manages its training course offerings. It shows how to solve many basic SharePoint challenges that you might encounter when you develop your own applications. Windows SharePoint Services 3.0 is required. 

Click here to download this release. What I love about this release is the capability it exposes the way we can connect to LOB from Sharepoint to improve process, extend information, enhance structural business processes via the rich collaboration mechanism. Also in this release you will see how security need to be considered into business process and how to create collaborative sites that help manage business events like incident escalations and order exceptions.

Springboard Virtual Roundtable - Sept 24 - Windows 7 AppCompat Part 2: Virtualization

This session comes directly from the heart of the most respected person on the planet for me "Mark Russinovich". No one can talk as authentic and as deep technical than this man. Dont miss the action as you are sure to get lot of fireworks and great amount of detail on Windows 7. Details for the event are –

Date:  Thursday, September 24

Time:  9:00am Pacific Time

https://ms.istreamplanet.com/springboard

Abstract: Hear from a panel of experts how virtualization tools can help you with application compatibility concerns whether you're migrating from Windows Vista or Windows XP. Join us to discuss how presentation virtualization, desktop virtualization and application virtualization can reduce testing times, expedite deployment and ultimately help you streamline PC management. We'll cover the latest desktop virtualization technologies from Microsoft, including App-V, MED-V and XP Mode for Windows 7. Plus we share tips and tricks and demonstrate free tools to analyse and fix applications while answering your questions live during the event.

Join live on Thursday, September 24th, 2009, 9:00am Pacific Time. Missed Part 1? Watch the replay.

For IT Pro tips, tricks and resources for Windows 7, visit the Springboard Series.

Windows Cache Extension 1.0 for PHP - Beta release

Today IIS team has released the beta of the Windows Cache Extension 1.0 for PHP. The Windows Cache Extension for PHP is a PHP accelerator, which is used to increase the speed of PHP applications running on the Windows operating systems. Any PHP application can take advantage of the functionality provided by the Windows Cache Extension for PHP without any code modifications. All that is required is that the extension is enabled and loaded by the PHP engine.

Download the same from -

Windows Cache Extension 1.0 for PHP 5.2 - Beta

Windows Cache Extension 1.0 for PHP 5.3 - Beta

Follow the instructions at "Using Windows Cache Extension for PHP" to install, enable and configure the extension.

Note:

  • The extension can only be used with non-thread-safe builds of PHP
  • The extension can only be used when IIS is configured to run PHP via FastCGI
  • The Windows Cache Extension 1.0 for PHP 5.3 can only be used with the x86 VC9 build of PHP 5.3.

Benefits and Features

The extension includes three caches that can be enabled or disabled independently of each other:

  • PHP opcode cache - PHP is a script processing engine, which reads an input stream of data that contains text and/or PHP instructions and produces another stream of data, most commonly in the HTML format. This means that on a web server the PHP engine reads, parses, compiles and executes a PHP script each time that it is requested by a Web client. The reading, parsing and compilation operations put additional load on the web server's CPU and file system and thus affect the overall performance of a PHP web application. The PHP bytecode (opcode) cache is used to store the compiled script bytecode in shared memory so that it can be re-used by PHP engine for subsequent executions of the same script.
  • File cache - Even with the PHP bytecode cache enabled, the PHP engine has to accesses the script files on a file system. When PHP scripts are stored on a remote UNC file share, the file operations introduce a significant performance overhead. The Windows Cache Extension for PHP includes a file cache that is used to store the content of the PHP script files in shared memory, which reduces the amount of file system operations performed by PHP engine.
  • Relative file path cache - PHP scripts very often include or operate with files by using relative file paths. Every relative file path has to be converted to an absolute file path by the PHP engine. When a PHP application uses many PHP files and accesses them by relative paths, the operation of resolving relative paths to absolute paths may negatively impact the application's performance. The Windows Cache Extension for PHP provides a relative rile path cache, which is used to store the mappings between relative and absolute file paths, thereby reducing the number of relative path resolutions that the PHP engine has to perform.

More information

Releases from P&P in 2009

I have been an advocate of the releases from time-to-time as I hear of them over this blog. But I thought I will consolidate the same in one post of all the releases made till date on P&P (Patterns and Practices Team) for your quick reference.

  • Enterprise Library v4.1 is a collection of reusable software components that help developers with common development needs such as logging, validation, data access, and exception handling. They can be used "as is" or extended or modified by developers as needed.
  • Unity Application Block v1.2 is a lightweight extensible dependency injection container with support for constructor, property, and method call injection. It addresses the issues faced by developers engaged in component-based software engineering.
  • Composite Application Guidance for WPF ("PRISM") v1.0 and v2.0 helps developers build and evolve modular Windows Presentation Foundation and Silverlight client applications. These applications typically include multiple screens and role-determined behaviour and are designed to change over time based on business requirements.
  • Application Architecture Guide v2.0 provides design-level guidance for the architecture and design of applications built on the .NET Framework. It focuses on the most common types of applications, partitioning application functionality into layers, components, and services, and walks through their key design characteristics.
  • ESB v2.0 helps developers leverage the Microsoft BizTalk Server platform to build a custom enterprise service bus (ESB) for their SOA implementations.
  • SharePoint Development Guidance helps customers accelerate the construction of advanced applications. This guidance helps architects and developers in the following areas: Use SharePoint capabilities to make more powerful applications; Build applications that are easier to scale, maintain and extend; Improve application quality through testing; Improve and accelerate team productivity;
    • How to Plan for Acceptance Testing
    • What Kinds of Acceptance Tests to Run
    • How to Create and Run Acceptance Tests
    • Defining What "Done" Means and
    • How to Justify Your Approach
  • p&p Agile Showcase on MSDN patterns & practices has been using agile development techniques for the past five years. Customers and community asked us to share our experiences and learning. This page lists resources that we've used to make our teams more successful.

Hope you will find these useful and in my engagement with various customers I have seen a lot of them using bits and pieces from the P&P framework.

Search

Go

This Blog

Tags

Community

Archives

My Web Site

External Sites

Other Misc Blog Links

Newsletter

Syndication

News


  • Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

    Follow me on Twitter: vinodk_sql

    Site Counter: Free Hit Counter