Tuesday, December 25, 2007

Happy Christmas

Wish you all a very happy Christmas and hope you enjoy it with your family and friends.

Friday, December 7, 2007

MOSS Errors

Now, I do have an answer to the following error messages:

Error 1:
While trying to backup the whole farm, I saw the error message:
Object Shared Search Index failed in event OnPrepareBackup. For more information, see the error log located in the backup directory. UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {3D42CCB1-4665-4620-92A3-478F47389230} failed due to the following error: 80070005.

Event Viewer Error messages

Error 2:
Event Type: Error
Event Source: Windows SharePoint Services 3
Event Category: Timer
Event ID: 6398
Date: 12/7/2007
Time: 1:47:40 PM
User: N/A
Computer: ****ServerName******WIKI
Description:The Execute method of job definition Microsoft.Office.Server.Search.Administration.IndexingScheduleJobDefinition (ID 1f3483b5-34a2-421a-9f3f-92a9c5251363) threw an exception. More information is included below.
Retrieving the COM class factory for component with CLSID {3D42CCB1-4665-4620-92A3-478F47389230} failed due to the following error: 80070005.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Error 3:
Event Type: Error
Event Source: Office SharePoint Server
Event Category: Office Server Shared Services
Event ID: 6481
Date: 12/7/2007
Time: 1:47:33 PM
User: N/A
Computer: ****ServerName******WIKI
Description:Application Server job failed for service instance Microsoft.Office.Server.Search.Administration.SearchServiceInstance (1a9460af-60a2-4fc5-8fb2-c53f9a48063a).
Reason: Retrieving the COM class factory for component with CLSID {3D42CCB1-4665-4620-92A3-478F47389230} failed due to the following error: 80070005.
Techinal Support Details:System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {3D42CCB1-4665-4620-92A3-478F47389230} failed due to the following error: 80070005. at System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType) at System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(Type objectType) at System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(Type serverType) at System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(Type serverType, Object[] props, Boolean bNewObj) at Microsoft.Office.Server.Search.Administration.Gatherer.get_AdminObject() at Microsoft.Office.Server.Search.Administration.Gatherer.ProvisionGlobalProperties() at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.Synchronize() at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob)
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Solution:
The application pool account needs to be given launch & activate permission to the DCOM 'osearch' service. In my case it was the network service which was getting accessed denied. I had to give it the permissions and there were no errors in the eventviewer.

  • Start -> Run -> DCOMCNFG
  • Component Services ->Computers->My Computer->DCOM Config
  • Look for osearch and right click it to give lauch, activate permissions to the desired account
  • Sometimes you need to give the IISWAM REG ADMIN service.

Hope this helps someone.

Thursday, December 6, 2007

I am back !

Its been long since I posted anything. I was on vacation for nearly a month and recently have been tied up with work. Probably, I will start posting something really soon.

Tuesday, October 9, 2007

REMIX 2007 at Boston

I just returned back home after attending REMIX for two days and it was absolutely wonderful. I got to meet some of the most Geeky people and also gotto see some Geeky stuff. I have a lot of good things to write about it, but this is not the right time. I am really dead tired especially after the awful air traffic at Philadelphia.

If you cannot wait till my posts, you can check out the videos at:

Thursday, October 4, 2007

How to become a DBA from a Developer

Today, I was listening to an audio talk show on RunAsRadio about being a better DBA. This show was hosted by Richard Campbell and Greg Hughes with Brad McGhee as the guest.
Brad gave some real good tips for becoming a better DBA.

Here are a few tips from the show:
  • Love the DBA work. If you are not going to love something, you will never be able to understand it.
  • Take responsibility. This is the only way you will be able to learn something new.
  • Understand your organization's data. This will help you a lot in better structuring your databases.
  • You have to be a good Problem Solver.
  • Read Books...this is one of the easiest ways to learn something quickly. I still prefer books to electronic media.
  • Take Classes/Training.
  • Participate in forums.
  • Be active in your community and attend events (like PASS).
  • Always keep looking for the Dirtiest, hardest jobs. This will help you by giving you new harder challenges everyday.....keeps your brain sharp.
  • Be proactive (prepare for next failure).
These are only a few tips and if you want to know more, you check out the audio here.
Thanks for the great show guys and keep on coming up with such shows....

Wednesday, October 3, 2007

Moving SSIS packages from Development to Production

I built a few packages on my development machine and it worked fine without any major hiccups. Then after moving the packages to the destination server, it started throwing weird errors. I had first changed the connection strings in the package configuration file but still the following errors started showing up :

First Error:

a)
Failed to decrypt protected XML node "PackagePassword" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.

b)Failed to decrypt protected XML node "DTS:Property" with error 0x80070002 "The system cannot find the file specified.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.

This happens because of the package protection level which is by default set to "EncryptWithSensitiveKey". Setting the package protection level to "DontSaveSensitive" helped me to remove these errors. This can be done by right clicking the package in the designer and changing the properties
Also, I setup the proxy sever agent so that the package runs under my account(the one which created the package)

Second Error:

After the first error was resolved, now was the time to run the packages. When I ran the package, it threw an error which was something like this:

SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "*****" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed

The error was happening in an access datasource. I went back into the package configuration file and removed the initial catalog parameter value(which was empty by the way) and voila, it worked.
This post helped me to get through :
https://forums.microsoft.com/msdn/showpost.aspx?postid=73863&siteid=1

Thursday, September 20, 2007

Code Camp

Last week I was at Phili Code camp and it was great to be there. There were some really good sessions on Advanced asp.net, Http handlers, and Test driven development. I attended 4 sessions and though it was a code camp, only the first two sessions had something related to code and the rest were more kind of presentations. Other than that I have been pretty busy with my schedule without much time for my own projects. Hopefully, I will post something interesting soon.

