.NET Solutions in the Real World

The .NET Framework, although more than three years old if you count the public alpha and beta releases, is still early in its development cycle. For those who can remember Visual Basic 3.0 and compare it to Visual Basic 6.0, you can see what might be in store for .NET over the next few years. Add to that the fact that technology is changing much more rapidly than it was just a decade ago.

This exam covers the activity that takes place before you sit at the keyboard and start banging out code. It is the "prequel" to good code, to use a term the movie industry has made popular. In fact, the exam is totally devoid of code, focusing instead on the more abstract, "fluffier" topics of making good decisions.

The Ideal .NET Solution Architect Certification Candidate

Ask yourself the hard questions. Don't go through the motions of preparing for this exam unless you are committed. Most likely you are a serious student, so now you have to decide on the best way to prepare for the exam. The following list outlines the tasks and topics you will be tested on. Use this list to diagnose the level of familiarity you have with topics covered by the exam.

Read the list, and give yourself one point for each question you can answer in the affirmative. These are all yes or no questions, so there are no answers at the end. Just put a checkmark down each time you think "yes" is the correct response for you. At the end, I'll discuss what your score means. Don't worry: This is just between you and me, and I'm not telling.

  1. Have you worked on at least one project as the lead architect that involved a team of three people or more?

  2. Have you worked as an architect on at least one Web application?

  3. Have you been studying or working as an architect for more than a year in the .NET realm (not the "classic" VB or Active Server Pages [ASP] world)?

  4. Have you spent time at the MSDN Web site (or used the CD-ROM) perusing and studying the multitude of white papers on how to do solution architecture with the .NET Framework?

  5. Do you understand the difference between scope and vision?

  6. Do you know what a risk mitigation plan is?

  7. Do you understand what developing user personas is and why this process might be useful?

  8. Do you know what MSF stands for?

  9. Can you define the difference between performance and scalability?

  10. Are you familiar with the major differences between ActiveX Data Objects (ADO) and ADO.NET that would affect solution design?

  11. Are you familiar with the major differences between ASP and ASP.NET that would affect solution design?

  12. Are you familiar with the major differences between Visual Basic 6.0 and .NET Windows Forms that would affect solution design?

  13. Are you familiar with the major differences between COM's reference counting scheme and how it differs from the .NET Framework's garbage collection scheme?

  14. Are you familiar with the differences between how COM registers, versions, and uses DLLs and EXEs versus how the .NET Framework deploys DLLs or EXEs (for example, Global Assembly Cache (GAC) or side-by-side)?

  15. Do you have at least a basic understanding of Microsoft's server product family (for example, SQL Server, BizTalk Server, Commerce Server)?

  16. Do you know how to identify business and data requirements?

  17. Do you know what extensibility is and how it must be considered during the requirement-gathering process?

  18. Do you know what a data flow diagram is and how it should be used?

  19. Do you know what user accessibility is and how it should be incorporated into system requirements?

  20. Do you know how use cases are used in the requirement-gathering process?

  21. When gathering the requirements for a multinational application, do you know what internationalization and localization issues must be considered?

  22. Do you know how to recognize deployment issues and how they must be considered?

  23. When gathering security requirements, are you aware of what areas should be considered during the requirement-gathering process?

  24. Do you know what hardware, software, and infrastructure issues need to be considered when gathering requirements?

  25. Do you know how to set up an effective strategy for auditing and logging?

  26. Are you familiar enough with Try-Catch exception handling to design an effective exception-handling strategy for an entire application?

  27. Do you know the difference between globalization and localization?

  28. Are you familiar with techniques for archiving and purging production data stores?

  29. Do you know how to create a specification for user assistance (help) in an application?

  30. Have you worked with Object Role Modeling (ORM) before?

  31. Do you know which output formats an ORM model can be exported to?

  32. Can you read and interpret a visual ORM model?

  33. Do you know the data normalization guidelines up to third normal form?

  34. Do you understand how to effectively use primary and foreign keys to set up table relationships (such as one-to-many, many-to-many, and one-to-one)?

  35. Are you familiar with data concurrency issues in ADO.NET?

  36. Can you read and build a simple XML schema?

  37. Do you know the difference between single-tier, two-tier, and n-tier design?

  38. Do you have a general understanding of MSMQ and when it might be appropriate to use in a solution architecture?

  39. Do you know at least four different places to cache state for a Web application and when each place might be the best solution?

  40. Do you know what WMI is?

  41. Do you know the difference between synchronous and asynchronous programming?

  42. Are you familiar with at least some of the programming challenges for an international audience?

  43. Do you know at least two of the differences between XML Web Services and .NET Remoting?

  44. Do you know how to implement a .NET solution using service layer architecture?

  45. Do you know how to integrate with existing COM components?

  46. Do you know how to catch unhandled exceptions?

  47. Do you know the three areas to focus on when designing security for an application?

  48. Do you know when to use a Web interface as opposed to a Windows interface in .NET?

  49. Do you know how to debug an application after it has been deployed?

  50. Do you know the four deployment projects in Visual Studio .NET?

  51. Do you know how to deploy a Windows Forms application via HTTP?

  52. Do you know how to license your components?

  53. Do you know how to register multiple versions of the same assembly?

  54. Do you know the difference between a class and an interface, and when it is appropriate to use each?

  55. Do you know the four ways to partition data in SQL Server?

  56. Do you know what Enterprise Templates are and when they would be a useful tool for a project?

  57. Do you know the difference between camel case and Pascal case?

  58. Do you know at least six different levels of testing and in what sequence they are performed?

  59. Do you know, in simple terms, how to determine a project's ROI?

  60. Do you know what software design patterns are and why they are useful, and have you ever used patterns yourself?

So, how did you do? I'll talk in general terms about what these questions mean.

If you gave yourself more than 50 yes responses, you're way ahead of the game. You can probably skim through this book quickly, giving more attention to the topics in which you feel weaker. I would still suggest going through the practice questions at the end of each chapter and in Chapters 13, "Practice Exam 1," and 15, "Practice Exam 2." Also, Chapter 12, "Tips for Analyzing a Case Study," is a good read for anyone because its focus is specifically on how to best take the exam.

If you had between 35 and 50 yes responses, you are most likely qualified to take the exam and are probably already involved in architectural activities or have done a lot of studying on your own. I would suggest that you read the book from cover to cover, do the practice questions, and make sure to hit Chapter 12.

If you had between 10 and 34 yes responses, you are on the fringe of meeting the prerequisites to take this exam. You might be specialized in one area, such as database design, but weak in others. I would suggest that you read the book from cover to cover, do the practice questions, and make sure to hit Chapter 12. For topic areas you are weak in, you might also want to follow some of the provided Web links, magazine articles (most of which are available online), or recommended books.

If you had fewer than 10 yes responses, you might want to do more independent study before getting serious about the exam. You might be a senior or a skilled developer looking to move forward with your career. However, becoming an architect is almost like a job change from being a teacher, focused on the students, to being a school principal, focused on the teachers. The required skill set is very different. It would be good to get on a project as an apprentice architect, being mentored by a senior architect who can model best-practices skills. If you still want to give it a go, I would encourage you to investigate many of the links and book recommendations for supplemental knowledge.



Analyzing Requirements and Defining. Net Solution Architectures (Exam 70-300)
MCSD Self-Paced Training Kit: Analyzing Requirements and Defining Microsoft .NET Solution Architectures, Exam 70-300: Analyzing Requirements and ... Exam 70-300 (Pro-Certification)
ISBN: 0735618941
EAN: 2147483647
Year: 2006
Pages: 175

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net