NEWS

Friday, July 8, 2011

Reporting Services option grayed out on installing SSRS

I had to add SQL Server Reporting Services to an existing SQL Server 2005 installation. This shouldn't be a big deal. Mount the SQL Server installation image, run the setup and follow the installation wizard to add extra components. Arriving at the step where I should be able to select Reporting Services, the Reporting Services option was grayed out.


 
After some Googling I found out that IIS needs to be installed to be able to install Reporting Services. I opened the Services snap-in and saw that the World Wide Web Publishing service already was installed, but it wasn't running... After starting the service, the Reporting Services option was no longer grayed out. The installer should have been smart enough to give a hint in my opinion, terrible user experience.




So to make a long story short, make sure IIS is installed and that the World Web Web Publishing service is running!

Reporting Services 2005 option is disabled (greyed out) when trying to install on Windows 2008

One of the requirements for Dynamics CRM is installing SQL Server Reporting Services. If you are going to use Reporting Services 2005 on top of Windows Server 2008, when running SQL Server Setup you could face with an annoying problem: Reporting Services option is disabled, greyed out and hence cannot be installed.




After some research, I came up with this kb article which describes exactly the services that must be all installed on Windows 2008 before running SQL Server setup. They correspond to Web Server Role.



It is important to note that ALL the services that says the KB article must be installed. For instance, I left Http Redirection service out and then Reporting Services option was greyed out. Only after I installed all services, Reporting Services 2005 were able to be selected for installing.



Here I am pasting a transcription from the KB article that explains the process and the services to install prior to running SQL Server Reporting Services 2005 installation:





1.Log on to Windows Server 2008.

2.Configure a server role and enable ASP.NET and IIS. To do this, follow these steps:

•Click Start, and then click Server Manager.

•In Server Manager, right-click Manage Roles, and then click Add roles. The Add Roles Wizard starts.

•In the Add Roles Wizard, click Select Server Roles.

•On the Select Server Roles page, click to select the Web Server (IIS) check box, and then click Next.



Note Because of role dependency, the File Server check box is automatically selected when you click to select the Web Server (IIS) check box.

•On the Role Services page, expand Common HTTP Features, and then click to select the following check boxes:

■Static Content

■Default Document

■Directory Browsing

■HTTP Errors

■HTTP Redirection

•Expand Application Development, and then click to select the ASP.NET check box.



Note If you are prompted to add required role services, click OK.

•Expand Security, and then click to select the Windows Authentication check box.

•Expand Management Tools, expand IIS 6 Management Capability, and then click to select the following check boxes:

■IIS Metabase Compatibility

■IIS 6 WMI Compatibility

■IIS 6 Scripting Tools

■IIS 6 Management Console

•Click Next, and then click Install.

Note If you do not enable all these features, the Reporting Services option does not appear in the Feature Selection dialog box of the SQL Server Setup program.

3.Verify that the World Wide Web Publishing service is started. If the World Wide Web Publishing service is not started, configure the service to start automatically. To do this, follow these steps:

•In Control Panel, click System and Maintenance.

•Click Administrative Tools.

•Double-click Services.

•In the User Account Control dialog box, click Continue.

•Right-click World Wide Web Publishing Service, and then click Properties.

•In the World Wide Web Publishing Service Properties dialog box, select Automatic in the Startup type list.

•Click Apply, click Start, and then click OK

Bear in mind also that you must start the World Wide Web Publishing service if you want to install the default configuration of Reporting Services. Otherwise, the SQL Server Setup program only installs Reporting Services and does not configure Reporting Services.





Hope it helps and saves some time to somebody else

Thursday, July 7, 2011

Managed Extensibility Framework (or MEF for short)

What is MEF?


The Managed Extensibility Framework (or MEF for short) simplifies the creation of extensible applications. MEF offers discovery and composition capabilities that you can leverage to load application extensions.

What problems does MEF solve?

MEF presents a simple solution for the runtime extensibility problem. Until now, any application that wanted to support a plugin model needed to create its own infrastructure from scratch. Those plugins would often be application-specific and could not be reused across multiple implementations.

MEF provides a standard way for the host application to expose itself and consume external extensions. Extensions, by their nature, can be reused amongst different applications. However, an extension could still be implemented in a way that is application-specific. Extensions themselves can depend on one another and MEF will make sure they are wired together in the correct order (another thing you won't have to worry about).

MEF offers a set of discovery approaches for your application to locate and load available extensions.

MEF allows tagging extensions with additonal metadata which facilitates rich querying and filtering

How does MEF work?

Roughly speaking, MEF's core is comprised of a catalog and a CompositionContainer. A catalog is responsible for discovering extensions and the container coordinates creation and satisfies dependencies.

MEF's first-class citizen is a ComposablePart (see Parts). A composable part offers up one or more Exports, and may also depend on one or more externally provided services or Imports. A composable part also manages an instance, which can be an object instance of a given type (it is in the default MEF implementation). MEF, however, is extensible and additonal ComposablePart implementations can be provided as long as they adhere to the Import/Export contracts.

Exports and imports each have a Contract. Contracts are the bridge between exports and imports. An export contract can consist of further metadata that can be used to filter on its discovery. For example, it might indicate a specific capability that the export offers.

MEF's container interacts with Catalogs to have access to composable parts. The container itself resolves a part's dependencies and exposes Exports to the outside world. You're free to add composable part instances directly to the container if you wish.

A ComposablePart returned by a catalog will likely be an extension to your application. It might have Imports (dependencies) on components the host application offers, and it's likely to Export others.

The default MEF composable part implementation uses attribute-based metadata to declare exports and imports. This allows MEF to determine which parts, imports, and exports are available completely through discovery.