Manish's profileManish AgrawalPhotosBlogLists Tools Help

Manish Agrawal

My Experiments with Technology...
June 15

Nice hindi song

s    
MusicPlug.in


March 10

Mobile TV next big battleground

Lara Sinclair has written a nice article named - Mobile TV next big battleground
 
Article covers the trends and gives excellent projections of and about mobile tv content & usage.
February 10

Few Sacred Songs of India

 
     
                                       Suraj Ki Garmi Se         
 
 
Ae Malik Tere Bande Hum (Singer - Lata Mangeshkar) (Movie - Do Aankhen Barah Haath)
 
  
                      Hum Ko Maan Ki Shakti Dena  (Singer - Lata)                    
 
  
     Tu Pyar Ka Sagar hai - (Singer - Manna Dey) (Movie -Seema 1955)
 
 
    
                       Allah Tero Naam - (Movie - Hum Dono)                           
 
 
                          Pal Pal Hai Bhari (Movie - Swadesh)
November 19

Build important management and leadership abilities...

MSDN® Success Builder, a unique and free resource to help software professionals build important management and leadership abilities.
 
You can find some incredibly valuable courseware (on this page) derived from common practices at Microsoft. So go on and take your pick from easy-to-absorb tip sheets to in-depth material on a topic of your interest.
 
MSDNSuccessBuilder
June 07

Silverlight Tutorials

Silverlight Tutorials

Thanks Michael Schwarz.

Mix 07 Silverlight Sessions

Silverlight 1.0 Tutorials

Silverlight 1.1 Tutorials

Expression Blend with Silverlight 1.0

Silverlight QuickStarts

MSDN Library

Tutorials from other Web sites

May 07

Tips for a successful team lead

 

Roy Oserove has given good tips for becoming a successful team lead. Believe my these tips really work, I have experienced that.

More over you can share anything missing to make the post even better.

Check the article here.

April 24

Flash Control for ASP.NET 2.0 and AJAX

 FlashControl is an ASP.NET 2.0 server control that allow you to add Flash movies (swf files) in your aspx pages. It removes the "Click to activate and use this control" message.

This control has some great features:

  • Remove "Click to activate and use this control" message
  • ASP.NET AJAX enabled! (works inside an AJAX UpdatePanel)
  • Auto detect browsers and render proper client code
  • Enable full screen Flash movies
  • Support all Flash properties (Width, Height, Src, FlashVars, PluginsPage, Loop, Menu, Scale, BgColor, SwLiveConnect, Quality, Play, Base, Align, SAlign, WMode, etc...)
  • FlashVars GUI editor
  • XHTML compliance mode
  • Support ASP.NET 2.0 Theme and skins
  • Full Visual Studio designer support (Smart tag, Custom Designer, Custom Editors)

FlashControl is available at www.flash-control.net

 

 

To Read More goto : Flash Control for ASP.NET 2.0 and AJAX

JavaScript Intellisense and Documentation in VS.NET Orcas

Microsoft's Betrand Le Roy just put together a great post on how to document JavaScript code in VS.NET Orcas.  By adding documentation comments, users of your script will get nice intellisense as they type and use JavaScript classes, methods, etc.  Nice stuff that we've all wanted for a long, long time.

http://weblogs.asp.net/bleroy/archive/2007/04/23/the-format-for-javascript-doc-comments.aspx

Wally McClure just released a video that shows what the new intellisense support looks like as well.

Read More here: JavaScript Intellisense and Documentation in VS.NET Orcas

November 08

MOSS 2007 Rocks.. and it is gonna-rock even harder.. grab it now.. or you will be no-where..

I have always thought MOSS (Microsoft Office Sharepoint Server) is an excellent platform and it is definitely gonna-be future platform of almost all kind of Application development and deployment. One of the example of this is Ben Robb's & Mei Ling's post.

In his blog-post Ben Robb has mentioned about Mei Ling blog-post on Commerce Server vs MOSS(showing how MOSS and Commerce Server can complement each other in provisioning an eCommerce site), also he has shown how the functionalities of CS overlap MOSS functionalities and what should be the next course of action for future versions of CS.

Thanks Ben Robb and Mei Ling.. for the Excellent work.

Another Example of this is yet another article of Ben Robb (Moving from design to reality - building HedKandi.com in Microsoft Office SharePoint Server 2007) hosted at ECM Team Blog. The introduction is below, the main body is here.

In the past, most SharePoint developers would have run a mile when faced with an initial design brief like this:

 While it had been difficult in the past to brand a SharePoint-based website with the kind of flexibility that marketing departments demand for their publicly facing websites, SharePoint developers can stop running right about now. This limitation simply disappears in the 2007 version of SharePoint with the support for ASP.NET 2.0 Master Pages technology.

 So, how did we go about creating a site with SharePoint that looks nothing like a typical SharePoint site? Surprisingly, it didn’t involve lots of C# code or editing files we really weren’t supposed to be. We actually made use of a lot of out of the box controls, and in the main used XHTML, CSS and XSLT to achieve the output that our client required.

