<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>What did you learn today? - Certifications</title>
    <link>http://blog.philknows.net/</link>
    <description>Phil Denoncourt's Technology Rants</description>
    <language>en-us</language>
    <copyright>Phil Denoncourt III</copyright>
    <lastBuildDate>Mon, 21 Apr 2008 11:50:36 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>phil@denoncourtassociates.com</managingEditor>
    <webMaster>phil@denoncourtassociates.com</webMaster>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=2a3eb8e1-9a7b-4149-8502-8a771328c736</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,2a3eb8e1-9a7b-4149-8502-8a771328c736.aspx</pingback:target>
      <dc:creator>Phil Denoncourt</dc:creator>
      <wfw:comment>http://blog.philknows.net/CommentView,guid,2a3eb8e1-9a7b-4149-8502-8a771328c736.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=2a3eb8e1-9a7b-4149-8502-8a771328c736</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm going to be taking this next week, so I thought I'd post my study notes as I assemble
them.
</p>
        <ul>
          <li>
            <strong>May include but is not limited to: using the ConnectionStringBuilder; leveraging
the ConfigurationManager; protecting the connection string; using Security Support
Provider Interface (SSPI) or SQL Server authentication; correctly addressing the SQL
Server instance; managing “User Instance” and AttachDBfilename</strong>
          </li>
        </ul>
        <p>
The ConnectionStringBuilder objects allow for an abstract way of building a connection
string for ADO.NET.  There is a good <a href="http://blogs.msdn.com/dataaccess/archive/2005/03/30/403926.aspx" target="_blank">writeup</a> on
the data access blog showing basic usage.  There is a <a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder(VS.80).aspx" target="_blank">SqlConnectionStringBuilder</a>, <a href="http://msdn2.microsoft.com/en-us/library/system.data.oledb.oledbconnectionstringbuilder(VS.80).aspx" target="_blank">OleDbConnectionStringBuilder</a>, <a href="http://msdn2.microsoft.com/en-us/library/system.data.odbc.odbcconnectionstringbuilder(VS.80).aspx" target="_blank">OdbcConnectionStringBuilder</a>,
and an <a href="http://msdn2.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder(VS.80).aspx" target="_blank">OracleConnectionStringBuilder</a>. 
</p>
        <p>
The ConfigurationManager has a specific section for storing connection strings and
the <a href="http://msdn2.microsoft.com/en-us/library/system.configuration.configurationmanager.connectionstrings.aspx" target="_blank">ConnectionStrings</a> property
to manipulate them.  See this article on <a href="http://msdn2.microsoft.com/en-us/library/ms254494(VS.80).aspx" target="_blank">MSDN</a> for
more information.  An area that doesn't get much attention is that the Connection
string configuration can be stored in a separate config file.  See the section
titled "Using external configuration files" to see how to use the configSource property. 
</p>
        <p>
MSDN has an <a href="http://msdn2.microsoft.com/en-us/library/89211k9b(VS.80).aspx" target="_blank">article</a> on
securing configuration strings.  An important part to pay attention to is encrypting
connection string information stored in config files.  Scott Forsyth has a <a href="http://weblogs.asp.net/owscott/archive/2005/07/29/421063.aspx" target="_blank">post</a> on
using aspnet_regiis to protect web.config files.  Daruish Tasdighi has an <a href="http://www.codeproject.com/KB/cs/Configuration_File.aspx" target="_blank">article</a> at
codeproject about protecting the contents using the ConfigurationSection.<a href="http://msdn2.microsoft.com/en-us/library/system.configuration.sectioninformation.protectsection.aspx" target="_blank">ProtectSection</a> / <a href="http://msdn2.microsoft.com/en-us/library/system.configuration.sectioninformation.unprotectsection.aspx" target="_blank">UnprotectSection</a> methods. 
</p>
        <ul>
          <li>
            <strong>Manage connection objects.<br /></strong>
            <strong>May include but is not limited to: managing connection state, managing
connection pool; implementing persistent data connections; implementing Multiple Active
Result Sets (MARS); encrypting and decrypting data</strong>
          </li>
        </ul>
        <p>
Managing connection state.  I think that is knowing that there are methods on
the connection object to open and close the connection.  The connection will
be closed when the connection object is disposed. 
</p>
        <p>
There is a great <a href="http://weblogs.asp.net/sjoseph/archive/2005/03/23/395601.aspx" target="_blank">post</a> by
Sijin Joseph about connection pooling with all the different connection objects. 
I wasn't aware that there is no connection pooling with ODBC using the managed providers. 
Also interesting was that connection pooling for SQL Server was disabled while debugging
in Visual Studio.  Another thing to be aware of is that when using Integrated
Security for SQL Server, the domain/user is added to the list of things that need
to match for a connection to be reused. 
</p>
        <p>
To have a persistent data connection, you disable connection pooling and keep the
instance of the connection object around.  The connection will remain open until
the connection object is disposed or the close method is used. 
</p>
        <p>
Eric Moreau has a <a href="http://www.emoreau.com/Entries/Articles/2006/11/MARS-and-Asynchronous-ADONet.aspx" target="_blank">post</a> on
using MARS.  It is only supported in the SQL Server and Oracle managed providers.  
</p>
        <p>
You can encrypt/decrypt the data passed from the client back and to the database server
by adding the Encrypt keyword to the connection string for SQL Server or using the <a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.encrypt.aspx" target="_blank">Encrypt</a> property
on the SqlConnectionStringBuilder. 
</p>
        <ul>
          <li>
            <strong>Work with data providers. 
<br />
May include but is not limited to: limitations, behaviors, performance, installation
issues, deployment issues; ODBC, Microsoft OLE DB, SqlClient, managed providers, third-party
providers, native providers</strong>
          </li>
        </ul>
        <p>
I guess this is a nice way of saying, "Know everything about ADO.NET".  Some
of the things I'm aware of are the just because you have a managed provider available,
you still need the native dll libraries.  Oracle, for example.  The client
needs the oracle client libraries in order to connect to Oracle.  I mentioned
some of the shortcomings of ODBC above in regards to pooling.  A great source
for third party data providers can be found at the <a href="http://www.mono-project.com/Database_Access" target="_blank">mono
project</a> (Firebird, MySql, SQLLite, PostgresSQL, Mimer, Sybase..)
</p>
        <ul>
          <li>
            <strong>Connect to a data source by using a generic data access interface. 
<br />
May include but is not limited to: System.Data.Common namespace classes</strong>
          </li>
        </ul>
        <p>
The <a href="http://msdn2.microsoft.com/en-us/library/system.data.common.aspx" target="_blank">common</a> namespace
is the abstract definition for all data providers.  You would use this when you
aren't sure which data provider your application will ultimately use.  Using
the <a href="http://msdn2.microsoft.com/en-us/library/system.data.common.dbproviderfactory.aspx" target="_blank">DbProviderFactory</a> you
can instantiate objects for a specific data provider.   Suman Chakrabarti
has a <a href="http://blogs.msdn.com/sumanc/archive/2006/05/11/592596.aspx" target="_blank">post</a> showing
how to use the DbProviderFactory class. 
</p>
        <ul>
          <li>
            <strong>Handle and diagnose database connection exceptions.<br />
May include but is not limited to: implementing try/catch handlers</strong>
          </li>
        </ul>
        <p>
Joydip Kanjilal has a <a href="http://www.sql-server-performance.com/articles/asp_ado/ado_exceptions_p1.aspx" target="_blank">post</a> on
handling exceptions in ADO.NET.  If you catch a SqlException, you would examine
the number property to determine the root cause of the problem.
</p>
        <p>
 
</p>
        <p>
Next -&gt; Section II Selecting and Querying Data
</p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=2a3eb8e1-9a7b-4149-8502-8a771328c736" />
      </body>
      <title>70-561 Microsoft .NET Framework 3.5, ADO.NET Application Development - Section I - Connecting to Data Sources</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,2a3eb8e1-9a7b-4149-8502-8a771328c736.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,2a3eb8e1-9a7b-4149-8502-8a771328c736.aspx</link>
      <pubDate>Mon, 21 Apr 2008 11:50:36 GMT</pubDate>
      <description>&lt;p&gt;
I'm going to be taking this next week, so I thought I'd post my study notes as I assemble
them.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;May include but is not limited to: using the ConnectionStringBuilder; leveraging
the ConfigurationManager; protecting the connection string; using Security Support
Provider Interface (SSPI) or SQL Server authentication; correctly addressing the SQL
Server instance; managing “User Instance” and AttachDBfilename&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The ConnectionStringBuilder objects allow for an abstract way of building a connection
string for ADO.NET.&amp;nbsp; There is a good &lt;a href="http://blogs.msdn.com/dataaccess/archive/2005/03/30/403926.aspx" target=_blank&gt;writeup&lt;/a&gt; on
the data access blog showing basic usage.&amp;nbsp; There is a &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder(VS.80).aspx" target=_blank&gt;SqlConnectionStringBuilder&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.oledb.oledbconnectionstringbuilder(VS.80).aspx" target=_blank&gt;OleDbConnectionStringBuilder&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.odbc.odbcconnectionstringbuilder(VS.80).aspx" target=_blank&gt;OdbcConnectionStringBuilder&lt;/a&gt;,
and an &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder(VS.80).aspx" target=_blank&gt;OracleConnectionStringBuilder&lt;/a&gt;. 
&lt;p&gt;
The ConfigurationManager has a specific section for storing connection strings and
the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.configuration.configurationmanager.connectionstrings.aspx" target=_blank&gt;ConnectionStrings&lt;/a&gt; property
to manipulate them.&amp;nbsp; See this article on &lt;a href="http://msdn2.microsoft.com/en-us/library/ms254494(VS.80).aspx" target=_blank&gt;MSDN&lt;/a&gt; for
more information.&amp;nbsp; An area that doesn't get much attention is that the Connection
string configuration can be stored in a separate config file.&amp;nbsp; See the section
titled "Using external configuration files" to see how to use the configSource property. 
&lt;p&gt;
MSDN has an &lt;a href="http://msdn2.microsoft.com/en-us/library/89211k9b(VS.80).aspx" target=_blank&gt;article&lt;/a&gt; on
securing configuration strings.&amp;nbsp; An important part to pay attention to is encrypting
connection string information stored in config files.&amp;nbsp; Scott Forsyth has a &lt;a href="http://weblogs.asp.net/owscott/archive/2005/07/29/421063.aspx" target=_blank&gt;post&lt;/a&gt; on
using aspnet_regiis to protect web.config files.&amp;nbsp; Daruish Tasdighi has an &lt;a href="http://www.codeproject.com/KB/cs/Configuration_File.aspx" target=_blank&gt;article&lt;/a&gt; at
codeproject about protecting the contents using the ConfigurationSection.&lt;a href="http://msdn2.microsoft.com/en-us/library/system.configuration.sectioninformation.protectsection.aspx" target=_blank&gt;ProtectSection&lt;/a&gt; / &lt;a href="http://msdn2.microsoft.com/en-us/library/system.configuration.sectioninformation.unprotectsection.aspx" target=_blank&gt;UnprotectSection&lt;/a&gt; methods. 
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manage connection objects.&lt;br&gt;
&lt;/strong&gt;&lt;strong&gt;May include but is not limited to: managing connection state, managing
connection pool; implementing persistent data connections; implementing Multiple Active
Result Sets (MARS); encrypting and decrypting data&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Managing connection state.&amp;nbsp; I think that is knowing that there are methods on
the connection object to open and close the connection.&amp;nbsp; The connection will
be closed when the connection object is disposed. 
&lt;p&gt;
There is a great &lt;a href="http://weblogs.asp.net/sjoseph/archive/2005/03/23/395601.aspx" target=_blank&gt;post&lt;/a&gt; by
Sijin Joseph about connection pooling with all the different connection objects.&amp;nbsp;
I wasn't aware that there is no connection pooling with ODBC using the managed providers.&amp;nbsp;
Also interesting was that connection pooling for SQL Server was disabled while debugging
in Visual Studio.&amp;nbsp; Another thing to be aware of is that when using Integrated
Security for SQL Server, the domain/user is added to the list of things that need
to match for a connection to be reused. 
&lt;p&gt;
To have a persistent data connection, you disable connection pooling and keep the
instance of the connection object around.&amp;nbsp; The connection will remain open until
the connection object is disposed or the close method is used. 
&lt;p&gt;
Eric Moreau has a &lt;a href="http://www.emoreau.com/Entries/Articles/2006/11/MARS-and-Asynchronous-ADONet.aspx" target=_blank&gt;post&lt;/a&gt; on
using MARS.&amp;nbsp; It is only supported in the SQL Server and Oracle managed providers.&amp;nbsp; 
&lt;p&gt;
You can encrypt/decrypt the data passed from the client back and to the database server
by adding the Encrypt keyword to the connection string for SQL Server or using the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.encrypt.aspx" target=_blank&gt;Encrypt&lt;/a&gt; property
on the SqlConnectionStringBuilder. 
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Work with data providers. 
&lt;br&gt;
May include but is not limited to: limitations, behaviors, performance, installation
issues, deployment issues; ODBC, Microsoft OLE DB, SqlClient, managed providers, third-party
providers, native providers&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I guess this is a nice way of saying, "Know everything about ADO.NET".&amp;nbsp; Some
of the things I'm aware of are the just because you have a managed provider available,
you still need the native dll libraries.&amp;nbsp; Oracle, for example.&amp;nbsp; The client
needs the oracle client libraries in order to connect to Oracle.&amp;nbsp; I mentioned
some of the shortcomings of ODBC above in regards to pooling.&amp;nbsp; A great source
for third party data providers can be found at the &lt;a href="http://www.mono-project.com/Database_Access" target=_blank&gt;mono
project&lt;/a&gt; (Firebird, MySql, SQLLite, PostgresSQL, Mimer, Sybase..)
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Connect to a data source by using a generic data access interface. 
&lt;br&gt;
May include but is not limited to: System.Data.Common namespace classes&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.common.aspx" target=_blank&gt;common&lt;/a&gt; namespace
is the abstract definition for all data providers.&amp;nbsp; You would use this when you
aren't sure which data provider your application will ultimately use.&amp;nbsp; Using
the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.common.dbproviderfactory.aspx" target=_blank&gt;DbProviderFactory&lt;/a&gt; you
can instantiate objects for a specific data provider.&amp;nbsp;&amp;nbsp; Suman Chakrabarti
has a &lt;a href="http://blogs.msdn.com/sumanc/archive/2006/05/11/592596.aspx" target=_blank&gt;post&lt;/a&gt; showing
how to use the DbProviderFactory class. 
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Handle and diagnose database connection exceptions.&lt;br&gt;
May include but is not limited to: implementing try/catch handlers&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Joydip Kanjilal has a &lt;a href="http://www.sql-server-performance.com/articles/asp_ado/ado_exceptions_p1.aspx" target=_blank&gt;post&lt;/a&gt; on
handling exceptions in ADO.NET.&amp;nbsp; If you catch a SqlException, you would examine
the number property to determine the root cause of the problem.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Next -&amp;gt; Section II Selecting and Querying Data
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=2a3eb8e1-9a7b-4149-8502-8a771328c736" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,2a3eb8e1-9a7b-4149-8502-8a771328c736.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=b0d0c6cb-f968-486d-aadd-f015a8afd881</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,b0d0c6cb-f968-486d-aadd-f015a8afd881.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,b0d0c6cb-f968-486d-aadd-f015a8afd881.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b0d0c6cb-f968-486d-aadd-f015a8afd881</wfw:commentRss>
      <title>70-554 - Section I Part III - Remoting Client Config</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,b0d0c6cb-f968-486d-aadd-f015a8afd881.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,b0d0c6cb-f968-486d-aadd-f015a8afd881.aspx</link>
      <pubDate>Thu, 09 Mar 2006 20:52:12 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=f0a45caa-67d2-4a1d-bb4f-01b9b3144cdd&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3df46c3bec-a4b2-4d57-9143-b296f57e7310%26url%3dhttp%253a%252f%252fwww.microsoft.com%252flearning%252fexams%252f70-554.asp" ?&gt;UPGRADE:
MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft
.NET Framework: Part 2&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a client application to access a remote object. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a remote object. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a client application programmatically. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a client application manually by using configuration
files. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Access the remoting service by calling a remote method. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Call a remote method synchronously in a client application. &lt;/font&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
To create a remote object, configure the client application to use remoting.&amp;nbsp;
This can be done using a config file, or programatically.&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/y6dc64f2(VS.80).aspx"&gt;MSDN
has information&lt;/a&gt; on setting up a client application.
&lt;/p&gt;
&lt;p&gt;
You can see how to progmatically setup a client on &lt;a href="http://www.c-sharpcorner.com/Code/2004/Jan/RemoteObjects.asp"&gt;Jibin
Pan's&amp;nbsp;article at c-sharpcorner&lt;/a&gt;.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
MSDN has information on how to &lt;a href="http://msdn2.microsoft.com/en-us/library/y6dc64f2(VS.80).aspx"&gt;setup
a client using configuration files&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
To call a remote method, create the object as usual (if you have remoting configured
for the type) or use &lt;a href="http://msdn2.microsoft.com/en-us/library/system.activator.getobject.aspx"&gt;Activator.GetObject&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
By default remoting calls are synchronous.&amp;nbsp; So I think they meant to say "&lt;font color=#000000&gt;Call
a remote method asynchronously in a client application".&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/3k559b9a(VS.80).aspx"&gt;MSDN
has information&lt;/a&gt; on how to do invoke a method asynchronously.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=b0d0c6cb-f968-486d-aadd-f015a8afd881" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,b0d0c6cb-f968-486d-aadd-f015a8afd881.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=f0a45caa-67d2-4a1d-bb4f-01b9b3144cdd</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,f0a45caa-67d2-4a1d-bb4f-01b9b3144cdd.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,f0a45caa-67d2-4a1d-bb4f-01b9b3144cdd.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=f0a45caa-67d2-4a1d-bb4f-01b9b3144cdd</wfw:commentRss>
      <title>70-554 Section I - Part II - Remoting Server Config</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,f0a45caa-67d2-4a1d-bb4f-01b9b3144cdd.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,f0a45caa-67d2-4a1d-bb4f-01b9b3144cdd.aspx</link>
      <pubDate>Thu, 09 Mar 2006 20:36:00 GMT</pubDate>
      <description>&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=f46c3bec-a4b2-4d57-9143-b296f57e7310&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2flearning%2fexams%2f70-554.asp" ?&gt;UPGRADE:
MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft
.NET Framework: Part 2&lt;/a&gt; 
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create and configure a server application. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a server application domain. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a server application programmatically. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a server application by using configuration files. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Compile and build a server application.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
In general, it's good to look at the &lt;a href="http://www.thinktecture.com/Resources/RemotingFAQ/default.html"&gt;Remoting
FAQ at thinktecture.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
To create a server app domain, look at &lt;a href="http://msdn2.microsoft.com/en-us/library/ecc85927(VS.80).aspx"&gt;these
instructions on MSDN&lt;/a&gt;.&amp;nbsp; Use a configuration file, and use RemotingConfiguration.Configure
to read it in.&amp;nbsp; The objects are available at that point.
&lt;/p&gt;
&lt;p&gt;
To do it programically, look at this &lt;a href="http://www.expresscomputeronline.com/20040719/techspace02.shtml"&gt;article
at Express Computer&lt;/a&gt;.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://msdn2.microsoft.com/en-us/library/ecc85927(VS.80).aspx"&gt;MSDN article
has instructions&lt;/a&gt; on how to configure the server application.
&lt;/p&gt;
&lt;p&gt;
I don't see why building a server application is any different that other types of
applications.&amp;nbsp; You just compile to get an executable.&amp;nbsp; Make sure that the
configuration file (if you're using a config file) gets named to &amp;lt;app&amp;gt;.exe.config
and is deployed with the executable.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=f0a45caa-67d2-4a1d-bb4f-01b9b3144cdd" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,f0a45caa-67d2-4a1d-bb4f-01b9b3144cdd.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=f46c3bec-a4b2-4d57-9143-b296f57e7310</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,f46c3bec-a4b2-4d57-9143-b296f57e7310.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,f46c3bec-a4b2-4d57-9143-b296f57e7310.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=f46c3bec-a4b2-4d57-9143-b296f57e7310</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p class="Subtitle">
          <font size="2">
            <a href="http://www.microsoft.com/learning/exams/70-554.asp">UPGRADE:
MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft
.NET Framework: Part 2</a>
          </font>
        </p>
        <p class="Subtitle">
          <em>
            <font color="#a9a9a9">Configure SOAP messages. </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Configure the formatting of SOAP messages for a Web service
method. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Specify the basic information for a Web service application. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Specify the bindings of a Web service application by using
the WebServiceBindingAttribute attribute. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure a Web service application by using a Machine.config
file. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure a Web service application by using a Web.config
file.</font>
            </em>
          </li>
        </ul>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/dkwy2d72.aspx">MSDN has a section </a>on
formatting SOAP messages.  Know about the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebservicesprotocolssoapdocumentmethodattributeclasstopic.asp">SoapDocumentMethod</a> attribute
and <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebservicesprotocolssoapdocumentserviceattributeclasstopic.asp">SoapDocumentService </a>attribute. 
Know that you can control the <a href="http://msdn2.microsoft.com/en-us/library/thhybys2(VS.80).aspx">formatting
using XML Serializatio</a>n attributes.
</p>
        <p>
I guess the basic information for a web service application would be specified using
the <a href="http://msdn2.microsoft.com/en-us/library/system.web.services.webserviceattribute(VS.80).aspx">WebService </a>attribute. 
You can control the name of the web service, and the namespace.
</p>
        <p>
Binding defines a concrete set of operations.  It is implemented by the <a href="http://msdn2.microsoft.com/en-us/library/system.web.services.webservicebindingattribute(VS.80).aspx">WebServiceBinding </a>attribute. 
You can specify what WSI spec your service conforms to (as of now, Basic Profile 1.1
or none), whether or not the service emits conformance claims, the location of the
binding (defaults to your web service), and the namespace associated with the binding.  <a href="http://weblogs.asp.net/cweyer/archive/2004/09/14/229286.aspx">Christian
Weyer has some thoughts</a> about the attribute on his blog.
</p>
        <p>
The <a href="http://www.xmlwebservices.cc/index_FAQ.htm">XML Web Services repository </a>has
a good FAQ.  In in, some of the things controlled by the web/machine.config are
pointed out.  <a href="http://msdn2.microsoft.com/en-us/library/ms242494.aspx">Here's
how to enable/disable</a> WSDL generation.  Also you can <a href="http://www.codeproject.com/soap/wsdldynamicurl.asp">control
the location of a dynamic reference </a>to a web service in the config file.
</p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=f46c3bec-a4b2-4d57-9143-b296f57e7310" />
      </body>
      <title>70-554 Section I Part I</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,f46c3bec-a4b2-4d57-9143-b296f57e7310.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,f46c3bec-a4b2-4d57-9143-b296f57e7310.aspx</link>
      <pubDate>Tue, 07 Mar 2006 20:16:16 GMT</pubDate>
      <description>&lt;p class=Subtitle&gt;
&lt;font size=2&gt;&lt;a href="http://www.microsoft.com/learning/exams/70-554.asp"&gt;UPGRADE:
MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft
.NET Framework: Part 2&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=Subtitle&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure SOAP messages. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the formatting of SOAP messages for a Web service
method. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Specify the basic information for a Web service application. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Specify the bindings of a Web service application by using
the WebServiceBindingAttribute attribute. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a Web service application by using a Machine.config
file. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a Web service application by using a Web.config
file.&lt;/font&gt; &lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/dkwy2d72.aspx"&gt;MSDN has a section &lt;/a&gt;on
formatting SOAP messages.&amp;nbsp; Know about the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebservicesprotocolssoapdocumentmethodattributeclasstopic.asp"&gt;SoapDocumentMethod&lt;/a&gt;&amp;nbsp;attribute
and &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebservicesprotocolssoapdocumentserviceattributeclasstopic.asp"&gt;SoapDocumentService &lt;/a&gt;attribute.&amp;nbsp;
Know that you can control the &lt;a href="http://msdn2.microsoft.com/en-us/library/thhybys2(VS.80).aspx"&gt;formatting
using XML Serializatio&lt;/a&gt;n attributes.
&lt;/p&gt;
&lt;p&gt;
I guess the basic information for a web service application would be specified using
the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.services.webserviceattribute(VS.80).aspx"&gt;WebService &lt;/a&gt;attribute.&amp;nbsp;
You can control the name of the web service, and the namespace.
&lt;/p&gt;
&lt;p&gt;
Binding defines a concrete set of operations.&amp;nbsp; It is implemented by the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.services.webservicebindingattribute(VS.80).aspx"&gt;WebServiceBinding &lt;/a&gt;attribute.&amp;nbsp;
You can specify what WSI spec your service conforms to (as of now, Basic Profile 1.1
or none), whether or not the service emits conformance claims, the location of the
binding (defaults to your web service), and the namespace associated with the binding.&amp;nbsp; &lt;a href="http://weblogs.asp.net/cweyer/archive/2004/09/14/229286.aspx"&gt;Christian
Weyer has some thoughts&lt;/a&gt; about the attribute on his blog.
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://www.xmlwebservices.cc/index_FAQ.htm"&gt;XML Web Services repository &lt;/a&gt;has
a good FAQ.&amp;nbsp; In in, some of the things controlled by the web/machine.config are
pointed out.&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/ms242494.aspx"&gt;Here's
how to enable/disable&lt;/a&gt; WSDL generation.&amp;nbsp; Also you can &lt;a href="http://www.codeproject.com/soap/wsdldynamicurl.asp"&gt;control
the location of a dynamic reference &lt;/a&gt;to a web service in the config file.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=f46c3bec-a4b2-4d57-9143-b296f57e7310" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,f46c3bec-a4b2-4d57-9143-b296f57e7310.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=a63283ad-5864-476a-a49a-4003da544e53</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,a63283ad-5864-476a-a49a-4003da544e53.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,a63283ad-5864-476a-a49a-4003da544e53.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a63283ad-5864-476a-a49a-4003da544e53</wfw:commentRss>
      <title>70-442 - Part III - Libraries</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,a63283ad-5864-476a-a49a-4003da544e53.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,a63283ad-5864-476a-a49a-4003da544e53.aspx</link>
      <pubDate>Thu, 02 Mar 2006 13:43:43 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=82e07495-2b27-4266-ac80-a4efa8177c25&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2flearning%2fexams%2f70-442.asp" ?&gt;&lt;font color=#003399&gt;PRO:
Designing and Optimizing Data Access by Using Microsoft SQL Server 2005&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Design client libraries to write applications that administer
a SQL Server service. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Design server management objects (SMO) applications. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Design replication management objects (RMO) applications. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Design automation management objects (AMO) applications. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Design SQL Server Networking Interface (SNI) for asynchronous
queries. &lt;/font&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms162169.aspx"&gt;Here's
MSDN's section&lt;/a&gt; on SMO.&amp;nbsp; Darshan Singh has an &lt;a href="http://www.yukonxml.com/articles/smo/"&gt;overview
of SMO at YukonXML.com&lt;/a&gt;.&amp;nbsp; &lt;a href="http://davidhayden.com/blog/dave/archive/2006/01/27/2775.aspx"&gt;David
Hayden has an example&lt;/a&gt; of how to create a table using SMO.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;MSDN's &lt;a href="http://msdn2.microsoft.com/en-us/library/ms148076.aspx"&gt;section
on RMO&lt;/a&gt;.&amp;nbsp; There is not a lot of community activity in respects to RMO.&amp;nbsp;
Here's my take.&amp;nbsp; Probably good to know how to create a publication (EnabledTransPublishing
on &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.replication.replicationdatabase(SQL.90).aspx"&gt;ReplicationDatabase&lt;/a&gt;,&amp;nbsp;Create
a &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.replication.replicationdatabase(SQL.90).aspx"&gt;TransPublication &lt;/a&gt;object),&amp;nbsp;create
a subscription (&lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.replication.transpullsubscription(SQL.90).aspx"&gt;TransPullSubscription&lt;/a&gt;,
or &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.replication.transsubscription(SQL.90).aspx"&gt;TransSubscription&lt;/a&gt;),
how to cause a syncronization (&lt;a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl01','ctl00_LibFrame_MainContent_ctl12',this);" href="http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.replication.transsynchronizationagent.aspx"&gt;TransSynchronizationAgent&lt;/a&gt;).&amp;nbsp;
Keep in mind I've never use these objects, these are the ones that strike me as important.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;It appears that AMO&amp;nbsp;really means&amp;nbsp;Analysis Management
Objects.&amp;nbsp; There appears to be no reference anywhere to "automation management
objects" anywhere.&amp;nbsp; Here's &lt;a href="http://msdn2.microsoft.com/en-us/library/ms124924.aspx"&gt;MSDN's
section on AMO&lt;/a&gt;.&amp;nbsp; &lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/06/AMO/default.aspx"&gt;Liu
Tang and Paul Bradley wrote a overview &lt;/a&gt;for MSDN magazine.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;SNI For Async?&amp;nbsp; It looks like SNI is used for tracing.&amp;nbsp;
Here's an &lt;a href="http://msdn2.microsoft.com/en-us/library/ms172144.aspx"&gt;article
at MSDN &lt;/a&gt;that mentions SNI.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;em&gt;Next up-&amp;gt; MARS&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=a63283ad-5864-476a-a49a-4003da544e53" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,a63283ad-5864-476a-a49a-4003da544e53.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=f457e36d-4c82-4b24-bb30-c53da3b8285b</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,f457e36d-4c82-4b24-bb30-c53da3b8285b.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,f457e36d-4c82-4b24-bb30-c53da3b8285b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=f457e36d-4c82-4b24-bb30-c53da3b8285b</wfw:commentRss>
      <title>70-442 - Part II - Caching</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,f457e36d-4c82-4b24-bb30-c53da3b8285b.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,f457e36d-4c82-4b24-bb30-c53da3b8285b.aspx</link>
      <pubDate>Thu, 02 Mar 2006 13:07:33 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=82e07495-2b27-4266-ac80-a4efa8177c25&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2flearning%2fexams%2f70-442.asp" ?&gt;&lt;font color=#003399&gt;PRO:
Designing and Optimizing Data Access by Using Microsoft SQL Server 2005&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Design caching strategies. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Select ADO.NET caching. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Design custom caching functionality. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Design a refresh strategy for cached data.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
ADO.NET doesn't have a cache.&amp;nbsp; ASP.NET does.&amp;nbsp; ADO.NET&amp;nbsp;retrieves results
into objects like DataSets that can be cached in the ASP.NET cache or your own Cache
app.
&lt;/p&gt;
&lt;p&gt;
Designing your caching functionality seems like a lot of work.&amp;nbsp; You have to manage
the size of the cache, object expiration, object invalidation.&amp;nbsp; I use the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/EntLib2.asp"&gt;Enterprise
library &lt;/a&gt;and that provides a lot of the plumbing.
&lt;/p&gt;
&lt;p&gt;
Refreshing cached data is done using Query Notifications via the SqlDependency or
SqlNotificationRequest objects.&amp;nbsp; There is a good &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/querynotification.asp"&gt;article
on MSDN&lt;/a&gt; outlining how to set this up.&amp;nbsp; &lt;a href="http://aspadvice.com/blogs/ssmith/archive/2005/08/26/1911.aspx"&gt;Steve
Smith mentions the changes&lt;/a&gt; that have occured since Beta 2 on his blog.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt;Client Libraries&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=f457e36d-4c82-4b24-bb30-c53da3b8285b" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,f457e36d-4c82-4b24-bb30-c53da3b8285b.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=82e07495-2b27-4266-ac80-a4efa8177c25</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,82e07495-2b27-4266-ac80-a4efa8177c25.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,82e07495-2b27-4266-ac80-a4efa8177c25.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=82e07495-2b27-4266-ac80-a4efa8177c25</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p class="Subtitle">
          <a href="http://www.microsoft.com/learning/exams/70-442.asp">PRO: Designing and Optimizing
Data Access by Using Microsoft SQL Server 2005</a>
        </p>
        <p class="Subtitle">
          <em>
            <font color="#a9a9a9">Design appropriate data access technologies.</font>
          </em>
        </p>
        <p class="Subtitle">
          <em>
            <font color="#a9a9a9">Design an appropriate data access object model.</font>
          </em>
        </p>
        <p class="Subtitle">
          <em>
            <font color="#a9a9a9">Design a cursor strategy for a data access component. </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Decide when to use cursors. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Decide how to maximize cursor performance. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Detect which applications are using cursors and evaluate
whether to remove them.</font>
            </em>
          </li>
        </ul>
        <p>
I just looked at my testing schedule and realized I'm taking this test in two days. 
Time to get cramming...
</p>
        <p>
The first two items are kind of vague.  I don't think there's much to be said
there.
</p>
        <p>
My cursor strategy is... don't use them.  However it appears there are times
when it is faster.  <a href="http://sqlservercentral.com/cs/blogs/amachanic/archive/2006/02/28/508.aspx">Andy
Machanic </a>has found that they solve the running sum problem much faster than traditional
relational methods.  However he found using CLR worked much better.
</p>
        <p>
Maximizing performance would be centered around opening it as FAST_FORWARD.
</p>
        <p>
There's a couple of ways that I can think of to detect whether or not an "app" is
using cursors.  You can scan through the system tables(sys.procedure) looking
for the word OPEN CURSOR.  That won't work if a) the stored procs are encrypted,
b) the stored procs utilize CLR, or c) the app uses dynamic SQL. The best option
would be to profile the database, looking for cursor events.
</p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=82e07495-2b27-4266-ac80-a4efa8177c25" />
      </body>
      <title>70-442 - Part I - Efficient Access</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,82e07495-2b27-4266-ac80-a4efa8177c25.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,82e07495-2b27-4266-ac80-a4efa8177c25.aspx</link>
      <pubDate>Thu, 02 Mar 2006 00:28:08 GMT</pubDate>
      <description>&lt;p class=Subtitle&gt;
&lt;a href="http://www.microsoft.com/learning/exams/70-442.asp"&gt;PRO: Designing and Optimizing
Data Access by Using Microsoft SQL Server 2005&lt;/a&gt;
&lt;/p&gt;
&lt;p class=Subtitle&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Design appropriate data access technologies.&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p class=Subtitle&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Design an appropriate data access object model.&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p class=Subtitle&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Design a cursor strategy for a data access component. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Decide when to use cursors. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Decide how to maximize cursor performance. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Detect which applications are using cursors and evaluate whether
to remove them.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I just looked at my testing schedule and realized I'm taking this test in two days.&amp;nbsp;
Time to get cramming...
&lt;/p&gt;
&lt;p&gt;
The first two items are kind of vague.&amp;nbsp; I don't think there's much to be said
there.
&lt;/p&gt;
&lt;p&gt;
My cursor strategy is... don't use them.&amp;nbsp; However it appears there are times
when it is faster.&amp;nbsp; &lt;a href="http://sqlservercentral.com/cs/blogs/amachanic/archive/2006/02/28/508.aspx"&gt;Andy
Machanic &lt;/a&gt;has found that they solve the running sum problem much faster than traditional
relational methods.&amp;nbsp; However he found using CLR worked much better.
&lt;/p&gt;
&lt;p&gt;
Maximizing performance would be centered around opening it as FAST_FORWARD.
&lt;/p&gt;
&lt;p&gt;
There's a couple of ways that I can think of to detect whether or not an "app" is
using cursors.&amp;nbsp; You can scan through the system tables(sys.procedure) looking
for the word OPEN CURSOR.&amp;nbsp; That won't work if a) the stored procs are encrypted,
b) the stored procs utilize CLR, or c) the app uses dynamic SQL.&amp;nbsp;The best option
would be to profile the database, looking for cursor events.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=82e07495-2b27-4266-ac80-a4efa8177c25" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,82e07495-2b27-4266-ac80-a4efa8177c25.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=eb5d33e5-967d-4f46-8fd1-0276367c6d1b</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,eb5d33e5-967d-4f46-8fd1-0276367c6d1b.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,eb5d33e5-967d-4f46-8fd1-0276367c6d1b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=eb5d33e5-967d-4f46-8fd1-0276367c6d1b</wfw:commentRss>
      <title>70-551 Section II Part VIII - Publishing, Health, and Caching</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,eb5d33e5-967d-4f46-8fd1-0276367c6d1b.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,eb5d33e5-967d-4f46-8fd1-0276367c6d1b.aspx</link>
      <pubDate>Wed, 01 Mar 2006 19:40:22 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=b0d09ed7-834c-4525-9b5b-44f092f59ebb&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3d7030c943-0bfa-4fb4-bf8b-c6432b57c436%26url%3dhttp%253a%252f%252fblog.denoncourtassociates.com%252fct.ashx%253fid%253d345c0abc-9aa2-4829-9f25-87f4ae3bd04d%2526url%253dhttp%25253a%25252f%25252fblog.denoncourtassociates.com%25252fct.ashx%25253fid%25253dcad3f038-76e6-4860-aab5-591c1c2c0e0e%252526url%25253dhttp%2525253a%2525252f%2525252fblog.denoncourtassociates.com%2525252fct.ashx%2525253fid%2525253d0649a46c-07a8-433d-83f6-132b5c44455f%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.microsoft.com%252525252flearning%252525252fexams%252525252f70-551.asp" ?&gt;&lt;font color=#000000&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;font color=#003399&gt; &lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Copy a Web application to a target server by using the Copy