Tuesday, August 28, 2007

PDF ifilter for MOSS 2007

In order to index pdf documents and their content, you need to install an out of box ifilter (ex. Adobe) on the Indexing Server(remember it is the indexing server and not the web front end server). This is what I did :

  • I stopped the IIS admin service on the Indexing server and WFE server
  • Installed the ifilter on the Indexing server
  • Added the icpdf.gif image(pdf icon - search in google for this one) to the WFE server (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Images)
  • Added the following pdf mapping in the Docicon.xml file (C:\Program Files\Common Files\Microsoft Shared\Web server extensions\12\Template\Xml\DOCICON.XML)
  • Added the pdf file type to SSP -> Search Settings -> File Types
  • Did an iisreset(on both the web and index server) and started a full crawl on the required content sources

Initially, I installed it only on the web front end server and though it would crawl the pdf's, it would throw an error like "the file might be corrupted or could not load the item". Later I realised that it needs to be installed on indexing and not web front end server. Hope this helps someone....

Sunday, August 26, 2007

MOSS 2007 Search and Basic Authentication

During the weekend, I tried to start a MOSS crawl and during the crawl, the crawler would crawl only specific content and was giving an access denied message for most of the content. It took me sometime to figure out that MOSS crawl wouldn't work with Basic Authentication. I knew that it would work with Windows Authentication, but had no idea about this one. Once I changed it to Windows Authentication, the crawl was working properly. So finally the moral of the story is : Search crawl works only with Windows Authentication and nothing else (not basic and not forms definitely.....)

Friday, August 24, 2007

MOSS Errors in event log

These are the errors, I see everyday....
-------------------------------------------------------------------------------------
Event Type: Error
Event Source: Office Server Search
Event Category: Gatherer
Event ID: 10036
Date: 8/22/2007
Time: 6:23:45 AM
User: N/A
Computer: ApplicationServer
Description:
A database error occurred.

Source: Microsoft OLE DB Provider for SQL Server
Code: 17 occurred 1 time(s)
Description: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.

Context: Application '72a8496b-8f45-40e0-9c3b-0bfeb9565e52'

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

-------------------------------------------------------------------------------------

Event Type: Error
Event Source: Windows SharePoint Services 3
Event Category: General
Event ID: 27745
Date: 8/22/2007
Time: 6:23:56 AM
User: N/A
Computer: ApplicationServer
Description:
The description for Event ID ( 27745 ) in Source ( Windows SharePoint Services 3 ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: #50071: Unable to connect to the database SharePointConfig on sqlserver. Check the database connection information and make sure that the database server is running..

-------------------------------------------------------------------------------------


Event Type: Error
Event Source: Office SharePoint Server
Event Category: Office Server Shared Services
Event ID: 6482
Date: 8/22/2007
Time: 6:41:26 AM
User: N/A
Computer: ApplicationServer
Description:
Application Server Administration job failed for service instance Microsoft.Office.Server.Search.Administration.SearchServiceInstance (0a1fd5de-493b-4cf7-b48e-7920103d4628).

Reason: Object 72a8496b-8f45-40e0-9c3b-0bfeb9565e52 not found.

Techinal Support Details:
System.Collections.Generic.KeyNotFoundException: Object 72a8496b-8f45-40e0-9c3b-0bfeb9565e52 not found.
at Microsoft.Office.Server.Search.Administration.SearchApi.get_App()
at Microsoft.Office.Server.Search.Administration.SearchApi.SetUsersPermittedToQuery(String[] userNames, Boolean force)
at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.Synchronize()
at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob)

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

-------------------------------------------------------------------------------------

Event Type: Error
Event Source: Office SharePoint Server
Event Category: Office Server Shared Services
Event ID: 6482
Date: 8/22/2007
Time: 8:18:36 AM
User: N/A
Computer: ApplicationServer
Description:
Application Server Administration job failed for service instance Microsoft.Office.Server.Search.Administration.SearchServiceInstance (0a1fd5de-493b-4cf7-b48e-7920103d4628).

Reason: The trust relationship between this workstation and the primary domain failed. (Exception from HRESULT: 0x800706FD)

Techinal Support Details:
System.Runtime.InteropServices.COMException (0x800706FD): The trust relationship between this workstation and the primary domain failed. (Exception from HRESULT: 0x800706FD)
at Microsoft.Office.Server.Search.Administration.MSSITLB.IGatherApplication2.SetUsersPermittedToQuery(String[] psaAccountNames, Int32 fForce)
at Microsoft.Office.Server.Search.Administration.SearchApi.SetUsersPermittedToQuery(String[] userNames, Boolean force)
at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.Synchronize()
at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob)

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.


-------------------------------------------------------------------------------------

Event Type: Error
Event Source: Windows SharePoint Services 3 Search
Event Category: Gatherer
Event ID: 2424
Date: 8/23/2007
Time: 6:45:02 PM
User: N/A
Computer: WebServer
Description:
The update cannot be started because the content sources cannot be accessed. Fix the errors and try the update again.

Context: Application 'Search', Catalog 'index file on the search server Search'

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
-------------------------------------------------------------------------------------

Friday, August 3, 2007

Bourne Ultimatum - First day

I watched the last part of the bourne series today and as the name says, it is really ultimate. In this movie, Jason bourne tries to understand his origin and during the process completely knows about himself in the end. Julia styles is good in her role and so is Joan Allen. The action packed sequences are worth watching a second time. From the beginning to the end, its packed with action giving very little scope for dramatic sequences. Do watch the movie if you like action movie and you won't walk out of the movie hall disappointed. Overall, its an amazing end to the trilogy.