To read the full article - go to the ECM Team Blog: http://blogs.msdn.com/ecm/archive/2006/09/30/777819.aspx


kick it on SharePointKicks.com

Steve Ballmer LIVE at indiMix '06. Be there!

The brush strokes of creativity have overpowered the Web. Innovation thrives in this domain of opportunity. It’s not about bits or bytes; it’s about experiences and expressions.

Creative impulse now powers the Web; inventiveness wins hearts, emotions rule…It is The Next Web Now.

Businesses find new horizons, find new ways to establish connections, and not just another dot in the address. The Web has changed to deliver meaningful experiences.

The revolution is upon us. You can choose to ignore it, or thrive in this new realm of opportunity.

IndiMIX ’06 – It is testimony to the promise of effective Web experiences; it is the point of inflexion; it is the demonstration of the genesis of creativity and innovation; it is The Next Web Now.

Business professionals, Designers, Developers - Join Steve Ballmer, Microsoft CEO in Mumbai on November 9, 2006 at IndiMIX ’06 for this seminal web conclave.
 
© 2006 Microsoft Corporation. All rights reserved.
 

Make sure you are there! No matter how Physically or Virtually..

Management and Delegation of ASP.NET.. nice article by Jeff Toews

Jeff Toews has written an excellent article on Management and Delegation of ASP.NET. To view the article Click here.

In this article he has presented some configuration tips on proper Configuration of ASP.NET.

September 26

Common Excel formulas: Quickly add formulas to your Excel worksheets..

 

There is a good wealth of Common formulas available which can be used in Excel. To access the link Click here.

September 25

How to use Subversion more effectively with proper Repository Structure and better use of Branching/Tagging/Versioning..

 

In this article, I have assumed that the reader is aware of the basic functionality of Subversion. This article has been written to make the usage of Subversion more efficient and more effective, as not much information is available on this subject in contrast to Subversion.

Although most of the things are already mentioned in the Subversion Documentation, but going through such vast information in one go becomes something uncommon. So it is good to have small articles targetting a specific feature which can expose the functionality and will get the attention. Without even any extra effort it gets feeded in mind, making understanding of the subject better.

I installed Subversion and started using it, but I started getting problems in maintenance when the code base spreaded and required maintenance of multiple versions.

To find the solution I studied the documentation available, to use Subversion(SVN) more effectively. One of the important things I read was about "What should be the ideal Repository Structure":

So lets understand the options available:

  • Versioning

In this article I have followed Major.Minor.Build.Revision versioning practice which is very standard, details of it are as under:

In this version number is physically represented as a four-part string with the following format:

        <major>.<minor>.<build>.<revision>

For example, version 1.5.60204.0 indicates 1 as the major version, 5 as the minor version, 60204 as the build         number, and 0 as the revision number.

  • Major: Major releases introduce major new technologies and changes that render previous production releases obsolete.
  • Minor: Minor releases depict feature level enhancements. Addition of features between releases result in incremented minor release.
  • Build: This is auto-generated number, assigned for each build on a day basis. It has YMMDD format, So Feb 04th 2006 shall be 60204.
    Note: Build number for revisions (read bug-fixes to production releases) shall remain same as originally released in production.
  • Revision: This is reset to zero, for each new major/minor version released. For all later bug-fixes, patches to releases that reach production, this number shall sequentially increment.
  • Trunk

Trunk is the main branch of development.

  • Branch

Isolating changes onto a separate line of development is called Branching. Branches are used to try out new feature without disturbing the main line of development. And as the new feature becomes stable the development branch is merged back into the main branch (trunk).

  • Tag

Tagging is to mark particular revisions (e.g. release version), so that you can recreate a certain build or environment at any time. Tags are used to create a static snapshot of the project at a particular stage. Tagging of the project is mostly done along with the successful build and generally it is done by the automated build process.

Important Note: Subversion itself makes no distinction between tags and branches, but they are there for different purpose. Tags are not normally used for development, Branches must be used for that purpose. So working on a tag revision is not a good idea. So you must remember this as there is nothing to stop you doing this by mistake. However there are few SVN-Client Applications (like TortoiseSVN) which will warn you if you try to commit to a path in the repository which contains /tags/. But I am not sure about other SVN-Clients.

Figure 1: Example of a Subversion Repository Structure (expanded).

Branching or Tagging done by Subversion are just internal links (cheap copies) pointing to a specific tree/revision and thus can be created very quickly and also take up almost no extra space in the repository. If you modify a working copy created from a branch and commit , then all changes go to the new branch and not to the trunk. Only the modifications are stored and the rest remains a cheap copy.