Web tool.&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Precompile a Web application by using the Publish Web tool.&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Optimize and troubleshoot a Web application. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Customize event-level analysis by using the ASP.NET health-monitoring
API. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use performance counters to track the execution of an application. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Troubleshoot a Web application by using ASP.NET tracing. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Optimize performance by using the ASP.NET Cache object.&lt;/em&gt; &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The Copy Web Tool allows you to copy your website from your machine to another machine.&amp;nbsp;
It can connect to a remote machine through http (using Frontpage extensions), FTP.&amp;nbsp;
It can also deploy to your local IIS machine, or your file system.&amp;nbsp; It does a
bi directional sync, meaning changes from your machine are uploaded to the server
and changes from the server are downloaded to your machine.
&lt;/p&gt;
&lt;p&gt;
The Publish web tool allows you to precompile your website.&amp;nbsp; You can then deploy
the website without the accompanying source code.&amp;nbsp; You publish to either a local
file path, ftp or http.&amp;nbsp; If you select the "Allow this precompiled site to be
updateable" option, the HTML is not compiled into the assembly.&amp;nbsp; If you select
the "Use fixed naming and single page assemblies" option, you will get an assembly
for each page.&amp;nbsp; Skins and Themes are still compiled into a single assembly.&amp;nbsp;
The last option available to you is whether or not you want to strongly name the assemblies.
&lt;/p&gt;
&lt;p&gt;
In the last section of &lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/02/WickedCode/"&gt;this
MSDN article, Jeff Prosise &lt;/a&gt;describes the health monitoring API.&amp;nbsp; There is
also a &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/paght000011.asp"&gt;Patterns
and Practices article describing best uses &lt;/a&gt;of the feature.
&lt;/p&gt;
&lt;p&gt;
There are quite a few performance counters.&amp;nbsp; Look (in perfmon) under ASP .NET
Apps v2.0.50727 .&amp;nbsp; Counters that look interesting to watch are Anonymous Requests
/ Sec, Error Events Raised / Sec, Request Execution Time, Request Wait Time, Requests
Executing,&amp;nbsp; Requests / Sec, Sessions Total.
&lt;/p&gt;
&lt;p&gt;
To get tracing information from an ASP.NET application, you still have to enable tracing
in the web.config file.&amp;nbsp; You request &lt;a href="http://localhost/myapp/trace.axd"&gt;http://localhost/myapp/trace.axd&lt;/a&gt; to
view the trace logs.&amp;nbsp; There is an &lt;a href="http://www.extremeexperts.com/Net/Articles/TracingEnhancementsinASPNET2.aspx"&gt;article
at ExtremeExperts.com&lt;/a&gt; on the new tracing features.
&lt;/p&gt;
&lt;p&gt;
Thiru Thangarathinam has a overview of the new &lt;a href="http://www.15seconds.com/issue/040518.htm"&gt;caching
features at 15seconds.com&lt;/a&gt;.&amp;nbsp; Important changes appear to be the SqlCacheDependency.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt;Master Pages&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=eb5d33e5-967d-4f46-8fd1-0276367c6d1b" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,eb5d33e5-967d-4f46-8fd1-0276367c6d1b.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=b0d09ed7-834c-4525-9b5b-44f092f59ebb</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,b0d09ed7-834c-4525-9b5b-44f092f59ebb.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,b0d09ed7-834c-4525-9b5b-44f092f59ebb.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b0d09ed7-834c-4525-9b5b-44f092f59ebb</wfw:commentRss>
      <title>70-551 - Section II Part VII - Web User Controls</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,b0d09ed7-834c-4525-9b5b-44f092f59ebb.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,b0d09ed7-834c-4525-9b5b-44f092f59ebb.aspx</link>
      <pubDate>Mon, 27 Feb 2006 19:33:43 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=7030c943-0bfa-4fb4-bf8b-c6432b57c436&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3d345c0abc-9aa2-4829-9f25-87f4ae3bd04d%26url%3dhttp%253a%252f%252fblog.denoncourtassociates.com%252fct.ashx%253fid%253dcad3f038-76e6-4860-aab5-591c1c2c0e0e%2526url%253dhttp%25253a%25252f%25252fblog.denoncourtassociates.com%25252fct.ashx%25253fid%25253d0649a46c-07a8-433d-83f6-132b5c44455f%252526url%25253dhttp%2525253a%2525252f%2525252fwww.microsoft.com%2525252flearning%2525252fexams%2525252f70-551.asp" ?&gt;&lt;font color=#000000&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;font color=#003399&gt; &lt;/font&gt;&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a composite Web application control. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a user control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Convert a Web Forms page to a user control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Include a user control in a Web Forms page. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Manipulate user control properties. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Handle user control events within the user control code-declaration
block or code-behind file. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create instances of user controls programmatically. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Develop user controls in a code-behind file. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a templated user control.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Add New Item-&amp;gt;Web User Control.
&lt;/p&gt;
&lt;p&gt;
There is an &lt;a href="http://msdn2.microsoft.com/en-us/library/2x6sx01c.aspx"&gt;article
on MSDN&lt;/a&gt; on how to convert a page to a user control.&amp;nbsp; It's a little easier
than in 1.1 if you are using single-file pages.&amp;nbsp; Rename to .ascx, change @Page
to @Control. Remove HTML, Body and Form tags from the HTML Code.
&lt;/p&gt;
&lt;p&gt;
There is also an &lt;a href="http://msdn2.microsoft.com/en-us/library/sbz9etab.aspx"&gt;article
on MSDN&lt;/a&gt; on how to include user controls in a page.&amp;nbsp; Add a Register directive
to the top of the page, specifying a prefix, tagname and a relative URL to the user
control.&amp;nbsp; You can also now drag the user control from your project onto the page
and it will wire it up.
&lt;/p&gt;
&lt;p&gt;
You manipulate&amp;nbsp;a user control as you would any other control, through a member
variable of the page.
&lt;/p&gt;
&lt;p&gt;
To handle a user control event within the user control code declaration block, you
add it the event as an attribute to the tag.&amp;nbsp; Here is an example of a usercontrol
that has an event named TextStringChanged.&lt;font color=#0000ff size=2&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;lt;&gt;&lt;font color=#800000 size=2&gt;uc1&lt;/font&gt;&lt;font color=#0000ff size=2&gt;:&lt;/font&gt;&lt;font color=#800000 size=2&gt;MyUserControl&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;ID&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="MyUserControl1"&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;runat&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="server"&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;TextString&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="Phil
was here"&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;OnTextStringChanged&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="TextStringChanged"/&amp;gt;
&lt;/p&gt;
&gt; 
&lt;p&gt;
To handle it in the code-behind file, you treat it like a event on any other type
of control.&amp;nbsp; Add a event handler delegate to the event.
&lt;/p&gt;
&lt;p&gt;
To programatically create a usercontrol, use the LoadControl method of the Page.&amp;nbsp;
That returns a reference to a new instance of the user control.&amp;nbsp; Then you must
add it to a controls collection in order for it to appear on a page.
&lt;/p&gt;
&lt;p&gt;
Creating templated usercontrols sounds tricky, but it's not that bad.&amp;nbsp; Try the &lt;a href="http://msdn2.microsoft.com/en-us/library/36574bf6(VS.80).aspx"&gt;walkthough
on MSDN&lt;/a&gt; .
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt;Copy / Publish Web tool&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=b0d09ed7-834c-4525-9b5b-44f092f59ebb" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,b0d09ed7-834c-4525-9b5b-44f092f59ebb.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=7030c943-0bfa-4fb4-bf8b-c6432b57c436</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,7030c943-0bfa-4fb4-bf8b-c6432b57c436.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,7030c943-0bfa-4fb4-bf8b-c6432b57c436.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7030c943-0bfa-4fb4-bf8b-c6432b57c436</wfw:commentRss>
      <title>70-551 Section II Part VI - Data access</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,7030c943-0bfa-4fb4-bf8b-c6432b57c436.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,7030c943-0bfa-4fb4-bf8b-c6432b57c436.aspx</link>
      <pubDate>Sun, 26 Feb 2006 18:15:49 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=345c0abc-9aa2-4829-9f25-87f4ae3bd04d&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3dcad3f038-76e6-4860-aab5-591c1c2c0e0e%26url%3dhttp%253a%252f%252fblog.denoncourtassociates.com%252fct.ashx%253fid%253d0649a46c-07a8-433d-83f6-132b5c44455f%2526url%253dhttp%25253a%25252f%25252fwww.microsoft.com%25252flearning%25252fexams%25252f70-551.asp" ?&gt;&lt;font color=#000000&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;font color=#003399&gt; &lt;/font&gt;&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create, delete, and edit data in a connected environment. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Retrieve data by using a DataReader object. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Build SQL commands visually in Server Explorer. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Build SQL commands in code. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create parameters for a command object. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Perform database operations by using a command object. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Retrieve data from a database by using a command object. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Perform asynchronous operations by using a command object. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Perform bulk copy operations to copy data to a SQL Server
computer. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Store and retrieve binary large object (BLOB) data types in
a database.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
To use a DataReader, you create a command object, open the associated connection,
and call the ExecuteDataReader method.
&lt;/p&gt;
&lt;p&gt;
To build SQL Commands visually in Server Explorer, right click on the Database in
the Server Explorer and select "New Query".
&lt;/p&gt;
&lt;p&gt;
To build SQL Commands in code, you create a SQLCommand instance, set the commandtext
property with the SQL Statement, add parameter objects to the parameters collection,
and associate a connection to the command object.
&lt;/p&gt;
&lt;p&gt;
Creating parameters is done by creating SqlParameter objects, setting the name, dbtype
and value, and append to the command's parameters collection.
&lt;/p&gt;
&lt;p&gt;
To perform database operations using a command object, invoke the ExecuteNonQuery
method.&amp;nbsp; It executes the SQL statement of the command object and returns the
number of rows affected.
&lt;/p&gt;
&lt;p&gt;
To retrieve data using a command object, you can call the ExecuteDataReader, ExecuteScalar,
or ExecuteXMLReader methods.
&lt;/p&gt;
&lt;p&gt;
The command object now supports async operations.&amp;nbsp; There are BeginExecuteNonQuery,
BeginExecuteDataReader, or BeginExecuteXmlReader methods.&amp;nbsp; Vishnu Prasad has
a &lt;a href="http://www.devx.com/dotnet/Article/22358/0/page/1"&gt;writeup on this at DevX&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
They've added managed support for SQL Bulk Copies in the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy(VS.80).aspx"&gt;SqlBulkCopy&lt;/a&gt; class.&amp;nbsp; &lt;a href="http://davidhayden.com/blog/dave/archive/2006/01/13/2692.aspx"&gt;David
Hayden has an example&lt;/a&gt; of how to use this class.
&lt;/p&gt;
&lt;p&gt;
Working with Blobs isn't as hard as it used to be.&amp;nbsp; You just set the parameter's
dbtype to SqlString and assign the large string to the parameter's value property.&amp;nbsp;
No AppendChuck, GetChunk.&amp;nbsp; There is another &lt;a href="http://thinkingms.com/vadivel/Importing+Images+As+BLOB+Into+SQL+Server+2005.aspx"&gt;method
that I found interesting from Vadivel's&lt;/a&gt; blog.&amp;nbsp; I don't think that will be
on the test.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt; Composite Web Controls&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=7030c943-0bfa-4fb4-bf8b-c6432b57c436" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,7030c943-0bfa-4fb4-bf8b-c6432b57c436.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=345c0abc-9aa2-4829-9f25-87f4ae3bd04d</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,345c0abc-9aa2-4829-9f25-87f4ae3bd04d.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,345c0abc-9aa2-4829-9f25-87f4ae3bd04d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=345c0abc-9aa2-4829-9f25-87f4ae3bd04d</wfw:commentRss>
      <title>70-551 Section II Part V - Database Connections</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,345c0abc-9aa2-4829-9f25-87f4ae3bd04d.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,345c0abc-9aa2-4829-9f25-87f4ae3bd04d.aspx</link>
      <pubDate>Sun, 26 Feb 2006 17:34:24 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=cad3f038-76e6-4860-aab5-591c1c2c0e0e&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3d0649a46c-07a8-433d-83f6-132b5c44455f%26url%3dhttp%253a%252f%252fwww.microsoft.com%252flearning%252fexams%252f70-551.asp" ?&gt;&lt;font color=#000000&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;font color=#003399&gt; &lt;/font&gt;&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Manage connections and transactions of databases. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a connection to a database graphically by using