Wednesday, August 1, 2007

Core Schema Files in WSS 3.0

The following are the core schema files in WSS 3.0 and are really important when customizing the site definitions:
  • WebTemp.xml -- Defines the configurations available for creating sites
  • Onet.xml -- Defines the top navigation, quick launch areas, specifies which lists are available, specifies the document templates and defines the base types of lists
  • Schema.xml -- Defines the forms, views, toolbars and any special fields for a list type
Always create a copy of these files instead of directly editing them. All the customized files are finally merged with the orginal one at runtime.

Thursday, July 19, 2007

Origin of the IPhone

The first prototype of IPhone was released in as early as 1984. Check this article to know more.

Wednesday, July 18, 2007

wss 3.0 - Deleting item from a list

This article gives a good idea about deleting an Item from a list. But upon using the given code, "Specified argument was out of the range of valid values". I got the collection of items into a listitemcollection and looped through the collection and deleted the item. There were around 506 items in the list initially and method stopped after deleting 255 items. The second run reduced the items to 125 after that to 60, 30, 15, 7 items. Pal suggested me delete the item by getting their ID instead of deleting them using the index. This did the trick and worked for me perfectly.

So while deleting an item from the list, get the item ids into an arraylist and delete the items in the ListItemCollection using the item id. This should do the trick and work beautifully.

Wednesday, July 11, 2007

IPhone

I bought an IPhone on July 4th and it is awesome( This is the reason, I was not blogging for the past 1 week). The User Interface is mindblowing and its pinch feature is beautiful. This is what, I liked in my Iphone:
  • User Interface
  • Pinch feature : Ability to zoom in and zoom out using your fingers
  • Unlocking the phone using a single slide button
  • Managing the contacts easily ( I guess its never done like this before)
  • Adding multiple email accounts
  • If you get a phone call while listening to a song, the song automatically fades out and after you answer the call, the song starts playing back again.
  • Integrated microphone in your headphone
  • Ability to move to the next song and answer the phone call using a single button on the headphone
  • The camera has a nice flash like feature(it whooshes in and out...)
  • Ability to connect to the available wi fi networks automatically
  • Connect to Edge network only if, wifi in not available
  • It automatically adjusts the video quality if you are using an Edge network or WiFi network
  • Virtual Keyboard (once u get used to it, its excellent)
  • Google Maps and YouTube in my phone
  • Magnifying glass during editing content
Now here is what I did not like in my Iphone
  • The IPhone headjack cannot be used with any other custom headphones. I hate it, as I have to buy a new auxillary cable for my car or a custom adapter(belkin one costs somewhere around 10 bucks)
  • It is bulky to handle the phone for answering calls. It is better to use the headphones or have the speaker on
  • When you open a browser, you cannot close it. In order to close it, you have to open a new one and close the old one
  • Cut, Copy and Paste feature is not available
  • Edge network is damn slow. Try to view a youtube video using your WiFi network and later using Edge network, you will notice the difference
  • You will not be able to recieve calls, while browsing using Edge network
  • No Javascript and Flash support
  • Only Youtube videos can be viewed
The main disadvantage is AT&T. Their service sucks and wouldn't have gone to them if not for IPhone. They wouldn't transfer my existing phone no as they do not have service in my previous place.
Overall its an awesome gadget and should be definitely tried out unless you want to wait for the IPhone Nano (I heard its going to be released in the last quarter of 2007). But I guess it would not be a full fledged IPhone .

Tuesday, July 3, 2007

Google acquires Grand Central

Google is now moving towards voice communication, which is probably going to be a part of GTalk. Grand Central is an Unified Communications company that lets you integrate your home, mobile, work phones and voicemail boxes into one central account. This is definitely going to be a big boost for GTalk and maybe Grand Central could be integrated into gmail itself. I have been using all google products (igoogle,gmail, google docs & spreadsheets, reader, gtalk, orkut, eblogger and many more of its innovative products). It is probably the most robust app built till now.

Thursday, June 28, 2007

Error HRESULT E_FAIL has been returned from a call to a COM component.

When the MOSS crawl was started, it started throwing up this exception:

System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.

We had no clue about this one and the log messages weren't much helpful. They contained the following error:

CSTS3Accessor::InitURLType: Return error to caller

But checking the eventviewer on the app server(where the indexer was running) showed the following error:

Content sources could not be accesed.

All these messages started throwing up before forms authentication was turned on. For Forms authentication (using Active Directory membership provider) to work, imperonation was turned off.

This was the root cause of the problems. Turning on imperonation was supposed to do the trick and get everything to work, but looks like we have more bugs in the code and hence we had to go back to switch back to the default membership and role provider. Switching back to the previous state helped in indexing/crawling the content. The crawl started again without any problems.

Also careful planning is required if you plan to use forms authentication. Enterprise Search will not work with forms authentication without some workarounds. Allocate some good chunk of time to work on it. You need to create a two zones :

  • Default Zone - Forms authentication for external users.
  • Custom Zone - Extend the previous web application to create a new zone. Configure it use Windows authentication(with NTLM) and let the crawler crawl across this zone.

Atleast one zone must be configured to have NTLM for the search to work. Also make sure that the content access account has access to this zone.

Sunday, June 24, 2007

Been really busy these days...

Not having much time to do some reading as a big project is getting to roll out. Iam planning to blog regularly, but with the intricacies in my life, its really hard to do to find time to do something interesting.
For now, check out the new interactive live tv at : http://beta.livestation.com/

Its a lazy sunday afternoon out here and Iam getting ready to doze off....

