Tuesday, September 4, 2012

The target ‘GetCopyToOutputDirectoryContentProjectItems’ does not exist in the project


At the time of developing your Windows Phone 7 application, you might see a build error. The build error describes as “The target ‘GetCopyToOutputDirectoryContentProjectItems’ does not exist in the project”.

This small post will describe you the solution to fix this error and build your WP7 apps smoothly. 

Recently after installing Windows Phone 7.1 SDK, I noticed that, though the templates are available through Visual Studio 2010 but I am unable to build the simple phone application. I was getting the following error while building the app:

The target “GetCopyToOutputDirectoryContentProjectItems” does not exist in the project

This is due to improper installation of XNA Game Studio 4.0. To resolve this, you need to reinstall the Windows Phone 7.1 SDK tools but this repair might not resolve this issue and you would spend more time doing uninstallation/reinstallation and/or repairing the SDK tools installation.

As this is due to XNA Game Studio installation, hence the simplest and quickest fix of this is to download and manually install the XNA Game Studio 4.0 Refresh.

Click here to download XNA Game Studio 4.0 Refresh

Once you download and install the XNA Game Studio 4.0 Refresh, you will be able to build your Windows Phone 7 applications using Visual Studio 2010 again.

Saturday, September 1, 2012

Deploying ASP.NET Websites on IIS 7.0


Deploying ASP.NET Websites on IIS 7.0


This article describes some features and architecture of IIS 7.0 and deployment of ASP.NET sites on IIS

Introduction to IIS 7.0

Microsoft Internet Information Services (IIS) 7.0 in Windows Server 2008 and Windows Vista provides a secure, manageable platform for developing and administrating and hosting Web applications and services. It has been completely redesigned and Restructured .IIS 7.0 provides features and functionality for administrators to effectively manage Web infrastructures; developers to rapidly build Web applications and services; and hosters to Web hosting.
IIS7_new.JPG

Features of IIS 7.0

Following are some features of IIS 7.0:
  • IIS 7.0 provides features and functionality that enable administrators to reliably and effectively manage Web infrastructures.
  • IIS 7.0 has a distributed file-based configuration system that enables IIS settings to be stored in web.configfiles along with the ASP.NET settings.
  • IIS 7.0 provides a cost-effective, more scalable Web server platform for delivering reliable Web hosting to a broad set of customers.
Major innovations in IIS 7.0:
  • A modular, extensible core Web server
  • A unified, distributed file-based configuration system
  • Integrated health monitoring and diagnostics
  • A set of new administration tools with delegation support

Basic Architecture of IIS 7.0

The following diagram shows the Overall Architecture of IIS 7.0 which contains HTTP.SysSvcHost.exe, Application Pool and Worker Process(W3Wp).
II7_Archi.JPG

The main components of IIS 7.0 are HTTP.SysSvchost.ExeApplication Pool , Worker Process (W3WP.exe) andConfiguration Store.
HTTP.Sys: It the Kernel mode Protocol stack which listens to the HTTP and HTTPS Request. W3SVC and WAS are the parts of Svchost.exe. W3SVC is the Listener of Request from kernel mode that is passed by the HTTP.Sys. W3SVC also interacts with Windows Activation Process which is managed by the worker process by starting, stopping and recycling the application pool. It was also responsible for Health Monitor of Application Pool during runtime. Configuration stores all web.config and ASP.NET Settings and other configuration in XML Hierarchy form.W3wp.exe is a long-running process that processes requests and generates responses.
The following diagram shows you the process flow of IIS 7.0. This is the flow of User Request to IIS and gets the Response from IIS.
ProceessFlowofIIS.JPG

User Request Pass from Kernel Level to User Level Via Http.Sys and then passes to svchost, and then goes to Application Pool.

How to Deploy ASP. Net Websites on IIS 7.0

From now onwards, I will describe one example to deploy your ASP.NET websites on IIS 7.0.
Step 1: From Visual Studio, publish your Web application.
Step 2: Copy the published application folder to "C:\intepub\wwwroot[default] folder.
Step 3: From RUN - > inetmgr -> OK
The following screen will come. This is the main page for any application. There are three panels.
Main_DefaultIIS.JPG"TestWeb" is a recently pasted webapplication on your wwwroot folder.
Step 4: We need to convert it to an application, just right click and then Click on "ConvertToApplication" as shown in the following picture:
ConvertToApplication.JPG
After converting it to application, its icon will be changed and then you can set the property for your web application from the middle pane. You can set IIS Authentication Mode, Default Page Just like IIS 6.0:
ConvertedToApplication.JPG
You can change Security Settings on Authentication Section. By default Setting will be set from your web.configitself. As in my web.config Form Authentication was set that's why, Forms Authentication has been Enabled. If we want to change the status, just double click and update status to Enabled to Disabled or Vice Versa.
AuthenticatinSettings.JPGNow one most important part is to set the Application Pool for your application.