Many times it may happen that you need to make further changes to a release which has been already tagged. The correct way to handle this is to create a new branch from the tag first and commit the branch. Make Changes on this branch and tag the branch for every build with increment in the Revision number.

So finally "What should be the ideal Repository Structure"

Following folder/directories must be created, all at the repository root level:

      • /trunk                    
      • /branches                    
      • /tags                    

How to make the Repository Structure:

  1. Do SVN Checkout to a new folder.
  2. Create the folder /trunk inside the root repository folder.
  3. Create the folder /branches inside the root repository folder.
  4. Create the folder /tags inside the root repository folder.
  5. Copy the project files (which are to be Source Controlled) in the /trunk folder.
  6. Add the files and folder to SVN and do SVN Commit.
  7. Create a Branch with Major and Minor mentioned in the branch name for e.g. "v1_0_X" **
  8. Now you can delete the new folder from your machine (not from SVN) as it is now saved in SVN.
  9. Checkout the the new created branch. Now you can start working on this.

If you need to make further changes to a release which has been already tagged, following steps must be followed:

  1. Checkout the tagged revision to a new folder.
  2. Create a new Branch from the checkedout project.
  3. Switch the working copy to new Branch (or in simple words Delete the just created new folder and checkout the new branch to a new folder.)

For e.g.  Suppose you need to make further changes to a release tagged "v1_0_60924_0". Steps will be as under:

  • Checkout the tag "v1_0_60924_0" to a new folder say "C:\HelloWorld_temp".
  • Create a new branch "v1_0_60924_X" *** by giving the command from within the above folder.
  • Switch the working copy:
    • Deleting the "C:\HelloWorld_temp" folder.
    • Checkout the branch "v1_0_60924_0" to a folder "C:\Projects\HelloWorld".

** Branch name v1_0_X dissected: "v" represents the word "Version", "1" is Major, "0" is Minor and "X" is to indicate that along with the changes (or during the Build process) Tags will be created with dynamic Build and Revision numbers, for e.g. "v1_0_60923_0" here 60923 is the Build Number which represents the date of build (6 is the year 2006, 09 is the Month and 23 is the Date), after Build Number there comes the Revision Number which will get incremented with every next build during the day.

*** In case of already tagged release Branch name used is "v1_0_60924_X" because for further builds on this Branch only revision number will get incremented. Mostly this happens when a Build is released or finalized to be released, then for bug-fixes and patches to be release the Build number is freezed and only Revision number changes.

September 12

Steps of Installing MOSS 2007

>

 

MOSS 2007 can be installed as a Stand-alone Server application or as a Server farm or as a Web Front End. MOSS 2007 installs WSS v3.0 automatically.

If you have only one server, you have no option but to install Stand-alone Type, this will install desktop database engine (SQL Server 2005 Express Edition) along. It will be an independent instance of SQL Server just for the SharePoint application. But this will result in very poor performance. And can only be used by a very small user group or just for learning purpose.

If you have to use it in a relatively larger setup you must install SharePoint farm (atleast one Complete - Install all components Server Type) with database on a different dedicated database server.

In this post I will show the steps for installing MOSS 2007 SharePoint farm:

Prerequisites: Please read this before installing Beta 2

 

Step 1: Start the installation by clicking the Setup.exe in the x86/x64(for 64 bit machine), and the installation starts with the following screen. Select the Complete Server Type option and click the Install Now button. This is will take few minutes and will install the basic components.

 

Step 2: After the installation of basic components, it will automatically start the SharePoint Products and Technologies Wizard. This Wizard can even be started from the Start-->All Programs-->Microsoft Office Server-->SharePoint Products and Technologies Wizard link also. This is will present a Welcome screen, Click the Next > button

 

Step 3: Next screen will be of Connect to a server farm, if it is the first server in the farm select the option "No, I want to create a new server farm" and if there are already one or more existing server, you can select either of the option "Yes, I want to connect to an existing server farm" or "No, I want to create a new server farm", Click the Next > button

 

Step 4: In this step specify the Configuration Database Settings. Do remember if your configuration database is hosted on another server, you must specify a domain account (Global Domain Account), Click the Next > button

 

Step 5: Next step is to Specify the port number for the SharePoint Central Administration Web Application. details of Web Application and the port number can be read from the following screen shot, Click the Next > button

 

Step 6: Finally it will show the Configuration Successful screen, Click the Finish button

Step 7:  This will open up the Central Administration homepage in the browser.

Step 8: In the Administrative Tasks as shown in the above screen-shot, Click on the "Initial Deployment: Assign Services to Servers" link, this will open-up the following page, Click the Action Link "Initial Deployment: Assign Services to Servers"

 

Step 9: It will open-up the following screen, just make sure you start all highlighted services in the list(or atleast the one shown as Started here) :

 