Wednesday, June 20, 2007

Sharepoint 2007 Backup, Restore, Migration

The built in Sharepoint Backup and restore tool essentially backs up everything(including indexes, but not sure about Custom Solutions, Alternate Mappings, IISMetabase). I was not able to test this one, but will do it sometime soon.

In order to have a fail proof recovery plan, one might follow these steps:
  • Backup the whole farm using the built in backup tool (either through central admin/ stsadm)
Command: stsadm.exe -o backup
-directory \\backupfolder\ -backupmethod full
  • Back up all the databases(content and configuration using sql server tools)
  • Backup the web front end servers(IIS Metabase, Hive, Inetpub, IIS logs etc.)
In case of disaster, you could use stsadm/central admin to restore the complete farm. Also, you can create the Web Application, restore the content databases and intall the custom solutions. You should create a new configuration database and if needed you can also restore the old one. Now this method will not restore the indexes or any settings in the central admin(Alternate mappings, search scopes, bdc and others) .You will end up creating the scopes and reindexing again.
If you want to migrate from one farm to another, check this article: http://blogs.msdn.com/priyo/archive/2006/09/15/755490.aspx

Saturday, June 16, 2007

Photosynth

Photosynth is a new technology from Microsoft Research which enables to combine and view pictures in a three dimensional space. It's a Microsoft and University of Washington collaboration project. With a huge collection of pictures you can have a detailed view of a particular element on the Photo.
Do you want to try it ? Check it out here.

Here are a few videos to know more about it:

http://labs.live.com/photosynth/video3.htm
http://labs.live.com/photosynth/videodemo.html

This is not open to the public but you can have a look at the available collections here.
If you want to know more about it, Please visit their website at:
http://labs.live.com/photosynth/default.html

More videos:
Photosynth and Virtual Earth:


Video: Virtual Earth and Photsynth Tour of St. Peter's Basilica

Friday, June 15, 2007

Sharepoint 2007 Backup

Recently I have been looking for different backup options for Sharepoint 2007. You have two options for it:
  • Traditional Backup (using Central Admin, Stsadm tool, IIS Metabase backup, File System backup of Custom Assemblies, binaries and code, IIS logs, event logs, home directories, HIVE and many more)
  • Using Third Party tools like 'http://www.google.com/search?q=sharepoint+backup'
Central Admin : You can backup the databases from here, but cannot schedule a backup
STSadmin tool: Much more control than the previous one but not much of a granularity
Third Party tools: Provide much granularity upto an item level. But need to shell out lotta of green paper...
This post is not intended to give a detailed explanation of the backup procedure. Its is just a place to find some of the links to the resources.
Joel Oleson as always has a great post here. Things to expect here : What to Backup and what tools to backup?
Technet has an article on the backup plan.
More articles:
http://www.compliancesolutionsgrp.com/blog-content/Practicing%20SharePoint%202007-Backup%20and%20Recovery.pdf
Relationship between IIS Metabase and Configuration Database: http://blogs.msdn.com/joelo/archive/2007/01/02/relationship-between-the-iis-metabase-and-sharepoint-configuration-database.aspx
Backup Sharepoint Search: http://blogs.technet.com/wbaer/archive/2007/03/13/planning-for-disaster-microsoft-office-sharepoint-server-2007-search.aspx
I guess that's it for this friday.....off I go.

Wednesday, June 13, 2007

AppSettings in a file other than web.config

As the number of websites in Sharepoint increases, the bin folder gets bigger and also the web.config becomes larger. But, you can have multiple web.config's and have the Appsettings in a different file. Thanks to Mark for bringing this to my notice.You can use the file element of the appSettings attribute to specify the optional file.

Syntax:
<appsettings file="customAppSettingsFile/">
or
<appsettings file="customAppSettingsFile">
<add value="testvalue1" key="test1">
<add value="testvalue2" key="test2">
</appsettings>

You can specify the core appsettings in web.config and the extra ones in customAppSettingsFile. Any change to customAppSettingsFile will not restart the application. You have to modify web .config to make the application restart.

Tuesday, June 12, 2007

TechED and IPhone Videos

The most talked about video at TechEd was probably the Back to the Future skit. Check it out here:





You can also watch the entire KeyNote at:
http://www.microsoft.com/winme/0706/29992/teched_.asx

Also other videos can be found at Virtual Studio at:
http://www.virtualteched.com/pages/videos_2.aspx

As most of you know, Apple has released quite a few IPhone videos, you can find them here:
http://www.apple.com/iphone/ads/


Monday, June 11, 2007

Safari on Windows


Apple today at WWDC conference released safari for Windows and it is supposed to be twice as fast IE on windows. Hope this is true !!! Also, Mark your calendars for June 29th - 6 PM, the date and time when IPhone gets released.
Update: Just installed Safari on Windows XP(on my personal laptop). As promised, it is much more faster than IE. I use igoogle and each tab has lot of gadgets on it. I use a lot of rss readers and on IE, it takes sometime to actual download everything. But with Safari, it looks that all the gadgets got updated really quickly.
Also, I use google recommendations as a tab and it never opened in IE. It used to throw a javascript error, but with safari it was damn quick to open with no errors. Great one indeed!!!
This is the error thrown up with IE, google recommendations on igoogle tab:

P.S: As you can see, the gadgets were still say as loading...

Friday, June 8, 2007

One more Friday...

Ahhaaa...there comes one more friday and as usual this week flew by quickly in a flash. I rented out three movies to watch this weekend and should be a busy one.

Okay, as most of you reading know about Microsoft Surface and if you want to quickly get on an hands on feeling about it , check out the cool app at http://delay.members.winisp.net/SilverlightSurface/ (you should install silverlight)