the Connection Wizard. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a connection by using Server Explorer. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a connection to a database by using the connection
class. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Connect to a database by using specific database connection
objects. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Enumerate through instances of Microsoft SQL Server by using
the DbProviderFactories.GetFactoryClasses method. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Open a connection by using the Open method of a connection
object. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Close a connection by using the connection object. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Secure a connection to protect access to your data source. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a connection designed for reuse in a connection pool. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Control connection pooling by configuring ConnectionString
values based on database type. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use connection events to detect database information. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Handle connection exceptions when connecting to a database. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Perform transactions by using the ADO.NET Transaction object.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Again, I still haven't found a "Connection Wizard".&amp;nbsp; Referring to my earlier &lt;a href="http://blog.denoncourtassociates.com/PermaLink,guid,90b50de5-f08a-41af-9da7-2202ceb76f4f.aspx"&gt;post&lt;/a&gt;,
There is a Data Source Configuration Wizard.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
To configure a connection in the server explorer, right click on Data Connections
node, and select Add New Connection.
&lt;/p&gt;
&lt;p&gt;
Also, there is no Connection class.&amp;nbsp; There are a few objects that have a Connection
property.&amp;nbsp; There are classes that implement IDbConnection, but strictly speaking,
(unless we talking about sharepoint) there is no Connection class.&amp;nbsp; However,
if you have a class that implements IDbConnection (SqlConnection, OleDbConnection...),
you configure it using the ConnectionString property.
&lt;/p&gt;
&lt;p&gt;
To connect to a SQL Server database, use the SqlConnection object.&amp;nbsp; Call the
Open method after setting the connection string.
&lt;/p&gt;
&lt;p&gt;
Alex Homer has an example of how to use &lt;a href="http://www.devx.com/dotnet/Article/27297/0/page/1"&gt;DbProviderFactories.GetFactoryClasses
at Devx.com&lt;/a&gt;.&amp;nbsp; It returns a datatable of all the classes that registered as
DbProviderFactories in the machine.config.
&lt;/p&gt;
&lt;p&gt;
To close the connection, invoke the close method on the connection object.&amp;nbsp; Obviously,
an exception will be thrown if the connection is no longer open.&amp;nbsp; You can inspect
the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.state(VS.80).aspx"&gt;state &lt;/a&gt;property
to see if the connection is still active.
&lt;/p&gt;
&lt;p&gt;
To protect Datasource information, you're supposed to put the ConnectionStrings in
the ConnectionStrings section of the web.config.&amp;nbsp; Then you encrypt the contents
using the &lt;a href="http://davidhayden.com/blog/dave/archive/2005/11/17/2572.aspx"&gt;method
outlined by David Hayden's site&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
To create a connection that will stay in a pool, make sure your connections are connecting
to the database with the same login.&amp;nbsp; Reportedly having minor differences in
the connection string will cause it not to pool.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
There is information about &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx"&gt;controlling
connection pooling at MSDN &lt;/a&gt;via ConnectionString values.
&lt;/p&gt;
&lt;p&gt;
There are two events worth listening to on a SqlConnection.&amp;nbsp; &lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=90b50de5-f08a-41af-9da7-2202ceb76f4f&amp;amp;url=http%3a%2f%2fmsdn2.microsoft.com%2fen-us%2flibrary%2fsystem.data.sqlclient.sqlconnection.infomessage.aspx" ?&gt;&lt;font color=#003399&gt;InfoMessage &lt;/font&gt;&lt;/a&gt;(fired
when warnings or informational messages are returned by SQL Server), and &lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=90b50de5-f08a-41af-9da7-2202ceb76f4f&amp;amp;url=http%3a%2f%2fmsdn2.microsoft.com%2fen-us%2flibrary%2fsystem.data.common.dbconnection.statechange.aspx" ?&gt;&lt;font color=#003399&gt;StateChanged&lt;/font&gt;&lt;/a&gt;&amp;nbsp;(fired
when the state of the connection has changed).
&lt;/p&gt;
&lt;p&gt;
To&amp;nbsp;handle exceptions when connecting to a database, catch SqlException (if SQL
rejected the connection), or InvalidOperationException (The connection was already
opened, or you haven't given the connection object enough info.)
&lt;/p&gt;
&lt;p&gt;
To Begin a transaction on an open connection, call the BeginTransaction method on
the SqlConnection object.&amp;nbsp; That returns a transaction object that you control
the Commit or Rollback with.&amp;nbsp; There is a new &lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=90b50de5-f08a-41af-9da7-2202ceb76f4f&amp;amp;url=http%3a%2f%2fmsdn2.microsoft.com%2fen-us%2flibrary%2ftcbchxcb.aspx" ?&gt;&lt;font color=#003399&gt;locking
level, snapshot isolation &lt;/font&gt;&lt;/a&gt;which bears understanding.
&lt;/p&gt;
&lt;p&gt;
There is also a new Systems.Transaction namespace.&amp;nbsp; This is used for distributed
transactions.&amp;nbsp; &lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=90b50de5-f08a-41af-9da7-2202ceb76f4f&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fmsdnmag%2fissues%2f05%2f02%2fDataPoints%2fdefault.aspx" ?&gt;&lt;font color=#003399&gt;John
Papa has a writeup on MSDN &lt;/font&gt;&lt;/a&gt;covering the feature.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt; Data objects&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=345c0abc-9aa2-4829-9f25-87f4ae3bd04d" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,345c0abc-9aa2-4829-9f25-87f4ae3bd04d.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=0668e1b3-e8de-4ff2-8600-c0e73f55831a</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,0668e1b3-e8de-4ff2-8600-c0e73f55831a.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,0668e1b3-e8de-4ff2-8600-c0e73f55831a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=0668e1b3-e8de-4ff2-8600-c0e73f55831a</wfw:commentRss>
      <title>70-551 - Section II Part IV - Data binding</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,0668e1b3-e8de-4ff2-8600-c0e73f55831a.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,0668e1b3-e8de-4ff2-8600-c0e73f55831a.aspx</link>
      <pubDate>Sun, 26 Feb 2006 17:01:15 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=cad3f038-76e6-4860-aab5-591c1c2c0e0e&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3d0649a46c-07a8-433d-83f6-132b5c44455f%26url%3dhttp%253a%252f%252fwww.microsoft.com%252flearning%252fexams%252f70-551.asp" ?&gt;&lt;font color=#000000&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;font color=#003399&gt; &lt;/font&gt;&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement data-bound controls. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use tabular data source controls to return tabular data. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use hierarchical data source controls to display hierarchical
data. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Display data by using simple data-bound controls. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Display data by using composite data-bound controls. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Display data by using hierarchical data-bound controls. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the FormView control to display the values of a single
table record from a data source.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Tabular data source controls would be the SqlDataSource, AccessDataSource, and ObjectDataSource.&amp;nbsp;
SqlDataReader and AccessDataSources should be self explanatory.&amp;nbsp; The ObjectDatasource
allows the binding of custom business objects, including datasets.&amp;nbsp; &lt;a href="http://gridviewguy.com/ArticleDetails.aspx?articleID=139"&gt;GridViewGuy
has a walkthrough&lt;/a&gt; on using the component on his site.
&lt;/p&gt;
&lt;p&gt;
There are two hierarchical data source controls.&amp;nbsp; SiteMapDataSource, and the
XmlDataSource.&amp;nbsp; The SiteMapDataSource reads SiteMap info from the SiteMapProvider
for the website.&amp;nbsp; It keeps current as the user navigates the website.&amp;nbsp; The
XmlDataSource allows you to bind XML.&amp;nbsp; &lt;a href="http://www.codeproject.com/aspnet/XMLDataSource.asp"&gt;Keyvan
Nayyeri has a tutorial&amp;nbsp;&lt;/a&gt;on the XMLDataSource at CodeProject.
&lt;/p&gt;
&lt;p&gt;
Most web controls can be bound.&amp;nbsp; You should know the difference between Eval
(Readonly data) and Bind(Two way binding; data might be changed).&amp;nbsp; There is an &lt;a href="http://msdn2.microsoft.com/en-us/library/ms178366(VS.80).aspx"&gt;article
at MSDN&lt;/a&gt; on this.
&lt;/p&gt;
&lt;p&gt;
Composite Databound controls are the Gridview, DataList,&amp;nbsp; DetailsView and the
Repeater.&amp;nbsp; Dino Esposito has an &lt;a href="http://msdn.microsoft.com/msdnmag/issues/04/08/GridView/"&gt;article
at MSDN&lt;/a&gt; on the GridView.&amp;nbsp; It's old, but it still applies.&amp;nbsp; &lt;a href="http://www.ondotnet.com/pub/a/dotnet/2003/03/10/datalist.html"&gt;Wei
Meng Lee has an article&lt;/a&gt; on the Datalist.&amp;nbsp; The data reader doesn't seem to
have changed.&amp;nbsp;&amp;nbsp; GridViewGuy has an &lt;a href="http://gridviewguy.com/ArticleDetails.aspx?articleID=147"&gt;article
on the DetailsView&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
To display hierarchical data, you can use the new TreeView.&amp;nbsp; Technically, you
could also use the SiteMapPath or the Menu.&amp;nbsp; &lt;a href="http://www.15seconds.com/issue/041117.htm"&gt;Thiru
Thangarathinam has a very comprehensive article&lt;/a&gt; on binding with this control at
15seconds. 
&lt;/p&gt;
&lt;p&gt;
The FormView is a templated control that works on a record by record basis.&amp;nbsp;
You provide a readonly&amp;nbsp;layout in the ItemTemplate, and a layout for edits in
the&amp;nbsp;EditItemTemplate.&amp;nbsp;There is an &lt;a href="http://www.asp.net/QuickStart/aspnet/doc/ctrlref/data/formview.aspx"&gt;overview
at ASP.NET&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up -&amp;gt; Database Connections&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=0668e1b3-e8de-4ff2-8600-c0e73f55831a" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,0668e1b3-e8de-4ff2-8600-c0e73f55831a.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=cad3f038-76e6-4860-aab5-591c1c2c0e0e</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,cad3f038-76e6-4860-aab5-591c1c2c0e0e.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,cad3f038-76e6-4860-aab5-591c1c2c0e0e.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=cad3f038-76e6-4860-aab5-591c1c2c0e0e</wfw:commentRss>
      <title>70-551 Section II, Part III - Web Applications</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,cad3f038-76e6-4860-aab5-591c1c2c0e0e.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,cad3f038-76e6-4860-aab5-591c1c2c0e0e.aspx</link>
      <pubDate>Fri, 24 Feb 2006 14:43:46 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=0649a46c-07a8-433d-83f6-132b5c44455f&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2flearning%2fexams%2f70-551.asp" ?&gt;&lt;font color=#000000&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;font color=#003399&gt; &lt;/font&gt;&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Program a Web application. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Redirect users to another Web page by using a server-side
method. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Detect browser types in Web Forms. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Ascertain the cause of an unhandled exception at the page
level. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Programmatically access the header of a Web page. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement cross-page postbacks. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Assign focus to a control on a page when the page is displayed. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Avoid performing unnecessary processing on a round trip by
using a page's IsPostBack property. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Access encapsulated page and application context. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Avoid unnecessary client-side redirection by using the HttpServerUtility.Transfer
method. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Avoid round trips by using client-side scripts. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use a page's Async attribute to create a page that has built-in
asynchronous capabilities. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Convert HTML server controls to HTML elements.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
There are two ways to redirect users to another web page.&amp;nbsp; Response.Redirect,
which aborts processing the current page and tells the user's browser to go somewhere
else, Server.Transfer and Server.Execute.&amp;nbsp; There is the PostBackURL property
for button controls, but I consider that client side functionality.&amp;nbsp; &lt;a href="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=688&amp;amp;count=no"&gt;Mike
Pope has a writeup&lt;/a&gt; about the advantages of Server.Transfer vs. PostBackURL.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
To detect the browser type, use the Browser property on the response object.&amp;nbsp;
There are plenty of new properties in the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.httpbrowsercapabilities_members(VS.80).aspx"&gt;HttpBrowserCapabilities &lt;/a&gt;object.&amp;nbsp;Mostly
to support mobile device features.
&lt;/p&gt;
&lt;p&gt;
Unhandled exceptions at the Page level are supposed to be handled in the Error event
of the page.&amp;nbsp; &lt;a href="http://clariusconsulting.net/blogs/vga/archive/2003/06/16/64.aspx"&gt;Victor
Garcia Aprea has an post &lt;/a&gt;on the exceptions to this rule.
&lt;/p&gt;
&lt;p&gt;
To access the header, use the methods on the Response property, AppendHeader (AddHeader
is obsolete) and&amp;nbsp;ClearHeaders methods; Headers property.
&lt;/p&gt;
&lt;p&gt;
Cross page postbacks are a new feature.&amp;nbsp; To make use of the them, set the PostBackURL
property to a different page.&amp;nbsp; There are a few good writeups on this feature.&amp;nbsp; &lt;a href="http://www.odetocode.com/Articles/421.aspx"&gt;Scott
Allen at OdeToCode&lt;/a&gt;, &lt;a href="http://dotnetpakistan.blogspot.com/2005/09/cross-page-postback-features-and.html"&gt;Naveedullah
Khan at DotNetPakistan&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/tinghaoy/archive/2005/12/15/504357.aspx"&gt;Ting-hao
Yang at MSDN&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
To assign focus to a control, set the DefaultFocus&amp;nbsp;attribute of the Form element
to the HTML id of the control to get focus.&amp;nbsp; &lt;a href="http://weblogs.asp.net/scottgu/archive/2005/08/04/421647.aspx"&gt;Scott
Guthrie has a&amp;nbsp;post&lt;/a&gt; on this feature.&amp;nbsp; There is also a Focus method on
controls.
&lt;/p&gt;
&lt;p&gt;
The IsPostBack feature hasn't changed.&amp;nbsp; Understand that when you use Server.Transfer,
IsPostBack in the transferred page is set to the value of the initial page.
&lt;/p&gt;
&lt;p&gt;
The Page and Application objects still exist.&amp;nbsp; The Page has its own Cache for
Page specific information,&amp;nbsp; Application has it's own cache for the entire website.
&lt;/p&gt;
&lt;p&gt;
To avoid round trips using client side script, you can either use the Validation controls,
or write your own script, registering it by calling RegisterClientSideScript, RegisterStartupScript,
or RegisterOnSubmitStatement.
&lt;/p&gt;
&lt;p&gt;
The Async feature allows you to send requests to get data.&amp;nbsp; When the data is
returned, you then resume building the page.&amp;nbsp; &lt;a href="http://pluralsight.com/blogs/fritz/archive/2004/10/19/2892.aspx"&gt;Fritz
Onion has a writeup&lt;/a&gt; on the feature.&amp;nbsp; &lt;a href="http://www.dotnetbips.com/articles/displayarticle.aspx?id=489"&gt;Bipin
Joshi also has a good &lt;/a&gt;article.
&lt;/p&gt;
&lt;p&gt;
To convert an HTML Server control back to a plain old HTML element, just remove the
RunAt=Server attribute.&amp;nbsp; Obviously this won't work with Web Controls.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt; Data Bound Controls&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=cad3f038-76e6-4860-aab5-591c1c2c0e0e" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,cad3f038-76e6-4860-aab5-591c1c2c0e0e.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=5a2e21ef-3e2a-4d4f-8517-a168a8df52ef</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,5a2e21ef-3e2a-4d4f-8517-a168a8df52ef.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,5a2e21ef-3e2a-4d4f-8517-a168a8df52ef.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=5a2e21ef-3e2a-4d4f-8517-a168a8df52ef</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <em>
          <font color="#a9a9a9">Configure settings
for a Web application. </font>
        </em>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Configure system-wide settings in the Machine.config file. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure settings for a Web application in the Web.config
file. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Manage a Web application's configuration by using the Web
Site Administration Tool. </font>
            </em>
          </li>
        </ul>
        <p>
You can change the system wide settings by manually editing the machine.config file
in the config subdirectory of the framework or you can change it programatically by
using the Configuration classes.  Same with web.config
</p>
        <p>
There two articles at ExtremeExperts.com that cover configuration.  <a href="http://www.extremeexperts.com/Net/Articles/ConfigurationManagementinASPNET.aspx">Part
1</a> and <a href="http://www.extremeexperts.com/Net/Articles/ConfigurationManagementinASPNETPart2.aspx">Part
2</a></p>
        <p>
The Web Site Administration Tool  <a href="http://dotnetforum.lk/blogs/ludmal/archive/2006/01/19/9305.aspx">Ludmal
has a quick article</a> outlining the feature set
</p>
        <p>
          <em>Next up-&gt;Web Applications</em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=5a2e21ef-3e2a-4d4f-8517-a168a8df52ef" />
      </body>
      <title>70-551 Section II Part II - Configuring Web Applications</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,5a2e21ef-3e2a-4d4f-8517-a168a8df52ef.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,5a2e21ef-3e2a-4d4f-8517-a168a8df52ef.aspx</link>
      <pubDate>Fri, 24 Feb 2006 13:31:06 GMT</pubDate>
      <description>&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure settings for a Web application. &lt;/font&gt;&lt;/em&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure system-wide settings in the Machine.config file. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure settings for a Web application in the Web.config
file. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Manage a Web application's configuration by using the Web
Site Administration Tool. &lt;/font&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
You can change the system wide settings by manually editing the machine.config file
in the config subdirectory of the framework or you can change it programatically by
using the Configuration classes.&amp;nbsp; Same with web.config
&lt;/p&gt;
&lt;p&gt;
There two articles at ExtremeExperts.com that cover configuration.&amp;nbsp; &lt;a href="http://www.extremeexperts.com/Net/Articles/ConfigurationManagementinASPNET.aspx"&gt;Part
1&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.extremeexperts.com/Net/Articles/ConfigurationManagementinASPNETPart2.aspx"&gt;Part
2&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The Web Site Administration Tool&amp;nbsp; &lt;a href="http://dotnetforum.lk/blogs/ludmal/archive/2006/01/19/9305.aspx"&gt;Ludmal
has a quick article&lt;/a&gt; outlining the feature set
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt;Web Applications&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=5a2e21ef-3e2a-4d4f-8517-a168a8df52ef" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,5a2e21ef-3e2a-4d4f-8517-a168a8df52ef.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=0649a46c-07a8-433d-83f6-132b5c44455f</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,0649a46c-07a8-433d-83f6-132b5c44455f.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,0649a46c-07a8-433d-83f6-132b5c44455f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=0649a46c-07a8-433d-83f6-132b5c44455f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.microsoft.com/learning/exams/70-551.asp">
            <font color="#000000">UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework</font>
          </a>
        </p>
        <p>
          <font color="#a9a9a9">
            <em>Add and configure Web server controls.</em>
          </font>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Add Web server controls to a Web Form. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure the properties of Web server controls programmatically. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure Web server control properties by using the Microsoft
Visual Studio Property Editor. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Specify whether events of a control cause a Web Form to
post to the server. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure a control to receive postback events. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Access controls in Web Forms pages when working with naming
containers and child controls. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create HTML server controls in the designer. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Set HTML server control properties programmatically. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Use HTML server controls to programmatically access HTML
tags. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create HTML controls as elements in an HTML document. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Use the AdRotator Web server control to manage banners and
pop-up windows. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Use the Button Web server control to send a command to the
server when a button is clicked. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Display a calendar on a Web page by using the Calendar Web
server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Implement the CheckBox Web server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Implement the FileUpload Web server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create and manipulate links on a Web Form by using the HyperLink
Web server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Display an image on a Web Form by using the Image Web server
control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Implement a button on a Web Form by using the ImageButton
Web server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Define hotspot regions within an image by using the ImageMap
Web server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Use the Label Web server control to display customized text
on a Web page. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Display a hyperlink style button on a Web Form by using
the LinkButton Web server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Display lists of information by using controls that derive
from the ListControl class. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create a Web Form with static text by using the Literal
Web server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Implement pagination for controls on a page by using the
Pager Web server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Use the Panel Web server control to arrange controls in
groups on a page. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create a container for a group of View controls by using
the MultiView Web server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Use the View Web server control to create a Web application. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create a mutually exclusive set of choices by using the
RadioButton Web server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Construct a table by using the Table, TableRow, and TableCell
Web server controls. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Enable users to type information into a Web Form by using
the TextBox Web server control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create a wizard by using the Wizard Web server control to
collect data through multiple steps of a process. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Use the XML Web server control to create XML data at the
location of the control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Customize the appearance of Web server controls by using
Web control templates. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Programmatically edit settings in a Web site's configuration
file. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Dynamically add Web server controls to a Web Forms page. </font>
            </em>
          </li>
        </ul>
        <p>
The first three bullets shouldn't be problematic.  The next two are about setting
the AutoPostback property of web controls.  
</p>
        <p>
To access controls within a naming container, use the FindControl method.  Remember
that FindControl only finds controls within its own Naming Container.
</p>
        <p>
          <font color="#000000">"Create HTML server controls in the designer." and "Set HTML
server control properties programmatically" shouldn't present new challenges.</font>
        </p>
        <p>
          <font color="#000000">To create HTML controls as elements in the HTML document, you
can add the RunAt=Server attribute to existing HTML elements, or you can add elements
at runtime by creating an HtmlGenericControl and adding it to the controls collection.</font>
        </p>
        <p>
          <font color="#000000">The <a href="http://msdn2.microsoft.com/en-us/library/edx4dac3.aspx">AdRotator </a>component
hasn't changed much.  It is now bindable to a database.  As I recall, you
used to have to create an XML file for it to use.  <a href="http://www.dotnetjunkies.com/Tutorial/3F70C875-15E4-4B67-B234-7F79B27C359D.dcik">Doug
Seven has a article </a>on the AdRotator component (based on an older version of the
framework)</font>
        </p>
        <p>
          <font color="#000000">The Button control has a few minor changes.  It has an
OnClientClick property.  You put in javascript code that will execute when the
user clicks the button.  There is also a UseSubmitBehavior, which if set, turns
the button into an HTML submit button.  In addition, there is a PostBackUrl property
which states which page should be loaded when a button causes a postback.  <a href="http://weblogs.asp.net/despos/archive/2005/06/17/413553.aspx">Dino
Esposito has a writeup</a> on some of the complications in using this property. 
Buttons also govern a new feature called ValidationGroups implemented using the ValidationGroup
property.  <a href="http://www.peterblum.com/VAM/DemoGroup.aspx?B=1">Peter Blum
has a writeup </a>explaining the new feature.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1039&amp;count=no">Mike
Pope found what was new</a> with the Calendar control (And most others as well). </font>
        </p>
        <p>
No changes on the CheckBox control except it can be a part of a ValidationGroup.  
</p>
        <p>
The FileUpload control is new, but it is functionally identical to the HtmlInputFile
control.  <a href="http://aspalliance.com/761">Anand Narayanaswany has a quick
tutorial</a> on using the control.
</p>
        <p>
The Hyperlink control hasn't changed.
</p>
        <p>
The image control also hasn't changed significantly except the property that <a href="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1039&amp;count=no">Mike </a>points
out, GenerateEmptyAlternativeText.
</p>
        <p>
The ImageButton has the same changes as the button control.
</p>
        <p>
ImageMap control is brand new.  You define hotspots over a image in different
shapes (Circle, Rectange, Polygon).  With each hotspot, you specify a PostBackValue. 
That is the value that is sent back to the page if you said that postbacks should
occur.  The other option is to have it navigate to a specific URL when the hotspot
is clicked.
</p>
        <p>
The label control hasn't changed much.  Support for skinning is about it.
</p>
        <p>
LinkButton also has the same new properties as the button control.
</p>
        <p>
There are four controls that derive from ListControl: CheckBoxList, DropDownList,
ListBox, and RadioButtonList.  They all support the new data binding model. 
There is a property call AppendDataBoundItems that allows you to add bound items below
items that you've added manually.  That seems to be about it.
</p>
        <p>
The Literal control has a mode property, allowing you to state how to treat the literal:
Encode (The contents are HTML-Encoded), PassThrough (The contents are not touched),
or Transform (Remove unsupported elements for WML or cHTML renderings)
</p>
        <p>
The <a href="http://msdn.microsoft.com/asp.net/beta2/beta2changes.aspx">Pager control</a> was
dropped from the final release.
</p>
        <p>
The Panel control has some improvements.  There is a ScrollBars property that
allows you to specify whether or not content is scrolled within the panel.  There
is a DefaultButton property that specifies which button is depressed when &lt;Enter&gt;
is pressed within the panel.  There is a GroupingText property which is displayed
as a title in the panel.
</p>
        <p>
The MultiView control is a nice new control.  It's purpose is control a collection
of View controls, of which only one can be visible at a time.  <a href="http://aspalliance.com/675">Jason
N. Gaylord has a tutorial</a> on ASP Alliance.
</p>
        <p>
Remember that Views can only be used within a MultiView control.
</p>
        <p>
The Radiobutton control hasn't changed.  Join a Radiobutton to a group using
the GroupName property.  It supports validation groups.
</p>
        <p>
The Table, TableRow, and TableCell controls don't appear to have changed.
</p>
        <p>
The Textbox has support for Autocomplete, that appears to be all I see as changed.
</p>
        <p>
The wizard is a templated control that allows you to create a wizard without having
to worry about the plumbing of the previous/next/finished buttons.  <a href="http://msdn.microsoft.com/msdnmag/issues/04/11/CuttingEdge/">Dino
Esposito has a writeup at MSDN</a> on the control.
</p>
        <p>
The XML Control hasn't changed.  It's used to bring XML back to the client which
can then be transformed into presentable data.
</p>
        <p>
Web control templates?  Maybe they mean skinning.  <a href="http://www.15seconds.com/issue/040105.htm">Thiru
Thangarathinam has a writeup at 15seconds.com</a> about skinning.  To me it seems
they took CSS to the next level.
</p>
        <p>
You would modify the web.config file using the <a href="http://msdn2.microsoft.com/en-us/library/ms228060.aspx">ASP.NET
Configuration API</a>.  Note that the account must have write access to successfully
update the config.
</p>
        <p>
To programmatically add controls to a webpage, just create a new object, add it to
the page's controls collection.  <a href="http://aspnet.4guysfromrolla.com/articles/081402-1.aspx">Scott
Mitchell has a quick overview</a> of how to do this.
</p>
        <p>
          <em>Next up-&gt;Web Application Settings</em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=0649a46c-07a8-433d-83f6-132b5c44455f" />
      </body>
      <title>70-551 Section II Part I - Web Controls</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,0649a46c-07a8-433d-83f6-132b5c44455f.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,0649a46c-07a8-433d-83f6-132b5c44455f.aspx</link>
      <pubDate>Thu, 23 Feb 2006 17:41:57 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.microsoft.com/learning/exams/70-551.asp"&gt;&lt;font color=#000000&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt; &lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Add and configure Web server controls.&lt;/em&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Add Web server controls to a Web Form. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the properties of Web server controls programmatically. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure Web server control properties by using the Microsoft
Visual Studio Property Editor. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Specify whether events of a control cause a Web Form to post
to the server. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a control to receive postback events. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Access controls in Web Forms pages when working with naming
containers and child controls. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create HTML server controls in the designer. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Set HTML server control properties programmatically. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use HTML server controls to programmatically access HTML tags. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create HTML controls as elements in an HTML document. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the AdRotator Web server control to manage banners and
pop-up windows. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the Button Web server control to send a command to the
server when a button is clicked. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Display a calendar on a Web page by using the Calendar Web
server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement the CheckBox Web server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement the FileUpload Web server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create and manipulate links on a Web Form by using the HyperLink
Web server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Display an image on a Web Form by using the Image Web server
control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement a button on a Web Form by using the ImageButton
Web server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Define hotspot regions within an image by using the ImageMap
Web server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the Label Web server control to display customized text
on a Web page. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Display a hyperlink style button on a Web Form by using the
LinkButton Web server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Display lists of information by using controls that derive
from the ListControl class. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a Web Form with static text by using the Literal Web
server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement pagination for controls on a page by using the Pager
Web server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the Panel Web server control to arrange controls in groups
on a page. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a container for a group of View controls by using the
MultiView Web server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the View Web server control to create a Web application. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a mutually exclusive set of choices by using the RadioButton
Web server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Construct a table by using the Table, TableRow, and TableCell
Web server controls. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Enable users to type information into a Web Form by using
the TextBox Web server control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a wizard by using the Wizard Web server control to
collect data through multiple steps of a process. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the XML Web server control to create XML data at the location
of the control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Customize the appearance of Web server controls by using Web
control templates. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Programmatically edit settings in a Web site's configuration
file. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Dynamically add Web server controls to a Web Forms page. &lt;/font&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The first three bullets shouldn't be problematic.&amp;nbsp; The next two are about setting
the AutoPostback property of web controls.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
To access controls within a naming container, use the FindControl method.&amp;nbsp; Remember
that FindControl only finds controls within its own Naming Container.
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;"Create HTML server controls in the designer." and "Set HTML server
control properties programmatically" shouldn't&amp;nbsp;present new challenges.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;To create HTML controls as elements in the HTML document, you
can add the RunAt=Server attribute to existing HTML elements, or you can add elements
at runtime by creating an HtmlGenericControl and adding it to the controls collection.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The &lt;a href="http://msdn2.microsoft.com/en-us/library/edx4dac3.aspx"&gt;AdRotator &lt;/a&gt;component
hasn't changed much.&amp;nbsp; It is now bindable to a database.&amp;nbsp; As I recall, you
used to have to create an XML file for it to use.&amp;nbsp; &lt;a href="http://www.dotnetjunkies.com/Tutorial/3F70C875-15E4-4B67-B234-7F79B27C359D.dcik"&gt;Doug
Seven has a article &lt;/a&gt;on the AdRotator component (based on an older version of the
framework)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The Button control has a few minor changes.&amp;nbsp; It has an OnClientClick
property.&amp;nbsp; You put in javascript code that will execute when the user clicks
the button.&amp;nbsp; There is also a UseSubmitBehavior, which if set, turns the button
into an HTML submit button.&amp;nbsp; In addition, there is a PostBackUrl property which
states which page should be loaded when a button causes a postback.&amp;nbsp; &lt;a href="http://weblogs.asp.net/despos/archive/2005/06/17/413553.aspx"&gt;Dino
Esposito has a writeup&lt;/a&gt; on some of the complications in using this property.&amp;nbsp;
Buttons also govern a new feature called ValidationGroups implemented using the ValidationGroup
property.&amp;nbsp; &lt;a href="http://www.peterblum.com/VAM/DemoGroup.aspx?B=1"&gt;Peter Blum
has a writeup &lt;/a&gt;explaining the new feature.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1039&amp;amp;count=no"&gt;Mike
Pope found what was new&lt;/a&gt; with the Calendar control (And most others as well). &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
No changes on the CheckBox control except it can be a part of a ValidationGroup.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
The FileUpload control is new, but it is functionally identical to the HtmlInputFile
control.&amp;nbsp; &lt;a href="http://aspalliance.com/761"&gt;Anand Narayanaswany has a quick
tutorial&lt;/a&gt; on using the control.
&lt;/p&gt;
&lt;p&gt;
The Hyperlink control hasn't changed.
&lt;/p&gt;
&lt;p&gt;
The image control also hasn't changed significantly except the property that &lt;a href="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1039&amp;amp;count=no"&gt;Mike &lt;/a&gt;points
out, GenerateEmptyAlternativeText.
&lt;/p&gt;
&lt;p&gt;
The ImageButton has the same changes as the button control.
&lt;/p&gt;
&lt;p&gt;
ImageMap control is brand new.&amp;nbsp; You define hotspots over a image in different
shapes (Circle, Rectange, Polygon).&amp;nbsp; With each hotspot, you specify a PostBackValue.&amp;nbsp;
That is the value that is sent back to the page if you said that postbacks should
occur.&amp;nbsp; The other option is to have it navigate to a specific URL when the hotspot
is clicked.
&lt;/p&gt;
&lt;p&gt;
The label control hasn't changed much.&amp;nbsp; Support for skinning is about it.
&lt;/p&gt;
&lt;p&gt;
LinkButton also has the same new properties as the button control.
&lt;/p&gt;
&lt;p&gt;
There are four controls that derive from ListControl: CheckBoxList, DropDownList,
ListBox, and RadioButtonList.&amp;nbsp; They all support the new data binding model.&amp;nbsp;
There is a property call AppendDataBoundItems that allows you to add bound items below
items that you've added manually.&amp;nbsp; That seems to be about it.
&lt;/p&gt;
&lt;p&gt;
The Literal control has a mode property, allowing you to state how to treat the literal:
Encode (The contents are HTML-Encoded), PassThrough (The contents are not touched),
or Transform (Remove&amp;nbsp;unsupported elements for WML or cHTML renderings)
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://msdn.microsoft.com/asp.net/beta2/beta2changes.aspx"&gt;Pager control&lt;/a&gt; was
dropped from the final release.
&lt;/p&gt;
&lt;p&gt;
The Panel control has some improvements.&amp;nbsp; There is a ScrollBars property that
allows you to specify whether or not content is scrolled within the panel.&amp;nbsp; There
is a DefaultButton property that specifies which button is depressed when &amp;lt;Enter&amp;gt;
is pressed within the panel.&amp;nbsp; There is a GroupingText property which is displayed
as a title in the panel.
&lt;/p&gt;
&lt;p&gt;
The MultiView control is a nice new control.&amp;nbsp; It's purpose is control a collection
of View controls, of which only one can be visible at a time.&amp;nbsp; &lt;a href="http://aspalliance.com/675"&gt;Jason
N. Gaylord has a tutorial&lt;/a&gt; on ASP Alliance.
&lt;/p&gt;
&lt;p&gt;
Remember that Views can only be used within a MultiView control.
&lt;/p&gt;
&lt;p&gt;
The Radiobutton control hasn't changed.&amp;nbsp; Join a Radiobutton to a group using
the GroupName property.&amp;nbsp; It supports validation groups.
&lt;/p&gt;
&lt;p&gt;
The Table, TableRow, and TableCell controls don't appear to have changed.
&lt;/p&gt;
&lt;p&gt;
The Textbox has support for Autocomplete, that appears to be all I see as changed.
&lt;/p&gt;
&lt;p&gt;
The wizard is a templated control that allows you to create a wizard without having
to worry about the plumbing of the previous/next/finished buttons.&amp;nbsp; &lt;a href="http://msdn.microsoft.com/msdnmag/issues/04/11/CuttingEdge/"&gt;Dino
Esposito has a writeup at MSDN&lt;/a&gt; on the control.
&lt;/p&gt;
&lt;p&gt;
The XML Control hasn't changed.&amp;nbsp; It's used to bring XML back to the client which
can then be transformed into presentable data.
&lt;/p&gt;
&lt;p&gt;
Web control templates?&amp;nbsp; Maybe they mean skinning.&amp;nbsp; &lt;a href="http://www.15seconds.com/issue/040105.htm"&gt;Thiru
Thangarathinam has a writeup at 15seconds.com&lt;/a&gt; about skinning.&amp;nbsp; To me it seems
they took CSS to the next level.
&lt;/p&gt;
&lt;p&gt;
You would modify the web.config file using the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms228060.aspx"&gt;ASP.NET
Configuration API&lt;/a&gt;.&amp;nbsp; Note that the account must have write access to successfully
update the config.
&lt;/p&gt;
&lt;p&gt;
To programmatically add controls to a webpage, just create a new object, add it to
the page's controls collection.&amp;nbsp; &lt;a href="http://aspnet.4guysfromrolla.com/articles/081402-1.aspx"&gt;Scott
Mitchell has a quick overview&lt;/a&gt; of how to do this.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt;Web Application Settings&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=0649a46c-07a8-433d-83f6-132b5c44455f" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,0649a46c-07a8-433d-83f6-132b5c44455f.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=d0464fce-74ac-40c5-b7f6-d3e9f474aa0a</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,d0464fce-74ac-40c5-b7f6-d3e9f474aa0a.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,d0464fce-74ac-40c5-b7f6-d3e9f474aa0a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d0464fce-74ac-40c5-b7f6-d3e9f474aa0a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font color="#a9a9a9">
            <em>Evaluate the technical feasibility of an application design
concept. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the proof of concept. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Recommend the best technologies for the features and goals
of the application. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Weigh implementation considerations. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Investigate existing solutions for similar business problems. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Create a proof-of-concept prototype. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the risks associated with the proposed technology
or implementation. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Validate that the proposed technology can be used in the
application. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Demonstrate to stakeholders that the proposed solution will
address their needs. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Evaluate the technical specifications for an application
to ensure that the business requirements are met. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Translate the functional specification into developer terminology,
such as pseudo code and UML diagrams. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Suggest component type and layer. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Evaluate the logical design of an application. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the logical design for performance. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the logical design for maintainability. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the logical design for extensibility. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the logical design for scalability. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the logical design for security. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the logical design against use cases. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the logical design for recoverability. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the logical design for data integrity. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Evaluate the physical design of an application. Considerations
include the design of the project structure, the number of files, the number of assemblies,
and the location of these resources on the server. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the physical design for performance. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the physical design for maintainability. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate how the physical location of files affects the
extensibility of the application. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the physical design for scalability. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the physical design for security. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the physical design for recoverability. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the physical design for data integrity. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Choose an appropriate layout for the visual interface. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Decide the content flow within the application. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate user navigation needs. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Identify the goal of the UI. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Ensure the congruency and consistency of the user experience
throughout the application. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Choose techniques to control the layout. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Evaluate a strategy for implementing a common layout throughout
the UI. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Suggest an applicable UI standard based on the application
specification. Considerations include MDI, SDI, control grouping, and so on. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Choose an appropriate control based on design specifications. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the type of data that must be captured or displayed. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate available controls. Considerations include standard
.NET Framework controls and custom, internally developed, and third-party controls. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the manner in which available controls are implemented
in previous and ongoing projects or applications. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the user demographic. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the user environment. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Choose an appropriate data validation method at the UI layer. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Choose a validation method based on the data type provided. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide how to report the feedback. Considerations include
callbacks, exceptions, and writing to an event log. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Identify the source of invalid data. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Identify the cause of an invalid entry. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate whether invalid data can be prevented. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate whether an exception must be thrown. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate whether an exception must be logged. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate whether visual feedback, such as a message box
or color, is required. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Choose appropriate user assistance and application status
feedback techniques. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Design a user assistance mechanism. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Choose an appropriate application status feedback technique
based on available control types. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Choose an appropriate application status feedback technique
to support accessibility. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Design an application status feedback mechanism. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Establish the required characteristics of a component. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Decide when to create a single component or multiple components. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide in which tier of the application a component should
be located. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide which type of object to build. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Create the high-level design of a component. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Establish the life cycle of a component. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide whether to use established design patterns for the
component. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide whether to create a prototype for the component. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Document the design of a component by using pseudo code,
class diagrams, sequence diagrams, activity diagrams, and state diagrams. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate tradeoff decisions. Considerations include security
vs. performance, performance vs. maintainability, and so on. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Develop the public API of a component. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Decide the types of clients that can consume a component. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Establish the required component interfaces. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide whether to require constructor input. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Develop the features of a component. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Decide whether existing functionality can be implemented
or inherited. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide how to handle unmanaged and managed resources. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide which extensibility features are required. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide whether a component must be multithreaded. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide which functions to implement in the base class, abstract
class, or sealed class. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Develop an exception handling mechanism. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Decide when it is appropriate to raise an exception. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide how a component will handle exceptions. Considerations
include catching and throwing a new exception; catching, wrapping, and throwing the
wrapped exception; catching and terminating, and so on.</em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Develop the data access and data handling features of a
component. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Analyze data relationships. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Analyze the data handling requirements of a component. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Develop a component to include profiling requirements. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Identify potential issues, such as resource leaks and performance
gaps, by profiling a component. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide when to stop profiling on a component. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide whether to redesign a component after analyzing the
profiling results. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Consume a reusable software component. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Identify a reusable software component from available components
to meet the requirements. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Identify whether the reusable software component needs to
be extended. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Identify whether the reusable software component needs to
be wrapped. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Identify whether any existing functionality needs to be
hidden. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Test the identified component based on the requirements. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Choose an appropriate exception handling mechanism. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the current exception handling mechanism. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Design a new exception handling technique. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Choose an appropriate implementation approach for the application
design logic. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Choose an appropriate data storage mechanism. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Choose an appropriate data flow structure. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Choose an appropriate decision flow structure. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Choose an appropriate event logging method for the application. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Decide whether to log data. Considerations include policies,
security, requirements, and debugging. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Choose a storage mechanism for logged events. For example,
database, flat file, event log, or XML file. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Choose a systemwide event logging method. For example, centralized
logging, distributed logging, and so on. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide logging levels based upon severity and priority. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Evaluate the application configuration architecture. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Decide which configuration attributes to store. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Choose the physical storage location for the configuration
attributes. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide in which format to store the configuration attributes. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Perform a code review.</em>
          </font>
        </p>
        <p>
          <font color="#a9a9a9">
            <em>Evaluate the testing strategy. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Create the unit testing strategy. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the integration testing strategy. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the stress testing strategy. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the performance testing strategy. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the test environment specification. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Design a unit test. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Describe the testing scenarios. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide coverage requirements. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate when to use boundary condition testing. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Decide the type of assertion tests to conduct. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Perform integration testing. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Determine if the component works as intended in the target
environment. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Identify component interactions and dependencies. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Verify results. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Resolve a bug. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Investigate a reported bug. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Reproduce a bug. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate the impact of the bug and the associated cost and
timeline for fixing the bug. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Fix a bug. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Evaluate the performance of an application based on the
performance analysis strategy. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Identify performance spikes. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Analyze performance trends. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Track logon times. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Analyze the data received when monitoring an application. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Monitor and analyze resource usage. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Monitor and analyze security aspects. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Track bugs that result from customer activity. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Evaluate the deployment plan. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Identify component-level deployment dependencies. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Identify scripting requirements for deployment. Considerations
include database scripting. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Evaluate available deployment methods. </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#a9a9a9">
            <em>Validate the production configuration environment. </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>Verify networking settings </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Verify the deployment environment. </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Verify the deployment environment. </em>
            </font>
          </li>
        </ul>
        <p>
This is nice.  If you can do all this, you should be able to call yourself a
developer.  There's no amount of studying that can help you.  These bullet
items are seeing if you can solve a problem using Microsoft technlogies and juggle
different needs of your customers.  It will be interesting to see how they can
test for this using a series of multiple choice questions.
</p>
        <p>
In order to cover all of this material sufficiently, I'd have to write a book. 
Also, I'm about to take the test in 2 hours, so I need to start reviewing the preivous
material.  After I take the test, I suspect I'll no longer be able to publicly
comment on this test.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=d0464fce-74ac-40c5-b7f6-d3e9f474aa0a" />
      </body>
      <title>70-552 Section III - Developing Applications</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,d0464fce-74ac-40c5-b7f6-d3e9f474aa0a.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,d0464fce-74ac-40c5-b7f6-d3e9f474aa0a.aspx</link>
      <pubDate>Sat, 18 Feb 2006 12:24:05 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the technical feasibility of an application design
concept. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the proof of concept. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Recommend the best technologies for the features and goals
of the application. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Weigh implementation considerations. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Investigate existing solutions for similar business problems. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Create a proof-of-concept prototype. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the risks associated with the proposed technology
or implementation. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Validate that the proposed technology can be used in the application. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Demonstrate to stakeholders that the proposed solution will
address their needs. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the technical specifications for an application to
ensure that the business requirements are met. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Translate the functional specification into developer terminology,
such as pseudo code and UML diagrams. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Suggest component type and layer. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the logical design of an application. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the logical design for performance. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the logical design for maintainability. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the logical design for extensibility. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the logical design for scalability. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the logical design for security. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the logical design against use cases. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the logical design for recoverability. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the logical design for data integrity. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the physical design of an application. Considerations
include the design of the project structure, the number of files, the number of assemblies,
and the location of these resources on the server. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the physical design for performance. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the physical design for maintainability. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate how the physical location of files affects the extensibility
of the application. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the physical design for scalability. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the physical design for security. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the physical design for recoverability. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the physical design for data integrity. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose an appropriate layout for the visual interface. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide the content flow within the application. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate user navigation needs. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify the goal of the UI. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Ensure the congruency and consistency of the user experience
throughout the application. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose techniques to control the layout. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate a strategy for implementing a common layout throughout
the UI. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Suggest an applicable UI standard based on the application
specification. Considerations include MDI, SDI, control grouping, and so on. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose an appropriate control based on design specifications. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the type of data that must be captured or displayed. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate available controls. Considerations include standard
.NET Framework controls and custom, internally developed, and third-party controls. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the manner in which available controls are implemented
in previous and ongoing projects or applications. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the user demographic. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the user environment. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose an appropriate data validation method at the UI layer. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose a validation method based on the data type provided. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide how to report the feedback. Considerations include
callbacks, exceptions, and writing to an event log. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify the source of invalid data. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify the cause of an invalid entry. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate whether invalid data can be prevented. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate whether an exception must be thrown. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate whether an exception must be logged. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate whether visual feedback, such as a message box or
color, is required. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose appropriate user assistance and application status
feedback techniques. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Design a user assistance mechanism. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose an appropriate application status feedback technique
based on available control types. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose an appropriate application status feedback technique
to support accessibility. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Design an application status feedback mechanism. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Establish the required characteristics of a component. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide when to create a single component or multiple components. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide in which tier of the application a component should
be located. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide which type of object to build. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Create the high-level design of a component. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Establish the life cycle of a component. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide whether to use established design patterns for the
component. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide whether to create a prototype for the component. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Document the design of a component by using pseudo code, class
diagrams, sequence diagrams, activity diagrams, and state diagrams. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate tradeoff decisions. Considerations include security
vs. performance, performance vs. maintainability, and so on. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Develop the public API of a component. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide the types of clients that can consume a component. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Establish the required component interfaces. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide whether to require constructor input. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Develop the features of a component. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide whether existing functionality can be implemented or
inherited. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide how to handle unmanaged and managed resources. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide which extensibility features are required. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide whether a component must be multithreaded. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide which functions to implement in the base class, abstract
class, or sealed class. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Develop an exception handling mechanism. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide when it is appropriate to raise an exception. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide how a component will handle exceptions. Considerations
include catching and throwing a new exception; catching, wrapping, and throwing the
wrapped exception; catching and terminating, and so on.&lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Develop the data access and data handling features of a component. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Analyze data relationships. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Analyze the data handling requirements of a component. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Develop a component to include profiling requirements. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify potential issues, such as resource leaks and performance
gaps, by profiling a component. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide when to stop profiling on a component. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide whether to redesign a component after analyzing the
profiling results. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Consume a reusable software component. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify a reusable software component from available components
to meet the requirements. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify whether the reusable software component needs to
be extended. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify whether the reusable software component needs to
be wrapped. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify whether any existing functionality needs to be hidden. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Test the identified component based on the requirements. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose an appropriate exception handling mechanism. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the current exception handling mechanism. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Design a new exception handling technique. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose an appropriate implementation approach for the application
design logic. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose an appropriate data storage mechanism. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose an appropriate data flow structure. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose an appropriate decision flow structure. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose an appropriate event logging method for the application. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide whether to log data. Considerations include policies,
security, requirements, and debugging. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose a storage mechanism for logged events. For example,
database, flat file, event log, or XML file. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose a systemwide event logging method. For example, centralized
logging, distributed logging, and so on. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide logging levels based upon severity and priority. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the application configuration architecture. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide which configuration attributes to store. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Choose the physical storage location for the configuration
attributes. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide in which format to store the configuration attributes. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Perform a code review.&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the testing strategy. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Create the unit testing strategy. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the integration testing strategy. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the stress testing strategy. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the performance testing strategy. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the test environment specification. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Design a unit test. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Describe the testing scenarios. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide coverage requirements. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate when to use boundary condition testing. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Decide the type of assertion tests to conduct. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Perform integration testing. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Determine if the component works as intended in the target
environment. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify component interactions and dependencies. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Verify results. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Resolve a bug. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Investigate a reported bug. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Reproduce a bug. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the impact of the bug and the associated cost and
timeline for fixing the bug. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Fix a bug. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the performance of an application based on the performance
analysis strategy. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify performance spikes. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Analyze performance trends. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Track logon times. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Analyze the data received when monitoring an application. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Monitor and analyze resource usage. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Monitor and analyze security aspects. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Track bugs that result from customer activity. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate the deployment plan. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify component-level deployment dependencies. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Identify scripting requirements for deployment. Considerations
include database scripting. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Evaluate available deployment methods. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Validate the production configuration environment. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Verify networking settings &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Verify the deployment environment. &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Verify the deployment environment. &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
This is nice.&amp;nbsp; If you can do all this, you should be able to call yourself a
developer.&amp;nbsp; There's no amount of studying that can help you.&amp;nbsp; These bullet
items&amp;nbsp;are seeing if you can solve a problem using Microsoft technlogies and juggle
different needs of your customers.&amp;nbsp; It will be interesting to see how they can
test for this using a series of multiple choice questions.
&lt;/p&gt;
&lt;p&gt;
In order to cover all of this material sufficiently, I'd have to write a book.&amp;nbsp;
Also, I'm about to take the test in 2 hours, so I need to start reviewing the preivous
material.&amp;nbsp; After I take the test, I suspect I'll no longer be able to publicly
comment on this test.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=d0464fce-74ac-40c5-b7f6-d3e9f474aa0a" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,d0464fce-74ac-40c5-b7f6-d3e9f474aa0a.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=e3a31ed8-f3de-4005-86c8-50e6664b3000</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,e3a31ed8-f3de-4005-86c8-50e6664b3000.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,e3a31ed8-f3de-4005-86c8-50e6664b3000.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=e3a31ed8-f3de-4005-86c8-50e6664b3000</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <em>
          <font color="#a9a9a9">Configure the
installation of a Windows Forms application by using ClickOnce technology. </font>
        </em>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Install a Windows Forms application on a client computer
by using ClickOnce deployment. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Install a Windows Forms application from a server by using
ClickOnce deployment. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure the required permissions of an application by
using ClickOnce deployment.</font>
            </em>
          </li>
        </ul>
        <p>
          <a href="http://www.15seconds.com/issue/041229.htm">Thiru Thangarathinam has an article
at 15seconds</a> that goes over the basics.  There is an <a href="http://www.windowsforms.net/FAQs/default.aspx?PageID=1&amp;CategoryID=24&amp;tabindex=2">FAQ
on windowsforms.net </a>about clickonce that also has some good info.  Michele
Lerous Bustamante has a category on her <a href="http://www.dasblonde.net/CategoryView,category,ClickOnce.aspx">blog
about Clickonce</a>.
</p>
        <p>
Clickonce can also produce setup files that can be installed from a network share
or CD.
</p>
        <p>
Understand that in order to install a WinForm application from a server that uses
Clickonce, you simply navigate to a URL that the application is hosted.  Because
the user is downloading executable content, IE will warn them.
</p>
        <p>
The  permissions can be set in the  project properties dialog.  Check
the "Enable Clickonce Security Settings".  You state whether the application
needs to run with Full Trust or Partial Trust.  With Partial Trust, you specify
which zone your application will run from and the permissions are shown.  You
can choose to request (include) or not a specific permission.  Also,
there is a calculate permissions button.
</p>
        <p>
          <em>Next up-&gt; Envisioning and Designing an Application</em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=e3a31ed8-f3de-4005-86c8-50e6664b3000" />
      </body>
      <title>70-552 Section II - Part IX - Clickonce</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,e3a31ed8-f3de-4005-86c8-50e6664b3000.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,e3a31ed8-f3de-4005-86c8-50e6664b3000.aspx</link>
      <pubDate>Sat, 18 Feb 2006 12:08:35 GMT</pubDate>
      <description>&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the installation of a Windows Forms application
by using ClickOnce technology. &lt;/font&gt;&lt;/em&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Install a Windows Forms application on a client computer by
using ClickOnce deployment. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Install a Windows Forms application from a server by using
ClickOnce deployment. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the required permissions of an application by using
ClickOnce deployment.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://www.15seconds.com/issue/041229.htm"&gt;Thiru Thangarathinam has an article
at 15seconds&lt;/a&gt; that goes over the basics.&amp;nbsp; There is an &lt;a href="http://www.windowsforms.net/FAQs/default.aspx?PageID=1&amp;amp;CategoryID=24&amp;amp;tabindex=2"&gt;FAQ
on windowsforms.net &lt;/a&gt;about clickonce that also has some good info.&amp;nbsp; Michele
Lerous Bustamante has a category on her &lt;a href="http://www.dasblonde.net/CategoryView,category,ClickOnce.aspx"&gt;blog
about Clickonce&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Clickonce can also produce setup files that can be installed from a network share
or CD.
&lt;/p&gt;
&lt;p&gt;
Understand that in order to install a WinForm application from a server that uses
Clickonce, you simply navigate to a URL that the application is hosted.&amp;nbsp; Because
the user is downloading executable content, IE will warn them.
&lt;/p&gt;
&lt;p&gt;
The&amp;nbsp; permissions can be set in the&amp;nbsp; project properties dialog.&amp;nbsp; Check
the "Enable Clickonce Security Settings".&amp;nbsp; You state whether the application
needs to run with Full Trust or Partial Trust.&amp;nbsp; With Partial Trust, you specify
which zone your application will run from and the permissions are shown.&amp;nbsp; You
can choose to request (include) or&amp;nbsp;not&amp;nbsp;a specific permission.&amp;nbsp; Also,
there is a calculate permissions button.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt; Envisioning and Designing an Application&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=e3a31ed8-f3de-4005-86c8-50e6664b3000" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,e3a31ed8-f3de-4005-86c8-50e6664b3000.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=00ae2834-7569-4ac0-a233-072848e8bb6f</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,00ae2834-7569-4ac0-a233-072848e8bb6f.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,00ae2834-7569-4ac0-a233-072848e8bb6f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=00ae2834-7569-4ac0-a233-072848e8bb6f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <em>
          <font color="#a9a9a9">Manage a background
process by using the BackgroundWorker component. </font>
        </em>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Run a background process by using the BackgroundWorker component. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Announce the completion of a background process by using
the BackgroundWorker component. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Cancel a background process by using the BackgroundWorker
component. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Report the progress of a background process by using the
BackgroundWorker component. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Request the status of a background process by using the
BackgroundWorker component.</font>
            </em>
          </li>
        </ul>
        <p>
          <font color="#000000">The BackgroundWorker component is intended to make multi threading
easier.  <a href="http://bitarray.co.uk/ben/articles/208.aspx">Ben Lovell has
a good post </a>that explains how to use it.</font>
        </p>
        <p>
          <font color="#000000">The code that will run in the background is placed in the DoWork
event.  Remember that it is operating in a different thread than the UI, so if
you want to touch any of the UI, you need to use BeginInvoke or Invoke.</font>
        </p>
        <p>
          <font color="#000000">To annouce the completion of a background process, you let the
DoWork event finish.  That will fire the RunWorkerCompleted event.</font>
        </p>
        <p>
          <font color="#000000">To cancel a background process, you call the CancelAsync method. 
In the DoWork event, you should constantly be checking the CancellationPending property,
it doesn't automatically cancel itself.</font>
        </p>
        <p>
          <font color="#000000">To report progress, call the ReportProgress method, while in
the DoWork event.</font>
        </p>
        <p>
          <font color="#000000">There's no obvious way to "request" the status of a background
process.  There is a ProgressChanged event that you can hook into.</font>
        </p>
        <p>
          <font color="#000000">
            <em>Next up-&gt; Clickonce</em>
          </font>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=00ae2834-7569-4ac0-a233-072848e8bb6f" />
      </body>
      <title>70-552 - Section II Part VIII - BackgroundWorker Component</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,00ae2834-7569-4ac0-a233-072848e8bb6f.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,00ae2834-7569-4ac0-a233-072848e8bb6f.aspx</link>
      <pubDate>Sat, 18 Feb 2006 11:44:17 GMT</pubDate>
      <description>&lt;em&gt;&lt;font color=#a9a9a9&gt;Manage a background process by using the BackgroundWorker
component. &lt;/font&gt;&lt;/em&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Run a background process by using the BackgroundWorker component. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Announce the completion of a background process by using the
BackgroundWorker component. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Cancel a background process by using the BackgroundWorker
component. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Report the progress of a background process by using the BackgroundWorker
component. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Request the status of a background process by using the BackgroundWorker
component.&lt;/font&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The BackgroundWorker component is intended to make multi threading
easier.&amp;nbsp; &lt;a href="http://bitarray.co.uk/ben/articles/208.aspx"&gt;Ben Lovell has
a good post &lt;/a&gt;that explains how to use it.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The code that will run in the background is placed in the DoWork
event.&amp;nbsp; Remember that it is operating in a different thread than the UI, so if
you want to touch any of the UI, you need to use BeginInvoke or Invoke.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;To annouce the completion of a background process, you let the
DoWork event finish.&amp;nbsp; That will fire the RunWorkerCompleted event.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;To cancel a background process, you call the CancelAsync method.&amp;nbsp;
In the DoWork event, you should constantly be checking the CancellationPending property,
it doesn't automatically cancel itself.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;To report progress, call the ReportProgress method, while in the
DoWork event.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;There's no obvious way to "request" the status of a background
process.&amp;nbsp; There is a ProgressChanged event that you can hook into.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;em&gt;Next up-&amp;gt; Clickonce&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=00ae2834-7569-4ac0-a233-072848e8bb6f" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,00ae2834-7569-4ac0-a233-072848e8bb6f.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=2c384952-2cf3-4185-b570-964e843f09b8</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,2c384952-2cf3-4185-b570-964e843f09b8.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,2c384952-2cf3-4185-b570-964e843f09b8.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=2c384952-2cf3-4185-b570-964e843f09b8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>
            <font color="#a9a9a9">Create, configure, and customize user assistance controls
and components. </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Configure the PropertyGrid component. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure the ProgressBar control to indicate progress graphically. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Display status information by using the StatusStrip control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure the ToolTip component. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure the ErrorProvider component. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure the HelpProvider component. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Play system sounds and audio files by using the SoundPlayer. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure the Timer component to raise an event at regular
intervals. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Enable scrolling by using the HScrollBar and VScrollBar
controls.</font>
            </em>
          </li>
        </ul>
        <p>
The PropertyGrid component hasn't changed since 1.1.  Set the SelectedObject
or SelectedObjects property and it will display all public settable properties. 
I've found it to be a very useful, but underused component.
</p>
        <p>
The ProgressBar control hasn't changed either.  Set the bounds by setting the
Minimum and Maximum properties.  Indicate progress by setting the value property
or calling the Increment method.
</p>
        <p>
StatusStrip is a completely new control.  It derives from ToolStrip, so it can
use all the ToolStrip controls.  It anchors itself to the bottom of your form.
</p>
        <p>
The ToolTip component hasn't changed.  Drag it onto a form.  You only need
one per form.  You can either enter tooltip text to all your controls at design
time, or use the SetToolTip method to set the text.
</p>
        <p>
The ErrorProvider component also hasn't changed.  When an error condition occurs,
call the SetError method.  Remember to call the Clear method when the error no
longer exists.
</p>
        <p>
No change in the HelpProvider component, also.  Drag that component onto a form. 
You'll see that three properties get added to the design of all controls on the form. 
HelpString is the string that will be displayed when the user selects the control
using the Help Button.  HelpNavigator specifies what elements of the help system
will be displayed when the user asks for help.  HelpKeyword is the help topic
that will be shown when the user asks for help.
</p>
        <p>
The SoundPlayer control which existed during the betas, was <a href="http://www.utmag.com/wconnect/wc.dll?9,7,12,844">dropped
according to Kevin McNeish</a>.
</p>
        <p>
The Timer component hasn't changed from 1.1.  It fires an event at regular intervals. 
Remember that the events are executed on the UI thread.
</p>
        <p>
The HScrollBar and VScrollBar haven't changed either.  They work very similar(programming
wise) to the ProgressBar, but the user can move the slider.  (There
also isn't an Increment method).
</p>
        <p>
Next up-&gt;Async Programming
</p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=2c384952-2cf3-4185-b570-964e843f09b8" />
      </body>
      <title>70-552 Section II Part VII - Usability</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,2c384952-2cf3-4185-b570-964e843f09b8.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,2c384952-2cf3-4185-b570-964e843f09b8.aspx</link>
      <pubDate>Sat, 18 Feb 2006 02:30:46 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create, configure, and customize user assistance controls
and components. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the PropertyGrid component. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the ProgressBar control to indicate progress graphically. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Display status information by using the StatusStrip control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the ToolTip component. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the ErrorProvider component. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the HelpProvider component. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Play system sounds and audio files by using the SoundPlayer. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the Timer component to raise an event at regular
intervals. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Enable scrolling by using the HScrollBar and VScrollBar controls.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The PropertyGrid component hasn't changed since 1.1.&amp;nbsp; Set the SelectedObject
or SelectedObjects property and it will display all public settable properties.&amp;nbsp;
I've found it to be a very useful, but underused component.
&lt;/p&gt;
&lt;p&gt;
The ProgressBar control hasn't changed either.&amp;nbsp; Set the bounds by setting the
Minimum and Maximum properties.&amp;nbsp; Indicate progress by setting the value property
or calling the Increment method.
&lt;/p&gt;
&lt;p&gt;
StatusStrip is a completely new control.&amp;nbsp; It derives from ToolStrip, so it can
use all the ToolStrip controls.&amp;nbsp; It anchors itself to the bottom of your form.
&lt;/p&gt;
&lt;p&gt;
The ToolTip component hasn't changed.&amp;nbsp; Drag it onto a form.&amp;nbsp; You only need
one per form.&amp;nbsp; You can either enter tooltip text to all your controls at design
time, or use the SetToolTip method to set the text.
&lt;/p&gt;
&lt;p&gt;
The ErrorProvider component also hasn't changed.&amp;nbsp; When an error condition occurs,
call the SetError method.&amp;nbsp; Remember to call the Clear method when the error no
longer exists.
&lt;/p&gt;
&lt;p&gt;
No change in the HelpProvider component, also.&amp;nbsp; Drag that component onto a form.&amp;nbsp;
You'll see that three properties get added to the design of all controls on the form.&amp;nbsp;
HelpString is the string that will be displayed when the user selects the control
using the Help Button.&amp;nbsp; HelpNavigator specifies what elements of the help system
will be displayed when the user asks for help.&amp;nbsp; HelpKeyword is the help topic
that will be shown when the user asks for help.
&lt;/p&gt;
&lt;p&gt;
The SoundPlayer control which existed during the betas, was &lt;a href="http://www.utmag.com/wconnect/wc.dll?9,7,12,844"&gt;dropped
according to Kevin McNeish&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The Timer component hasn't changed from 1.1.&amp;nbsp; It fires an event at regular intervals.&amp;nbsp;
Remember that the events are executed on the UI thread.
&lt;/p&gt;
&lt;p&gt;
The HScrollBar and VScrollBar haven't changed either.&amp;nbsp; They work very similar(programming
wise)&amp;nbsp;to the ProgressBar, but&amp;nbsp;the user can move the slider.&amp;nbsp; (There
also isn't an Increment method).
&lt;/p&gt;
&lt;p&gt;
Next up-&amp;gt;Async Programming
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=2c384952-2cf3-4185-b570-964e843f09b8" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,2c384952-2cf3-4185-b570-964e843f09b8.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=04e0783f-f79f-4adf-ba2e-c84c90e5b2a3</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,04e0783f-f79f-4adf-ba2e-c84c90e5b2a3.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,04e0783f-f79f-4adf-ba2e-c84c90e5b2a3.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=04e0783f-f79f-4adf-ba2e-c84c90e5b2a3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>
            <font color="#a9a9a9">Read, write, and validate XML by using the XmlReader class
and the XmlWriter class. </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Read XML data by using the XmlReader class. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Read all XML element and attribute content. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Read specific element and attribute content. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Read XML data by using the XmlTextReader class. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Read node trees by using the XmlNodeReader class. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Validate XML data by using the XmlValidatingReader class. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Write XML data by using the XmlWriter class.</font>
            </em>
          </li>
        </ul>
        <p>
MSDN has an <a href="http://msdn2.microsoft.com/en-us/library/1k76xshy(VS.80).aspx">page
on the new stuff </a>as afar as XML is concerned.
</p>
        <p>
The <a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmlreader.aspx">XmlReader</a> provides
readonly/forwardonly access to Xml Data.  To create an implementation of the
XmlReader (XmlTextReader, XmlNodeReader, XmlValidatingReader), call the <a href="http://msdn2.microsoft.com/en-us/library/9khb6435.aspx">Create </a>method. 
The big change is that you can associate a Schema with a XmlReader, rather than having
to fake it with XmlValidatingReader.
</p>
        <p>
To read all the XML content, you can use the ReadInnerXml or ReadOuterXml methods. 
To get a specific element, you call MoveToElement, and then read the content by using
.Name or .Value properties.  To get a specific attribute, you would call either
MoveToFirstAttribute or MoveToNextAttribute.
</p>
        <p>
The <a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmltextreader(VS.80).aspx">XmlTextReader </a>is
a reader that enforces the rules of well-formed XML.  An XmlException is thrown
when it encounters bad XML.  
</p>
        <p>
The <a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmlnodereader(VS.80).aspx">XmlNodeReader </a>is
a reader that works off an XmlDocument.  Functionally works the same as XmlReader.
</p>
        <p>
The <a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmlvalidatingreader(VS.80).aspx">XmlValidatingReader </a>is
a reader that makes sure the XML conforms to known schemas contained in the Schemas
collection.  This is now obsolete because the XmlReader now has this built in.
</p>
        <p>
The <a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmlwriter(VS.80).aspx">XmlWriter</a> contains
all the methods necessary to write XML.  WriteStartElement, WriteEndElement,
WriteStartAttribute, WriteEndAttribute, WriteCData, WriteComment....
</p>
        <p>
          <em>Next up-&gt; The rest of WinForm Controls</em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=04e0783f-f79f-4adf-ba2e-c84c90e5b2a3" />
      </body>
      <title>70-552 Section II Part VI - XmlReader</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,04e0783f-f79f-4adf-ba2e-c84c90e5b2a3.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,04e0783f-f79f-4adf-ba2e-c84c90e5b2a3.aspx</link>
      <pubDate>Sat, 18 Feb 2006 00:22:46 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Read, write, and validate XML by using the XmlReader class
and the XmlWriter class. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Read XML data by using the XmlReader class. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Read all XML element and attribute content. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Read specific element and attribute content. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Read XML data by using the XmlTextReader class. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Read node trees by using the XmlNodeReader class. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Validate XML data by using the XmlValidatingReader class. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Write XML data by using the XmlWriter class.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
MSDN has an &lt;a href="http://msdn2.microsoft.com/en-us/library/1k76xshy(VS.80).aspx"&gt;page
on the new stuff &lt;/a&gt;as afar as XML is concerned.
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmlreader.aspx"&gt;XmlReader&lt;/a&gt; provides
readonly/forwardonly access to Xml Data.&amp;nbsp; To create an implementation of the
XmlReader (XmlTextReader, XmlNodeReader, XmlValidatingReader), call the &lt;a href="http://msdn2.microsoft.com/en-us/library/9khb6435.aspx"&gt;Create &lt;/a&gt;method.&amp;nbsp;
The big change is that you can associate a Schema with a XmlReader, rather than having
to fake it with XmlValidatingReader.
&lt;/p&gt;
&lt;p&gt;
To read all the XML content, you can use the ReadInnerXml or ReadOuterXml methods.&amp;nbsp;
To get a specific element, you call MoveToElement, and then read the content by using
.Name or .Value properties.&amp;nbsp; To get a specific attribute, you would call either
MoveToFirstAttribute or MoveToNextAttribute.
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmltextreader(VS.80).aspx"&gt;XmlTextReader &lt;/a&gt;is
a reader that enforces the rules of well-formed XML.&amp;nbsp; An XmlException is thrown
when it encounters bad XML.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmlnodereader(VS.80).aspx"&gt;XmlNodeReader &lt;/a&gt;is
a reader that works off an XmlDocument.&amp;nbsp; Functionally works the same as XmlReader.
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmlvalidatingreader(VS.80).aspx"&gt;XmlValidatingReader &lt;/a&gt;is
a reader that makes sure the XML conforms to known schemas contained in the Schemas
collection.&amp;nbsp; This is now obsolete because the XmlReader now has this built in.
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmlwriter(VS.80).aspx"&gt;XmlWriter&lt;/a&gt;&amp;nbsp;contains
all the methods necessary to write XML.&amp;nbsp; WriteStartElement, WriteEndElement,
WriteStartAttribute, WriteEndAttribute, WriteCData, WriteComment....
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt; The rest of WinForm Controls&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=04e0783f-f79f-4adf-ba2e-c84c90e5b2a3" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,04e0783f-f79f-4adf-ba2e-c84c90e5b2a3.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=90b50de5-f08a-41af-9da7-2202ceb76f4f</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,90b50de5-f08a-41af-9da7-2202ceb76f4f.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,90b50de5-f08a-41af-9da7-2202ceb76f4f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=90b50de5-f08a-41af-9da7-2202ceb76f4f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>
            <font color="#a9a9a9">Manage connections and transactions. </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Configure a connection to a database by using the Connection
Wizard. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure a connection to a database by using Server Explorer. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure a connection to a database by using the Connection
class. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Connect to a database by using specific database Connection
objects. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Enumerate through instances of Microsoft SQL Server. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Open an ADO.NET connection to a database. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Close an ADO.NET connection to a database by using the Close
method of the Connection object. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Protect access to data source connection details. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create a connection designed for reuse in a connection pool. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Control a connection pool by configuring ConnectionString
values based on database type. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Use the Connection events to detect database information. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Handle exceptions when connecting to a database. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Perform transactions by using the Transaction object.</font>
            </em>
          </li>
        </ul>
        <p>
I've never been one to make use of a lot of wizards.  I was not able to find
a "Connection Wizard".  I was able to find the "Data Source Configuration Wizard". 
Not sure if that's what they mean.  In the Data Source connection wizard, if
you specify that you want a Database data source, you are then prompted to select
a connection.  On that screen you can push the New Connection button, which brings
up a Choose Data Source dialog.  I'm not sure I'd call it a wizard.  Again,
if anyone finds the "Connection Wizard", let me know where it is.
</p>
        <p>
Configuring a connection in the Server Explorer is as easy as right clicking on the
Data Connections node, and selecting add new connection.
</p>
        <p>
There are a few objects that have a Connection property, but there is no Connection
class.  There are classes that implement IDbConnection, but strictly speaking,
(unless we talking about sharepoint) there is no Connection class.  However,
if you have a class that implements IDbConnection (SqlConnection, OleDbConnection...),
you configure it using the ConnectionString property.
</p>
        <p>
To connect to a database, you instatiate a SqlConnection instance, set the Connectionstring,
and call the Open method.  There is now a <a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder(VS.80).aspx">SqlConnectionStringBuilder </a>class
to help you build a connection string.
</p>
        <p>
To enumerate through SQL Instances, use the <a href="http://msdn2.microsoft.com/en-us/library/system.data.sql.sqldatasourceenumerator(VS.80).aspx">SqlDataSourceEnumerator </a>as <a href="http://blogs.msdn.com/sushilc/archive/2004/10/14/242395.aspx">explained
by Sushil on his blog.</a></p>
        <p>
To Close an open connection to a database, use the Close method on the Connection
object.  You can also call Dispose.  This isn't on topic, but while I was
looking around, I noticed they added a <a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.clearpool(VS.80).aspx">ClearPool </a>method
to the SqlConnection object.  Nice!
</p>
        <p>
To protect Datasource information, you're supposed to put the ConnectionStrings in
the ConnectionStrings section of the app.config.  Then you're supposed to encrypt
it.  What's fustrating is that there are dozens of examples of how to do this
for ASP.NET.  Near as I can figure, it looks like you would, during installation
with an installer class, get a reference to the SectionInformation and call the ProtectSection
method.
</p>
        <p>
To create a connection that will stay in a pool, make sure your connections are connecting
to the database with the same login.  Reportedly having minor differences in
the connection string will cause it not to pool.  
</p>
        <p>
There is information about controlling <a href="http://msdn2.microsoft.com/en-us/library/8xx3tyca.aspx">Connection
Pooling on MSDN</a>.
</p>
        <p>
There are two events worth listening to on a SqlConnection.  <a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.infomessage.aspx">InfoMessage </a>(fired
when warnings or informational messages are returned by SQL Server), and <a href="http://msdn2.microsoft.com/en-us/library/system.data.common.dbconnection.statechange.aspx">StateChanged</a> (fired
when the state of the connection has changed).
</p>
        <p>