Step 10: Now go back to the Home-page as shown in Step 7 and click the "Application Management" tab, this will open-up the following screen, Now since Services on Server are started, "Create or extend Web application" will be displayed. Click the link.:

It will further show the following page, continue with the "Create a new Web Application" link:

 

Step 11: Now the Create New Web Application Screen will open. Fill the appropriate values. By default it will show some Port number but since I wanted to host the application on 80 port I changed it to 80. Also there please remember the following 

Notes:

  1. In the Load Balanced URL section change the name of the server to the IP of the server in the URL, by doing this you will not require do DNS settings, if otherwise you can continue with the server name also,
  2. In the Application Pool section select a configurable security account. I have given my security account  ID. In my case both Predefined options(Network Service/Local Service) didn't worked and gave error.

  

 

 

Step 12:  You will get the following screen on completion of Step 11. Now Click the "Create a new Windows SharePoint Services site collection." link

 

Create the site collection and that's it.

You can create multiple Web-Applications(at different Port) and multiple Site-Collections in every Web-Application.

 

For your reference, there are few good documentation available:

August 25

MySQL5 C# sample using ObjectDataSources

 

Although MS SQL Server Express Edition is a very advanced database and is also free, there is no big reason to move to MySQL 5 now, but still if you have to access databases which are on MySQL 5 you find difficulty in using it with the ObjectDataSources approach.

Michael Washington has written an excellent article on how MySQL 5 can be used with ObjectDataSources in ASP.NET 2.0.

To access the article click here.

August 23

1 Year of Blogging..

Time passes so fast, I didn't even realized it is now 1 year since I started blogging, it seems as if I just started few weeks back.. 

My experience with blogging has been very good and I would like to recommend everyone to do blogging. It not only helps you to recall things but also helps in many other ways like:

  • You & your experience become public (I think this will help in evolvement of the community at a much faster pace).
  • You have to go one more level in depth of what you are doing to blog about it.
  • It creates a urge of finding/inventing new things and show to the world.
  • and many more good reasons..

Blogging is done for multiple reasons, some do it to log their experience, some do it for announcing their work/achievements/problems, some of the bloggers like to become announcers (I would like to call them Blog Jockeys) of What new has arrived in.., some do it for the help of the community.. and many many more reasons.

For me blogging is to log my experience with complete focus on technology and may be this is the reason I have not posted too many posts.

In last 18 months, I got a very good opportunity to explore new tools and technology (Thanks to my Project Manager Mr. Sharad Kumar). Working on ASP.NET 2.0 right from it's CTP releases, Generics, C# 2.0, VB.Net 2005, MS SQL Server 2005, MS SQL Reporting Services, IISReport Pack, FxCop, CruiseControl.Net, NAnt, MSBuild, NDoc, AJAX, ATLAS, Sharepoint v2.0, Sharepoint v3.0 and many many more..

Links of some of my good posts in last 1 Year:

-- Microsoft must take my services to make MSBuild more complete.. rather more featurefull.. ;)                                           Appreciated by Niel Enns (Lead Program Manager, MSBuild Team, Microsoft) for a smart solution & detailed description..

-- Sleep Task implementation for MSBuild

-- How To: Install the Subversion HTTP Module/Server/Client on Windows

-- How to Setup Reporting Services

What I will be interested in blogging next:

-- IIS Report Pack Optimization

-- How to do effective Project Management (so many tools are there at your service)

-- Sharepoint 3.0 and MOSS 2007

-- Workflows

-- And many many more things..

 

Happy Blogging.. ;) 

Knowledge increases by sharing.. Trust me..         If you have not started blogging yet, Start it ASAP..

August 21

Google shows different results in different browsers..

Lately when I was searching something on Google I came accross something very surprising, i.e. I was getting different results from the same search engine in different browsers, I have both Firefox (FF) and Internet Explorer (IE) and I generally keep an instance of both open..

For example if I search for my name on FF and IE, I get results in different order and even the total number of results also differ..

As it can be seen in the below picture that in FF my weblog is coming at the top :) but in IE it is coming at the third rank :( 

 

I don't really know why this is happening and whether it is intentionally done by Google or it is a bug, but since the search engine is the same ideally it should show similar results irrespective of browsers..

It would be great, if anybody can give me the valid reason behind this.. ;)

August 16

Microsoft Releases Windows Live Writer..

Windows Live Writer was released last Friday. I am writting this post using the tool.

It is a desktop application that provides a really nice editing environment for writing blog posts (spell checker, layout manager, offline editing support, etc). It can be used not only with Live Spaces but also with many other server blogs.

Eric Cherng has put together a really nice Windows Live Writer walkthrough that shows off how to install and use it to write your first blog post.  You can checkout his post on how to-do this here.

Cool tools.. Great Stuff..

Microsoft is really becoming Lively..

August 13

ASP.NET 2.0 page life cycle