It shows the capabilites of Siverlight and miniature view of Surface functionalities. You can check out more details about it at delay's blog. You can find more silverlight examples at : WynApse.com and Silverlight Examples & Samples.

Today is the last day of TechEd and Iam waiting to get my hands on the dvd. Also, 3 million IPhones are expected to be available on June 29 according to some resources. I guess that's all from me for today.Sayonara...

Thursday, June 7, 2007

Teched 2007 annoucements and other

Even though Iam not at TechEd, Iam trying to keep an eye on the things happening there. Here are a few announcements:
  • Orcas, the next version of Visual Studio is officially Visual Studio 2008 (Visual Studio Shell will be release along with it)

  • Katmai, the next version of SQl server is officially SQL Server 2008

  • Acropolis, a UI framework for WPF
Earlier this month, Google announced Google Gears which allows a disconnected Web Applications. It is an open source browser extension, that allows Web Applications to provide offline functionality. It installs a local relational database to store the data locally and uses javascript api's to synchronize itself, when connected to the internet.
Siverlight + Google Gears ???? Check it out here.
IPhone is officially going to get release on June 29th and its believed they will be vanished as soon as they arrived. Long queues are expected at Cingular Stores on 29th as they cannot be preordered.
Also HTC has released a touch phone in competition with IPhone. Here is a pic of it from
http://www.intomobile.com/2007/06/05/htc-launches-apple-iphone-killer-htc-touch/




Wednesday, June 6, 2007

Sharepoint 2007 Customization Policy Whiltepaper

This white paper dicusses policies for implementing and managing customizations in a Sharepoint based environment. Whitepaper

Original Url:
http://office.microsoft.com/download/afile.aspx?AssetID=AM102310211033

Saturday, June 2, 2007

Asp.NET ViewState

Rex Tang has a good list of article on Viewstate.

http://blogs.msdn.com/rextang/archive/2007/05/25/2868250.aspx

Being lazy, Iam just copying the links from his blog.

Articles to read:
Understanding ASP.NET ViewState - by Scott Mitchell
Speed Up Your Site with the Improved ViewState in ASP.NET 2.0 - by Fritz Onion
ViewState Encoding in ASP.NET 2.0 - by Fritz Onion
How do I reduce this ViewState thing? - by Bertrand Le Roy
ASP.NET 2.0: ViewState Numbers - by Dino Esposito
Cool ViewState Decoder - by Scott Guthrie
ViewState: All You Wanted to Know - by Paul Wilson
Tip on Saving ViewState on Server - by Paul Wilson
ASP.NET ViewState = Appendix? - by Scott Hanselman
ASP.NET ViewState: Pox on mankind? or clever like a fox? - by Scott Hanselman
Moving ViewState to the Session Object and more Wrongheadedness - by Scott Hanselman
Thoughts on grids and viewstate - by Dino Esposito

Decoding Tools:
ViewState Decoder 2.1 - by Fritz Onion
Page ViewState Parser - by Paul Wilson
ViewStateAnalyzer 2.0.0 - by Cristian Civera (via Scott Guthrie)
ASP.NET ViewState Helper - by Binary Fortress Software
ASP.NET ViewState Helpler Fiddler 2 Extension - by Binary Fortress Software

igoogle 6 tabs and no more

I have been using google homepage to add my content. Recently I moved to iGoogle and now I cannot add more tabs to the homepage. I cannot even see the add tab on the homepage. Any ideas anyone ?


Update : June 12th
Just noticed, now you can add more tabs to igoogle:

Friday, June 1, 2007

W3Wp.exe belongs to which AppPoolID ?

If you have different application pools and you need to know which application pool  the worker process belongs to, run the following command.
C:\WINDOWS\system32>cscript iisapp.vbs

Windows Live Writer

Windows live writer beta 2.0 has been announced and it looks pretty decent. I installed it just now and you have to enter the blog url, username and password to get started. It connects to Windows Live Spaces, SharePoint, WordPress, Blogger, LiveJournal, TypePad, Moveable Type, Community Server and few other blogs.
Iam writing this post using Live Writer and lets see if it gets published.
You can download it from here: http://writer.live.com/

Thursday, May 31, 2007

Bill Gates and Steve Jobs

Being in E.S.T is a big problem. Most of the big events take place late in P.S.T and staying up late for these events is a big problem. Yesterday was one such day with a big event. The software moghuls met yesterday at around 7:20 P.S.T and in order to have a live look(transcript) at the event, I had to hit F5 key so many times that I almost broke it. You can find the whole conference at http://d5.allthingsd.com/.

Here are the videos:

Prologue



Part 1


Part 2



Part 3



Part 4



Part 5



Part 6



Part 7



Highlight Reel

Wednesday, May 30, 2007

Steve Jobs at D5

Steve Jobs spoke about Ipod, IPhone, Itunes, DRM and bunch of the other stuff. Here is a gist of it.
Steve Jobs quote about Windows:
Many people say that Itunes is the best app on Windows. Its like giving a glass of Ice Water to somebody in HELL.
Ha..ha..ha.....It was damn funny.
Where is apple heading to ?
  • Mac
  • Music
  • Phone
  • Apple TV(Hobby)
Sales across the world
  • PC - x
  • Mac - 3x
IPhone
  • Shipping in late June
  • What are the undisclosed features ? No answer to this.....
  • Wireless Ipod or Phone with Ipod?
DRM
  • DRM free songs on Itunes.
  • But how does Apple make profit, if songs are DRM free?


    You can watch the video here....