To handle exceptions when connecting to a database, catch SqlException (if SQL
rejected the connection), or InvalidOperationException (The connection was already
opened, or you haven't given the connection object enough info.)
</p>
        <p>
To Begin a transaction on an open connection, call the BeginTransaction method on
the SqlConnection object.  That returns a transaction object that you control
the Commit or Rollback with.  There is a new <a href="http://msdn2.microsoft.com/en-us/library/tcbchxcb.aspx">locking
level, snapshot isolation </a>which bears understanding.
</p>
        <p>
There is also a new Systems.Transaction namespace.  This is used for distributed
transactions.  <a href="http://msdn.microsoft.com/msdnmag/issues/05/02/DataPoints/default.aspx">John
Papa has a writeup on MSDN </a>covering the feature.
</p>
        <p>
          <em>Next up-&gt; XML Reader/Writer</em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=90b50de5-f08a-41af-9da7-2202ceb76f4f" />
      </body>
      <title>70-552 Section II Part V - ADO.NET</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,90b50de5-f08a-41af-9da7-2202ceb76f4f.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,90b50de5-f08a-41af-9da7-2202ceb76f4f.aspx</link>
      <pubDate>Fri, 17 Feb 2006 22:09:28 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Manage connections and transactions. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a connection to a database by using the Connection
Wizard. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a connection to a database by using Server Explorer. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a connection to a database by using the Connection
class. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Connect to a database by using specific database Connection
objects. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Enumerate through instances of Microsoft SQL Server. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Open an ADO.NET connection to a database. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Close an ADO.NET connection to a database by using the Close
method of the Connection object. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Protect access to data source connection details. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create a connection designed for reuse in a connection pool. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Control a connection pool by configuring ConnectionString
values based on database type. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the Connection events to detect database information. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Handle exceptions when connecting to a database. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Perform transactions by using the Transaction object.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I've never been one to make use of a lot of wizards.&amp;nbsp; I was not able to find
a "Connection Wizard".&amp;nbsp; I was able to find the "Data Source Configuration Wizard".&amp;nbsp;
Not sure if that's what they mean.&amp;nbsp; In the Data Source connection wizard, if
you specify that you want a Database data source, you are then prompted to select
a connection.&amp;nbsp; On that screen you can push the New Connection button, which brings
up a Choose Data Source dialog.&amp;nbsp; I'm not sure I'd call it a wizard.&amp;nbsp; Again,
if anyone finds the "Connection Wizard", let me know where it is.
&lt;/p&gt;
&lt;p&gt;
Configuring a connection in the Server Explorer is as easy as right clicking on the
Data Connections node, and selecting add new connection.
&lt;/p&gt;
&lt;p&gt;
There are a few objects that have a Connection property, but there is no Connection
class.&amp;nbsp; There are classes that implement IDbConnection, but strictly speaking,
(unless we talking about sharepoint) there is no Connection class.&amp;nbsp; However,
if you have a class that implements IDbConnection (SqlConnection, OleDbConnection...),
you configure it using the ConnectionString property.
&lt;/p&gt;
&lt;p&gt;
To connect to a database, you instatiate a SqlConnection instance, set the Connectionstring,
and call the Open method.&amp;nbsp; There is now a &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder(VS.80).aspx"&gt;SqlConnectionStringBuilder &lt;/a&gt;class
to help you build a connection string.
&lt;/p&gt;
&lt;p&gt;
To enumerate through SQL Instances, use the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sql.sqldatasourceenumerator(VS.80).aspx"&gt;SqlDataSourceEnumerator &lt;/a&gt;as &lt;a href="http://blogs.msdn.com/sushilc/archive/2004/10/14/242395.aspx"&gt;explained
by Sushil on his blog.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
To Close an open connection to a database, use the Close method on the Connection
object.&amp;nbsp; You can also call Dispose.&amp;nbsp; This isn't on topic, but while I was
looking around, I noticed they added a &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.clearpool(VS.80).aspx"&gt;ClearPool &lt;/a&gt;method
to the SqlConnection object.&amp;nbsp; Nice!
&lt;/p&gt;
&lt;p&gt;
To protect Datasource information, you're supposed to put the ConnectionStrings in
the ConnectionStrings section of the app.config.&amp;nbsp; Then you're supposed to encrypt
it.&amp;nbsp; What's fustrating is that there are dozens of examples of how to do this
for ASP.NET.&amp;nbsp; Near as I can figure, it looks like you would, during installation
with an installer class, get a reference to the SectionInformation and call the ProtectSection
method.
&lt;/p&gt;
&lt;p&gt;
To create a connection that will stay in a pool, make sure your connections are connecting
to the database with the same login.&amp;nbsp; Reportedly having minor differences in
the connection string will cause it not to pool.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
There is information about controlling &lt;a href="http://msdn2.microsoft.com/en-us/library/8xx3tyca.aspx"&gt;Connection
Pooling on MSDN&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
There are two events worth listening to on a SqlConnection.&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.infomessage.aspx"&gt;InfoMessage &lt;/a&gt;(fired
when warnings or informational messages are returned by SQL Server), and &lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.common.dbconnection.statechange.aspx"&gt;StateChanged&lt;/a&gt;&amp;nbsp;(fired
when the state of the connection has changed).
&lt;/p&gt;
&lt;p&gt;
To&amp;nbsp;handle exceptions when connecting to a database, catch SqlException (if SQL
rejected the connection), or InvalidOperationException (The connection was already
opened, or you haven't given the connection object enough info.)
&lt;/p&gt;
&lt;p&gt;
To Begin a transaction on an open connection, call the BeginTransaction method on
the SqlConnection object.&amp;nbsp; That returns a transaction object that you control
the Commit or Rollback with.&amp;nbsp; There is a new &lt;a href="http://msdn2.microsoft.com/en-us/library/tcbchxcb.aspx"&gt;locking
level, snapshot isolation &lt;/a&gt;which bears understanding.
&lt;/p&gt;
&lt;p&gt;
There is also a new Systems.Transaction namespace.&amp;nbsp; This is used for distributed
transactions.&amp;nbsp; &lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/02/DataPoints/default.aspx"&gt;John
Papa has a writeup on MSDN &lt;/a&gt;covering the feature.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt; XML Reader/Writer&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=90b50de5-f08a-41af-9da7-2202ceb76f4f" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,90b50de5-f08a-41af-9da7-2202ceb76f4f.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=5a2cc6d1-2b6c-4d93-8709-73ae6936d8cc</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,5a2cc6d1-2b6c-4d93-8709-73ae6936d8cc.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,5a2cc6d1-2b6c-4d93-8709-73ae6936d8cc.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=5a2cc6d1-2b6c-4d93-8709-73ae6936d8cc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>
            <font color="#a9a9a9">Implement data-bound controls. </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Use the DataGridView control to display and update the tabular
data contained in a data source. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Use a simple data-bound control to display a single data
element on a Windows Form. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Implement complex data binding to integrate data from multiple
sources. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Navigate forward and backward through records in a DataSet
in Windows Forms. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Define a data source by using a DataConnector component. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create data forms by using the Data Form Wizard.</font>
            </em>
          </li>
        </ul>
        <p>
There's a big section at <a href="http://www.windowsforms.net/WhidbeyFeatures/default.aspx?PageID=2&amp;ItemID=13&amp;Cat=Controls">WindowsForms.net
on the DataGridView</a>.  The DataGridView is the successor to the DataGrid. 
They added more cell types: Image, Combobox, Link, Button.  (They only had Textbox
and Checkbox in 1.1).  You can place more than one control in a cell.  There
are now events associated with the cell itself, instead of handling all the events
on the datagrid control.  The CellFormatting event allows you to control the
look of specific cells.
</p>
        <p>
The data binding subsystem has undergone a major overhaul.  As in 1.1, there
is a different binding system for WinForms than WebForms.  Again there is a section
at <a href="http://windowsforms.net/WhidbeyFeatures/default.aspx?PageID=2&amp;ItemID=8&amp;Cat=Runtime&amp;tabindex=5">WindowsForms.Net
dedicated to data binding</a>, although not very comprehensive.  <a href="http://blogs.msdn.com/dchandnani/">Dinesh
Chandnani has a series of good blog entries </a>on databinding.  The main component
is called the BindingSource.  You can make your own components bindable by using
the <a href="http://msdn2.microsoft.com/en-us/library/ms132679.aspx">BindingList </a>generic.
</p>
        <p>
I'm not sure what they mean by complex data binding.  Handling some of the <a href="http://msdn2.microsoft.com/en-us/library/ms158210(VS.80).aspx">events </a>in
the BindingSource?
</p>
        <p>
The <a href="http://msdn2.microsoft.com/en-us/library/system.windows.forms.bindingnavigator.aspx">BindingNavigator </a>control
is a Toolstrip control that hooks to a BindingSource that has the first,prev,next,last
buttons already implemented.  You would use that to navigate through records
in a dataset on a windows form.
</p>
        <p>
The DataConnector component no longer exists.  It was <a href="http://blogs.msdn.com/vbteam/archive/2005/01/12/351495.aspx">renamed
to BindingSource </a>in earlier Whidbey releases.
</p>
        <p>
Alright, I give up.  My wife tells me that I stink at looking for things. 
My keys could be right in front of me and I won't see them.  With that disclaimer
in mind, I've been looking 15 minutes for the "Data Form Wizard".  It clearly
existed in 1.1.  Where is it?  If anyone knows where it is, let me know.
</p>
        <p>
          <em>Next up-&gt;Connections and Transactions</em>
        </p>
        <p>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=5a2cc6d1-2b6c-4d93-8709-73ae6936d8cc" />
      </body>
      <title>70-552 Section II - Part IV - Data Binding</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,5a2cc6d1-2b6c-4d93-8709-73ae6936d8cc.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,5a2cc6d1-2b6c-4d93-8709-73ae6936d8cc.aspx</link>
      <pubDate>Fri, 17 Feb 2006 15:37:24 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement data-bound controls. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the DataGridView control to display and update the tabular
data contained in a data source. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use a simple data-bound control to display a single data element
on a Windows Form. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement complex data binding to integrate data from multiple
sources. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Navigate forward and backward through records in a DataSet
in Windows Forms. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Define a data source by using a DataConnector component. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create data forms by using the Data Form Wizard.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
There's a big section&amp;nbsp;at &lt;a href="http://www.windowsforms.net/WhidbeyFeatures/default.aspx?PageID=2&amp;amp;ItemID=13&amp;amp;Cat=Controls"&gt;WindowsForms.net
on the DataGridView&lt;/a&gt;.&amp;nbsp; The DataGridView is the successor to the DataGrid.&amp;nbsp;
They added more cell types: Image, Combobox, Link, Button.&amp;nbsp; (They only had Textbox
and Checkbox in 1.1).&amp;nbsp; You can place more than one control in a cell.&amp;nbsp; There
are now events associated with the cell itself, instead of handling all the events
on the datagrid control.&amp;nbsp; The CellFormatting event allows you to control the
look of specific cells.
&lt;/p&gt;
&lt;p&gt;
The data binding subsystem has undergone a major overhaul.&amp;nbsp; As in 1.1, there
is a different binding system for WinForms than WebForms.&amp;nbsp; Again there is a section
at &lt;a href="http://windowsforms.net/WhidbeyFeatures/default.aspx?PageID=2&amp;amp;ItemID=8&amp;amp;Cat=Runtime&amp;amp;tabindex=5"&gt;WindowsForms.Net
dedicated to data binding&lt;/a&gt;, although not very comprehensive.&amp;nbsp; &lt;a href="http://blogs.msdn.com/dchandnani/"&gt;Dinesh
Chandnani has a series of good blog entries &lt;/a&gt;on databinding.&amp;nbsp; The main component
is called the BindingSource.&amp;nbsp; You can make your own components bindable by using
the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms132679.aspx"&gt;BindingList &lt;/a&gt;generic.
&lt;/p&gt;
&lt;p&gt;
I'm not sure what they mean by complex data binding.&amp;nbsp; Handling some of the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms158210(VS.80).aspx"&gt;events &lt;/a&gt;in
the BindingSource?
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://msdn2.microsoft.com/en-us/library/system.windows.forms.bindingnavigator.aspx"&gt;BindingNavigator &lt;/a&gt;control
is a&amp;nbsp;Toolstrip control that hooks to&amp;nbsp;a BindingSource that has the first,prev,next,last
buttons already implemented.&amp;nbsp; You would use that to navigate through records
in a dataset on a windows form.
&lt;/p&gt;
&lt;p&gt;
The DataConnector component no longer exists.&amp;nbsp; It was &lt;a href="http://blogs.msdn.com/vbteam/archive/2005/01/12/351495.aspx"&gt;renamed
to BindingSource &lt;/a&gt;in earlier Whidbey releases.
&lt;/p&gt;
&lt;p&gt;
Alright, I give up.&amp;nbsp; My wife tells me that I stink at looking for things.&amp;nbsp;
My keys could be right in front of me and I won't see them.&amp;nbsp; With that disclaimer
in mind, I've been looking 15 minutes for the "Data Form Wizard".&amp;nbsp; It clearly
existed in 1.1.&amp;nbsp; Where is it?&amp;nbsp; If anyone knows where it is, let me know.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt;Connections and Transactions&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=5a2cc6d1-2b6c-4d93-8709-73ae6936d8cc" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,5a2cc6d1-2b6c-4d93-8709-73ae6936d8cc.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=6b8ef5b3-e40d-4f62-a568-d24d45d1785c</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,6b8ef5b3-e40d-4f62-a568-d24d45d1785c.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,6b8ef5b3-e40d-4f62-a568-d24d45d1785c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=6b8ef5b3-e40d-4f62-a568-d24d45d1785c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <em>
          <font color="#a9a9a9">Create and configure
menus. </font>
        </em>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Create and configure a MenuStrip component on a Windows
Form. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Change the displayed menu structure programmatically. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create and configure the ContextMenuStrip component on a
Windows Form.</font>
            </em>
          </li>
        </ul>
        <p>
          <font color="#000000">There is a good article on <a href="http://www.devx.com/dotnet/Article/22001">DevX
about the xStrip controls</a>.  <a href="http://msdn2.microsoft.com/en-us/library/a5swc13h.aspx">MSDN
has a good technology overview </a>as well.  The Toolbar, menu and status bar
render in a look (by default) that is similiar to Office xp.  Understand that
the Menu, Toolbar and StatusBar all derive from a common base, ToolStrip.   
ToolStrip is a container for ToolStripItem controls.  The ToolStrip uses Renderers
to control its display.  Look at the <a href="http://msdn2.microsoft.com/en-us/library/c0xc9h3t.aspx">RenderMode </a>property
for more information.</font>
        </p>
        <p>
          <em>Next up-&gt; Data binding</em>
        </p>
        <p>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=6b8ef5b3-e40d-4f62-a568-d24d45d1785c" />
      </body>
      <title>70-552 Section II Part III - Menus</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,6b8ef5b3-e40d-4f62-a568-d24d45d1785c.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,6b8ef5b3-e40d-4f62-a568-d24d45d1785c.aspx</link>
      <pubDate>Thu, 16 Feb 2006 21:51:45 GMT</pubDate>
      <description>&lt;em&gt;&lt;font color=#a9a9a9&gt;Create and configure menus. &lt;/font&gt;&lt;/em&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create and configure a MenuStrip component on a Windows Form. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Change the displayed menu structure programmatically. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create and configure the ContextMenuStrip component on a Windows
Form.&lt;/font&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;There is a good article on &lt;a href="http://www.devx.com/dotnet/Article/22001"&gt;DevX
about the xStrip controls&lt;/a&gt;.&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/a5swc13h.aspx"&gt;MSDN
has a good technology overview &lt;/a&gt;as well.&amp;nbsp; The Toolbar, menu and status bar
render in a look (by default) that is similiar to Office xp.&amp;nbsp; Understand that
the Menu, Toolbar and StatusBar all derive from a common base, ToolStrip.&amp;nbsp;&amp;nbsp;&amp;nbsp;
ToolStrip is a container for ToolStripItem controls.&amp;nbsp; The ToolStrip uses Renderers
to control its display.&amp;nbsp; Look at the &lt;a href="http://msdn2.microsoft.com/en-us/library/c0xc9h3t.aspx"&gt;RenderMode &lt;/a&gt;property
for more information.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt; Data binding&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=6b8ef5b3-e40d-4f62-a568-d24d45d1785c" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,6b8ef5b3-e40d-4f62-a568-d24d45d1785c.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=1216572f-dff7-4f09-9d01-1c2fb0e8150b</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,1216572f-dff7-4f09-9d01-1c2fb0e8150b.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,1216572f-dff7-4f09-9d01-1c2fb0e8150b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1216572f-dff7-4f09-9d01-1c2fb0e8150b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>
            <font color="#a9a9a9">Add and configure a Windows Forms control. </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Use the integrated development environment (IDE) to add
a control to a Windows Form or other container control of a project at design time. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Add controls to a Windows Form at run time. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure controls on a Windows Form at design time to optimize
the UI. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Modify control properties. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure controls on a Windows Form at run time to ensure
that the UI complies with best practices. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create and configure command controls on a Windows Form. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create and configure text edit controls on a Windows Form. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create and configure text display controls on a Windows
Form. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Use the LinkLabel control to add Web-style links to Windows
Forms applications. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Provide a list of options on a Windows Form by using a ListBox
control, a ComboBox control, or a CheckedListBox control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure the layout and functionality of a Windows Form
to display a list of items. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Implement value-setting controls on a Windows Form. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure a WebBrowser control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Add and configure date-setting controls on a Windows Form. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Display images by using Windows Forms controls. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Configure the NotifyIcon component. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Create access keys for Windows Forms controls. </font>
            </em>
          </li>
        </ul>
        <p>
          <font color="#000000">The first 4 bullets shouldn't be worrisome.  As far as
as UI Best Practices, I imagine stuff like consistency, making sure your
UI works with both mouse and keyboard, and making sure it functions with accessibility
features are the key.  The only best practices guidance I found specific to 2.0
is this <a href="http://msdn2.microsoft.com/en-us/library/ha5xt0d9.aspx">blurb on
MSDN2 about the datagridview</a>.</font>
        </p>
        <p>
          <font color="#000000">Here is a list of <a href="http://msdn2.microsoft.com/en-us/library/s3tb26et(VS.80).aspx">things
that have changed in 2.0</a>.  Here is a <a href="http://msdn2.microsoft.com/en-us/library/35f2fe4h(VS.80).aspx">list
of new features.</a></font>
        </p>
        <p>
          <font color="#000000">The command controls available in WinForms is really just the
Button class.  Few things have changed since 1.1.  There's a FlatAppearance
method-allowing finer control when the FlatStyle is set to Flat.  TextImageRelation
specifies where the text goes in relation to an image.  There is also an AutoEllipsis
property that adds the ... if your text is too long for the button.</font>
        </p>
        <p>
          <font color="#000000">Text Edit controls in WinForms are the ComboBox, DateTimePicker,
DomainUpDown, ListBox, the new MaskedTextBox, NumericUpDown,PropertyGrid, RichTextBox,
and the basic TextBox.  There is support for AutoComplete in the ComboBox and
TextBox via the AutoCompleteCustomSource, AutoCompleteMode, and AutoCompleteSource
properties.  I haven't used the DateTimePicker much before, but it doesn't appear
to have changed.  Same for the DomainUpDown control.  The Listbox now has
formatting via the FormattingEnabled and FormatString properties.  The MaskedTextBox
is new, you should play around with it to understand it's features.  <a href="http://www.ondotnet.com/pub/a/dotnet/2005/03/14/liberty.html">Jesse
Liberty has a writeup</a> on the masking features.  The NumericUpDown control
hasn't changed either.  Same with the PropertyGrid.  The RichTextBox control
has a RTF property that you can get/set the text including RTF codes.</font>
        </p>
        <p>
          <font color="#000000">The display controls in WinForms are Label, ListView, PictureBox
&amp; Treeview.  Label control has the AutoEllipsis property.  That's the
only change I could see.  There are some good changes to the ListView control. 
It has support for Groups and TileView.  Jeremy Epling has a <a href="http://blogs.msdn.com/jepling/archive/2005/06/05/425494.aspx">writeup
on Groups on his blog</a>.   The other big change is that the
ListView is bindable (Yeah!).  The PictureBox now supports Asychronous loading. 
The ListView and TreeView now support Owner drawing.</font>
        </p>
        <p>
          <font color="#000000">The linkLabel hasn't changed.  Use it as you would a Button,
except that you handle the LinkClicked event.</font>
        </p>
        <p>
          <font color="#000000">The CheckedListBox has the same new properties as the Listbox
as far as Formatting.  It also has a new property ThreeDCheckBoxes (bool).  </font>
        </p>
        <p>
          <font color="#000000">To display a list of items, you could use either a CheckedListbox,
ComboBox, DomainUpDown, Listbox, ListView, or TreeView.  CheckedListbox, Listbox,
and ListView support multiple columns.</font>
        </p>
        <p>
          <font color="#000000">The WebBrowser is a new control that a hosting container for
the browser.  You specify the location by setting the Url property.</font>
        </p>
        <p>
          <font color="#000000">You can display images a variety of different ways.  You
can set the background image of a form and various controls, use a PictureBox control,
you can handle the Paint event and use the graphics object to paint an image.</font>
        </p>
        <p>
          <font color="#000000">The NotifyIcon component now has BalloonTips.  These should
be used to notify the user that something has happened.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/en-us/library/az5a73z1.aspx">Access
keys are still defined </a>by prefixing with an "&amp;"</font>
        </p>
        <p>
          <font color="#000000">
            <em>Next up-&gt; Menus</em>
          </font>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=1216572f-dff7-4f09-9d01-1c2fb0e8150b" />
      </body>
      <title>70-552 Section II Part II - WinForm controls</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,1216572f-dff7-4f09-9d01-1c2fb0e8150b.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,1216572f-dff7-4f09-9d01-1c2fb0e8150b.aspx</link>
      <pubDate>Wed, 15 Feb 2006 18:21:37 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Add and configure a Windows Forms control. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the integrated development environment (IDE) to add a
control to a Windows Form or other container control of a project at design time. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Add controls to a Windows Form at run time. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure controls on a Windows Form at design time to optimize
the UI. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Modify control properties. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure controls on a Windows Form at run time to ensure
that the UI complies with best practices. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create and configure command controls on a Windows Form. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create and configure text edit controls on a Windows Form. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create and configure text display controls on a Windows Form. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the LinkLabel control to add Web-style links to Windows
Forms applications. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Provide a list of options on a Windows Form by using a ListBox
control, a ComboBox control, or a CheckedListBox control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the layout and functionality of a Windows Form to
display a list of items. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement value-setting controls on a Windows Form. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure a WebBrowser control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Add and configure date-setting controls on a Windows Form. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Display images by using Windows Forms controls. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Configure the NotifyIcon component. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Create access keys for Windows Forms controls. &lt;/font&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The first 4 bullets shouldn't be worrisome.&amp;nbsp; As far as as
UI Best Practices,&amp;nbsp;I imagine stuff like consistency,&amp;nbsp;making sure your UI
works with both mouse and keyboard, and&amp;nbsp;making sure it functions with accessibility
features are the key.&amp;nbsp; The only best practices guidance I found specific to 2.0
is this &lt;a href="http://msdn2.microsoft.com/en-us/library/ha5xt0d9.aspx"&gt;blurb on
MSDN2 about the datagridview&lt;/a&gt;.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Here is a list of &lt;a href="http://msdn2.microsoft.com/en-us/library/s3tb26et(VS.80).aspx"&gt;things
that have changed in 2.0&lt;/a&gt;.&amp;nbsp; Here is a &lt;a href="http://msdn2.microsoft.com/en-us/library/35f2fe4h(VS.80).aspx"&gt;list
of new features.&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The command controls available in WinForms is really just the
Button class.&amp;nbsp; Few things have changed since 1.1.&amp;nbsp; There's a FlatAppearance
method-allowing finer control when the FlatStyle is set to Flat.&amp;nbsp; TextImageRelation
specifies where the text goes in relation to an image.&amp;nbsp; There is also an AutoEllipsis
property that adds the ... if your text is too long for the button.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Text Edit controls in WinForms are the ComboBox, DateTimePicker,
DomainUpDown, ListBox, the new MaskedTextBox, NumericUpDown,PropertyGrid, RichTextBox,
and the basic TextBox.&amp;nbsp; There is support for AutoComplete in the ComboBox and
TextBox&amp;nbsp;via the AutoCompleteCustomSource, AutoCompleteMode, and AutoCompleteSource
properties.&amp;nbsp; I haven't used the DateTimePicker much before, but it doesn't appear
to have changed.&amp;nbsp; Same for the DomainUpDown control.&amp;nbsp; The Listbox now has
formatting via the FormattingEnabled and FormatString properties.&amp;nbsp; The MaskedTextBox
is new, you should play around with it to understand it's features.&amp;nbsp; &lt;a href="http://www.ondotnet.com/pub/a/dotnet/2005/03/14/liberty.html"&gt;Jesse
Liberty has a writeup&lt;/a&gt; on the masking features.&amp;nbsp; The NumericUpDown control
hasn't changed either.&amp;nbsp; Same with the PropertyGrid.&amp;nbsp; The RichTextBox control
has a RTF property that you can get/set the text including RTF codes.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The display controls in WinForms are Label, ListView, PictureBox
&amp;amp; Treeview.&amp;nbsp; Label control has the AutoEllipsis property.&amp;nbsp; That's the
only change I could see.&amp;nbsp; There are some good&amp;nbsp;changes to the ListView control.&amp;nbsp;
It has support for Groups and TileView.&amp;nbsp; Jeremy Epling has a &lt;a href="http://blogs.msdn.com/jepling/archive/2005/06/05/425494.aspx"&gt;writeup
on&amp;nbsp;Groups on his blog&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;The other big change is that the
ListView is bindable (Yeah!).&amp;nbsp; The PictureBox now supports Asychronous loading.&amp;nbsp;
The ListView and TreeView now support Owner drawing.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The linkLabel hasn't changed.&amp;nbsp; Use it as you would a Button,
except that you handle the LinkClicked event.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The CheckedListBox has the same new properties as the Listbox
as far as Formatting.&amp;nbsp; It also has a new property ThreeDCheckBoxes (bool).&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;To display a list of items, you could use either a CheckedListbox,
ComboBox, DomainUpDown, Listbox, ListView, or TreeView.&amp;nbsp; CheckedListbox, Listbox,
and ListView support multiple columns.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The WebBrowser is a new control that a hosting container for the
browser.&amp;nbsp; You&amp;nbsp;specify the location by setting the Url property.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;You can display images a variety of different ways.&amp;nbsp; You
can set the background image of a form and various controls, use a PictureBox control,
you can handle the Paint event and use the graphics object to paint an image.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The NotifyIcon component now has BalloonTips.&amp;nbsp; These should
be used to notify the user that something has happened.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/az5a73z1.aspx"&gt;Access
keys are still defined &lt;/a&gt;by prefixing with an "&amp;amp;"&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;em&gt;Next up-&amp;gt; Menus&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=1216572f-dff7-4f09-9d01-1c2fb0e8150b" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,1216572f-dff7-4f09-9d01-1c2fb0e8150b.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=7661d2ca-331b-46a3-976b-8f1c5248cc25</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,7661d2ca-331b-46a3-976b-8f1c5248cc25.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,7661d2ca-331b-46a3-976b-8f1c5248cc25.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7661d2ca-331b-46a3-976b-8f1c5248cc25</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <em>
          <font color="#a9a9a9">Manage control
layout on a Windows Form. </font>
        </em>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Group and arrange controls by using the Panel control, GroupBox
control, TabControl control, FlowLayoutPanel control, and TableLayoutPanel control. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Use the SplitContainer control to create dynamic container
areas.</font>
            </em>
          </li>
        </ul>
        <p>
There is an article about the different layout controls by<a href="http://www.codeproject.com/dotnet/Whidbey_ControlContainers.asp"> "benoyraj"
at codeproject</a>.  It's a good start to understanding these controls. 
Best thing to do is to throw them on a form and play around with them a little.
</p>
        <p>
Panel control hasn't changed since 1.1 (Except for the properties derived from Control
like AutoSize...)  Same with GroupBox and TabControl.  
</p>
        <p>
FlowLayoutControl places the controls in its container in a "flowing" order. 
Kind of like web stuff.  You don't have control of the Top/Left of a control
in the FlowLayoutControl.  You can set the flow to LeftToRight, TopDown, RightToLeft,
or BottomUp.  <a href="http://www.mohundro.com/blog/PermaLink,guid,7ae4fad5-87f5-43b6-b5a1-ec9623c17d7c.aspx">David
Muhundo has a blog posting </a>describing some of his feats and concerns.
</p>
        <p>
TableLayoutPanel defines a Table that you place controls in.  Again, you are
giving up control over the Top/Left of the child controls in a cell.  Only one
control can be placed in each cell.
</p>
        <p>
Split functionality has changed significantly from v1.1.  There is now a SplitContainer
that basically is two panels split either horizontally or vertically that you drop
controls into.  if you are handling resizing manually, there are two events,
SplitterMoved and SplitterMoving that you can capture.  There is a small <a href="http://www.windowsforms.net/Samples/Go%20To%20Market/Split%20Containers/SplitContainer%20FAQ.doc">FAQ
(Word Document) on WindowsForms.NET</a>.
</p>
        <p>
          <em>Next up-&gt; Windows Forms Controls</em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=7661d2ca-331b-46a3-976b-8f1c5248cc25" />
      </body>
      <title>70-552 Section II - Part I - Control Layout</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,7661d2ca-331b-46a3-976b-8f1c5248cc25.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,7661d2ca-331b-46a3-976b-8f1c5248cc25.aspx</link>
      <pubDate>Tue, 14 Feb 2006 17:37:03 GMT</pubDate>
      <description>&lt;em&gt;&lt;font color=#a9a9a9&gt;Manage control layout on a Windows Form. &lt;/font&gt;&lt;/em&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Group and arrange controls by using the Panel control, GroupBox
control, TabControl control, FlowLayoutPanel control, and TableLayoutPanel control. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Use the SplitContainer control to create dynamic container
areas.&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
There is an article about the different layout controls by&lt;a href="http://www.codeproject.com/dotnet/Whidbey_ControlContainers.asp"&gt; "benoyraj"
at codeproject&lt;/a&gt;.&amp;nbsp; It's a good start to understanding these controls.&amp;nbsp;
Best thing to do is to throw them on a form and play around with them a little.
&lt;/p&gt;
&lt;p&gt;
Panel control hasn't changed since 1.1 (Except for the properties derived from Control
like AutoSize...)&amp;nbsp; Same with GroupBox and TabControl.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
FlowLayoutControl places the controls in its container in a "flowing" order.&amp;nbsp;
Kind of like web stuff.&amp;nbsp; You don't have control of the Top/Left of a control
in the FlowLayoutControl.&amp;nbsp; You can set the flow to LeftToRight, TopDown, RightToLeft,
or BottomUp.&amp;nbsp; &lt;a href="http://www.mohundro.com/blog/PermaLink,guid,7ae4fad5-87f5-43b6-b5a1-ec9623c17d7c.aspx"&gt;David
Muhundo has a blog posting &lt;/a&gt;describing some of his feats and concerns.
&lt;/p&gt;
&lt;p&gt;
TableLayoutPanel defines a Table that you place controls in.&amp;nbsp; Again, you are
giving up control over the Top/Left of the child controls in a cell.&amp;nbsp; Only one
control can be placed in each cell.
&lt;/p&gt;
&lt;p&gt;
Split functionality has changed significantly from v1.1.&amp;nbsp; There is now a SplitContainer
that basically is two panels split either horizontally or vertically that you drop
controls into.&amp;nbsp; if you are handling resizing manually, there are two events,
SplitterMoved and SplitterMoving that you can capture.&amp;nbsp; There is a small &lt;a href="http://www.windowsforms.net/Samples/Go%20To%20Market/Split%20Containers/SplitContainer%20FAQ.doc"&gt;FAQ
(Word Document) on WindowsForms.NET&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up-&amp;gt; Windows Forms Controls&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=7661d2ca-331b-46a3-976b-8f1c5248cc25" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,7661d2ca-331b-46a3-976b-8f1c5248cc25.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=d4296e9d-c67d-431d-af73-c8a08e926fda</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,d4296e9d-c67d-431d-af73-c8a08e926fda.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,d4296e9d-c67d-431d-af73-c8a08e926fda.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d4296e9d-c67d-431d-af73-c8a08e926fda</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>
            <font color="#a9a9a9">Enhance the user interface of a .NET Framework application
by using the System.Drawing namespace. </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Enhance the user interface of a .NET Framework application
by using brushes, pens, colors, and fonts. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Enhance the user interface of a .NET Framework application
by using graphics, images, bitmaps, and icons. </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Enhance the user interface of a .NET Framework application
by using shapes and sizes. </font>
            </em>
          </li>
        </ul>
        <p>
          <font color="#000000">
            <a href="http://www.vbdotnetheaven.com/UploadFile/mahesh/GdiPlusBiggeners04272005015358AM/GdiPlusBiggeners.aspx?ArticleID=504ab23f-ac4b-4840-849a-9331b64749ac">Mahesh
Chand has an intro to GDI+ </a>article at vbdotnetheaven.  <a href="http://www.vbdotnetheaven.com/Code/Apr2003/001.asp">He
also has an article </a>describing GDI+ brushes.  <a href="http://www.vbdotnetheaven.com/UploadFile/mahesh/GDIplusPensandFonts04212005022242AM/GDIplusPensandFonts.aspx?ArticleID=d9da45ca-5080-425a-a397-e704b0c3b755">Finally,
there is also has an article </a>on Pens and Fonts.  </font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://www.ondotnet.com/pub/a/dotnet/2002/05/20/drawing.html?page=1">Budi
Kurianwan has nice article in C#</a> covering the basics.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://www.bobpowell.net/beginnersgdi.htm">Bob Powell
has an excellent intro </a>article, and he also <a href="http://www.bobpowell.net/faqmain.htm">maintains the
GDI+</a> FAQ.</font>
        </p>
        <p>
          <font color="#000000">Remember that Pens are used to draw lines and shapes, Brushes
are used to fill surfaces, Fonts are used to render text, and Colors are... colors.</font>
        </p>
        <p>
          <font color="#000000">I suspect it would be good to know the different types of Brushes
available: <a href="http://msdn2.microsoft.com/en-us/library/system.drawing.solidbrush.aspx">SolidBrush</a>, <a href="http://msdn2.microsoft.com/en-us/library/system.drawing.texturebrush.aspx">TextureBrush</a>, <a href="http://msdn2.microsoft.com/en-us/library/system.drawing.drawing2d.hatchbrush.aspx">HatchBrush</a>, <a href="http://msdn2.microsoft.com/en-us/library/system.drawing.drawing2d.hatchbrush.aspx">LinearGradientBrush</a>,
and <a href="http://msdn2.microsoft.com/en-us/library/system.drawing.drawing2d.pathgradientbrush.aspx">PathGradientBrush</a>.</font>
        </p>
        <p>
          <font color="#000000">Image class is abtract, Bitmap and <a href="http://msdn2.microsoft.com/en-us/library/system.drawing.imaging.metafile.aspx">Metafile </a>are
