The cost of new generation exams is the same as earlier MCP exams... So basically whether you are appearing any of the below categories of exams you should be paying the same amount (ofcouse if you have some promotions then you may be paying a different amount)
MCSD, MCSE or MCDBA exams
Upgrade to New Gen exams
New Gen exams
Wednesday, October 11, 2006
Monday, October 09, 2006
Saturday, September 30, 2006
Keep Checking Certification NewsGroups
If you are preparing for certifications, you should keep an eye on the respective news groups where people have pretty interesting discussions...
Click here to check out Microsoft News Groups for Certifications
Also check out the newsgroup rules and explore many other newsgroups on specific technologies by Clicking Here
Use Outlook Express to browse through the newsgroups with ease... Below are some articles that may help you in getting acquainted with Outlook Express and subscriptions...
Outlook Express newsgroups 101
Got a tough problem? Become a newsgroupie
Click here to check out Microsoft News Groups for Certifications
Also check out the newsgroup rules and explore many other newsgroups on specific technologies by Clicking Here
Use Outlook Express to browse through the newsgroups with ease... Below are some articles that may help you in getting acquainted with Outlook Express and subscriptions...
Outlook Express newsgroups 101
Got a tough problem? Become a newsgroupie
Thursday, September 07, 2006
Mobility Exams - Beta Notification
We recently launched Developer as well as ITPRO Mobility Exams in Beta format... The live exam will be released within the next couple of months but till then you can start preping...:-)
Mobility Exams for ITPROs
Exam 70-500
Mobility Exams for Developers
Exam 70-540
Mobility Exams for ITPROs
Exam 70-500
Mobility Exams for Developers
Exam 70-540
Monday, June 19, 2006
Preparation Guide for Exam 70-536 - UPDATED
Based on MCP feedbacks MS has updated the preparation guides for exams. The pilot updated prep-guide is for 70-536 & can be checked out at http://www.microsoft.com/learning/exams/70-536.asp
So what's new??
1.) Notice the "Exam Topics Covered" section... This section now tells you how the major areas of the exams are distributed across the exam. It will give you an opportunity to understand the coverage of the exam content and will guide you how to focus while you prepare.
2.) Also notice the "Practice questions" link... This gives you some of the sample questions to warm you up for the exam preparation. You can find more such questions in Microsoft Training Kits for the exam...
Btw, Microsoft Official Training Kit (MSPRESS Book) and E-Learning course on 70-536 will be available soon...
We would love to hear your feedback about the Prep Guide changes that our team has introduced... Do write back if you like it or even if you have any further feedback that we can take and implement... :-)
So what's new??
1.) Notice the "Exam Topics Covered" section... This section now tells you how the major areas of the exams are distributed across the exam. It will give you an opportunity to understand the coverage of the exam content and will guide you how to focus while you prepare.
2.) Also notice the "Practice questions" link... This gives you some of the sample questions to warm you up for the exam preparation. You can find more such questions in Microsoft Training Kits for the exam...
Btw, Microsoft Official Training Kit (MSPRESS Book) and E-Learning course on 70-536 will be available soon...
We would love to hear your feedback about the Prep Guide changes that our team has introduced... Do write back if you like it or even if you have any further feedback that we can take and implement... :-)
MSDN Resources for 70-536
Michael composes cool resources for 70-536 exam at the below location. A very useful compilation check it out...
http://www.dotnetfun.com/articles/certifications/Passing70536Certification.aspx
http://www.dotnetfun.com/articles/certifications/Passing70536Certification.aspx
Saturday, June 03, 2006
Case Study in SQL 2005 PRO Exams
I would like to get feedback from people who have appeared SQL Server 2005 Case Study Exams...
Case Study exams for SQL Server 2005 PRO level certs were introduced to test a professionals ability to synthesize a given situation and make educated judgment on the correct choice... These kind of PRO Case Study exams may not have a clear choice to make and might seem like having more than one correct answers or probably no correct answers... Although, a person who very carefully reads through will realize that there is infact distinct correct answer to the questions...
Many a times when you find multiple correct answer - take a moment and read through the case study carefully, there will be something in the case study which will drive you to the correct answer. If you find nothing to be correct try to go through again and you might find something that will tell you the correct answer...
Many may argue that such questions are trick questions and more of word mangling than actual problem OR why can't MS people be frank, precise and ask what you want? But folks that is the definition of a Technology Specialist (TS) exam... The exams focusing on How To? areas will have a clear cut answer, they will be to the point, there will be not much confusion over there BUT in case of PRO exams they are suppose to get you closer to the REAL WORLD PROBLEM... In real world you do not resolve bugs by someone telling you what the problem is... You also troubleshoot, there are various different factors that play while you trouble shoot but finally you find the problem and resolve the bug... When you design a solution there is never a clear cut best design, there are trade-offs like performance, maintainability, security, extensibility etc... You would try to design with all these factors in consideration but when you are asked that security is a higher priority over performance then your choices change; that is how PRO exams work...
In PRO exams you have to make those hard choices and those become even more reflective in CASE STUDY EXAMS, hence be prepared for Case Study Exams... I am positive that if you go with this kind of expectation, you will not be confused or frustrated, you will probably look at the exam from the right perspective and perhaps apply your professional experience to the situation and do much better than you may expect...
If you have experiences with SQL Server 2005 Case Study Exams write a comment, let us know what you feel, let me know what can be made better and I will passionately take your advise and work on it...
Case Study exams for SQL Server 2005 PRO level certs were introduced to test a professionals ability to synthesize a given situation and make educated judgment on the correct choice... These kind of PRO Case Study exams may not have a clear choice to make and might seem like having more than one correct answers or probably no correct answers... Although, a person who very carefully reads through will realize that there is infact distinct correct answer to the questions...
Many a times when you find multiple correct answer - take a moment and read through the case study carefully, there will be something in the case study which will drive you to the correct answer. If you find nothing to be correct try to go through again and you might find something that will tell you the correct answer...
Many may argue that such questions are trick questions and more of word mangling than actual problem OR why can't MS people be frank, precise and ask what you want? But folks that is the definition of a Technology Specialist (TS) exam... The exams focusing on How To? areas will have a clear cut answer, they will be to the point, there will be not much confusion over there BUT in case of PRO exams they are suppose to get you closer to the REAL WORLD PROBLEM... In real world you do not resolve bugs by someone telling you what the problem is... You also troubleshoot, there are various different factors that play while you trouble shoot but finally you find the problem and resolve the bug... When you design a solution there is never a clear cut best design, there are trade-offs like performance, maintainability, security, extensibility etc... You would try to design with all these factors in consideration but when you are asked that security is a higher priority over performance then your choices change; that is how PRO exams work...
In PRO exams you have to make those hard choices and those become even more reflective in CASE STUDY EXAMS, hence be prepared for Case Study Exams... I am positive that if you go with this kind of expectation, you will not be confused or frustrated, you will probably look at the exam from the right perspective and perhaps apply your professional experience to the situation and do much better than you may expect...
If you have experiences with SQL Server 2005 Case Study Exams write a comment, let us know what you feel, let me know what can be made better and I will passionately take your advise and work on it...
Friday, May 05, 2006
New Electives for MCAD, MCSD & MCDBA Certs
To encourage candidates to finish their MCADs, MCSDs and MCDBAs Microsoft has now included some of the new MCTS exams to be electives for MCAD, MCSD .Net and MCDBA certs...
Summary
Technology Specialist Exam 70-431 will now be accepted as an elective towards your MCAD or MCSD .Net credential...
Technology Specialist Exam 70-526 OR Exam 70-528 OR Exam 70-529 will now be accepted as an elective towards your MCDBA credential...
References
You can check the updates to MCAD requirements @ MCAD Requirements Page
You can check the updates to MCSD .Net requirements @ MCSD .Net Requirements Page
You can check the updates to MCDBA requirements @... MCDBA Requirements Page
Summary
Technology Specialist Exam 70-431 will now be accepted as an elective towards your MCAD or MCSD .Net credential...
Technology Specialist Exam 70-526 OR Exam 70-528 OR Exam 70-529 will now be accepted as an elective towards your MCDBA credential...
References
You can check the updates to MCAD requirements @ MCAD Requirements Page
You can check the updates to MCSD .Net requirements @ MCSD .Net Requirements Page
You can check the updates to MCDBA requirements @... MCDBA Requirements Page
What happens to MCAD, MCSD, MCDBA?
Again this is one of the common queries which I keep getting... Please DO NOT be worried about MCAD, MCSD, MCDBA going away or their exams not being available... They are not going away...
If you are working on .Net 1.X or SQL 2000 you should still plan on pursuing MCAD, MCSD and/or MCDBA... Microsoft does not plan on retiring these certifications anytime soon... I mean to say that the certifications will not only be supported but also be available to take in parallel to MCTS, MCPD and MCITP...
Both these series of certifications will co-exist till .Net 1.X or SQL 2000 product's premium support is retired and as you all know MS will not retire the support for this products for years to come...
Although there is a likely possibility that our industry itself would start demanding more MCTS, MCPD and MCITP in time to come but then if your company works on .Net 1.X and SQL 2000 then MCAD, MCSD and MCDBA is still the right thing for you right!!...
Again boils down to your choice and reasons for taking cert but MS will support, value and keep both the series for now...
If you are working on .Net 1.X or SQL 2000 you should still plan on pursuing MCAD, MCSD and/or MCDBA... Microsoft does not plan on retiring these certifications anytime soon... I mean to say that the certifications will not only be supported but also be available to take in parallel to MCTS, MCPD and MCITP...
Both these series of certifications will co-exist till .Net 1.X or SQL 2000 product's premium support is retired and as you all know MS will not retire the support for this products for years to come...
Although there is a likely possibility that our industry itself would start demanding more MCTS, MCPD and MCITP in time to come but then if your company works on .Net 1.X and SQL 2000 then MCAD, MCSD and MCDBA is still the right thing for you right!!...
Again boils down to your choice and reasons for taking cert but MS will support, value and keep both the series for now...
Thursday, May 04, 2006
MCPD options for MCSD .Net
I was asked by one of our MCTs on what are the options for a MCSD .Net to become MCPD:Web Developer & MCPD:Windows Developer IF he/she has already taken 553 & 554 to get MCPD: Enterprise Application Developer
The answer is:
1.) Either take 551 & 552 to become MCPD in Web and Windows Development respectively
OR
2.)Take 547 & 548 to achieve the same...
551 & 552 will cover TS as well as PRO contents of their respective track, where as 547 & 548 will cover only PRO content...
Which option to select depends upon your choice... Make a choice after looking at the Prep Guides of the exams on Exam Prep Guides
The answer is:
1.) Either take 551 & 552 to become MCPD in Web and Windows Development respectively
OR
2.)Take 547 & 548 to achieve the same...
551 & 552 will cover TS as well as PRO contents of their respective track, where as 547 & 548 will cover only PRO content...
Which option to select depends upon your choice... Make a choice after looking at the Prep Guides of the exams on Exam Prep Guides
Wednesday, May 03, 2006
Dynamics of VS 2005 Upgrade Exams - Simplified
My good colleague suggested me to put the Upgrade exams story in simple words rather than my complex math, so if you do not care about all the complexity around the last post here is a simplified version:
MCPD:Web Dev = MCTS:Web + 547 = 551
MCPD:Win Dev = MCTS:Win + 548 = 552
MCPD:EA Dev = MCTS:Web + MCTS:Win + MCTS:DA + 549 = 553 + 554
(subset 1) MCTS: Web + MCTS: Win = 553
(subset 2) 529 + 549 = 554
MCPD:Web Dev = MCTS:Web + 547 = 551
MCPD:Win Dev = MCTS:Win + 548 = 552
MCPD:EA Dev = MCTS:Web + MCTS:Win + MCTS:DA + 549 = 553 + 554
(subset 1) MCTS: Web + MCTS: Win = 553
(subset 2) 529 + 549 = 554
Saturday, April 15, 2006
Dynamics of VS 2005 Upgrade Exams
Upgrade exams for VS 2005 are very useful but may be confusing at times... Check these equations below and that will help you understand the dynamics of VS 2005 Upgrade exams:
Folks who are MCAD can take 551 and/or 552 upgrade exams... MCADs have an opportunity to choose which of the above upgrade exam to take based on their inclination towards Web Dev or Windows Dev... MCADs also have the liberty to take both 551 & 552 incase they are inclined towards both Web and Windows area... Although, do note that MCADs CANNOT take 553 & 554 as they are meant only for MCSDs... Truthfully, nothing stops MCADs from taking 553 & 554 but unfortunately taking these exams will not yeild into any certification for MCADs unless they later complete their MCSD .Net certification...
Folks who have MCSD .Net have got all the options that MCAD folks have plus have an opportunity take 553 & 554 upgrade exams, which are specifically designed for MCSD .Net folks...
First let us quickly take a look at equation of the NON-UPGRADE exams with certifications:
MCTS:Web = 536 + 528
MCTS:Win = 536 + 526
MCTS:DA = 536 + 529
MCPD:Web Dev = MCTS:Web + 547
MCPD:Win Dev = MCTS:Win + 548
MCPD:EA Dev = MCTS:Web + MCTS:Win + MCTS:DA + 549
Now let us look at each upgrade exam to understand what kind of credits do each one of them offer (if you PASS them :-)):
551 = 536 + 528 + 547 = MCTS:Web + MCPD:Web Dev
552 = 536 + 526 + 548 = MCTS:Windows + MCPD:Win Dev
553 = 536 + 526 + 528 = MCTS:Web + MCTS:Windows
554 = 529 + 549 = NO certification by itself
ANALYSIS FOR MCTS
Now here is how the dynamics start coming into play, let us look at what options do MCAD or MCSD folks have to become MCTS... I am intentionally leaving out MCPD right now as we will talk about it after we are done with MCTS...
Case 1: MCAD can become MCTS:Web by using any of the following options:
Option 1.) 536 + 528 (Regular Option)
Option 2.) 551
Option 3.) 552 + 528
Case 2: MCAD can become MCTS:Win by using any of the following options:
Option 1.) 536 + 526 (Regular Option)
Option 2.) 552
Option 3.) 551 + 526
Case 3: MCAD can become MCTS:DA by using any of the following options:
Option 1.) 536 + 529 (Regular Option)
Option 2.) 551 + 529
Option 3.) 552 + 529
Case 4: MCSD can become MCTS:Web by using any of the following options:
Option 1.) Any option that MCAD folks have (plus)
Option 2.) 553
Case 5: MCSD can become MCTS:Win by using any of the following options:
Option 1.) Any option that MCAD folks have (plus)
Option 2.) 553
Case 6: MCSD can become MCTS:DA by using any of the following options:
Option 1.) Any option that MCAD folks have (plus)
Option 2.) 536 + 554
Option 3.) 553 + 554
Option 4.) 553 + 529
ANALYSIS FOR MCPD
Now as we have already talked about MCTS let us talk about MCPD... I am going to list down certain important points and then let you figure out the combinations yourself...
So the First important thing to remember in Upgrade Dynamics for MCPD certs are the equations which we talked about earlier:
MCPD:Web Dev = MCTS:Web + 547
MCPD:Win Dev = MCTS:Win + 548
MCPD:EA Dev = MCTS:Web + MCTS:Win + MCTS:DA + 549
Second important thing to remember is the exam credit equations for upgrade exams which we talked about earlier:
551 = 536 + 528 + 547
552 = 536 + 526 + 548
553 = 536 + 526 + 528
554 = 529 + 549
Third important thing to remember is that MCADs cannot take 553 & 554 but MCSDs can...
Now using the above three important things and also the Analysis for MCTS, MCADs and MCSDs should be able to figure out what exams they need to take to earn their MCPDs...
I hope this dynamics of VS 2005 Upgrade Exams help... Feel free to write back if you have more questions...
Folks who are MCAD can take 551 and/or 552 upgrade exams... MCADs have an opportunity to choose which of the above upgrade exam to take based on their inclination towards Web Dev or Windows Dev... MCADs also have the liberty to take both 551 & 552 incase they are inclined towards both Web and Windows area... Although, do note that MCADs CANNOT take 553 & 554 as they are meant only for MCSDs... Truthfully, nothing stops MCADs from taking 553 & 554 but unfortunately taking these exams will not yeild into any certification for MCADs unless they later complete their MCSD .Net certification...
Folks who have MCSD .Net have got all the options that MCAD folks have plus have an opportunity take 553 & 554 upgrade exams, which are specifically designed for MCSD .Net folks...
First let us quickly take a look at equation of the NON-UPGRADE exams with certifications:
MCTS:Web = 536 + 528
MCTS:Win = 536 + 526
MCTS:DA = 536 + 529
MCPD:Web Dev = MCTS:Web + 547
MCPD:Win Dev = MCTS:Win + 548
MCPD:EA Dev = MCTS:Web + MCTS:Win + MCTS:DA + 549
Now let us look at each upgrade exam to understand what kind of credits do each one of them offer (if you PASS them :-)):
551 = 536 + 528 + 547 = MCTS:Web + MCPD:Web Dev
552 = 536 + 526 + 548 = MCTS:Windows + MCPD:Win Dev
553 = 536 + 526 + 528 = MCTS:Web + MCTS:Windows
554 = 529 + 549 = NO certification by itself
ANALYSIS FOR MCTS
Now here is how the dynamics start coming into play, let us look at what options do MCAD or MCSD folks have to become MCTS... I am intentionally leaving out MCPD right now as we will talk about it after we are done with MCTS...
Case 1: MCAD can become MCTS:Web by using any of the following options:
Option 1.) 536 + 528 (Regular Option)
Option 2.) 551
Option 3.) 552 + 528
Case 2: MCAD can become MCTS:Win by using any of the following options:
Option 1.) 536 + 526 (Regular Option)
Option 2.) 552
Option 3.) 551 + 526
Case 3: MCAD can become MCTS:DA by using any of the following options:
Option 1.) 536 + 529 (Regular Option)
Option 2.) 551 + 529
Option 3.) 552 + 529
Case 4: MCSD can become MCTS:Web by using any of the following options:
Option 1.) Any option that MCAD folks have (plus)
Option 2.) 553
Case 5: MCSD can become MCTS:Win by using any of the following options:
Option 1.) Any option that MCAD folks have (plus)
Option 2.) 553
Case 6: MCSD can become MCTS:DA by using any of the following options:
Option 1.) Any option that MCAD folks have (plus)
Option 2.) 536 + 554
Option 3.) 553 + 554
Option 4.) 553 + 529
ANALYSIS FOR MCPD
Now as we have already talked about MCTS let us talk about MCPD... I am going to list down certain important points and then let you figure out the combinations yourself...
So the First important thing to remember in Upgrade Dynamics for MCPD certs are the equations which we talked about earlier:
MCPD:Web Dev = MCTS:Web + 547
MCPD:Win Dev = MCTS:Win + 548
MCPD:EA Dev = MCTS:Web + MCTS:Win + MCTS:DA + 549
Second important thing to remember is the exam credit equations for upgrade exams which we talked about earlier:
551 = 536 + 528 + 547
552 = 536 + 526 + 548
553 = 536 + 526 + 528
554 = 529 + 549
Third important thing to remember is that MCADs cannot take 553 & 554 but MCSDs can...
Now using the above three important things and also the Analysis for MCTS, MCADs and MCSDs should be able to figure out what exams they need to take to earn their MCPDs...
I hope this dynamics of VS 2005 Upgrade Exams help... Feel free to write back if you have more questions...
Saturday, March 18, 2006
Wednesday, March 15, 2006
All links for SQL 2005 Certs
Due to repeated requests, here is a consolidated list for SQL 2005 Exams...
All Info on New Generation of Certifications...
http://www.microsoft.com/learning/mcp/newgen/
All info on MCTS SQL Server 2005
http://www.microsoft.com/learning/mcp/mcts/sql/
Exams required for MCTS SQL Server 2005
SQL 2005 Technology Exam http://www.microsoft.com/learning/exams/70-431.asp
All info on MCITP Database Developer (Requires MCTS SQL Server 2005)
http://www.microsoft.com/learning/mcp/mcitp/dbdev/
Exams required for MCITP Database Developer
DB Design PRO http://www.microsoft.com/learning/exams/70-441.asp
DB Data Access PRO http://www.microsoft.com/learning/exams/70-442.asp
All info on MCITP Database Administrator (Requires MCTS SQL Server 2005)
http://www.microsoft.com/learning/mcp/mcitp/dbadmin/
Exams required for MCTS DA
Designing DB Infrastructure PRO http://www.microsoft.com/learning/exams/70-443.asp
Optimizing and Maintaining DB PRO http://www.microsoft.com/learning/exams/70-444.asp
All info on MCITP Business Intelligence Developer (Requires MCTS SQL Server 2005)
http://www.microsoft.com/learning/mcp/mcitp/bid/
NOTE: Exams for this credential are under development and any info available will be updated on Microsoft site...
UPGRADES
MCDBA to MCITP Database Administrator http://www.microsoft.com/learning/exams/70-447.asp
Disclaimer: Do note that the credentials mentioned here are not official credentials they are just quick reference credentials for the reasons of a quick post..
All Info on New Generation of Certifications...
http://www.microsoft.com/learning/mcp/newgen/
All info on MCTS SQL Server 2005
http://www.microsoft.com/learning/mcp/mcts/sql/
Exams required for MCTS SQL Server 2005
SQL 2005 Technology Exam http://www.microsoft.com/learning/exams/70-431.asp
All info on MCITP Database Developer (Requires MCTS SQL Server 2005)
http://www.microsoft.com/learning/mcp/mcitp/dbdev/
Exams required for MCITP Database Developer
DB Design PRO http://www.microsoft.com/learning/exams/70-441.asp
DB Data Access PRO http://www.microsoft.com/learning/exams/70-442.asp
All info on MCITP Database Administrator (Requires MCTS SQL Server 2005)
http://www.microsoft.com/learning/mcp/mcitp/dbadmin/
Exams required for MCTS DA
Designing DB Infrastructure PRO http://www.microsoft.com/learning/exams/70-443.asp
Optimizing and Maintaining DB PRO http://www.microsoft.com/learning/exams/70-444.asp
All info on MCITP Business Intelligence Developer (Requires MCTS SQL Server 2005)
http://www.microsoft.com/learning/mcp/mcitp/bid/
NOTE: Exams for this credential are under development and any info available will be updated on Microsoft site...
UPGRADES
MCDBA to MCITP Database Administrator http://www.microsoft.com/learning/exams/70-447.asp
Disclaimer: Do note that the credentials mentioned here are not official credentials they are just quick reference credentials for the reasons of a quick post..
Tuesday, March 14, 2006
VS 2005 Certifications: TS Vs PRO
What to expect when you prepare for new Visual Studio 2005 Certifications??
By this time we all know that new certification strategy is divided into two major categories...
1.) Technology Specialization Series (TS)
2.) Professional Series (PRO)
Today I will dive deeper to give you an idea on what to expect in the exams and why such a strategy...
We always had enough technical weightage in the exams but there were still complains that certifications do not take care of everything needed to do a job... So we went further to understand what was missing in developer certifications... We got lot of intersting feedbacks...
The first result of those feedbacks was division of the certifications into TS and PRO... So what exactly does that division mean??... Here is the answer -
We tried to break our MS Technology Developer's skills into two major chunks; the first being pure technical skills and second being skills gathered from in job experiences...
So how are those different? The concept is easy to understand if you observe carefully... Technical knowledge about a particular technology can be gained by multiple ways, one of the ways can be experience in a job but that is not the only way... A person might know a lot about .Net Framework by reading books, MSDN, articles, taking e-Learning course, writing sample apps, technical presentations etc etc... These are some of the ways to learn more and start getting expertise in a technology... But many a times technical knowledge gained outside of practical experience may not have yet resulted into production code... Anyone who has written production code knows the difference between reading an article, writing sample code and writing actual production code... We also wanted to test that aspect of developers...
That is when we divided TS & PRO aspects of developers and finally MCTS and MCPD came into being... Well I am sure you got some idea but still I feel the concept can be made clearer so let us understand some more...
When you go to take TS exams, you should note that they will be based on a technology; When you go to take a PRO exam it will be based on a job role...
e.g. 70-528 .Net 2.0 web applications is a TS exam which focuses on ASP.Net 2.0 technologies whereas 70-547 Web Developer exam focuses on the industry job role of Web Developer...
A TS exam focues on "HOW TO?" do stuff with a technology where as a PRO exam tries to probe into "WHY? WHEN? and WHERE?" to do stuff with technology/s... Let's take an example to clarify:
"How to implement IDisposable interface in your class?" - This would be a TS question... but on the other hand "Why to implement or When to implement IDisposable interface in your type?" will be a PRO level question?
Now if you think about it you will realize that you can very easily read from a book how to implement IDisposable and probably follow and remember the steps to do so, but when it comes to finding out why your class really needs that implementation or are you going to break older versions by implementing IDisposable etc are the things that would be covered in the PRO exams...
So basically Why?, When? and Where? kind of scenarios whose answers are learnt from experience will be covered in PRO level developer exams... When you appear PRO exams you will probably see longer questions, you will probably have to synthesize like the way you would do while writing production worthy code, you might proably see lots of conditions and comapany policy rules which exist in real world, at times you might feel there are multiple correct answers (but read the question once more), you might find that the questions are tricky (but they probably would not be) etc etc... When you appear a TS exams things will be clear and simple, there will be definitive answers which you can predict and this is because of the very nature of these exams...
With this let us talk about how would you prepare for the TS and PRO Exams.. Before you go to appear TS exams you should know the technologies covered in the Exam in and out, there will be lot of prep material available for these exams... Before you go to appear PRO Exams you should have experience in developing applications with those technologies... There might not be a lot of prep material for these exams but then from the very nature of them there doesn't need to be a lot of material... You are expected to gain that knowledge with your expeirence and you proabably do not need to prepare that hard...
So do not get frustrated with the differences, understand them and go in prepared... In PRO exams you might have to understand all the moving parts of the scenario and only then you should answer a question... In TS you need to understand the technology well enough to answer...
Well, anyways I think this post is becoming too long and it is getting too late... We will talk about the rest later... In the meantime you can share your experiences of appearing PRO/TS exams here...
By this time we all know that new certification strategy is divided into two major categories...
1.) Technology Specialization Series (TS)
2.) Professional Series (PRO)
Today I will dive deeper to give you an idea on what to expect in the exams and why such a strategy...
We always had enough technical weightage in the exams but there were still complains that certifications do not take care of everything needed to do a job... So we went further to understand what was missing in developer certifications... We got lot of intersting feedbacks...
The first result of those feedbacks was division of the certifications into TS and PRO... So what exactly does that division mean??... Here is the answer -
We tried to break our MS Technology Developer's skills into two major chunks; the first being pure technical skills and second being skills gathered from in job experiences...
So how are those different? The concept is easy to understand if you observe carefully... Technical knowledge about a particular technology can be gained by multiple ways, one of the ways can be experience in a job but that is not the only way... A person might know a lot about .Net Framework by reading books, MSDN, articles, taking e-Learning course, writing sample apps, technical presentations etc etc... These are some of the ways to learn more and start getting expertise in a technology... But many a times technical knowledge gained outside of practical experience may not have yet resulted into production code... Anyone who has written production code knows the difference between reading an article, writing sample code and writing actual production code... We also wanted to test that aspect of developers...
That is when we divided TS & PRO aspects of developers and finally MCTS and MCPD came into being... Well I am sure you got some idea but still I feel the concept can be made clearer so let us understand some more...
When you go to take TS exams, you should note that they will be based on a technology; When you go to take a PRO exam it will be based on a job role...
e.g. 70-528 .Net 2.0 web applications is a TS exam which focuses on ASP.Net 2.0 technologies whereas 70-547 Web Developer exam focuses on the industry job role of Web Developer...
A TS exam focues on "HOW TO?" do stuff with a technology where as a PRO exam tries to probe into "WHY? WHEN? and WHERE?" to do stuff with technology/s... Let's take an example to clarify:
"How to implement IDisposable interface in your class?" - This would be a TS question... but on the other hand "Why to implement or When to implement IDisposable interface in your type?" will be a PRO level question?
Now if you think about it you will realize that you can very easily read from a book how to implement IDisposable and probably follow and remember the steps to do so, but when it comes to finding out why your class really needs that implementation or are you going to break older versions by implementing IDisposable etc are the things that would be covered in the PRO exams...
So basically Why?, When? and Where? kind of scenarios whose answers are learnt from experience will be covered in PRO level developer exams... When you appear PRO exams you will probably see longer questions, you will probably have to synthesize like the way you would do while writing production worthy code, you might proably see lots of conditions and comapany policy rules which exist in real world, at times you might feel there are multiple correct answers (but read the question once more), you might find that the questions are tricky (but they probably would not be) etc etc... When you appear a TS exams things will be clear and simple, there will be definitive answers which you can predict and this is because of the very nature of these exams...
With this let us talk about how would you prepare for the TS and PRO Exams.. Before you go to appear TS exams you should know the technologies covered in the Exam in and out, there will be lot of prep material available for these exams... Before you go to appear PRO Exams you should have experience in developing applications with those technologies... There might not be a lot of prep material for these exams but then from the very nature of them there doesn't need to be a lot of material... You are expected to gain that knowledge with your expeirence and you proabably do not need to prepare that hard...
So do not get frustrated with the differences, understand them and go in prepared... In PRO exams you might have to understand all the moving parts of the scenario and only then you should answer a question... In TS you need to understand the technology well enough to answer...
Well, anyways I think this post is becoming too long and it is getting too late... We will talk about the rest later... In the meantime you can share your experiences of appearing PRO/TS exams here...
Tuesday, March 07, 2006
Wiki Books on MCPD Certs
Help Create Wiki Books on MCPD Certifications
There has been a noble effort started to create Wiki Books for MCPD Certifications... Click Here to go to the site...
While you study for the new MCPD certifications, help create online resources for the same too and help other professionals prepare for the new exams...
Do write back here if you see the Wiki Books being mis-used...
There has been a noble effort started to create Wiki Books for MCPD Certifications... Click Here to go to the site...
While you study for the new MCPD certifications, help create online resources for the same too and help other professionals prepare for the new exams...
Do write back here if you see the Wiki Books being mis-used...
Thursday, February 23, 2006
.Net Framework 2.0 Certifications - Beta Offer
Visual Studio 2005/.Net Framework 2.0 Certifications - Beta Offer
You can be a step closer to becoming “Microsoft Certified Professional Developer (MCPD)” with specialization in any of the below three tracks by taking a FREE Beta Exam…
MCPD Web Developer
MCPD Windows Developer
MCPD Enterprise Application Developer
And Also Win a Mobile Smartphone or a Wireless Keyboard!!
Help us create great Microsoft Certification exams. Take the Beta version of Exams 70-547, 70-548, and/or 70-549 and you’ll be automatically entered to win* one of two Windows Mobile Smartphones and one of 10 Microsoft Laser Desktop 6000 Keyboards.
Only one entry per Beta exam, but if you take 2 different Betas you’ll be entered 2 times, and if you take all 3 Betas you’ll be entered 3 times. Microsoft employees and customers are eligible with a few restrictions – see below for all of the contest rules and regulations. Like the Beta Exams, this offer is not available in China, India, or Pakistan.
And Also Earn a Free Exam Voucher
In addition, everyone who takes and achieves passing score in the beta exam will receive a free exam voucher** for any Microsoft Certification Exam. Vouchers will be sent after exam scores are tabulated. This offer is also not available in China, India, or Pakistan.
Exams Available Early
Take the Betas starting February 21, 2006 at Pearson VUE locations, and starting February 27, 2006 at Thomson Prometric testing centers.
Schedule your Beta exams today
To register for this exam or for information about testing centers in your area, please visit the following Web sites for registration information:
Thomson Prometric: http://securereg3.prometric.com/
Pearson VUE: http://www.vue.com/ms/
In the U.S./Canada you may also call to register for this exam or to find information about testing centers in your area:
Thomson Prometric: (800) 755-EXAM (800-755-3926)
Pearson VUE: 800 TEST Registration (800-837-8734)
Use the following promotional codes to register:
71-547 PRO: Designing and Developing Web-based Applications by Using the Microsoft® .NET Framework. Promo Code: PRO547
71-548 PRO: Designing and Developing Windows®-based Applications by Using the Microsoft® .NET Framework. Promo Code: BTA548
71-549 PRO: Designing and Developing Enterprise Applications by Using the Microsoft® .NET Framework. Promo Code: 549BTA
* This sweepstakes invitation is for the Microsoft customers and employees, with some restrictions (see Official Rules below). Please forward to your colleagues, partners, and customers.
** Free exam voucher offer good only for people who pre-register for, and pass, Exams 71-547, 71-548, and 71-549. Limit one gift per person. This offer is non-transferable. This offer expires on March 12 2006, or when registration closes for this Beta exam. Beta exam registration has limited availability. This offer is not redeemable for cash. Taxes, if any, are the sole responsibility of the recipient. Any gift returned as non-deliverable will not be re-sent.
PS: We are looking for more and more technical feedback on the exams so feel free to reach out to your user groups and communities and let developers know of this opportunity. Although do note that each exam caps at 750 Beta participants so there is an official upper limit…
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The Microsoft Certification Beta Exam Sweepstakes
Official Rules
Please Note: It is your sole responsibility to review and understand your employer’s policies regarding your eligibility to participate in trade promotions such as this one. If you are participating in violation of your employer’s policies, you may be disqualified from entering this sweepstakes or receiving prizes. Microsoft disclaims any and all liability or responsibility for disputes arising between an employee and their employer related to this matter, and prizes will only be awarded in compliance with the employer’s policies.
Government Customer: This campaign is available to Public Sector customers (government and education customers), however, any prize won by a public sector employee will be awarded in the form of Microsoft certification exam vouchers. Microsoft intends that use of this training voucher offered as part of this promotion comply with applicable federal, state, and local government gift and ethics rules. If you are a government employee (including an employee of a public education institution), this voucher may be used solely for the benefit of your agency/institution, and not for the personal use or benefit of any individual. You should consult with your agency/institution counsel or ethics officer prior to use or acceptance of this voucher.
1. Eligibility / Entry Period:
Open only to persons employed in the field of software development who have agreed to participate in the Microsoft beta exam program.
This offer is not transferable and is not open to the general public. This offer is void in the following regions: Cuba, Iran, Libya, North Korea, Sudan and Syria. This offer is not available in China, Pakistan and India. Employees of Microsoft, their affiliates, subsidiaries, and anyone working on this product, project, or promotion, and the advertising and promotional agencies and the immediate family members of each are not eligible. The sweepstakes opens at 12:01 AM PT on February 21, 2006 and ends at 11:59 PM PT on March 12, 2006. Void where prohibited by law.
2. How To Enter:
No purchase Necessary. Enter by completing the free beta exams 71-547, 71-548, and 71-549 at a participating testing center and opt-in to enter this sweepstakes. To be eligible for the prize drawing, exams must be completed by 11:59 PM PT on March 12, 2006. A passing score is not required to receive a sweepstakes entry; however the beta exam must be completed in full to be eligible for the drawing.
Limit one (1) entry per person per beta exam, for a total of 3 possible entries. Subsequent entries from the same individual will be automatically disqualified. No responsibility is assumed by Microsoft for lost, late, misdirected, illegible, postage due or mutilated entries or any computer, online telephone, or technical malfunctions that may occur. All entries become the property of Microsoft and will not be returned.
3. Winner Selection/Deadline Dates:
On or around April 15, 2006, 12 winners will be chosen in a random drawing from among all eligible entries received to win one of the following prizes:
Two winners: One (1) Windows Mobile Smartphone device. Estimated Retail Value US$500.
Ten winners: One (1) Wireless Laser Desktop 6000 keyboard. Estimated Retail Value US$65.
Actual retail value will vary based on the region where the winner resides, and any difference between estimated and actual value will not be awarded. Any prize won by a public sector employee will be awarded to their agency/institution in the form of Microsoft certification exam vouchers; the value not to exceed the estimated retail value of the alternate prizes. Random drawing will be conducted under the supervision of Microsoft, whose decisions are final. Odds of winning depend on the number of eligible entries received. All other expenses relating to the acceptance of the prize, which are not explicitly listed, are the responsibility of the winner. Prizes are not redeemable for cash. No substitution, transfer, or assignment of prize permitted, except that Sponsor reserves the right to substitute a prize of equal or greater value in the event an offered prize is unavailable. Taxes on the prizes are solely the responsibility of the winner.
5. General Conditions:
Sweepstakes entrants agree to abide by the terms of these official rules and by the decisions of Microsoft which are final and binding on all matters pertaining to this Sweepstakes. This sweepstakes is governed by the laws of the State of Washington in the United States of America, and participants in the Sweepstakes hereby consent to the exclusive jurisdiction and venue of Washington courts (state and federal) for any causes or controversies arising out of the Sweepstakes.
Winner will be notified within seven (7) days after the drawing date. Winner will be required to execute an affidavit of eligibility and liability/publicity release within seven (7) days following the date of attempted notification. Non compliance within this time period may result in disqualification and selection of an alternate winner. Return of any prize/ prize notification as undeliverable may result in disqualification and selection of an alternate winner. Entrants further grant to Microsoft the right to use and publish their proper name and state online and in print in any other media in connection with the Sweepstakes. Acceptance of a prize constitutes permission for Microsoft to use winner's names and likenesses for advertising and promotional purposes without additional compensation unless prohibited by law. By entering, participants release and hold harmless Microsoft, their respective parents, subsidiaries, affiliates, directors, officers, employees and agents from any and all liability or any injuries, loss or damage of any kind arising from or in connection with this Sweepstakes or any prize won.
6. Winners List:
The names of the winners will be available after April 15, 2006, by sending email to mcphelp@microsoft.com.
8. Sponsor:
This Sweepstakes is sponsored by Microsoft Corporation, One Microsoft Way, Redmond, WA 98052.
You can be a step closer to becoming “Microsoft Certified Professional Developer (MCPD)” with specialization in any of the below three tracks by taking a FREE Beta Exam…
MCPD Web Developer
MCPD Windows Developer
MCPD Enterprise Application Developer
And Also Win a Mobile Smartphone or a Wireless Keyboard!!
Help us create great Microsoft Certification exams. Take the Beta version of Exams 70-547, 70-548, and/or 70-549 and you’ll be automatically entered to win* one of two Windows Mobile Smartphones and one of 10 Microsoft Laser Desktop 6000 Keyboards.
Only one entry per Beta exam, but if you take 2 different Betas you’ll be entered 2 times, and if you take all 3 Betas you’ll be entered 3 times. Microsoft employees and customers are eligible with a few restrictions – see below for all of the contest rules and regulations. Like the Beta Exams, this offer is not available in China, India, or Pakistan.
And Also Earn a Free Exam Voucher
In addition, everyone who takes and achieves passing score in the beta exam will receive a free exam voucher** for any Microsoft Certification Exam. Vouchers will be sent after exam scores are tabulated. This offer is also not available in China, India, or Pakistan.
Exams Available Early
Take the Betas starting February 21, 2006 at Pearson VUE locations, and starting February 27, 2006 at Thomson Prometric testing centers.
Schedule your Beta exams today
To register for this exam or for information about testing centers in your area, please visit the following Web sites for registration information:
Thomson Prometric: http://securereg3.prometric.com/
Pearson VUE: http://www.vue.com/ms/
In the U.S./Canada you may also call to register for this exam or to find information about testing centers in your area:
Thomson Prometric: (800) 755-EXAM (800-755-3926)
Pearson VUE: 800 TEST Registration (800-837-8734)
Use the following promotional codes to register:
71-547 PRO: Designing and Developing Web-based Applications by Using the Microsoft® .NET Framework. Promo Code: PRO547
71-548 PRO: Designing and Developing Windows®-based Applications by Using the Microsoft® .NET Framework. Promo Code: BTA548
71-549 PRO: Designing and Developing Enterprise Applications by Using the Microsoft® .NET Framework. Promo Code: 549BTA
* This sweepstakes invitation is for the Microsoft customers and employees, with some restrictions (see Official Rules below). Please forward to your colleagues, partners, and customers.
** Free exam voucher offer good only for people who pre-register for, and pass, Exams 71-547, 71-548, and 71-549. Limit one gift per person. This offer is non-transferable. This offer expires on March 12 2006, or when registration closes for this Beta exam. Beta exam registration has limited availability. This offer is not redeemable for cash. Taxes, if any, are the sole responsibility of the recipient. Any gift returned as non-deliverable will not be re-sent.
PS: We are looking for more and more technical feedback on the exams so feel free to reach out to your user groups and communities and let developers know of this opportunity. Although do note that each exam caps at 750 Beta participants so there is an official upper limit…
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The Microsoft Certification Beta Exam Sweepstakes
Official Rules
Please Note: It is your sole responsibility to review and understand your employer’s policies regarding your eligibility to participate in trade promotions such as this one. If you are participating in violation of your employer’s policies, you may be disqualified from entering this sweepstakes or receiving prizes. Microsoft disclaims any and all liability or responsibility for disputes arising between an employee and their employer related to this matter, and prizes will only be awarded in compliance with the employer’s policies.
Government Customer: This campaign is available to Public Sector customers (government and education customers), however, any prize won by a public sector employee will be awarded in the form of Microsoft certification exam vouchers. Microsoft intends that use of this training voucher offered as part of this promotion comply with applicable federal, state, and local government gift and ethics rules. If you are a government employee (including an employee of a public education institution), this voucher may be used solely for the benefit of your agency/institution, and not for the personal use or benefit of any individual. You should consult with your agency/institution counsel or ethics officer prior to use or acceptance of this voucher.
1. Eligibility / Entry Period:
Open only to persons employed in the field of software development who have agreed to participate in the Microsoft beta exam program.
This offer is not transferable and is not open to the general public. This offer is void in the following regions: Cuba, Iran, Libya, North Korea, Sudan and Syria. This offer is not available in China, Pakistan and India. Employees of Microsoft, their affiliates, subsidiaries, and anyone working on this product, project, or promotion, and the advertising and promotional agencies and the immediate family members of each are not eligible. The sweepstakes opens at 12:01 AM PT on February 21, 2006 and ends at 11:59 PM PT on March 12, 2006. Void where prohibited by law.
2. How To Enter:
No purchase Necessary. Enter by completing the free beta exams 71-547, 71-548, and 71-549 at a participating testing center and opt-in to enter this sweepstakes. To be eligible for the prize drawing, exams must be completed by 11:59 PM PT on March 12, 2006. A passing score is not required to receive a sweepstakes entry; however the beta exam must be completed in full to be eligible for the drawing.
Limit one (1) entry per person per beta exam, for a total of 3 possible entries. Subsequent entries from the same individual will be automatically disqualified. No responsibility is assumed by Microsoft for lost, late, misdirected, illegible, postage due or mutilated entries or any computer, online telephone, or technical malfunctions that may occur. All entries become the property of Microsoft and will not be returned.
3. Winner Selection/Deadline Dates:
On or around April 15, 2006, 12 winners will be chosen in a random drawing from among all eligible entries received to win one of the following prizes:
Two winners: One (1) Windows Mobile Smartphone device. Estimated Retail Value US$500.
Ten winners: One (1) Wireless Laser Desktop 6000 keyboard. Estimated Retail Value US$65.
Actual retail value will vary based on the region where the winner resides, and any difference between estimated and actual value will not be awarded. Any prize won by a public sector employee will be awarded to their agency/institution in the form of Microsoft certification exam vouchers; the value not to exceed the estimated retail value of the alternate prizes. Random drawing will be conducted under the supervision of Microsoft, whose decisions are final. Odds of winning depend on the number of eligible entries received. All other expenses relating to the acceptance of the prize, which are not explicitly listed, are the responsibility of the winner. Prizes are not redeemable for cash. No substitution, transfer, or assignment of prize permitted, except that Sponsor reserves the right to substitute a prize of equal or greater value in the event an offered prize is unavailable. Taxes on the prizes are solely the responsibility of the winner.
5. General Conditions:
Sweepstakes entrants agree to abide by the terms of these official rules and by the decisions of Microsoft which are final and binding on all matters pertaining to this Sweepstakes. This sweepstakes is governed by the laws of the State of Washington in the United States of America, and participants in the Sweepstakes hereby consent to the exclusive jurisdiction and venue of Washington courts (state and federal) for any causes or controversies arising out of the Sweepstakes.
Winner will be notified within seven (7) days after the drawing date. Winner will be required to execute an affidavit of eligibility and liability/publicity release within seven (7) days following the date of attempted notification. Non compliance within this time period may result in disqualification and selection of an alternate winner. Return of any prize/ prize notification as undeliverable may result in disqualification and selection of an alternate winner. Entrants further grant to Microsoft the right to use and publish their proper name and state online and in print in any other media in connection with the Sweepstakes. Acceptance of a prize constitutes permission for Microsoft to use winner's names and likenesses for advertising and promotional purposes without additional compensation unless prohibited by law. By entering, participants release and hold harmless Microsoft, their respective parents, subsidiaries, affiliates, directors, officers, employees and agents from any and all liability or any injuries, loss or damage of any kind arising from or in connection with this Sweepstakes or any prize won.
6. Winners List:
The names of the winners will be available after April 15, 2006, by sending email to mcphelp@microsoft.com.
8. Sponsor:
This Sweepstakes is sponsored by Microsoft Corporation, One Microsoft Way, Redmond, WA 98052.
Monday, February 20, 2006
All Links for VS 2005 Certs
I have been asked many of these questions repeatedly again and so I am creating a consolidated post for the links required for current VS 2005 Certifications...
All Info on New Generation of Certifications...
http://www.microsoft.com/learning/mcp/newgen/
All info on MCTS Web
http://www.microsoft.com/learning/mcp/mcts/webapps/
Exams required for MCTS Web
Foundation http://www.microsoft.com/learning/exams/70-536.asp
Web TS http://www.microsoft.com/learning/exams/70-528.asp
All info on MCTS Windows
http://www.microsoft.com/learning/mcp/mcts/winapps/
Exams required for MCTS Windows
Foundation http://www.microsoft.com/learning/exams/70-536.asp
Windows TS http://www.microsoft.com/learning/exams/70-526.asp
All info on MCTS Distributed Apps
http://www.microsoft.com/learning/mcp/mcts/distapps/
Exams required for MCTS DA
Foundation http://www.microsoft.com/learning/exams/70-536.asp
DA TS http://www.microsoft.com/learning/exams/70-529.asp
All info on MCPD Web Developer (Requires MCTS in Web)
http://www.microsoft.com/learning/mcp/mcpd/webdev/
Exam required for MCPD Web Dev
PRO Web http://www.microsoft.com/learning/exams/70-547.asp
All info on MCPD Windows Developer (Requires MCTS in Windows)
http://www.microsoft.com/learning/mcp/mcpd/windev/
Exam required for MCPD Windows Dev
PRO Windows http://www.microsoft.com/learning/exams/70-548.asp
All info on MCPD Enterprise App Developer (Requires MCTS in Web, Windows and DA)
http://www.microsoft.com/learning/mcp/mcpd/entapp/
Exam required for MCPD EA Dev
PRO Web http://www.microsoft.com/learning/exams/70-549.asp
UPGRADES
MCAD to MCPD Web http://www.microsoft.com/learning/exams/70-551.asp
MCAD to MCPD Windows http://www.microsoft.com/learning/exams/70-552.asp
MCSD .Net to MCPD EA – Exam 1 http://www.microsoft.com/learning/exams/70-553.asp
MCSD .Net to MCPD EA – Exam 2 http://www.microsoft.com/learning/exams/70-554.asp
Disclaimer: Do note that the credentials mentioned here are not official credentials they are just quick reference credentials for the reasons of a quick post..
All Info on New Generation of Certifications...
http://www.microsoft.com/learning/mcp/newgen/
All info on MCTS Web
http://www.microsoft.com/learning/mcp/mcts/webapps/
Exams required for MCTS Web
Foundation http://www.microsoft.com/learning/exams/70-536.asp
Web TS http://www.microsoft.com/learning/exams/70-528.asp
All info on MCTS Windows
http://www.microsoft.com/learning/mcp/mcts/winapps/
Exams required for MCTS Windows
Foundation http://www.microsoft.com/learning/exams/70-536.asp
Windows TS http://www.microsoft.com/learning/exams/70-526.asp
All info on MCTS Distributed Apps
http://www.microsoft.com/learning/mcp/mcts/distapps/
Exams required for MCTS DA
Foundation http://www.microsoft.com/learning/exams/70-536.asp
DA TS http://www.microsoft.com/learning/exams/70-529.asp
All info on MCPD Web Developer (Requires MCTS in Web)
http://www.microsoft.com/learning/mcp/mcpd/webdev/
Exam required for MCPD Web Dev
PRO Web http://www.microsoft.com/learning/exams/70-547.asp
All info on MCPD Windows Developer (Requires MCTS in Windows)
http://www.microsoft.com/learning/mcp/mcpd/windev/
Exam required for MCPD Windows Dev
PRO Windows http://www.microsoft.com/learning/exams/70-548.asp
All info on MCPD Enterprise App Developer (Requires MCTS in Web, Windows and DA)
http://www.microsoft.com/learning/mcp/mcpd/entapp/
Exam required for MCPD EA Dev
PRO Web http://www.microsoft.com/learning/exams/70-549.asp
UPGRADES
MCAD to MCPD Web http://www.microsoft.com/learning/exams/70-551.asp
MCAD to MCPD Windows http://www.microsoft.com/learning/exams/70-552.asp
MCSD .Net to MCPD EA – Exam 1 http://www.microsoft.com/learning/exams/70-553.asp
MCSD .Net to MCPD EA – Exam 2 http://www.microsoft.com/learning/exams/70-554.asp
Disclaimer: Do note that the credentials mentioned here are not official credentials they are just quick reference credentials for the reasons of a quick post..
Thursday, December 29, 2005
Take MCTS/MCPD in Managed C++