2 years back I came across a very good diagram of ASP.Net Page LifeCycle, which I lost. I tried to find it again many times but couldn't find. Luckily today, I found the updated version of the Diagram (i.e. for ASP.Net 2.0), thanks to Kris van der Mast who posted it on his blog. He has given All credits to the original designer of the diagram: Léon Andrianarivony, but equal amount of credit goes to him as well.
June 14

How To: Install the Subversion HTTP Module/Server/Client on Windows

  1. Download the binaries

For Server machine:

Go to the Apache download page and download the version (apache_2.0.54-win32-x86-no_ssl.msi) of Apache web server. I tried downloading some latest versions also but faced few issues in installation, so I continued with version 2.0.54.

Go to the Svn1ClickSetup download page and download the latest version. As of the writing of this article it is 1.3.2.

 

For Client machine/s:

It will be sufficient to just install Tortoise SVN Client, it can be downloaded from TortoiseSVN Page. As of the writing of this article latest version was 1.3.4

  1. Set up Subversion on Server

Run the Svn1ClickSetup executable (Svn1ClickSetup-1.3.2.exe) downloaded in the previous step. All the installation locations mentioned in this article are assumed to be default locations.

 

Note: Svn1ClickSetup installs a Subversion service, if you don’t want to be running this service, open a command prompt, and run the following command:

 

svnservice -remove
  1. Set up TortoiseSVN on Client

Run the TortoiseSVN Setup executable (TortoiseSVN-1.3.4.6692-svn-1.3.2.msi) downloaded in the previous step.

Note: If you are working on VS.Net with Web Projects, it is recommended to select ASP.Net Hack on the Custom Setup step of the installation wizard. Although I have not explored consequences of not selecting it but it is hardly of any harm, as it not even takes 1 kb of your hard disk space.

  1. Install Apache

Run the Apache installer (apache_2.0.54-win32-x86-no_ssl.msi) that you downloaded. It is pretty simple to install.

Once the installation finishes, launch a web browser, and browse to http://localhost. If you see a test page from Apache, the server is installed correctly.

Note: If port 80 is already occupied, you will have to stop the Webserver on which it is running or you will have to stop that WebSite. As Apache installation wizard gives not enough options of setting port while installation.

Later you can change the default port (which I recommend) in the httpd.conf file located in C:\Program Files\Apache Group\Apache2\conf  folder.

You will have to make changes at two places, firstly search for word Listen and replace 80 with your desired port number for example 8181

 

Listen 8181

 

Secondly search for ServerName and replace :80 with your desired port number.

 

ServerName yourdomain.com:8181

You will have to restart Apache and now you can launch a web browser, and browse to http://localhost:8181/

 

Note: Now don’t forget to restart the Webserver or WebSite, which you mayhave stopped.

  1. Set Up HTTP Access

The first thing we need to do is make sure that Apache loads the WebDav modules. The Apache config file (httpd.conf) is located in the C:\Program Files\Apache Group\Apache2\ conf directory. Launch a text editor, and open the Apache config file. You will want to keep this file open for the rest of the installation.

 

Copy the Subversion HTTP modules:

Program Files\Subversion\bin\mod_dav_svn.so

Program Files\Subversion\bin\mod_authz_svn.so

into the Apache modules directory (Program Files\Apache Group\Apache2\Modules).

 

In the config file, look for a section of lines that all start with LoadModule. At the end of that section, add the following lines:

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

 

At this point, restart the Apache2 service (Control Panel > Administrative Tools > Services). You will probably want to keep the Services window open (we will be restarting Apache several more times). If it restarts with no errors, Apache is now loading the SVN module.

 

Back in the Apache config file, add the following to the end of the file:

<Location /repos>
  DAV svn
  SVNPath "C:\svnrepos"
</Location>

Restart Apache2 again. You can now access your repository via HTTP.

  1. Configuring Authentication

Νote: There are several different ways to configure authorization for Subversion, but in this article only basic authorization is mentioned. Basic authorization sends the passwords in near plain-text, so if you are concerned with password snooping, you will have to use a different authorization scheme.

 

Now, we can browse our repository via HTTP. Not only that, but we can also check-out, modify, and commit changes. However, none of these operations require any type of authorization. Not exactly what we want, especially if we are going to have multiple users.

 

To enable authorization, we need to tell Apache who the authorized users are. To do this, we give Apache a file with a list of the authorized users and their passwords. Apache makes this job easy by providing a utility to mange the user file, htpasswd.

 

Let’s go ahead and create our user file with the users Tom and Jerry. We are going to put our file in the Apache conf directory, so open a command prompt to that directory (C:\Program Files\Apache Group\Apache2\conf). Type the following command, and then enter a password for Tom.  

C:\Program Files\Apache Group\Apache2\bin\htpasswd -cm svn-auth-file Tom

Now type the following command to add Jerry to the file.  