the actual implementation classes.</font>
        </p>
        <p>
          <font color="#000000">The graphics class can draw the following types of shapes/lines:
Arc, Bezier splines, Closed Cardinal Spline (ClosedCurve), Curve, Ellipse, Line, Path,
Pie slice, Polygon (regular and irregular),  Rectangle.  It can fill
a Closed Cardinal Spline, Ellipse, Path, Pie slice, Polygon, or Rectangle.</font>
        </p>
        <p>
          <font color="#000000">That's it for Section I!  Now I will begin preparing for
the specifics of 70-552 (WinForms) 
<br /></font>
          <font color="#000000">
            <em>Next Up -&gt;Creating a UI for a Windows Forms Application
by Using Standard Controls </em>
          </font>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=d4296e9d-c67d-431d-af73-c8a08e926fda" />
      </body>
      <title>70-551, 70-552, 70-553 Section I, Part XV - System.Drawing</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,d4296e9d-c67d-431d-af73-c8a08e926fda.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,d4296e9d-c67d-431d-af73-c8a08e926fda.aspx</link>
      <pubDate>Tue, 14 Feb 2006 17:03:51 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Enhance the user interface of a .NET Framework application
by using the System.Drawing namespace. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Enhance the user interface of a .NET Framework application
by using brushes, pens, colors, and fonts. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Enhance the user interface of a .NET Framework application
by using graphics, images, bitmaps, and icons. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Enhance the user interface of a .NET Framework application
by using shapes and sizes. &lt;/font&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://www.vbdotnetheaven.com/UploadFile/mahesh/GdiPlusBiggeners04272005015358AM/GdiPlusBiggeners.aspx?ArticleID=504ab23f-ac4b-4840-849a-9331b64749ac"&gt;Mahesh
Chand has an intro to GDI+ &lt;/a&gt;article at vbdotnetheaven.&amp;nbsp; &lt;a href="http://www.vbdotnetheaven.com/Code/Apr2003/001.asp"&gt;He
also has an article &lt;/a&gt;describing GDI+ brushes.&amp;nbsp; &lt;a href="http://www.vbdotnetheaven.com/UploadFile/mahesh/GDIplusPensandFonts04212005022242AM/GDIplusPensandFonts.aspx?ArticleID=d9da45ca-5080-425a-a397-e704b0c3b755"&gt;Finally,
there is&amp;nbsp;also has an article &lt;/a&gt;on Pens and Fonts.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://www.ondotnet.com/pub/a/dotnet/2002/05/20/drawing.html?page=1"&gt;Budi
Kurianwan has nice article in C#&lt;/a&gt; covering the basics.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://www.bobpowell.net/beginnersgdi.htm"&gt;Bob Powell
has an excellent intro &lt;/a&gt;article, and he also &lt;a href="http://www.bobpowell.net/faqmain.htm"&gt;maintains&amp;nbsp;the
GDI+&lt;/a&gt; FAQ.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Remember that Pens are used to draw lines and shapes, Brushes
are used to fill surfaces, Fonts are used to render text, and Colors are... colors.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;I suspect it would be good to know the different types of Brushes
available: &lt;a href="http://msdn2.microsoft.com/en-us/library/system.drawing.solidbrush.aspx"&gt;SolidBrush&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/system.drawing.texturebrush.aspx"&gt;TextureBrush&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/system.drawing.drawing2d.hatchbrush.aspx"&gt;HatchBrush&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/system.drawing.drawing2d.hatchbrush.aspx"&gt;LinearGradientBrush&lt;/a&gt;,
and &lt;a href="http://msdn2.microsoft.com/en-us/library/system.drawing.drawing2d.pathgradientbrush.aspx"&gt;PathGradientBrush&lt;/a&gt;.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Image class is abtract, Bitmap and &lt;a href="http://msdn2.microsoft.com/en-us/library/system.drawing.imaging.metafile.aspx"&gt;Metafile &lt;/a&gt;are
the actual implementation classes.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;The graphics class can draw the following types of shapes/lines:
Arc, Bezier splines, Closed Cardinal Spline (ClosedCurve), Curve, Ellipse, Line, Path,
Pie slice, Polygon (regular and irregular),&amp;nbsp;&amp;nbsp;Rectangle.&amp;nbsp; It can fill
a Closed Cardinal Spline, Ellipse, Path, Pie slice, Polygon, or Rectangle.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;That's it for Section I!&amp;nbsp; Now I will begin preparing for
the specifics of 70-552 (WinForms) 
&lt;br&gt;
&lt;/font&gt;&lt;font color=#000000&gt;&lt;em&gt;Next Up -&amp;gt;Creating a UI for a Windows Forms Application
by Using Standard Controls &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=d4296e9d-c67d-431d-af73-c8a08e926fda" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,d4296e9d-c67d-431d-af73-c8a08e926fda.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=72419b36-ac10-46b2-a15f-6dce5853ea1e</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,72419b36-ac10-46b2-a15f-6dce5853ea1e.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,72419b36-ac10-46b2-a15f-6dce5853ea1e.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=72419b36-ac10-46b2-a15f-6dce5853ea1e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <em>
          <font color="#a9a9a9">Send electronic
mail to a Simple Mail Transfer Protocol (SMTP) server for delivery from a .NET Framework
application. (Refer System.Net.Mail namespace) </font>
        </em>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">MailMessage class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">MailAddress class and MailAddressCollection class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">SmtpClient class, SmtpPermission class, and SmtpPermissionAttribute
class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Attachment class, AttachmentBase class, and AttachmentCollection
class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">SmtpException class, SmtpFailedReceipientException class,
and SmtpFailedReceipientsException class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">SendCompletedEventHandler delegate </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">LinkedResource class and LinkedResourceCollection class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">AlternateView class and AlternateViewCollection class </font>
            </em>
          </li>
        </ul>
        <p>
This is a completely new namespace.  The old System.Web.Mail namespace has been
deprecated.  This new implementation is not dependent on CDO.  <a href="http://www.eggheadcafe.com/articles/20050505.asp">Dr.
Peter Bromberg has an introductory article </a>on the new features.  There is
also the infamous <a href="http://www.systemnetmail.com/">www.systemnetmail.com</a> site.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.mailmessage.aspx">MailMessage</a> class
- Represents an email message.  New properties for this (compared to the properties
in the web.mail version) are DeliveryOptions, ReplyTo, and SubjectEncoding. 
There is also support for AlternateViews - allowing you to send both text and
HTML representations of the email.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.mailmessage.aspx">MailAddress </a>class
- Represents an email address.  Address, DisplayName, Host, and User are readonly
properties of this object.  Properties are set in the constructor.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.mailaddresscollection.aspx">MailAddressCollection</a> class
- Collection of MailAddress objects.  
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx">SmtpClient</a> class
- This class sends email via SMTP.  It is not dependent on CDO, it can work over
SSL, and the send can be performed async.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtppermission.aspx">SmtpPermission</a> class
- This class regulates whether or not an application can send mail via SMTP. 
Access can be locked down to no access, only via the default port (25), or unrestricted. 
What's interesting is that this class doesn't appear in the Create Permission Set
wizard.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtppermissionattribute.aspx">SmtpPermissionAttribute</a> class
- Attribute implementation of the SmtpPermission class.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtpexception.aspx">SmtpException </a>class
- Exception that is thrown when SMTP Client can't complete a send or sendasync operation.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtpfailedrecipientexception.aspx">SmtpFailedReceipientException</a> class
- Exception that is thrown when a receipient is not valid.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtpfailedrecipientsexception.aspx">SmtpFailedReceipientsException </a>class
- Exception that is thrown when an email can't be sent to ALL of the receipients. 
"This class supports the .NET Framework infrastructure and is not intended to be used
directly from your code. "... The following statement from the remarks in the documentation
contradicts the explanation: "The <a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl25','ctl00_LibFrame_MainContent_ctl26',this);" href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtpfailedrecipientsexception.innerexceptions.aspx">InnerExceptions</a> property
contains the exceptions received while attempting to send e-mail. The e-mail might
have been successfully delivered to some of the recipients."
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.sendcompletedeventhandler.aspx">SendCompletedEventHandler </a>delegate
- Delegate that is called when an async send is complete.  Handles the SendCompleted
event.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.linkedresource.aspx">LinkedResource</a> class
- Represents an embedded resource in a message, such as a HTML image.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.linkedresourcecollection.aspx">LinkedResourceCollection</a> class
- Collection of LinkedResources.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.alternateview.aspx">AlternateView </a>class
- This class is used to represent an alternate view of a mail message.  This
would likely be an HTML version of the email. 
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.alternateviewcollection.aspx">AlternateViewCollection</a> class
- Collection of AlternateView objects.  This is used in the AlternateViews property
on the MailMessage object.
</p>
        <p>
          <em>Next up -&gt; GDI</em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=72419b36-ac10-46b2-a15f-6dce5853ea1e" />
      </body>
      <title>70-551, 70-552, 70-553 Section I, Part XIV - System.Net.Mail</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,72419b36-ac10-46b2-a15f-6dce5853ea1e.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,72419b36-ac10-46b2-a15f-6dce5853ea1e.aspx</link>
      <pubDate>Mon, 13 Feb 2006 19:31:33 GMT</pubDate>
      <description>&lt;em&gt;&lt;font color=#a9a9a9&gt;Send electronic mail to a Simple Mail Transfer Protocol (SMTP)
server for delivery from a .NET Framework application. (Refer System.Net.Mail namespace) &lt;/font&gt;&lt;/em&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;MailMessage class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;MailAddress class and MailAddressCollection class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;SmtpClient class, SmtpPermission class, and SmtpPermissionAttribute
class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Attachment class, AttachmentBase class, and AttachmentCollection
class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;SmtpException class, SmtpFailedReceipientException class,
and SmtpFailedReceipientsException class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;SendCompletedEventHandler delegate &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;LinkedResource class and LinkedResourceCollection class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;AlternateView class and AlternateViewCollection class &lt;/font&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
This is a completely new namespace.&amp;nbsp; The old System.Web.Mail namespace has been
deprecated.&amp;nbsp; This new implementation is not dependent on CDO.&amp;nbsp; &lt;a href="http://www.eggheadcafe.com/articles/20050505.asp"&gt;Dr.
Peter Bromberg has an introductory article &lt;/a&gt;on the new features.&amp;nbsp; There is
also the infamous &lt;a href="http://www.systemnetmail.com/"&gt;www.systemnetmail.com&lt;/a&gt; site.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.mailmessage.aspx"&gt;MailMessage&lt;/a&gt; class
- Represents an email message.&amp;nbsp; New properties for this (compared to the properties
in the web.mail version) are DeliveryOptions, ReplyTo, and SubjectEncoding.&amp;nbsp;
There is also support&amp;nbsp;for AlternateViews - allowing you to send both text and
HTML representations of the email.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.mailmessage.aspx"&gt;MailAddress &lt;/a&gt;class
- Represents an email address.&amp;nbsp; Address, DisplayName, Host, and User are readonly
properties of this object.&amp;nbsp; Properties are set in the constructor.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.mailaddresscollection.aspx"&gt;MailAddressCollection&lt;/a&gt; class
- Collection of MailAddress objects.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx"&gt;SmtpClient&lt;/a&gt; class
- This class sends email via SMTP.&amp;nbsp; It is not dependent on CDO, it can work over
SSL, and the send can be performed async.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtppermission.aspx"&gt;SmtpPermission&lt;/a&gt; class
- This class regulates whether or not an application can send mail via SMTP.&amp;nbsp;
Access can be locked down to no access, only via the default port (25), or unrestricted.&amp;nbsp;
What's interesting is that this class doesn't appear in the Create Permission Set
wizard.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtppermissionattribute.aspx"&gt;SmtpPermissionAttribute&lt;/a&gt; class
- Attribute implementation of the SmtpPermission class.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtpexception.aspx"&gt;SmtpException &lt;/a&gt;class
- Exception that is thrown when SMTP Client can't complete a send or sendasync operation.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtpfailedrecipientexception.aspx"&gt;SmtpFailedReceipientException&lt;/a&gt; class
- Exception that is thrown when a receipient is not valid.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtpfailedrecipientsexception.aspx"&gt;SmtpFailedReceipientsException &lt;/a&gt;class
- Exception that is thrown when an email can't be sent to ALL of the receipients.&amp;nbsp;
"This class supports the .NET Framework infrastructure and is not intended to be used
directly from your code. "... The following statement from the remarks in the documentation
contradicts the explanation: "The &lt;a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl25','ctl00_LibFrame_MainContent_ctl26',this);" href="http://msdn2.microsoft.com/en-us/library/system.net.mail.smtpfailedrecipientsexception.innerexceptions.aspx"&gt;InnerExceptions&lt;/a&gt; property
contains the exceptions received while attempting to send e-mail. The e-mail might
have been successfully delivered to some of the recipients."
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.sendcompletedeventhandler.aspx"&gt;SendCompletedEventHandler &lt;/a&gt;delegate
- Delegate that is called when an async send is complete.&amp;nbsp; Handles the SendCompleted
event.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.linkedresource.aspx"&gt;LinkedResource&lt;/a&gt; class
- Represents an embedded resource in a message, such as a HTML image.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.linkedresourcecollection.aspx"&gt;LinkedResourceCollection&lt;/a&gt; class
- Collection of LinkedResources.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.alternateview.aspx"&gt;AlternateView &lt;/a&gt;class
- This class is used to represent an alternate view of a mail message.&amp;nbsp; This
would likely be an HTML version of the email.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.mail.alternateviewcollection.aspx"&gt;AlternateViewCollection&lt;/a&gt; class
- Collection of AlternateView objects.&amp;nbsp; This is used in the AlternateViews property
on the MailMessage object.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up -&amp;gt; GDI&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=72419b36-ac10-46b2-a15f-6dce5853ea1e" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,72419b36-ac10-46b2-a15f-6dce5853ea1e.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=50bcf1d6-840a-4e8f-9b4d-3135d0c27966</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,50bcf1d6-840a-4e8f-9b4d-3135d0c27966.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,50bcf1d6-840a-4e8f-9b4d-3135d0c27966.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=50bcf1d6-840a-4e8f-9b4d-3135d0c27966</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>
            <font color="#a9a9a9">Access and modify identity information by using the
System.Security.Principal classes. (Refer System.Security.Principal namespace) </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">GenericIdentity class and GenericPrincipal class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">WindowsIdentity class and WindowsPrincipal class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">NTAccount class and SecurityIdentifier class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">IIdentity interface and IPrincipal interface </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">WindowsImpersonationContext class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">IdentityReference class and IdentityReferenceCollection
class</font>
            </em>
          </li>
        </ul>
        <p>
This is all about the identity.  It would help to have a good understanding of
the identity infrastructure in .NET.  There is a good <a href="http://www.dotnetbips.com/articles/displayarticle.aspx?id=196">writeup
on the basics by Bipin Joshi</a>.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.genericidentity.aspx">GenericIdentity </a>class
- Represents a "Generic" user.  
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.genericprincipal.aspx">GenericPrincipal </a>class
- Represents a "Generic" principal.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.windowsidentity.aspx">WindowsIdentity </a>class - Represents
a windows user.  Keith Brown has a <a href="http://pluralsight.com/wiki/default.aspx/Keith.GuideBook/WhatIsWindowsIdentityAndWindowsPrincipal.html">good
writeup on WindowsIdentity </a>and WindowsPrincipal on his .NET Developers Guide to
Security.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.windowsprincipal.aspx">WindowsPrincipal</a> class
- Provides the ability to check the Windows group membership of a Windows user.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.ntaccount.aspx">NTAccount</a> class
- New to 2.0 Represents an NT User or Group. This class has the ability to get the
security identifier (useful for access control operations) via the translate method.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.securityidentifier.aspx">SecurityIdentifier</a> class
- New to 2.0. Represents a Windows Security Identifier (SID).  Useful for ACL
operations.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.iidentity.aspx">IIdentity</a> interface
- Defines the basic functionality of an identity object.  Name, AuthenticationType,
and IsAuthenticated are the members that must be implemented.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.iprincipal.aspx">IPrincipal</a> interface
- Defines the basic functionality of a principal object.  Identity and IsInRole
must be implemented.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.windowsimpersonationcontext.aspx">WindowsImpersonationContext </a>class
- Represents a windows user prior to impersonation.  Allows you to revert back
to the original user by calling the Undo method.  Marc Merritt has a <a href="http://www.codeproject.com/csharp/cpimpersonation1.asp">nice
simple demonstration at The Code Project</a>.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.identityreference.aspx">IdentityReference</a> class
- New to 2.0.  Base class for NTAccount and SecurityIdentifier classes.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.identityreferencecollection.aspx">IdentityReferenceCollection</a> class
- New to 2.0.  Collection of IdentityReference classes.  Has a translate
method to change objects from one type of identity to another.  An example would
be from NTAccount to SecurityIdentifier.
</p>
        <p>
          <em>Next up -&gt; System.Net.Mail</em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=50bcf1d6-840a-4e8f-9b4d-3135d0c27966" />
      </body>
      <title>70-551, 70-552, 70-553 Section I, Part XIII - Security.Principal</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,50bcf1d6-840a-4e8f-9b4d-3135d0c27966.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,50bcf1d6-840a-4e8f-9b4d-3135d0c27966.aspx</link>
      <pubDate>Mon, 13 Feb 2006 17:37:43 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Access and modify identity information by using&amp;nbsp;the System.Security.Principal
classes. (Refer System.Security.Principal namespace) &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;GenericIdentity class and GenericPrincipal class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;WindowsIdentity class and WindowsPrincipal class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;NTAccount class and SecurityIdentifier class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;IIdentity interface and IPrincipal interface &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;WindowsImpersonationContext class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;IdentityReference class and IdentityReferenceCollection class&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
This is all about the identity.&amp;nbsp; It would help to have a good understanding of
the identity infrastructure in .NET.&amp;nbsp; There is a good &lt;a href="http://www.dotnetbips.com/articles/displayarticle.aspx?id=196"&gt;writeup
on the basics by Bipin Joshi&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.genericidentity.aspx"&gt;GenericIdentity &lt;/a&gt;class
- Represents a "Generic" user.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.genericprincipal.aspx"&gt;GenericPrincipal &lt;/a&gt;class
- Represents a "Generic" principal.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.windowsidentity.aspx"&gt;WindowsIdentity &lt;/a&gt;class&amp;nbsp;-&amp;nbsp;Represents
a windows user.&amp;nbsp; Keith Brown has a &lt;a href="http://pluralsight.com/wiki/default.aspx/Keith.GuideBook/WhatIsWindowsIdentityAndWindowsPrincipal.html"&gt;good
writeup on WindowsIdentity &lt;/a&gt;and WindowsPrincipal on his .NET Developers Guide to
Security.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.windowsprincipal.aspx"&gt;WindowsPrincipal&lt;/a&gt; class
- Provides the ability to check the Windows group membership of a Windows user.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.ntaccount.aspx"&gt;NTAccount&lt;/a&gt; class
- New to 2.0 Represents an NT User or Group. This class has the ability to get the
security identifier (useful for access control operations) via the translate method.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.securityidentifier.aspx"&gt;SecurityIdentifier&lt;/a&gt; class
- New to 2.0. Represents a Windows Security Identifier (SID).&amp;nbsp; Useful for ACL
operations.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.iidentity.aspx"&gt;IIdentity&lt;/a&gt; interface
- Defines the basic functionality of an identity object.&amp;nbsp; Name, AuthenticationType,
and IsAuthenticated are the members that must be implemented.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.iprincipal.aspx"&gt;IPrincipal&lt;/a&gt; interface
- Defines the basic functionality of a principal object.&amp;nbsp; Identity and IsInRole
must be implemented.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.windowsimpersonationcontext.aspx"&gt;WindowsImpersonationContext &lt;/a&gt;class
- Represents a windows user prior to impersonation.&amp;nbsp; Allows you to revert back
to the original user by calling the Undo method.&amp;nbsp; Marc Merritt has a &lt;a href="http://www.codeproject.com/csharp/cpimpersonation1.asp"&gt;nice
simple demonstration at The Code Project&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.identityreference.aspx"&gt;IdentityReference&lt;/a&gt; class
- New to 2.0.&amp;nbsp; Base class for NTAccount and SecurityIdentifier classes.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.principal.identityreferencecollection.aspx"&gt;IdentityReferenceCollection&lt;/a&gt; class
- New to 2.0.&amp;nbsp; Collection of IdentityReference classes.&amp;nbsp; Has a translate
method to change objects from one type of identity to another.&amp;nbsp; An example would
be from NTAccount to SecurityIdentifier.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up -&amp;gt; System.Net.Mail&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=50bcf1d6-840a-4e8f-9b4d-3135d0c27966" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,50bcf1d6-840a-4e8f-9b4d-3135d0c27966.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=1138241b-d08f-4e96-a6ed-7c98faf080ba</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,1138241b-d08f-4e96-a6ed-7c98faf080ba.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,1138241b-d08f-4e96-a6ed-7c98faf080ba.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1138241b-d08f-4e96-a6ed-7c98faf080ba</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <font color="#a9a9a9">
          <em>Control code
privileges by using System.Security.Policy classes. (Refer System.Security.Policy
namespace) </em>
          <ul>
            <li>
              <em>ApplicationSecurityInfo class and ApplicationSecurityManager class </em>
            </li>
            <li>
              <em>ApplicationTrust class and ApplicationTrustCollection class </em>
            </li>
            <li>
              <em>Evidence class and PermissionRequestEvidence class </em>
            </li>
            <li>
              <em>CodeGroup class, FileCodeGroup class, FirstMatchCodeGroup class, NetCodeGroup
class, and UnionCodeGroup class </em>
            </li>
            <li>
              <em>Condition classes </em>
            </li>
            <li>
              <em>PolicyLevel class and PolicyStatement class </em>
            </li>
            <li>
              <em>IApplicationTrustManager interface, IMembershipCondition interface, and IIdentityPermissionFactory
interface </em>
            </li>
          </ul>
          <p>
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.applicationsecurityinfo.aspx">ApplicationSecurityInfo</a> class
- New to 2.0. I've been looking for this class. This class holds information about
the evidence belonging to the assembly. It also has the default permission set assigned
to the assembly. This will make troubleshooting CAS problems much easier.</font>
          </p>
          <p>
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.applicationsecuritymanager.aspx">ApplicationSecurityManager</a> class
- "Manages trust decisions for manifest activated applications"? There has to be a
better way to document this class. There is an ApplicationTrustManager property that
provides access to the ApplicationTrustManager object for the assembly. People more
familiar with Clickonce might recognize where this would be used.</font>
          </p>
          <p>
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.applicationtrust.aspx">ApplicationTrust</a> class
- Encapsulates security decisions for an application. Has properties such as ApplicationIdentity,
DefaultGrantSet, IsApplicationTrustedToRun.</font>
          </p>
          <p>
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.applicationtrustcollection.aspx">ApplicationTrustCollection</a> class
- Collection of ApplicationTrusts. Again, I'm not real strong on the clickonce stuff
(which is where I think this stuff comes in handy), but I don't see why I would ever
have more than one ApplicationTrust?</font>
          </p>
          <p>
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.evidence.aspx">Evidence</a> class
- Holds the evidence that belongs to the assembly. You can enumerate with this object
to get all the associated evidence.</font>
          </p>
          <p>
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.permissionrequestevidence.aspx">PermissionRequestEvidence</a> class
- Representation of all the RequiredPermissions, OptionalPermissions, and DeniedPermissions
that are needed to run the assembly. These are declaratively stated by the developer.</font>
          </p>
          <p>
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.codegroup.aspx">CodeGroup </a>class
- Abtract class that represents a code group.</font>
          </p>
          <p>
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.filecodegroup.aspx">FileCodeGroup </a>class
- generates a set of permission containing  <font face="Verdana">FileIOPermissions
that grant read-only access to the application directory .</font></font>
          </p>
          <p>
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.firstmatchcodegroup.aspx">FirstMatchCodeGroup </a>class
- "Allows security policy to be defined by the union of the policy statement of a
code group and that of the first child code group that matches."  The <a href="http://blogs.msdn.com/shawnfa/archive/2004/12/14/301229.aspx">.NET
Security blog has a tidbit </a>on this class.</font>
          </p>
          <p>
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.netcodegroup.aspx">NetCodeGroup </a>class
- Grants web permission to the site the code was downloaded from.  </font>
          </p>
          <p dir="ltr" style="MARGIN-RIGHT: 0px">
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.unioncodegroup.aspx">UnionCodeGroup</a> class
- "Represents a code group whose policy statement is the union of the current code
group's policy statement and the policy statement of all its matching child code groups.
".  This is the default and most-often used type of CodeGroup.</font>
          </p>
          <p dir="ltr" style="MARGIN-RIGHT: 0px">
            <font color="#000000">Condition classes - There are quite a few condition classes,
all implementing <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.imembershipcondition.aspx">IMembershipCondition</a>. 
A condition is assigned to a code group which controls whether or not the permission
set belonging to the code group is applied.</font>
          </p>
          <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
            <p>
              <font color="#000000">
                <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.allmembershipcondition.aspx">AllMembershipCondition</a> -
This is your 1==1 class.  Always matches.</font>
            </p>
            <p>
              <font color="#000000">
                <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.applicationdirectorymembershipcondition.aspx">ApplicationDirectoryMembershipCondition </a>-
This matches when the code is located in the application directory.</font>
            </p>
            <p>
              <font color="#000000">
                <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.gacmembershipcondition.aspx">GACMembershipCondition</a> -
New to 2.0. This produces a match if the assembly is located in the GAC.</font>
            </p>
            <p>
              <font color="#000000">
                <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.hashmembershipcondition.aspx">HashMembershipCondition</a> -
Produces a match if a hash matches a hash of the assembly.  The hash can be produced
by using the Code Group Wizard.</font>
            </p>
            <p>
              <font color="#000000">
                <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.publishermembershipcondition.aspx">PublisherMembershipCondition</a> -
Produces a match if the assembly was produced by a specific publisher identitified
using Authenticode certificates.</font>
            </p>
            <p>
              <font color="#000000">
                <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.sitemembershipcondition.aspx">SiteMembershipCondition</a> -
Produces a match if the assembly is located in a specific site.  The site is
basically the domain name.</font>
            </p>
            <p>
              <font color="#000000">
                <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.sitemembershipcondition.aspx">StrongNameMembershipCondition</a> -
Produces a match if the assembly has a specific strong name.</font>
            </p>
            <p>
              <font color="#000000">
                <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.urlmembershipcondition.aspx">UrlMembershipCondition</a> -
Produces a match if the URL of assembly matches a Url.  The Url can have a wildcard
in the final position.</font>
            </p>
            <p>
              <font color="#000000">
                <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.zonemembershipcondition.aspx">ZoneMembershipCondition </a>-
Produces a match if the assembly was downloaded from a specific Zone (Internet, Intranet,
Trusted Sites...)</font>
            </p>
          </blockquote>
          <p dir="ltr">
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.policylevel.aspx">PolicyLevel</a> class
- Represents the security policy levels for the CLR.  There are four policy levels
: Enterprise, Machine, User, and AppDomain.</font>
          </p>
          <p dir="ltr">
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.policystatement.aspx">PolicyStatement </a>class
- Represents the set of granted permissions, given a set of evidence.  The
Resolve method in the PolicyLevel returns this object.</font>
          </p>
          <p dir="ltr">
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.iapplicationtrustmanager.aspx">IApplicationTrustManager </a>interface
- New to 2.0.  If you're writing your own Trust Manager, you're required to implement
this interface.  This is used to implement Manifest-based Activation (Clickonce)</font>
          </p>
          <p dir="ltr">
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.imembershipcondition.aspx">IMembershipCondition</a> interface
- Condition classes (see above) are required to implement this interface.  If
you're writing your own custom membership condition, you would implement this interface.</font>
          </p>
          <p dir="ltr">
            <font color="#000000">
              <a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.iidentitypermissionfactory.aspx">IIdentityPermissionFactory</a> interface
- "Defines the method that creates a new identity permission. "  It appears all
evidence classes should implement this class.  I don't completely understand
the intent of this interface.</font>
          </p>
          <p dir="ltr">
            <font color="#000000">
              <em>Next up -&gt; Security.Principal</em>
            </font>
          </p>
        </font>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=1138241b-d08f-4e96-a6ed-7c98faf080ba" />
      </body>
      <title>70-551, 70-552, 70-553 Section I, Part XII - Security.Policy</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,1138241b-d08f-4e96-a6ed-7c98faf080ba.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,1138241b-d08f-4e96-a6ed-7c98faf080ba.aspx</link>
      <pubDate>Mon, 13 Feb 2006 16:16:23 GMT</pubDate>
      <description>&lt;font color=#a9a9a9&gt;&lt;em&gt;Control code privileges by using System.Security.Policy classes.
(Refer System.Security.Policy namespace) &lt;/em&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;ApplicationSecurityInfo class and ApplicationSecurityManager class &lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;ApplicationTrust class and ApplicationTrustCollection class &lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;Evidence class and PermissionRequestEvidence class &lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;CodeGroup class, FileCodeGroup class, FirstMatchCodeGroup class, NetCodeGroup
class, and UnionCodeGroup class &lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;Condition classes &lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;PolicyLevel class and PolicyStatement class &lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;IApplicationTrustManager interface, IMembershipCondition interface, and IIdentityPermissionFactory
interface &lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.applicationsecurityinfo.aspx"&gt;ApplicationSecurityInfo&lt;/a&gt; class
- New to 2.0. I've been looking for this class. This class holds information about
the evidence belonging to the assembly. It also has the default permission set assigned
to the assembly. This will make troubleshooting CAS problems much easier.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.applicationsecuritymanager.aspx"&gt;ApplicationSecurityManager&lt;/a&gt; class
- "Manages trust decisions for manifest activated applications"? There has to be a
better way to document this class. There is an ApplicationTrustManager property that
provides access to the ApplicationTrustManager object for the assembly. People more
familiar with Clickonce might recognize where this would be used.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.applicationtrust.aspx"&gt;ApplicationTrust&lt;/a&gt; class
- Encapsulates security decisions for an application. Has properties such as ApplicationIdentity,
DefaultGrantSet, IsApplicationTrustedToRun.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.applicationtrustcollection.aspx"&gt;ApplicationTrustCollection&lt;/a&gt; class
- Collection of ApplicationTrusts. Again, I'm not real strong on the clickonce stuff
(which is where I think this stuff comes in handy), but I don't see why I would ever
have more than one ApplicationTrust?&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.evidence.aspx"&gt;Evidence&lt;/a&gt; class
- Holds the evidence that belongs to the assembly. You can enumerate with this object
to get all the associated evidence.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.permissionrequestevidence.aspx"&gt;PermissionRequestEvidence&lt;/a&gt; class
- Representation of all the RequiredPermissions, OptionalPermissions, and DeniedPermissions
that are needed to run the assembly. These are declaratively stated by the developer.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.codegroup.aspx"&gt;CodeGroup &lt;/a&gt;class
- Abtract class that represents a code group.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.filecodegroup.aspx"&gt;FileCodeGroup &lt;/a&gt;class
- generates a set of permission containing&amp;nbsp; &lt;font face=Verdana&gt;FileIOPermissions
that grant read-only access to the application directory .&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.firstmatchcodegroup.aspx"&gt;FirstMatchCodeGroup &lt;/a&gt;class
- "Allows security policy to be defined by the union of the policy statement of a
code group and that of the first child code group that matches."&amp;nbsp; The &lt;a href="http://blogs.msdn.com/shawnfa/archive/2004/12/14/301229.aspx"&gt;.NET
Security blog has a tidbit &lt;/a&gt;on this class.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.netcodegroup.aspx"&gt;NetCodeGroup &lt;/a&gt;class
- Grants web permission to the site the code was downloaded from.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.unioncodegroup.aspx"&gt;UnionCodeGroup&lt;/a&gt; class
- "Represents a code group whose policy statement is the union of the current code
group's policy statement and the policy statement of all its matching child code groups.
".&amp;nbsp; This is the default and most-often used type of CodeGroup.&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;font color=#000000&gt;Condition classes - There are quite a few condition classes, all
implementing &lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.imembershipcondition.aspx"&gt;IMembershipCondition&lt;/a&gt;.&amp;nbsp;
A condition is assigned to a code group which controls whether or not the permission
set belonging to the code group is applied.&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.allmembershipcondition.aspx"&gt;AllMembershipCondition&lt;/a&gt; -
This is your 1==1 class.&amp;nbsp; Always matches.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.applicationdirectorymembershipcondition.aspx"&gt;ApplicationDirectoryMembershipCondition &lt;/a&gt;-
This matches when the code is located in the application directory.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.gacmembershipcondition.aspx"&gt;GACMembershipCondition&lt;/a&gt; -
New to 2.0. This produces a match if the assembly is located in the GAC.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.hashmembershipcondition.aspx"&gt;HashMembershipCondition&lt;/a&gt; -
Produces a match if a hash matches a hash of the assembly.&amp;nbsp; The hash can be produced
by using the Code Group Wizard.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.publishermembershipcondition.aspx"&gt;PublisherMembershipCondition&lt;/a&gt; -
Produces a match if the assembly was produced by a specific publisher identitified
using Authenticode certificates.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.sitemembershipcondition.aspx"&gt;SiteMembershipCondition&lt;/a&gt; -
Produces a match if the assembly is located in a specific site.&amp;nbsp; The site is
basically the domain name.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.sitemembershipcondition.aspx"&gt;StrongNameMembershipCondition&lt;/a&gt; -
Produces a match if the assembly has a specific strong name.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.urlmembershipcondition.aspx"&gt;UrlMembershipCondition&lt;/a&gt; -
Produces a match if the URL of assembly matches a Url.&amp;nbsp; The Url can have a wildcard
in the final position.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.zonemembershipcondition.aspx"&gt;ZoneMembershipCondition &lt;/a&gt;-
Produces a match if the assembly was downloaded from a specific Zone (Internet, Intranet,
Trusted Sites...)&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir=ltr&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.policylevel.aspx"&gt;PolicyLevel&lt;/a&gt; class
- Represents the security policy levels for the CLR.&amp;nbsp; There are four policy levels
: Enterprise, Machine, User, and AppDomain.&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.policystatement.aspx"&gt;PolicyStatement &lt;/a&gt;class
-&amp;nbsp;Represents the set of granted permissions, given a set of evidence.&amp;nbsp; The
Resolve method in the PolicyLevel returns this object.&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.iapplicationtrustmanager.aspx"&gt;IApplicationTrustManager &lt;/a&gt;interface
- New to 2.0.&amp;nbsp; If you're writing your own Trust Manager, you're required to implement
this interface.&amp;nbsp; This is used to implement Manifest-based Activation (Clickonce)&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.imembershipcondition.aspx"&gt;IMembershipCondition&lt;/a&gt; interface
- Condition classes (see above) are required to implement this interface.&amp;nbsp; If
you're writing your own custom membership condition, you would implement this interface.&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.policy.iidentitypermissionfactory.aspx"&gt;IIdentityPermissionFactory&lt;/a&gt; interface
- "Defines the method that creates a new identity permission. "&amp;nbsp; It appears all
evidence classes should implement this class.&amp;nbsp; I don't completely understand
the intent of this interface.&lt;/font&gt;
&lt;/p&gt;
&lt;p dir=ltr&gt;
&lt;font color=#000000&gt;&lt;em&gt;Next up -&amp;gt; Security.Principal&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/font&gt;&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=1138241b-d08f-4e96-a6ed-7c98faf080ba" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,1138241b-d08f-4e96-a6ed-7c98faf080ba.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=eb0a83f7-8d27-4aaa-8765-b7dfb3e927dc</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,eb0a83f7-8d27-4aaa-8765-b7dfb3e927dc.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,eb0a83f7-8d27-4aaa-8765-b7dfb3e927dc.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=eb0a83f7-8d27-4aaa-8765-b7dfb3e927dc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <em>
          <font color="#a9a9a9">Control permissions
for resources by using the System.Security.Permission classes. (Refer System.Security.Permission
namespace) </font>
        </em>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">SecurityPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">PrincipalPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">FileIOPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">StrongNameIdentityPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">UIPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">UrlIdentityPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">PublisherIdentityPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">GacIdentityPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">FileDialogPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">DataProtectionPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">EnvironmentPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">IUnrestrictedPermission interface </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">RegistryPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">IsolatedStorageFilePermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">KeyContainerPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">ReflectionPermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">StorePermission class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">SiteIdentityPermission class</font>
            </em>
          </li>
        </ul>
        <p>
I've really got to get going on these.  I'm scheduled to take 70-552 next Sat,
and I'm haven't gotten to the WinForms stuff yet.
</p>
        <p>
These next two parts are on Code Access Security.  Mike Downen (via <a href="http://blog.ziffdavis.com/devlife/archive/2006/02/06/40123.aspx">Julie
Lerman</a>) has an <a href="http://msdn.microsoft.com/msdnmag/issues/05/11/CodeAccessSecurity/default.aspx">intro
article on CAS in 2.0</a>.
</p>
        <p>
          <em>Update via <span>Zdenko - Michael Stiefel has some <a href="http://www.reliablesoftware.com/articles.html ">good
articles on his site.</a></span></em>
        </p>
        <p>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.securitypermission.aspx">SecurityPermission</a> class
- This is the class that has a lot of base attributes: Execution, SkipVerification,
UnmanagedCode, Assertion, BindingRedirects to name a few.  There don't appear
to be any new values from 1.1.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.principalpermission.aspx">PrincipalPermission</a> class
- This class allows you to control access by the current identity.  Note the
important info in the documentation:
</p>
        <p>
Prior to a demand for principal permission it is necessary to set the current application
domain's principal policy to the enumeration value <a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl35','ctl00_LibFrame_MainContent_ctl42',this);" href="http://msdn2.microsoft.com/en-us/library/system.security.principal.principalpolicy.aspx">WindowsPrincipal</a>.
By default, the principal policy is set to <a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl35','ctl00_LibFrame_MainContent_ctl43',this);" href="http://msdn2.microsoft.com/en-us/library/system.security.principal.principalpolicy.aspx">UnauthenticatedPrincipal</a>.
If you do not set the principal policy to <b>WindowsPrincipal</b>, a demand for principal
permission will fail. The following code should be executed before the principal permission
is demanded: 
</p>
        <p>
          <font face="Verdana">AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).  </font>
        </p>
        <p>
          <a href="http://www.simonrobinson.com/DotNET/Articles/CShToday/RoleBasedSec.aspx">
            <font face="Verdana">Kaushal
Sanghavi has a good article</font>
          </a>
          <font face="Verdana"> demonstrating the use
of PrincipalPermission.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.fileiopermission.aspx">
            <font face="Verdana">FileIOPermission </font>
          </a>
          <font face="Verdana">class
- Controls access to file IO.  There are 4 basic rights controlled : Read, Write,
Append and Path Discovery.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.strongnameidentitypermission.aspx">
            <font face="Verdana">StrongNameIdentityPermission</font>
          </a>
          <font face="Verdana"> class
- Allows you to limit callers to a specific strongly named assembly.  More information
can be </font>
          <a href="http://www.morganskinner.com/Articles/StrongNameIdentityPermission/">
            <font face="Verdana">found
at Morgan Skinner</font>
          </a>
          <font face="Verdana">.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.uipermission.aspx">
            <font face="Verdana">UIPermission </font>
          </a>
          <font face="Verdana">class