Yes you can take some of the new .Net 2.0 and related technologies exams in Managed C++ too... Although it is important to note that not all the exams will be available in Managed C++...
Check our the tentative plan on code language options for MCTS and MCPD exams in the adjoining figure...
Q Now why are certain exams not available in C++.Net?
A.Due to technical limitations with specific web technologies not all the exams can be made available in C++.Net
Q.Will all the above exam's Beta version also have Managed C++ as an option?
A.We will try to enable Managed C++ for Beta Exams whereever possible... More concrete details will be provided within Beta invites of the individual exams...
Q.Will we see more C++.Net in MS exams in the future
A.Well it depends upon the feedback from the C++.Net community. If C++.Net community loves it MS will have it...
NOTE: The above information is provided as is with no warranties... It is also subject to change at any point of time without any prior notices...
Thursday, December 15, 2005
Product Manager Position in MS
If you understand developers, are one among them, want to represent them within MS then you should check out this interesting position in "Developer Audience" team here at Redmond, USA...
http://members.microsoft.com/careers/search/details.aspx?JobID=ff04f31b-8820-48a5-96e7-959dfcc90f73
http://members.microsoft.com/careers/search/details.aspx?JobID=ff04f31b-8820-48a5-96e7-959dfcc90f73
Sunday, December 11, 2005
TS: and PRO: Prefixs for Exams
VS 05 and SQL 05 Exams will have TS: and PRO: as official pre-fixs...
As there are going to be two major category of exams in next Gen of Certs, it is important to clearly seperate them... Cert Team wanted to make sure that candidates are able to differentiate between "Technology Series" Exams and "Professional Series" Exams by reading the names itself... To make this true for all the audiences i.e. Developers, IT Professionals etc the simplest common way was to add prefixes...
That is when it was decided that all "Technology Series" Exams Names (MCTS exam names) will be prefixed with "TS:" and all "Professional Series" Exams Names (MCITP and MCPD exam names) will be prefixed with "PRO:"...
Hope this new convention will help...
As there are going to be two major category of exams in next Gen of Certs, it is important to clearly seperate them... Cert Team wanted to make sure that candidates are able to differentiate between "Technology Series" Exams and "Professional Series" Exams by reading the names itself... To make this true for all the audiences i.e. Developers, IT Professionals etc the simplest common way was to add prefixes...
That is when it was decided that all "Technology Series" Exams Names (MCTS exam names) will be prefixed with "TS:" and all "Professional Series" Exams Names (MCITP and MCPD exam names) will be prefixed with "PRO:"...
Hope this new convention will help...
Tuesday, December 06, 2005
SQL 05 & VS 05 Upgrade Paths
Microsoft Recognizes the folks who are already certified...
I believe MS recognizes the folks who are already certified with MCAD, MCSD .Net or MCDBA credentials. It is definitely true that a lot of effort and money goes into getting certified and MS recognizes those who have gone through that rigor; that is one of the primary reasons for providing Upgrade Exams to folks already in the program...
Upgrade Exams are intended to test only the skills that people already in the program have not been tested on earlier. This also helps reduce the number of exams that a certified person will have to take to upgrade themselves. The next generation of certifications will be a step above the existing credentials and so it is important to ensure that people in the program climb up that step and get at level of new certifications... This makes having Upgrade Exams extremly important... Lets talk about the upgrade options available for SQL Server 2005 and VS 2005 credentials...
MCDBA Upgrade to MCITP Database Administrator
In the new family to become MCITP Database Administrator it is required to achieve MCTS SQL Server 2005 Credential by taking Exam 70-431 and then by passing two PRO exams 70-443 and 70-444.
For folks who are already MCDBA this three exam path becomes two exam path...
An MCDBA will have to achieve MCTS SQL Server 2005 credential by passing Exam 70-431 and then can take & pass an upgrade exam 70-447... So basically instead of passing the two exam 70-443 and 70-444, MCDBAs will have to pass just one exam.
This was a quick snapshot of SQL Server 2005 credential upgrade... Now lets talk about Visual Studio 2005 credential upgrades...
MCAD to MCPD Web Developer
In regular path to become MCPD Web Developer it is required to achieve MCTS .Net Framework 2.0 Web Applications by taking two exams (70-536 & 70-528) and then by taking the PRO Exam 70-547
A person already certified as MCAD will have to take just Exam 70-551 and will automatically get MCTS .Net Framework 2.0 Web Applications as well as MCPD Web Developer credentials...
MCAD to MCPD Windows Developer
In regular path to become MCPD Windows Developer it is required to achieve MCTS .Net Framework 2.0 Windows Applications by taking two exams (70-536 & 70-526) and then by taking the PRO Exam 70-548
A person already certified as MCAD will have to take just Exam 70-552 and will automatically get MCTS .Net Framework 2.0 Windows Applications as well as MCPD Windows Developer credentials...
MCSD .Net to MCPD Enterprise Application Developer
In regular path to become MCPD Enterprise Application Developer it is required to achieve MCTS .Net Framework 2.0 Web Applications, MCTS .Net Framework 2.0 Windows Applications and MCTS .Net Framework 2.0 Distributed Applications credentials by passing four exams (70-536, 70-528, 70-526 & 70-529) and then by taking the PRO Exam 70-549
A person already certified as MCSD .Net will have to pass just two Exams 70-553 and 70-554 and inturn will automatically get MCTS .Net Framework 2.0 Web Applications, MCTS .Net Framework 2.0 Windows Applications and MCTS .Net Framework 2.0 Distributed Applications as well as MCPD Enterprise Application Developer credentials...
NOTE: Some of the exam links might not work as the Exams are not yet released...
I believe MS recognizes the folks who are already certified with MCAD, MCSD .Net or MCDBA credentials. It is definitely true that a lot of effort and money goes into getting certified and MS recognizes those who have gone through that rigor; that is one of the primary reasons for providing Upgrade Exams to folks already in the program...
Upgrade Exams are intended to test only the skills that people already in the program have not been tested on earlier. This also helps reduce the number of exams that a certified person will have to take to upgrade themselves. The next generation of certifications will be a step above the existing credentials and so it is important to ensure that people in the program climb up that step and get at level of new certifications... This makes having Upgrade Exams extremly important... Lets talk about the upgrade options available for SQL Server 2005 and VS 2005 credentials...
MCDBA Upgrade to MCITP Database Administrator
In the new family to become MCITP Database Administrator it is required to achieve MCTS SQL Server 2005 Credential by taking Exam 70-431 and then by passing two PRO exams 70-443 and 70-444.
For folks who are already MCDBA this three exam path becomes two exam path...
An MCDBA will have to achieve MCTS SQL Server 2005 credential by passing Exam 70-431 and then can take & pass an upgrade exam 70-447... So basically instead of passing the two exam 70-443 and 70-444, MCDBAs will have to pass just one exam.
This was a quick snapshot of SQL Server 2005 credential upgrade... Now lets talk about Visual Studio 2005 credential upgrades...
MCAD to MCPD Web Developer
In regular path to become MCPD Web Developer it is required to achieve MCTS .Net Framework 2.0 Web Applications by taking two exams (70-536 & 70-528) and then by taking the PRO Exam 70-547
A person already certified as MCAD will have to take just Exam 70-551 and will automatically get MCTS .Net Framework 2.0 Web Applications as well as MCPD Web Developer credentials...
MCAD to MCPD Windows Developer
In regular path to become MCPD Windows Developer it is required to achieve MCTS .Net Framework 2.0 Windows Applications by taking two exams (70-536 & 70-526) and then by taking the PRO Exam 70-548
A person already certified as MCAD will have to take just Exam 70-552 and will automatically get MCTS .Net Framework 2.0 Windows Applications as well as MCPD Windows Developer credentials...
MCSD .Net to MCPD Enterprise Application Developer
In regular path to become MCPD Enterprise Application Developer it is required to achieve MCTS .Net Framework 2.0 Web Applications, MCTS .Net Framework 2.0 Windows Applications and MCTS .Net Framework 2.0 Distributed Applications credentials by passing four exams (70-536, 70-528, 70-526 & 70-529) and then by taking the PRO Exam 70-549
A person already certified as MCSD .Net will have to pass just two Exams 70-553 and 70-554 and inturn will automatically get MCTS .Net Framework 2.0 Web Applications, MCTS .Net Framework 2.0 Windows Applications and MCTS .Net Framework 2.0 Distributed Applications as well as MCPD Enterprise Application Developer credentials...
NOTE: Some of the exam links might not work as the Exams are not yet released...
Thursday, December 01, 2005
Are Next Gen Certs launched to make Money?
Did Microsoft Launch Next Generation of Certifications to earn more money?
Think about it...!! Are MCAD, MCSD, MCSE, MCSA, MCDBA, all these credentials going down, getting less popular, not earning enough money??... Not true, they are still getting more and more popular; MCP numbers are only growing, definitely not going down...
Trust me; it takes a lot of money and effort to make just one exam let alone making all together new generation of certification with numerous new exams… It takes around 6-7 months and more than 20 people contributing to make one quality exam… Contributions to the exam content comes more from expert industry professionals and less from internal MS employees, this ensures to keep the content more relevant to the current industry… I can go on and on but instead it would be better to Click Here to know more on how exams are developed…
So when everything is going well and good then why make new credentials and certifications… Well, the primary reason for making all together new credentials is not money driven but much deeper than that…In my simple words, new generation of certifications are here to:
1. Raise the bar for technical certifications in the industry…
2. So that the right people, qualified in specific job/technical areas get identified by the world…
3. Provide certifications that hiring managers can easily identify, understand, respect and appreciate so that certified professionals really get what they deserve…
4. Provide certifications that professionals can relate to and adopt…
5. Separate job roles and technology so that professionals can not only demonstrate that they are strong in technology but also have the professional skills which come only by professionally working on projects in the industry…
Again I can go on and on but Clicking Here will present already officially documented reasons…
I hope this helps throw new light on New Generation of Certifications…
Note: This post is provided “AS IS” with no warranties and just expresses my personal views on subject…
Think about it...!! Are MCAD, MCSD, MCSE, MCSA, MCDBA, all these credentials going down, getting less popular, not earning enough money??... Not true, they are still getting more and more popular; MCP numbers are only growing, definitely not going down...
Trust me; it takes a lot of money and effort to make just one exam let alone making all together new generation of certification with numerous new exams… It takes around 6-7 months and more than 20 people contributing to make one quality exam… Contributions to the exam content comes more from expert industry professionals and less from internal MS employees, this ensures to keep the content more relevant to the current industry… I can go on and on but instead it would be better to Click Here to know more on how exams are developed…
So when everything is going well and good then why make new credentials and certifications… Well, the primary reason for making all together new credentials is not money driven but much deeper than that…In my simple words, new generation of certifications are here to:
1. Raise the bar for technical certifications in the industry…
2. So that the right people, qualified in specific job/technical areas get identified by the world…
3. Provide certifications that hiring managers can easily identify, understand, respect and appreciate so that certified professionals really get what they deserve…
4. Provide certifications that professionals can relate to and adopt…
5. Separate job roles and technology so that professionals can not only demonstrate that they are strong in technology but also have the professional skills which come only by professionally working on projects in the industry…
Again I can go on and on but Clicking Here will present already officially documented reasons…
I hope this helps throw new light on New Generation of Certifications…
Note: This post is provided “AS IS” with no warranties and just expresses my personal views on subject…
Wednesday, November 30, 2005
Position in MSDN Team
My friend is looking for a C# Content Strategist for his team @ MSDN... This person needs to be a developer at the same time needs to understand what content developers need in this space... The selected candidate will have to relocate to Redmond, WA, USA...
For more information about the job Click Here
If interested email me with the subject "Position in MSDN Team"
For more information about the job Click Here
If interested email me with the subject "Position in MSDN Team"
Monday, November 28, 2005
Why MCITP for DB & BI Developer??
Why is "Database Developer" and "Business Intelligence Developer" Tracks PRO credential called "Microsoft Certified IT Professional (MCITP) and not Microsoft Certified Professional Developer (MCPD)?
I have been asked this question n number of times... Let me try to present the rationale:
With the New Generation of Certifications job roles are separated from technical skills... The technology specialization is accredited generically Microsoft Certified Technology Specialist (MCTS), but same cannot be done with the job role skills as professionals in different IT space relate themselves in different ways...
There were lots of surveys, interviews and focus groups conducted around this... Professionals working in the job roles of database developer and BI developer were interviewed to find out the credential that they could relate to... Survey results indicated that MCITP resonated more with SQL Server professionals... After further supporting research, discussions and approvals MCITP was chosen for Database Developer and Business Intelligence Developer...
MCITP and MCPD are both Professional job role focused credentials...
Both the credentials need MCTS credential as pre-requisite...
For IT Pro audience the PRO credential is MCITP and for Developer audience the PRO credential is MCPD...
SQL Server professionals liked MCITP more and so MCITP is the new PRO series credential for the SQL space...
I have been asked this question n number of times... Let me try to present the rationale:
With the New Generation of Certifications job roles are separated from technical skills... The technology specialization is accredited generically Microsoft Certified Technology Specialist (MCTS), but same cannot be done with the job role skills as professionals in different IT space relate themselves in different ways...
There were lots of surveys, interviews and focus groups conducted around this... Professionals working in the job roles of database developer and BI developer were interviewed to find out the credential that they could relate to... Survey results indicated that MCITP resonated more with SQL Server professionals... After further supporting research, discussions and approvals MCITP was chosen for Database Developer and Business Intelligence Developer...
MCITP and MCPD are both Professional job role focused credentials...
Both the credentials need MCTS credential as pre-requisite...
For IT Pro audience the PRO credential is MCITP and for Developer audience the PRO credential is MCPD...
SQL Server professionals liked MCITP more and so MCITP is the new PRO series credential for the SQL space...
SQL 2005 Certification Track