C:\Program Files\Apache Group\Apache2\bin\htpasswd -m svn-auth-file Jerry

Note: There is difference between these two commands. The first command passes in the -c command, which tells htpasswd to create the file. The second time, the file already exists, so just   -m command is enough. The second command can be used to add additional users to the file. In the svn-auth-file entries for both Tom and Jerry can be seen.

 

Now that authorization file is created, some Apache configuration is also required. Go back to the Location tag that we added to the Apache config file. And add some more lines to it so that it looks like this

 

<Location /repos>
  DAV svn
  SVNPath "C:\svnrepos"
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile "C:\Program Files\Apache Group\Apache2\conf\svn-auth-file"
  Require valid-user
</Location>
 

After restarting Apache2 once again, browse to your repository again. This time, you will be prompted for a user name and password. Cool, we have authorization working. However, if you don’t want to be prompted for a user name unless modifying the repository, you are not quite finished yet.

 

Thankfully, only requiring authorization for modifications is really easy. All you have to do is add a couple more lines to the location tag so that it looks like this

 

<Location /repos>
  DAV svn
  SVNPath "C:\svnrepos"
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile "C:\Program Files\Apache Group\Apache2\conf\svn-auth-file"
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>
</Location> 

One last restart of Apache2 and you now have the Subversion HTTP module installed, configured, and ready to control our revisions.

 

 

 

Reference: http://blog.briankohrs.com/2005/09/20/guide-to-installing-the-subverison-http-module-on-windows/#comments

I have modified Brian Kohr’s article as I felt it was missing few things. I hope it will be of help and will be taken in the right spirit.

May 17

Remove Previous Versions Property of MSI Setup in .Net

MSI Setup provides lots of custom actions and options to make Installation Setup/Package extremely customizable and easy to create.
 
Today I came across a requirement in my project, that the MSI setup should prompt to remove previous installed version of the application before new installation.
But after looking around for some properties and options of the Setup project, to my surprise there was no direct property available in the property pages of the MSI project. 
It seems Visual Studio team missed to add the property to the Property Pages where as it is available if you select the project by clicking it in the Solution Explorer and then view it's properties by pressing F4 function key. Here you can see the RemovePreviousVersions property. Set it to true thats it.
 
Now the new MSI, which will get created will not install the application, if there is any previous Version of the application is installed on the machine.
 
Note: You will have to change the Version No. (Major, Minor, Build or Revision) to make it work.
May 05

Walkthrough: Deploying a ClickOnce Application Manually

.NET Framework Developer's Guide  
Walkthrough: Deploying a ClickOnce Application Manually  

This walkthrough describes the steps required to create a full ClickOnce deployment using the command-line or graphical version of the Manifest Generation and Editing tool (Mage).

If you do not use Visual Studio regularly, need to automate the deployment process, or need to use advanced deployment features such as Trusted Application Deployment, you should use the Mage.exe command-line tool to create your ClickOnce manifests. The following walkthrough takes you through all of the steps required to generate a full ClickOnce deployment using either the command-line version (Mage.exe) or the Windows Forms version (MageUI.exe) of the Manifest Generation and Editing Tool.

 
Prerequisites

This walkthrough was written under the assumption that you have a Windows Forms application that you are ready to deploy; this application will be referred to as WindowsFormsApp1. You also must install the .NET Framework Software Development Kit (SDK).

There are a number of issues you need to decide before building a deployment. First and foremost is how you will distribute the deployment: Over the Web, from a file share, or installed off of a CD. For more information, see ClickOnce Deployment Overview.

Next, you need to determine whether your application will run at an elevated level of trust. As discussed in Trusted Application Deployment Overview, by default ClickOnce applications will run in a partially trusted zone, with their exact permissions determined by whether they are hosted on an intranet or off of the Internet. If an application needs to access data on the client computer, talk to local devices, call Windows API functions, or perform other potentially dangerous operations, it will need to assert a higher level of trust. If your application requires Full Trust—for example, full access to the user's system—you can use Mage.exe to set this easily. If you want to define a custom permission set for your application, you can copy the Internet or intranet permission section from another manifest, modify it to suit your needs, and add it to the application manifest using either a text editor or MageUI.exe.

The two methods for asserting higher trust in a ClickOnce manifest are Permission Elevation and Trusted Application Deployment. In both cases, your deployment must be signed with an Authenticode certificate either generated using the MakeCert.exe tool or obtained from a Certificate Authority (CA). If you choose to use Trusted Application Deployment, you must also perform a one-time installation of the certificate onto all client computers. For more information, see Trusted Application Deployment Overview.

 