- Allows you to specify the permissions for UI (Winforms).  Whether or not a
window can be shown, whether or not more than one window can be shown, whether or
not the application can access the clipboard, only a system specific clipboard, or
no access whatsoever.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.urlidentitypermission.aspx">
            <font face="Verdana">UrlIdentityPermission </font>
          </a>
          <font face="Verdana">class
- In the same spirit as StrongNameIdentityPermission, allows you to limit callers
by a URL.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.publisheridentitypermission.aspx">
            <font face="Verdana">PublisherIdentityPermission </font>
          </a>
          <font face="Verdana">class
- Limits calls by a specific publisher (using Digital certificates)</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.gacidentitypermission.aspx">
            <font face="Verdana">GacIdentityPermission</font>
          </a>
          <font face="Verdana"> class
- This is new in 2.0 - Allows you to limit access by whether or not an assembly
is located in the GAC.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.filedialogpermission.aspx">
            <font face="Verdana">FileDialogPermission </font>
          </a>
          <font face="Verdana">class
- Controls whether or not the assembly can open a File dialog box.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.dataprotectionpermission.aspx">
            <font face="Verdana">DataProtectionPermission </font>
          </a>
          <font face="Verdana">class
- New to 2.0.  Controls whether or not the assembly can use the new data protection
(DPAPI) features.  You can retrict the user to protect data, unprotect data,
protect memory or unprotect memory.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.environmentpermission.aspx">
            <font face="Verdana">EnviromentPermission </font>
          </a>
          <font face="Verdana">class
- Controls access to user and system environment variables.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.iunrestrictedpermission.aspx">
            <font face="Verdana">IUnrestrictedPermission </font>
          </a>
          <font face="Verdana">class
- Allows a permission to expose an unrestricted state.  </font>
          <a href="http://blogs.msdn.com/ptorr/archive/2003/10/06/56250.aspx">
            <font face="Verdana">Peter
Torr has a nugget of trivia </font>
          </a>
          <font face="Verdana">about this interface buried
in his post.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.registrypermission.aspx">
            <font face="Verdana">RegistryPermission</font>
          </a>
          <font face="Verdana"> class
- Controls access to the registry.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.isolatedstoragefilepermission.aspx">
            <font face="Verdana">IsolatedStorageFilePermission</font>
          </a>
          <font face="Verdana"> class
- Controls access to isolated storage.  Can control the size (Quota) and the
type of store (Application, Domain, or Assembly)</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.keycontainerpermission.aspx">
            <font face="Verdana">KeyContainerPermission</font>
          </a>
          <font face="Verdana"> class
- New to 2.0.  Controls access to Key Containers.  You can control access
by each CSP, or grant unrestricted rights.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.reflectionpermission.aspx">
            <font face="Verdana">ReflectionPermission</font>
          </a>
          <font face="Verdana"> class
- Controls access to assembly metadata via reflection.  You can control whether
or not access to members is allowed, access to types, and whether or not assemblies
can be dynamically generated.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.storepermission.aspx">
            <font face="Verdana">StorePermission</font>
          </a>
          <font face="Verdana"> class
- New to 2.0 Controls access to X.509 Certificate stores.  Can control add/remove
of certificates, opening of a store, enumeration of certificates, and the creation/deletion
of stores.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.siteidentitypermission.aspx">
            <font face="Verdana">SiteIdentityPermission</font>
          </a>
          <font face="Verdana"> class
- Limit calls to a specific site (domain).</font>
        </p>
        <p>
          <em>
            <font face="Verdana">Next up -&gt; Security.Policy</font>
          </em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=eb0a83f7-8d27-4aaa-8765-b7dfb3e927dc" />
      </body>
      <title>70-551, 70-552, 70-553 Section I, Part XI - Security.Permissions</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,eb0a83f7-8d27-4aaa-8765-b7dfb3e927dc.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,eb0a83f7-8d27-4aaa-8765-b7dfb3e927dc.aspx</link>
      <pubDate>Fri, 10 Feb 2006 21:20:54 GMT</pubDate>
      <description>&lt;em&gt;&lt;font color=#a9a9a9&gt;Control permissions for resources by using the System.Security.Permission
classes. (Refer System.Security.Permission namespace) &lt;/font&gt;&lt;/em&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;SecurityPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;PrincipalPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;FileIOPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;StrongNameIdentityPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;UIPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;UrlIdentityPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;PublisherIdentityPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;GacIdentityPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;FileDialogPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;DataProtectionPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;EnvironmentPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;IUnrestrictedPermission interface &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;RegistryPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;IsolatedStorageFilePermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;KeyContainerPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;ReflectionPermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;StorePermission class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;SiteIdentityPermission class&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I've really got to get going on these.&amp;nbsp; I'm scheduled to take 70-552 next Sat,
and I'm haven't gotten to the WinForms stuff yet.
&lt;/p&gt;
&lt;p&gt;
These next two parts are on Code Access Security.&amp;nbsp;&amp;nbsp;Mike Downen (via &lt;a href="http://blog.ziffdavis.com/devlife/archive/2006/02/06/40123.aspx"&gt;Julie
Lerman&lt;/a&gt;) has an&amp;nbsp;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/11/CodeAccessSecurity/default.aspx"&gt;intro
article on CAS in 2.0&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Update via &lt;span&gt;Zdenko - Michael Stiefel has some &lt;a href="http://www.reliablesoftware.com/articles.html "&gt;good
articles on his site.&lt;/a&gt;&lt;/span&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.securitypermission.aspx"&gt;SecurityPermission&lt;/a&gt; class
-&amp;nbsp;This is the class that has a lot of base attributes: Execution, SkipVerification,
UnmanagedCode, Assertion, BindingRedirects to name a few.&amp;nbsp; There don't appear
to be any new values from 1.1.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.principalpermission.aspx"&gt;PrincipalPermission&lt;/a&gt; class
- This class allows you to control access by the current identity.&amp;nbsp; Note the
important info in the documentation:
&lt;/p&gt;
&lt;p&gt;
Prior to a demand for principal permission it is necessary to set the current application
domain's principal policy to the enumeration value &lt;a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl35','ctl00_LibFrame_MainContent_ctl42',this);" href="http://msdn2.microsoft.com/en-us/library/system.security.principal.principalpolicy.aspx"&gt;WindowsPrincipal&lt;/a&gt;.
By default, the principal policy is set to &lt;a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl35','ctl00_LibFrame_MainContent_ctl43',this);" href="http://msdn2.microsoft.com/en-us/library/system.security.principal.principalpolicy.aspx"&gt;UnauthenticatedPrincipal&lt;/a&gt;.
If you do not set the principal policy to &lt;b&gt;WindowsPrincipal&lt;/b&gt;, a demand for principal
permission will fail. The following code should be executed before the principal permission
is demanded: 
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.simonrobinson.com/DotNET/Articles/CShToday/RoleBasedSec.aspx"&gt;&lt;font face=Verdana&gt;Kaushal
Sanghavi has a good article&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt; demonstrating the use of
PrincipalPermission.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.fileiopermission.aspx"&gt;&lt;font face=Verdana&gt;FileIOPermission &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;class
- Controls access to file IO.&amp;nbsp; There are 4 basic rights controlled : Read, Write,
Append and Path Discovery.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.strongnameidentitypermission.aspx"&gt;&lt;font face=Verdana&gt;StrongNameIdentityPermission&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt; class
- Allows you to limit callers to a specific strongly named assembly.&amp;nbsp; More information
can be &lt;/font&gt;&lt;a href="http://www.morganskinner.com/Articles/StrongNameIdentityPermission/"&gt;&lt;font face=Verdana&gt;found
at Morgan Skinner&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.uipermission.aspx"&gt;&lt;font face=Verdana&gt;UIPermission &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;class
- Allows you to specify the permissions for UI (Winforms).&amp;nbsp; Whether or not a
window can be shown, whether or not more than one window can be shown, whether or
not the application can access the clipboard, only a system specific clipboard, or
no access whatsoever.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.urlidentitypermission.aspx"&gt;&lt;font face=Verdana&gt;UrlIdentityPermission &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;class
- In the same spirit as StrongNameIdentityPermission, allows you to limit callers
by a URL.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.publisheridentitypermission.aspx"&gt;&lt;font face=Verdana&gt;PublisherIdentityPermission &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;class
- Limits calls by a specific publisher (using Digital certificates)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.gacidentitypermission.aspx"&gt;&lt;font face=Verdana&gt;GacIdentityPermission&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt; class
-&amp;nbsp;This is new in 2.0 - Allows you to limit access by whether or not an assembly
is located in the GAC.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.filedialogpermission.aspx"&gt;&lt;font face=Verdana&gt;FileDialogPermission &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;class
- Controls whether or not the assembly can open a File dialog box.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.dataprotectionpermission.aspx"&gt;&lt;font face=Verdana&gt;DataProtectionPermission &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;class
- New to 2.0.&amp;nbsp; Controls whether or not the assembly can use the new data protection
(DPAPI) features.&amp;nbsp; You can retrict the user to protect data, unprotect data,
protect memory or unprotect memory.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.environmentpermission.aspx"&gt;&lt;font face=Verdana&gt;EnviromentPermission &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;class
- Controls access to user and system environment variables.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.iunrestrictedpermission.aspx"&gt;&lt;font face=Verdana&gt;IUnrestrictedPermission &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;class
- Allows a permission to expose an unrestricted state.&amp;nbsp; &lt;/font&gt;&lt;a href="http://blogs.msdn.com/ptorr/archive/2003/10/06/56250.aspx"&gt;&lt;font face=Verdana&gt;Peter
Torr has a nugget of trivia &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;about this interface buried
in his post.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.registrypermission.aspx"&gt;&lt;font face=Verdana&gt;RegistryPermission&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt; class
- Controls access to the registry.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.isolatedstoragefilepermission.aspx"&gt;&lt;font face=Verdana&gt;IsolatedStorageFilePermission&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt; class
- Controls access to isolated storage.&amp;nbsp; Can control the size (Quota) and the
type of store (Application, Domain, or Assembly)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.keycontainerpermission.aspx"&gt;&lt;font face=Verdana&gt;KeyContainerPermission&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt; class
- New to 2.0.&amp;nbsp; Controls access to Key Containers.&amp;nbsp; You can control access
by each CSP, or grant unrestricted rights.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.reflectionpermission.aspx"&gt;&lt;font face=Verdana&gt;ReflectionPermission&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt; class
- Controls access to assembly metadata via reflection.&amp;nbsp; You can control whether
or not access to members is allowed, access to types, and whether or not assemblies
can be dynamically generated.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.storepermission.aspx"&gt;&lt;font face=Verdana&gt;StorePermission&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt; class
- New to 2.0 Controls access to X.509 Certificate stores.&amp;nbsp; Can control add/remove
of certificates, opening of a store, enumeration of certificates, and the creation/deletion
of stores.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.security.permissions.siteidentitypermission.aspx"&gt;&lt;font face=Verdana&gt;SiteIdentityPermission&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt; class
- Limit calls to a specific site (domain).&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font face=Verdana&gt;Next up -&amp;gt; Security.Policy&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=eb0a83f7-8d27-4aaa-8765-b7dfb3e927dc" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,eb0a83f7-8d27-4aaa-8765-b7dfb3e927dc.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=ba42a50d-3040-4005-967f-f705d975630e</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,ba42a50d-3040-4005-967f-f705d975630e.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,ba42a50d-3040-4005-967f-f705d975630e.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=ba42a50d-3040-4005-967f-f705d975630e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <em>
          <font color="#a9a9a9">Encrypt, decrypt,
and hash data by using the System.Security.Cryptography classes. (Refer
System.Security.Cryptography namespace) </font>
        </em>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">DES class and DESCryptoServiceProvider class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">HashAlgorithm class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">DSA class and DSACryptoServiceProvider class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">SHA1 class and SHA1CryptoServiceProvider class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">TripleDES and TripleDESCryptoServiceProvider class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">MD5 class and MD5CryptoServiceProvider class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">RSA class and RSACryptoServiceProvider class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">RandomNumberGenerator class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">CryptoStream class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">CryptoConfig class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">RC2 class and RC2CryptoServiceProvider class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">AssymetricAlgorithm class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">ProtectedData class and ProtectedMemory class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">RijndaelManaged class and RijndaelManagedTransform class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">CspParameters class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">CryptoAPITransform class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Hash-based Message Authentication Code (HMAC)</font>
            </em>
          </li>
        </ul>
        <p>
          <font color="#000000">Knowing some basics about Cryptography is a big help with this
objective.  <a href="http://www.devx.com/codemag/Article/16747">Dino Esposito
has an article on DevX</a> going over the basics. It's based on 1.1, but the ideas
haven't changed.</font>
        </p>
        <p>
          <font color="#000000">For the most part this namespace hasn't changed.  ProtectedData/Memory
and HMAC are the new classes they want you to know about.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.des.aspx">DES </a>class
- Abtract class that all (one) DES implementations derive from.  <a href="http://en.wikipedia.org/wiki/Data_Encryption_Standard">DES </a>is
a symmetric encryption algorithm.  It's an old algorithm that can be
cracked in a matter of days.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.descryptoserviceprovider.aspx">DESCryptoServiceProvider</a> class
- Service provider class for DES encryption.  Derives from DES and is the class
you'd use when encrypting/decrypting with DES.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.hashalgorithm.aspx">HashAlgorithm </a>class
- base class that all <a href="http://en.wikipedia.org/wiki/Cryptographic_hash_functions">hash
algorithms</a> derive from.  <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpcongeneratinghash.asp">MSDN
has an example implementation </a>showing that you invoke the ComputeHash method to
get the hash.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.dsa.aspx">DSA </a>class
- base class that all (one) DSA implentations derive from.  Richard Grimes has
a blurb about digital signatures on his <a href="http://www.grimes.demon.co.uk/workshops/secWSTwelve.htm">security
workshop page</a>.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.dsacryptoserviceprovider.aspx">DSACryptoServiceProvider</a> class
- provides an implementation of the <a href="http://en.wikipedia.org/wiki/Digital_Signature_Algorithm">DSA
(Digital Signature Algorithm)</a> . </font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.sha1.aspx">SHA1 </a>class
- Abtract class for the SHA1 Hash algorithm.  160 bit hash size.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://en.wikipedia.org/wiki/Digital_Signature_Algorithm">SHA1CryptoServiceProvider</a> class
- Implementation of the <a href="http://en.wikipedia.org/wiki/SHA1">SHA1 hash algorithm</a>. 
There's some concern that this algorithm is weak, so it's probably best to use
a different hashing algorithm.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.tripledes.aspx">TripleDES</a> class
- Abtract class for the TripleDES encryption algorithm.  TripleDES is a symmetric
algorithm support key sizes of 128 or 192 bits.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.tripledescryptoserviceprovider.aspx">TripleDESCryptoServiceProvider</a> class
- Implementation of the <a href="http://en.wikipedia.org/wiki/Triple_DES">TripleDES
encryption algorithm</a>, which appears to encrypt the text by running DES 3
times.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.md5.aspx">MD5</a> class
- Abtract class that all MD5 hash algorithms derive from.  MD5 produces a 128
bit hash.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.md5cryptoserviceprovider.aspx">MD5CryptoServiceProvider</a> class
- Implementation of the <a href="http://en.wikipedia.org/wiki/Md5">MD5 Hash Algorithm</a>. 
It appears there might be weaknesses with this algorithm as well.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.rsa.aspx">RSA </a>class
- Abtract class that all RSA encryption algorithms derive from.  RSA is an asymmetric
algorithm supporting bit sizes between  384 - 16384 bits in increments of
8 bits.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.rsacryptoserviceprovider.aspx">RSACryptoServiceProvider</a> class
- Implementation of the <a href="http://en.wikipedia.org/wiki/RSA">RSA Encryption
algorithm</a>.  There don't appear to be flaws in the RSA algorithm provided
your key is &gt;2k.</font>
        </p>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.security.cryptography.randomnumbergenerator.aspx">RandomNumberGenerator</a> class
- Abtract class that all Random Number generators are supposed to derive from. 
There is only one implementation of a random number generator</font>
          <font color="#003300"> - <a href="http://msdn2.microsoft.com/system.security.cryptography.rngcryptoserviceprovider.aspx">RNGCryptoServiceProvider</a>.  <a href="http://www.aspheute.com/english/20040105.asp">Christopher
Wille has an example </a>that creates random passwords using the RNGCryptoServiceProvider.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.cryptostream.aspx">CryptoStream</a> class
- defines a stream that is used with cryptographic functions.  The idea is to
prevent storing the data in an intermediate area during cryptographic functions. 
It also handles buffering which I guess gets complicated with block ciphers.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.cryptoconfig.aspx">CryptoConfig</a> class
- Documentation says that it is used to get cryptography configuration information. 
I don't see it doing that.  It appears that the main method, <a href="http://msdn2.microsoft.com/system.security.cryptography.cryptoconfig.createfromname.aspx">CreateFromName</a>,
is used to get an instance of a specific CryptoServiceProvider.  There is mention
of the CryptoConfig being used in this <a href="http://www.mono-project.com/Best_Practices">best
practices in Mono document</a>.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.rc2.aspx">RC2</a> class
- Abtract class that all RC2 implementations derive from.  RC2 is an Symmetric
Encryption algorithm.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.rc2cryptoserviceprovider.aspx">RC2CryptoServiceProvider</a> class
- Implementation of the <a href="http://en.wikipedia.org/wiki/RC2">RC2 Encryption
algorithm</a>.  Key size is from 40-128 bits in 8 bit increments.  
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.asymmetricalgorithm.aspx">AssymmetricAlgorithm</a> class
- base class for all encryption methods that are classified as Assymmetric (meaning
public key algorithms)  <a href="http://www.eggheadcafe.com/articles/20020630.asp">Dr.
Peter Bromberg has a simple example</a> of using the RSA classes.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.protecteddata.aspx">ProtectedData </a>class 
- This is a new class for the 2.0 framework.  It is a frontend to the DPAPI protect
and unprotect methods, making it very easy to secure data using DPAPI.  Remember
that stuff protected by DPAPI can only be unprotected on the same machine.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.protectedmemory.aspx">ProtectedMemory</a> class
- Also a new class for the 2.0 framework.  It works the same as ProtectedData. 
The difference is that ProtectedMemory is only valid until the machine reboots.  <a href="http://blogs.msdn.com/shawnfa/archive/2004/05/17/133650.aspx">Shawn
has an informative post</a> on his blog.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.rijndaelmanaged.aspx">RijndaelManaged</a> class
- A managed implementation of the <a href="http://en.wikipedia.org/wiki/Rijndael">Rijndael
encryption algorithm</a>, also known as AES.  Rijndael is a symmetric algorithm
supporting key sizes of 128,192, and 256 bits.  
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.rijndaelmanagedtransform.aspx">RijndaelManagedTransform</a> class
- the actual class that does the encryption/descryption for the RijndaelManaged class.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.cspparameters.aspx">CspParameters</a> class
- contains parameters that are passed to the CSP (Cryptographic Service Provider). 
This is used to pass specific parameters back to the Crypto subsystem.  An example
is specifying which key container to use.  <a href="http://www.c-sharpcorner.com/Code/2002/Dec/CryptEncryption.asp">Gowri
Paramasivm has an example</a> using RSA.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.cryptoapitransform.aspx">CryptoAPITransform</a> class
- Represents a cryptographic algorithm that encrypts or decrypts data.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.cryptography.hmac.aspx">HMAC</a> (Hash-based
Message Authentication Code) - Abstract class that all implementations of <a href="http://en.wikipedia.org/wiki/HMAC">HMAC </a>derive
from.  HMAC is a way of verifying the authenticity and integrity of a message. 
These are new classes.
</p>
        <p>
          <em>Next up -&gt; Permissions</em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=ba42a50d-3040-4005-967f-f705d975630e" />
      </body>
      <title>70-551, 70-552, 70-553 Section I, Part X - Cryptography</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,ba42a50d-3040-4005-967f-f705d975630e.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,ba42a50d-3040-4005-967f-f705d975630e.aspx</link>
      <pubDate>Wed, 08 Feb 2006 20:04:13 GMT</pubDate>
      <description>&lt;em&gt;&lt;font color=#a9a9a9&gt;Encrypt, decrypt, and hash data by using&amp;nbsp;the System.Security.Cryptography&amp;nbsp;classes.
(Refer System.Security.Cryptography namespace) &lt;/font&gt;&lt;/em&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;DES class and DESCryptoServiceProvider class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;HashAlgorithm class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;DSA class and DSACryptoServiceProvider class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;SHA1 class and SHA1CryptoServiceProvider class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;TripleDES and TripleDESCryptoServiceProvider class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;MD5 class and MD5CryptoServiceProvider class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;RSA class and RSACryptoServiceProvider class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;RandomNumberGenerator class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;CryptoStream class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;CryptoConfig class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;RC2 class and RC2CryptoServiceProvider class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;AssymetricAlgorithm class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;ProtectedData class and ProtectedMemory class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;RijndaelManaged class and RijndaelManagedTransform class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;CspParameters class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;CryptoAPITransform class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Hash-based Message Authentication Code (HMAC)&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Knowing some basics about Cryptography is a big help with this
objective.&amp;nbsp; &lt;a href="http://www.devx.com/codemag/Article/16747"&gt;Dino Esposito
has an article on DevX&lt;/a&gt; going over the basics. It's based on 1.1, but the ideas
haven't changed.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;For the most part this namespace hasn't changed.&amp;nbsp; ProtectedData/Memory
and HMAC are the new classes they want you to know about.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.des.aspx"&gt;DES &lt;/a&gt;class
- Abtract class that all (one) DES implementations derive from.&amp;nbsp; &lt;a href="http://en.wikipedia.org/wiki/Data_Encryption_Standard"&gt;DES&amp;nbsp;&lt;/a&gt;is
a&amp;nbsp;symmetric&amp;nbsp;encryption algorithm.&amp;nbsp; It's an old algorithm that can be
cracked in a matter of days.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.descryptoserviceprovider.aspx"&gt;DESCryptoServiceProvider&lt;/a&gt;&amp;nbsp;class
- Service provider class for DES encryption.&amp;nbsp; Derives from DES and is the class
you'd use when encrypting/decrypting with DES.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.hashalgorithm.aspx"&gt;HashAlgorithm &lt;/a&gt;class
- base class that all &lt;a href="http://en.wikipedia.org/wiki/Cryptographic_hash_functions"&gt;hash
algorithms&lt;/a&gt; derive from.&amp;nbsp; &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpcongeneratinghash.asp"&gt;MSDN
has an example implementation &lt;/a&gt;showing that you invoke the ComputeHash method to
get the hash.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.dsa.aspx"&gt;DSA &lt;/a&gt;class
- base class that all (one) DSA implentations derive from.&amp;nbsp; Richard Grimes has
a blurb about digital signatures on his &lt;a href="http://www.grimes.demon.co.uk/workshops/secWSTwelve.htm"&gt;security
workshop page&lt;/a&gt;.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.dsacryptoserviceprovider.aspx"&gt;DSACryptoServiceProvider&lt;/a&gt; class
- provides an implementation of the &lt;a href="http://en.wikipedia.org/wiki/Digital_Signature_Algorithm"&gt;DSA
(Digital Signature Algorithm)&lt;/a&gt;&amp;nbsp;. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.sha1.aspx"&gt;SHA1 &lt;/a&gt;class
- Abtract class for the SHA1 Hash algorithm.&amp;nbsp; 160 bit hash size.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://en.wikipedia.org/wiki/Digital_Signature_Algorithm"&gt;SHA1CryptoServiceProvider&lt;/a&gt; class
- Implementation of the &lt;a href="http://en.wikipedia.org/wiki/SHA1"&gt;SHA1 hash algorithm&lt;/a&gt;.&amp;nbsp;
There's some concern that this algorithm is weak, so it's probably&amp;nbsp;best to use
a different hashing algorithm.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.tripledes.aspx"&gt;TripleDES&lt;/a&gt; class
- Abtract class for the TripleDES encryption algorithm.&amp;nbsp; TripleDES is a symmetric
algorithm support key sizes of 128 or 192 bits.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.tripledescryptoserviceprovider.aspx"&gt;TripleDESCryptoServiceProvider&lt;/a&gt; class
- Implementation of the &lt;a href="http://en.wikipedia.org/wiki/Triple_DES"&gt;TripleDES
encryption algorithm&lt;/a&gt;, which appears to&amp;nbsp;encrypt the text by running DES 3
times.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.md5.aspx"&gt;MD5&lt;/a&gt; class
- Abtract class that all MD5 hash algorithms derive from.&amp;nbsp; MD5 produces a 128
bit hash.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.md5cryptoserviceprovider.aspx"&gt;MD5CryptoServiceProvider&lt;/a&gt; class
- Implementation of the &lt;a href="http://en.wikipedia.org/wiki/Md5"&gt;MD5 Hash Algorithm&lt;/a&gt;.&amp;nbsp;
It appears there might be weaknesses with this algorithm as well.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.rsa.aspx"&gt;RSA &lt;/a&gt;class
- Abtract class that all RSA encryption algorithms derive from.&amp;nbsp; RSA is an asymmetric
algorithm supporting bit sizes between&amp;nbsp;&amp;nbsp;384 - 16384 bits in increments of
8 bits.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.rsacryptoserviceprovider.aspx"&gt;RSACryptoServiceProvider&lt;/a&gt; class
- Implementation of the &lt;a href="http://en.wikipedia.org/wiki/RSA"&gt;RSA Encryption
algorithm&lt;/a&gt;.&amp;nbsp; There don't appear to be flaws in the RSA algorithm provided
your key is &amp;gt;2k.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.randomnumbergenerator.aspx"&gt;RandomNumberGenerator&lt;/a&gt; class
- Abtract class that all Random Number generators are supposed to derive from.&amp;nbsp;
There is only one implementation of a random number generator&lt;/font&gt;&lt;font color=#003300&gt; - &lt;a href="http://msdn2.microsoft.com/system.security.cryptography.rngcryptoserviceprovider.aspx"&gt;RNGCryptoServiceProvider&lt;/a&gt;.&amp;nbsp; &lt;a href="http://www.aspheute.com/english/20040105.asp"&gt;Christopher
Wille has an example &lt;/a&gt;that creates random passwords using the RNGCryptoServiceProvider.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.cryptostream.aspx"&gt;CryptoStream&lt;/a&gt; class
- defines a stream that is used with cryptographic functions.&amp;nbsp; The idea is to
prevent storing the data in an intermediate area during cryptographic functions.&amp;nbsp;
It also handles buffering which I guess gets complicated with block ciphers.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.cryptoconfig.aspx"&gt;CryptoConfig&lt;/a&gt; class
- Documentation says that it is used to get cryptography configuration information.&amp;nbsp;
I don't see it doing that.&amp;nbsp; It appears that the main method, &lt;a href="http://msdn2.microsoft.com/system.security.cryptography.cryptoconfig.createfromname.aspx"&gt;CreateFromName&lt;/a&gt;,
is used to get an instance of a specific CryptoServiceProvider.&amp;nbsp; There is mention
of the CryptoConfig being used in this &lt;a href="http://www.mono-project.com/Best_Practices"&gt;best
practices in Mono document&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.rc2.aspx"&gt;RC2&lt;/a&gt; class
- Abtract class that all RC2 implementations derive from.&amp;nbsp; RC2 is an Symmetric
Encryption algorithm.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.rc2cryptoserviceprovider.aspx"&gt;RC2CryptoServiceProvider&lt;/a&gt; class
- Implementation of the &lt;a href="http://en.wikipedia.org/wiki/RC2"&gt;RC2 Encryption
algorithm&lt;/a&gt;.&amp;nbsp; Key size is from 40-128 bits in 8 bit increments.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.asymmetricalgorithm.aspx"&gt;AssymmetricAlgorithm&lt;/a&gt; class
- base class for all encryption methods that are classified as Assymmetric (meaning
public key algorithms)&amp;nbsp; &lt;a href="http://www.eggheadcafe.com/articles/20020630.asp"&gt;Dr.
Peter Bromberg has a simple example&lt;/a&gt; of using the RSA classes.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.protecteddata.aspx"&gt;ProtectedData &lt;/a&gt;class&amp;nbsp;
- This is a new class for the 2.0 framework.&amp;nbsp; It is a frontend to the DPAPI protect
and unprotect methods, making it very easy to secure data using DPAPI.&amp;nbsp; Remember
that stuff protected by DPAPI can only be unprotected on the same machine.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.protectedmemory.aspx"&gt;ProtectedMemory&lt;/a&gt; class
- Also a new class for the 2.0 framework.&amp;nbsp; It works the same as ProtectedData.&amp;nbsp;
The difference is that ProtectedMemory is only valid until the machine reboots.&amp;nbsp; &lt;a href="http://blogs.msdn.com/shawnfa/archive/2004/05/17/133650.aspx"&gt;Shawn
has an informative post&lt;/a&gt; on his blog.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.rijndaelmanaged.aspx"&gt;RijndaelManaged&lt;/a&gt; class
- A managed implementation of the &lt;a href="http://en.wikipedia.org/wiki/Rijndael"&gt;Rijndael
encryption algorithm&lt;/a&gt;, also known as AES.&amp;nbsp; Rijndael is a symmetric algorithm
supporting key sizes of 128,192, and 256 bits.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.rijndaelmanagedtransform.aspx"&gt;RijndaelManagedTransform&lt;/a&gt; class
- the actual class that does the encryption/descryption for the RijndaelManaged class.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.cspparameters.aspx"&gt;CspParameters&lt;/a&gt; class
- contains parameters that are passed to the CSP (Cryptographic Service Provider).&amp;nbsp;
This is used to pass specific parameters back to the Crypto subsystem.&amp;nbsp; An example
is specifying which key container&amp;nbsp;to use.&amp;nbsp; &lt;a href="http://www.c-sharpcorner.com/Code/2002/Dec/CryptEncryption.asp"&gt;Gowri
Paramasivm has an example&lt;/a&gt; using RSA.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.cryptoapitransform.aspx"&gt;CryptoAPITransform&lt;/a&gt; class
- Represents a cryptographic algorithm that encrypts or decrypts data.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.cryptography.hmac.aspx"&gt;HMAC&lt;/a&gt; (Hash-based
Message Authentication Code) - Abstract class that all implementations of &lt;a href="http://en.wikipedia.org/wiki/HMAC"&gt;HMAC &lt;/a&gt;derive
from.&amp;nbsp; HMAC is a way of verifying the authenticity and integrity of a message.&amp;nbsp;
These are new classes.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up -&amp;gt; Permissions&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=ba42a50d-3040-4005-967f-f705d975630e" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,ba42a50d-3040-4005-967f-f705d975630e.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=77cb6cf6-9a2b-4f1f-9416-df016c08f031</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,77cb6cf6-9a2b-4f1f-9416-df016c08f031.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,77cb6cf6-9a2b-4f1f-9416-df016c08f031.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=77cb6cf6-9a2b-4f1f-9416-df016c08f031</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>
            <font color="#a9a9a9">Implement a custom authentication scheme by using the System.Security.Authentication
classes. (Refer System.Security.Authentication namespace) </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Authentication algorithms and SSL protocols</font>
            </em>
          </li>
        </ul>
        <p>
Another new namespace.  Not much meat there.  I think they're trying to
get you to look at the <a href="http://msdn2.microsoft.com/system.net.security.authenticatedstream.aspx">AuthenticatedStream </a>class
in System.Net.Security.  <a href="http://pluralsight.com/wiki/default.aspx/Keith.GuideBook/HowToAddCIAToASocketBasedApp.html">Keith
Brown has a good example implementation</a> in his "The .NET Developer's Guide to
Windows Security"
</p>
        <p>
The algorithms that are implemented appear to be:
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.net.security.negotiatestream.aspx">NegotiateStream</a> -
"Uses the Negotiate security protocol to authenticate the client."  Is there
such a thing as the "Negotiate security protocol"?  I'm not finding anything
on it.  Sample uses of this class appear to communicating with a server authenticating
via <a href="http://en.wikipedia.org/wiki/Kerberos_%28protocol%29">Kerberos</a>.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.net.security.sslstream.aspx">SslStream </a>-
"Provides a stream used for client-server communication that uses the Secure Socket
Layer (SSL) security protocol to authenticate the server and optionally the client.
"  <a href="http://www.leastprivilege.com/SslStreamSample.aspx">Dominick Baier
has a nice simple example</a>.
</p>
        <p>
Next up -&gt;  Cryptography
</p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=77cb6cf6-9a2b-4f1f-9416-df016c08f031" />
      </body>
      <title>70-551, 70-552, 70-553 Section I, Part IX - Authentication</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,77cb6cf6-9a2b-4f1f-9416-df016c08f031.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,77cb6cf6-9a2b-4f1f-9416-df016c08f031.aspx</link>
      <pubDate>Tue, 07 Feb 2006 20:01:10 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement a custom authentication scheme by using the System.Security.Authentication
classes. (Refer System.Security.Authentication namespace) &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Authentication algorithms and SSL protocols&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Another new namespace.&amp;nbsp; Not much meat there.&amp;nbsp; I think they're trying to
get you to look at the &lt;a href="http://msdn2.microsoft.com/system.net.security.authenticatedstream.aspx"&gt;AuthenticatedStream &lt;/a&gt;class
in System.Net.Security.&amp;nbsp; &lt;a href="http://pluralsight.com/wiki/default.aspx/Keith.GuideBook/HowToAddCIAToASocketBasedApp.html"&gt;Keith
Brown has a good example implementation&lt;/a&gt; in his "The .NET Developer's Guide to
Windows Security"
&lt;/p&gt;
&lt;p&gt;
The algorithms that are implemented appear to be:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.net.security.negotiatestream.aspx"&gt;NegotiateStream&lt;/a&gt;&amp;nbsp;-
"Uses the Negotiate security protocol to authenticate the client."&amp;nbsp; Is there
such a thing as the "Negotiate security protocol"?&amp;nbsp; I'm not finding anything
on it.&amp;nbsp; Sample uses of this class appear to communicating with a server authenticating
via &lt;a href="http://en.wikipedia.org/wiki/Kerberos_%28protocol%29"&gt;Kerberos&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.net.security.sslstream.aspx"&gt;SslStream &lt;/a&gt;-
"Provides a stream used for client-server communication that uses the Secure Socket
Layer (SSL) security protocol to authenticate the server and optionally the client.
"&amp;nbsp; &lt;a href="http://www.leastprivilege.com/SslStreamSample.aspx"&gt;Dominick Baier
has a&amp;nbsp;nice simple&amp;nbsp;example&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Next up -&amp;gt;&amp;nbsp; Cryptography
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=77cb6cf6-9a2b-4f1f-9416-df016c08f031" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,77cb6cf6-9a2b-4f1f-9416-df016c08f031.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=a4efeca8-5b64-4159-86a7-aa269a43139b</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,a4efeca8-5b64-4159-86a7-aa269a43139b.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,a4efeca8-5b64-4159-86a7-aa269a43139b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a4efeca8-5b64-4159-86a7-aa269a43139b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>
            <font color="#a9a9a9">Implement access control by using the System.Security.AccessControl
classes. </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">DirectorySecurity class, FileSecurity class, FileSystemSecurity
class, and RegistrySecurity class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">AccessRule class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">AuthorizationRule class and AuthorizationRuleCollection
class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">CommonAce class, CommonAcl class, CompoundAce class, GeneralAce
class, and GeneralAcl class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">AuditRule class </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">MutexSecurity class, ObjectSecurity class, and SemaphoreSecurity
class</font>
            </em>
          </li>
        </ul>
        <p>
          <font color="#000000">This is a completely new namespace.  The .NET framework
now has direct support for reading and maintaining ACLs (Access Control Lists, or
NT Permissions).  This was difficult to do previously because you had to use
unmanaged calls to the Win32 subsystem.</font>
        </p>
        <p>
          <font color="#000000">You should probably have some rudimentary understanding of how
the access control works.  <a href="http://wgao.blogspot.com/2005/03/some-basic-facts-about-access-control.html">Wenfeng
Yao has a nice post </a>explaining the different terms.</font>
        </p>
        <p>
          <font color="#000000">Rich Strahl has a <a href="http://west-wind.com/weblog/posts/4072.aspx">good
simple example</a> of how these classes work.  Like he says, it's not to hard
once you see how it's done.  There's also an <a href="http://msdn.microsoft.com/msdnmag/issues/04/11/AccessControlinNET/default.aspx">informative
MSDN article </a>(based on the beta) about the Access Control objects.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.directorysecurity.aspx">DirectorySecurity</a> class
- This embodies the access and audit information for a specific directory.  Create
an instance by passing in the path in the constructor.  
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.filesecurity.aspx">FileSecurity</a> class
- Same thing, but for a specific file.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.registrysecurity.aspx">RegistrySecurity</a> class
- Same thing for a registry <strong>key.  </strong></p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.filesystemsecurity.aspx">FileSystemSecurity </a>class
- base class for both DirectorySecurity and FileSecurity.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.accessrule.aspx">AccessRule</a> class
- To borrow a database metaphor, this is the many to many table for security. 
It combines an Identity and an AccessControlType to represent a specific permission.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.authorizationrule.aspx">AuthorizationRule</a> class
- base class of AccessRule and AuditRule.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.authorizationrulecollection.aspx">AuthorizationRuleCollection</a> class
- collection of AuthorizationRule instances.  Typical collection, no new methods.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.commonace.aspx">CommonAce</a> class
- Represents an Access Control Entry(ACE).  These objects allow you to deal directly
with ACE/ACLs, whereas the Security/Rule classes provide some abtraction and validation. 
"The <b>CommonAce</b> class represents the eight most common ACE types".  But
I can't find what the eight most common ACE types are.  I looked at the class
in reflector, I think they're talking about AccessAllowed, AccessDenied, SystemAudit,
SystemAlarm, AccessAllowedCallback, AccessDeniedCallback, SystemAuditCallback, SystemAlarmCallback...
But I'm not sure.  There are a lot of opportunities for improvement in the
documentation for these classes.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.commonacl.aspx">CommonAcl </a>class
- Represents an Access Control List(ACL).  Meaning either <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secgloss/security/s_gly.asp">SACL</a> or <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secgloss/security/d_gly.asp">DACL</a>.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.compoundace.aspx">CompoundAce</a> class
- Represents a Compound ACE.  As the only member of the CompoundAceType enum
is Impersonation, I'm guessing that a compound ace has something to do with Impersonation. 
Looking further using reflector, it appears a CompoundAce object is created in
the GenericAce.CreateFromBinaryForm when the AceType = AccessAllowedCompound. 
According to MSDN : "Defined but never used. Included here for completeness. "...
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.genericace.aspx">GeneralAce </a>class
- Represents a generic ACE.  Base class for all ACE classes.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.genericacl.aspx">GeneralAcl</a> class
- Represents a generic ACL.  Base class for all 4 ACL classes.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.auditrule.aspx">AuditRule</a> class
- This similiar to an AccessRule, but represents Audit information.  
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.mutexsecurity.aspx">MutexSecurity </a>class
- Similiar to FileSecurity, but for Named Mutexes.  For those of you unfamiliar
with Named Mutexes (I was), look at <a href="http://coderz.blogspot.com/2005/08/single-net-application-instance-using.html">King
Ralph's blog entry</a>.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.objectsecurity.aspx">ObjectSecurity</a> class
- Base class for all the xxxSecurity objects.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.security.accesscontrol.semaphoresecurity.aspx">SemaphoreSecurity</a> class
- Similiar to MutexSecurity, but for Named Semaphores.  
</p>
        <p>
          <em>Next post - Authentication </em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=a4efeca8-5b64-4159-86a7-aa269a43139b" />
      </body>
      <title>70-551, 70-552, 70-553 Section I, Part VIII - Access Control</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,a4efeca8-5b64-4159-86a7-aa269a43139b.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,a4efeca8-5b64-4159-86a7-aa269a43139b.aspx</link>
      <pubDate>Tue, 07 Feb 2006 18:48:19 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement access control by using the System.Security.AccessControl