SQL Server 2005 Certification Track - Quick Look
This is the quick and dirty visual representation of SQL Server 2005 Certification Tracks... The three major tracks here will be Database Developer, Database Administrator and Business Intelligence Developer...
This figure does not include upgrade exam details...
VS 2005 Certification Track

Visual Studio 2005 Certification Track - Quick Look
Just a quick and dirty visual representation of VS 2005 certification tracks... The three major tracks are Web Appps, Windows Apps and Distributed Apps...
This diagram gives you a quick understanding on which exams you need take and pass to complete a particular track... Upgrade exams are not included in this diagram...
Wednesday, November 23, 2005
MS Developer Exams Branching
Code Language Branching in Developer Exams
With Visual Studio 2005 Microsoft has taken a step ahead in Developer Certifications... Remember the days when similar topic exams had different numbers based on code language... for e.g. 70-305 and 70-315...
That is going to change now... With new Code Language Branching Technology for Exam Deliveries we will have just one exam with an option to choose the code language at the time of exam delivery...
With Branching in place, developers will be asked to choose the code language of their choice (ofcourse from select set of options) before they begin the exam and all the code snippets within the exam will appear the code language selected. It will not be possible to change the language in the middle of the exam though!!
The advantage of this is that there will be only one exam number to remember... With .Net which code language you use should not matter right (ofcourse with some ifs and buts :-)) so it will not matter which code language you choose while you take the exam too...
Currently most of the new generation exams (MCTS & MCPD) will be available in VB.Net, C# as well as Managed C++ (Yes!! Managed C++ too)... Although Managed C++ might not be an option for exams where there are technology limitations... But overall pretty cool huh!!
Well all this doesn't sound pretty huge to developers right!!... Putting a few radio buttons in the beginning and showing some code based on the choice made, how big deal can it be... Believe me, I have been developer all my life appearance can be deceptive, it was definitely a big deal doing it technically...
Consider changing source code of 3rd party Windows based applications and then deploying it to more than one centers of all the cities, of all the countries in the world (which use IT enough)... Now consider that if you did not have the source code and you had to ask someone else to change it...And then on and on... Well that was not what we actually faced but I was kind of showing you the magnitude of affect such small things can have... Don't ask me what we did, but our team did a great job and you guys will now have branching available in developer exams...
Hurray!!
With Visual Studio 2005 Microsoft has taken a step ahead in Developer Certifications... Remember the days when similar topic exams had different numbers based on code language... for e.g. 70-305 and 70-315...
That is going to change now... With new Code Language Branching Technology for Exam Deliveries we will have just one exam with an option to choose the code language at the time of exam delivery...
With Branching in place, developers will be asked to choose the code language of their choice (ofcourse from select set of options) before they begin the exam and all the code snippets within the exam will appear the code language selected. It will not be possible to change the language in the middle of the exam though!!
The advantage of this is that there will be only one exam number to remember... With .Net which code language you use should not matter right (ofcourse with some ifs and buts :-)) so it will not matter which code language you choose while you take the exam too...
Currently most of the new generation exams (MCTS & MCPD) will be available in VB.Net, C# as well as Managed C++ (Yes!! Managed C++ too)... Although Managed C++ might not be an option for exams where there are technology limitations... But overall pretty cool huh!!
Well all this doesn't sound pretty huge to developers right!!... Putting a few radio buttons in the beginning and showing some code based on the choice made, how big deal can it be... Believe me, I have been developer all my life appearance can be deceptive, it was definitely a big deal doing it technically...
Consider changing source code of 3rd party Windows based applications and then deploying it to more than one centers of all the cities, of all the countries in the world (which use IT enough)... Now consider that if you did not have the source code and you had to ask someone else to change it...And then on and on... Well that was not what we actually faced but I was kind of showing you the magnitude of affect such small things can have... Don't ask me what we did, but our team did a great job and you guys will now have branching available in developer exams...
Hurray!!
Tuesday, November 22, 2005
Microsoft BETA Exams
MCROSOFT BETA EXAMS FAQs in my own words
With launch of Visual Studio 2005 and SQL Server 2005 we will be having a lot of BETA exams rolling out from November 7th 2005 to May-June 2006... I receive a lot of emails asking below questions about BETA Exams... I thought it would be easier to emphasize the significance of BETA Exam to everyone via a single blog post...
BETA Exams provide valuable feedback to MS
BETA Exam are a very good way of providing feedback to Microsoft on the Exam questions, topics, content area etc... We look at every feedback seriously and try to make sure that it is incorporated within the final version of the exam (if the feedback is relevant and applicable)... If you spend time writing all the good things in the exam feedback, be rest assured that someone will read it...
BETA Exam As Good As Released Exam
BETA Exams are free to a candidate and they are Free because Microsoft Values the time a candidate puts in providing feedback about the exams... It is not because they are trial launch and they really mean nothing to MS... BETA EXAMS SHOULD BE TAKEN AS SERIOUSLY AS RELEASED EXAMS... They are not meant to try anyone's passing luck, they are meant to give benefits to early adopters of product and help raise the quality bar of the exam... Passing a BETA exam gives a person equal credit as regular exam... From my personal perspective I would appreciate a person passing BETA exam quite a bit as he/she is probably working on the BETA verion of the product...
Learning Material for Beta Exams
Many a times we do not have a lot of learning material available to support certain Beta exams... Again it is because we believe that people who are taking beta are self motivated folks... They have been making their hands dirty with Beta Product usage... They are ahead of the crowd and have been reading beta documentation... We do try that our learning material is available as early as possible...
We do have some early e-Learning, ILTs and Books available for Whidbey and Yukon... Click here
BETA Exam Invites are not public
BETA Exam invites are not public... BETA Exams are meant for qualified candidates only and qualified candidates should receive Beta invites via direct or proper forwarding channels... Selling of BETA codes is also strictly prohibited...
BETA Exam Registrations
BETA Exams are delivered via our standard Exam Delivery Partners (Thompson Prometric and Pearson VUE)... Candidates will have to schedule the Exam with either Prometric or VUE... BETA Exam invites usually go out approx one month before the Beta Date of the exam... There are fixed slots for a particular BETA Exam and they get filled up within 3-4 days of invites going out... Be prompt in registering for BETA Exams, we usually are not able to help much in case the slots run out...
BETA Exam Results
We go via a very comprehensive process of evaluating Beta Exams, this is the reason why Beta Exam Results do not come out at the same time when you appear the exam... You will not immediately know whether you passed or failed a Beta exam but will most likely know it before the final version of the Beta Exam is released (usually 6-8 weeks after the Beta Exam)...
BETA Exam can be taken once during Beta period
A person can appear a particular Beta exam only once during its Beta period... Although, do note that it is possible for the same person to appear Beta version of more than one unique exams... Also note that there are limited seats in Beta Exams, it is important that as many different people get a chance to take the exam and provide their feedback to us... Please take Beta Exams as seriously as you would take a live exam after paying for it... Do not use them for hit and trial purposes...
BETA Exam Test Taker Issues
If you faced problem at the test center; for e.g. you could not appear an exam due to exam download problems, exam availability at the test center etc you should let us know... We want to make sure that a candidates exam appearance experience is as smooth as it possibly can... Reach your Microsoft regional service center and let them know of the issue... Click here If you see no resolution to your problem you can definitely mail me... (But please do contact the regional service center first... :-))
With launch of Visual Studio 2005 and SQL Server 2005 we will be having a lot of BETA exams rolling out from November 7th 2005 to May-June 2006... I receive a lot of emails asking below questions about BETA Exams... I thought it would be easier to emphasize the significance of BETA Exam to everyone via a single blog post...
BETA Exams provide valuable feedback to MS
BETA Exam are a very good way of providing feedback to Microsoft on the Exam questions, topics, content area etc... We look at every feedback seriously and try to make sure that it is incorporated within the final version of the exam (if the feedback is relevant and applicable)... If you spend time writing all the good things in the exam feedback, be rest assured that someone will read it...
BETA Exam As Good As Released Exam
BETA Exams are free to a candidate and they are Free because Microsoft Values the time a candidate puts in providing feedback about the exams... It is not because they are trial launch and they really mean nothing to MS... BETA EXAMS SHOULD BE TAKEN AS SERIOUSLY AS RELEASED EXAMS... They are not meant to try anyone's passing luck, they are meant to give benefits to early adopters of product and help raise the quality bar of the exam... Passing a BETA exam gives a person equal credit as regular exam... From my personal perspective I would appreciate a person passing BETA exam quite a bit as he/she is probably working on the BETA verion of the product...
Learning Material for Beta Exams
Many a times we do not have a lot of learning material available to support certain Beta exams... Again it is because we believe that people who are taking beta are self motivated folks... They have been making their hands dirty with Beta Product usage... They are ahead of the crowd and have been reading beta documentation... We do try that our learning material is available as early as possible...
We do have some early e-Learning, ILTs and Books available for Whidbey and Yukon... Click here
BETA Exam Invites are not public
BETA Exam invites are not public... BETA Exams are meant for qualified candidates only and qualified candidates should receive Beta invites via direct or proper forwarding channels... Selling of BETA codes is also strictly prohibited...
BETA Exam Registrations
BETA Exams are delivered via our standard Exam Delivery Partners (Thompson Prometric and Pearson VUE)... Candidates will have to schedule the Exam with either Prometric or VUE... BETA Exam invites usually go out approx one month before the Beta Date of the exam... There are fixed slots for a particular BETA Exam and they get filled up within 3-4 days of invites going out... Be prompt in registering for BETA Exams, we usually are not able to help much in case the slots run out...
BETA Exam Results
We go via a very comprehensive process of evaluating Beta Exams, this is the reason why Beta Exam Results do not come out at the same time when you appear the exam... You will not immediately know whether you passed or failed a Beta exam but will most likely know it before the final version of the Beta Exam is released (usually 6-8 weeks after the Beta Exam)...
BETA Exam can be taken once during Beta period
A person can appear a particular Beta exam only once during its Beta period... Although, do note that it is possible for the same person to appear Beta version of more than one unique exams... Also note that there are limited seats in Beta Exams, it is important that as many different people get a chance to take the exam and provide their feedback to us... Please take Beta Exams as seriously as you would take a live exam after paying for it... Do not use them for hit and trial purposes...
BETA Exam Test Taker Issues
If you faced problem at the test center; for e.g. you could not appear an exam due to exam download problems, exam availability at the test center etc you should let us know... We want to make sure that a candidates exam appearance experience is as smooth as it possibly can... Reach your Microsoft regional service center and let them know of the issue... Click here If you see no resolution to your problem you can definitely mail me... (But please do contact the regional service center first... :-))
Where is Vishal Joshi??
It has been a long long time huh!!...
Well I have been busy doing a lot of stuff... Finally "Have been there, did that..."
I joined Microsoft on June 6th 2005...
It made my life gears change so much that I could not find any time to write about anything...
I have joined MS as Technical Product Planner for Developer and Database Certifications... The obvious next question "What do you do there...??" well folks don't ask... I do whatever I feel needs to be done... Jokes apart I take care of planning & designing the next generation of certifications in Developer and Database Space... Just found some time to breathe after Whidbey and Yukon new certification family launch..
Wanna check out some stuff that we did???...go to... Next Generation of Certifications
What am I gonna do next with my blog... I am going to give it a work spin... I am going to start writing about certifications, how to prepare for certifications... Answer questions that people have about Microsoft Certifications... Give news that is worth sharing and so on...
I do not know whether I will be able to come back with VJs Tip of The Day yet (I guess time will not permit)... But still I bet there will be more interesting things on my blog then before...
Revitalizing myself...
Well I have been busy doing a lot of stuff... Finally "Have been there, did that..."
I joined Microsoft on June 6th 2005...
It made my life gears change so much that I could not find any time to write about anything...
I have joined MS as Technical Product Planner for Developer and Database Certifications... The obvious next question "What do you do there...??" well folks don't ask... I do whatever I feel needs to be done... Jokes apart I take care of planning & designing the next generation of certifications in Developer and Database Space... Just found some time to breathe after Whidbey and Yukon new certification family launch..
Wanna check out some stuff that we did???...go to... Next Generation of Certifications
What am I gonna do next with my blog... I am going to give it a work spin... I am going to start writing about certifications, how to prepare for certifications... Answer questions that people have about Microsoft Certifications... Give news that is worth sharing and so on...
I do not know whether I will be able to come back with VJs Tip of The Day yet (I guess time will not permit)... But still I bet there will be more interesting things on my blog then before...
Revitalizing myself...
Wednesday, February 16, 2005
Controlling Serailzation of Arrays
Just a quick note on controlling serialization of Arrays... Arrays' serialization is done in a little different way than any other standard datatypes.. There are special attributes available in System.Xml.Serialization which can be used for Arrays.
Generally we are used to using <XmlElement("tagName")> {VB} or [XmlElement("tagName")]{C#} on properties/members of our class... If these properties/members are arrays then the XmlElement attribute will remove the tree structure and convert it into a flat list...
eg.
<tagName>Value1</tagName>
<tagName>Value2</tagName>
instead of
<tagName>
<itemTag>Value1</itemTag>
<itemTag>Value2</itemTag>
</tagName>
If you would want to get the above structure for your Xml serialization, you would have to use following Attributes
<XmlArray("tagName"), XmlArrayItem("itemTag")> {VB} or [XmlArray("tagName"), XmlArrayItem("itemTag")] {C#}
There are many other small details related to attributes etc which you can find at MSDN... Click Here
Generally we are used to using <XmlElement("tagName")> {VB} or [XmlElement("tagName")]{C#} on properties/members of our class... If these properties/members are arrays then the XmlElement attribute will remove the tree structure and convert it into a flat list...
eg.
<tagName>Value1</tagName>
<tagName>Value2</tagName>
instead of
<tagName>
<itemTag>Value1</itemTag>
<itemTag>Value2</itemTag>
</tagName>
If you would want to get the above structure for your Xml serialization, you would have to use following Attributes
<XmlArray("tagName"), XmlArrayItem("itemTag")> {VB} or [XmlArray("tagName"), XmlArrayItem("itemTag")] {C#}
There are many other small details related to attributes etc which you can find at MSDN... Click Here
Thursday, February 03, 2005
Link Shortcuts for IE address bar
There is a cool discovery (not by me :-)) which I would like to share with you all...
If you modify the registry settings of Internet Explorer then you can achieve the following results...
eg. If you want to search for "Vishal Joshi" on google then simply in the IE address bar you can type
g "Vishal Joshi"
or if you want to search the meaning of smother in dictionary you can do some setting like
d smother
Now have a quick look at the settings that you will have to do in the registry... For ease I am pasing my exported registry... Copy paste the below text in a notepad and save it as "IEQuickLaunch.reg"... After saving it double click on the file which will import the settings to the registry... Do note that you will have to be the admin of your machine to change the registry settings...
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\SearchUrl]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\SearchUrl\d]
@="http://dictionary.reference.com/search?q=%s"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\SearchUrl\g]
@="http://www.google.com/search?hl=en&lr=&q=%s"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\SearchUrl\msdn]
@="http://search.microsoft.com/search/results.aspx?qu=%s"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\SearchUrl\vishal]
@="http://www.google.com/search?q=%s&ie=UTF-8&sitesearch=vishaljoshi.blogspot.com&x=27&y=9"
The above settings will get you the following shortcuts, you can then add your own...
1.) g searchword [will search google with search word]
2.) d searchword [will search dictionary with search word]
3.) msdn searchword [will search msdn with search word]
4.) vishal searchword [will search my blog with search word]
If you modify the registry settings of Internet Explorer then you can achieve the following results...
eg. If you want to search for "Vishal Joshi" on google then simply in the IE address bar you can type
g "Vishal Joshi"
or if you want to search the meaning of smother in dictionary you can do some setting like
d smother
Now have a quick look at the settings that you will have to do in the registry... For ease I am pasing my exported registry... Copy paste the below text in a notepad and save it as "IEQuickLaunch.reg"... After saving it double click on the file which will import the settings to the registry... Do note that you will have to be the admin of your machine to change the registry settings...
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\SearchUrl]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\SearchUrl\d]
@="http://dictionary.reference.com/search?q=%s"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\SearchUrl\g]
@="http://www.google.com/search?hl=en&lr=&q=%s"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\SearchUrl\msdn]
@="http://search.microsoft.com/search/results.aspx?qu=%s"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\SearchUrl\vishal]
@="http://www.google.com/search?q=%s&ie=UTF-8&sitesearch=vishaljoshi.blogspot.com&x=27&y=9"
The above settings will get you the following shortcuts, you can then add your own...
1.) g searchword [will search google with search word]
2.) d searchword [will search dictionary with search word]
3.) msdn searchword [will search msdn with search word]
4.) vishal searchword [will search my blog with search word]
Tuesday, February 01, 2005
AJAX
In our project one of my collegue (Jason Reis) suggested to implement "Google Suggest" kind of feature for our ASP.Net website... It was indeed a very beautiful idea and I am sure this will really add a lot of value to our web site...
I wonder many would like this kind of feature in their sites and below three links should help a lot of people in achieving the same...
Dino Esposito's Article on MSDN mag....
Anders Norås's blog article on DotNet Junkies...
MSDN Webservice Behavior article...
PS: Thanks Jason for bringing this up...
I wonder many would like this kind of feature in their sites and below three links should help a lot of people in achieving the same...
Dino Esposito's Article on MSDN mag....
Anders Norås's blog article on DotNet Junkies...
MSDN Webservice Behavior article...
PS: Thanks Jason for bringing this up...
Wednesday, January 26, 2005
Say "NO" To Dumps
Below is the message which I just sent to our Chennai .Net User Group (CNUG) to stop dumps... Please let us say "NO" to dumps, if we do not do so now, eventually being MCP, MCAD or MCSD will mean nothing to IT industry...
Dear All,
We have been getting a lots of requests from the group to make the group un-moderated... There are delays sometimes from our side to approve the messages and I know how desperately we want our messages to appear on the board as soon as they are sent... We had been observing the message pattern since some days and found that leaving the group un-moderated for a while should not harm... So since last one week we kept the CNUG message boards un-moderated...
We do go through the messages most of the time for their contents even when the moderation is not there and just yesterday we again got a mail asking for dumps for MCP paper... This is not to highlight someone for asking dumps but to spread a general message... You do not steal a VCR or Music system from the shops then why steal MCP papers... Definitely such easy option seems tempting but these are the options which destroy the whole system... Do know that if you are aware about the dumps then so are the people in front of whom you are going to flaunt your MCP certificates... Eventually, the dumps will take away all the glory of being a MCP and it is us who can consciously prevent this from happening...
Friends, I have myself been on this wonderful MS Learning team which creates these MCP papers and it takes more than 6 months for more than 20 people to create a single paper... All the questions are verified by writing code... Each question earns it place into the paper after being reviewed by so many experts... Everyone tries to do their best so that a professional certified by Microsoft really means "an expert" to the IT world... You too should be one of them but rightfully, proudly, in a way that someone can rely on you when it comes to that subject... Please do realize, that it hurts when efforts of those individuals, who have struggled to bring the paper in front of you are compromised... Mark my words - "A person clearing one MCP paper without dumps would probably be much more confident, proud and infact happier than a person being MCAD or MCSD with dumps"...
Do remember that your post goes to approx 3500 other members of our CNUG family, who feel bad about such improper demands... Many in the groups are preparing for MCP papers; such posts bring their morale down... Our group is formed for benevolent cause... We are here to help each other learn, solve each other's queries, train each other, learn from each other's experiences and create a vibrant technical community that we can be proud of and others can take example from...
We do not want to ban our own members from the group so please do not force us do that.... Together let's Say "No" to Dumps...
Thanks for understanding...
warm wishes,
Vishal R Joshi
Vice-President CNUG | Microsoft MVP .Net | MCP ASP.Net
If You Think YOU CAN... You Can...
http://VishalJoshi.Blogspot.com
Dear All,
We have been getting a lots of requests from the group to make the group un-moderated... There are delays sometimes from our side to approve the messages and I know how desperately we want our messages to appear on the board as soon as they are sent... We had been observing the message pattern since some days and found that leaving the group un-moderated for a while should not harm... So since last one week we kept the CNUG message boards un-moderated...
We do go through the messages most of the time for their contents even when the moderation is not there and just yesterday we again got a mail asking for dumps for MCP paper... This is not to highlight someone for asking dumps but to spread a general message... You do not steal a VCR or Music system from the shops then why steal MCP papers... Definitely such easy option seems tempting but these are the options which destroy the whole system... Do know that if you are aware about the dumps then so are the people in front of whom you are going to flaunt your MCP certificates... Eventually, the dumps will take away all the glory of being a MCP and it is us who can consciously prevent this from happening...
Friends, I have myself been on this wonderful MS Learning team which creates these MCP papers and it takes more than 6 months for more than 20 people to create a single paper... All the questions are verified by writing code... Each question earns it place into the paper after being reviewed by so many experts... Everyone tries to do their best so that a professional certified by Microsoft really means "an expert" to the IT world... You too should be one of them but rightfully, proudly, in a way that someone can rely on you when it comes to that subject... Please do realize, that it hurts when efforts of those individuals, who have struggled to bring the paper in front of you are compromised... Mark my words - "A person clearing one MCP paper without dumps would probably be much more confident, proud and infact happier than a person being MCAD or MCSD with dumps"...
Do remember that your post goes to approx 3500 other members of our CNUG family, who feel bad about such improper demands... Many in the groups are preparing for MCP papers; such posts bring their morale down... Our group is formed for benevolent cause... We are here to help each other learn, solve each other's queries, train each other, learn from each other's experiences and create a vibrant technical community that we can be proud of and others can take example from...
We do not want to ban our own members from the group so please do not force us do that.... Together let's Say "No" to Dumps...
Thanks for understanding...
warm wishes,
Vishal R Joshi
Vice-President CNUG | Microsoft MVP .Net | MCP ASP.Net
If You Think YOU CAN... You Can...
http://VishalJoshi.Blogspot.com
Thursday, January 20, 2005
Changing Column Width in Win Forms DG
Programmatically Changing Column Width in Windows Forms Datagrid
I actually spent sometime in getting all the pieces right and so thought I would mention it on the blog so that many will not have to spend the same time...
Do not get bothered by the length of the code... It is pretty simple... I will explain the same in steps below... The exact problem statement is
" There is a windows form datagrid, which needs to get the data dynamically from "where ever you please". For this I will have to have a DataTable and have that set as the DataSource for the datagrid by dynamically binding it...
To fill this datatable after I get the data (say in form of xml or Web service objects; I need to create corresponding columns and add rows one by one to the same after parsing my data. Now as you make the columns programmatically you also wish to set the column width and other properties programatically... You might also want to format the table to look like you wish programatically... Below code snippet will tell you how to do it..."
NOTE: Do not look at the code from coding standards, maintainability, performance tuning etc perspective... It just merely does the job...
STEPS:
1.) Create a DataTable...
2.) Add necessary columns to it...
3.) Create individual rows for the data gathered... [My data is from Google Web Service]
4.) Bind the data to the datasource of the datagrid
5.) Create new DataGridTableStyle
6.) Set the mapping name of of the tablestyle to be same as your tablename
7.) Create the tablestyle as you wish... This can be kindof skin template you get from somewhere
8.) Add the TableStyle to your DataGrid
9.) Now get back the handle to that TableStyle
10.)Now from the GridColumStyle collection of your just obtained TableStyle, access the particular GridColumnStyle via indexs and modify the values...
11.)Call Refresh method on DataGrid from the just obtained TableStyle...
Below code does the above mentioned steps...
Dim resultTable As New Data.DataTable
resultTable.Columns.Add("Sr.No.")
resultTable.Columns.Add("Title")
resultTable.Columns.Add("Description")
resultTable.Columns.Add("URL")
Dim currentCount As Integer = 0
Dim counter As Integer
For counter = 0 To 9
Dim resultRow As DataRow
resultRow = resultTable.NewRow()
resultRow.Item(0) = (currentCount + 1).ToString()
resultRow.Item(1) = result.resultElements(currentCount).title.ToString()
resultRow.Item(2) =result.resultElements(currentCount).snippet.ToString()
resultRow.Item(3) = result.resultElements(currentCount).URL.ToString()
resultTable.Rows.Add(resultRow)
If currentCount >= result.resultElements.Length - 1 Then
Exit For
Else
currentCount += 1
End If
Next
resultTable.TableName = "myTable"
dgdResults.DataSource = resultTable
Dim myGridTableStyle As New DataGridTableStyle
myGridTableStyle.MappingName = "myTable"
myGridTableStyle.HeaderFont = New System.Drawing.Font _
("Tahoma", 8.25F, FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, System.Byte))
myGridTableStyle.HeaderBackColor = Color.Thistle
myGridTableStyle.HeaderForeColor = Color.Crimson
myGridTableStyle.ReadOnly = True
myGridTableStyle.AllowSorting = False
myGridTableStyle.AlternatingBackColor = Color.Thistle
myGridTableStyle.BackColor = Color.LavenderBlush
myGridTableStyle.ForeColor = Color.DarkBlue
myGridTableStyle.PreferredRowHeight = 20
myGridTableStyle.RowHeaderWidth = 16
dgdResults.TableStyles.Add(myGridTableStyle)
Dim tableStyle As DataGridTableStyle = dgdResults.TableStyles("myTable")
tableStyle.GridColumnStyles(0).Width = 20
tableStyle.GridColumnStyles(1).Width = 120
tableStyle.GridColumnStyles(2).Width = 170
tableStyle.GridColumnStyles(3).Width = 250
tableStyle.DataGrid.Refresh()
I actually spent sometime in getting all the pieces right and so thought I would mention it on the blog so that many will not have to spend the same time...
Do not get bothered by the length of the code... It is pretty simple... I will explain the same in steps below... The exact problem statement is
" There is a windows form datagrid, which needs to get the data dynamically from "where ever you please". For this I will have to have a DataTable and have that set as the DataSource for the datagrid by dynamically binding it...
To fill this datatable after I get the data (say in form of xml or Web service objects; I need to create corresponding columns and add rows one by one to the same after parsing my data. Now as you make the columns programmatically you also wish to set the column width and other properties programatically... You might also want to format the table to look like you wish programatically... Below code snippet will tell you how to do it..."
NOTE: Do not look at the code from coding standards, maintainability, performance tuning etc perspective... It just merely does the job...
STEPS:
1.) Create a DataTable...
2.) Add necessary columns to it...
3.) Create individual rows for the data gathered... [My data is from Google Web Service]
4.) Bind the data to the datasource of the datagrid
5.) Create new DataGridTableStyle
6.) Set the mapping name of of the tablestyle to be same as your tablename
7.) Create the tablestyle as you wish... This can be kindof skin template you get from somewhere
8.) Add the TableStyle to your DataGrid
9.) Now get back the handle to that TableStyle
10.)Now from the GridColumStyle collection of your just obtained TableStyle, access the particular GridColumnStyle via indexs and modify the values...
11.)Call Refresh method on DataGrid from the just obtained TableStyle...
Below code does the above mentioned steps...
Dim resultTable As New Data.DataTable
resultTable.Columns.Add("Sr.No.")
resultTable.Columns.Add("Title")
resultTable.Columns.Add("Description")
resultTable.Columns.Add("URL")
Dim currentCount As Integer = 0
Dim counter As Integer
For counter = 0 To 9
Dim resultRow As DataRow
resultRow = resultTable.NewRow()
resultRow.Item(0) = (currentCount + 1).ToString()
resultRow.Item(1) = result.resultElements(currentCount).title.ToString()
resultRow.Item(2) =result.resultElements(currentCount).snippet.ToString()
resultRow.Item(3) = result.resultElements(currentCount).URL.ToString()
resultTable.Rows.Add(resultRow)
If currentCount >= result.resultElements.Length - 1 Then
Exit For
Else
currentCount += 1
End If
Next
resultTable.TableName = "myTable"
dgdResults.DataSource = resultTable
Dim myGridTableStyle As New DataGridTableStyle
myGridTableStyle.MappingName = "myTable"
myGridTableStyle.HeaderFont = New System.Drawing.Font _
("Tahoma", 8.25F, FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, System.Byte))
myGridTableStyle.HeaderBackColor = Color.Thistle
myGridTableStyle.HeaderForeColor = Color.Crimson
myGridTableStyle.ReadOnly = True
myGridTableStyle.AllowSorting = False
myGridTableStyle.AlternatingBackColor = Color.Thistle
myGridTableStyle.BackColor = Color.LavenderBlush
myGridTableStyle.ForeColor = Color.DarkBlue
myGridTableStyle.PreferredRowHeight = 20
myGridTableStyle.RowHeaderWidth = 16
dgdResults.TableStyles.Add(myGridTableStyle)
Dim tableStyle As DataGridTableStyle = dgdResults.TableStyles("myTable")
tableStyle.GridColumnStyles(0).Width = 20
tableStyle.GridColumnStyles(1).Width = 120
tableStyle.GridColumnStyles(2).Width = 170
tableStyle.GridColumnStyles(3).Width = 250
tableStyle.DataGrid.Refresh()
Monday, January 10, 2005
TechEd 2005 registrations open today
TechEd 2005, USA is going to be organized from June 5th 2005 to June 10th 2005 at Orlando, FL... The registration for the same open today (Jan 10th 2005) and the early bird registration ends on April 15th 2005...
Please visit the TechEd 2005 site to find more... Click Here
Please visit the TechEd 2005 site to find more... Click Here
Wednesday, January 05, 2005
Milwaukee Nerd Dinner
Finally we are able to fix up Milwaukee Nerd Dinner on Jan 12th 2005 at 6:30 pm...
For more details visit http://nerddinner.com/blogs/milwaukee/
Everone is invited, but do RSVP so that planning can be done accordingly...
For more details visit http://nerddinner.com/blogs/milwaukee/
Everone is invited, but do RSVP so that planning can be done accordingly...
Friday, November 19, 2004
VJs Mega Tip Of The Day - November 19th 2004
Whidbey Days - ASP.Net 2.0 Page Life Cycle
ASP.Net 2.0 Page Life Cycle
Abstract
This article talks about the way ASP.Net 2.0 page life cycle works, it discusses the way ASP.Net page is created and displayed.
More Information
It is important for ASP.Net programmers to understand how their page is created/processed and displayed by ASP.Net framework. Sometimes many unexpected behaviors are seen in case incorrect data is accessed before or after certain page events. Below is the information on how System.Web.UI.Page methods execute. For keeping the article more users friendly and also to avoid incorrect method calls for not-recommended methods, I have discussed only those methods which I felt a user should know about.
Without further delay let us start from the html source that is written for the page. First of all the html source needs to be parsed to process the page. This is done by a method in the Page called AddParsedSubObject(). Unless you override it, this method will automatically add Literal controls to page’s control collection. This is done by first creating a control collection by calling CreateControlCollection() method.
As the child controls are parsed in the page the method AddedControl() is called which is usually triggered when a control is added to another control’s control collection. As ASP.Net pages can be viewed on various devices the method ResolveAdapter() returns the control adapter which is responsible for rendering the control on the specific device or browser requesting the ASP.Net page.
DeterminePostBackMode() is then invoked to find out what is the post back mode used for the request. If the POST method is used for postback the web form information is returned from the Context object. If the GET method is used for postback, the information from query string is returned. If the page is being requested for the first time, null is returned, many of us are used to writing code in which we check the postback property and execute specific logic, this is the method that helps the framework to get our this specific code running correctly.
More granular control on the page life cycle is available in ASP.Net 2.0. Now we have got additional events like “PreX” and “XComplete” to insert our logic before and after the usual “X” events, which we have been working with. The first such event to fire is PreInit(). This is the very beginning of page’s initialization and after the completion of this personalization information is loaded and if there is any page theme then it is initialized. I have talked more about these concepts earlier on the blog. Click Here for more information.
After the PreInit() of the page, ResolveAdapter() for individual child controls is called and then each of the control’s Init event is fired. What is interesting to note is that Init event of the child control is fired before the Init event of the page and many a times in developing complex ASP.Net applications if user plays with these events, without enough information, then unexpected behavior might resulted.
After the Init event of the control, the TrackViewState() method is triggered which will track the view state changes posted to server. It is important to know that when control’s view state data is being tracked with the state bag, page’s Init event and TrackViewState() are not yet fired. This also results into unexpected behavior in case users are writing custom controls or probably their own base page.
After the TrackViewState() of the child controls, the Init event of the page is fired. This event initializes the page and then TrackViewState() of the page is fired which tracks the changes to the page’s state bag
After the TrackViewState() for the page is called InitComplete() event is fired. This is the signal that initialization of the page and its child control is done. Though what a user should know is that ViewState for the page or the controls is not yet restored, if user tries to do anything before this data is restored the required changes in the data from the client which expected may not appear.
The view state is restored in the method LoadViewState() after whose completion ViewState data is available for a user to work on.. There is then EnsureChildControls() method which is invoked which makes sure that the page’s child controls get created.
In ASP.Net 2.0 a PreLoad() event available which would probably be the right place for user to play around with objects before the universally used load event is fired. For people who are writing base page classes and who want to perform certain tasks before standard page load event this is the right place to put their custom logic into.
After PreLoad() event, the Load() event of the page is fired. There is no need to explain what one can do with this event, isn’t it. But what should be known is that page load event is fired before the control load event unlike Init event which is fired first for the child controls and then for the page. This also many times takes custom control writers by surprise as they are expecting the control load to occur before actually the user logic on page load is executed.
So after the page Load() event, control Load() event is triggered and then the custom events like button clicks and others are fired. Many a times users want some specific functionality to be executed in their base pages, just after these postback events but also before PreRender when the pre rendering logic starts. This kind of development methodology has created issues when the derived classes call base methods before or after their custom logic when otherwise was expected. That is the place where LoadComplete() event of the page will come to use. The LoadComplete() will be called after the custom event execution for the child control is over but PreRender is not started.
After the LoadComplete() event PreRender() event of page is triggered followed by the PreRendering of each child controls. PreRender() event has always been the right place to put in the last logic before ViewState is saved. But now there is a PreRenderComplete() event which is fired after all the PreRender events of the child controls are fired, this will now be the last chance to change the data before SaveViewState() of the page is fired.
After the SaveViewState of the page; the control SaveViewState() is fired. SaveViewState() will save the changes that have happened to the data till that point and then the page will be ready to be rendered.
LoadPageStateFromPersistenceMedium() and SavePageStateToPersistenceMedium() are called before LoadViewState() and after SaveViewState() respectively. As the name indicates the ViewState is persisted so that it can be used later in the next call. I will talk in detail about how these methods work later, but as of now it is just good to know what they do.
After the SavePageStateToPersistenceMedium(), SaveStateComplete() is fired, which indicates that saving the state of the page is now complete.
After this the rendering of the page begins. First the CreateHtmlTextWriter() is fired to create the HTML text writer and then page and control Render are called. If the user wishes to change the look and feel of the way their control is rendered this is the event to do it. When the Render method completes Unload() for each child control is called and then each child control’s Dispose() is called. After disposing all the child controls, the page Unload() event is fired and then the Page’s Dispose() is called.
In case of error, the execution directly jumps to the error handling and then to unload and dispose events skipping the events in-between. This thus covers the major execution of ASP.Net page life cycle.
Below is a quick summary of the methods in their invocation order:
System.Web.UI.Page.AddParsedSubObject
System.Web.UI.Page.CreateControlCollection
System.Web.UI.Page.AddedControl
System.Web.UI.Page.ResolveAdapter
System.Web.UI.Page.DeterminePostBackMode
System.Web.UI.Page.PreInit
System.Web.UI.WebControl.ResolveAdapter
System.Web.UI.WebControl.Init
System.Web.UI.WebControl.TrackViewState
System.Web.UI.Page.Init
System.Web.UI.Page.TrackViewState
System.Web.UI.Page.InitComplete
System.Web.UI.Page.LoadPageStateFromPersistenceMedium
System.Web.UI.WebControl.LoadViewState
System.Web.UI.Page.EnsureChildControls
System.Web.UI.Page.LoadViewState
System.Web.UI.Page.PreLoad
System.Web.UI.Page.Load
System.Web.UI.WebControl.Load
System.Web.UI.WebControl.OnClick
System.Web.UI.Page.LoadComplete
System.Web.UI.Page.PreRender
System.Web.UI.WebControl.PreRender
System.Web.UI.Page.PreRenderComplete
System.Web.UI.Page.SaveViewState
System.Web.UI.WebControl.SaveViewState
System.Web.UI.Page.SaveViewState
System.Web.UI.Page.SavePageStateToPersistenceMedium
System.Web.UI.Page.SaveStateComplete
System.Web.UI.Page.CreateHtmlTextWriter
System.Web.UI.Page.Render
System.Web.UI.Page.RenderChildren
System.Web.UI.WebControl.RenderControl
System.Web.UI.Page.CreateHtmlTextWriter
System.Web.UI.WebControl.Unload
System.Web.UI.WebControl.Dispose
System.Web.UI.Page.Unload
System.Web.UI.Page.Dispose
There are many methods which I have skipped and many methods which we discussed are called multiple times on the basis of the existing conditions, I have intentionally not discussed them, though what I have tried is to make the user understand the things that happen in the background for a page to work.
So this is how a single ASP.Net page’s HTML comes on to our browser. Indeed quite a bit amount of work behind the scenes right!! I hope you will be able to unleash the potential of all these additional options available to you in Whidbey timeframe. These are some of the reasons why I am so passionate about Microsoft Technologies; they just keep getting better with every new release.
PS: The above is my understanding of the Whidbey (ASP.Net 2.0) page life cycle, if you think I have missed something or something is incorrectly mentioned then please do drop in a mail at Vishal_Joshi@MVPs.org so that I can make the necessary corrections.
PPS: Today marks the completion of second season of VJs Tip Of The Day series. I shall be back with the thrid season in new year 2005... Till then wish you best luck and a wonderful festive season...
ASP.Net 2.0 Page Life Cycle
Abstract
This article talks about the way ASP.Net 2.0 page life cycle works, it discusses the way ASP.Net page is created and displayed.
More Information
It is important for ASP.Net programmers to understand how their page is created/processed and displayed by ASP.Net framework. Sometimes many unexpected behaviors are seen in case incorrect data is accessed before or after certain page events. Below is the information on how System.Web.UI.Page methods execute. For keeping the article more users friendly and also to avoid incorrect method calls for not-recommended methods, I have discussed only those methods which I felt a user should know about.
Without further delay let us start from the html source that is written for the page. First of all the html source needs to be parsed to process the page. This is done by a method in the Page called AddParsedSubObject(). Unless you override it, this method will automatically add Literal controls to page’s control collection. This is done by first creating a control collection by calling CreateControlCollection() method.
As the child controls are parsed in the page the method AddedControl() is called which is usually triggered when a control is added to another control’s control collection. As ASP.Net pages can be viewed on various devices the method ResolveAdapter() returns the control adapter which is responsible for rendering the control on the specific device or browser requesting the ASP.Net page.
DeterminePostBackMode() is then invoked to find out what is the post back mode used for the request. If the POST method is used for postback the web form information is returned from the Context object. If the GET method is used for postback, the information from query string is returned. If the page is being requested for the first time, null is returned, many of us are used to writing code in which we check the postback property and execute specific logic, this is the method that helps the framework to get our this specific code running correctly.
More granular control on the page life cycle is available in ASP.Net 2.0. Now we have got additional events like “PreX” and “XComplete” to insert our logic before and after the usual “X” events, which we have been working with. The first such event to fire is PreInit(). This is the very beginning of page’s initialization and after the completion of this personalization information is loaded and if there is any page theme then it is initialized. I have talked more about these concepts earlier on the blog. Click Here for more information.
After the PreInit() of the page, ResolveAdapter() for individual child controls is called and then each of the control’s Init event is fired. What is interesting to note is that Init event of the child control is fired before the Init event of the page and many a times in developing complex ASP.Net applications if user plays with these events, without enough information, then unexpected behavior might resulted.
After the Init event of the control, the TrackViewState() method is triggered which will track the view state changes posted to server. It is important to know that when control’s view state data is being tracked with the state bag, page’s Init event and TrackViewState() are not yet fired. This also results into unexpected behavior in case users are writing custom controls or probably their own base page.
After the TrackViewState() of the child controls, the Init event of the page is fired. This event initializes the page and then TrackViewState() of the page is fired which tracks the changes to the page’s state bag
After the TrackViewState() for the page is called InitComplete() event is fired. This is the signal that initialization of the page and its child control is done. Though what a user should know is that ViewState for the page or the controls is not yet restored, if user tries to do anything before this data is restored the required changes in the data from the client which expected may not appear.
The view state is restored in the method LoadViewState() after whose completion ViewState data is available for a user to work on.. There is then EnsureChildControls() method which is invoked which makes sure that the page’s child controls get created.
In ASP.Net 2.0 a PreLoad() event available which would probably be the right place for user to play around with objects before the universally used load event is fired. For people who are writing base page classes and who want to perform certain tasks before standard page load event this is the right place to put their custom logic into.
After PreLoad() event, the Load() event of the page is fired. There is no need to explain what one can do with this event, isn’t it. But what should be known is that page load event is fired before the control load event unlike Init event which is fired first for the child controls and then for the page. This also many times takes custom control writers by surprise as they are expecting the control load to occur before actually the user logic on page load is executed.
So after the page Load() event, control Load() event is triggered and then the custom events like button clicks and others are fired. Many a times users want some specific functionality to be executed in their base pages, just after these postback events but also before PreRender when the pre rendering logic starts. This kind of development methodology has created issues when the derived classes call base methods before or after their custom logic when otherwise was expected. That is the place where LoadComplete() event of the page will come to use. The LoadComplete() will be called after the custom event execution for the child control is over but PreRender is not started.
After the LoadComplete() event PreRender() event of page is triggered followed by the PreRendering of each child controls. PreRender() event has always been the right place to put in the last logic before ViewState is saved. But now there is a PreRenderComplete() event which is fired after all the PreRender events of the child controls are fired, this will now be the last chance to change the data before SaveViewState() of the page is fired.
After the SaveViewState of the page; the control SaveViewState() is fired. SaveViewState() will save the changes that have happened to the data till that point and then the page will be ready to be rendered.
LoadPageStateFromPersistenceMedium() and SavePageStateToPersistenceMedium() are called before LoadViewState() and after SaveViewState() respectively. As the name indicates the ViewState is persisted so that it can be used later in the next call. I will talk in detail about how these methods work later, but as of now it is just good to know what they do.
After the SavePageStateToPersistenceMedium(), SaveStateComplete() is fired, which indicates that saving the state of the page is now complete.
After this the rendering of the page begins. First the CreateHtmlTextWriter() is fired to create the HTML text writer and then page and control Render are called. If the user wishes to change the look and feel of the way their control is rendered this is the event to do it. When the Render method completes Unload() for each child control is called and then each child control’s Dispose() is called. After disposing all the child controls, the page Unload() event is fired and then the Page’s Dispose() is called.
In case of error, the execution directly jumps to the error handling and then to unload and dispose events skipping the events in-between. This thus covers the major execution of ASP.Net page life cycle.
Below is a quick summary of the methods in their invocation order:
System.Web.UI.Page.AddParsedSubObject
System.Web.UI.Page.CreateControlCollection
System.Web.UI.Page.AddedControl
System.Web.UI.Page.ResolveAdapter
System.Web.UI.Page.DeterminePostBackMode
System.Web.UI.Page.PreInit
System.Web.UI.WebControl.ResolveAdapter
System.Web.UI.WebControl.Init
System.Web.UI.WebControl.TrackViewState
System.Web.UI.Page.Init
System.Web.UI.Page.TrackViewState
System.Web.UI.Page.InitComplete
System.Web.UI.Page.LoadPageStateFromPersistenceMedium
System.Web.UI.WebControl.LoadViewState
System.Web.UI.Page.EnsureChildControls
System.Web.UI.Page.LoadViewState
System.Web.UI.Page.PreLoad
System.Web.UI.Page.Load
System.Web.UI.WebControl.Load
System.Web.UI.WebControl.OnClick
System.Web.UI.Page.LoadComplete
System.Web.UI.Page.PreRender
System.Web.UI.WebControl.PreRender
System.Web.UI.Page.PreRenderComplete
System.Web.UI.Page.SaveViewState
System.Web.UI.WebControl.SaveViewState
System.Web.UI.Page.SaveViewState
System.Web.UI.Page.SavePageStateToPersistenceMedium
System.Web.UI.Page.SaveStateComplete
System.Web.UI.Page.CreateHtmlTextWriter
System.Web.UI.Page.Render
System.Web.UI.Page.RenderChildren
System.Web.UI.WebControl.RenderControl
System.Web.UI.Page.CreateHtmlTextWriter
System.Web.UI.WebControl.Unload
System.Web.UI.WebControl.Dispose
System.Web.UI.Page.Unload
System.Web.UI.Page.Dispose
There are many methods which I have skipped and many methods which we discussed are called multiple times on the basis of the existing conditions, I have intentionally not discussed them, though what I have tried is to make the user understand the things that happen in the background for a page to work.
So this is how a single ASP.Net page’s HTML comes on to our browser. Indeed quite a bit amount of work behind the scenes right!! I hope you will be able to unleash the potential of all these additional options available to you in Whidbey timeframe. These are some of the reasons why I am so passionate about Microsoft Technologies; they just keep getting better with every new release.
PS: The above is my understanding of the Whidbey (ASP.Net 2.0) page life cycle, if you think I have missed something or something is incorrectly mentioned then please do drop in a mail at Vishal_Joshi@MVPs.org so that I can make the necessary corrections.
PPS: Today marks the completion of second season of VJs Tip Of The Day series. I shall be back with the thrid season in new year 2005... Till then wish you best luck and a wonderful festive season...
Thursday, November 18, 2004
VJs Tip Of The Day - November 18th 2004
Whidbey Days - Sharing Types Across Web Service Proxies
I do not know how many of you have faced this problem but I have always had a complain that about not being able to share types across different web service proxies... Take this scenario... I have a business application which exposes many different web services... These web services might be sharing some common object across themselves... For example Lets say I have a Auto Insurance application... I build one web service to do Policy related jobs and the other to do Premium related jobs but then in both the condition my Automobile object goes along... Now, as my proxy generator will generate service proxy for each of the service individually so I will get two Automobile classes and if I have a single client application dealing with it I will have to either create different namespaces or do some manual editing...
Although the editing might not be much the problem is that regeneration causes those changes to go away... Also there needs to be some documentation around this problem etc... Well enough of problem statement, I think you must have got it by now... :-) Anyways, in Whidbey the problem is resolved...
The WSDL exe has a switch called /sharetypes and you can give the services for which you want to share the types and it will do it for you... The syntax will be something like...
Wsdl.exe /sharetypes http:(doubleSlash)AutoInsuranceServics/PolicyService.asmx?wsdl http:(doubleSlash)AutoInsuranceServics/PremiumService.asmx?wsdl
PS: A quick observation, I see many posts and queries on our UserGroups and Newsgroup which are so simple that typing just the first word in the google (also MSDN sometimes... Just kidding!!.. :-)) will result into sufficient information to answer the query... The point which I want to make is that it is also important to develop a good habit to try resolve to our own queries, ourselves... No one knows everything, but each one of us learn over a period of time right!!... Asking our own usergroup peers is not wrong but then at times its spoon feeding, it just makes us develop a bad habit... All I am saying is let us just try to make sure that we have exhausted all the resources at our end either time or material before we ask it out; might be trying for another 10 minutes will give us the answer we want!!...
Please do not get me wrong, do not stop asking me questions whenever you feel like, I do try answering as many as I can and I continue doing that!! (but now after the vacation.. :-))
I do not know how many of you have faced this problem but I have always had a complain that about not being able to share types across different web service proxies... Take this scenario... I have a business application which exposes many different web services... These web services might be sharing some common object across themselves... For example Lets say I have a Auto Insurance application... I build one web service to do Policy related jobs and the other to do Premium related jobs but then in both the condition my Automobile object goes along... Now, as my proxy generator will generate service proxy for each of the service individually so I will get two Automobile classes and if I have a single client application dealing with it I will have to either create different namespaces or do some manual editing...
Although the editing might not be much the problem is that regeneration causes those changes to go away... Also there needs to be some documentation around this problem etc... Well enough of problem statement, I think you must have got it by now... :-) Anyways, in Whidbey the problem is resolved...
The WSDL exe has a switch called /sharetypes and you can give the services for which you want to share the types and it will do it for you... The syntax will be something like...
Wsdl.exe /sharetypes http:(doubleSlash)AutoInsuranceServics/PolicyService.asmx?wsdl http:(doubleSlash)AutoInsuranceServics/PremiumService.asmx?wsdl
PS: A quick observation, I see many posts and queries on our UserGroups and Newsgroup which are so simple that typing just the first word in the google (also MSDN sometimes... Just kidding!!.. :-)) will result into sufficient information to answer the query... The point which I want to make is that it is also important to develop a good habit to try resolve to our own queries, ourselves... No one knows everything, but each one of us learn over a period of time right!!... Asking our own usergroup peers is not wrong but then at times its spoon feeding, it just makes us develop a bad habit... All I am saying is let us just try to make sure that we have exhausted all the resources at our end either time or material before we ask it out; might be trying for another 10 minutes will give us the answer we want!!...
Please do not get me wrong, do not stop asking me questions whenever you feel like, I do try answering as many as I can and I continue doing that!! (but now after the vacation.. :-))
Wednesday, November 17, 2004
VJs Tip Of The Day - November 17th 2004
Whidbey Days - Page.GetValidators method
Yesterday we talked about ValidationGroups now here is an application of the same... System.Web.UI.Page has now got GetValidators method... The signature of the method looks like below...
public ValidatorCollection GetValidators(string validationGroup)
Basically System.Web.UI.Page has got a property called "Validators"... This property was always there and it use to return back all the validators of a page... This property will ofcourse exist for Whidbey too but now this special method adds extra value...
As the signature indicates the GetValidators method will accept a string which will be validationGroup name which you have given to your validation controls and give you back a strongly typed collection of Validator Controls... If you do not pass the string name of validation group here it will return back the default validation group... This would be the same group which will be given by the Validators property...
I would recommend using this method as you would have a generic way of accessing the validators and if the group name is passed dynamically your page logic will work in both the cases...
PS: An easy way to find out how important you are to someone is to find out whether your contact number is stored in the phone book of that person... If someone does not care to store your number with them somewhere then PROBABLY he/she is not dependant on you in anyways...
Yesterday we talked about ValidationGroups now here is an application of the same... System.Web.UI.Page has now got GetValidators method... The signature of the method looks like below...
public ValidatorCollection GetValidators(string validationGroup)
Basically System.Web.UI.Page has got a property called "Validators"... This property was always there and it use to return back all the validators of a page... This property will ofcourse exist for Whidbey too but now this special method adds extra value...
As the signature indicates the GetValidators method will accept a string which will be validationGroup name which you have given to your validation controls and give you back a strongly typed collection of Validator Controls... If you do not pass the string name of validation group here it will return back the default validation group... This would be the same group which will be given by the Validators property...
I would recommend using this method as you would have a generic way of accessing the validators and if the group name is passed dynamically your page logic will work in both the cases...
PS: An easy way to find out how important you are to someone is to find out whether your contact number is stored in the phone book of that person... If someone does not care to store your number with them somewhere then PROBABLY he/she is not dependant on you in anyways...
Tuesday, November 16, 2004
VJs Tip Of The Day - November 16th 2004
Whidbey Days - BaseValidator.ValidationGroup property
I am not sure how many of you have thought about this but many a times there use to be scenarios when you wanted that not all the validation controls on the page behave and validate in the same set... So here is the option for you... There is a property in Whidbey BaseValidator which is called ValidationGroup...
This property takes a string value and is a easy way to group your different validation controls in a group...
As this is a property of BaseValidator it is automatically inherited in all the rest of the validation controls...
How to visualize the use of it... Say for example I have a text box and I have a range validator, required field validator, regular expression validator all associated with it... I want to group all of these validators together then I set all of their ValidationGroup property to a fixed value and then they get grouped... Easy isn't it...
PS: "Tangential Theory" - This a new word coined by me... What does a tangential theory means? Well tangential theory is a philosophical theory of special kind... It is a theory or a thought which might touch you but will probably not effect you or intersect you often... It is a theory which will give you a chance to think about and conclude whether it does interset your mind waves just at a tangent or will eventually somewhere intersect to create a larger impact... In nutshell, Tangential Theory gives you the point from which you can start analyzing... I would refer many of the PS: that come along the technical tips as tangents of the tangential theory... Enough for now right!!
I am not sure how many of you have thought about this but many a times there use to be scenarios when you wanted that not all the validation controls on the page behave and validate in the same set... So here is the option for you... There is a property in Whidbey BaseValidator which is called ValidationGroup...
This property takes a string value and is a easy way to group your different validation controls in a group...
As this is a property of BaseValidator it is automatically inherited in all the rest of the validation controls...
How to visualize the use of it... Say for example I have a text box and I have a range validator, required field validator, regular expression validator all associated with it... I want to group all of these validators together then I set all of their ValidationGroup property to a fixed value and then they get grouped... Easy isn't it...
PS: "Tangential Theory" - This a new word coined by me... What does a tangential theory means? Well tangential theory is a philosophical theory of special kind... It is a theory or a thought which might touch you but will probably not effect you or intersect you often... It is a theory which will give you a chance to think about and conclude whether it does interset your mind waves just at a tangent or will eventually somewhere intersect to create a larger impact... In nutshell, Tangential Theory gives you the point from which you can start analyzing... I would refer many of the PS: that come along the technical tips as tangents of the tangential theory... Enough for now right!!
Monday, November 15, 2004
VJs Tip Of The Day - November 15th 2004
Whidbey Days - Page.SetFocus method in ASP.Net
Many have struggled to do simple thing like setting up focus in ASP.Net page... Well not anymore... There is a simple method called Page.SetFocus in System.Web.UI.Page class in Whidbey...
Look at the signature of the method
public void SetFocus(Control) where the parameter is the control on which the focus needs to be set...
There is also an overload for the method available which takes string
public void SetFocus(String) where the parameter is the clientID of the control to set focus on...
There are two exceptions which this method can throw; they are ArgumentNullException in case the clientID or control to set focus on are null... The method also throws an InvalidOperationException in case the method is called after PreRender event of the page as after that the setting the focus is not possible...
Simple and Nice way isn't it... :-)
PS: November 19th will be temperory end of "Second Season" for tip of the day... I will be off for a one month long vacation and will catch up with you guys again in new year 2005 in the "Third Season"...
Many have struggled to do simple thing like setting up focus in ASP.Net page... Well not anymore... There is a simple method called Page.SetFocus in System.Web.UI.Page class in Whidbey...
Look at the signature of the method
public void SetFocus(Control) where the parameter is the control on which the focus needs to be set...
There is also an overload for the method available which takes string
public void SetFocus(String) where the parameter is the clientID of the control to set focus on...
There are two exceptions which this method can throw; they are ArgumentNullException in case the clientID or control to set focus on are null... The method also throws an InvalidOperationException in case the method is called after PreRender event of the page as after that the setting the focus is not possible...
Simple and Nice way isn't it... :-)
PS: November 19th will be temperory end of "Second Season" for tip of the day... I will be off for a one month long vacation and will catch up with you guys again in new year 2005 in the "Third Season"...
Wednesday, November 10, 2004
VJs Tip Of The Day - November 10th 2004
Debugging mess due to Whidbey Beta 1
My first gift from Whidbey... I had installed Whidbey alpha on my machine which had VS.Net 2002... After installing alpha my VS.Net 2002 ASP.Net applications could not be debugged... I tried all possible things but could not get it working again... Finally when I had to work on my previous apps and had no option I thought it was alpha version issue and so uninstalled alpha and started carrying on...
Now I have installed Whidbey beta 1 refresh and just to add to my worst fears again my older VS.Net web apps could not be debugged... Interestingly this time I installed Whidbey on virtual pc still the problem comes...
Just for your information if I get debugging issues with VS.Net I first do all the below possible things:
-I make myself a member of Debugger Users and VS Developers...
-I registered ASP.Net of appropriate framework version by aspnet_regiis -I (found in ...\WINDOWS\Microsoft.NET\Framework\VERSION FOLDERS (e.g v1.1.4322) -I have my ASP.Net debug property set to be true in the project properties...
-I check my web config file settings too....
- I also try to manually attach the apnet_wp.exe to debug the app...
-I check my machine.config file and see if the processModel tag is enabled... (found in ...\WINDOWS\Microsoft.NET\Framework\VERSION FOLDERS\CONFIG) -I use the world famous ASP.Net version switcher utility made by Denis (http://www.vishaljoshi.blogspot.com/2004_04_01_vishaljoshi_archive.html)...
-I do the same stuff which ASP.Net version switcher does manually also...
-I also run dotnetfx.exe once again just to be sure...
If none of the above solves my problem, I try to assume that something else is wrong... Btw, finally for the above issue I was informed by Dr Colin Brown, MVP that this is a reported bug for Whidbey and probably next version (beta 2) should solve it...
But then these are the problems which you embrace when you embrace a new technology... :-)
PS: Even after all these things... Whidbey is a cool thing to start working on ASAP... :-)
My first gift from Whidbey... I had installed Whidbey alpha on my machine which had VS.Net 2002... After installing alpha my VS.Net 2002 ASP.Net applications could not be debugged... I tried all possible things but could not get it working again... Finally when I had to work on my previous apps and had no option I thought it was alpha version issue and so uninstalled alpha and started carrying on...
Now I have installed Whidbey beta 1 refresh and just to add to my worst fears again my older VS.Net web apps could not be debugged... Interestingly this time I installed Whidbey on virtual pc still the problem comes...
Just for your information if I get debugging issues with VS.Net I first do all the below possible things:
-I make myself a member of Debugger Users and VS Developers...
-I registered ASP.Net of appropriate framework version by aspnet_regiis -I (found in ...\WINDOWS\Microsoft.NET\Framework\VERSION FOLDERS (e.g v1.1.4322) -I have my ASP.Net debug property set to be true in the project properties...
-I check my web config file settings too....
- I also try to manually attach the apnet_wp.exe to debug the app...
-I check my machine.config file and see if the processModel tag is enabled... (found in ...\WINDOWS\Microsoft.NET\Framework\VERSION FOLDERS\CONFIG) -I use the world famous ASP.Net version switcher utility made by Denis (http://www.vishaljoshi.blogspot.com/2004_04_01_vishaljoshi_archive.html)...
-I do the same stuff which ASP.Net version switcher does manually also...
-I also run dotnetfx.exe once again just to be sure...
If none of the above solves my problem, I try to assume that something else is wrong... Btw, finally for the above issue I was informed by Dr Colin Brown, MVP that this is a reported bug for Whidbey and probably next version (beta 2) should solve it...
But then these are the problems which you embrace when you embrace a new technology... :-)
PS: Even after all these things... Whidbey is a cool thing to start working on ASAP... :-)
Tuesday, November 09, 2004
VJs Tip Of The Day - November 9th 2004
Xml Schema Generator Utility
.Net Framework provides a command line utility called xsd.exe which can do various Xml schema related tasks... If you provide xml file to the utility it can generate a schema for it... If you provide an assembly it can generate schema for the its types... If you provide it with a schema file (.xsd) then it will generate class code for you in the language of your choice...
It can also convert a .xdr file to a .xsd file... If you want to know more Click Here
PS: I am trying to work a little bit on Whidbey these days so I will try to post in interesting stuff on that...
PS: Today was "Father's Day" to me... It was my dad's birthday today and so I believe ideally that should be father's day to me right!!... Happy Father's day to me and little bro... Sometimes my mind denies to accept the days selected by companies like Archies and Hallmark to celebrate "Mother's Day" and "Father's Day"... I sometimes feel its a big marketing strategy but then I console myself that there is nothing wrong in making your father feel special twice right!!... Anyways, Happy Birthday Baba...
.Net Framework provides a command line utility called xsd.exe which can do various Xml schema related tasks... If you provide xml file to the utility it can generate a schema for it... If you provide an assembly it can generate schema for the its types... If you provide it with a schema file (.xsd) then it will generate class code for you in the language of your choice...
It can also convert a .xdr file to a .xsd file... If you want to know more Click Here
PS: I am trying to work a little bit on Whidbey these days so I will try to post in interesting stuff on that...
PS: Today was "Father's Day" to me... It was my dad's birthday today and so I believe ideally that should be father's day to me right!!... Happy Father's day to me and little bro... Sometimes my mind denies to accept the days selected by companies like Archies and Hallmark to celebrate "Mother's Day" and "Father's Day"... I sometimes feel its a big marketing strategy but then I console myself that there is nothing wrong in making your father feel special twice right!!... Anyways, Happy Birthday Baba...
Friday, November 05, 2004
VJs Tip Of The Day - November 5th 2004
XmlDocument on WebService
This is just an observation which you can make... If there is a web method in your webservice which takes or returns a parameter of type System.Xml.XmlDocument then it gets converted into System.Xml.XmlNode on the client side (if you are using .Net on both the ends and adding web reference via wsdl.exe)...
ie if your service web method definition looks like below...
_
Public Function GetXmlDoc(ByVal Id As Integer, _
ByVal doc As XmlDocument) As XmlDocument
End Function
The proxy definition of the same method will look like below...
Public Function GetXmlDoc(ByVal Id As Integer, ByVal doc As System.Xml.XmlNode) As System.Xml.XmlNode
Dim results() As Object = Me.Invoke("GetXmlNode", New Object() {Id, doc})
Return CType(results(0),System.Xml.XmlNode)
End Function
It is an understood behavior that for WSDL you are always receiving a XmlNode if it is a document for you then you are suppose to implicitly convert the same into a XmlDocument...
I do wish that there was a special indication in WSDL which could inform the proxy generator whether a node is expected or a document is, but that is more to do with the WSDL file format right!!...
PS: Have a wonderful weekend... :-) If you are reading this mail on Monday then decide right away that you got to have a wonderful next weekend... If you were 'requested' to work over this weekend even if you had to do something for yourself at that time, then better start taking lessons on 'being affirmative'...
:-) If you have not seen the movie "Office Space" then make sure you grab it from somewhere and watch it next weekend... To an extent it helped me laugh at my own doomed situation... :-)
This is just an observation which you can make... If there is a web method in your webservice which takes or returns a parameter of type System.Xml.XmlDocument then it gets converted into System.Xml.XmlNode on the client side (if you are using .Net on both the ends and adding web reference via wsdl.exe)...
ie if your service web method definition looks like below...
Public Function GetXmlDoc(ByVal Id As Integer, _
ByVal doc As XmlDocument) As XmlDocument
End Function
The proxy definition of the same method will look like below...
Public Function GetXmlDoc(ByVal Id As Integer, ByVal doc As System.Xml.XmlNode) As System.Xml.XmlNode
Dim results() As Object = Me.Invoke("GetXmlNode", New Object() {Id, doc})
Return CType(results(0),System.Xml.XmlNode)
End Function
It is an understood behavior that for WSDL you are always receiving a XmlNode if it is a document for you then you are suppose to implicitly convert the same into a XmlDocument...
I do wish that there was a special indication in WSDL which could inform the proxy generator whether a node is expected or a document is, but that is more to do with the WSDL file format right!!...
PS: Have a wonderful weekend... :-) If you are reading this mail on Monday then decide right away that you got to have a wonderful next weekend... If you were 'requested' to work over this weekend even if you had to do something for yourself at that time, then better start taking lessons on 'being affirmative'...
:-) If you have not seen the movie "Office Space" then make sure you grab it from somewhere and watch it next weekend... To an extent it helped me laugh at my own doomed situation... :-)
Thursday, November 04, 2004
VJs Tip Of The Day - November 4th 2004
Whidbey - Partial Classes
In Whidbey it would be possible to split huge class files into multiple parts... The keyword used for that is partial... The same keyword works for struct or an interface... When the assembly is compiled then all these files will be merged into one... This can be usually useful when multiple people have to work on same class or when autogeneration is used...
Due to autogeneration getting more and more popular now days the problem that exits currently is that if you modify any code in autogenerated files then again autogeneration with updates causes loss of the manual changes made... by using partial classes you can seperate the autogenerated and manually coded files...
e.g.
// This is the first file.cs
public partial class SameClass
{
public void AutoGenratedMethod()
{
}
}
// This is the second file.cs
public partial class SameClass
{
public void ManuallyCodedMethod()
{
}
}
PS: Next time you get a speeding citation do not pay it off directly... It is better to appear in the court if possible and explain your scenario, judges are usually understanding and if they do not reduce the fine they will probably reduce the points on your drivers licence... It also gives an implied message that you are concerned about your citation and so are ready to appear in the court... Many US states also provide you with an attorney to fight for you in case you have not hired one... :-)
Kathleen has added below points
Partial classes helps with code generation only in minimilast scenarios.
While it is very important there, derivation will remain the prime mechanism for customization - although not everyone has wandered down that road far enough to realize it.
In Whidbey it would be possible to split huge class files into multiple parts... The keyword used for that is partial... The same keyword works for struct or an interface... When the assembly is compiled then all these files will be merged into one... This can be usually useful when multiple people have to work on same class or when autogeneration is used...
Due to autogeneration getting more and more popular now days the problem that exits currently is that if you modify any code in autogenerated files then again autogeneration with updates causes loss of the manual changes made... by using partial classes you can seperate the autogenerated and manually coded files...
e.g.
// This is the first file.cs
public partial class SameClass
{
public void AutoGenratedMethod()
{
}
}
// This is the second file.cs
public partial class SameClass
{
public void ManuallyCodedMethod()
{
}
}
PS: Next time you get a speeding citation do not pay it off directly... It is better to appear in the court if possible and explain your scenario, judges are usually understanding and if they do not reduce the fine they will probably reduce the points on your drivers licence... It also gives an implied message that you are concerned about your citation and so are ready to appear in the court... Many US states also provide you with an attorney to fight for you in case you have not hired one... :-)
Kathleen has added below points
Partial classes helps with code generation only in minimilast scenarios.
While it is very important there, derivation will remain the prime mechanism for customization - although not everyone has wandered down that road far enough to realize it.
Wednesday, November 03, 2004
VJs Tip Of The Day - November 3rd 2004
out parameters and proxy class in web services
There is a interesting thing to know about 'out parameters' in web services... Consider a scenario in which you have a web method which returns void but has some out parameters... When you try to create a proxy (when you add web reference to your web service), you can notice that the first out parameter is converted into return value on the proxy side...
This is important to know because if you are exposing your webservice without return value and only out parameters then you would definitely have a reason to do so and such behavior of the proxy generator might be unexpected, but that is how WSDL understands it and so you have to live with it...
For more information on the topic Click Here
PS: SharpReader is one of the most widely used RSS Aggregator... You can subscribe to many blogs via RSS after installing the same... You can download SharpReader for free at http://www.sharpreader.net/ and then click on File->Open RSS feed you can then type the RSS feed url for the blog and click subscribe... RSS feed url for all blogspot sites are similar to mine which is http://vishaljoshi.blogspot.com/atom.xml
There is a interesting thing to know about 'out parameters' in web services... Consider a scenario in which you have a web method which returns void but has some out parameters... When you try to create a proxy (when you add web reference to your web service), you can notice that the first out parameter is converted into return value on the proxy side...
This is important to know because if you are exposing your webservice without return value and only out parameters then you would definitely have a reason to do so and such behavior of the proxy generator might be unexpected, but that is how WSDL understands it and so you have to live with it...
For more information on the topic Click Here
PS: SharpReader is one of the most widely used RSS Aggregator... You can subscribe to many blogs via RSS after installing the same... You can download SharpReader for free at http://www.sharpreader.net/ and then click on File->Open RSS feed you can then type the RSS feed url for the blog and click subscribe... RSS feed url for all blogspot sites are similar to mine which is http://vishaljoshi.blogspot.com/atom.xml
Subscribe to:
Posts (Atom)