You can also find the transcript and the video at engadget.
Iam still waiting the meeting of the MOGHULS (Steve Jobs and Bill Gates). I will post it as soon as I get it. Can't wait to see it....

Microsoft Surface

Today at the D5 conference, Microsoft announced it secret project - Microsoft Surface also know as coffee table. Thanks to Mark for passing the information along.
Its an awesome product from Microsoft and believe me, it introduces a whole new generation of ubiquitos computing.

This product is completely built using WPF and .NET Technology.

You can learn more about it at (do not forget to watch the videos):
http://www.microsoft.com/surface/

Popular Mechanics Video:




Some more pictures of Microsoft Surface are shown below. You can directly download them from Microsoft's Website:
http://download.microsoft.com/download/3/2/7/327b86b8-014e-4787-a435-dbe8aec8f9c6/SurfaceImages.zip
























Tuesday, May 29, 2007

Wallop invitations....

I have a few Wallop invitations with me. Thanks to Dennis, for giving me one.

So, What is wallop?

Wallop is a new social networking where friends can share pictures, music, notes and lot of other cool stuff. A person does not need to no any programming knowledge to do this. Wallop also offers blogging and "mods", which can be developed, sold, bought on Wallop. Mods are expressions which can be used to express your thoughts, feelings. I tried it out and you should also. Let me know, if you need an invitation.


Monday, May 28, 2007

Niagara Falls - Memorial Day - 07

For the first long weekend of this year, I went to Niagara Falls (american one). Niagara falls is beautiful, especially Maid of the Mist was awesome. Here is a picture taken on the ride:



Here is one more pic:

Thursday, May 24, 2007

Pirates of the Carribbean - At world's end ...1st day 1st show

Just watched the 3rd part of Pirates of the Carribean. It did meet my expectations by giving me complete entertainment for little less than 3 hrs. Although the movie could have been made shorter by increasing the pace in the beginning.

The movie starts of in an expected way by people setting out in search of Jack Sparrow. The crew goes to singapore to get a pirate's help and finally with the help of the map/crew/ship get hold of Sparrow. In the meantime, the admiral captures Davey Jones heart and this results in
Davey Jones and the Evil admiral getting united to end piracy. The pirates across the world get united to fight against the admiral and davey jones.

In this movie, you come to know about Davey Jones love history. William Turner has to choose between his love and father which eventually results in him becoming the captain of ...I don't want to be a spoilsport by revealing it....You should watch the movie to know more.

Keira Knightley looks beautiful as usual and Orlando bloom is okay. Johnny depp once again is the star of the movie.

Good things about the movie:
  • Special Effects....ah...this one is the killer of all....
  • Jack Sparrow
  • Jack Sparrow's humor had people in splits....
  • The battle sequences
  • Miss Swan and Mr Turner's love story ??? This is an interesting one. Does the saga end or continues for one more time ?
The other side:
  • I did not clearly understand if there was one more part coming up
  • The movie could have been trimmed in the beginning
  • Characters stepping in and stepping out rapidly
  • Strictly for people who watched the other parts of the movie, unless you want to get lost in a maze
  • Many characters end in this movie, which implies this may be the last one
Its almost midnight and I need to sleep...yawn.....

Wednesday, May 23, 2007

Windows Server 2008 naming video

By Bill Gates:


Video: WinHEC 2007 - Windows Server 2008 Announcement


check the cute naming video for Longhorn server :




Here is a direct link:
http://www.microsoft.com/winme/0705/30054/Windows_Server_Naming_HD_MBR.asx

Internet Support

Just found this video on YouTube. I literally fell out of my chair after seeing this one...

Monday, May 21, 2007

InfoPath 2007 RichTextBox Control