To deploy an application with the Mage.exe command-line tool
  1. Open a .NET Framework SDK Command Prompt, and change to the directory in which you will store your ClickOnce files.

  2. Create a subdirectory named bin and place all of your application files here, including executable files, assemblies, resources, and data files

  3. Create a subdirectory named after the current version of your deployment. If this is the first time you are deploying the application, you will likely choose 1.0.0.0.

     

    Note

    The version of your deployment may be distinct from the version of your application files.

  4. Move the \bin directory into the directory you created step 2.

  5. Generate the application manifest with a call to Mage.exe:

    mage -New Application -ToFile 1.0.0.0\WindowsFormsApp1.exe.manifest -Name "Windows Forms App 1" -Version 1.0.0.0 -FromDirectory 1.0.0.0\bin
  6. Sign the application manifest with your digital certificate:

    mage -Sign WindowsFormsApp1.exe.manifest -CertFile mycert.pfx
  7. Generate the deployment manifest with a call to Mage.exe. Mage.exe will, by default, mark your ClickOnce deployment as an installed application, so that it can be run both online and offline. To make the application available only when the user is online, use the -i flag with a value of f. If you use the default, and users will install your application from a Web site or file share, make sure the value of the -providerUrl flag points to the location of the application manifest on the Web server or share.

    mage -New Deployment -ToFile WindowsFormsApp1.application -Name "Windows Forms App 1" -Version 1.0.0.0 -AppManifest 1.0.0.0\WindowsFormsApp1.manifest -providerUrl http://www.adatum.com/WindowsFormsApp1/WindowsFormsApp1.application
  8. Sign the deployment manifest with your certificate:

    mage -Sign WindowsFormsApp1.application -CertFile mycert.pfx
  9. Copy all of the files in the current directory—including the version folder and the \bin folder—to the deployment destination. This may be either a folder on a Web site or FTP site, a file share, or a CD.

  10. Supply your users with the URL, UNC, or physical media required to install your application. If you are supplying a URL or UNC, you must give your users the full path the deployment manifest. For example, if WindowsFormsApp1 is deployed to http://webserver01/ in the WindowsFormsApp1 directory, the full URL path would be http://webserver01/WindowsFormsApp1/WindowsFormsApp1.deploy.

Deploying the application with the MageUI.exe Graphical Tool
  1. Open a .NET Framework SDK Command Prompt, and navigate to the directory in which you will store your ClickOnce files.

  2. Create a subdirectory named bin and place all of your application files here, including executable files, assemblies, resources, and data files.

  3. Create a subdirectory named after the current version of your deployment. If this is the first time you are deploying the application, you will likely choose 1.0.0.0.

     

    Note

    The version of your deployment may be distinct from the version of your application files.

  4. Move the \bin directory into the directory you created in step 2, and then start the graphical tool:

    MageUI.exe
  5. Create a new application manifest by selecting File, New, Application Manifest from the menu.

  6. On the default Name tab, enter the name and version number of this deployment.

  7. Select the Files tab and click the Browse... button next to the Application Directory text box.

  8. Select the directory containing your application files that you created in step 2, and click OK on the folder selection dialog box.

  9. Click the Populate button to add all your application files to the file list. If your application contains more than one executable file, mark the main executable file for this deployment as the startup application by selecting Entry Point from the File Type drop-down list. (If your application only contains one executable file, MageUI.exe will mark it for you.)

  10. Select the Permissions Required tab and select the level of trust you need your application to assert. The default is Full Trust, which will be suitable for most applications.

  11. Select File, Save from the menu, and save the application manifest. You will be prompted to sign the application manifest when you save it.

  12. If you have a certificate stored as a file on your file system, use the Sign as certificate file option, and select the certificate from the file system using the ... button.

    -or-

    If your certificate is kept in a certificate store accessible from your machine, select the Sign with stored certificate option, and select the certificate from the list provided.

  13. Select File, New, Deployment Manifest from the menu to create your deployment manifest, and then on the Name tab, supply a name and version number (1.0.0.0 in this example).

  14. Select the Publisher tab, and supply values for Publisher and Product. (Product is the name given your application on the Windows Start menu when you install your application locally.)

  15. Switch to the Update tab, and specify how often you would like this application to update. If your application uses the ClickOnce Deployment API to check for updates itself, clear the check box labeled This application should check for updates.

  16. Switch to the Application Reference tab. You can pre-populate all of the values on this tab by clicking the Select Manifest button and selecting the application manifest you created in previous steps.

  17. Choose Save and save the deployment manifest to disk. You will be prompted to sign the application manifest when you save it.

  18. If you have a certificate stored as a file on your file system, use the Sign as certificate file option, and select the certificate from the file system using the ... button.

    -or-

    If your certificate is kept in a certificate store accessible from your machine, select the Sign with stored certificate option, and select the certificate from the list provided.

  19. Copy all of the files in the current directory—including the version folder and the \bin folder—to the deployment destination. This may be either a folder on a Web site or FTP site, a file share, or a CD.

  20. Supply your users with the URL, UNC, or physical media required to install your application. If you are supplying a URL or UNC, you must give your users the full path the deployment manifest. For example, if WindowsFormsApp1 is deployed to http://webserver01/ in the WindowsFormsApp1 directory, the full URL path would be http://webserver01/WindowsFormsApp1/WindowsFormsApp1.deploy.

