<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Explore Dot Net with .NET Experts</title>
	<atom:link href="http://www.exploredotnet.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.exploredotnet.co.uk</link>
	<description>Be Expert with us in .NET and SQL Server</description>
	<lastBuildDate>Sat, 21 Apr 2012 04:45:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Visual Studio 2010 (Application Lifecycle Management)</title>
		<link>http://www.exploredotnet.co.uk/visual-studio-2010-application-lifecycle-management/</link>
		<comments>http://www.exploredotnet.co.uk/visual-studio-2010-application-lifecycle-management/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 05:25:02 +0000</pubDate>
		<dc:creator>John Alex</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[ALM in VS2010]]></category>

		<guid isPermaLink="false">http://www.exploredotnet.co.uk/?p=61</guid>
		<description><![CDATA[ALM….? ALM Architecture and Modeling Features Diagrams that comply with Unified Modeling Language (UML) 2.1.2: sequence, class, component, activity, and use case Layer diagrams Code-generated sequence diagrams and dependency graphs Architecture Explorer Architectural validation Integration with work items in Microsoft Visual Studio Team Foundation Server Extensibility for UML diagrams Brainstorming a project using Visual Studio [...]]]></description>
			<content:encoded><![CDATA[<p>ALM….?</p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/13.gif"><img class="alignleft size-medium wp-image-72" title="1" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/13-300x216.gif" alt="" width="300" height="216" /></a></p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/23.gif"><img class="alignleft size-medium wp-image-74" title="2" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/23-300x196.gif" alt="" width="300" height="196" /></a></p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/33.gif"><img class="alignleft size-medium wp-image-78" title="3" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/33-300x217.gif" alt="" width="300" height="217" /></a></p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/45.gif"><img class="alignleft size-medium wp-image-80" title="4" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/45-300x205.gif" alt="" width="300" height="205" /></a></p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/52.gif"><img class="alignleft size-medium wp-image-81" title="5" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/52-300x215.gif" alt="" width="300" height="215" /></a></p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/71.gif"><img class="alignleft size-medium wp-image-82" title="7" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/71-300x225.gif" alt="" width="300" height="225" /></a></p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/81.gif"><img class="alignleft size-medium wp-image-83" title="8" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/81-300x212.gif" alt="" width="300" height="212" /></a></p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/91.gif"><img class="alignleft size-medium wp-image-84" title="9" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/91-300x214.gif" alt="" width="300" height="214" /></a></p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/101.gif"><img class="alignleft size-medium wp-image-85" title="10" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/101-300x225.gif" alt="" width="300" height="225" /></a></p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/112.gif"><img class="alignleft size-medium wp-image-86" title="11" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/112-300x199.gif" alt="" width="300" height="199" /></a></p>
<p><strong>ALM Architecture and Modeling Features</strong></p>
<ul>
<li>Diagrams that comply with Unified Modeling Language (UML) 2.1.2: sequence, class, component, activity, and use case</li>
<li>Layer diagrams</li>
<li>Code-generated sequence diagrams and dependency graphs</li>
<li>Architecture Explorer</li>
<li>Architectural validation</li>
<li>Integration with work items in Microsoft Visual Studio Team Foundation Server</li>
<li>Extensibility for UML diagrams</li>
</ul>
<p><strong>Brainstorming a project using Visual Studio 2010</strong></p>
<p><strong>Business Context</strong></p>
<p>•Introducing Tailspin Toys</p>
<p> –Small Brick and Mortar hobby shop that sells model airplanes</p>
<p>–Want an online store front to supplement there in store sales</p>
<p><strong>Brainstorming Session &#8211; Scoping  it out</strong></p>
<ul>
<li>Define the solutions boundaries</li>
<li>Identify who will be impacted by the solution</li>
<li>Discover what valuable activities will be automated</li>
<li>Uncover Constraints that will limit the solution</li>
<li>Kick Start Requirements Gathering Process</li>
</ul>
<p><strong>Demo &#8211; Brainstorming</strong></p>
<ul>
<li>Create Empty Solution</li>
<li>Create Modeling Project</li>
<li>Add Use Case Diagram</li>
<li>Add Subsystem</li>
<li>Change Color</li>
<li>Add Vision Statement</li>
<li>Add Actors</li>
<li>Add Functional Requirements</li>
<li>Add Constraints</li>
<li>Iterate</li>
</ul>
<p><strong>Tips</strong></p>
<ul>
<li>Limit workshops to 1 hour each</li>
<li>Always start with a vision of the solution</li>
<li>Clearly identify who lives inside and outside the system</li>
<li>Describe goals from user’s point of view (business value)</li>
<li>Generate lots of ideas and capture everything</li>
</ul>
<p><strong>Organizing Features into Use Case Models</strong></p>
<p><strong>Use Case Diagrams</strong></p>
<ul>
<li>Discuss  and Communicate</li>
</ul>
<p>–The scenarios in which your system or application interacts with people, organizations, or external systems.</p>
<p>–The goals that it helps those actors achieve.</p>
<p>_The scope of your system</p>
<ul>
<li>No Detail, only summarizes some of the relationships between use cases, actors, and systems</li>
<li>Helpful in discovering scope -&gt; which functional requirements are part of our system</li>
<li>Lists only functional requirements, all others must be recorded separately</li>
</ul>
<p><strong>Guidelines</strong></p>
<ul>
<li>Breakup user goals and tasks into separate digestible diagrams</li>
<li>Use those diagrams as a structural guide for writing requirements as Use Case documents</li>
</ul>
<p><strong>A Few Words About Actors</strong></p>
<ul>
<li>Actors are <strong>always</strong> external participants</li>
<li>Actors Interact <strong>Directly</strong> with the system</li>
<li>Actors represent <strong>roles</strong></li>
<li>Use Cases are always <strong>initiated</strong> by an Actor</li>
</ul>
<p><strong>Actions</strong></p>
<ul>
<li>Create use cases</li>
<li>Add actors</li>
<li>Add subsystems</li>
<li>Add Use cases</li>
<li>Define association</li>
<li>Add Actor Generalization</li>
<li>Link to Artifacts</li>
<li>Structure your use cases</li>
<li>Define subsystems</li>
</ul>
<p>Tips</p>
<ul>
<li>Think of actors as roles and not job titles</li>
<li>Use business domain terminology</li>
<li>Focus on actors goals not implementation details</li>
<li>Always use strong active verbs in the names</li>
<li>Focus on only one Feature area in a single diagram</li>
<li>Stack cases in diagram to show relative order</li>
<li>Use color and notes to document important details</li>
<li>Avoid decomposing the use cases into too much detail. Use cases are about the users&#8217; experience of your system, instead of its internal workings</li>
</ul>
<p> </p>
<p><strong>Model Business Domains Using Conceptual Class Diagram</strong></p>
<p><strong>Conceptual Class Diagram<br />
aka domain model or analysis class model</strong></p>
<ul>
<li>Explore domain concepts and assign responsibilities</li>
<li>Develop a consistent vocabulary of business concepts and terms</li>
<li>–Used throughout the requirements modelUsed when communication between application and users</li>
<li>Describe the types of information used within the system and exchanged with other systems</li>
<li>Independent of requirements gathering method</li>
</ul>
<p><strong>Analysis Steps</strong></p>
<ul>
<li>Identify the key terms used as data or data type elements</li>
<li>Use the classes as nouns when writing requirements</li>
<li>Use enumerations to define literal values or states used in business processes</li>
<li>Iterate and refine this model as new requirements are captured</li>
</ul>
<p><strong>Tips – Domain Modeling</strong></p>
<ul>
<li>Use friendly names (spaces, no abbrevations)</li>
<li>Show just those classes needed in description of the requirements</li>
<li>Focus on names and simple relationships (associations)Don’t worry about aggregation or composition – that comes later in detailed design</li>
<li>Capture multiplicity to clarify the relationships</li>
<li>•Add attributes and types only if they are needed to clarify the requirements –Stick with standard primitives for attribute types: boolean, int, stringAdd doman specific types if they add clarity (Temprature:Celcius, Duration:weeks)</li>
<li>Stay implementation independent –Don’t assign visibilities – that comes later in detailed design –Avoid Modeling Keys or id’s – they are an implementation  detailsAvoid modeling verbs/actions/operations/functions</li>
</ul>
<p><strong>Activity Diagrams</strong></p>
<ul>
<li>Next Generation Flow Charts</li>
<li>Used to show processes –Business Processes –Work flows-Algorithms</li>
<li>Compliment to Use Cases-Show task flow instead of structure</li>
</ul>
<p><strong>Actions</strong></p>
<ul>
<li>Create Activity Diagram</li>
<li>Add Activities</li>
<li>Describing Control Flow –Describe decisions and Loops –Starting the activity –Ending the activity –Interrupting activity</li>
<li>Describing Data Flow –With Object Nodes –With input and output pins</li>
<li>Define action in more detail –Call Behavior Action –Call Operation Action</li>
<li>Concurrent Flows</li>
</ul>
<p><strong>Tips</strong></p>
<ul>
<li>Use them to capture and validate business processes</li>
<li>Think in terms of the users actions</li>
<li>Focus on actions that are visible from outside the system</li>
<li>Use to show flow of actions that span multiple use cases</li>
<li>Best diagram to show parallel operations</li>
<li>Focus on only one activity in each diagram</li>
</ul>
<p><strong>Sketching out an Application using a Layer Diagram</strong></p>
<p><strong>Purpose of Layer Diagram</strong></p>
<ul>
<li>Used to describe structure of an application at a High Level</li>
<li>Identify the major components or functional units of the design and their interdependencies</li>
<li>Each Layer represents a logical group of namespaces, projects or other artifacts</li>
<li>You can make sure that code adheres to your layers by using layer diagram as a part of build process</li>
</ul>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/121.gif"><img class="alignleft size-medium wp-image-87" title="12" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/121-300x264.gif" alt="" width="300" height="264" /></a></p>
<p><strong>Design a Projects Physical Structure using component diagram</strong></p>
<p><strong>Component Diagram</strong></p>
<ul>
<li>Visualize the physical structure of a system</li>
<li>Focus on the components of a system, their relationships, interfaces and ports</li>
<li>Highlight the service behavior that they provide and consume through interfaces</li>
</ul>
<p><strong>Design Steps</strong></p>
<ul>
<li>Create a Component Diagram to show the major parts of your system</li>
<li>Draw Dependencies between the components or their interfaces to show the structure of the system</li>
<li>Use interfaces on the components to show the services that each component provides or requires</li>
<li>In large design, you can draw separate diagrams to decompose components into smaller parts</li>
</ul>
<p> </p>
<p><strong>Sketch Interactions with Sequence Diagrams</strong></p>
<p><strong>Sequence Diagram</strong></p>
<ul>
<li>Capture Dynamic Behavior –The lifecycles of objects and how they collaborate together to deliver the required system functionalitySequential Flow of time</li>
<li>Show Interactions between nouns in your system –Actors –Classes –ComponentsSubsystems</li>
<li>Interactions consists of messages between typical instances during run time</li>
</ul>
<p><strong>Revealing Responsibilities with Class Diagrams</strong></p>
<p><strong>Class Diagrams</strong></p>
<ul>
<li>Shows Logical and structural aspects of the system –Data Types used to store and exchange dataRelationships between those types</li>
<li>Implementation Independent –Can Represent many things •Language specific software objects •XML NodesDatabase Tables</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.exploredotnet.co.uk/visual-studio-2010-application-lifecycle-management/feed/</wfw:commentRss>
		<slash:comments>100</slash:comments>
		</item>
		<item>
		<title>The .NET Language Integrated Query Framework (LINQ)</title>
		<link>http://www.exploredotnet.co.uk/the-net-language-integrated-query-framework-linq/</link>
		<comments>http://www.exploredotnet.co.uk/the-net-language-integrated-query-framework-linq/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 10:43:38 +0000</pubDate>
		<dc:creator>John Alex</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[LINQ And AJAX]]></category>

		<guid isPermaLink="false">http://www.exploredotnet.co.uk/?p=58</guid>
		<description><![CDATA[Data != Objects Three Things About LINQ… Data == Objects Imperative -&#62; Declarative Works against objects, relational and XML LINQ to Relational Data LINQ to SQL]]></description>
			<content:encoded><![CDATA[<p>Data != Objects</p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/LINQ1.gif"><img class="alignleft size-medium wp-image-59" title="LINQ1" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/LINQ1-300x212.gif" alt="" width="300" height="212" /></a></p>
<p>Three Things About LINQ…</p>
<ol>
<li>Data == Objects</li>
<li>Imperative -&gt; Declarative</li>
<li>Works against objects, relational and XML</li>
</ol>
<p>LINQ to Relational Data</p>
<p>LINQ to SQL</p>
]]></content:encoded>
			<wfw:commentRss>http://www.exploredotnet.co.uk/the-net-language-integrated-query-framework-linq/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>ASP.Net 3.5 (Part 1)</title>
		<link>http://www.exploredotnet.co.uk/asp-net-3-5-part-1/</link>
		<comments>http://www.exploredotnet.co.uk/asp-net-3-5-part-1/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 11:15:56 +0000</pubDate>
		<dc:creator>John Alex</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[Login controls]]></category>
		<category><![CDATA[Master pages]]></category>
		<category><![CDATA[Membership]]></category>
		<category><![CDATA[PROFILES]]></category>
		<category><![CDATA[ROLES]]></category>
		<category><![CDATA[Site Navigation]]></category>
		<category><![CDATA[TEMPLATES]]></category>
		<category><![CDATA[Themes and skins]]></category>

		<guid isPermaLink="false">http://www.exploredotnet.co.uk/?p=47</guid>
		<description><![CDATA[ASP.NET 2.0&#8242;s new features can be grouped into three categories: new controls (more than 50 in all), new features in the page framework, and new services. In addition, myriad enhancements have been made to existing controls and services. What&#8217;s New for UIS:- Master pages   Visual inheritance&#8221; for Web pages   Applied declaratively or programmatically [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/4.gif"></a><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/41.gif"></a><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/22072010NGP.gif"><img class="alignleft size-medium wp-image-48" title="New Features at a glance" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/22072010NGP-300x193.gif" alt="" width="300" height="193" /></a></p>
<p>ASP.NET 2.0&#8242;s new features can be grouped into three categories: new controls (more than 50 in all), new features in the page framework, and new services. In addition, myriad enhancements have been made to existing controls and services.</p>
<p>What&#8217;s New for UIS:-</p>
<p>Master pages</p>
<ul>
<li>  Visual inheritance&#8221; for Web pages</li>
<li>  Applied declaratively or programmatically</li>
</ul>
<p>  Themes and skins</p>
<ul>
<li>  Theme controls, pages, and entire sites</li>
<li>  Applied declaratively or programmatically</li>
</ul>
<p>New controls (more than 50 in all)</p>
<ul>
<li>  Menus, TreeViews, Wizards, and more</li>
</ul>
<p>  ASP.NET 2.0 introduces a number of new features designed to help developers build cutting-edge UIs with a minimum of effort. First there&#8217;s master pages, which enable pages to be templatized and which enjoy great design-time support in the Visual Studio 2005 IDE. Next, there&#8217;s themes and skins, which allow controls, pages, and even entire sites to be visually themed with the stroke of a mouse. Finally, ASP.NET 2.0 introduces about 50 new control types ranging from the simple (e.g., BulletedList and ImageMap) to the sublime (e.g., GridView, DetailsView, Menu, TreeView, and Wizard).</p>
<p><strong>What&#8217;s New in Data Access</strong></p>
<p>Data source controls</p>
<ul>
<li>  Declarative 2-way data binding</li>
</ul>
<p>  Data controls</p>
<ul>
<li>  GridView &#8211; Like the DataGrid, only better</li>
<li>  DetailsView &#8211; Companion to GridView</li>
</ul>
<p>  SQL cache dependencies</p>
<ul>
<li>  Key cached items to database entities</li>
</ul>
<p>  Simplified data binding expressions</p>
<p>  ASP.NET 2.0 makes building data-driven sites easier than ever before by introducing declarative data binding utilizing data source controls (which dramatically reduce the amount of code you have to write), providing new (and very rich) data controls such as GridView and DetailsView, introducing SQL cache dependencies (which allow cached items to be keyed to database entities), and offering an expanded and simplified syntax for data-binding expressions.</p>
<p><strong>TEMPLATES</strong></p>
<p>Data Controls allow template editing</p>
<ul>
<li>  Item</li>
<li>  Edit</li>
<li>  Insert</li>
<li>  Header</li>
<li>  Footer</li>
</ul>
<p>  Can nest controls within each type</p>
<p>  Two-way to parent</p>
<p><strong>What&#8217;s New In Security</strong></p>
<p>  Membership service</p>
<ul>
<li>  Service for managing users and credentials</li>
<li>  Provider-based for flexible data storage</li>
</ul>
<p>  Login controls</p>
<ul>
<li>  Controls for logging in, creating new users, recovering lost passwords, and more</li>
</ul>
<p>  Role Management service</p>
<ul>
<li>  Combine forms authentication and role-based authorization without writing code!</li>
</ul>
<p>  ASP.NET 1.x simplified forms authentication by introducing declarative means for designating login pages and specifying authorization rules. ASP.NET 2.0 further simplifies forms authentication by providing the following features and services:</p>
<ul>
<li>  A membership service for managing users and credentials</li>
<li>  Login controls for logging in users, creating new users, and more</li>
<li> A role management service for enacting role-based security</li>
</ul>
<p>The result is that forms authentication is easier than ever before and can often be accomplished without writing any code.</p>
<p><strong>Membership &amp; Logins</strong></p>
<ul>
<li>  Login APIs</li>
<li> Allows use of advanced features</li>
<li>  Customize logins and registrations</li>
<li>  Perform management activities on users</li>
</ul>
<p>  A first look at ASP.NET 2.0&#8242;s Membership service and login controls.</p>
<ol>
<li><span style="text-decoration: underline;">Step 1</span>: Open the <strong>LoginControls</strong> project in Visual Studio 2005</li>
<li><span style="text-decoration: underline;">Step 2</span>: Run MembershipInfo.aspx. Inform the audience that &#8220;View MembershipUser Info&#8221; link at the bottom of the page points to a page that requires authenticated access, so clicking it will send you to a login page. Click the link</li>
<li><span style="text-decoration: underline;">Step 3</span>: Fill in the new user form to create a new user and click the Register button to get to MembershipUserInfo.aspx</li>
<li><span style="text-decoration: underline;">Step 4</span>: Click the Logout button. MembershipInfo.aspx appears</li>
<li><span style="text-decoration: underline;">Step 5</span>: Click the &#8220;View MembershipUser Info&#8221; link again. Log in using the account you created earlier. Once more, MembershipUserInfo.aspx appears</li>
<li><span style="text-decoration: underline;">Step 6</span>: Click the &#8220;Return to Main Page&#8221; link. MembershipInfo.aspx appears</li>
<li><span style="text-decoration: underline;">Step 7</span>: Inform the audience that they just saw three login controls demonstrated: Login, CreateUserWizard, and LoginStatus. Also tell them that registering a new user, logging in as that user, and implementing the login/logout link required exactly 0 lines of code, and that this is just a taste of what&#8217;s to come when we explore membership, login controls, and role management</li>
</ol>
<p><strong>Using the Login API:-</strong>  It features a page containing two SqlDataSources, a DataGrid, and a DropDownList. The SqlDataSource that serves the DataGrid uses the value selected in the DropDownList to perform a parameterized query.</p>
<ol>
<li>  <span style="text-decoration: underline;">Step 1</span>: Open the <strong>WhatsNew</strong> project in Visual Studio 2005<span style="text-decoration: underline;"> </span></li>
<li><span style="text-decoration: underline;">  Step 2</span>: Run SqlDataSource.aspx</li>
<li> <span style="text-decoration: underline;">Step 3</span>: Demonstrate that selecting a country from the drop-down list changes the contents of the DataGrid. State that coupling the drop-down list to the DataGrid in this manner requires exactly zero lines of code</li>
<li><span style="text-decoration: underline;">Step 4</span>: Open SqlDataSource.aspx in the designer and switch to Design View. Point out that this page contains two SqlDataSources, and that one serves the drop-down list while the other serves the DataGrid</li>
<li><span style="text-decoration: underline;">Step 5</span>: Switch to Source view and show the audience SqlDataSource1. Point out that it provides content to the drop-down list, and that its SelectCommand uses a SELECT DISTINCT query to retrieve a list of countries from Northwind&#8217;s Customers table</li>
<li><span style="text-decoration: underline;">Step 6</span>: Show the audience SqlDataSource2. Point out that it provides content to the DataGrid, and that it uses a parameterized query. Show the &#8220;WHERE [Country]=@Country&#8221; clause in the SelectCommand, and show the &lt;SelectParameters&gt; element and the &lt;asp:ControlParameter&gt; tag instructing the SqlDataSource to obtain a value for @Country from the drop-down list</li>
<li><span style="text-decoration: underline;">Step 7</span>: Show the ConnectionString attributes in the &lt;asp:SqlDataSource&gt; tags. Call attention to the &lt;%$ … %&gt; expressions that declaratively initialize ConnectionString with a connection string. Inform the audience that the connection string is stored in Web.config</li>
</ol>
<p><strong>ROLES:-</strong></p>
<ul>
<li>  Allows segregation of users into groups or “roles”</li>
<li>  Can allow or deny access based on these</li>
<li>  Use the Roles API to perform management features</li>
</ul>
<p><strong>PROFILES:-</strong></p>
<p>  Store per-user data <span style="text-decoration: underline;">persistently</span></p>
<ul>
<li>  Strongly typed access (unlike session state)</li>
<li>  On-demand lookup (unlike session state)</li>
<li>  Long-lived (unlike session state)</li>
<li>  Supports authenticated and anonymous users</li>
</ul>
<p>  Accessed through dynamically compiled HttpProfileBase derivatives (HttpProfile)</p>
<p>  Provider-based for flexible data storage</p>
<p>  The new profile service makes short work of storing personalization settings and other per-user settings persistently. Classic applications for it include storing &#8220;favorites&#8221; (like the &#8220;My eBay&#8221; portion of eBay, which, among other things, lists auction items that you&#8217;ve bookmarked so you can scrutinize them later on) and user preferences. The service is profile-based. You define a profile in Web.config, and ASP.NET dynamically compiles that profile, provides strongly typed access to it, and persists profile data. Moreover, profiles work with both anonymous and authenticated users.</p>
<p><strong>Site Navigation:-</strong></p>
<ul>
<li>  Navigation UIs are tedious to implement(  Especially if they rely on client-side script)</li>
<li>  New controls simplify site navigation</li>
<li>  TreeView and Menu &#8211; Navigation UI</li>
<li>  SiteMapDataSource &#8211; XML site maps</li>
<li>  SiteMapPath &#8211; &#8220;Bread crumb&#8221; control</li>
<li>  Public API provides foundation for controls</li>
<li>  Provider-based for flexibility</li>
</ul>
<p>  Easy site navigation is an important element of modern Web applications. Because much of the time spent developing a site is devoted to building menus, tree views, and other navigational aids, and because changes to a site’s structure require commensurate changes to the navigation UI, ASP.NET 2.0 addresses the issue of site navigation head-on. Menu and TreeView controls simplify the task of building navigation UIs; SiteMapDataSource controls enable changes to a site’s structure to automatically propagate to the navigation UI; and SiteMapPath controls make short work of implementing “bread-crumb” elements showing the path to the current page.</p>
<p><strong>CONFIGURATION:-</strong></p>
<p>    Administrative tools</p>
<ul>
<li>  ASP.NET MMC snap-in</li>
<li>  Web Site Administration Tool (Webadmin.axd)</li>
</ul>
<p>  Configuration API</p>
<ul>
<li>  Read/write access to configuration settings</li>
<li>  Simplified custom configuration sections</li>
</ul>
<p>  Instrumentation</p>
<ul>
<li>  Perf counters, health monitoring, and more</li>
</ul>
<p>  In ASP.NET 1.x, editing configuration settings meant manually modifying XML configuration files. In 2.0, two new tools&#8211;the ASP.NET MMC snap-in and the Web Site Administration Tool&#8211;enable most configuration settings to be applied through administrative GUIs. Both tools represent significant enhancements in usability and should prove especially valuable to admins responsible for managing remotely hosted ASP.NET Web sites.</p>
<p>  ASP.NET 2.0’s configuration API fills a hole in ASP.NET 1.x by providing an easy-to-use and extensible API for reading and writing configuration settings. Applications can now read their own configuration settings without parsing raw XML, and they see a merged view of those settings that includes settings inherited from configuration files higher in the directory hierarchy. Moreover, writing configuration settings is as easy as reading them, and implementing custom configuration sections requires little more than deriving from System.Configuration.ConfigurationSection.</p>
<p>  ASP.NET 2.0 is also far more heavily instrumented than 1.x. Thanks to the new health monitoring subsystem, a few simple statements in Web.config can configure an application to write an entry to the Windows event log when a login fails, e-mail a system administrator when an unhandled exception occurs, and more. In addition, you can extend the health monitoring subsystem by defining Web events of your own. Other enhancements in this arena include new performance counters supplementing the ones in ASP.NET 2.0, integration with ETW for high-performance end-to-end tracing of requests as they travel through the system, and new options for generating, capturing, and managing trace output.</p>
<p><strong> What&#8217;s new in Localization:-</strong></p>
<p>Auto-culture handling</p>
<ul>
<li>  Declarative mapping of Accept-Language headers to relevant thread properties</li>
</ul>
<p>Simplified resource handling</p>
<ul>
<li>  Declarative mapping of control properties to resources using &lt;%$ … %&gt; expressions</li>
<li>  Strongly typed programmatic resource loading</li>
</ul>
<p>  &lt;asp:localize runat=&#8221;server&#8221;&gt; and more</p>
<p>  The big news in localization is that most of it can be done declaratively, whereas in ASP.NET 1.x, localization required explicit code to map Accept-Language headers to Thread properties, initialize control properties from resources, and so on. ASP.NET 2.0&#8242;s ability to autocompile RESX files also plays a significant role in simplifying localization.</p>
<p>  &#8220;Auto-culture handling&#8221; refers to the new Culture=&#8221;auto&#8221; and UICulture=&#8221;auto&#8221; attributes that can be applied to a page or an entire application to automatically map Accept-Language headers to the current thread&#8217;s CurrentCulture and CurrentUICulture properties. &#8220;Simplified resource handling&#8221; refers to the fact that localization resources are now easier to load (no more ResourceManager!), and that RESX files can be autocompiled simply by placing them in the application&#8217;s Resources directory. The &lt;asp:localize runat=&#8221;server&#8221;&gt; element allows blocks of text to be localized using string resources.</p>
<p><strong> PROVIDERS:-</strong></p>
<p>  New model for storing and managing state</p>
<ul>
<li> 
<ul>
<li>Makes storage adaptable to different media</li>
</ul>
</li>
</ul>
<p>Used by many key ASP.NET services</p>
<ul>
<li> 
<ul>
<li>  Membership service</li>
<li>  Role Management service and more</li>
</ul>
</li>
</ul>
<p>  Built-in providers make ASP.NET state storage very flexible</p>
<p>  Custom providers make it infinitely flexible</p>
<p>  Most ASP.NET 2.0 state management services use a new model called the &#8220;provider model&#8221; to make state storage infinitely flexible. In the provider model, a service doesn&#8217;t manage state by interacting directly with a data store; instead, it uses a provider. The model is highly extensible because if the providers shipped with the system aren’t sufficient for your needs—if, for example, you want to store membership data or session state in an Oracle database rather than SQL Server—then you can plug in custom providers that target Oracle data stores. Developers can write custom providers themselves or acquire them from third parties</p>
<p> <a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/41.gif"><img title="The Provider Model" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/41-300x198.gif" alt="" width="300" height="198" /></a></p>
<p>   This is one specific example of the provider model&#8211;the one used by the Membership service. The application talks to the Membership service through classes such as Membership and MembershipUser. These classes, in turn, read and write membership data by calling a provider. (Each class has a property named Provider that identifies the associated provider.) Each provider interfaces with a particular type of data store. If none of the providers supplied with the Framework supports the data store you wish to use (for example, an Oracle database), you can write a provider of your own or acquire one from a third party. The Membership service is one of several services that are provider-based.</p>
<p><strong>CONFIGURATION:-</strong></p>
<p>Administrative tools</p>
<ul>
<li>ASP.NET MMC snap-in</li>
<li>Web Site Administration Tool (Webadmin.axd)</li>
</ul>
<p>  Configuration API</p>
<ul>
<li>  Read/write access to configuration settings</li>
<li>  Simplified custom configuration sections</li>
</ul>
<p>  Instrumentation</p>
<ul>
<li>Perf counters, health monitoring, and more</li>
</ul>
<p>  In ASP.NET 1.x, editing configuration settings meant manually modifying XML configuration files. In 2.0, two new tools&#8211;the ASP.NET MMC snap-in and the Web Site Administration Tool&#8211;enable most configuration settings to be applied through administrative GUIs. Both tools represent significant enhancements in usability and should prove especially valuable to admins responsible for managing remotely hosted ASP.NET Web sites.</p>
<p>  ASP.NET 2.0’s configuration API fills a hole in ASP.NET 1.x by providing an easy-to-use and extensible API for reading and writing configuration settings. Applications can now read their own configuration settings without parsing raw XML, and they see a merged view of those settings that includes settings inherited from configuration files higher in the directory hierarchy. Moreover, writing configuration settings is as easy as reading them, and implementing custom configuration sections requires little more than deriving from System.Configuration.ConfigurationSection.</p>
<p>  ASP.NET 2.0 is also far more heavily instrumented than 1.x. Thanks to the new health monitoring subsystem, a few simple statements in Web.config can configure an application to write an entry to the Windows event log when a login fails, e-mail a system administrator when an unhandled exception occurs, and more. In addition, you can extend the health monitoring subsystem by defining Web events of your own. Other enhancements in this arena include new performance counters supplementing the ones in ASP.NET 2.0, integration with ETW for high-performance end-to-end tracing of requests as they travel through the system, and new options for generating, capturing, and managing trace output.</p>
<p><strong>WEB PARTS:-</strong></p>
<p>  Framework for building portal-style apps</p>
<ul>
<li>  Patterned after SharePoint Portal Server</li>
<li>  System.Web.UI.WebControls.WebParts</li>
</ul>
<p>  Rich UIs with minimal code</p>
<ul>
<li>Edit page layout using drag-and-drop</li>
<li>Edit appearance and behavior and more</li>
</ul>
<p>  Seamless personalization</p>
<p>Intercommunication (&#8220;connections&#8221;)</p>
<p> Web Parts is a framework built into ASP.NET 2.0 for building highly customizable portal-style pages. End users can customize Web Parts pages by changing the page layout, adding and removing Web Parts, editing Web Parts properties, establishing connections between Web Parts, and more. Changes made to a Web Parts page are persisted by the Web Parts framework. Web Parts pages exhibit a degree of sophistication seldom seen in Web applications today, and they do it without requiring you to write reams of code. In fact, as with many of the other new features in ASP.NET 2.0, the vast majority of what you can accomplish with the Web Parts can be accomplished declaratively.</p>
<p><strong> What&#8217;s New in Compilation:-</strong></p>
<p>Autocompile anything</p>
<ul>
<li> 
<ul>
<li>  CS files, VB files, RESX files, and so on</li>
<li>  Simply drop files into special directories</li>
<li>  Extensible with custom build providers</li>
</ul>
</li>
</ul>
<p>  New code-behind model (code-behind 2.0)</p>
<ul>
<li> 
<ul>
<li>  Fixes fragilities in version 1</li>
<li>  Relies on partial class support in compilers</li>
</ul>
</li>
</ul>
<p>  Precompile and deploy without source</p>
<p> ASP.NET 1.x was capable of autocompiling pages (ASPX files), but CS files, VB files, RESX files, and other file types had to be compiled manually. ASP.NET 2.0 extends the autocompilation model to include a variety of file types. Rather than compile a ShoppingCart class and place the resultant assembly in the bin directory, for example, you can simply copy the CS file containing the ShoppingCart class into the Code directory and let ASP.NET compile it for you.</p>
<p> ASP.NET 2.0 also permits Web sites to be precompiled to avoid compilation delays the first time a page is accessed. Along with precompilation comes a new feature that allows sites to be precompiled AND deployed without source code. Deploying without source code is useful when you allow a third party to host your site but want to keep the source code in-house.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.exploredotnet.co.uk/asp-net-3-5-part-1/feed/</wfw:commentRss>
		<slash:comments>173</slash:comments>
		</item>
		<item>
		<title>Databinding</title>
		<link>http://www.exploredotnet.co.uk/databinding/</link>
		<comments>http://www.exploredotnet.co.uk/databinding/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 07:36:12 +0000</pubDate>
		<dc:creator>John Alex</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[Introduction to ASP.NET]]></category>

		<guid isPermaLink="false">http://www.exploredotnet.co.uk/?p=33</guid>
		<description><![CDATA[  Data Object Model Comes from System.Data   Hierarchical set of namespaces for handing different database schemas:   SQL   Oracle   OleDB   ODBC   MySQL, DB2, PostgreSQL, etc. also available   Uses ADO.NET instead of ADO   Data Structures   DataSet DataReader DataAdapter xxxConnection xxxCommand xxxParameter DataTable DataRow XSD   DataSet   Representation [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">  <strong>Data Object Model</strong></p>
<ul style="text-align: left;">
<li><strong>Comes from System.Data </strong></li>
<li>  <strong>Hierarchical set of namespaces for handing different database schemas:</strong></li>
</ul>
<ol style="text-align: left;">
<li>  <strong>SQL</strong></li>
<li>  <strong>Oracle</strong></li>
<li>  <strong>OleDB</strong></li>
<li>  <strong>ODBC</strong></li>
<li>  <strong>MySQL, DB2, PostgreSQL, etc. also available</strong></li>
</ol>
<ul style="text-align: left;">
<li>  <strong>Uses ADO.NET instead of ADO </strong></li>
</ul>
<p style="text-align: left;">  <strong>Data Structures</strong></p>
<ul style="text-align: left;">
<li>  <strong>DataSet </strong></li>
<li><strong>DataReader </strong></li>
<li><strong>DataAdapter </strong></li>
<li><strong><em>xxx</em></strong><strong>Connection </strong></li>
<li><strong><em>xxx</em></strong><strong>Command </strong></li>
<li><strong><em>xxx</em></strong><strong>Parameter </strong></li>
<li><strong>DataTable </strong></li>
<li><strong>DataRow </strong></li>
<li><strong>XSD </strong></li>
</ul>
<p style="text-align: left;">  <strong>DataSet</strong></p>
<ul style="text-align: left;">
<li>  <strong>Representation of database in memory</strong></li>
<li>  <strong>Disconnected by default</strong></li>
<li><strong>  <strong>Contains:   <strong>Datatables :   <strong>DataRows ,  <strong>DataRelations</strong></strong></strong></strong></strong></li>
<li>  <strong>Uses XML for serialization</strong></li>
</ul>
<p style="text-align: left;">  <strong>Data Reader</strong></p>
<ul style="text-align: left;">
<li>  <strong>Read-only </strong></li>
<li><strong>Forward-only </strong></li>
<li><strong>Results stored in network buffer </strong></li>
<li><strong>Retrieved using the “.Read” method </strong></li>
<li><strong>Created using the “.ExecuteReader” method of </strong><strong>a command object </strong></li>
<li><strong>Must “Close” the reader once done </strong></li>
</ul>
<p style="text-align: left;"><strong>  <strong>DataAdapter</strong></strong></p>
<ul style="text-align: left;">
<li>  <strong>Object that is a set of </strong></li>
</ul>
<ol style="text-align: left;">
<li><strong>Select and/or … </strong></li>
<li><strong>Insert and/or … </strong></li>
<li><strong>Update and/or … </strong></li>
<li><strong>Delete commands </strong></li>
<li><strong>Connection Object </strong></li>
</ol>
<ul style="text-align: left;">
<li>  <strong>Fills a dataset and maintains two way relation </strong><strong>with the database </strong></li>
</ul>
<p style="text-align: left;">  <strong>DataTable, DataRow</strong></p>
<ul style="text-align: left;">
<li>  <strong>Equivalent memory structures to table and row </strong><strong>of database </strong></li>
<li>  <strong>Can be created for a particular data structure</strong></li>
<li>  <strong>.NET automatically creates </strong><strong><em>strongly typed</em></strong><strong> </strong><strong>datarow/table elements which can be directly </strong><strong>used in code </strong></li>
</ul>
<p style="text-align: left;"><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.exploredotnet.co.uk/databinding/feed/</wfw:commentRss>
		<slash:comments>392</slash:comments>
		</item>
		<item>
		<title>Introduction to ASP.NET</title>
		<link>http://www.exploredotnet.co.uk/introduction-to-asp-net/</link>
		<comments>http://www.exploredotnet.co.uk/introduction-to-asp-net/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 07:29:55 +0000</pubDate>
		<dc:creator>John Alex</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[Introduction to ASP.NET]]></category>

		<guid isPermaLink="false">http://www.exploredotnet.co.uk/?p=31</guid>
		<description><![CDATA[  What’s new   ASPX instead of ASP   Object Oriented   Object Model   Type Safe – no variant   Multiple Languages   Compiled   Code Behind   Parts of an ASP.NET Page   Web Form   Code Behind   HTML Server Controls   Web Server Controls   Validation Controls   User Controls   [...]]]></description>
			<content:encoded><![CDATA[<p>  <strong>What’s new</strong></p>
<ul>
<li>  <strong>ASPX instead of ASP </strong></li>
<li>  <strong>Object Oriented</strong></li>
<li>  <strong>Object Model </strong></li>
<li>  <strong>Type Safe – no variant </strong></li>
<li>  <strong>Multiple Languages</strong></li>
<li>  <strong>Compiled </strong></li>
<li>  <strong>Code Behind</strong></li>
</ul>
<p>  <strong>Parts of an ASP.NET Page</strong></p>
<ul>
<li>  <strong>Web Form</strong></li>
<li>  <strong>Code Behind</strong></li>
<li>  <strong>HTML Server Controls </strong></li>
<li>  <strong>Web Server Controls</strong></li>
<li>  <strong>Validation Controls </strong></li>
<li>  <strong>User Controls</strong></li>
</ul>
<p>  <strong>Web Forms</strong></p>
<ul>
<li><strong> <strong>&lt;form runat=“server”&gt;</strong></strong></li>
<li><strong>Only one per page </strong></li>
<li> <strong>Posts back to the same page (itself) </strong></li>
</ul>
<p><strong>  <strong>Code Behind</strong></strong></p>
<ul>
<li>  <strong>Contains back end code</strong></li>
<li>  <strong>Separates page logic from page layout </strong></li>
<li> <strong>Generates code automatically for design time </strong><strong>actions </strong></li>
<li><strong> Creates handlers for events as required </strong></li>
</ul>
<p>  <strong>HTML Server Controls</strong></p>
<ul>
<li><strong> Look and feel like normal HTML elements </strong></li>
<li>  <strong>Equivalents for all standard elements available</strong></li>
<li> <strong>Adds </strong><strong><em>runat=“server” </em></strong><strong>to the control </strong></li>
<li> <strong>Allows server side interaction with controls  (  <strong>Not possible with HTML elements</strong>)</strong></li>
</ul>
<p>  <strong>Web Server Controls</strong></p>
<ul>
<li>  <strong>Recommended way to use and create controls </strong></li>
<li> <strong>Lots of controls available out of the box </strong></li>
<li>  <strong>Includes DataGrid, DataList, Repeater and more</strong></li>
<li>  <strong>Contain full Object Model: </strong></li>
</ul>
<ol>
<li><strong>Properties </strong></li>
<li>  <strong>Events</strong></li>
<li>  <strong>Methods </strong></li>
</ol>
<ul>
<li><strong>Automatic browser detection and rendering </strong></li>
</ul>
<p>  <strong>Validation Controls</strong></p>
<ul>
<li>  <strong>Controls that allow input validation</strong></li>
<li>  <strong>Work at:   <strong>Client side (JavaScript),   <strong>Server Side </strong></strong></strong></li>
<li>  <strong>Currently present are:</strong></li>
</ul>
<ol>
<li><strong>RequiredFieldValidator </strong></li>
<li> <strong>CompareValidator </strong></li>
<li>  <strong>RangeValidator</strong></li>
<li>  <strong>RegularExpressionValidator</strong></li>
<li>  <strong>CustomValidator</strong></li>
<li>  <strong>ValidationSummary</strong></li>
</ol>
<p>  <strong>User Controls</strong></p>
<ol>
<li><strong>User created controls </strong></li>
<li> <strong>Can be re-used in other Web pages</strong></li>
<li>  <strong>Requires no extra knowledge</strong></li>
<li>  <strong>Use file extension of AS</strong><strong><em>C</em></strong><strong>X </strong></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.exploredotnet.co.uk/introduction-to-asp-net/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Web Service and .NET Remoting</title>
		<link>http://www.exploredotnet.co.uk/web-service-and-net-remoting/</link>
		<comments>http://www.exploredotnet.co.uk/web-service-and-net-remoting/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 07:10:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[Securing XML Web Services]]></category>

		<guid isPermaLink="false">http://www.exploredotnet.co.uk/?p=28</guid>
		<description><![CDATA[  Using Web Services   Leverage the Web application model and the power of the ASP.NET HTTP Runtime   Exact type fidelity between .NET computers is not a concern and only some types of arguments can be passed Using .NET Remoting, you can:   Publish or consume services in any type of application domain (ex. [...]]]></description>
			<content:encoded><![CDATA[<p>  <strong>Using Web Services</strong></p>
<ul>
<li>  <strong>Leverage the Web application model and the power of </strong><strong>the ASP.NET HTTP Runtime </strong></li>
<li>  <strong>Exact type fidelity between .NET computers is not a </strong><strong>concern and only some types of arguments can be </strong><strong>passed </strong></li>
</ul>
<p><strong>Using .NET Remoting, you can: </strong></p>
<ul>
<li>  <strong>Publish or consume services in any type of application domain (ex. console, Windows, IIS, Web Service, </strong><strong>etc.) </strong></li>
<li>  <strong>Preserve full managed-code type-system fidelity in </strong><strong>binary formatted communications. </strong></li>
<li>  <strong>Pass objects by reference and return to a particular </strong><strong>object in a particular application domain</strong></li>
<li><strong>Control activation characteristics and object lifetimes </strong><strong>directly. </strong></li>
<li>  <strong>Implement and use third-party channels or protocols </strong><strong>to extend communication to meet your specific needs </strong></li>
<li> <strong>Participate directly in the communication process to </strong><strong>create the functionality you need </strong></li>
<li>  <strong>Potential performance benefits by being able to select the most optimal form of communication.</strong></li>
</ul>
<p>  Both ASP.NET and .NET Remoting are interprocess communication implementations. ASP.NET provides an Internet Information Services (IIS)-hosted infrastructure that handles basic types well and is familiar to Web application developers. .NET Remoting is a generic and extremely extensible interprocess communication system that you can use to create XML Web services hosted in IIS (and have all the security, scalability, and session and application state of ASP.NET and IIS), or any other type of communication</p>
<p>  The type of communication you need and the programming model you are familiar with are the two main criteria that should drive your choice between the two programming models.</p>
<p>  <strong>Using Web Services </strong></p>
<p>  •Use the Web application model and the power of the ASP.NET HTTP runtime</p>
<p>  •Exact type fidelity between .NET computers is not a concern and only some types of arguments can be passed</p>
<p>  <strong>Using .NET Remoting, you can: </strong></p>
<p>  •Publish or consume services in any type of application domain, whether that domain is a console application, a Windows Form, Internet Information Services (IIS), an XML Web service, or a Windows Service.</p>
<p>  •Preserve full managed-code type-system fidelity in binary formatted communications.  <strong>Note:</strong> XML Web services use SOAP formatting, which does not preserve all type details</p>
<p>  •Pass objects by reference and return to a particular object in a particular application domain</p>
<p>  •Control activation characteristics and object lifetimes directly.</p>
<p>  •Implement and use third-party channels or protocols to extend communication to meet your specific needs</p>
<p>•Participate directly in the communication process to create the functionality you need</p>
<p>•Potential performance benefits by being able to select the most optimal form of communication.</p>
<p><strong></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.exploredotnet.co.uk/web-service-and-net-remoting/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Securing XML Web Services</title>
		<link>http://www.exploredotnet.co.uk/securing-xml-web-services/</link>
		<comments>http://www.exploredotnet.co.uk/securing-xml-web-services/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 07:06:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[Securing XML Web Services]]></category>

		<guid isPermaLink="false">http://www.exploredotnet.co.uk/?p=26</guid>
		<description><![CDATA[  Authentication   Standard user account mechanisms Authorization   Custom code   Configuration settings in Web.config   Encryption   SSL ( Watch out for performance hit )   IPSec   WS-Security   Integrated security for Web Services   Global XML Web Services Architecture (GXA) In Details:-   Restricting access to an XML Web service   XML [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>  <strong>Authentication</strong></li>
<li>  <strong>Standard user account mechanisms </strong></li>
</ul>
<p><strong>Authorization </strong></p>
<ul>
<li>  <strong>Custom code </strong></li>
<li>  <strong>Configuration settings in Web.config</strong></li>
</ul>
<p>  <strong>Encryption </strong></p>
<ul>
<li>  <strong>SSL ( <strong>Watch out for performance hit )</strong></strong></li>
<li>  <strong>IPSec</strong></li>
</ul>
<p>  <strong>WS-Security</strong></p>
<ul>
<li>  <strong>Integrated security for Web Services</strong></li>
<li>  <strong>Global XML Web Services Architecture (GXA) </strong></li>
</ul>
<p><strong>In Details:-</strong></p>
<p>  <strong>Restricting access to an XML Web service </strong></p>
<p>  XML Web services can be implemented so that only authorized clients receive access, but to restrict access, you need a way to authenticate clients. Then, based on the credentials presented by the client, you can decide whether to authorize access to the service.</p>
<p>  Securing an XML Web service is slightly different than securing a Web site in that you authorize computers or businesses to access the XML Web service instead of end users.</p>
<p>  If you know which computers need access to your XML Web service, you can use Internet Protocol Security (IPSec) or firewalls to restrict access to computers of known IP addresses. This technique is particularly useful when you want to restrict access to computers within a private network.</p>
<p>  In most Internet scenarios, however, the IP addresses of all your clients will be unknown. In this case, the most straight-forward approach to implementing authentication is to leverage the authentication features of the protocol used to exchange messages. For example, if you are sending and receiving SOAP messages over HTTP, you will want to leverage the authentication features available for HTTP. Microsoft® Internet Information Services 5.0 supports several authentication mechanisms for HTTP (see www.microsoft.com/technet/iis/authmeth.asp for more details).</p>
<p>  <strong>Basic</strong> &#8211; Use for non-secure or semi-secure identification of clients because the username and password are sent in plain text. Internet Information Services will authorize access to the XML Web service if the credentials match a valid user account.</p>
<p>  <strong>Basic over SSL</strong> &#8211; Same as Basic authentication except that the username and password are sent across the network with Secure Sockets Layer (SSL) encryption rather than in plain text. Basic over SSL is a good option for Internet scenarios, although using SSL has a significant impact on performance.</p>
<p>  <strong>Digest</strong> &#8211; Uses hashing to transmit client credentials in a secure way, though it is not widely supported on platforms other than Microsoft Windows®. Internet Information Services will authorize access to the XML Web service if the credentials match a valid user account.</p>
<p>  <strong>Integrated Windows authentication</strong> &#8211; Useful only for Intranet scenarios since it uses NTLM or Kerberos and cannot be used across proxy servers or other firewalls. Internet Information Services will authorize access to the XML Web service if the credentials match a valid user account.</p>
<p>  <strong>WS-Security </strong>WS-Security describes enhancements to SOAP messaging to provide quality of protection through message integrity, message confidentiality, and single message authentication. These mechanisms can be used to accommodate a wide variety of security models and encryption technologies. XML Web Services no longer have to rely on the security features of the underlying transport mechanisms.</p>
<p>  GXA is a framework from Microsoft for specifying generic higher-level services which augment XML Web Services. GXA provides an implementation of WS-Security which includes support for X.509 certificates and Kerberos tickets.</p>
<p>  <em>WS-Security Index Page </em><a href="http://msdn.microsoft.com/webservices/understanding/gxa/default.asp?pull=/library/en-us/dnglobspec/html/wssecurspecindex.asp">http://msdn.microsoft.com/webservices/understanding/gxa/default.asp?pull=/library/en-us/dnglobspec/html/wssecurspecindex.asp</a></p>
<p>  <em>Using WS-Security with the Web Services Development Kit Technology Preview </em><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwssecur/html/wssecwithwsdk.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwssecur/html/wssecwithwsdk.asp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.exploredotnet.co.uk/securing-xml-web-services/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>Designing an XML Web Service</title>
		<link>http://www.exploredotnet.co.uk/designing-an-xml-web-service/</link>
		<comments>http://www.exploredotnet.co.uk/designing-an-xml-web-service/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 07:03:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[Designing an XML Web Service]]></category>

		<guid isPermaLink="false">http://www.exploredotnet.co.uk/?p=24</guid>
		<description><![CDATA[  Group related operations and data into one method  Decide on:   Arguments and return data   Whether to use existing classes or create new ones   Security   Use output caching to improve performance   Define your input and output data structures using XSD schemas  Separate XML Web service from underlying business logic   [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>  <strong>Group related operations and data<br />
</strong><strong>into one method </strong></li>
<li> <strong>Decide on: </strong></li>
</ul>
<ol>
<li>  <strong>Arguments and return data</strong></li>
<li>  <strong>Whether to use existing classes or create new ones</strong></li>
<li>  <strong>Security </strong></li>
</ol>
<ul>
<li>  <strong>Use output caching to improve performance</strong></li>
<li>  <strong>Define your input and output data structures using XSD schemas</strong></li>
<li><strong> Separate XML Web service from underlying </strong><strong>business logic </strong></li>
</ul>
<p><strong>  <strong>Web Service Façade <br />
  <strong>(Architectural Patterns)</strong></strong></strong></p>
<ul>
<li><strong>Re-architect an existing client/server or fat client </strong><strong>architecture into a 3 tiered application </strong><strong>environment </strong></li>
<li> <strong>Web enable an existing client/server or fat client </strong><strong>architecture </strong></li>
<li>  <strong>Provide integration with external business partners.</strong></li>
<li>  <strong>Provide integration with internal business </strong><strong>systems. </strong></li>
<li>  <strong>Insulate existing user applications from changes in APIs, servers, or vendors of data and services.</strong></li>
<li><strong>Integrating a “silo” application &#8212; unlock an </strong><strong>existing application so it can participate in a </strong><strong>larger business process. </strong></li>
<li> <strong>Aggregate back-end systems so they’re exposed as one business process.</strong></li>
<li>  <strong>Integrating application running on in </strong><strong>heterogeneous environments (Linux, Solaris, </strong><strong>AS400, etc) with applications running on </strong><strong>Windows. </strong></li>
<li>  <strong>Insulate existing user applications from changes </strong><strong>in APIs, servers, or vendors of data and </strong><strong>services. </strong></li>
<li> <strong>Integrating a “silo” application &#8212; unlock an </strong><strong>existing application so it can participate in a </strong><strong>larger business process. </strong></li>
<li> <strong>Aggregate back-end systems so they’re exposed </strong><strong>as one business process. </strong></li>
<li>  <strong>Integrating application running on in </strong><strong>heterogeneous environments (Linux, Solaris, </strong><strong>AS400, etc) with applications running on </strong><strong>Windows. </strong></li>
</ul>
<p><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.exploredotnet.co.uk/designing-an-xml-web-service/feed/</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
		<item>
		<title>An Introduction to Web Services</title>
		<link>http://www.exploredotnet.co.uk/an-introduction-to-web-services/</link>
		<comments>http://www.exploredotnet.co.uk/an-introduction-to-web-services/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 06:58:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[An Introduction to Web Services]]></category>

		<guid isPermaLink="false">http://www.exploredotnet.co.uk/?p=11</guid>
		<description><![CDATA[  Agenda  What is an XML Web service? What does an XML Web service do? XML Web Services in .NET lWSDL, DISCO and UDDI Developing XML Web Services Securing XML Web services Web Service Exception Web Service and .NET Remoting Web Service and BizTalk   What is an XML Web Service?         [...]]]></description>
			<content:encoded><![CDATA[<p>  <strong>Agenda</strong></p>
<ul>
<li> <strong>What is an XML Web service? </strong></li>
<li><strong>What does an XML Web service do? </strong></li>
<li><strong>XML Web Services in .NET </strong>l<strong>WSDL, DISCO and UDDI </strong></li>
<li><strong>Developing XML Web Services </strong></li>
<li><strong>Securing XML Web services </strong></li>
<li><strong>Web Service Exception </strong></li>
<li><strong>Web Service and .NET Remoting </strong></li>
<li><strong>Web Service and BizTalk</strong></li>
</ul>
<p>  <strong>What is an XML Web Service? </strong></p>
<p><strong><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/Picture1.gif"><img class="alignleft size-medium wp-image-13" title="XML Web Services" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/Picture1-300x86.gif" alt="" width="300" height="86" /></a></strong></p>
<p><strong> </strong></p>
<p><strong><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/Picture1.gif"></a></strong></p>
<p><strong> </strong></p>
<p><strong><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/Picture2.gif"><img class="alignleft size-medium wp-image-14" title="XML Web Services " src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/Picture2-300x131.gif" alt="" width="300" height="131" /></a></strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>A programmable application component accessible via standard Web protocols</strong><strong> that provides a universal </strong><strong>language for applications to talk to each other </strong>-<strong> </strong>XML Web services allow applications to communicate regardless of operating system or programming language via the Internet. They can be implemented on any platform and are defined through public standards organizations such as the W3C. And with XML Web services, not only can applications share data, but they can also invoke capabilities from other applications without regard to how other applications were built. Sharing data through XML allows them to be independent of each other while simultaneously giving them the ability to loosely link themselves into a collaborating group that performs a particular task.</p>
<p><strong> </strong><strong>What is the difference between a Web site and an XML Web Service </strong>-<strong> </strong>Web sites are about presenting information to a user: they are the communication vehicle for servers to talk to users. XML Web services, on the other hand, offer a direct means for applications to interact with other applications. Applications hosted internally, as well as on remote systems, can communicate via the Internet by using XML and SOAP messages. XML Web services are built on standard Web protocols; HTTP and XML. The technology innovations for XML Web services are: <strong>DISCO</strong> (Discovery) and <strong>UDDI</strong> (Universal Description, discovery, and Integration) &#8211; Standards for locating XML Web services <strong>SOAP</strong> (Simple Object Access Protocol) &#8211; Explicit serialization (HTTP + XML description) protocol used in service exchanges <strong>WSDL</strong> (XML Web services Description Language) &#8211; XML document describing the location and interfaces a particular service supports – the client&#8217;s contract.</p>
<p>  <strong>What Does an XML Web Service Do?</strong></p>
<ul>
<li>  Expose functionality as a service and allow applications to share data</li>
<li>  Can be called across platforms and operating systems and regardless of programming language</li>
</ul>
<p>  <strong>XML Web Services in .NET</strong></p>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/11.gif"><img class="alignleft size-medium wp-image-17" title="XML Web Services in .NET" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/11-300x226.gif" alt="" width="300" height="226" /></a></p>
<p>  <strong>The .NET Framework provides a bi-directional mapping between the elements of the Web and the elements </strong><strong>of the Framework. </strong><strong> </strong>XML Web Services actually map well to existing technologies and to the .NET Framework. This slide shows how the mappings can be visualized. For instance, you can see that the concept of application data maps to XML which carries the data while the objects in the framework provides the features we normally see in objects that are called locally or in client/server applications. The objects are instantiations of classes which provide methods that can be called by an application. So, from the perspective of the calling application, an XML Web service looks like a method (or function) call to a traditional object. The middle column titled Web shows the areas that define the services features across the Web. For instance, the XML Schema Definition (XSD) language represents an XML schema that describes a service just like a class provides the description for an object.</p>
<p>  <strong>Web Service Description Language (WSDL) and</strong> <strong>SOAP</strong></p>
<ul>
<li>  &#8220;TypeLib for SOAP&#8221;</li>
<li>Uniform representation for services : Transport Protocol neutral ,Access Protocol neutral (not only SOAP)</li>
<li>Describes how to call an XML Web service</li>
</ul>
<p>  <strong>DISCO</strong></p>
<ul>
<li> DISCO is a proprietary file format placed at the root of a Web directory</li>
<li>Visual Studio generates the DISCO for your XML Web service when you generate your service</li>
<li>Easy discovery model for HTTP</li>
</ul>
<p>  <strong>Universal Description, Discovery and Integration (UDDI)</strong></p>
<ul>
<li>  Registry (Directory) for Web Services</li>
<li>  UDDI itself is a Web service – can be programmatically accessed</li>
<li>  Businesses can publish to registry and query registry</li>
<li>  May point to WSDL files</li>
<li>  Initiative driven by Microsoft, IBM, Compaq, Intel, Sun, Oracle and 250+ other companies</li>
</ul>
<p>  <strong>Visual Studio .NET and XML Web Services</strong></p>
<ul>
<li>  <strong>Visual Studio .NET creates XML Web Services </strong><strong>for you </strong></li>
<li><strong>  Generates the plumbing </strong><strong>i.e., SOAP, DISCO, WSDL, etc… </strong></li>
<li><strong>  Automates the creation of the project files </strong></li>
</ul>
<p><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/2.gif"><img class="alignleft size-medium wp-image-20" title="Visual Studio .NET and XML Web Services" src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/2-262x300.gif" alt="" width="262" height="300" /></a></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p>  <strong>Creating an XML Web Service</strong></p>
<p><strong> </strong><strong> </strong>&lt;%@ WebService Language = “C#“ Class = “MyClass“ %&gt;</p>
<p>using System.Web.Services;<br />
public class MyClass: WebServices<br />
{<br />
  [ WebMethod ]<br />
  public int Compute1(int i1, int i2)<br />
  {<br />
    return i1 + i2;<br />
  }</p>
<p> [ WebMethod ]  public int Compute2(int i1, int i2)<br />
  {<br />
    if (i1 &gt; i2) return i1 &#8211; i2;<br />
    else return i2 &#8211; i1;<br />
<strong>  </strong><strong>}<br />
</strong><strong>} </strong><strong>Note:</strong>  Use either [SoapDocumentService] or [SoapRpcService] attribute to control basic WSDL details  Web Services Description Language (WSDL) defines two styles for how an XML Web service method, which it calls an operation, can be formatted in a SOAP request or a SOAP response: <strong>RPC</strong> and <strong>Document</strong>.   The Rpc/encoded is deprecated, only use it when required for interop.  The [SoapDocumentService] is the default if not specified.</p>
<p>  <strong>Creating An XML Web Service<br />
</strong><strong>Demo</strong></p>
<ul>
<li>  <strong>XML Web Services 101 </strong></li>
<li><strong> Create a simple XML Web service</strong></li>
</ul>
<p>  <strong>XML Web Services Clients </strong>Create ASP.NET page to use XML Web Service Demonstrate: How to register Web services? •How to use a Web service? •How calling a Web service is like calling a function or method?</p>
<p><strong><a href="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/3.gif"><img class="alignleft size-medium wp-image-21" title="Consuming Web Services " src="http://www.exploredotnet.co.uk/wp-content/uploads/2010/11/3-300x141.gif" alt="" width="300" height="141" /></a></strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Generating Web Service proxy using “wsdl.exe”</strong></p>
<ul>
<li> <strong>Utility to generate code for xml web service clients and xml web services using ASP.NET from WSDL </strong><strong>contract files, XSD schemas and .discomap discovery documents.  </strong></li>
<li><strong>Allow greater control in generating the proxy </strong><strong>class. </strong></li>
</ul>
<ol>
<li><strong>Specify the language (C#, VB.NET, or JS) </strong></li>
<li><strong>Specify the namespace for greater interoperability </strong></li>
<li><strong>Specify the web service url from a configuration file </strong></li>
<li><strong><strong>Specify the protocol </strong></strong></li>
<li><strong><strong>Specify the proxy server if needed</strong></strong></li>
</ol>
<p><strong>(technical guide notes:-)</strong></p>
<p>  wsdl.exe &lt;options&gt; &lt;url or path&gt; &lt;url or path&gt; &#8230;      &#8211; OPTIONS &#8211; &lt;url or path&gt; &#8211;     A url or path to a WSDL contract, an XSD schema or .discomap document. /nologo     Suppresses the banner. /language:&lt;language&gt;     The language to use for the generated proxy class.  Choose from &#8216;CS&#8217;,     &#8216;VB&#8217;, &#8216;JS&#8217; or provide a fully-qualified name for a class implementing     System.CodeDom.Compiler.CodeDomProvider.  The default is &#8216;CS&#8217; (CSharp).     Short form is &#8216;/l:&#8217;. /server     Generate an abstract class for an xml web service implementation using     ASP.NET based on the contracts. The default is to generate client proxy     classes. /namespace:&lt;namespace&gt;     The namespace for the generated proxy or template.  The default namespace     is the global namespace. Short form is &#8216;/n:&#8217;. /out:&lt;fileName&gt;     The filename for the generated proxy code. The default name is derived from     the service name. Short form is &#8216;/o:&#8217;. /protocol:&lt;protocol&gt;     Override the default protocol to implement.  Choose from &#8216;SOAP&#8217;, &#8216;HttpGet&#8217;,     &#8216;HttpPost&#8217;, or custom protocol as specifiied in the configuration file. /username:&lt;username&gt; /password:&lt;password&gt; /domain:&lt;domain&gt;     The credentials to use when the connecting to a server that     requires authentication. Short forms are &#8216;/u:&#8217;, &#8216;/p:&#8217; and &#8216;/d:&#8217;. /proxy:&lt;url&gt;     The url of the proxy server to use for http requests.     The default is to use the system proxy setting. /proxyusername:&lt;username&gt; /proxypassword:&lt;password&gt; /proxydomain:&lt;domain&gt;     The credentials to use when the connecting to a proxy server that     requires authentication. Short forms are &#8216;/pu:&#8217;, &#8216;/pp:&#8217; and &#8216;/pd:&#8217;. /appsettingurlkey:&lt;key&gt;     The configuration key to use in the code generation to read the default     value for the Url property. The default is to not read from the config     file. Short form is &#8216;/urlkey:&#8217;. /appsettingbaseurl:&lt;baseurl&gt;     The base url to use when calculating the url fragment. The     appsettingurlkey option must also be specified. The url fragment is     the result of calculating the relative url from the appsettingbaseurl     to the url in the WSDL document. Short form is &#8216;/baseurl:&#8217;.</p>
<p>  <strong>Returning Data from an XML Web Service</strong></p>
<p>  DataSets can be returned from XML Web service and work well in most cases.  In addition, they can be easily generated with wizard.  DataSets are a feature of ADO.NET and therefore require the .NET Framework.</p>
<p>  If a consuming application can use a DataSet, it uses it as is. If the consuming application cannot use a DataSet, it receives XML from the DataSet.  You can also use XML methods of the DataSet to extract and return XML.</p>
<p> <strong>Consuming Data from an XML Web Service </strong></p>
<p>    <strong>Using ADO.NET DataSets</strong><strong> </strong></p>
<p> Create an XML Web Service which returns and ADO.NET DataSet.</p>
<p>  Show how XML is returned to the browser, but DataSet returned to application that uses a DataSet</p>
<ul>
<li>  How to return data from a DataSet</li>
<li>  How DataSets automatically serialize themselves</li>
<li>  How to consume data from a Web service</li>
</ul>
<p>  Additional notes: The BizTalk server can orchestrate and consume XML Web services.</p>
<p>  The <strong>SoapException</strong> can either be thrown by the common language runtime or by an XML Web service method. The common language runtime can throw a <strong>SoapException</strong> if a response to a request is not formatted correctly. XML Web service methods can generate a <strong>SoapException</strong> by simply throwing an exception within the XML Web service method. If the client accessed the method over SOAP, the exception is caught on the server and wrapped inside a new <strong>SoapException</strong>.</p>
<p>  The SoapException thrown has the following property values:</p>
<p><strong> </strong>Message: The Message property of the original exception.</p>
<p> Code: Specifies a SOAP fault code representing an error occurred during the processing of a client call on the server, where the problem was not due to the message contents.</p>
<p>  Actor: The url of the XML Web service method.</p>
<p>  Detail: A null reference (<strong>Nothing</strong> in Visual Basic), but an empty detail element is present in the fault element.</p>
<p>  The code fragment demonstrates how to handle a CLR exception, wrap the exception in a SoapException, and rethrow the exception to the client</p>
<p>  <strong>Web Service Exception</strong></p>
<p>  <strong>try </strong><strong>{ </strong><strong>   // do something&#8230; </strong><strong>} </strong><strong>catch(Exception e) </strong><strong>{ </strong><strong>  // clean up code&#8230; </strong><strong>  throw new SoapException(&#8230;); </strong><strong>} </strong></p>
<p><strong> </strong></p>
<p>  <strong>Designing an XML Web Service </strong></p>
<p>  When you are designing an XML Web service, you must consider the following things: (Remember, stateless is good.)</p>
<ul>
<li><strong>Group related operations and data into one method </strong></li>
</ul>
<p>  Network round trips are expensive. As with any distributed application, someone using XML Web services must consolidate method calls into chunkier operations that accept all needed data as parameters.</p>
<ul>
<li>  <strong>Use output caching to improve performance </strong></li>
</ul>
<p>  The output from an XML Web service method can be cached by the server and returned to clients without invoking the method. You can control the duration of the output in the cache by setting the CacheDuration property of the WebMethodAttribute on a per-method basis.</p>
<ul>
<li>  <strong>Define your input and output data structures using XSD schemas </strong></li>
</ul>
<p>  When you return a DataSet or an XML document, the client needs to know the structure of the data you are returning. Use XSD schemas to formally define this structure, but it is unnecessary to create them from scratch. A DataSet will generate the schema for you and XSD.exe can generate a schema given an XML document. You might want to tweak those generated schemas to cause them to more accurately and specifically describe the data you are returning and/or receiving.</p>
<ul>
<li>  <strong>Separate XML Web service from underlying business logic </strong></li>
</ul>
<p>  While you can implement the business logic in an XML Web service, it is not the best idea. Separating the business logic into components and then creating XML Web services that use those components is a better direction because it lets you design a business logic object model according to the application&#8217;s needs. Then this object model can be used from several facades including an XML Web service, ASP.NET pages or even a facade that is invoked by Visual Basic .NET clients using remoting.</p>
<ul>
<li><strong>Design and test for interoperability </strong></li>
</ul>
<p>  Depending on your needs, some or all of your XML Web service clients may not be .NET clients. The .NET XML Web service builds on standards and is created for interoperability. To ensure your XML Web service can be invoked by the target client type, you must take into consideration the data structures exchanged between your service and the client. For example, when you return a DataSet, a non-.NET client will receive it as an XML document. The client then wants to make changes to it and send it back to your service to apply those changes. If your service is expecting a DataSet back, the client must update the XML document in a specific way (i.e. with before and after images of each changed row). It might be easier for the client in this case to deal with an XML document and make the updates directly. In any case, you must think through how non-.NET clients will interact with your XML Web service.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.exploredotnet.co.uk/an-introduction-to-web-services/feed/</wfw:commentRss>
		<slash:comments>81</slash:comments>
		</item>
		<item>
		<title>An Introduction to .NET</title>
		<link>http://www.exploredotnet.co.uk/an-introduction-to-net/</link>
		<comments>http://www.exploredotnet.co.uk/an-introduction-to-net/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 05:31:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[.net framework]]></category>
		<category><![CDATA[compiler in .net]]></category>
		<category><![CDATA[introduction to .net]]></category>
		<category><![CDATA[msil code]]></category>

		<guid isPermaLink="false">http://www.exploredotnet.co.uk/?p=6</guid>
		<description><![CDATA[Objective of .NET Allow developers to use a consistent programming methodology Should be able to target multiple hardware platforms Should be able to work with Web uProvide an API to use across different OS versions What is .NET? Is a framework consisting of: lLanguages lCompiler lClass Libraries lRuntime Languages Over 55 languages to choose from [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Objective of .NET</strong></p>
<ul>
<li><strong>Allow developers to use a consistent </strong><strong>programming methodology </strong></li>
<li><strong>Should be able to target multiple hardware </strong><strong>platforms </strong></li>
<li><strong>Should be able to work with Web </strong>u<strong>Provide an API to use across different OS </strong><strong>versions </strong></li>
</ul>
<p><strong>What is .NET?</strong></p>
<ul>
<li> <strong>Is a framework consisting of: </strong>l<strong>Languages </strong>l<strong>Compiler </strong>l<strong>Class Libraries </strong>l<strong>Runtime </strong></li>
</ul>
<p><strong>Languages</strong></p>
<ol>
<li> <strong>Over 55 languages to choose from </strong></li>
<li> <strong>Supports OOB:</strong></li>
</ol>
<ul>
<li><strong> <strong>C++ </strong></strong></li>
<li><strong><strong>C# </strong></strong></li>
<li><strong><strong>VB </strong></strong></li>
<li><strong><strong>JS </strong></strong></li>
<li><strong><strong>J# </strong></strong></li>
</ul>
<p><strong>Creates MSIL code </strong></p>
<ul>
<li> <strong>So all languages are equal in functionality </strong></li>
<li><strong>C++ can create unmanaged code </strong></li>
</ul>
<p><strong> <strong>Compiler</strong></strong></p>
<ul>
<li><strong>2-Stage Compiler </strong></li>
<li> <strong>Stage 1: </strong><strong>Compiles code to IL </strong></li>
<li> <strong>Stage 2:   <strong>Compiles Just-in-Time </strong></strong></li>
</ul>
<p><strong>Class Libraries</strong></p>
<ul>
<li> <strong>Gives developer an extremely large set of hierarchical classes (namespaces) to work with</strong></li>
<li> <strong>Governs all aspects of system and application </strong><strong>development </strong></li>
<li> <strong>Provides in built security mechanisms</strong></li>
</ul>
<p><strong>Runtime</strong></p>
<ul>
<li> <strong>Needs to be available on the target platform (</strong><strong>Except in the case of Web applications )</strong></li>
<li> <strong>Runtime consists of the BCL and JIT</strong></li>
<li> <strong>Is loaded at the time of execution of a .NET application</strong></li>
</ul>
<p><strong>Important Features</strong></p>
<ol>
<li> <strong>Performance :-   <strong>Much faster than equivalent Java application ,   <strong><em>At least</em></strong><strong> as fast as native Windows application</strong></strong></strong></li>
<li> <strong>Platform Independent:-   <strong>Device:   l<strong>Desktop, Laptop, Tablet, PDA, Phone, Web ,   l<strong>OS: Windows, BSD, Linux  ,   l<strong>Browser: IE, Firefox, Mozilla, even Lynx! </strong></strong></strong></strong></strong></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.exploredotnet.co.uk/an-introduction-to-net/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
	</channel>
</rss>