classes. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;DirectorySecurity class, FileSecurity class, FileSystemSecurity
class, and RegistrySecurity class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;AccessRule class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;AuthorizationRule class and AuthorizationRuleCollection class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;CommonAce class, CommonAcl class, CompoundAce class, GeneralAce
class, and GeneralAcl class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;AuditRule class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;MutexSecurity class, ObjectSecurity class, and SemaphoreSecurity
class&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;This is a completely new namespace.&amp;nbsp; The .NET framework now
has direct support for reading and maintaining ACLs (Access Control Lists, or NT Permissions).&amp;nbsp;
This was difficult to do previously because you had to use unmanaged calls to the
Win32 subsystem.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;You should probably have some rudimentary understanding of how
the access control works.&amp;nbsp; &lt;a href="http://wgao.blogspot.com/2005/03/some-basic-facts-about-access-control.html"&gt;Wenfeng
Yao has a nice post &lt;/a&gt;explaining the different terms.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Rich Strahl has a &lt;a href="http://west-wind.com/weblog/posts/4072.aspx"&gt;good
simple example&lt;/a&gt; of how these classes work.&amp;nbsp; Like he says, it's not to hard
once you see how it's done.&amp;nbsp; There's also an &lt;a href="http://msdn.microsoft.com/msdnmag/issues/04/11/AccessControlinNET/default.aspx"&gt;informative
MSDN article &lt;/a&gt;(based on the beta) about the Access Control objects.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.directorysecurity.aspx"&gt;DirectorySecurity&lt;/a&gt; class
- This embodies the access and audit information for a specific directory.&amp;nbsp; Create
an instance by passing in the path in the constructor.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.filesecurity.aspx"&gt;FileSecurity&lt;/a&gt; class
- Same thing, but for a specific file.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.registrysecurity.aspx"&gt;RegistrySecurity&lt;/a&gt; class
- Same thing for a registry &lt;strong&gt;key.&amp;nbsp; &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.filesystemsecurity.aspx"&gt;FileSystemSecurity &lt;/a&gt;class
- base class for both DirectorySecurity and FileSecurity.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.accessrule.aspx"&gt;AccessRule&lt;/a&gt; class
- To borrow a database metaphor, this is the many to many table for security.&amp;nbsp;
It combines an Identity and an AccessControlType to represent a specific permission.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.authorizationrule.aspx"&gt;AuthorizationRule&lt;/a&gt; class
- base class of AccessRule and AuditRule.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.authorizationrulecollection.aspx"&gt;AuthorizationRuleCollection&lt;/a&gt; class
- collection of AuthorizationRule instances.&amp;nbsp; Typical collection, no new methods.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.commonace.aspx"&gt;CommonAce&lt;/a&gt; class
- Represents an Access Control Entry(ACE).&amp;nbsp; These objects allow you to deal directly
with ACE/ACLs, whereas the Security/Rule classes provide some abtraction and validation.&amp;nbsp;
"The &lt;b&gt;CommonAce&lt;/b&gt; class represents the eight most common ACE types".&amp;nbsp; But
I can't find what the eight most common ACE types are.&amp;nbsp; I looked at the class
in reflector, I think they're talking about AccessAllowed, AccessDenied, SystemAudit,
SystemAlarm, AccessAllowedCallback, AccessDeniedCallback, SystemAuditCallback, SystemAlarmCallback...
But I'm not sure.&amp;nbsp; There&amp;nbsp;are a lot of opportunities for improvement in the
documentation for these classes.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.commonacl.aspx"&gt;CommonAcl &lt;/a&gt;class
- Represents an Access Control List(ACL).&amp;nbsp; Meaning either &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secgloss/security/s_gly.asp"&gt;SACL&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secgloss/security/d_gly.asp"&gt;DACL&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.compoundace.aspx"&gt;CompoundAce&lt;/a&gt; class
- Represents a Compound ACE.&amp;nbsp; As the only member of the CompoundAceType enum
is Impersonation, I'm guessing that a compound ace has something to do with Impersonation.&amp;nbsp;
Looking further&amp;nbsp;using reflector, it appears a CompoundAce object is created in
the GenericAce.CreateFromBinaryForm when the AceType = AccessAllowedCompound.&amp;nbsp;
According to MSDN : "Defined but never used. Included here for completeness.&amp;nbsp;"...
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.genericace.aspx"&gt;GeneralAce &lt;/a&gt;class
- Represents a generic ACE.&amp;nbsp; Base class for all ACE classes.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.genericacl.aspx"&gt;GeneralAcl&lt;/a&gt; class
- Represents a generic ACL.&amp;nbsp; Base class for all 4 ACL classes.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.auditrule.aspx"&gt;AuditRule&lt;/a&gt; class
- This similiar to an AccessRule, but represents Audit information.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.mutexsecurity.aspx"&gt;MutexSecurity &lt;/a&gt;class
- Similiar to FileSecurity, but for Named Mutexes.&amp;nbsp; For those of you unfamiliar
with Named Mutexes (I was), look at &lt;a href="http://coderz.blogspot.com/2005/08/single-net-application-instance-using.html"&gt;King
Ralph's blog entry&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.objectsecurity.aspx"&gt;ObjectSecurity&lt;/a&gt; class
- Base class for all the xxxSecurity objects.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.security.accesscontrol.semaphoresecurity.aspx"&gt;SemaphoreSecurity&lt;/a&gt; class
- Similiar to MutexSecurity, but for Named Semaphores.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next post - Authentication &lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=a4efeca8-5b64-4159-86a7-aa269a43139b" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,a4efeca8-5b64-4159-86a7-aa269a43139b.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=50f241f8-5f7e-4938-a649-4e5d0d48ba03</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,50f241f8-5f7e-4938-a649-4e5d0d48ba03.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,50f241f8-5f7e-4938-a649-4e5d0d48ba03.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=50f241f8-5f7e-4938-a649-4e5d0d48ba03</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
On this week's <a href="http://msdn.microsoft.com/flash/currentissue.htm">MSDN flash</a>,
they released promo codes (meaning you can register for free) for 4 other beta exams:
</p>
        <p>
        </p>
        <div style="FONT-SIZE: 11px; PADDING-BOTTOM: 10px">
          <font size="2">
            <a href="http://www.microsoft.com/learning/exams/70-547.asp">70-547
Designing and Developing Web-based Applications by Using the Microsoft .NET Framework </a>
          </font>
        </div>
        <div style="FONT-SIZE: 11px; PADDING-BOTTOM: 10px">
          <font size="2">
            <a href="http://www.microsoft.com/learning/exams/70-548.asp">70-548
Designing and Developing Windows-based Applications by Using the Microsoft .NET Framework</a>
          </font>
        </div>
        <div style="FONT-SIZE: 11px; PADDING-BOTTOM: 10px">
          <font size="2">
            <a href="http://www.microsoft.com/learning/exams/70-549.asp">70-549
Designing and Developing Enterprise Applications by Using the Microsoft .NET Framework </a>
          </font>
        </div>
        <div style="FONT-SIZE: 11px; PADDING-BOTTOM: 10px">
          <font size="2">
            <a href="http://www.microsoft.com/learning/exams/70-442.asp">70-442 Designing
and Optimizing Data Access by Using Microsoft SQL Server 2005 </a>
          </font>
        </div>
        <div style="FONT-SIZE: 11px; PADDING-BOTTOM: 10px">
          <font size="2">The first three
are exams you would take for the MCPD certification, unless you were already an MCSD
or MCAD.  The SQL Server one is part of the MCITP certification as a database
developer.</font>
        </div>
        <p>
Between now and March 10, I'm scheduled to take 5 exams...  There go my weekends.
</p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=50f241f8-5f7e-4938-a649-4e5d0d48ba03" />
      </body>
      <title>More exams with open betas</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,50f241f8-5f7e-4938-a649-4e5d0d48ba03.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,50f241f8-5f7e-4938-a649-4e5d0d48ba03.aspx</link>
      <pubDate>Mon, 06 Feb 2006 19:02:58 GMT</pubDate>
      <description>&lt;p&gt;
On this week's &lt;a href="http://msdn.microsoft.com/flash/currentissue.htm"&gt;MSDN flash&lt;/a&gt;,
they released promo codes (meaning you can register for free) for 4 other beta exams:
&lt;/p&gt;
&lt;p&gt;
&lt;div style="FONT-SIZE: 11px; PADDING-BOTTOM: 10px"&gt;&lt;font size=2&gt;&lt;a href="http://www.microsoft.com/learning/exams/70-547.asp"&gt;70-547
Designing and Developing Web-based Applications by Using the Microsoft .NET Framework &lt;/a&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="FONT-SIZE: 11px; PADDING-BOTTOM: 10px"&gt;&lt;font size=2&gt;&lt;a href="http://www.microsoft.com/learning/exams/70-548.asp"&gt;70-548
Designing and Developing Windows-based Applications by Using the Microsoft .NET Framework&lt;/a&gt; &lt;/font&gt;
&lt;/div&gt;
&lt;div style="FONT-SIZE: 11px; PADDING-BOTTOM: 10px"&gt;&lt;font size=2&gt;&lt;a href="http://www.microsoft.com/learning/exams/70-549.asp"&gt;70-549
Designing and Developing Enterprise Applications by Using the Microsoft .NET Framework &lt;/a&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="FONT-SIZE: 11px; PADDING-BOTTOM: 10px"&gt;&lt;font size=2&gt;&lt;a href="http://www.microsoft.com/learning/exams/70-442.asp"&gt;70-442&amp;nbsp;Designing
and Optimizing Data Access by Using Microsoft SQL Server 2005 &lt;/a&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="FONT-SIZE: 11px; PADDING-BOTTOM: 10px"&gt;&lt;font size=2&gt;The first three are
exams you would take for the MCPD certification, unless you were already an MCSD or
MCAD.&amp;nbsp; The SQL Server one is part of the MCITP certification as a database developer.&lt;/font&gt;
&lt;/div&gt;
&lt;p&gt;
Between now and March 10, I'm scheduled to take 5 exams...&amp;nbsp; There go my weekends.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=50f241f8-5f7e-4938-a649-4e5d0d48ba03" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,50f241f8-5f7e-4938-a649-4e5d0d48ba03.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=7574a6e5-e747-4e60-b0c6-244d772bb825</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,7574a6e5-e747-4e60-b0c6-244d772bb825.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,7574a6e5-e747-4e60-b0c6-244d772bb825.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7574a6e5-e747-4e60-b0c6-244d772bb825</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <font color="#a9a9a9">
          <em>Compress or decompress
stream information in a .NET Framework application (refer System.IO.Compression namespace),
and improve the security of application data by using isolated storage. (Refer System.IO.IsolatedStorage
namespace) </em>
        </font>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>IsolatedStorageFile class </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>IsolatedStorageFileStream class </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>DeflateStream class </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>GZipStream class </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#000000">
            <a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.aspx">IsolatedStorageFile </a>class
- The main feature that's been added is that there is a new scope - Application.  <a href="http://blogs.msdn.com/shawnfa/archive/2006/01/18/514407.aspx">The
.NET Security blog has more info on this feature</a>.  There are a few static
methods that have been added making it easier to get an IsolatedStoreFile instance:  <a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getmachinestoreforapplication.aspx">GetMachineStoreForApplication</a>, <a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getmachinestoreforassembly.aspx">GetMachineStoreForAssembly</a>, <a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getmachinestorefordomain.aspx">GetMachineStoreForDomain</a>, <a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getuserstoreforapplication.aspx">GetUserStoreForApplication</a>, </font>
          <font color="#003300">
            <a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getuserstoreforassembly.aspx">GetUserStoreForAssembly</a>, <a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getuserstorefordomain.aspx">GetUserStoreForDomain</a>.</font>
        </p>
        <p>
          <a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefilestream.aspx">IsolatedStorageFileStream</a> class
- Not much changed here.  There is a <a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefilestream.safefilehandle.aspx">SafeFileHandle </a>property,
which returns a Win32 handle of the actual file.  By virtue of this class being
based on FileStream, <a href="http://msdn2.microsoft.com/system.io.filestream.getaccesscontrol.aspx">GetAccessControl </a>/ <a href="http://msdn2.microsoft.com/system.io.filestream.setaccesscontrol.aspx">SetAccessControl </a>methods
are available.
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.io.compression.deflatestream.aspx">DeflateStream</a> class
- This is a brand new class.  It implements the <a href="http://en.wikipedia.org/wiki/Deflate">Deflate </a>algorithm. 
It can't handle files more than 4 gigs (uncompressed).  
</p>
        <p>
          <a href="http://msdn2.microsoft.com/system.io.compression.gzipstream.aspx">GZipStream </a>class
- This is also a brand new class.  It implements the <a href="http://en.wikipedia.org/wiki/Gzip">GZip </a>algorithm. 
Same as deflate but has <a href="http://en.wikipedia.org/wiki/Cyclic_redundancy_check">CRC</a>. 
It is also limited to dealing 4 gig files.  
</p>
        <p>
There is a blog entry about the capabilities of the compression classes <a href="http://dotnetcoalface.blogspot.com/2006/01/gzipstream-and-deflate-compression.html">here</a> .  
</p>
        <p>
          <em>Next up AccessControl classes</em>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=7574a6e5-e747-4e60-b0c6-244d772bb825" />
      </body>
      <title>70-551, 70-552, 70-553 Section I, Part VII - Isolated Storage / Compression</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,7574a6e5-e747-4e60-b0c6-244d772bb825.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,7574a6e5-e747-4e60-b0c6-244d772bb825.aspx</link>
      <pubDate>Mon, 06 Feb 2006 18:34:27 GMT</pubDate>
      <description>&lt;font color=#a9a9a9&gt;&lt;em&gt;Compress or decompress stream information in a .NET Framework
application (refer System.IO.Compression namespace), and improve the security of application
data by using isolated storage. (Refer System.IO.IsolatedStorage namespace) &lt;/em&gt;&lt;/font&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;IsolatedStorageFile class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;IsolatedStorageFileStream class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;DeflateStream class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;GZipStream class &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.aspx"&gt;IsolatedStorageFile &lt;/a&gt;class
- The main feature that's been added is that there is a new scope - Application.&amp;nbsp; &lt;a href="http://blogs.msdn.com/shawnfa/archive/2006/01/18/514407.aspx"&gt;The
.NET Security blog has more info on this feature&lt;/a&gt;.&amp;nbsp; There are a few static
methods that have been added making it easier to get an IsolatedStoreFile instance:&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getmachinestoreforapplication.aspx"&gt;GetMachineStoreForApplication&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getmachinestoreforassembly.aspx"&gt;GetMachineStoreForAssembly&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getmachinestorefordomain.aspx"&gt;GetMachineStoreForDomain&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getuserstoreforapplication.aspx"&gt;GetUserStoreForApplication&lt;/a&gt;, &lt;/font&gt;&lt;font color=#003300&gt;&lt;a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getuserstoreforassembly.aspx"&gt;GetUserStoreForAssembly&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefile.getuserstorefordomain.aspx"&gt;GetUserStoreForDomain&lt;/a&gt;.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefilestream.aspx"&gt;IsolatedStorageFileStream&lt;/a&gt; class
- Not much changed here.&amp;nbsp; There is a &lt;a href="http://msdn2.microsoft.com/system.io.isolatedstorage.isolatedstoragefilestream.safefilehandle.aspx"&gt;SafeFileHandle &lt;/a&gt;property,
which returns a Win32 handle of the actual file.&amp;nbsp; By virtue of this class being
based on&amp;nbsp;FileStream,&amp;nbsp;&lt;a href="http://msdn2.microsoft.com/system.io.filestream.getaccesscontrol.aspx"&gt;GetAccessControl &lt;/a&gt;/ &lt;a href="http://msdn2.microsoft.com/system.io.filestream.setaccesscontrol.aspx"&gt;SetAccessControl &lt;/a&gt;methods
are available.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.io.compression.deflatestream.aspx"&gt;DeflateStream&lt;/a&gt; class
- This is a brand new class.&amp;nbsp; It implements the &lt;a href="http://en.wikipedia.org/wiki/Deflate"&gt;Deflate &lt;/a&gt;algorithm.&amp;nbsp;
It can't handle files more than 4 gigs (uncompressed).&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.io.compression.gzipstream.aspx"&gt;GZipStream &lt;/a&gt;class
- This is also a brand new class.&amp;nbsp; It implements the &lt;a href="http://en.wikipedia.org/wiki/Gzip"&gt;GZip &lt;/a&gt;algorithm.&amp;nbsp;
Same as&amp;nbsp;deflate&amp;nbsp;but has &lt;a href="http://en.wikipedia.org/wiki/Cyclic_redundancy_check"&gt;CRC&lt;/a&gt;.&amp;nbsp;
It is also limited to dealing 4 gig files.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
There is a blog entry about the capabilities of the compression classes &lt;a href="http://dotnetcoalface.blogspot.com/2006/01/gzipstream-and-deflate-compression.html"&gt;here&lt;/a&gt;&amp;nbsp;.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up AccessControl classes&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=7574a6e5-e747-4e60-b0c6-244d772bb825" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,7574a6e5-e747-4e60-b0c6-244d772bb825.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=851f6707-3f92-47bf-a461-822eaf4539a2</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,851f6707-3f92-47bf-a461-822eaf4539a2.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,851f6707-3f92-47bf-a461-822eaf4539a2.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=851f6707-3f92-47bf-a461-822eaf4539a2</wfw:commentRss>
      <title>70-551, 70-552, 70-553 Section I, Part VI - System.IO</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,851f6707-3f92-47bf-a461-822eaf4539a2.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,851f6707-3f92-47bf-a461-822eaf4539a2.aspx</link>
      <pubDate>Fri, 03 Feb 2006 16:28:45 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=eabebf71-403a-4d4d-963a-c8cb4f647740&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3d90fc8c62-4722-447a-81a1-626985871956%26url%3dhttp%253a%252f%252fblog.denoncourtassociates.com%252fct.ashx%253fid%253d59bf77af-06e1-4a9c-aa52-8b592f9f3237%2526url%253dhttp%25253a%25252f%25252fblog.denoncourtassociates.com%25252fct.ashx%25253fid%25253dcedf2204-97ff-4ec2-ba13-6688112f6f2f%252526url%25253dhttp%2525253a%2525252f%2525252fwww.microsoft.com%2525252flearning%2525252fexams%2525252f70-551.asp" ?&gt;&lt;font color=#003399&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=eabebf71-403a-4d4d-963a-c8cb4f647740&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3d90fc8c62-4722-447a-81a1-626985871956%26url%3dhttp%253a%252f%252fblog.denoncourtassociates.com%252fct.ashx%253fid%253d59bf77af-06e1-4a9c-aa52-8b592f9f3237%2526url%253dhttp%25253a%25252f%25252fblog.denoncourtassociates.com%25252fct.ashx%25253fid%25253dcedf2204-97ff-4ec2-ba13-6688112f6f2f%252526url%25253dhttp%2525253a%2525252f%2525252fwww.microsoft.com%2525252flearning%2525252fexams%2525252f70-552.asp" ?&gt;&lt;font color=#003399&gt;UPGRADE:
MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=eabebf71-403a-4d4d-963a-c8cb4f647740&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3d90fc8c62-4722-447a-81a1-626985871956%26url%3dhttp%253a%252f%252fblog.denoncourtassociates.com%252fct.ashx%253fid%253d59bf77af-06e1-4a9c-aa52-8b592f9f3237%2526url%253dhttp%25253a%25252f%25252fblog.denoncourtassociates.com%25252fct.ashx%25253fid%25253dcedf2204-97ff-4ec2-ba13-6688112f6f2f%252526url%25253dhttp%2525253a%2525252f%2525252fwww.microsoft.com%2525252flearning%2525252fexams%2525252f70-553.asp" ?&gt;&lt;font color=#003399&gt;UPGRADE:
MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft
.NET Framework: Part 1&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Access files and folders by using the File System classes.
(Refer System.IO namespace) &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;File class and FileInfo class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Directory class and DirectoryInfo class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;DriveInfo class and DriveType enumeration &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;FileSystemInfo class and FileSystemWatcher class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Path class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;ErrorEventArgs class and ErrorEventHandler delegate &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;RenamedEventArgs class and RenamedEventHandler delegate&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/3saad2h5(en-US,VS.80).aspx"&gt;File &lt;/a&gt;class
- Static class used for moving/renaming files.&amp;nbsp;&amp;nbsp;They've added quite a few
methods for convience and better exposed the feature set of NTFS.&amp;nbsp; Look at &lt;a href="http://msdn2.microsoft.com/ms143356.aspx"&gt;AppendAllText&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/2tfbf1wy(en-US,VS.80).aspx"&gt;Decrypt&lt;/a&gt;, &lt;/font&gt;&lt;font color=#003300&gt;&lt;a href="http://msdn2.microsoft.com/30sf3kce(en-US,VS.80).aspx"&gt;Encrypt&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/8e1fc3b8.aspx"&gt;GetAccessControl&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.file.readallbytes.aspx"&gt;ReadAllBytes&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.file.readalllines.aspx"&gt;ReadAllLines&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.file.readalltext.aspx"&gt;ReadAllText&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.file.replace.aspx"&gt;Replace&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.file.setaccesscontrol.aspx"&gt;SetAccessControl&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.file.writeallbytes.aspx"&gt;WriteAllBytes&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.file.writealllines.aspx"&gt;WriteAllLines&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/system.io.file.writealltext.aspx"&gt;WriteAllText&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/akth6b1k(en-US,VS.80).aspx"&gt;FileInfo &lt;/a&gt;class
- Each instance of this class represents a file.&amp;nbsp; Members are similiar to the
File class.&amp;nbsp; Doesn't have some of the &lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;convenience &lt;/span&gt;methods
like ReadAllText, WriteAllText...
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/wa70yfe2(en-US,VS.80).aspx"&gt;Directory&lt;/a&gt; class
- Static class used to manipulate file directories.&amp;nbsp; Doesn't appear to have changed
except GetAccessControl and SetAccessControl methods have been added.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/8s2fzb02(en-US,VS.80).aspx"&gt;DirectoryInfo &lt;/a&gt;class
- Each instance of this class represents a directory.&amp;nbsp; Members are similiar to
the File class.&amp;nbsp; Also has GetAccessControl and SetAccessControl methods.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/abt1306t(en-US,VS.80).aspx"&gt;DriveInfo&lt;/a&gt; class
- New class that allows you to query to see what drives (logical) are attached to
a system.&amp;nbsp; Each instance represents a drive.&amp;nbsp; You can get the capacity,
volume label, free space, and the type of drive.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/abt1306t(en-US,VS.80).aspx"&gt;DriveType &lt;/a&gt;enum
- enum that specifies the type of drive represented by the DriveInfo class. CDROM,
Fixed, Network, RAM, Removeable (USB or floppy), unknown.&amp;nbsp; There is also a NoRootDirectory
member.&amp;nbsp; I don't know what that is for.&amp;nbsp; The enum is not decorated with
the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemflagsattributeclasstopic.asp"&gt;FlagsAttribute&lt;/a&gt;,
so a DriveType can't be Fixed AND NoRootDirectory.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.io.filesysteminfo.aspx"&gt;FileSystemInfo&amp;nbsp;&lt;/a&gt;class
- base class for both FileInfo and DirectoryInfo
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/system.io.filesystemwatcher.aspx"&gt;FileSystemWatcher &lt;/a&gt;class
- I hate this component.&amp;nbsp; I used it in an project and kept missing files because
the buffer would overflow and the error event wasn't consistently raised.&amp;nbsp; Read
the class description and understand the limitations of the component.&amp;nbsp; It doesn't
look like it has been changed(meaning new methods and properties).
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/3bdzys9w(en-US,VS.80).aspx"&gt;Path &lt;/a&gt;class - Allows
you do deal with filename strings in a controlled fashion.&amp;nbsp; If you want to change
the extension, call the ChangeExtension method, rather than doing the string parsing
yourself.&amp;nbsp; Has some interesting members that I didn't know about, such as &lt;a href="http://msdn2.microsoft.com/wy6x8cc1(en-US,VS.80).aspx"&gt;GetTempFilename&lt;/a&gt;.&amp;nbsp;
There is a new method called &lt;a href="http://msdn2.microsoft.com/system.io.path.getrandomfilename.aspx"&gt;GetRandomFilename&lt;/a&gt;.&amp;nbsp;
It returns a random temp filename, but doesn't create it.&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/ms143438(en-US,VS.80).aspx"&gt;GetInvalidFileNameChars&lt;/a&gt;&amp;nbsp;and &lt;a href="http://msdn2.microsoft.com/ms143439(en-US,VS.80).aspx"&gt;GetInvalidPathChars&lt;/a&gt;&amp;nbsp;are
also new.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/f48y2e7s(en-US,VS.80).aspx"&gt;ErrorEventArgs&lt;/a&gt;&amp;nbsp;-
object that is supplied to the error event in the FileSystemWatcher when something
goes wrong.&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/system.io.erroreventargs.getexception.aspx"&gt;GetException &lt;/a&gt;returns
the exception object for the error.&amp;nbsp; Like I said, I had problems with the FileSystemWatcher.&amp;nbsp;
Know it for the test, but don't use it in a real project.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/hkx0zbk1(en-US,VS.80).aspx"&gt;RenamedEventArgs&lt;/a&gt;&amp;nbsp;-
object that is supplied to the rename event in the FileSystemWatcher.&amp;nbsp; Has&amp;nbsp;OldFullPath
and OldName properties.&amp;nbsp; Derived from &lt;a href="http://msdn2.microsoft.com/40yayd7f(en-US,VS.80).aspx"&gt;FileSystemEventArgs&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up - System.IO.Compression&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=851f6707-3f92-47bf-a461-822eaf4539a2" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,851f6707-3f92-47bf-a461-822eaf4539a2.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=eabebf71-403a-4d4d-963a-c8cb4f647740</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,eabebf71-403a-4d4d-963a-c8cb4f647740.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,eabebf71-403a-4d4d-963a-c8cb4f647740.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=eabebf71-403a-4d4d-963a-c8cb4f647740</wfw:commentRss>
      <title>70-551, 70-552, 70-553 Section I, Part V - XML Serialization</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,eabebf71-403a-4d4d-963a-c8cb4f647740.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,eabebf71-403a-4d4d-963a-c8cb4f647740.aspx</link>
      <pubDate>Wed, 01 Feb 2006 15:42:23 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=90fc8c62-4722-447a-81a1-626985871956&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3d59bf77af-06e1-4a9c-aa52-8b592f9f3237%26url%3dhttp%253a%252f%252fblog.denoncourtassociates.com%252fct.ashx%253fid%253dcedf2204-97ff-4ec2-ba13-6688112f6f2f%2526url%253dhttp%25253a%25252f%25252fwww.microsoft.com%25252flearning%25252fexams%25252f70-551.asp" ?&gt;&lt;font color=#003399&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=90fc8c62-4722-447a-81a1-626985871956&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3d59bf77af-06e1-4a9c-aa52-8b592f9f3237%26url%3dhttp%253a%252f%252fblog.denoncourtassociates.com%252fct.ashx%253fid%253dcedf2204-97ff-4ec2-ba13-6688112f6f2f%2526url%253dhttp%25253a%25252f%25252fwww.microsoft.com%25252flearning%25252fexams%25252f70-552.asp" ?&gt;&lt;font color=#003399&gt;UPGRADE:
MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font color=#003399&gt;&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=90fc8c62-4722-447a-81a1-626985871956&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3d59bf77af-06e1-4a9c-aa52-8b592f9f3237%26url%3dhttp%253a%252f%252fblog.denoncourtassociates.com%252fct.ashx%253fid%253dcedf2204-97ff-4ec2-ba13-6688112f6f2f%2526url%253dhttp%25253a%25252f%25252fwww.microsoft.com%25252flearning%25252fexams%25252f70-553.asp" ?&gt;UPGRADE:
MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft
.NET Framework: Part 1&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Control the serialization of an object into XML format by
using the System.Xml.Serialization namespace. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Serialize and deserialize objects into XML format by using
the XmlSerializer class. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Control serialization by using serialization attributes. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Implement XML Serialization interfaces to provide custom formatting
for XML serialization. &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Delegates and event handlers provided by the System.Xml.Serialization
namespace&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
So the basics of using the XmlSerializer hasn't changed.&amp;nbsp; Create an XmlSerializer
telling it to expect a particular type.&amp;nbsp; Note that the type could be a Generic
- typeof(SortedList&amp;lt;int&amp;gt;) .&amp;nbsp; Know that you can supply override to the XML
Attributes.&amp;nbsp; See my &lt;a href="http://blog.denoncourtassociates.com/PermaLink,guid,ed2da501-6512-4119-b9f3-7ad8bbc2f885.aspx"&gt;post&lt;/a&gt;&amp;nbsp;here.&amp;nbsp;
Know how to control namespaces using &lt;a href="http://msdn2.microsoft.com/en-us/library/8e2fsfb7(en-US,VS.80).aspx"&gt;XmlSerializerNamespaces&lt;/a&gt; class.
&lt;/p&gt;
&lt;p&gt;
Remember the performance problems with XML Serializer?&amp;nbsp; Creating a new dynamic
assembly each time the app was restarted for XML Serialization?&amp;nbsp; There is a new
tool, &lt;a href="http://msdn2.microsoft.com/en-us/library/bk3w6240.aspx"&gt;SGen.exe&lt;/a&gt; that
creates the temporary serialization assemblies for you.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Here are the XML Attributes used to control serialization:
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlrootattribute.aspx"&gt;XmlRoot &lt;/a&gt;–
Controls the XML root.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;ElementName, namespace..&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlelementattribute.aspx"&gt;XmlElementAttribute &lt;/a&gt;–
Serialize the field/property as an element in the XML document.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlattributeattribute.aspx"&gt;XmlAttributeAttribute &lt;/a&gt;–
Aside from being the victim of strict naming conventions, it tells the XML serializer
to serialize field/prop as an attribute in the XML document&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlignoreattribute.aspx"&gt;XmlIgnoreAttribute &lt;/a&gt;–
Tells the XML Serializer to omit the field/property.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlarrayitemattribute.aspx"&gt;XmlEnumAttribute &lt;/a&gt;–
Controls the name of an enumeration member (Not the enum name, a member of the enum)
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmltextattribute.aspx"&gt;XmlTextAttribute&lt;/a&gt;&amp;nbsp;-
Tells the XML Serializer that the member contains raw XML text.
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmltypeattribute.aspx"&gt;XmlTypeAttribute&lt;/a&gt;&amp;nbsp;-
Controls the XML Schema (XSD) that is generated by the XmlSerializer.&amp;nbsp; Used to
specify other namespaces and types when serializing.
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlincludeattribute.aspx"&gt;XmlIncludeAttribute &lt;/a&gt;-
Allows the XmlSerializer to recognize a type when it serializes or deserializes an
object.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Used when deserializing custom
types.
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlchoiceidentifierattribute.aspx"&gt;XmlChoiceIdentifierAttribute &lt;/a&gt;-
Tells the XML Serializer that the type should be XSI:Choice.&amp;nbsp; Used in conjuction
with an enum field/prop in the class to tell the serializer where to get its info
from.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;font color=#000000&gt; 
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlarrayattribute.aspx"&gt;XmlArrayAttribute &lt;/a&gt;Class&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;-
Specifies that the XmlSerializer must serialize a particular class member as an array
of XML elements.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlarrayitemattribute.aspx"&gt;XmlArrayItemAttribute &lt;/a&gt;–
Specifies the types that are contained in an XmlArray.&amp;nbsp; This is used when you
are serializing polymorphic classes .&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/font&gt; 
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlanyattributeattribute.aspx"&gt;XmlAnyAttributeAttribute &lt;/a&gt;–
Any attributes that are not matched up during deserialization is placed in the field
decorated with this attribute.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Field
must be an array of XmlAttribute.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlanyelementattribute.aspx"&gt;XmlAnyElementAttribute &lt;/a&gt;–
Any elements that are not matched up during deserialization is placed in the field
decorated with this attribute.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Field
must be an array of XmlElement.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlnamespacedeclarationsattribute.aspx"&gt;XmlNamespaceDeclarationsAttribute &lt;/a&gt;–
Decorates a field that returns XmlSerializerNamespaces.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;That
field will be use to get namespace prefixes during serialization.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlschemaproviderattribute.aspx"&gt;XmlSchemaProviderAttribute &lt;/a&gt;–
"When applied to a type, stores the name of a static method of the type that returns
an XML schema and a &lt;a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl00','ctl00_LibFrame_MainContent_ctl00::ctl00_LibFrame_MainContent_ctl01',this.href);" href="http://msdn2.microsoft.com/en-us/library/system.xml.xmlqualifiedname.aspx"&gt;XmlQualifiedName&lt;/a&gt; that
controls the serialization of the type. "&amp;nbsp; Used by WSDL.exe to return the schema
for the class.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Target class must implement
IXmlSerializable.&amp;nbsp; New to 2.0.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializerassemblyattribute.aspx"&gt;XmlSerializerAssemblyAttribute &lt;/a&gt;–
Specifies the name of an assembly that the Xml Serializer can use.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If
specified, the Xml Serializer doesn’t need to create a temporary assembly.&amp;nbsp; New
to 2.0&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializerversionattribute.aspx"&gt;XmlSerializerVersionAttribute &lt;/a&gt;–
Signifies that the code was generated by the serialization infrastructure and can
be reused for increased performance, when this attribute is applied to an assembly.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I’m
not sure I should use this attribute.&amp;nbsp; I think this is used by code produced
by sgen.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;To completely control the XML Serialization of an object, you
need to implement &lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.ixmlserializable.aspx"&gt;IXmlSerializable&lt;/a&gt;.&amp;nbsp;
This is not a new interface.&amp;nbsp; In 1.1, the instructions where as follows:&amp;nbsp;
"not intended to be used directly from your code.&amp;nbsp; Basically, you implement the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.ixmlserializable.readxml.aspx"&gt;ReadXML &lt;/a&gt;and &lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.ixmlserializable.writexml.aspx"&gt;WriteXML &lt;/a&gt;methods
and you're done.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;Here are the&amp;nbsp;delegates and&amp;nbsp;events:&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.unknownattribute.aspx"&gt;UnknownAttribute&lt;/a&gt; event
- thrown when the serializer encounters an unknown attribute.&amp;nbsp; By default the
Xml serializer ignores unknown attributes.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.unknownelement.aspx"&gt;UnknownElement &lt;/a&gt;event
- thrown when the serializer encounters an unknown element.&amp;nbsp; By default the Xml
serializer ignores unknown elements.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.unknownnode.aspx"&gt;UnknownNode&lt;/a&gt; event
-thrown when the serializer encounters an unknown node.&amp;nbsp; By default the Xml serializer
ignores unknown node.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.unreferencedobject.aspx"&gt;UnreferencedObject&lt;/a&gt; event
- section 5 of the SOAP document at w3c.&amp;nbsp; Basically you can reference other object
within the same Xml document.&amp;nbsp; This event is thrown when it can't find the referenced
object. &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializationcollectionfixupcallback.aspx"&gt;XmlSerializationCollectionFixupCallback&lt;/a&gt;&amp;nbsp;delegate
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializationfixupcallback.aspx"&gt;XmlSerializationFixupCallback&lt;/a&gt; delegate
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializationreadcallback.aspx"&gt;XmlSerializationReadCallback&lt;/a&gt; delegate
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializationwritecallback.aspx"&gt;XmlSerializationWriteCallback&lt;/a&gt; delegate
- All four of these delegates: "This delegate supports the .NET Framework infrastructure
and is not intended to be used directly from your code."
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;em&gt;Next post -&amp;gt; System.IO namespace&lt;/em&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=eabebf71-403a-4d4d-963a-c8cb4f647740" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,eabebf71-403a-4d4d-963a-c8cb4f647740.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=90fc8c62-4722-447a-81a1-626985871956</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,90fc8c62-4722-447a-81a1-626985871956.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,90fc8c62-4722-447a-81a1-626985871956.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=90fc8c62-4722-447a-81a1-626985871956</wfw:commentRss>
      <title>70-551, 70-552, 70-553 Section I, Part IV - Runtime Serialization</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,90fc8c62-4722-447a-81a1-626985871956.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,90fc8c62-4722-447a-81a1-626985871956.aspx</link>
      <pubDate>Tue, 31 Jan 2006 20:41:36 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=59bf77af-06e1-4a9c-aa52-8b592f9f3237&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3dcedf2204-97ff-4ec2-ba13-6688112f6f2f%26url%3dhttp%253a%252f%252fwww.microsoft.com%252flearning%252fexams%252f70-551.asp" ?&gt;&lt;font color=#003399 size=3&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=59bf77af-06e1-4a9c-aa52-8b592f9f3237&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3dcedf2204-97ff-4ec2-ba13-6688112f6f2f%26url%3dhttp%253a%252f%252fwww.microsoft.com%252flearning%252fexams%252f70-552.asp" ?&gt;&lt;font color=#003399 size=3&gt;UPGRADE:
MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font color=#003399 size=3&gt;&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=59bf77af-06e1-4a9c-aa52-8b592f9f3237&amp;amp;url=http%3a%2f%2fblog.denoncourtassociates.com%2fct.ashx%3fid%3dcedf2204-97ff-4ec2-ba13-6688112f6f2f%26url%3dhttp%253a%252f%252fwww.microsoft.com%252flearning%252fexams%252f70-553.asp" ?&gt;UPGRADE:
MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft
.NET Framework: Part 1&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Serialize or deserialize an object or an object graph by using
runtime serialization techniques. (Refer System.Runtime.Serialization namespace) &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Serialization interfaces &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Serilization attributes &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;SerializationEntry structure and SerializationInfo class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;ObjectManager class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Formatter class, FormatterConverter class, and FormatterServices
class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;StreamingContext structure&lt;/em&gt;&lt;/font&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Here's an &lt;a href="http://www.codeguru.com/columns/dotnet/article.php/c6595__1"&gt;old
article by Jeffery Richter &lt;/a&gt;that explains most of the stuff about serialization&amp;nbsp;pertaining
to this test.&amp;nbsp; It's 1.1, but you'll find that there isn't a lot that has changed.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Serialization Interfaces (System.Runtime.Serialization)&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/7y2ty1t2(en-US,VS.80).aspx"&gt;IDeserializationCallback &lt;/a&gt;–
Provides a method that is called when deserialization is complete – useful for setting
internal state after a deserialization.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/d5103ec0(en-US,VS.80).aspx"&gt;IFormatter &lt;/a&gt;–
Exposes methods for serializing/deserializing an object.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Used
for controlling the format output of the serialization.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.binaryformatter.deserialize.aspx"&gt;BinaryFormatter&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.formatters.soap.soapformatter.aspx"&gt;SoapFormatter &lt;/a&gt;are
two examples of objects that implement this interface.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Note&amp;nbsp;that &lt;a href="http://msdn2.microsoft.com/en-us/library/d5103ec0(en-US,VS.80).aspx"&gt;IFormat&lt;strong&gt;ter&lt;/strong&gt; &lt;/a&gt;and &lt;a href="http://msdn2.microsoft.com/en-us/library/system.iformattable.aspx"&gt;IFormat&lt;strong&gt;table&lt;/strong&gt; &lt;/a&gt;are
two different interfaces that do two different things.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.iformatterconverter.aspx"&gt;IFormatterConverter &lt;/a&gt;–
Converts objects to different types.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Appears
functionally identical to &lt;a href="http://msdn2.microsoft.com/en-us/library/system.iconvertible.aspx"&gt;IConvertible&lt;/a&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Not
sure what the difference is aside from &lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.iformatterconverter.aspx"&gt;IFormatterConverter &lt;/a&gt;is
called during serialization.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.iobjectreference.aspx"&gt;IObjectReference &lt;/a&gt;–
Used for objects that are “reference” objects – Singletons for example.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You
wouldn’t want to deserialize a new instance of a singleton.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;GetRealObject
is called in the Fixup stage and should return a reference to the object.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx"&gt;ISerializable &lt;/a&gt;–
Tells the framework that the developer has provided their own serialization implementation.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.iserializationsurrogate.aspx"&gt;ISerializationSurrogate &lt;/a&gt;–
Allows one object to serialize another. &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;span style="mso-tab-count: 1"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;a href="http://www.codeproject.com/dotnet/Surrogate_Serialization.asp"&gt;http://www.codeproject.com/dotnet/Surrogate_Serialization.asp&lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.isurrogateselector.aspx"&gt;ISurrogateSelector &lt;/a&gt;–
Assists the serializer in deciding which Surrogate to use for a particular type.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;
Used in &lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.iserializationsurrogate.setobjectdata.aspx"&gt;ISerializationSurrogate
SetObjectData&lt;/a&gt; method.&amp;nbsp; &lt;/span&gt;It’s not clear why I would ever need to implement
this interface.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.surrogateselector.aspx"&gt;SurrogateSelector &lt;/a&gt;seems
to do a pretty good job.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Serialization Attributes&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;These
four are new to 2.0:&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.ondeserializedattribute.aspx"&gt;OnDeserializingAttribute &lt;/a&gt;–
decorates a method that is called before object is actually deserialized.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.ondeserializingattribute.aspx"&gt;OnDeserializedAttribute &lt;/a&gt;–
called after class is deserialized.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Seems
functionally identical to IDeserializationCallback to me.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.onserializedattribute.aspx"&gt;OnSerializingAttribute &lt;/a&gt;–
called before an object is serialized.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.onserializingattribute.aspx"&gt;OnSerializedAttribute &lt;/a&gt;–
called after an object is serialized.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;**Methods
decorated with these 4 attributes are expected to have one parameter that is a StreamingContext
object.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.optionalfieldattribute.aspx"&gt;OptionalFieldAttribute &lt;/a&gt;–
marks a field as optional, as far as serialization is concerned.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
prevents the serializer from freaking if it is not in the stream.&amp;nbsp; New in 2.0&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.optionalfieldattribute.aspx"&gt;System.Serializable&lt;/a&gt; –
marks a object as able to be serialized&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/z951x24h(en-US,VS.80).aspx"&gt;System.NonSerialized&lt;/a&gt; –
tells the serializer to ignore the field when serializing&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.serializationinfo.aspx"&gt;SerializationInfo &lt;/a&gt;class&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Stores
information needed to serialize/deserialize an object.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Mostly
a collection of serializationEntry structures.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Method
is &lt;a href="http://msdn2.microsoft.com/en-us/library/e2ytc7hx(en-US,VS.80).aspx"&gt;AddValue&lt;/a&gt;,
not Add.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.serializationentry.aspx"&gt;SerializationEntry &lt;/a&gt;structure&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Contains
the Name, Type, and a reference to an object that should be serialized.&amp;nbsp; Used
when enumerating through SerializationInfo object.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-tab-count: 1"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.objectmanager.aspx"&gt;ObjectManager &lt;/a&gt;class&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Keeps
track of objects as they are deserialized to prevent reserialization (creating the
same object twice in memory).&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.formatter.aspx"&gt;Formatter &lt;/a&gt;class&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Provides
base functions for serialization formatters. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Abstract
class.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;BinaryFormatter and SoapFormatter
inherit from Formatter.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.formatterconverter.aspx"&gt;FormatterConverter &lt;/a&gt;class &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Base
implementation of IFormatterConverter.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Not
clear where I would use it.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.formatterservices.aspx"&gt;FormatterServices &lt;/a&gt;class&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Helper
object for serialization.&amp;nbsp; &lt;a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl01','ctl00_LibFrame_MainContent_ctl01::ctl00_LibFrame_MainContent_ctl11',this.href);" href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.formatterservices.getobjectdata.aspx"&gt;GetObjectData&lt;/a&gt;, &lt;a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl01','ctl00_LibFrame_MainContent_ctl01::ctl00_LibFrame_MainContent_ctl13',this.href);" href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.formatterservices.getserializablemembers.aspx"&gt;GetSerializableMembers&lt;/a&gt;&amp;nbsp;and &lt;a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl01','ctl00_LibFrame_MainContent_ctl01::ctl00_LibFrame_MainContent_ctl19',this.href);" href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.formatterservices.populateobjectmembers.aspx"&gt;PopulateObjectMembers&lt;/a&gt;&amp;nbsp;are
interesting methods that I didn't know existed.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.streamingcontext.aspx"&gt;StreamingContext &lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Describes
the source and destination of a given serialized stream, and provides an additional
caller-defined context.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Can figure out
if the object is being serialized CrossProcess, CrossMachine…&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Next up - XML Serialization&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=90fc8c62-4722-447a-81a1-626985871956" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,90fc8c62-4722-447a-81a1-626985871956.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=59bf77af-06e1-4a9c-aa52-8b592f9f3237</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,59bf77af-06e1-4a9c-aa52-8b592f9f3237.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,59bf77af-06e1-4a9c-aa52-8b592f9f3237.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=59bf77af-06e1-4a9c-aa52-8b592f9f3237</wfw:commentRss>
      <title>70-551, 70-552, 70-553 Section I, Part III - Diagnostics</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,59bf77af-06e1-4a9c-aa52-8b592f9f3237.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,59bf77af-06e1-4a9c-aa52-8b592f9f3237.aspx</link>
      <pubDate>Tue, 31 Jan 2006 14:53:11 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=cedf2204-97ff-4ec2-ba13-6688112f6f2f&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2flearning%2fexams%2f70-551.asp" ?&gt;&lt;font color=#003399 size=3&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=cedf2204-97ff-4ec2-ba13-6688112f6f2f&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2flearning%2fexams%2f70-552.asp" ?&gt;&lt;font color=#003399 size=3&gt;UPGRADE:
MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font color=#003399 size=3&gt;&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=cedf2204-97ff-4ec2-ba13-6688112f6f2f&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2flearning%2fexams%2f70-553.asp" ?&gt;UPGRADE:
MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft
.NET Framework: Part 1&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Debug and trace a .NET Framework application by using the
System.Diagnostics namespace. &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Debug class and Debugger class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Trace class, CorrelationManager class, TraceListener class,
TraceSource class, TraceSwitch class, XmlWriterTraceListener class, DelimitedListTraceListener
class, and EventlogTraceListener class &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Debugger attributes&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/04/CLRInsideOut/default.aspx"&gt;Krzysztof
Cwaline has a good writeup &lt;/a&gt;of these features on MSDN.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;u&gt;Debug&lt;/u&gt; class - Pretty much the same as it was before.&amp;nbsp;
Debug.Assert, Debug.WriteLine.... However they did add a Debug.Print which appears
functionally identical to Debug.WriteLine.&amp;nbsp; Maybe it makes VB 6.0 upgrades easier.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;u&gt;Debugger&lt;/u&gt; class - Nothing new here, either.&amp;nbsp; &lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font face=Verdana size=2&gt;Embodies
the debugger – is a process attached, break into a debugger, launch a debugger.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font size=2&gt;&lt;font face=Verdana&gt;&lt;u&gt;Trace&lt;/u&gt; class
- There are some new methods here.&amp;nbsp; My impression is that they added some of
the stuff from the Enterprise Instrumentation Framework.&amp;nbsp; TraceError, TraceWarning,
CorrelationManager, UseGlobalLock are some of the new members.&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font size=2&gt;&lt;font face=Verdana&gt;&lt;u&gt;CorrelationManager&lt;/u&gt; - &lt;/font&gt;&lt;/font&gt;&lt;a href="http://notgartner.com/posts/1649.aspx"&gt;&lt;font face=Verdana size=2&gt;Denny
Mitch has a excellent writeup &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana size=2&gt;on this class (It's
written for the beta release, but the information still applies).&amp;nbsp; The idea is
to provide some way to differentiate tracing information when more then one request
could be executing at the same time or to get some context when you are calling a
method recursively.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font size=2&gt;&lt;font face=Verdana&gt;&lt;u&gt;TraceListener&lt;/u&gt; -
Abtract class that serves as the base for all TraceListeners.&amp;nbsp; It appears you
can now control the "verbosity" of the trace output with the &lt;/font&gt;&lt;/font&gt;&lt;a href="http://msdn2.microsoft.com/system.diagnostics.tracelistener.traceoutputoptions.aspx"&gt;&lt;font face=Verdana size=2&gt;TraceOutputOptions&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana size=2&gt;&amp;nbsp;property.&amp;nbsp;
You can also filter what gets send to a listener using the &lt;/font&gt;&lt;a href="http://msdn2.microsoft.com/sh6fh73h(en-US,VS.80).aspx"&gt;&lt;font face=Verdana size=2&gt;filter &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana size=2&gt;property.&amp;nbsp; &lt;/font&gt;&lt;a href="http://notgartner.com/posts/1652.aspx"&gt;&lt;font face=Verdana size=2&gt;Denny
Mitch has another great post&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana size=2&gt; about that feature.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font size=2&gt;&lt;font face=Verdana&gt;&lt;u&gt;TraceSource&lt;/u&gt; -
Abtract class that serves as the base for all TraceSources.&amp;nbsp; They've added three
new TraceSources in 2.0: &lt;/font&gt;&lt;/font&gt;&lt;a href="http://msdn2.microsoft.com/library/system.diagnostics.consoletracelistener.aspx"&gt;&lt;font face=Verdana size=2&gt;ConsoleTraceListener&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana size=2&gt;, &lt;/font&gt;&lt;a href="http://msdn2.microsoft.com/library/system.diagnostics.delimitedlisttracelistener.aspx"&gt;&lt;font face=Verdana size=2&gt;DelimitedListTraceListener&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana size=2&gt;&amp;nbsp;and &lt;/font&gt;&lt;a href="http://msdn2.microsoft.com/library/system.diagnostics.xmlwritertracelistener.aspx"&gt;&lt;font face=Verdana size=2&gt;XmlWriterTraceListener&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana size=2&gt;.&amp;nbsp;
Again, &lt;/font&gt;&lt;a href="http://notgartner.com/posts/1644.aspx"&gt;&lt;font face=Verdana size=2&gt;Denny
Mitch has some good stuff on them&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana size=2&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font size=2&gt;&lt;font face=Verdana&gt;&lt;u&gt;TraceSwitch&lt;/u&gt; -
An object that limits what events get reported to a trace listener.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;
Another method of filtering.&amp;nbsp; This allows you to control what level of messages
the TraceSource is interested in.&amp;nbsp; Tradionally specified in your app's config
file.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font face=Verdana size=2&gt;There
is a good &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/07/Bugslayer/"&gt;&lt;font face=Verdana size=2&gt;MSDN
mag article by John Robbins &lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana size=2&gt;that discusses the
details of the new tracing features.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font size=2&gt;&lt;font face=Verdana&gt;&lt;u&gt;Debugger
Attributes&lt;/u&gt; - This task was vague to me.&amp;nbsp; I took it to mean: &amp;nbsp;understand
all the attributes in the System.Diagnostics namespace.&amp;nbsp; There is a good &lt;/font&gt;&lt;/font&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms228992.aspx"&gt;&lt;font face=Verdana size=2&gt;article
on MSDN&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana size=2&gt; about these attributes.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="mso-spacerun: yes"&gt; 
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Verdana size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;u&gt;DebuggerDisplayAttibute&lt;/u&gt; tells
which field/property should be shown in the watch window for a class.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font size=2&gt;&lt;font face=Verdana&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;u&gt;DebuggerTypeProxyAttribute&lt;/u&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;tells
debugger to use a different class when representing it in the debug window.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Recommended
practice is that the TypeProxy is an internal class of the intended class.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;TypeProxy
must contain a constructor with the intended class as a parameter.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Verdana size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font size=2&gt;&lt;font face=Verdana&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;u&gt;DebuggerBrowseableAttribute&lt;/u&gt; specifies
if/how a member is displayed in the debug window : Never (Hidden), Collapsed (Displayed
when expanded – default), RootHidden – Display members of the collection, not the
collection properties if collection class.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font face=Verdana size=2&gt;Next post - Runtime Serialization&lt;/font&gt;&lt;/em&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&gt;
&lt;/span&gt;&lt;/font&gt;&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=59bf77af-06e1-4a9c-aa52-8b592f9f3237" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,59bf77af-06e1-4a9c-aa52-8b592f9f3237.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=01099996-1a5e-4e64-82c1-3a0bc8b6f977</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,01099996-1a5e-4e64-82c1-3a0bc8b6f977.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,01099996-1a5e-4e64-82c1-3a0bc8b6f977.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=01099996-1a5e-4e64-82c1-3a0bc8b6f977</wfw:commentRss>
      <title>70-551, 70-552, 70-553 Section I, Part II - Configuration Management</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,01099996-1a5e-4e64-82c1-3a0bc8b6f977.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,01099996-1a5e-4e64-82c1-3a0bc8b6f977.aspx</link>
      <pubDate>Mon, 30 Jan 2006 15:43:44 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=cedf2204-97ff-4ec2-ba13-6688112f6f2f&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2flearning%2fexams%2f70-551.asp" ?&gt;&lt;font color=#003399 size=3&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=cedf2204-97ff-4ec2-ba13-6688112f6f2f&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2flearning%2fexams%2f70-552.asp" ?&gt;&lt;font color=#003399 size=3&gt;UPGRADE:
MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font color=#003399 size=3&gt;&lt;a href="http://blog.denoncourtassociates.com/ct.ashx?id=cedf2204-97ff-4ec2-ba13-6688112f6f2f&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2flearning%2fexams%2f70-553.asp" ?&gt;UPGRADE:
MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft
.NET Framework: Part 1&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;
&lt;font color=#003399 size=3&gt;&lt;font color=#a9a9a9 size=2&gt;&lt;em&gt;Embed configuration management
functionality into a .NET Framework application. (Refer System.Configuration namespace) &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9 size=2&gt;&lt;em&gt;Configuration class and ConfigurationManager class &lt;/em&gt;&lt;/font&gt;
&lt;br&gt;
&lt;li&gt;
&lt;font color=#a9a9a9 size=2&gt;&lt;em&gt;ConfigurationSettings class, ConfigurationElement class,
ConfigurationElementCollection class, and ConfigurationElementProperty class &lt;/em&gt;&lt;/font&gt;
&lt;br&gt;
&lt;li&gt;
&lt;font color=#a9a9a9 size=2&gt;&lt;em&gt;Implement IConfigurationSectionHandler interface &lt;/em&gt;&lt;/font&gt;
&lt;br&gt;
&lt;li&gt;
&lt;font color=#a9a9a9 size=2&gt;&lt;em&gt;ConfigurationSection class, ConfigurationSectionCollection
class, ConfigurationSectionGroup class, and ConfigurationSectionGroupCollection class &lt;/em&gt;&lt;/font&gt;
&lt;br&gt;
&lt;li&gt;
&lt;font color=#a9a9a9 size=2&gt;&lt;em&gt;Implement ISettingsProviderService interface &lt;/em&gt;&lt;/font&gt;
&lt;br&gt;
&lt;li&gt;
&lt;font color=#a9a9a9 size=2&gt;&lt;em&gt;Implement IApplicationSettingsProvider interface &lt;/em&gt;&lt;/font&gt;
&lt;br&gt;
&lt;li&gt;
&lt;font color=#a9a9a9 size=2&gt;&lt;em&gt;ConfigurationValidationBase class &lt;/em&gt;&lt;/font&gt;
&lt;br&gt;
&lt;li&gt;
&lt;font color=#a9a9a9 size=2&gt;&lt;em&gt;Implement IConfigurationSystem interface &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;This is the framework for reading/writing Configuration
information. This has been overhauled in the 2.0 framework. &lt;a href="http://www.devx.com/dotnet/Article/27562"&gt;Here's &lt;/a&gt;an
article that gives an overview. Beware that it is referencing beta builds.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;Paulo Reichert has a good &lt;a href="http://blogs.conchango.com/pauloreichert/archive/2005/05/31/1514.aspx"&gt;blog
entry&lt;/a&gt; on creating your own configuration file. Reading into the way the Microsoft
has grouped these tasks together, I think that's what they want you to know.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;Configuration&lt;/u&gt; class - A merged view of all configuration
information. Meaning it merges all information from various web.config, machine.config
and other config files to give you a look at all the config information for your current
context.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;ConfigurationManager&lt;/u&gt; - Static class that provides
access to specific areas of config files - AppSettings, ConnectionStrings. Allows
access to the standard config file, machine.config. Openning a config file returns
a Configuration object.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;ConfigurationSettings&lt;/u&gt; class - Doesn't look like
it has changed much since 1.1.&amp;nbsp; Gets a readonly version of the config file.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;ConfigurationElement&lt;/u&gt; - Represents an XML element
in a config file.&amp;nbsp; Abstract class.&amp;nbsp; If you're writting your own config handler,
you're probably going to start with a class based on ConfigurationElement.&amp;nbsp; See
Paulo's blog entry mentioned above.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;ConfigurationElementCollection&lt;/u&gt; - Collection of said
ConfigurationElements.&amp;nbsp; Inherit from this when your config file has multiple
elements of the same type.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;ConfigurationElementProperty&lt;/u&gt; - Accessed as a property
of the ConfigurationElement.&amp;nbsp; Allows you to set the validator.&amp;nbsp; There isn't
much info on this object.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;IConfigurationSectionHandler&lt;/u&gt; - "Handles the access
to certain configuration sources".&amp;nbsp; This was the way that you did custom configuration
sections in 1.1.&amp;nbsp; I don't think you should use it in 2.0 given the new objects
we have to deal with Configuration files.&amp;nbsp; I could be wrong.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;ConfigurationSection&lt;/u&gt; - Presents a configuration
section in an XML file.&amp;nbsp; Abstract class.&amp;nbsp; Again, see Paulo's blog entry.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;ConfigurationSectionCollection&lt;/u&gt; - "&lt;font size=3&gt;&lt;font size=2&gt;Represents
a collection of related sections within a configuration file.&lt;/font&gt;"&amp;nbsp; &lt;/font&gt;&lt;font size=2&gt;Like
ConnectionStrings.&amp;nbsp; You could have multiple instances of the&amp;nbsp;ConnectionStrings
in your config file.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;ConfigurationSectionGroup&lt;/u&gt; - Container for groups
of ConfigurationSections.&amp;nbsp; Think System.Web section in the web.config.&amp;nbsp;
That is a ConfigurationSectionGroup (implemented in SystemWebSectionGroup)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;ConfigurationSectionGroupCollection&lt;/u&gt; - Allows you
to interate through a collection of ConfigurationSectionGroup objects.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;ISettingsProvider&lt;/u&gt; - Interface that is used to divorce
the physical reading/writing of configuration information from the logical need to
read/write.&amp;nbsp; If you want to store config info in a place other than an XML file,
you'll need to write a class that implements ISettingsProvider.&amp;nbsp; This doesn't
appear to have changed from version 1.1&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;IApplicationSettingsProvider&lt;/u&gt; - "Defines extended
capabilities for client-based application settings providers. ".&amp;nbsp; This is an
another example of the provider architecture that is throughout the 2.0 framework.&amp;nbsp;
This provider deals with getting config information for a specific version of the
app, upgrading config info...&amp;nbsp; "The .NET Framework enables side-by-side installation
and execution of different versions of the same application. The application settings
provider stores the application settings for each version of an application separately
to ensure isolation. However, you may want to migrate settings from the previous version
of an application to the current one. To provide this migration functionality, use
the &lt;b&gt;Upgrade&lt;/b&gt; method, implemented in a class derived from &lt;a onclick="javascript:TrackThisClick('ctl00_LibFrame_MainContent_ctl26','ctl00_LibFrame_MainContent_ctl26::ctl00_LibFrame_MainContent_ctl27',this.href);" href="http://msdn2.microsoft.com/en-us/library/system.configuration.settingsprovider.aspx"&gt;SettingsProvider&lt;/a&gt;." &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;ConfigurationValidationBase&lt;/u&gt; - Base class for configuration
file validations.&amp;nbsp; Specific implementations are objects such as &lt;a href="http://msdn2.microsoft.com/en-us/library/system.configuration.stringvalidator.aspx"&gt;StringValidator&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/ms134513(en-US,VS.80).aspx"&gt;IntegerValidator&lt;/a&gt;&amp;nbsp;.&amp;nbsp;
These&amp;nbsp;can be&amp;nbsp;applied as attributes to properties in your configuration object.&amp;nbsp;
Paulo's blog entry has more information on these.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;&lt;u&gt;IConfigurationSystem&lt;/u&gt; - "This interface supports
the .NET Framework and is not intended to be used directly in your code".&amp;nbsp; Which
begs the question, why do I have to know about it for an exam?&amp;nbsp; This appears
to be used to load up the config system, but I can't find any examples of its usage
on the web.&amp;nbsp; It doesn't appear to be explicitly mentioned in any config file
on my system (But I guess that would be a classic chicken or egg problem).&amp;nbsp; Reflector
isn't pulling anything up that depends on it.&amp;nbsp; So I guess know that it exists?&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;The configuration section has substantially changed, so
it would be to your benefit both for the exam and your own knowledge to take a fresh
look at it.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000 size=2&gt;I was going to look at debugging in this post, but I'll
address that in the next post&lt;/font&gt;
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=01099996-1a5e-4e64-82c1-3a0bc8b6f977" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,01099996-1a5e-4e64-82c1-3a0bc8b6f977.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=cedf2204-97ff-4ec2-ba13-6688112f6f2f</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,cedf2204-97ff-4ec2-ba13-6688112f6f2f.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,cedf2204-97ff-4ec2-ba13-6688112f6f2f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=cedf2204-97ff-4ec2-ba13-6688112f6f2f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <h2 class="Subtitle">
          <a href="http://www.microsoft.com/learning/exams/70-551.asp">
            <font size="3">UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework</font>
          </a>
          <br />
          <a href="http://www.microsoft.com/learning/exams/70-552.asp">
            <font size="3">UPGRADE:
MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework</font>
          </a>
          <br />
          <font size="3">
            <a href="http://www.microsoft.com/learning/exams/70-553.asp">UPGRADE:
MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft
.NET Framework: Part 1</a>
          </font>
        </h2>
        <p class="Subtitle">
          <font color="#000000">In all of the prep guides to these exams, Section I is identical.</font>
        </p>
        <p class="Subtitle">
          <font color="#000000">Here are the goals I looked at:</font>
        </p>
        <p class="Subtitle">
          <em>
            <font color="#a9a9a9">Manage data in a .NET Framework application by using .NET
Framework 2.0 system types. (Refer System namespace) </font>
          </em>
        </p>
        <ul>
          <li>
            <em>
              <font color="#a9a9a9">Value types </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Reference types </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Attributes </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Generic types </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Exception classes </font>
            </em>
          </li>
          <li>
            <em>
              <font color="#a9a9a9">Boxing and UnBoxing </font>
            </em>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>TypeForwardedToAttributes class</em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#000000">Nothing too special here.  Everybody should know about
generics by now.  The TypeForwardedToAttribute is new.  Here some info I
found on that:</font>
          <br />
   <a href="http://www.heege.net/blog/PermaLink,guid,8d076332-4fb0-44b5-a829-4c4d653de2d6.aspx"><font face="Times New Roman" size="3">http://www.heege.net/blog/PermaLink,guid,8d076332-4fb0-44b5-a829-4c4d653de2d6.aspx</font></a><br />
   <a href="http://notgartner.com/posts/2955.aspx"><font face="Times New Roman" size="3">http://notgartner.com/posts/2955.aspx</font></a></p>
        <p>
          <font color="#a9a9a9">
            <em>Manage a group of associated data in a .NET Framework application
by using collections. (Refer System.Collections namespace) </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>ArrayList class </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Collection interfaces </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Iterators </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Hashtable class </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>CollectionBase class and ReadOnlyCollectionBase class </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>DictionaryBase class and DictionaryEntry class </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Comparer class </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Queue class </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>SortedList class </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>BitArray class </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>Stack class </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#000000">Again, nothing too new here.  The only thing to be aware
of is the <a href="http://msdn2.microsoft.com/en-us/library/9k7k7cf0.aspx">yield return</a> statement
in C#.  It seems that a similiar construct is not available in VB.  Some
good discussion can be see here:<br /><a href="http://robgarrett.com/Blogs/software/archive/2005/09/13/1588.aspx"><font face="Times New Roman" size="3">http://robgarrett.com/Blogs/software/archive/2005/09/13/1588.aspx</font></a></font>
        </p>
        <p>
          <font color="#000000">
            <font color="#808080">
              <em>Improve type safety and application
performance in a .NET Framework application by using generic collections. (Refer System.Collections.Generic
namespace) </em>
            </font>
          </font>
        </p>
        <ul>
          <li>
            <font color="#808080">
              <em>Collection.Generic interfaces </em>
            </font>
          </li>
          <li>
            <font color="#808080">
              <em>Generic Dictionary </em>
            </font>
          </li>
          <li>
            <font color="#808080">
              <em>Generic Comparer class and Generic EqualityComparer class </em>
            </font>
          </li>
          <li>
            <font color="#808080">
              <em>Generic KeyValuePair structure </em>
            </font>
          </li>
          <li>
            <font color="#808080">
              <em>Generic List class, Generic List.Enumerator structure, and
Generic SortedList class </em>
            </font>
          </li>
          <li>
            <font color="#808080">
              <em>Generic Queue class and Generic Queue.Enumerator structure </em>
            </font>
          </li>
          <li>
            <font color="#808080">
              <em>Generic SortedDictionary class </em>
            </font>
          </li>
          <li>
            <font color="#808080">
              <em>Generic LinkedList </em>
            </font>
          </li>
          <li>
            <font color="#808080">
              <em>Generic Stack class and Generic Stack.Enumerator structure </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#000000">Just the generic implementations of the collection classes. 
Know that generics are faster because they prevent a lot of boxing/unboxing operations.</font>
        </p>
        <p>
          <font color="#a9a9a9">
            <em>Implement .NET Framework interfaces to cause components
to comply with standard contracts. (Refer System namespace) </em>
          </font>
        </p>
        <ul>
          <li>
            <font color="#a9a9a9">
              <em>IComparable interface </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>IDisposable interface </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>IConvertible interface </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>ICloneable interface </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>INullableValue interface </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>IEquatable interface </em>
            </font>
          </li>
          <li>
            <font color="#a9a9a9">
              <em>IFormattable interface </em>
            </font>
          </li>
        </ul>
        <p>
          <font color="#000000">Some neat stuff here.  A lot of it existed in 1.1, I just
never had a chance to use it.<br /><font face="Times New Roman" size="3"><u>IConvertible<br /></u></font><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 1">            </span>Specifies
means to convert an object to a native value type.<span style="mso-spacerun: yes">  </span>Convert.ToInt32…
Throw InvalidCastException if no meaningful conversion.</font></font></font>
        </p>
        <font color="#000000">
          <p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
            <font face="Times New Roman" size="3">
              <u>INullableValue</u>
            </font>
          </p>
          <p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
            <font size="3">
              <font face="Times New Roman">
                <span style="mso-tab-count: 1">            </span>Removed
in RTM</font>
            </font>
          </p>
          <p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
            <span style="mso-tab-count: 1">
              <font face="Times New Roman" size="3">            </font>
            </span>
            <a href="http://blogs.msdn.com/somasegar/archive/2005/08/11/450640.aspx">
              <font face="Times New Roman" size="3">http://blogs.msdn.com/somasegar/archive/2005/08/11/450640.aspx</font>
            </a>
          </p>
          <p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
            <font face="Times New Roman" size="3">
              <u>IEquatable&lt;T&gt;</u>
            </font>
          </p>
          <p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
            <font size="3">
              <font face="Times New Roman">
                <span style="mso-tab-count: 1">            </span>Implements
the CompareTo&lt;T&gt; method so that different object types can be compared.</font>
            </font>
          </p>
          <p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
            <font face="Times New Roman" size="3">
              <u>IFormattable</u>
            </font>
          </p>
          <p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
            <font size="3">
              <font face="Times New Roman">
                <span style="mso-tab-count: 1">            </span>ToString
implementation.<span style="mso-spacerun: yes">  </span>Difference between overriding
ToString and implementing IFormattable is that the currentCulture is provided when
implementing IFormattable.</font>
            </font>
          </p>
          <p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
            <font face="Times New Roman" size="3">
            </font> 
</p>
          <p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
            <font face="Times New Roman" size="3">That's it for now.  Next post-&gt; Configuration
Manager and Debugging.</font>
          </p>
          <p>
          </p>
        </font> 
<img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=cedf2204-97ff-4ec2-ba13-6688112f6f2f" /></body>
      <title>70-551, 70-552, 70-553 Section I, Part I</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,cedf2204-97ff-4ec2-ba13-6688112f6f2f.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,cedf2204-97ff-4ec2-ba13-6688112f6f2f.aspx</link>
      <pubDate>Fri, 27 Jan 2006 15:05:03 GMT</pubDate>
      <description>&lt;h2 class=Subtitle&gt;&lt;a href="http://www.microsoft.com/learning/exams/70-551.asp"&gt;&lt;font size=3&gt;UPGRADE:
MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.microsoft.com/learning/exams/70-552.asp"&gt;&lt;font size=3&gt;UPGRADE:
MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font size=3&gt;&lt;a href="http://www.microsoft.com/learning/exams/70-553.asp"&gt;UPGRADE:
MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft
.NET Framework: Part 1&lt;/a&gt;&lt;/font&gt;
&lt;/h2&gt;
&lt;p class=Subtitle&gt;
&lt;font color=#000000&gt;In all of the prep guides to these exams, Section I is identical.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=Subtitle&gt;
&lt;font color=#000000&gt;Here are the goals I looked at:&lt;/font&gt;
&lt;/p&gt;
&lt;p class=Subtitle&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Manage data in a .NET Framework application by using .NET
Framework 2.0 system types. (Refer System namespace) &lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Value types &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Reference types &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Attributes &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Generic types &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Exception classes &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;em&gt;&lt;font color=#a9a9a9&gt;Boxing and UnBoxing &lt;/font&gt;&lt;/em&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;TypeForwardedToAttributes class&lt;/em&gt; &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Nothing too special here.&amp;nbsp; Everybody should know about generics
by now.&amp;nbsp; The TypeForwardedToAttribute is new.&amp;nbsp; Here some info I found on
that:&lt;/font&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.heege.net/blog/PermaLink,guid,8d076332-4fb0-44b5-a829-4c4d653de2d6.aspx"&gt;&lt;font face="Times New Roman" size=3&gt;http://www.heege.net/blog/PermaLink,guid,8d076332-4fb0-44b5-a829-4c4d653de2d6.aspx&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://notgartner.com/posts/2955.aspx"&gt;&lt;font face="Times New Roman" size=3&gt;http://notgartner.com/posts/2955.aspx&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Manage a group of associated data in a .NET Framework application
by using collections. (Refer System.Collections namespace) &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;ArrayList class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Collection interfaces &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Iterators &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Hashtable class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;CollectionBase class and ReadOnlyCollectionBase class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;DictionaryBase class and DictionaryEntry class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Comparer class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Queue class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;SortedList class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;BitArray class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Stack class &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Again, nothing too new here.&amp;nbsp; The only thing to be aware
of is the &lt;a href="http://msdn2.microsoft.com/en-us/library/9k7k7cf0.aspx"&gt;yield return&lt;/a&gt; statement
in C#.&amp;nbsp; It seems that a similiar construct is not available in VB.&amp;nbsp; Some
good discussion can be see here:&lt;br&gt;
&lt;a href="http://robgarrett.com/Blogs/software/archive/2005/09/13/1588.aspx"&gt;&lt;font face="Times New Roman" size=3&gt;http://robgarrett.com/Blogs/software/archive/2005/09/13/1588.aspx&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;font color=#808080&gt;&lt;em&gt;Improve type safety and application performance
in a .NET Framework application by using generic collections. (Refer System.Collections.Generic
namespace) &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#808080&gt;&lt;em&gt;Collection.Generic interfaces &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#808080&gt;&lt;em&gt;Generic Dictionary &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#808080&gt;&lt;em&gt;Generic Comparer class and Generic EqualityComparer class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#808080&gt;&lt;em&gt;Generic KeyValuePair structure &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#808080&gt;&lt;em&gt;Generic List class, Generic List.Enumerator structure, and
Generic SortedList class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#808080&gt;&lt;em&gt;Generic Queue class and Generic Queue.Enumerator structure &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#808080&gt;&lt;em&gt;Generic SortedDictionary class &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#808080&gt;&lt;em&gt;Generic LinkedList &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#808080&gt;&lt;em&gt;Generic Stack class and Generic Stack.Enumerator structure &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Just the generic implementations of the collection classes.&amp;nbsp;
Know that generics are faster because they prevent a lot of boxing/unboxing operations.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;Implement .NET Framework interfaces to cause components to
comply with standard contracts. (Refer System namespace) &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;IComparable interface &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;IDisposable interface &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;IConvertible interface &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;ICloneable interface &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;INullableValue interface &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;IEquatable interface &lt;/em&gt;&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#a9a9a9&gt;&lt;em&gt;IFormattable interface &lt;/em&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Some neat stuff here.&amp;nbsp; A lot of it existed in 1.1, I just
never had a chance to use it.&lt;br&gt;
&lt;font face="Times New Roman" size=3&gt;&lt;u&gt;IConvertible&lt;br&gt;
&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;&lt;font face="Times New Roman"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Specifies
means to convert an object to a native value type.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Convert.ToInt32…
Throw InvalidCastException if no meaningful conversion.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;font color=#000000&gt; 
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" size=3&gt;&lt;u&gt;INullableValue&lt;/u&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font size=3&gt;&lt;font face="Times New Roman"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Removed
in RTM&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-tab-count: 1"&gt;&lt;font face="Times New Roman" size=3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;a href="http://blogs.msdn.com/somasegar/archive/2005/08/11/450640.aspx"&gt;&lt;font face="Times New Roman" size=3&gt;http://blogs.msdn.com/somasegar/archive/2005/08/11/450640.aspx&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" size=3&gt;&lt;u&gt;IEquatable&amp;lt;T&amp;gt;&lt;/u&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font size=3&gt;&lt;font face="Times New Roman"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Implements
the CompareTo&amp;lt;T&amp;gt; method so that different object types can be compared.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" size=3&gt;&lt;u&gt;IFormattable&lt;/u&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font size=3&gt;&lt;font face="Times New Roman"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ToString
implementation.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Difference between overriding
ToString and implementing IFormattable is that the currentCulture is provided when
implementing IFormattable.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" size=3&gt;That's it for now.&amp;nbsp; Next post-&amp;gt; Configuration
Manager and Debugging.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/font&gt;&amp;nbsp;&gt;
&gt;&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=cedf2204-97ff-4ec2-ba13-6688112f6f2f" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,cedf2204-97ff-4ec2-ba13-6688112f6f2f.aspx</comments>
      <category>Certifications</category>
    </item>
    <item>
      <trackback:ping>http://blog.philknows.net/Trackback.aspx?guid=c7bb92dc-3c94-457e-9c9c-4b1818d9cb8b</trackback:ping>
      <pingback:server>http://blog.philknows.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.philknows.net/PermaLink,guid,c7bb92dc-3c94-457e-9c9c-4b1818d9cb8b.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.philknows.net/CommentView,guid,c7bb92dc-3c94-457e-9c9c-4b1818d9cb8b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.philknows.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c7bb92dc-3c94-457e-9c9c-4b1818d9cb8b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font size="3">I haven't been blogging lately, because life has been pretty busy with
the holidays, new baby and trying a few spare-time projects in VS2005.  </font>
        </p>
        <p>
          <font size="3">If you are a MCAD or MCSD in .NET, you can take the upgrade exams to
upgrade your certifications to the new MCPD.  They are currently in beta, and
it looks like they've opened the beta to anyone.  See the training section at </font>
          <a href="http://msdn.microsoft.com/flash/currentissue.htm">
            <font size="3">http://msdn.microsoft.com/flash/currentissue.htm</font>
          </a>
        </p>
        <p>
          <font size="3">I'm scheduled to take all the upgrade exams between mid-Feb and mid
March.  I've found that studying for exams forces me to examine areas that I
otherwise don't take a serious look at.  Like tracing, code access security,
reflection and some of the more arcane areas of web services.  And, if I schedule
exams ambitiously (really close together), I'm more likely to spend the time that
I should preparing.  </font>
        </p>
        <p>
          <font size="3">My practice has been to go through the preparation exam guide with
a fine tooth comb, play with the areas that you haven't touched and prepare "cheat
sheets" (Study guide).  As I finish a study guide, I'll publish them here. 
Hopefully you will find them useful.</font>
        </p>
        <img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=c7bb92dc-3c94-457e-9c9c-4b1818d9cb8b" />
      </body>
      <title>Certification Exams for .NET Framework 2.0</title>
      <guid isPermaLink="false">http://blog.philknows.net/PermaLink,guid,c7bb92dc-3c94-457e-9c9c-4b1818d9cb8b.aspx</guid>
      <link>http://blog.philknows.net/PermaLink,guid,c7bb92dc-3c94-457e-9c9c-4b1818d9cb8b.aspx</link>
      <pubDate>Thu, 26 Jan 2006 20:06:05 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font size=3&gt;I haven't been blogging lately, because life has been pretty busy with
the holidays, new baby and trying a few spare-time projects in VS2005.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=3&gt;If you are a MCAD or MCSD in .NET, you can take the upgrade exams to
upgrade your certifications to the new MCPD.&amp;nbsp; They are currently in beta, and
it looks like they've opened the beta to anyone.&amp;nbsp; See the training section at &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/flash/currentissue.htm"&gt;&lt;font size=3&gt;http://msdn.microsoft.com/flash/currentissue.htm&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=3&gt;I'm scheduled to take all the upgrade exams between mid-Feb and mid March.&amp;nbsp;
I've found that studying for exams forces me to examine areas that I otherwise don't
take a serious look at.&amp;nbsp; Like tracing, code access security, reflection and some
of the more arcane areas of web services.&amp;nbsp; And, if I schedule exams ambitiously
(really close together), I'm more likely to spend the time that I should preparing.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=3&gt;My practice has been to go through the preparation exam guide with a
fine tooth comb, play with the areas that you haven't touched and prepare "cheat sheets"
(Study guide).&amp;nbsp; As I finish a study guide, I'll publish them here.&amp;nbsp; Hopefully
you will find them useful.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.philknows.net/aggbug.ashx?id=c7bb92dc-3c94-457e-9c9c-4b1818d9cb8b" /&gt;</description>
      <comments>http://blog.philknows.net/CommentView,guid,c7bb92dc-3c94-457e-9c9c-4b1818d9cb8b.aspx</comments>
      <category>Certifications</category>
    </item>
  </channel>
</rss>