How to Create Application Pool

A site can contain many applications including that site’s default application, which is called the root application. In addition to belonging to a site, an application belongs to an application pool, which isolates the application from applications in other application pools on the server .
Step 1: Right Click on Application Pool and give the name of your pool. Here, I have given "pool" and select Framework and click on OK:
PoolCreation.JPGStep 2: If you are writing some thing on the server [may be writes Error Events Logs], you need to change the Pool Identity to Local System. Right click on Pool Identity setting as shown in the following image:
There are three identities of Application Pool:
  • Network Service
  • Local Service
  • Local System
changePoolIdentity.JPG

Assign Application Pool To Your Application

Now, we need to assign the Application Pool to our web application.
Step 1: Right Click on "TestWeb" Application and Select "Advanced Settings":
asingAppPool.JPGStep 2: Finally assign your created Application Pool "pool" to "TestWeb" Application.
FinalAppPoolAsign.JPGNow you can run your application by just typing http:\\localhost\testweb and it can be accessible on network by IP also.

Configure Web Gardens in IIS 7.0

What is Application Pool ?
Application pools are used to separate set of IIS worker processes that share the same configuration. Application pools enable us to isolate our web application for better security, reliability, and availability. The worker process serves as the process boundary that separates each application pool so that when one worker process or application is having an issue, other applications or worker processes are not affected.
aPPpIOOL.JPG
Figure: Application Pool With Worker Process On IIS Server
In your IIS, there may be more on Web sites hosted and by creating Application Pool, you can just assign a Separate Worker Process to your application. I have already discussed how you can assign Application Pool to your web application.

Types of Application Pools

There are two predefined Application Pools is IIS 7.0:
  1. DefaultAppPool (Integrated)
  2. ClassicAppPool
None of the Application Pools are Installed by default when IIS 7.0 is installed. Classic Application Pool is installed when ASP.NET 2.0 is installed in the System.

Identity Of Application Pool

Application pool identity configuration is an important aspect of security in IIS 7.0, because it determines the identity of the worker process when the process is accessing resource. This Settings comes form IIS 6.0. in IIS 5.0. There the Application pool runs under the local system account. In IIS 7.0, there are three predefined Identities that are the same as IIS 6.0
Applicationpool IdentityDescription
LocalSystemLocalSystem is a built-in account that hasadministrative privileges on the server. It can access both local and remote resources
LocalServicesLocalServices built-in account has privileges of an authenticated local user account. It does not have any network access permission.
NetworkServicesThis is the default Identity of Application Pool. NetworkServices has privileges of authenticated local user account and it can have access remote resource as machine account.

What is Web Garden?

By default each Application Pool runs with a Single Worker Process (W3Wp.exe). We can assign multiple Worker Processes With a Single Application Pool. An Application Pool with multiple Worker process is called "Web Gardens". Many worker processes with the same Application Pool can sometimes provide better throughput performance and application response time. And each worker process should have their own Thread and Own Memory space.
WEb_Garden.JPG
Fig: General Block Diagram of Web Garden.
As given in the picture, in IIS Server there may be multiple Applicationpool and each application pool has at least a single Worker Process. Web Garden should contain multiple Worker processes.
There are certain restrictions to use Web Garden with your web application. If we use Session Mode to "in proc", our application will not work correctly because session will be handled by different Worker Process. To avoid this type of problem, we should have to use Session Mode "out proc" and we can use "Session State Server" or "SQL-Server Session State".
Main Advantage: The worker processes in a Web garden shares the requests that arrive for that particular application pool. If a worker process fails, another worker process can continue to process requests.

How to Create Web Garden?

Create a New Application Pool. Right Click -> Advance Setting -> Go To Process Model Section, set the Value for Maximum Worker Process.
IIS_Update.JPG

Is It Recommended to use Web Garden?

It not always recommended to use Web Garden to your Application. It effects the performance of your sites except in very specific cases like some long running synchronous requests or application is very unstable.

IIS 6.0 Vs IIS 7.0

