Room for reference
June 24, 2004
  InfoPath Community! For those looking for InfoPath resources beyond stuff directly from Microsoft, has some good examples which you can find here:

Check out the site InfoPathDev

Happy Programming!! :-) 
June 19, 2004
  Google on Microsoft! I do not know if everyone know this before, I just came across in Google a separate page to search only on Microsoft-Related information and sites. When you do a search on any phrase or text, it finds results from MSDN, or any related sites having information about Microsoft. For me its new finding and surprise too!

Check out for yourself @ here

After noticing this in Google, next thing what I did was checked for the similar URL on Sun ( and IBM ( it gave 404 error.

If you guys come across anything other than Microsoft, let me know!!
June 17, 2004
  Top 10 Must-Have .NET Tools, Every Developer Should Download Now In the latest issue of MSDN magazine there is an article titled “Top 10 Must-Have .NET Tools Every Developer Should Download Now“. Here is a list of the tools:

- NUnit to write unit tests
- NDoc to create code documentation
- NAnt to build your solutions
- CodeSmith to generate code (Wahoo! CodeSmith made the list!)
- FxCop to police your code
- Snippet Compiler to compile small bits of code
- Two different switcher tools, the ASP.NET Version Switcher and the Visual Studio .NET Project Converter
- Regulator to build regular expressions
- .NET Reflector to examine assemblies

Here is a link to the online version of this article:


[Via Eric J. Smith, CodeSmith
  MSDN Magazine in CHM format! I found that MSDN Magazine is now available for download in compiled help files (CHM).
All the current year's issues are made available in CHM format and you can download it right away!

Here are the links to this year's CHM files so far:

January 2004:
February 2004:
March 2004:
April 2004:
May 2004:
June 2004:
July 2004:

Stay tuned for more great content in the coming months!! 
June 16, 2004
  How Microsoft (itself) uses Reflection? Good one about How Microsoft uses Reflection in July 2004 issue of MSDN Magazine very interesting.

Actually, this month surprisingly they introduced a change in the .NET Matters column. This amazing change (I feel this is really good and expected in future issues) brings stories from the trenches; developers in product groups within Microsoft describing how they use .NET technologies to get their jobs done and develop their products.

This month we got some true programming/development story from XBox Live Team and Core File Systems Team, very good!

After reading this, I have a suggesstion to the magazine editor that we can have such stories in alternate issues of the magazine. Because even the Q&A column is also a useful stuff and is very much needed for developers like me.
  Implementing Singleton in C#.. I have just read an article in MSDN about Implementing Singleton in C#. It's a very interesting one and worth a read.

Key topics covered: Static Initialization, Double-Check Locking, Multithreaded Singleton etc. 
June 15, 2004
  Download Visual Studio 6.0 Service Pack 6! Microsoft Service Pack 6 for Visual Basic 6.0, Visual C++ 6.0 with Visual SourceSafe 6.0d addresses known issues with Visual Basic 6.0, Visual C++ 6.0 and Visual Source Safe 6.0. This service pack does not contain fixes for Visual InterDev 6.0, Visual FoxPro 6.0, and Visual J++ 6.0, as the mainstream life-cycle for these products has ended. This SP replaces Service Pack 5 for developers using Visual Basic 6.0, Visual C++ 6.0, and Visual SourceSafe 6.0. Developer using Visual InterDev 6.0, Visual J++ 6.0, and Visual FoxPro 6.0 should continue using Service Pack 5.

More Details

  Inaccurate results in performance counters of ASP.NET! The latest entry in Microsoft Knowledge Base article explains about a BUG: Performance counters may have inaccurate results when a user without permission runs the ASP.NET worker process. Some resolution is provided to resolve this problem.

Navigate to Microsoft Knowledge Base Article - 841554 for more details.

I was encountered with this problem during performance testing of one of our projects. We found the same solution in one of newsgroups and resolved the problem. That's the power of newsgroups.
June 11, 2004
  Certification Stuff..! Wow...This is really a cool and useful stuff.

I found this site a while ago, it contains all the main topics covered for MCAD Exams. I really appreciate the work done by this guy to collect all the important topics and providing related links from MSDN and consolidated those as a book of reference. This is very good one and would benefit all developers who are planning/preparing for .NET Certifications.

PS: This is not a Brain-Dump.

It contains all the required topics & references for the following exams:

#70-229 (Designing and Implementing Databases with Microsoft SQL Server 2000 Enterprise Edition)
#70-305 And #70-315 (Web Applications with VB.Net and C#)
#70-310 And #70-320 (Web Services with VB.Net and C#)
#70-300 (Analyzing Requirements and Defining Microsoft .NET Solution Architectures)

go check out the Certification Stuff

All the very best Guys! 
  .NET Community Sites! I found a list of .NET Community Sites posted in ASP.NET Web. These Microsoft and non-Microsoft web sites provides additional resources to help us get answers to questions, state your opinions, meet other people, and learn more about .NET.

This is a very useful one and worth to bookmark it.. 
June 09, 2004
  ASP & ASP.NET: The Differences..
I thought like, providing the differences (that I Know!) of classic ASP and ASP.NET would be helpful to many. Today's entry here is intended for that..


Objects Support
Classic ASP
6 objects (Request, Response, Application, Session, Server & Error), which are components that make web-development dynamic. The objects are interface based, not object based so are often called components. Can be extended with COM objects or COM+ (including transactions) that can interact with ASP objects. Supports default interface COM programming, not multiple interfaces. COM and COM+ objects tend to need GUI tools that automate their creation.

Can consume COM and COM+ objects. Can be used to create objects that support interfaces and inheritance. Languages can inherit and override methods of objects created in DIFFERENT languages. These can be built with text editors and GUIs are a convenience not a necessity. Can make its components into SOAP listeners and proxies with trivial amounts of work by just setting a few attributes.
Language Support:
Classic ASP
2 built-in script languages (VBscript, Jscript) that are NOT compiled. some 3rd party languages: Perlscript, Python but not so robust and actually tend to crash the server.

3 built in COMPILED languages (has NO scripting languages): VB7 / VBNET, C# and JScript / JSNET
----------------------------------------------------------------------------------Database Support:
Classic ASP
Database support via ADO which communicates with ODBC and OLEDB databases. Most database display is done through recordsets and loops. Most database manipulation requires code coupled to back-end database that may fail if drivers are switched and needs to be written carefully.

Database support via which communicates with ODBC and OLEDB databases, XML Streams, Binary Streams but is loosely coupled so differences between database vendors do not EVER affect programming model. Database display NEVER involves loops. Templates, grouped controls, Grids and many other declarative structures eliminate need for loops and flexibility is provided so programmer can control all interaction between templates declaritivity.
Classic ASP
Scalability without work is limited because 2 of the core objects (session, application) don't scale on web-farms. Those objects must be replaced with home-brewed or commercial objects if that functionality is wanted on webfarm. Scalability, multi-tier application building and transactional applications are possible to be build but the programmer has few tools to make the task simple. It is just hard work and the programmer must have experience building such systems in the past to build an effective one today.

Sessions and all features were built with web-farms and supports "web gardens" (1 computer with multiple CPUs) as assumed environment.
Several kinds of caching reduces database access and code execution dramatically without requiring page-level changes.
----------------------------------------------------------------------------------Browser Support:
Classic ASP
Browser neutral.

Validators and built-in components use detection to render GUIs that behave consistently on a variety of browsers. has lots of facilities so that controls can detects the browser and renders the GUI very differently depending on what browser requests the page without having to expose this sensing to higher level callers.
----------------------------------------------------------------------------------Execution Environment:
Classic ASP
Tightly coupled to IIS. The ASP engine is undocumented so that it cannot easily be extended and only low-level ISAPI filters can be created to accomplish tasks that ASP will not support easily.
In "classic ASP" the first person to access a script compiles it but if the compiled script cache fills scripts are removed and if a machine physically restarts or a service restarts the compilation process is triggered by first user access.

Loosely coupled to IIS to ensure that it runs on any webserver without requiring any IIS infastructure. Extremely extensible and high-level utilities called HTTP Handlers can accomplish the most complex of tasks without inheriting the ENTIRE ASP+ infastructure or bloat. Components and scripts have their compiled image written to disk so that compilation persists.
Classic ASP
Once an application is created it's settings reside in the Windows Registry, Binary Metabase, MTS catalogs, IIS settings. Transferring /copying a app from server is a complex tedious job with few automatic tools. Component registration is done via a variety of doftware packages all of which require a system adminstrator run these utilities.

Huge complex applications store their settings and components in ASCII files and copying these ASCII files from server to server will result in a perfectly deployed application with no effort. Their are no component registration tools because components do not make any registry entries nor do they need to be compiled before being copied to server. All configuration/security options rely in ASCII/XML files.
----------------------------------------------------------------------------------Versioning approach:
Classic ASP
New versions of components required stopping and starting the server. Once new component versions were deployed, old versions were replaced.

If a component is rewritten to have a new version, the next user accessing a page that accesses the new version runs on a new thread. The previous versions and new versions co-exist in memory since a fully running component live on a thread. Of course the worker process will eventually finish all user requests communicating with old component and quietly quit wasting memory on it. Aspx or any programs can target any version of an assembly since side-by-side execution is supported.
Classic ASP
Environment assumes code and libraries are written carefully and debugged and stress tested. Flaws in codes or component or memory leaks cause system deterioration and may require soft and hard reboots.

ASP+ worker process assumes all components and code are likely to crash, leak memory and have bad code (infinite loops, forgetting to advance recordsets). The ASP+ worker process notices bad code and then isolates the thread the code is on, allows no new code to run on same thread and then destroys the thread and all bad code. If code leaks memory, ASP+ worker can create a new instance of itself to run requests and tear down the previous instance that has memory leaks without ever rebooting.
Classic ASP
No debugging tools unless Visual Interdev is editor. Debugging tools are crude and have limits on how deep they can examine the system. Error trapping in all languages has severe limits. VBscript has ON ERROR RESUME NEXT and not ON ERROR GOTO. Javacript on server has TRY/CATCH but no other language does.

Powerful debugging, millisecond timing and profiling are built-in. These can be done without GUIs. All current page requests can be logged and inspected after the fact.
Debugging can also be done with GUI tools that are not married to any editor specifically. Error trapping at code level is easy because there are many error trapping directives (about 8 x as many as Classic ASP). Most languages support TRY/CATCH and several other robust error trapping styles.

I can say these are some of main differences between these two versions of web development language, there are many that makes ASP.NET a powerful language.!! 
June 08, 2004
  URL Rewriting in ASP.NET! What is URL Rewriting?
URL rewriting is the process of intercepting an incoming Web request and redirecting the request to a different resource.

I found a very interesting article by Scott Mitchell on URL Rewriting in ASP.NET @ MSDN. In this he describes how we can dynamically intercept an incoming Web request and automatically redirect it to a different URL. He has provided a downloadable source code as well.

How URL Rewriting done in classic ASP?
In classic ASP, the only way to utilize URL rewriting was to write an ISAPI filter or to buy a third-party product that offered URL rewriting capabilities.

But in ASP.NET, it's very easy to create our own URL rewriting software in a number of ways.

This article explains everything about URL Rewriting in detail..

The following are the topics covered in this article

- Common Uses of URL Rewriting
- What Happens When a Request Reaches IIS
- Implementing URL Rewriting
- Building a URL Rewriting Engine
- Performing Simple URL Rewriting with the URL Rewriting Engine
- Creating Truly "Hackable" URLs

very useful and informative..a must to read for ASP.NET developers!!
June 07, 2004
  Microsoft SQL Server 2005 & XMLSupport A very good article on XML Support in Microsoft SQL Server 2005 @ MSDN.

This article explains the XML support built into SQL Server 2005. It shows how XML integrates with the client side programming of .NET Framework V2.0 and in native code such as OLEDB and SQLXML.

The following topics are covered in this article:

- XML data type
- XML indexing
- XML schema processing
- ForXML and OpenXML enhancements
- Client access to XML data type
- Data modeling
- Methods of XML data type
- XQuery language
- Cross-domain queries
- Content indexing

and much more...

Very interesting one don't miss it..
  Resources (.NET) for Java developers @ MSDN As we all know about the development of IT solutions for industries is currently dominated by two technologies: Microsoft .NET and Java. To cope up with scope of developers world wide on both Microsoft .NET and Java, Microsoft has launched the Resources for Java Developers center to provide a collection of resources for Java developers interested in interoperability, migration, and development with the .NET Framework.

The following are the resources that are available for Java developers at present:

- Java Interoperability Resources
- C# Language for the Java Developer
- Migration Resources
- Tutorials and Walkthroughs
- Starter Kits
- Tools to Get Started
- Third Party Tools
- Patterns and Practices

Hope we will get more in near future...

Note: According to a recent survey, 56% of enterprises will be using the .NET Framework as their primary development environment in 2005.

via Abhishek
June 06, 2004
  Moblogging..?! It's a good one..

This is a wonderful stuff for the current Mobile Camera Phone trend...

What is moblog?
A moblog is a 'mobile blog' or 'photo journal' comprised of camera phone pictures that are posted direct to the internet from your mobile phone.

For more information navigate to TextAmerica

Once you have created your Moblog you will be given 2 important items, the URL where your Moblog is located and an email address. Just add the email address to your contacts section on your camera phone, then when you want to post a picture to your Moblog just send it to that email address. The pictures will appear instantly on your Moblog online.

all for FREE!!

I have not tried it yet, but I got this information from a valuable source..:)

Hope this will be very useful for many with camera phone!!

June 04, 2004
  Visual Basic .NET Language Specification Paul Vick's VB.NET book is here for download. In this book he provides a complete description of Visual Basic .NET language. There is also a link to C# Language Specification book as well when scroll down the page. I found the book a year back (May 2003, I believe) when I was going through the Visual Basic Developer Center at MSDN and then Visual Basic Related Blogs link, under Paul Vick's blog. Since I started blogging recently, wanted to mention about this here (even though i's too late!!) now.

Many thanks to Paul and Duncan Mackenzie for making me to grab the good book.

My personal comments about the book,

It's very descriptive and the information provided about Visual Basic .NET language would benefit the beginners effectively. Overall, it's very interesting and useful.

Hope to get more like this from PaulV. :)
  Understanding ASP.NET View State This article at MSDN by Scott Mitchell, describes about the benefits of View State in ASP.NET. Here he also mentions on how to interpret and protect the data stored in View State.

The article has also got some bonus - a sample code implementing View State.

Get the feeling of ASP.NET View State here.

Thanks to Justin for making me aware of this article. 
June 03, 2004
  Very helpful INDIAN site during emergency! This is something outside of technology info, but very useful and helpful for all INDIANS.

This site IndianBloodDonors is very useful and good, where we can search for a particular blood group and filter the any city and location around INDIA.

We never know when emergency will knock on our doors.
  Briefly describe the role of global.asax This was asked by one of my friend in the same discussion mentioned in prev blog, who recently started learning .Net. He worked on lot of VB & ASP projects and wanted to know is Global.asax something similar to Global.asa in Classic ASP.

My answer to him is below:

The Global.asax file, also known as the ASP.NET application file, It is an optional file that contains code for responding to application-level events raised by ASP.NET or by HttpModules. The Global.asax is the ASP.NET equivalent of Global.asa file and it resides in the root directory of an ASP.NET application. At run time, Global.asax is parsed and compiled into a dynamically generated .NET Framework class derived from the HttpApplication base class. The Global.asax file itself is configured so that any direct URL request for it is automatically rejected; external users cannot download or view the code written within it (secured stuff!).

In general, global.asax is responsible for handling higher-level application events such as

- Application_Start: called when the application first starts
- Application_Init: occurs after _start and is used for initializing code
- Application_Disposed: invoked before destroying an instance of an application
- Application_Error: to handle all unhandled exceptions in the application
- Application_End: clean up variables and memory when an application ends (like classic ASP)
- Application_BeginRequest: used when a client makes a request to any page in the application
- Application_EndRequest: after a request for a page has been made, this is the last event that is called
- Application_PreRequestHandlerExecute: occurs just before ASP.Net begins executing a handler such as a page or a web service. The session state is available at this point.
- Application_PostRequestHandlerExecute: occurs when the ASP.Net handler finishes execution
- Application_AuthenticateRequest: occurs when the identity of the current user has been established as valid by the security module
- Application_AuthorizeRequest: occurs when the user has been authorized to access the resources of the security module
- Session_Start: triggered when any new user accesses the web site as with classic ASP
- Session_End: As same in classic ASP, triggered when a user's session times out or ends
  Diff between Web User Control & Web Custom Control (ASP.NET) I have been asked this question by many of my friends and co-developers. So I thought of mentioning the main differences of these 2 controls out here.

We are triggered to create either web user control or web custom control of our own, If none of the existing ASP.NET server controls meet the specific requirements of our applications and these controls would encapsulate the functionality that is needed.

If the needed control has a lot of static layout, creating a user control is the best choice. Or else if the control is mostly dynamically generated — for e.g. rows of a data-bound table, nodes of a tree view, or tabs of a tab control, in this case a custom control would be a better choice.

Overall, the main difference between the two types of controls are,

Web user controls:
- easier to create
- limited support for users who use a visual design tool
- aseparatee copy of the control is required in each application
- cannot be added to a Toolbox in Visual Studio
- good for static layout

Web custom controls:
- harder to create
- full support for visual design tool users
- only a single copy of the control is required, in the global assembly cache
- can be added to Toolbox in Visual Studio
- good for dynamic layout
June 02, 2004
  Top techniques to improve code quality! Good One!! I found a nice article in MSDN on coding techniques and programming practices for improving the quality of source code in Visual Studio .Net.

This article Coding Techniques and Programming Practices provides a detailed explanation on the following topics:

- Coding Standards and Code Reviews
- Coding Techniques
- Best Practices
- Conclusion
- Suggested Reading

Oh Man..It is very interesting useful and so informative, a must to be read by developers.

The following are the more useful topics @ MSDN:
- ASP Conventions
- 25+ ASP Tips to Improve Performance and Style
- ASP Guidelines
  Any etiquette rules on blogging? Today, when I was going thru The Galactic Patrol by Brian Williams, I noticed a post who is Bipin?. This is an information and it is a must for bloggers to know. After reading the comments provided by others on this, I was wondering about, Is there any etiquette rules on blogging? I don't think it is needed for blog. Because all bloggers know about blogging and understands its power (there are some exceptions!!). This post provides more of it.

Here I want to mention about my own post on blogs tilted Bill Gates on Blogs. For me, Blog is all about an individuals own thought and sharing them all with peers. Here there is no scene of C&P, but can have a reference to some others blog. These reference should just include some points about the post and provide link to the blog. That would be more professionalistic.

Finally, I prefer monitor myself carefully while posting any blog in order to avoid the situation encountered by Brian.

Hope everybody will... 
June 01, 2004
  My latest contribution @ MSDN INDIA (06/01/04).. As I mentioned in my earlier blog about my preparation on an article in Cryptography and .Net, I finished compiling the article and contributed to MSDN INDIA 2 weeks before. Now my new article Secret-Key Encryption Cryptography in Microsoft .NET is published. I have also provided a sample code on using Secret-key encryption. You need to have a passport (hotmail or msn ID) to view the article.

When I was preparing the article on Cryptography and Microsoft .Net, I found there are so many topics to be covered under this title. Including all these topics in one will make the single article a lengthy document to present in MSDN and it wont be good enough to read. So I thought of splitting the whole title on Cryptography into different sections like Private (Secret) Key Encryption, Public Key encryption, Cryptograhic Signing, Hashes, Digital Signature Algorithm (DSA) etc.

Hope I can able to complete the topics on these titles very soon and contribute the same to MSDN INDIA. These topics would be very interesting and important to learn as well. 
  "Error running my first WindowsApplication" - VB.Net One of my friend, who is a VB guy basically recently started learning VB.Net. Yesterday he called me and mentioned that he was getting "Sub Main Was Not Found in WindowsApplication1.Form1" error message while running his first VB.Net application. He just created a Windows application with one form on it and tried to run the form. That's it, he encountered this problem. He was using Visual Studio .Net 2002 edition.

After getting the details of what he did with his new Project, I gave him the below explanation and solution:

The cause for this problem must make the core VB guys to feel wired. This problem would occur If the Name property of the start up form changed. This is not the case in Visual Basic 6.0 or earlier. In those versions even if you change the start up form name (first form by default is the start up form) the application would run without any errors. But VB.Net which is more sensitive and powerful, needs everything to be proper. So in order to avoid the above mentioned error, before running the application make sure that the Startup Object property for the project is updated with the correct form name.

To accomplish that follow these steps:

- Right-click the Startup project in Solution Explorer.
- Click Properties when you receive the context menu.
- The Property Pages dialog box appears.
- Click the General node in the Common Properties node, if it is not already selected.
- Click the Startup Object drop-down list box.
- Select the new name for the Startup Object drop-down list box.
- Click OK.

Listen: You can also open the Property Pages dialog box by clicking Properties on the Project menu, or by pressing the Shift+F4 keys. For this to work, the Startup project should be selected in the Solution Explorer.

Actually this is a bug confirmed by Microsoft and hope this will be fixed in later versions of Visual Studio .Net.

After resolving the problem, he successfully able to run the application and started developing a dummy project while learning VB.Net.

Hope he had a nice sleep with sweet dreams on .NET !!! 
  Interpersonal Skills In today's world (IT world, I can say),

As organizational hierarchies become a thing of the past and companies depend on teams to get the work done, building good relationships and cultivating influence in order to secure the results have become essential survival skills. Whether you are dealing with a boss, colleague or staff members with their own managers, winning their respect and cooperation is absolutely essential if you want people who do not work for you often from other departments to help you get things done. Successfully influencing people begins with the way you think about them. Looking at others as potential allies and partners and developing a give-and-take relationship with them produces results!

Now a days most of the global software companies are looking for and hiring people with good analytical and interpersonal skills. As the amount of work to be accomplished in today's work environments has increased as fast as the technological advances, Since the work to be done is often complex, requiring the expertise of several individuals, teams are formed to meet deadlines, project requirements, and budgets.

I found a nice place on internet that describes about Developing Interpersonal Skills and various factors. It also provides so many internet resources for various skills development.

This is a nice one and very interesting to learn..
a blog on Technology of Microsoft & much more..

My Photo
Location: Chennai, Tamil Nadu, India
May 2004 / June 2004 / July 2004 / August 2004 / September 2004 / October 2004 / September 2005 /

Powered by Blogger