סקר טכנולוגי לירן זילכה מנכ " ל משותף [email_address]
Aluna <ul><li>Israel’s leading Java/JavaEE and SOA consulting company </li></ul><ul><li>Customers: </li></ul>
Agenda <ul><li>IT concepts: </li></ul><ul><ul><li>SOA </li></ul></ul><ul><ul><li>Cloud Computing </li></ul></ul><ul><li>Pr...
SOA
From Objects to Services <ul><li>Polymorphism </li></ul><ul><li>Encapsulation </li></ul><ul><li>Subclassing </li></ul><ul>...
Benefits of Service Orientation <ul><li>Facilitates implementation/platform interop </li></ul><ul><li>Independent deployme...
The Challenge - Radically Simplifying Distributed Application Development <ul><li>Development of connected systems remains...
Cloud Computing
Questions <ul><li>What is cloud computing? </li></ul><ul><ul><li>Horizontal and functional services </li></ul></ul><ul><li...
Living in the Clouds <ul><li>We want to start a new website, FredsList.com </li></ul><ul><li>Our site will provide listing...
Step 1: Listings Scenario Simple Web Service API’s  Database PNUTS FredsList.com application   1234323, transportation, Fo...
Step 2: System Evolution Simple Web Service API’s  Database PNUTS FredsList.com application   1234323, transportation, For...
Step 3: Search Simple Web Service API’s   Database PNUTS “ bicycle” FredsList’s customers quickly ask for keyword search S...
Step 4: Photos Simple Web Service API’s   Database PNUTS FredsList decides to add photos/videos to listings Search Vespa S...
Step 5: Data Analysis Simple Web Service API’s   Database PNUTS FredsList wants to analyze its listings to get statistics ...
Step 6: Performance Simple Web Service API’s   Database PNUTS FredsList wants to reduce its data access latency Search Ves...
Data Serving vs. Analysis <ul><li>Very different workloads, requirements </li></ul><ul><li>Data from serving system is one...
Why Clouds? <ul><li>On-demand infrastructure to create a fundamental shift in the OE curve: </li></ul><ul><ul><li>Do thing...
Requirements for Cloud Services <ul><li>Multitenant. A cloud service must support multiple, organizationally distant custo...
Requirements for Cloud Services <ul><li>Metering. A cloud service must support accounting that reasonably ascribes operati...
Types of Cloud Services <ul><li>Two kinds of cloud services: </li></ul><ul><ul><li>Horizontal (“Platform”) Cloud Services ...
Horizontal Cloud Services <ul><li>Horizontal cloud services are foundations on which tenants build applications or new ser...
What’s in the Horizontal Cloud? Shared  Infrastructure Horizontal Cloud Services Edge Content Services e.g., YCS, YCPI Pro...
Web Data Management Large data analysis (Hadoop) Structured record storage (PNUTS/Sherpa) Blob storage (SAN/NAS) <ul><li>S...
The World Has Changed <ul><li>Web serving applications need: </li></ul><ul><ul><li>Scalability! </li></ul></ul><ul><ul><ul...
SQL Server 2008
SQL Server 2008
Enterprise Data Platform <ul><li>Policy-Based Management </li></ul><ul><ul><li>Management of multiple SQL Server instances...
Enterprise Data Platform – Cont’ <ul><li>Data compression </li></ul><ul><li>Resource Governor </li></ul><ul><ul><li>Alloca...
Development <ul><li>MERGE support </li></ul><ul><ul><li>Allows easy merge of data for Data Warehouses </li></ul></ul><ul><...
Development – Cont’ <ul><li>Change Data Capture (CDC) </li></ul><ul><ul><li>Allows you to track changes in the database (i...
Non Relational Data <ul><li>Spatial support </li></ul><ul><li>Full text search </li></ul><ul><li>Large user defined types ...
Visual Studio Team System
VSTS ALM Solution Excel Project Operations, QA and Help Desk Non-Microsoft Developer Team System Web Access
Facilitate Team Collaboration <ul><li>Approachable and intuitive products </li></ul><ul><li>Tight integration across tools...
Team System Architecture Dev Team  (Local) Dev Team (Remote) Business User Build Server Version Control Proxy (Remote) Act...
Process Enacted By Tooling Choose process when creating a new project
Process IS important in TFS <ul><li>Take your process/methodology and use it </li></ul><ul><li>Does not need to be heavy p...
Process Templates: <ul><li>Make the entire system work the way you want it to work: </li></ul><ul><ul><li>Define your (bug...
Team Foundation Server <ul><li>A single, integrated server  for team collaboration: </li></ul><ul><ul><li>Team Portal – Sh...
Team Explorer <ul><li>Common integrated client to access: </li></ul><ul><ul><li>Work Items </li></ul></ul><ul><ul><li>Docu...
Web Access <ul><li>Browser-based access to </li></ul><ul><ul><li>Project Dashboard </li></ul></ul><ul><ul><li>Documents </...
Some Adoption Scenarios <ul><li>Replace Source Control (Replace SourceSafe) </li></ul><ul><li>Need to track bugs, etc. </l...
Compliance and Audit <ul><li>TFS supports this easily: </li></ul><ul><ul><li>Process Guidance details how you work </li></...
Compliance And Auditing Capturing evidence does not have to be a manual process, ...
Compliance And Auditing … because there is a complete audit trail on all the tasks, code, and tests.
Integrated Project Portal Customizable SharePoint portal for team collaboration
Business Requirements Business requirements captured and managed to enable end-to-end traceability
Project Planning Full integration into Microsoft Project for a real-time view of work items
Team Explorer Access work items, project documents, reports, builds and source control from one location
Web Access Access work items, project documents, reports, builds and source control any browser!
Work Item Association Associate work items with each check-in to provide traceability from  requirements to code
Check-In Policies Policies enforced by tooling reinforce good development practices
Managing Work Items Manage and analyze work items using Microsoft Excel
Database Change Management A new offline Database project allows you to work with your database schema offline while full ...
Build And Deployment Build verification test results as part of the build process Who checked in what?
What Requirements Haven’t Been Tested? Tracks progression of requirements’ states from untested to passed by successive bu...
How Far Can We Get In The Available Time? Work completed Work  planned
Where Do We Need To Shift Resources? Bulge in work in process (i.e. in testing) indicates inadequate resources or inadequa...
Scope Creep “ Dark matter” emerging during iteration Planned work is squeezed out
How Effective Is Our Team? Test rates (pass, inconclusive, fail) shown in bars Against code coverage, … code churn, … and ...
Inadequate Unit Testing Falling code coverage Fewer passing and more inconclusive tests Rising code churn
Integration with Project Server <ul><li>Project Server 2007 VSTS Connector  available on CodePlex </li></ul>
Workspaces <ul><li>Workspaces provide Isolated areas </li></ul><ul><li>A single PC can have many workspaces </li></ul><ul>...
Branching <ul><li>Allows parallel development </li></ul><ul><li>But for anything that you  don't want  to service or patch...
Branching
Using the TFS API <ul><li>Team Explorer installs all the DLLs are in the GAC, but doesn’t registered them for Visual Studi...
Other Cool Tools <ul><li>SVNBridge – Allows SubVersion client to access TFS </li></ul><ul><li>Conchango’s Scrum Project Gu...
TFS & VSS Differences <ul><li>Architecture </li></ul><ul><ul><li>TFS: client/server, VSS: client-side </li></ul></ul><ul><...
TFS & VSS Differences <ul><li>TFS does NOT perform a “get latest” on checkout </li></ul><ul><ul><li>“ get latest” and “che...
Migration from VSS to TFS <ul><li>VSSConverter migration tool </li></ul><ul><li>Imports VSS repository into TFS </li></ul>...
Visual Studio 2008 Administration <ul><li>Share Point 2007 support </li></ul><ul><li>Enable use of a separate Share Point ...
Visual Studio 2008 Version Control <ul><li>Add support for checkin policy overrides to the warehouse (an oversight from V1...
Visual Studio 2008 Build <ul><li>Support multi-threaded builds with the new MSBuild.  </li></ul><ul><li>Continuous Integra...
WPF
Why WPF? <ul><li>Windows Presentation Foundation, part of WinFx, is a completely new presentation framework replacing User...
Hello World <ul><li>C# example </li></ul>using System; using System.Windows; namespace AvalonExample {   class MyApp {   [...
Hello World <ul><li>XAML example </li></ul><Page xmlns=&quot;http://schemas.microsoft.com/winfx/avalon/2005&quot; xmlns:x=...
What Is XAML <ul><li>XAML = eXtensible Application Markup Language </li></ul><ul><li>XAML provides a declarative programmi...
Application Object <ul><li>Application object acts as container for more complex applications </li></ul><ul><ul><li>MainWi...
Application Object public class MyApp : Application {   [STAThread]   static void Main(string[] args)   {   MyApp app = ne...
Content Model <ul><li>WPF offers strong separation of behaviour (API) and presentation </li></ul><ul><li>Behaviour (API) c...
StackPanel example <Window x:Class=&quot;Demo4.Content.Window1&quot;  xmlns=&quot;http://schemas.microsoft.com/winfx/avalo...
Grid example <Window x:Class=&quot;Demo4.Content.Window1&quot;  xmlns=&quot;http://schemas.microsoft.com/winfx/avalon/2005...
Eventhandling <ul><li>Most significant feature is ‘Event Bubbling’ called ‘EventRouting’ </li></ul><ul><ul><li>RoutedEvent...
Databinding example <StackPanel Name=&quot;pnlMain&quot;>   <TextBlock>Name: </TextBlock>   <TextBox Name=&quot;txtName&qu...
Silverlight2
Introduction <ul><li>What is Silverlight? </li></ul><ul><ul><li>Browser control capable of displaying objects, shapes cont...
Silverlight2 Features <ul><li>Built-in subset of the CLR </li></ul><ul><li>Support for multiple languages including C# and...
Uses
Calendar <UserControl xmlns:my=&quot;clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls &quot; x:Clas...
WCF
Windows Communication Foundation <ul><li>Unified framework for rapidly building service-oriented applications </li></ul>
WCF Design Goals <ul><li>“ The unified programming model for rapidly building service-oriented applications on the Windows...
Services and Clients Client Service Message Message
Endpoints Client Service Message Endpoint Endpoint Endpoint
WCF Architecture
Address, Binding, Contract Client Service Message Address Binding Contract (Where) (How) (What) A B C A B C A B C
WCF Architecture: Messaging Runtime Client Dispatcher Service Contract and Behaviors Binding Address Transport Encoder Pro...
Service Model Layer Influences system operation  based on incoming and  outgoing messages. Effects of behaviors are local....
Three Types of Contracts <ul><li>Service Contract </li></ul><ul><ul><li>Defines Operations, Behaviors and  Communication S...
Ways to Talk <ul><li>One Way:  </li></ul><ul><ul><li>Datagram-style delivery </li></ul></ul><ul><li>Request-Reply </li></u...
Bindings & Binding Elements Transport IPC MSMQ Custom TCP HTTP Protocol Encoders .NET TX Custom Security Reliability Bindi...
Standard Bindings N = None | T = Transport | M = Message | B = Both | RS = Reliable Sessions Binding  Interop Security Ses...
Bindings & Behaviors: Security Service Client Be Be Bindings Insert Claims in Messages Behaviors Implement Security Gates ...
Security <ul><li>Claims based end-to-end security </li></ul><ul><ul><li>Secure end-to-end message exchanges </li></ul></ul...
Bindings & Behaviors: Transactions Service Client Be Be Bindings Flow Transactions Behaviors AutoEnlist and AutoComplete C...
Bindings & Behaviors: Reliable Sessions Service Client Bindings provide Session and Guarantees C B A C B A A B C C B A
Reliability and Transactions <ul><li>End-to-end Reliable messaging </li></ul><ul><ul><li>In-order guarantees </li></ul></u...
Upcoming SlideShare
Loading in …5
×

Technology Overview

1,066 views

Published on

An overview of up to date Microsoft technology, like VSTS, WCF, Silverlight and more

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,066
On SlideShare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. Speaker Notes For years, software development has focused on how to best reuse the code that we write. Ultimately, people and businesses want long-term return on their short-term investments in code. How do we do this? We’ve seen 3 waves of advancement in this movement in recent decades: 1980s and Object-Orientation: Object-oriented development promised the idea of building reusable abstractions (called classes) that we could then inherit from in order to reuse the base class functionality. This shift from simple procedural-based code brought with it a lot of benefits including polymorphism (the ability to dynamically bind types at runtime), abstractions that included both state and behavior, and encapsulation (controlling which parts of the code the external world can access). However, Object-Orientation by itself didn’t facilitate the dynamic evolution of software at runtime. Once an application was built, it was static. There wasn’t an easy way to infuse new code into an application. 1990s and Components: Component-based development helped us overcome this challenge. It forced the developer to think about the external facing interface of the application. This enabled us to build systems that dynamically load and bind to new functionality at runtime (an application discovers new components after it has been built) and introduced the notion of an application as a growing/evolving organism. To facilitate dynamic loading, we saw a big emphasis on runtime metadata. In the past, you couldn’t easily discern application capabilities since there was very little/rudimentary metadata information stored as part of the application. Whereas C and C++ programs from 1980s were these relatively opaque collections of code, component-based applications of the 1990s enabled runtime inspection of code to determine what a particular component supported. This introduced the notion of self-describing systems. But while this metaphor worked really well on a single machine (using method invocation on an object reference), we hit scaling problems when we tried to stretch it out and apply it as the substrate for distributed software integration (across machines, etc). 2000s and Service-Orientation – With Service-Orientation, we retain the benefits of self-describing applications, explicit encapsulation, and dynamic loading of functionality. What changes is the metaphor with which we accomplish it. Instead of using method invocation on an object reference, we shift the conversation to that of message passing – a proven metaphor for scalable distributed software integration. In addition, to support dynamic loading of service-based functionality, we use schema to describes the structure of messages, behavioral contract to define acceptable message exchange patterns, and policy to define service semantics. Simplifying service-oriented development is one of the biggest bets we’re making in WCF. WCF takes the service-oriented concepts of message passing, schema, contract, and policy, and implicitly applies it to all of the services we build. As such, WCF provides you with the first true service-oriented programming model. Transition to next slide: We define service oriented applications as those that adhere to “The Four Tenets of Service-Orientation.” Let’s examine these and see how WCF implements them…
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. Speaker Notes At a high level, service-oriented programming reduces long-term TCO for connected systems. First, it facilitates application to application interoperability across platforms through the use of loosely-coupled standards-based integration. Second, it enables independent deployment, versioning, and management of caller (traditionally referred to as the client) and the called (traditionally referred to as the server). Finally, it promotes the reuse of our investments as they evolve over time. Transition to next slide: We’ve now covered all three pillars of WCF – Unification, Integration/Interoperability, and Service-Oriented Programming. Let’s review…
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. Speaker Notes The next challenge we face is actually something we’ve been doing for quite some time now – building distributed applications. As developers, we’ve been building distributed applications for years now. However, I’ll assert that it’s never been as easy as it should be, or could be. While our ability to build distributed applications has certainly changed over the past few years, it hasn’t necessarily gotten any easier. In fact, additional capabilities and options for building distributed applications have brought with them additional complexity! Security is critical for applications, but often complicated to implement. Standards-based interoperability needs to be taken into account for communication across heterogeneous systems. We have different programming models with different capabilities that are focused on different application scenarios: Web services, distributed objects, and message queuing all helped address development needs, but again, they’ve added more complexity to our lives. They require us to learn different programming paradigms and often contain functionality and features that don’t compose (combine) well with one another. With the resurgence of service orientation and service-oriented architectures (SOA), we also need to design our applications for flexibility in the face of change. It was these types of development challenges in building distributed applications that drove the WCF product design goals. Transition to next slide: So at a high level, the goal of WCF is to radically simplify the development of distributed applications. We can summarize WCF’s design goals in three key concepts…
  • © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. TFS provides the infrastructure for team members to collaborate successfully to deliver a software project. It’s built on Windows Server 2003 and SQL Server. It leverages core technologies like ASP.NET web services and SharePoint to provide services. It’s composed of four cornerstones. The first is Work Item Tracking which is very fundamental to TFS. WI are our generic name for any piece of information related to a project that require further action or input. So it can be a Feature, Bug/Defect, Task, Requirement, etc. WIs are used by all parts of TFS. Version Control is the name of our enterprise class source code Change Management feature that we’ll be talking about in depth shortly. Build Automation makes it simple for teams to set up a regularly scheduled build. Performing regular builds will increase quality by catching defects when code is integrated. TFS makes it dead simple to set this up. Team Communication is important to ensure the team is in sync. TFS supports this by aggregating all project related data in a single repository and making that easily accessible to anyone related to the project. Good communication increases the transparency of the project. Finally, TFS’s extensive Reporting capabilities increase the predictability of a project by gathering and presenting important information. Out of the box we have over 20 predefined reports and it’s really simple to extend existing reports as well as create new reports.
  • Give some stats on saleability and network requirements. Caching Proxy Server Downloading files is expensive in terms of bandwidth. Solution: cache them locally at your remote sites. High level, clients get all meta data from server as to what is the latest version etc. When it wants to download a file, sends the request to the proxy server. If proxy has it sends it, otherwise gets it from the server. Keeps it stored in GZIP format (unless file format grows when GZIPED) Also useful for reducing load on App tier. There is a file cache in app tier (stored in GZIP format) Cache has fixed size limit or percentage space limit (of disk system) Files removed on a FIFO policy. Cache counters available at http://&lt;proxy&gt;:8081/VersionControlProxy/v1.0/ProxyStatistics.asmx http://&lt;at&gt;:8080/VersionControl/v1.0/ProxyStatistics.asmx Can also be output to server log file on a periodic basis. Cache files located on separate disc to OS – configured for speed not reliability (files are stored in DB tier properly) Can proxy multiple AT instances Each proxy should have own user id? In Microsoft, TFS Server in Redmond, TFS proxy in Raliegh (where the VC team are), TeamBuild in India and Beijing team. Need to fit in with your WAN environment. Where are your main data centres. Where will your teams be? Cost low (cost of a Windows 2003 server) Configure disks for fast raid striping (RAID 0) (just a cache – don’t bother with redundancy for the cache partition) Typical usage is 89% cache hit. © 2006 Teamprise. All rights reserved. This presentation is for informational purposes only. Teamprise makes no warranties, express or implied, in this summary. Teamprise
  • © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • http://www.codeplex.com/pstfsconnector The Visual Studio Team System Project Server 2007 Connector is designed to integrate the project management capabilities of VSTS with Project Server 2007. It&apos;s been developed by the Visual Studio Team System Rangers in response to significant customer demand for a connector solution. Future versions of Team System will have native integration with Project Server, in the meantime this Connector solution is the best way to integrate the two Microsoft products. This solution builds on the previous PS2003 VSTS Connector , published on GotDotNet. This solution is intended to provide guidance, provided as source code that can be used &amp;quot;as is,&amp;quot; extended, or modified by developers to use on enterprise development projects.
  • This is a presentation in itself The size of the development team has big effect on branching options Branching typically involves: Taking a snapshot of source code to create isolation – a snapshot may be as of a certain point in time, or a stable or known state of source code (such as the last successful build). The resulting copy is the child branch, and the source from which it was created is called the parent branch. Containing and stabilizing changes within the isolated snapshot in the child branch. Bi-directional synchronization of changes with the parent branch – usually referred to as integrating or merging. We will explain why this is important later in this document. Release Isolation: If you need to work on multiple releases in parallel, you will probably want source code for those releases to be isolated in their own branch – hence release isolation . This is the most common need that causes organizations to start branching their sources. Keep in mind that the term “release” here does not necessarily refer to a new version of your product. It may be appropriate to release your application to your test team from a dedicated branch so that you can work through issues with that release independently from the new development that is continuing on your development branch. Feature Isolation: It is common for teams to embark on new functionality that is either considered experimental or is considered risky enough to merit that work being performed in its own branch. In such cases, feature isolation allows the people working on a given feature to collaborate without exposing the rest of the application to any instability that may result. Team Isolation: It is also common that organizations elect to have sub-teams work in isolation from each other. Team isolation provides the ability for these teams to collaborate without being subjected to the potentially breaking changes that other teams are working on. Some organizations go so far as to create a dedicated branch for every developer on the team. This is not required with Team Foundation Server because of the nature of client-side workspaces discussed earlier. Integration Isolation: Merging changes between branches is often a very destabilizing event. It is sometimes beneficial to maintain an integration branch where active development does not take place but rather serves as a staging area for merges. Changes from other branches can be merged into this branch and then stabilized. Once stable, the changes can be merged back into the other branches. In some organization, the term “breaking changes” refers to the potential destabilization bug fixes or merges can introduce – accordingly they provide for a “breaking changes branch” to accommodate the need for integration isolation.
  • http://msdn2.microsoft.com/en-us/library/aa730834(VS.80).aspx You know you are on the wrong track if you experience one or more of the following symptoms in your development environment: Merge Paranoia —avoiding merging at all cost, usually because of a fear of the consequences. Merge Mania —spending too much time merging software assets instead of developing them. Big Bang Merge —deferring branch merging to the end of the development effort and attempting to merge all branches simultaneously. Never-Ending Merge —continuous merging activity because there is always more to merge. Wrong-Way Merge —merging a software asset version with an earlier version. Branch Mania —creating many branches for no apparent reason. Cascading Branches —branching but never merging back to the main line. Mysterious Branches —branching for no apparent reason. Temporary Branches —branching for changing reasons, so the branch becomes a permanent temporary workspace. Volatile Branches —branching with unstable software assets shared by other branches or merged into another branch.
  • Can register DLLS using TechNote 306149 or manually find program filesmicrosoft visual studio 8common7ideprivate assemblies Microsoft.TeamFoundation.Client.dll, Microsoft.TeamFoundation.VersionControl.Common.dll, Microsoft.TeamFoundation.VersionControl.Client.dll
  • SvnBridge allows you to use TortoiseSVN and other Subversion clients with Team Foundation Server. It converts the calls made by your Subversion client to the API supported by TFS. Http://www.codeplex.com/SvnBridge Scrum for Team System is a free Agile Software Development Methodology add-in for Microsoft Visual Studio Team System , developed by Conchango , in collaboration with Ken Schwaber and the Microsoft Technology Centre UK . http://www.scrumforteamsystem.com Team Look Personify Design TeamLook™ extends Microsoft Outlook so that all stakeholders in a software project can communicate more effectively and gain accurate visibility into project status. TeamLook™ connects to Visual Studio 2005 Team Foundation Server and enables users to view WorkItems, Reports, and other artifacts stored in their Visual Studio 2005 Team System installations. With constant synchronization TeamLook™ functions in a similar manner to other Microsoft Outlook features, reducing training costs and enabling organizations to realize immediate productivity gains. http://www.personifydesign.com/products/teamlook/teamlook.aspx Team System Outlook Addin From Microsoft Israel and free unlike TeamLook (www.personifydesign.com/products/teamlook/teamlook.aspx at $199 per seat) http://blogs.microsoft.co.il/blogs/srlteam/archive/2007/02/05/Team-System-Outlook-Addin-_2D00_-v1.0.aspx Create work item directly from email messages Submit and edit work items Execute stored queries Find work items by ids Export stored queries results Send work items data and queries results http://www.teamprise.com/product/index.html $500 per seat Teamprise is a suite of client applications for accessing Microsoft Visual Studio 2005 Team Foundation Server from outside of the Visual Studio Integrated Development Environment (IDE). Teamprise enables software development teams to use the source control, work item tracking, documents, and reporting features of Team Foundation Server from within the Eclipse IDE, and from other operating systems, including Linux and Mac OS X.
  • http://msdn2.microsoft.com/en-us/library/ms181369.aspx
  • I would recommend you don’t do it unless you have to. We have decided to start new projects on TFS leaving the old on VSS/Sourcegear SOS If we do move over a project we get latest from VSS, break source control binding then add to TFS
  • Share Point 2007 support Enable use of a separate Share Point farm. Support for SQL Named Instances – This will allow customers to share a SQL server between multiple TFS instances, or with other applications.  This has been a commonly requested feature by enterprises. “ Longhorn” server support – TFS will support the next version of the server (and corresponding new version of IIS) that is currently under development. Sync Large Groups – This is a set of work to improve the performance and robustness of TFS’s handling large groups of users (~30,000 or more) granted permission to a TFS instance.  Today this can result in a support call to recover from it. Installation on a domain controller – TFS will support installation on a domain controller.  This has been a fairly common request from smaller organizations who don’t have the budget for special purpose servers. Improvements to TFS Trial – We’ll plan to improve the trial experience to include warnings as expiration approaches. Non-default ports &amp; web sites – We’ve gotten a bunch of feedback from enterprise customers about TFS’s limited support for alternate web sites and ports running afoul of data center policies.  We are going to be improving TFS’s configurability in this respect in Orcas.  We won’t be getting everything everyone has asked for but we should make some significant progress. Simplify installation – In Orcas, we will be doing a variety of things to attempt to make installing TFS easier and quicker than it is now.  The most significant of them is simplifying the requirements around required domain accounts by supporting the built in machine accounts (like Network Service) where we can. Support for client certificates Upgrade from TFS 2005
  • Annotate – This is based on the TFS Annotate Power Tool but includes numerous improvements. Folder Diff – Also based on the TFS Tree Diff Power Tool with numerous improvements. Destroy – The ability to permanently delete version control files/folders from TFS.  It can also be used to destroy the file contents while preserving the change set history. Get Latest On Checkout – There have been many requests for this feature (which was a change in behavior from SourceSafe).  There is now an option that allows you to specify that you want TFS to download the latest version of files when you check them out. Workspace improvements – Workspaces will now support mapping a folder or file under a cloaked folder and wildcard mappings so that you can map all files in a folder without mapping sub folders.  Based on experience with large projects, this will simplify workspace definitions for many people. Performance improvements – A variety of Version Control performance enhancements that will improve virtually all aspects of version control performance.  The gains for smaller servers/projects (&lt; 10,000 files) will be modest.  The gains for larger projects (particularly where the file count approaches 100,000’s) will be substantial. Scale improvements – Fixed out of memory problems on the server when operating on more than a few hundred thousand files at a time. Migration toolkit – Orcas will include a toolkit for building conversion and mirroring solutions between TFS and other systems.  In addition, we will release one or more new tools to integrate with popular alternative systems.  We expect to release some of these on our Power Tool train before Orcas and will roll them into a post-Orcas release.
  • Build Support multi-threaded builds with the new MSBuild. Continuous Integration – There are many components to this, including build queuing and queue management, drop management (so that users can set policies for when builds should be automatically deleted), and build triggers that allows configuration of exactly how when CI builds should be triggered, for example – every checkin, rolling build (completion of one build starts the next), etc. Improved ability to specify what source, versions of source, and other build properties. Improved extensibility of the build targets – such as ability to easily execute targets before and after each solution/project is built. Improved ability to manage multiple build machines. Stop and delete builds from within VS. .NET Object model for programming against the build server. Simplified ability to specify what tests get run as part of a build. The ability to story build definitions anywhere in the version control hierarchy
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. Speaker notes: Background Building distributed applications has never been easy. As the applications that we write satisfy more complex business requirements, it’s traditionally meant that the distributed applications we build get more complex themselves. For example, Security is critical for applications, but often complicated to implement. Standards-based interoperability needs to be taken into account for communication across heterogeneous systems. We have different programming models with different capabilities that are focused on different application scenarios: Web services, distributed objects, and message queuing all helped address development needs, but again, they’ve added more complexity to our lives. They require us to learn different programming paradigms and often contain functionality and features that don’t compose (combine) well with one another. With the resurgence of service orientation and service-oriented architectures (SOA), we also need to design our applications for flexibility in the face of change. It was these types of development challenges in building distributed applications that drove the design goals of the Windows Communication Foundation (WCF). WCF Overview WCF is a new framework for building distributed applications. It enables developers to build secure, reliable service-oriented applications that integrate across platforms and interoperate with existing investments. WCF solutions can run within the context of a single machine, over company intranets, or across the Internet using a variety of protocols, formats, and message exchange patterns. By combining and extending the capabilities of existing Microsoft distributed systems technologies (Enterprise Services, System.Messaging, .NET Remoting, ASMX, and WSE), WCF reduces the coding and complexity of developing, deploying and managing distributed applications. With support for REST, RSS, and the WS-* Web services protocols, WCF provides the communication infrastructure for a wide range of software, from consumer P2P applications and content feeds to enterprise-critical solutions. In fact, the InfoCard technology was itself built using WCF. Transition to next slide: Let’s drill into two key areas of WCF – the unified programming model and the support for Web services…
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. Speaker Notes This is a high-level view of the WCF architecture. It is a two layered architecture consisting of a messaging layer and the service model. The Messaging layer handles the low-level messaging of WCF services. It moves messages around on the wire and provides messaging features like transport extensibility, reliability, and transport security. The Service Model sits on top of the Messaging layer. It is the API for building WCF services. We built the Service Model to look familiar to you regardless of which distributed technology you use today. In that sense, WCF is a “logical vNext” for existing distributed technologies. Other things to call out about the Service Model: It is the coupling between the messaging world and the CLR world. In other words, it’s the link between the XML being sent across the wire and our .NET Framework-based code. It is where transactions get set up, it controls instancing of objects, etc. Also, all features in messaging layer are exposed through the service model. Transition to next slide: We mentioned on the last slide that WCF enables you to cover all of the scenarios available in today&apos;s distributed technologies and more. How do we enable this? It&apos;s all about composability. Let’s see how it works…
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. Speaker Notes Let’s take a closer look at how WCF services work using both the messaging layer and the Service Model. In this example, we’ll see how incoming messages to an WCF service get processed before they reach our user code and then how outgoing messages get processed before being sent across the wire. &lt;click&gt; We’ll begin with the Messaging layer. The Messaging layer basically works by Taking messages in from the wire, Adding transfer semantics (called Channels ) Passing the messages on for additional processing. This flexible architecture allows you to chain multiple channels together. &lt;click&gt; For example, if we want to send and receive our messages using the TCP transport, we have a channel called the TCP transport channel that allows you to do this. Once the TCP transport channel processes an inbound message, it simply hands off the message to next level in the processing chain. This “next level” could either be your application code or another channel . &lt;click&gt; So if you want end-to-end interoperable SOAP-based security, you’d simply stack a Security channel on top. This secures outbound messages before handing off to TCP and validates incoming messages before handing back to your application. From there we get to the Service Model layer. This layer bridges the gap between the messaging layer and our user code that implement the WCF service. Just as the messaging layer has the stackable concept of Channels, the Service model layer has a stackable concept called Behaviors. &lt;click&gt; For example, there is a CLR Type Integration behavior. This takes an incoming message and figures out what method to call in order to dispatch it. In other words, this behavior takes an incoming XML Infoset - looks for &amp;quot;action=foo&amp;quot;, &amp;quot;parameter=bar&amp;quot; and figures out what method to call. Of course, if you want, you can also just pass the message through to your code directly if you want to manipulate the XML yourself. &lt;click&gt; The Transaction Behavior pulls the transaction out of the message and enlists in the transaction for you so when your code is called you are in the right transaction context. &lt;click&gt; The Instancing Behavior allows you to choose if you want a new instance of your service with every call, or if you’d like to use a singleton, as well as options that keep the same instance per session. Transition to next slide: There&apos;s a whole bunch of behaviors and channels. Let&apos;s look at them in action…
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. Speaker Notes WCF security secures message exchanges, secures access to resources, and records requests for resources. Security is focused on the support and use of credentials. Credentials consist of claims, issuer, proof of possession. Confidentiality is ensured by encryption using the recipients credentials, integrity is ensured by signing messages using the senders credentials. WCF is secure by default (with the exception of the basicHttpBinding). By default, WCF supports X509 certificates and Username/password, as well as Kerb and SAML tokens. Of course, custom tokens can be written and plugged into WCF as well, and WCF also supports anonymous access if the service chooses to. Access to resources – authentication and autorization consistent with .NET FX AuthZ processes. Supports integration authentication or control via separate access lists. Acces
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 06/29/09 09:25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. Speaker Notes When we talk about reliable messaging (RM), we’re talking about a guarantee that a message actually gets from one service to another (retrying on failed attempts until success). WCF supports two RM guarantees: in-order and exactly once (similar to MSMQ and MQSeries guarantees). “In order” guarantees ensure that messages received are done so in the order in which they are sent. Exactly once guarantees ensure that each message is received only once. There are also two modes for doing RM: an express lightweight mode in which messages are not stored to disk before sending; and a transacted mode in which messages are durably stored to disk before sending. In the case of machine failure, express mode services would lose any messages in the buffer at the time of failure. When you truly need classic, atomic two-phase commit across two services, WCF also supports transactions. This provides the ability to flow a transaction across service boundaries, for and all participants to enlist in the transaction, vote on the outcome, and succeed or fail together atomically. It’s also important to point out that security, RM, and transaction support are all configured by default to communicate using Web Services specification-compliant protocols (WS-Security, WS-ReliableMessaging, WS-AtomicTransaction, etc). This provides a new level of integration between services built on our platform and built on other vendor&apos;s platforms (WebSphere, etc). Transition to next slide: Now that we’ve discussed a broad range of WCF-supported features, let’s look at how WCF services are hosted and activated…
  • Technology Overview

    1. 1. סקר טכנולוגי לירן זילכה מנכ &quot; ל משותף [email_address]
    2. 2. Aluna <ul><li>Israel’s leading Java/JavaEE and SOA consulting company </li></ul><ul><li>Customers: </li></ul>
    3. 3. Agenda <ul><li>IT concepts: </li></ul><ul><ul><li>SOA </li></ul></ul><ul><ul><li>Cloud Computing </li></ul></ul><ul><li>Products: </li></ul><ul><ul><li>SQL Server 2008 </li></ul></ul><ul><ul><li>VSTS </li></ul></ul><ul><li>Development Technologies: </li></ul><ul><ul><li>WPF (XAML) </li></ul></ul><ul><ul><li>Silverlight </li></ul></ul><ul><ul><li>WCF </li></ul></ul>
    4. 4. SOA
    5. 5. From Objects to Services <ul><li>Polymorphism </li></ul><ul><li>Encapsulation </li></ul><ul><li>Subclassing </li></ul><ul><li>Message-based </li></ul><ul><li>Schema+Contract </li></ul><ul><li>Binding via Policy </li></ul>1980s 2000s <ul><li>Interface-based </li></ul><ul><li>Dynamic Loading </li></ul><ul><li>Runtime Metadata </li></ul>1990s Object-Oriented Service-Oriented Component-Based
    6. 6. Benefits of Service Orientation <ul><li>Facilitates implementation/platform interop </li></ul><ul><li>Independent deployment, versioning, mgmt </li></ul><ul><li>Promotes technology reuse </li></ul>
    7. 7. The Challenge - Radically Simplifying Distributed Application Development <ul><li>Development of connected systems remains costly and frustrating </li></ul><ul><li>Different programming models for different tasks </li></ul><ul><li>Need for security and reliable messaging </li></ul><ul><li>Interoperability with applications on other platforms </li></ul><ul><li>Productive service-oriented programming model needed </li></ul>
    8. 8. Cloud Computing
    9. 9. Questions <ul><li>What is cloud computing? </li></ul><ul><ul><li>Horizontal and functional services </li></ul></ul><ul><li>What’s it going to change? </li></ul><ul><ul><li>Software business models, science, life </li></ul></ul><ul><li>How many clouds will there be? </li></ul><ul><ul><li>1, 2, 3, infinity </li></ul></ul><ul><li>What’s new in cloud computing? </li></ul><ul><ul><li>HPC grids, ASPs, hosted services, Multics (!) </li></ul></ul><ul><ul><li>Emerging “cloud stack” to support a broad class of programs, including data intensive applications </li></ul></ul>
    10. 10. Living in the Clouds <ul><li>We want to start a new website, FredsList.com </li></ul><ul><li>Our site will provide listings of items for sale, jobs, etc. </li></ul><ul><li>As time goes on, we’ll add more features </li></ul><ul><ul><li>And illustrate how more cloud capabilities (and corresponding infrastructure components) are used as needed </li></ul></ul><ul><ul><ul><li>List of capabilities/components is illustrative, not exhaustive </li></ul></ul></ul><ul><li>Our cloud provides a “dataset” abstraction </li></ul><ul><ul><li>FredsList doesn’t worry about the underlying components </li></ul></ul>
    11. 11. Step 1: Listings Scenario Simple Web Service API’s Database PNUTS FredsList.com application 1234323, transportation, For sale: one bicycle, barely used FredsList wants to store listings as (key, category, description) 5523442, childcare, Nanny available in San Jose 215534, wanted, Looking for issue 1 of Superman comic book DECLARE DATASET Listings AS ( ID String PRIMARY KEY, Category String, Description Text )
    12. 12. Step 2: System Evolution Simple Web Service API’s Database PNUTS FredsList.com application 1234323, transportation, For sale: one bicycle, barely used Fred belatedly realizes prices are useful information! 5523442, childcare, Nanny available in San Jose 215534, wanted, Looking for issue 1 of Superman comic book ALTER DATASET Listings ADD (Price Float) Schemas are flexible, and evolve 32138, camera, Nikon D40, USD 300 Not every record in a dataset has values defined for all fields declared for the dataset vs.
    13. 13. Step 3: Search Simple Web Service API’s Database PNUTS “ bicycle” FredsList’s customers quickly ask for keyword search Search Vespa “ dvd’s” “ nanny” FredsList.com application ALTER Listings SET Description SEARCHABLE Messaging Tribble Federation of systems offering different capabilities
    14. 14. Step 4: Photos Simple Web Service API’s Database PNUTS FredsList decides to add photos/videos to listings Search Vespa Storage MObStor Foreign key photo -> listing FredsList.com application ALTER Listings ADD Photo BLOB Messaging Tribble Federation of systems offering different performance points
    15. 15. Step 5: Data Analysis Simple Web Service API’s Database PNUTS FredsList wants to analyze its listings to get statistics about category, do geocoding, etc. Search Vespa Storage MObStor Foreign key photo -> listing FredsList.com application ALTER Listings MAKE ANALYZABLE Compute Grid Batch export Pig query to analyze categories Hadoop program to geocode data Hadoop program to generate fancy pages for listings Messaging Tribble
    16. 16. Step 6: Performance Simple Web Service API’s Database PNUTS FredsList wants to reduce its data access latency Search Vespa Messaging Tribble Storage MObStor Foreign key photo -> listing FredsList.com application ALTER Listings MAKE CACHEABLE Compute Grid Batch export Caching memcached And by now, Fred is global, and wants geo-replication!
    17. 17. Data Serving vs. Analysis <ul><li>Very different workloads, requirements </li></ul><ul><li>Data from serving system is one of many kinds of data (click streams are another common kind, as are syndicated feeds) to be analyzed and integrated </li></ul><ul><li>The result of analysis often goes right back into serving system </li></ul>
    18. 18. Why Clouds? <ul><li>On-demand infrastructure to create a fundamental shift in the OE curve: </li></ul><ul><ul><li>Do things we can’t do </li></ul></ul><ul><ul><ul><li>Build more robustly, more efficiently, more globally, more completely, more quickly, for a given budget </li></ul></ul></ul><ul><li>Cloud services should do heavy lifting of heavy-lifting of scaling & high-availability </li></ul><ul><ul><li>Today, this is done at the app-level, which is not productive </li></ul></ul>
    19. 19. Requirements for Cloud Services <ul><li>Multitenant. A cloud service must support multiple, organizationally distant customers. </li></ul><ul><li>Elasticity. Tenants should be able to negotiate and receive resources/QoS on-demand. </li></ul><ul><li>Resource Sharing. Ideally, spare cloud resources should be transparently applied when a tenant’s negotiated QoS is insufficient, e.g., due to spikes. </li></ul><ul><li>Horizontal scaling. It should be possible to add cloud capacity in small increments; this should be transparent to the tenants of the service. </li></ul>
    20. 20. Requirements for Cloud Services <ul><li>Metering. A cloud service must support accounting that reasonably ascribes operational and capital expenditures to each of the tenants of the service. </li></ul><ul><li>Security. A cloud service should be secure in that tenants are not made vulnerable because of loopholes in the cloud. </li></ul><ul><li>Availability. A cloud service should be highly available. </li></ul><ul><li>Operability. A cloud service should be easy to operate, with few operators. Operating costs should scale linearly or better with the capacity of the service. </li></ul>
    21. 21. Types of Cloud Services <ul><li>Two kinds of cloud services: </li></ul><ul><ul><li>Horizontal (“Platform”) Cloud Services </li></ul></ul><ul><ul><ul><li>Functionality enabling tenants to build applications or new services on top of the cloud </li></ul></ul></ul><ul><ul><li>Functional Cloud Services </li></ul></ul><ul><ul><ul><li>Functionality that is useful in and of itself to tenants. E.g., various SaaS instances, such as Saleforce.com; Google Analytics and Yahoo!’s IndexTools; Yahoo! properties aimed at end-users and small businesses, e.g., flickr, Groups, Mail, News, Shopping </li></ul></ul></ul><ul><ul><ul><li>Could be built on top of horizontal cloud services or from scratch </li></ul></ul></ul><ul><ul><ul><li>Yahoo! has been offering these for a long while (e.g., Mail for SMB, Groups, Flickr, BOSS, Ad exchanges) </li></ul></ul></ul>
    22. 22. Horizontal Cloud Services <ul><li>Horizontal cloud services are foundations on which tenants build applications or new services. They should be: </li></ul><ul><ul><li>Semantics-free. Must be &quot;generic infrastructure,” and not tied to specific app-logic. </li></ul></ul><ul><ul><ul><li>May provide the ability to inject application logic through well-defined APIs </li></ul></ul></ul><ul><ul><li>Broadly applicable. Must be broadly applicable (i.e., it can't be intended for just one or two properties). </li></ul></ul><ul><ul><li>Fault-tolerant over commodity hardware. Must be built using inexpensive commodity hardware, and should mask component failures. </li></ul></ul><ul><li>While each cloud service provides value, the power of the cloud paradigm will depend on a collection of well-chosen, loosely coupled services that collectively make it easy to quickly develop and operate innovative web applications. </li></ul>
    23. 23. What’s in the Horizontal Cloud? Shared Infrastructure Horizontal Cloud Services Edge Content Services e.g., YCS, YCPI Provisioning & Virtualization e.g., EC2 Batch Storage & Processing e.g., Hadoop & Pig Operational Storage e.g., S3, MObStor, Sherpa Other Services Messaging, Workflow, virtual DBs & Webserving Simple Web Service API’s Common Approaches to QA, Production Engineering, Performance Engineering, Datacenter Management, and Optimization ID & Account Management Monitoring & QoS Metering, Billing, Accounting Security
    24. 24. Web Data Management Large data analysis (Hadoop) Structured record storage (PNUTS/Sherpa) Blob storage (SAN/NAS) <ul><li>Scan oriented workloads </li></ul><ul><li>Focus on sequential disk I/O </li></ul><ul><li>$ per cpu cycle </li></ul><ul><li>CRUD </li></ul><ul><li>Point lookups and short scans </li></ul><ul><li>Index organized table and random I/Os </li></ul><ul><li>$ per latency </li></ul><ul><li>Object retrieval and streaming </li></ul><ul><li>Scalable file storage </li></ul><ul><li>$ per GB </li></ul>
    25. 25. The World Has Changed <ul><li>Web serving applications need: </li></ul><ul><ul><li>Scalability! </li></ul></ul><ul><ul><ul><li>Preferably elastic </li></ul></ul></ul><ul><ul><li>Flexible schemas </li></ul></ul><ul><ul><li>Geographic distribution </li></ul></ul><ul><ul><li>High availability </li></ul></ul><ul><ul><li>Reliable storage </li></ul></ul><ul><li>Web serving applications can do without: </li></ul><ul><ul><li>Complicated queries </li></ul></ul><ul><ul><li>Strong transactions </li></ul></ul>
    26. 26. SQL Server 2008
    27. 27. SQL Server 2008
    28. 28. Enterprise Data Platform <ul><li>Policy-Based Management </li></ul><ul><ul><li>Management of multiple SQL Server instances from a single location. </li></ul></ul><ul><ul><li>Create policies that control security, database options, object naming conventions, and other settings at a highly granular level. </li></ul></ul><ul><li>Data Collector </li></ul><ul><ul><li>Collect, store, and view performance data automatically. </li></ul></ul><ul><ul><li>It collects disk usage, server activity, and query statistics data, which it loads in a management data warehouse and performance data can be reviewed in SQL Server Management Studio or by using third-party tools. </li></ul></ul>
    29. 29. Enterprise Data Platform – Cont’ <ul><li>Data compression </li></ul><ul><li>Resource Governor </li></ul><ul><ul><li>Allocate resource to high profile applications </li></ul></ul><ul><li>Database files encryption </li></ul><ul><li>Auditing </li></ul>
    30. 30. Development <ul><li>MERGE support </li></ul><ul><ul><li>Allows easy merge of data for Data Warehouses </li></ul></ul><ul><li>Language Integrated Query (LINQ) </li></ul><ul><ul><li>A .NET Framework version 3.5 feature that provides developers with a common syntax to query any data source from client applications. </li></ul></ul><ul><ul><li>Using LINQ to SQL or LINQ to Entities, developers can select, insert, update, and delete data that is stored in SQL Server 2008 databases using any .NET programming language </li></ul></ul>
    31. 31. Development – Cont’ <ul><li>Change Data Capture (CDC) </li></ul><ul><ul><li>Allows you to track changes in the database (insert/update/delete) and store them in a table, for use in Data Warehouses </li></ul></ul><ul><li>ADO.NET Entity Framework </li></ul><ul><ul><li>An ORM solution, much like Nhibernate </li></ul></ul><ul><li>ADO.NET Data Services </li></ul><ul><ul><li>A data access infrastructure for Internet applications by enabling Web applications to expose SQL Server data as a service that can be consumed by client applications in corporate networks and across the Internet. </li></ul></ul>
    32. 32. Non Relational Data <ul><li>Spatial support </li></ul><ul><li>Full text search </li></ul><ul><li>Large user defined types </li></ul><ul><li>Better XML support </li></ul>
    33. 33. Visual Studio Team System
    34. 34. VSTS ALM Solution Excel Project Operations, QA and Help Desk Non-Microsoft Developer Team System Web Access
    35. 35. Facilitate Team Collaboration <ul><li>Approachable and intuitive products </li></ul><ul><li>Tight integration across tools, process and roles </li></ul><ul><li>Single integrated server for greater communication and collaboration </li></ul>Tailored tools for each role Greater team productivity
    36. 36. Team System Architecture Dev Team (Local) Dev Team (Remote) Business User Build Server Version Control Proxy (Remote) Active Directory TCP/IP HTTP / S Win 2003 Server SQL Server 2005 IIS 6.0 Team Foundation Server
    37. 37. Process Enacted By Tooling Choose process when creating a new project
    38. 38. Process IS important in TFS <ul><li>Take your process/methodology and use it </li></ul><ul><li>Does not need to be heavy process </li></ul><ul><li>Grab processes from elsewhere </li></ul><ul><ul><li>Eg: SCRUM </li></ul></ul><ul><li>Easily Customizable through Process Templates </li></ul>
    39. 39. Process Templates: <ul><li>Make the entire system work the way you want it to work: </li></ul><ul><ul><li>Define your (bug, etc) definition, your terms, your form layout, and workflow </li></ul></ul><ul><ul><li>Create your own process guidance easily </li></ul></ul><ul><ul><li>Create your own look and feel for a collaboration portal </li></ul></ul><ul><ul><li>Include all of your document templates, other artifacts </li></ul></ul><ul><ul><li>Include your own roles and security settings </li></ul></ul><ul><ul><li>Include your own reporting </li></ul></ul>
    40. 40. Team Foundation Server <ul><li>A single, integrated server for team collaboration: </li></ul><ul><ul><li>Team Portal – SharePoint site for team collaboration </li></ul></ul><ul><ul><li>Change Management – flexible work item tracking system for requirements, change requests, bugs, issues and other work items </li></ul></ul><ul><ul><li>Project Management – manage project resources, timelines and quality </li></ul></ul><ul><ul><li>Version Control – robust version control system for all project artifacts, including branching, change sets, and shelving </li></ul></ul><ul><ul><li>Build Server – automate team project build, analysis, testing </li></ul></ul><ul><ul><li>Reporting – central data warehouse for real-time project metrics and analytics </li></ul></ul>
    41. 41. Team Explorer <ul><li>Common integrated client to access: </li></ul><ul><ul><li>Work Items </li></ul></ul><ul><ul><li>Documents </li></ul></ul><ul><ul><li>Reports </li></ul></ul><ul><ul><li>Team Builds </li></ul></ul><ul><ul><li>Source Code Control </li></ul></ul><ul><li>Single team view of all project artifacts </li></ul><ul><li>Fully integrated into Visual Studio 2005 </li></ul><ul><li>Available as stand-alone for business analysts, project managers and other team members </li></ul>
    42. 42. Web Access <ul><li>Browser-based access to </li></ul><ul><ul><li>Project Dashboard </li></ul></ul><ul><ul><li>Documents </li></ul></ul><ul><ul><li>Reports </li></ul></ul><ul><ul><li>Work Item Tracking </li></ul></ul><ul><ul><li>Source Code Control </li></ul></ul><ul><li>Single team view of all project artifacts </li></ul><ul><li>Includes Source Control search capabilities </li></ul><ul><li>ASP.NET 2.0 Solution </li></ul><ul><li>Free Download! </li></ul>
    43. 43. Some Adoption Scenarios <ul><li>Replace Source Control (Replace SourceSafe) </li></ul><ul><li>Need to track bugs, etc. </li></ul><ul><li>Want to have a build server to handle promotion management </li></ul><ul><li>Need to work towards audit requirements </li></ul><ul><li>Support for distributed teams </li></ul>
    44. 44. Compliance and Audit <ul><li>TFS supports this easily: </li></ul><ul><ul><li>Process Guidance details how you work </li></ul></ul><ul><ul><li>Work Items provide a granular audit trail </li></ul></ul><ul><ul><li>Reports used to supplement this </li></ul></ul><ul><li>TFS does all (or most of) the work for you. </li></ul>
    45. 45. Compliance And Auditing Capturing evidence does not have to be a manual process, ...
    46. 46. Compliance And Auditing … because there is a complete audit trail on all the tasks, code, and tests.
    47. 47. Integrated Project Portal Customizable SharePoint portal for team collaboration
    48. 48. Business Requirements Business requirements captured and managed to enable end-to-end traceability
    49. 49. Project Planning Full integration into Microsoft Project for a real-time view of work items
    50. 50. Team Explorer Access work items, project documents, reports, builds and source control from one location
    51. 51. Web Access Access work items, project documents, reports, builds and source control any browser!
    52. 52. Work Item Association Associate work items with each check-in to provide traceability from requirements to code
    53. 53. Check-In Policies Policies enforced by tooling reinforce good development practices
    54. 54. Managing Work Items Manage and analyze work items using Microsoft Excel
    55. 55. Database Change Management A new offline Database project allows you to work with your database schema offline while full integration with TFS allows you to manage and version these changes Rename refactoring makes it easy to make changes to your database schema
    56. 56. Build And Deployment Build verification test results as part of the build process Who checked in what?
    57. 57. What Requirements Haven’t Been Tested? Tracks progression of requirements’ states from untested to passed by successive build
    58. 58. How Far Can We Get In The Available Time? Work completed Work planned
    59. 59. Where Do We Need To Shift Resources? Bulge in work in process (i.e. in testing) indicates inadequate resources or inadequate incoming quality
    60. 60. Scope Creep “ Dark matter” emerging during iteration Planned work is squeezed out
    61. 61. How Effective Is Our Team? Test rates (pass, inconclusive, fail) shown in bars Against code coverage, … code churn, … and active bugs
    62. 62. Inadequate Unit Testing Falling code coverage Fewer passing and more inconclusive tests Rising code churn
    63. 63. Integration with Project Server <ul><li>Project Server 2007 VSTS Connector available on CodePlex </li></ul>
    64. 64. Workspaces <ul><li>Workspaces provide Isolated areas </li></ul><ul><li>A single PC can have many workspaces </li></ul><ul><li>Workspaces are a powerful tool with branching </li></ul>
    65. 65. Branching <ul><li>Allows parallel development </li></ul><ul><li>But for anything that you don't want to service or patch, labelling is sufficient.  </li></ul><ul><li>For a release that you do want to service or patch, branching is the way to go.  </li></ul><ul><li>Using merging, you can move changes between branches. </li></ul>
    66. 66. Branching
    67. 67. Using the TFS API <ul><li>Team Explorer installs all the DLLs are in the GAC, but doesn’t registered them for Visual Studio </li></ul><ul><li>Can write own desktop clients to do anything you can in Team Explorer or the command line </li></ul>
    68. 68. Other Cool Tools <ul><li>SVNBridge – Allows SubVersion client to access TFS </li></ul><ul><li>Conchango’s Scrum Project Guidance Pack </li></ul><ul><li>Personify Design’s TeamLook Outlook Addin </li></ul><ul><li>Microsoft Israel’s Team System Outlook Addin </li></ul><ul><li>TeamPrise Client Suite – TFS access from Macs, Linux and Eclipse IDE </li></ul><ul><li>NB all clients still need a Team Explorer </li></ul>
    69. 69. TFS & VSS Differences <ul><li>Architecture </li></ul><ul><ul><li>TFS: client/server, VSS: client-side </li></ul></ul><ul><li>Security </li></ul><ul><ul><li>Windows/AD vs. VSS based security </li></ul></ul><ul><li>Reliability </li></ul><ul><ul><li>VSS database integrity can be compromised </li></ul></ul><ul><ul><li>TFS uses SQL Server </li></ul></ul><ul><li>Scalability </li></ul><ul><ul><li>TFS can support up to 2000 user per instance and data size is limited only by physical media & SQL Server limits ( in the terabytes) </li></ul></ul>
    70. 70. TFS & VSS Differences <ul><li>TFS does NOT perform a “get latest” on checkout </li></ul><ul><ul><li>“ get latest” and “check out” are 2 separate ops </li></ul></ul><ul><ul><li>“ get latest” is explicit in TFS, controlled by the user </li></ul></ul><ul><ul><li>Provides a consistent snapshot of code </li></ul></ul><ul><li>TFS does NOT add a file until checked in </li></ul>
    71. 71. Migration from VSS to TFS <ul><li>VSSConverter migration tool </li></ul><ul><li>Imports VSS repository into TFS </li></ul><ul><li>Command line interface </li></ul><ul><li>Can migrate most VSS repositories easily </li></ul><ul><ul><li>VSS Shared files are copied </li></ul></ul><ul><ul><li>VSS Pinned items are labeled as “PINNED” in TFS </li></ul></ul>
    72. 72. Visual Studio 2008 Administration <ul><li>Share Point 2007 support </li></ul><ul><li>Enable use of a separate Share Point farm. </li></ul><ul><li>Support for SQL Named Instances </li></ul><ul><li>“ Longhorn” server support </li></ul><ul><li>Sync Large Groups (~30,000 or more) </li></ul><ul><li>Installation on a domain controller </li></ul><ul><li>Non-default ports & web sites </li></ul><ul><li>Simplify installation </li></ul><ul><li>Upgrade from TFS 2005 </li></ul>
    73. 73. Visual Studio 2008 Version Control <ul><li>Add support for checkin policy overrides to the warehouse (an oversight from V1). </li></ul><ul><li>Annotate & Folder Diff </li></ul><ul><li>Destroy </li></ul><ul><li>Get Latest On Checkout </li></ul><ul><li>Workspace improvements </li></ul><ul><li>Performance & Scale improvements </li></ul><ul><li>Migration toolkit between TFS and other systems </li></ul>
    74. 74. Visual Studio 2008 Build <ul><li>Support multi-threaded builds with the new MSBuild. </li></ul><ul><li>Continuous Integration </li></ul><ul><li>Improved ability to specify what source, versions of source, and other build properties. </li></ul><ul><li>Improved ability to manage multiple build machines. </li></ul><ul><li>Stop and delete builds from within VS. </li></ul><ul><li>Simplified ability to specify what tests get run as part of a build. </li></ul><ul><li>The ability to store build definitions anywhere in the version control hierarchy </li></ul>
    75. 75. WPF
    76. 76. Why WPF? <ul><li>Windows Presentation Foundation, part of WinFx, is a completely new presentation framework replacing User, GDI, GDI+, Win32 </li></ul><ul><li>Competes with HTML, Macromedia Flash, SVG </li></ul><ul><li>Give developers the tools to make Office quality applications, but also Flash like websites. </li></ul>
    77. 77. Hello World <ul><li>C# example </li></ul>using System; using System.Windows; namespace AvalonExample { class MyApp { [STAThread] static void Main(){ MessageBox.Show(“Hello World!”); } } }
    78. 78. Hello World <ul><li>XAML example </li></ul><Page xmlns=&quot;http://schemas.microsoft.com/winfx/avalon/2005&quot; xmlns:x=&quot;http://schemas.microsoft.com/winfx/xaml/2005&quot;> <TextBlock>Hello World!</TextBlock> </Page>
    79. 79. What Is XAML <ul><li>XAML = eXtensible Application Markup Language </li></ul><ul><li>XAML provides a declarative programming model that allows various objects to be defined: </li></ul><ul><ul><li>Layout controls </li></ul></ul><ul><ul><li>User input Controls </li></ul></ul><ul><ul><li>Shapes (lines, rectangles, ellipses, plus more) </li></ul></ul><ul><ul><li>Media (audio or video files) </li></ul></ul><ul><ul><li>Animations and transformations </li></ul></ul><ul><li>Silverlight supports a subset of the original XAML schema created for WPF applications </li></ul>
    80. 80. Application Object <ul><li>Application object acts as container for more complex applications </li></ul><ul><ul><li>MainWindow </li></ul></ul><ul><ul><li>Application events like </li></ul></ul><ul><ul><ul><li>Startup & Shutdown </li></ul></ul></ul>
    81. 81. Application Object public class MyApp : Application { [STAThread] static void Main(string[] args) { MyApp app = new MyApp(); app.Startup += app.OnApplicationStartup; app.Run(args); } void OnApplicationStartup(object sender, StartupEventArgs e) { Window w = new Window(); w.Title = &quot;Mark says: Hello World!&quot;; w.Show(); } }
    82. 82. Content Model <ul><li>WPF offers strong separation of behaviour (API) and presentation </li></ul><ul><li>Behaviour (API) consists of </li></ul><ul><ul><li>Commands, Properties, Events & Methods </li></ul></ul><ul><li>Presentation of controls is controlled by </li></ul><ul><ul><li>Nested content </li></ul></ul><ul><ul><li>Templates </li></ul></ul>
    83. 83. StackPanel example <Window x:Class=&quot;Demo4.Content.Window1&quot; xmlns=&quot;http://schemas.microsoft.com/winfx/avalon/2005&quot; xmlns:x=&quot;http://schemas.microsoft.com/winfx/xaml/2005&quot; Title=&quot;Demo4.Content&quot;> <StackPanel Orientation=“Vertical&quot;> <Button Name=&quot;button1&quot;>Just text</Button> <Button Name=&quot;button2&quot;> <Image Source=&quot;banner.jpg&quot; Name=&quot;image1&quot; Width=&quot;100&quot;/> </Button> <Button Name=&quot;button3&quot;> <StackPanel Orientation=&quot;Vertical&quot;> <TextBlock>Just text<LineBreak/>The next line</TextBlock> <Image Source=&quot;banner.jpg&quot; Name=&quot;image1&quot; Width=&quot;100&quot;/> </StackPanel> </Button> </StackPanel> </Window>
    84. 84. Grid example <Window x:Class=&quot;Demo4.Content.Window1&quot; xmlns=&quot;http://schemas.microsoft.com/winfx/avalon/2005&quot; xmlns:x=&quot;http://schemas.microsoft.com/winfx/xaml/2005&quot; Title=&quot;Demo4.Content&quot;> <Grid ShowGridLines=&quot;True&quot;> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <TextBlock Grid.Column=&quot;0&quot; Grid.Row=&quot;0&quot;>Top left</TextBlock> <TextBlock Grid.Column=&quot;1&quot; Grid.Row=&quot;1&quot;>Middle</TextBlock> <TextBlock Grid.Column=&quot;2&quot; Grid.Row=&quot;2&quot;>LRight</TextBlock> </Grid> </Window>
    85. 85. Eventhandling <ul><li>Most significant feature is ‘Event Bubbling’ called ‘EventRouting’ </li></ul><ul><ul><li>RoutedEventArgs </li></ul></ul><ul><li>e.Handled = true; </li></ul>void innerButton_Click(object sender, RoutedEventArgs e) { MessageBox.Show(&quot;Hello SDN!&quot;); e.Handled = true; }
    86. 86. Databinding example <StackPanel Name=&quot;pnlMain&quot;> <TextBlock>Name: </TextBlock> <TextBox Name=&quot;txtName&quot; Text=&quot;{Binding Path=Name}“/> <TextBlock>City:</TextBlock> <TextBox Name=&quot;txtCity&quot; Text=&quot;{Binding Path=City}“/> <StackPanel Orientation=&quot;Horizontal&quot;> <Button Name=&quot;btnPrevious“ Click=&quot;btnPrevious_Click&quot;>&lt;</Button> <Button Name=&quot;btnNext“ Click=&quot;btnNext_Click&quot;>&gt;</Button> </StackPanel> <ListBox Name=&quot;lstCustomers“ IsSynchronizedWithCurrentItem=&quot;True“ ItemsSource=&quot;{Binding}&quot;/> </StackPanel>
    87. 87. Silverlight2
    88. 88. Introduction <ul><li>What is Silverlight? </li></ul><ul><ul><li>Browser control capable of displaying objects, shapes controls and media </li></ul></ul><ul><ul><li>Handles animations and transformations of objects </li></ul></ul><ul><ul><li>Works with IE, FireFox and Safari </li></ul></ul><ul><ul><li>Works on Windows or Macs </li></ul></ul><ul><ul><li>Applications written using C#, VB.NET, JavaScript or other languages </li></ul></ul><ul><ul><li>Support for VC-1 (HD), WMV, MP3 and WMA </li></ul></ul>
    89. 89. Silverlight2 Features <ul><li>Built-in subset of the CLR </li></ul><ul><li>Support for multiple languages including C# and VB.NET </li></ul><ul><li>Support for LINQ </li></ul><ul><li>30+ built-in controls </li></ul><ul><li>Access distributed services (WCF, SOAP, sockets, more) </li></ul><ul><li>Custom styles </li></ul><ul><li>Custom control templates </li></ul><ul><li>Data binding support </li></ul><ul><li>Multiple layout control options </li></ul><ul><li>Color, gradient and image brushes </li></ul><ul><li>More… </li></ul>
    90. 90. Uses
    91. 91. Calendar <UserControl xmlns:my=&quot;clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls &quot; x:Class=&quot;UserInputControls.Page&quot; xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/ presentation&quot; xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot; … <my:Calendar x:Name=&quot;cal&quot; IsTodayHighlighted=&quot;True&quot; HorizontalAlignment=&quot;Left&quot; /> … </UserControl>
    92. 92. WCF
    93. 93. Windows Communication Foundation <ul><li>Unified framework for rapidly building service-oriented applications </li></ul>
    94. 94. WCF Design Goals <ul><li>“ The unified programming model for rapidly building service-oriented applications on the Windows platform” </li></ul><ul><li>Unification </li></ul><ul><ul><li>Unifies today’s distributed technology stacks </li></ul></ul><ul><ul><li>Composable functionality </li></ul></ul><ul><ul><li>Appropriate for use on-machine, in the intranet, and cross the Internet </li></ul></ul><ul><li>Service-Oriented Programming </li></ul><ul><ul><li>Service-oriented programming model </li></ul></ul><ul><ul><li>Maximized developer productivity </li></ul></ul><ul><li>Interoperability </li></ul><ul><ul><li>WS-* interoperability with applications running on other platforms </li></ul></ul><ul><ul><li>Interoperability with today’s distributed stacks </li></ul></ul>
    95. 95. Services and Clients Client Service Message Message
    96. 96. Endpoints Client Service Message Endpoint Endpoint Endpoint
    97. 97. WCF Architecture
    98. 98. Address, Binding, Contract Client Service Message Address Binding Contract (Where) (How) (What) A B C A B C A B C
    99. 99. WCF Architecture: Messaging Runtime Client Dispatcher Service Contract and Behaviors Binding Address Transport Encoder Protocol(s) Transport Encoder Protocol(s)
    100. 100. Service Model Layer Influences system operation based on incoming and outgoing messages. Effects of behaviors are local. Messaging Layer Moves messages back and forth and adds transfer semantics. Channels are symmetric. Service Code WCF Architecture: Composition & Behaviors Message Inspector Formatter Behavior Instancing Behavior Security Channel TCP Transport Security Channel TCP Transport Transaction Behavior Formatter Behavior
    101. 101. Three Types of Contracts <ul><li>Service Contract </li></ul><ul><ul><li>Defines Operations, Behaviors and Communication Shape </li></ul></ul><ul><li>Data Contract </li></ul><ul><ul><li>Defines Schema and Versioning Strategies </li></ul></ul><ul><li>Message Contract </li></ul><ul><ul><li>Allows defining application-specific headers and unwrapped body content </li></ul></ul>
    102. 102. Ways to Talk <ul><li>One Way: </li></ul><ul><ul><li>Datagram-style delivery </li></ul></ul><ul><li>Request-Reply </li></ul><ul><ul><li>Immediate Reply on same logical thread </li></ul></ul><ul><li>Duplex </li></ul><ul><ul><li>Reply “later” and on backchannel (callback-style) </li></ul></ul>Client Service One Way Request-Reply Duplex (Dual)
    103. 103. Bindings & Binding Elements Transport IPC MSMQ Custom TCP HTTP Protocol Encoders .NET TX Custom Security Reliability Binding HTTP TX Security Reliability Text Text Binary Custom
    104. 104. Standard Bindings N = None | T = Transport | M = Message | B = Both | RS = Reliable Sessions Binding Interop Security Session TX Duplex BasicHttpBinding BP 1.1 N, T N N n/a WSHttpBinding WS M , T, X N , T, RS N , Yes n/a WSDualHttpBinding WS M RS N , Yes Yes WSFederationBinding Federation M N , RS N , Yes No NetTcpBinding .NET T , M T ,RS N , Yes Yes NetNamedPipeBinding .NET T T , N N , Yes Yes NetPeerTcpBinding Peer T N N Yes NetMsmqBinding .NET T , M, X N N , Yes No MsmqIntegrationBinding MSMQ T N N , Yes n/a
    105. 105. Bindings & Behaviors: Security Service Client Be Be Bindings Insert Claims in Messages Behaviors Implement Security Gates C B A C B A A B C C B A
    106. 106. Security <ul><li>Claims based end-to-end security </li></ul><ul><ul><li>Secure end-to-end message exchanges </li></ul></ul><ul><ul><li>Secure access to resources </li></ul></ul><ul><ul><li>Record resource access requests </li></ul></ul><ul><li>X509, Username/Password, Kerberos, SAML, custom credentials </li></ul><ul><li>Message security </li></ul><ul><ul><li>Confidentiality and integrity </li></ul></ul><ul><ul><li>Transport or message level </li></ul></ul><ul><li>Access to resources </li></ul><ul><ul><li>Authentication and authorization </li></ul></ul>
    107. 107. Bindings & Behaviors: Transactions Service Client Be Be Bindings Flow Transactions Behaviors AutoEnlist and AutoComplete C B A C B A A B C C B A
    108. 108. Bindings & Behaviors: Reliable Sessions Service Client Bindings provide Session and Guarantees C B A C B A A B C C B A
    109. 109. Reliability and Transactions <ul><li>End-to-end Reliable messaging </li></ul><ul><ul><li>In-order guarantees </li></ul></ul><ul><ul><li>Exactly once guarantees </li></ul></ul><ul><li>Transport-Independent Sessions </li></ul><ul><ul><li>Integration with ASP.NET Sessions in IIS-Hosted compatibility mode </li></ul></ul><ul><li>Transactions </li></ul><ul><ul><li>Guaranteed atomic success or failure across services </li></ul></ul>

    ×