Problem:
We are using InfoPath Form services in MOSS 2007. We tried to use the Multiline text box control but it doesn't work properly in IE6(it works fine in IE7) .Upon googling, we found out that replacing the multiline textbox with RichTextBox would solve the problem.
But now the rich text editor doesn't show up upon clicking in the RichTextBox control. Instead, a javascript error is thrown(error related to Core.js, object required).
As a work around, we used a single line textbox instead of multiline.This works fine on the dev box and production during testing, but randomly fails to an outside user. So, how do we fix the problem ??? We are not able to reproduce the error either using IE6 or IE7 but for sure it fails for someone outside the network. The only option is contacting microsoft. But would I ? naahhhh.....not again...
Solution:
We called microsoft last week and were given a 48hr window :( , but upon not hearing from them I called back again today to be in the queue for 5.5 hrs. Looks like this problem is here to stay for sometime......will post soon once I find the solution.

May 2007 Content for MOSS 2007 and WSS 3.0

From Randall's blog

Technical Articles
Screencasts

Friday, May 18, 2007

MOSS Training

ELearning Training

Monday, May 7, 2007

MOSS Sites

Lot of sites have been moved to MOSS. Here are a some of them:

Lot of sites have been moved into MOSS. MOSS is definitely the most happening tech.
With a bunch of new technologies coming out this year, its been a hard time to keep a track of them. With the advent of SilverLight, Orcas, WPF, WCF, WWF, Expression, blend and lot of other technolgies, how can we a developer keep himself uptodate with these new ones ?
I have not even used Visual Studio 2005 completely and we Orcas now. .NET 3.0 has been shipped even before completely exploiting .NET 2.0.
The presentation about Silverlight at MIX have mind blowing. You can watch some of the videos here:
http://visitmix.com/
Also you can find more videos on Microsoft's website and also on Channel 9.
Update 1:
One more Moss site: http://www.westrac.com by Vivid Group

Friday, May 4, 2007

Tuesday, May 1, 2007

Event Handling example

I was trying to learn about the event handling mechanism in .net and stumbled across lot of good examples. Here is a version, I wrote using those examples (Credit goes to the original author who wrote this one). Apologize for the poor indentation :(

SourceURL: http://www.codeguru.com/csharp/csharp/cs_delegates/eventhandling/article.php/c4769/

namespace TestConsole
{
//Declare a delegate for EventHandlers
public delegate void MyEventHanlder(object sender, MyEventArgs e);

//Declare custom EventArgs to pass the event data
public class MyEventArgs : EventArgs
{
//field to capture the event data
public string MyEventArgumentData;
}

//class responsible for raising the event
class Publisher
{
//Declare the Event whose type is of delegate type
public event MyEventHanlder MyEvent;

//Function that raises the event
public void OnMyEvent(MyEventArgs e)
{
//Check for any subscribers
if (MyEvent != null)
{
//Sending a notification to all the subscribers of the event
MyEvent(this, e);
}
}
}


//class reponsible for handling the event
class Subscriber1
{
//Implement the EventHandler
public void OnMyEventHandler1(object sender, MyEventArgs e)
{
Console.WriteLine("In the subscriber 1 event handler and the EventArgs is {0}", e.MyEventArgumentData);
}

//Subscribe to the Event

public Subscriber1(Publisher p)
{
p.MyEvent += new MyEventHanlder(OnMyEventHandler1);
}
}

//class responsible for handling the event
class Subscriber2
{
//Implement the EventHandler
public void OnMyEventHandler2(object sender, MyEventArgs e)
{
Console.WriteLine("In the subscriber 2 event handler and the EventArgs is {0}", e.MyEventArgumentData);
}

//Subscribe to the Event
public Subscriber2(Publisher p)
{
p.MyEvent += new MyEventHanlder(OnMyEventHandler2);
}
}
}

Invoking Class:

class Program
{
static void Main(string[] args)
{
Publisher p = new Publisher();
Subscriber1 s1 = new Subscriber1(p);
Subscriber2 s2 = new Subscriber2(p);
MyEventArgs e1 = new MyEventArgs();
e1.MyEventArgumentData = "Event 1";
p.OnMyEvent(e1);
}
}

Monday, April 30, 2007

EventHandling and Delegates

I found a few good links on eventhandling and delegates:

http://www.developerfusion.co.uk/show/2137/3/

WebSnapr - Website Thumbnails For Your Site

WebSnapr - Website Thumbnails For Your Site

Useful tool for taking snapshots of a website. Check it out.

Saturday, April 28, 2007

Understanding ASP.NET View State

Understanding ASP.NET View State

I did not have a good understanding about ViewState until, I read the above article. It was other thing that I did not get a chance to use ViewState.
I always thought that viewstate restores the textbox, checkbox and other server controls(which implement IPostBackHandlerInterface) values across postback.
But actually, the LoadPostData event restores the values of the controls across PostBacks. ViewState is used to persist changed information across postbacks.
For ex:
A page contains three controls :
label - text= "Message",
button -text/id="ChangeMessage"
button -text/id="NoChange".

The ChangeMessage button changes the value of the label in its click event to "NewMessage".
The NoChange button does not do anything.

With ViewState Enabled, if you click the ChangeMessage button and then NoChange button, the label will be displaying NewMessage.
But with ViewState disabled, you will see that the label will be just Message instead of NewMessage.

The ASP.NET HTTP Runtime

The ASP.NET HTTP Runtime

An excellent article if you want to know the internals of ASP.NET and IIS. This article answers the following questions:

How are requests passed from IIS to the worker process?
What happens after the worker process takes over the request?
What happens on the file system when a request is made?

This is one of the few articles which gives a complete life cycle of a request. Hats off to Dino Esposito for writing a great article.

Thursday, April 26, 2007

Wednesday, April 25, 2007

AppPool recycle

Instead of restarting the IIS using IISReset, which would recycle all the AppPools on the server, you can just recycle the required AppPool using the following command:

%windir%\system32\cscript.exe c:\windows\system32\iisapp.vbs /a "[App Pool Name]" /r

You can create a shortcut for the above and add it to your toolbar

Sunday, April 22, 2007

Implementing technologies...

The past few days have been a roller coaster ride for me. I have been learning quite a few new things in the recent past. My organization has been going through a complete makeover and thanks to the IT director, we are given the latest tools and technologies to play around with. My organization has been the foremost in implementing VISTA across the whole company and we have implemented the first phase MOSS 2007.
Every day for the past few months have been great for me. There has not been a single day when I did not learn something new. Thanks to my fellow developers, it has been a great learning experience for me. I started out learning Analysis Services, Integration and reporting services. Now I have been working on SharePoint development.
Every time I jump into a new technology with a determination to learn its internals, I end up just learning the required stuff and moving ahead. Sometimes it feels as if I am able to retain anything I have learnt. But I guess, this is how it works and should work.

Tuesday, April 17, 2007

Page Processing Model

Page Processing Model
I was looking for this particular page processing model for the last few days. Finally got sometime to find one:
The following list gives a step-by-step breakdown of how ASP.NET 2.0 and Windows SharePoint Services 3.0 interact to render pages in a SharePoint site:


  • The browser requests a Web page from Microsoft Internet Information Services (IIS).
  • IIS passes the request to ASP.NET 2.0.
  • An HttpApplication pipeline is created for the request.
  • ASP.NET 2.0 fetches the page via the Windows SharePoint Services 3.03 file provider.
  • ASP.NET passes the URL to the file provider, and the file provider fetches the page and returns the page stream. The Windows SharePoint Services file provider implements caching and reduces round-trips to the database.
  • ASP.NET loads a Page class, parses the page stream, and finds a reference to the page layout upon which the page is based.
  • The ASP.NET engine compiles the page stream and stores it in memory.
  • ASP.NET queries the Windows SharePoint Services file provider for the page layout.
  • ASP.NET loads the stream for the page layout associated with the current page.
  • ASP.NET compiles the page layout and stores it in memory. ASP.NET can free this memory later if the system needs memory.
  • ASP.NET determines the master page for the site and fetches the master page via the Windows SharePoint Services file provider.
  • ASP.NET compiles the master page and writes to the disk so you never have to recompile the master page unless you modify it.
  • The page layout runs each control on the page in the context of the page that was requested.
  • ASP.NET updates the necessary caches.
  • IIS returns the page to the browser.

  • The next time the page is requested by the same user or by a different user who has the same permissions to see the page as the first user, page processing is much more efficient:

  • The browser requests a Web page from IIS.
  • IIS passes the request to ASP.NET 2.0.
  • An HTTPApplication pipeline is created for the request and hits the HandleRequest.
  • ASP.NET uses all the internal caches.
  • ASP.NET renders the HTML for the controls.
  • IIS returns the page to the browser.

    Reference: MSDN article
  • How to identify your SQL Server version and edition

    How to identify your SQL Server version and edition

    I was trying to integrate reporting services with Sharepoint 2007 and the following error showed up while configuring reporting services:
    Unable to connect to the Report Server WMI provider

    Since Sql Server 2005 with SP2 is a requirement for the integration, I wanted to find out the version of sql server i was running. The following query helped to do the above:

    SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

    Monday, April 16, 2007

    Jerry's Blogs: October, 2006

    Jerry's Blogs: October, 2006:
    "SharePoint Version 2007 Page Life Cycle
    User request the SharePoint Page using http
    ASP.NET calls the WSS File provider
    WSS file provider returns the page from File or Database
    Page is parsed by SafeMode parsor if required
    Returned page is complied by ASP.NE T Compiler
    WSS File provider collects the page layout class and complies it
    ASP.NET engine adds SharePoint Context Data to the site meta data and retreives the associated master page.
    Master page got compiled and responded back to the user."

    SharePoint Inspector

    SharePoint Inspector

    Just found this tool. Thought about blogging it....

    Tuesday, April 10, 2007

    How to determine the Password for IUSR account

    Click on the Image to get a better view
    Below are the commands for accessing the password's for the respective accounts


    Monday, April 9, 2007

    Sharepoint Error - Duplicate Site Id

    Few days back, I restored the content database from the production server to the development machine and lot of errors started throwing up like :


    Running the following command fixed the problem:
    stsadm -o sync -DeleteOldDatabases 0

    Source PageURL : http://www.sharepointblogs.com/dwise/

    Working for The Man | Tux Deluxe

    Working for The Man Tux Deluxe

    An excellent link, I just found on Slashdot. A must see for budding programmers .

    Sunday, April 8, 2007

    Windows Shortcuts

    Here are a few cmd prompt shortcuts ,I learned past few days

    • iisreset - to reset whole iis
    • inetsrv
    • inetmgr - iis manager
    • eventvwr - event viewer(my debugging usually starts here .... :))
    • perfmon - performance manager

    Sunday, March 25, 2007

    MOSS 2007

    AS mentioned in previous posts, I have been trying to load a user control using a smartpart but this error was showing up:
    "This page allows a limit of 200 controls, and that limit has been exceeded"
    Still trying to find a resolution to this error.

    Update: Though found a fix for it soon, but could not update it. Pedro Pablo left a comment about it: Thanks to Mark for showing for putting me in the right direction about this one.

    In the Web.config change the MaxControls of safemode appropriately appropriately:

    safemode allowpageleveltrace="false" totalfiledependencies="50" directfiledependencies="10" callstack="false" maxcontrols="500"

    Type initializer not found

    Adding a user control on a page which accesses the registry lead to this error.Running the web.config tool again with the proper credentials solved the error. This error may be specific to my application and hence will provide details later.
    Also, the System.Security exception:Cannot access the registry showed up and this error was solved by adding the key "impersonate password="mypassword" username="unclesam"

    type could not be found error

    I was trying to load a user control onto a sharepoint webpage using smartpart, but "type not found error" was being displayed. The user controls code was a part of a dll and hence the dll was not a part of bin directory. Adding the dll to the bin directory solved the problem. :)

    Wednesday, March 21, 2007

    WebControl on a Page/UserControl

    WebControl on a Page

    • Directly access the control using the ID
    • WebControl value(.text) is persisted and can be accessed in the page load event of the usercontrol textbox

    WebControl on a UserControl

    • Cannot directly access the webcontrol using its ID
    • Need to use the dynamic generated id of the control : Usercontrolid + textboxid
    • In javascript, use the the clientid of the control to get the value of the webcontrol(directly using the textbox1.text would be show null value)

    CS0006: Metadata file ************** could not be found

    This error frustrated me for a long time today. It was working fine until, I deleted the references and started throwing up this error during building the solution. It worked fine after rebuilding the solution.
    Guess I have to live with it for sometime untill, i research more on it. Every time I want to run the app, I have to run it twice to get it working.

    Wednesday, March 14, 2007

    MOSS 2007

    I have been off late working with MOSS 2007 ( with no idea about sharepoint webpart development) and its has been a tough time for me since the past 2 weeks. Luckily, I have a helpful colleague who is helping me out. I have been reading quite a few blogs related to MOSS and it seems to be quite an interesting technology. For the past few months, I have also touched base with Sql Server Analysis Services, Reporting and Integration services.