The main advantages of IIS 7.0 is Modular Design which gives some benefits to IIS 7.0 over IIS 6.0. The following table shows you some differences of IIS 6.0 and IIS 7.0.
Features
IIS 6.0
IIS 7.0
ArchitectureMonolithicModular
SetupMost Features InstalledMinimum installation based on role
Extended FeaturesISAPI Filter and ISAPI ExtensionAdded Module and handler in managed or native code
Customize UINormalCustomize for .NET
There are many more differences.

Where Do I Get IIS 7.0

IIS 7.0 will not be available with all Operating Systems. There are some specific OS and specific Versions for IIS 7.0.
Operating System With EditionAvailable
Windows Server 2008Yes
Windows Vista (Home Basic)No (Default) need to install
Windows Vista (Home Premium)No (Default) need to install
Windows Vista (Business)Yes
Windows Vista (Ultimate)Yes



JavaScript Tutorial


JavaScript Tutorial

                       JavaScript is THE scripting language of the Web.

JavaScript is used in billions of Web pages to add functionality, validate forms, communicate with the server, and much more.

JavaScript Introduction

JavaScript is the most popular scripting language in the world. It is the standard language used in web pages, but it is also widely used by desktop apps, mobile phone apps, and internet servers.

What You Should Already Know

Before you continue you should have a basic understanding of the following:
  • HTML and CSS

What is JavaScript?

  • JavaScript is a scripting language
  • JavaScript was designed to add interactivity to HTML pages

What is a Scripting Language?

A scripting language is a lightweight programming language that supports the writing of scripts.

What can JavaScript do?

JavaScript gives HTML designers a programming toolHTML editors are normally not programmers, but JavaScript is a language with a very simple syntax. Almost anyone can put small "snippets" of JavaScript code into HTML pages.

JavaScript can manipulate HTMLJavaScript can both read and change the content of HTML elements.

JavaScript can manipulate CSSJavaScript can both read and change the style of HTML elements.

JavaScript can validate dataJavaScript can be used to validate data, like validating forms input.

JavaScript can store dataJavaScript can be used to store and retrieve information on the visitor's computer.

JavaScript can react to eventsJavaScript can be set to execute when something happens, like when a user clicks on an HTML element.


JavaScript vs. Java

JavaScript and Java are two completely different languages, in both concept and design.
Java (developed by Sun Microsystems) is a complex programming language in the same category as C and C++.


Windows Phone Apps

Arithmetic Pro: 
This is a very interesting game called Arithmetic Pro. You should fill in the game board so that the numbers 1 through 4 occur exactly once in each row, column, and  box(we call it RULE). The numbers can appear in any order and diagonals are not considered. Of course we give you some idea on the top left corner of the box. The number in the yellow of area should meet rules.
For example,
if you see "15+", it tells you the sum of the number in the pink area should equals 15. That's it, don't you think it is very easy and interesting.
So enjoy yourself!
(Link to Store: http://www.windowsphone.com/s?appid=cd628347-20f5-41f9-b910-61db13c1dc60).

Magic Paper: 
The "Magic Paper" possesses powers to read your thoughts! First of all let yourself be amazed, and then bamboozle all your friends. "Magic Paper" knows what symbol you are thinking of and makes it appear miraculously.
(Link to Store: http://www.windowsphone.com/s?appid=ec3d1776-eeb8-4dff-80b7-79f01d85249c).

Calculators & Converters:
Calculators & Converters is an application that provides quick conversion and calculation results and is very easy to use. It is an elegant application that features daily used financing calculations with all most conversions and calculate results available at a glance.
Application has Interest Calculator, Tip Calculator, Email Marketing ROI Calculator & Currency Converter.
1. Interest Calculator will help you to find out the Interest(Simple or Compund Interest) one needs to pay while he takes a loan.
2. Tip will calculate certain amount for Payments & Tip to be divided among group or individaully how much Percentage the tip should be.
3. Email Marketing ROI Calculator helps is quick decision making to especially the Marketing team to calculate whether the Campaign will be Profitable to Company based on the Targeted Audience & Response of the buyer.
4. Currency Converter will convert the currency based on todays conversion value (Needed and Internet/GPRS connection)
Application is designed with beautiful layout with Sliders for quick access instead of old traditional way on inputting data. Great app to keep handy whenever a financial calculation need arises.
(Link to Store: http://www.windowsphone.com/s?appid=a5780938-83d0-4cd2-81d9-99e31ce98d56).