Next Steps

When you need to deploy a new version of the application, you will need to create a new directory named after the new version—for example, 1.1.0.0—and move the new application files into a \bin folder in that new directory. You should generate a new application manifest and store it in the new directory, and have the publisher sign the new manifest. Once you get the signed manifest back, you can use Mage.exe to update the deployment manifest and point it at the new application manifest:

mage -Update WindowsFormsApp1.application -Version 1.1.0.0 -AppManifest 1.1.0.0\WindowsFormsApp1.exe.manifest

MageUI.exe users can perform the same operation by opening up their deployment manifest, selecting the Application Reference tab, and selecting the Select Manifest button again.

After updating the application manifest reference, you will need to re-sign the deployment manifest, because changing a manifest in any way invalidates its digital signature.

See Also

Deploying .NET Framework Applications

.NET Framework Developer's Guide  
Deploying .NET Framework Applications  

The .NET Framework provides a number of basic features that make it easier to deploy a variety of applications. This section briefly describes those features and provides information about packaging and distributing applications with the .NET Framework.

In This Section

Deployment How-to and Walkthrough Topics

Provides links to all How-to and Walkthrough topics found in the conceptual documentation for deployment.

.NET Framework Deployment Features

Provides a brief overview of the deployment features in the .NET Framework.

.NET Framework Deployment Basics

Provides an overview of packaging and distributing .NET Framework applications.

ClickOnce Deployment for Windows Forms Applications

Describes how to package a Windows Forms application and deploy it with ClickOnce to client computers on a network.

Deployment Scenarios for .NET Framework Applications

Describes several possible deployment scenarios for .NET Framework applications.

How the Runtime Locates Assemblies

Describes how the common language runtime determines which assembly to use to fulfill a binding request.

Redistributing the .NET Framework

Describes where to obtain the .NET Framework redistributable package, Dotnetfx.exe, and how to use it to deploy the .NET Framework on user and server computers.

Related Sections

Deploying XML Web Services

Describes how to deploy an XML Web service.

Packaging and Deploying Resources

Describes how to package and deploy resources.

Deploying an Interop Application

Describes how to deploy an interop application.

How to: Develop a Simple Windows Forms Control

Describes key steps for authoring a custom Windows Forms control.

Walkthrough: Developing and Using a Custom Server Control

Describes key steps for authoring a custom server control.

Deploying an Application for COM Access

Describes how to deploy applications for use by COM clients.

Link:

=========================================

http://msdn2.microsoft.com/en-us/library/6hbb4k3e.aspx

March 17

Reinvention of IIS Report Pack..

While working on MS SQL Reporting Services, I came accross IIS Report Pack a set of 12 Sample Reports for Reporting Services.
 
The Microsoft SQL Server Report Pack for Internet Information Services (IIS) is a set of 12 Microsoft SQL Server 2000 Reporting Services reports that works with a sample database of information extracted from Microsoft Internet Information Services (IIS) log files.
This database can be populated with your own data using the Log Parser included with the IIS 6.0 Resource Kit.
You can use also the sample reports as templates for designing new reports.
 
Although the sample reports are really good in UI and concept, but it lacks the scalability to even support a small scale (low traffic) websites logs.
For this, it requires major changes at the DB level as well as in the Report Definition Files.
 
Since designing of MIS Reports is one of my favorite works, from the time I designed & developed MIS Reports for the India's number one SMS Service ( 8888 of Indiatimes/Times Of India ) which receives around 2 million messages a day..

I decided to make the Report Pack more scalable and usable.
To make the reports scalable enough to handle data of high traffic websites, many changes were required in the report pack which are mentioned as under:
1. Redesigning of Database
     a. Added new tables to store the summary,
     b. Added new Stored Procedures to insert and retrieve data from new tables,
     c. Removed bugs from few already existing Stored Procedures.
2. Redesigning of Report Definition Language (RDL) files,
3. Added new Report for Response Status,
4. Created a Windows Service to execute LogParser command as a schedule task, to parse IIS Logs.
 
 
By doing this MSSQL Server Report Pack for IIS got much faster with multifold increase in Report Processing speed:
1. Less Network Traffic, as only the precise summary data gets transfered over the wires (between  Database Server and Reporting Server),
2. Less Load on Database Server, as data gets processed one time that too during off-peak hours,
3. No Grouping and Summarizing of Data on the Reports' end, this make displaying of Report a breeze,
4. No need to store high volumes of data parsed from IIS Logs in database table, this further increases the database query processing speed,

I hope someone from Microsoft reads this post ;)
 
Photo 1 of 15