370 likes | 605 Views
Visual Studio “Orcas” & .NET Framework v3.5. Mike Taulty, Daniel Moth Developer & Platform Group Microsoft Ltd Mike.Taulty@microsoft.com Daniel.Moth@microsoft.com http://www.mtaulty.com , http://www.danielmoth.com/Blog. .NET Through the Ages. “Green Bits” and “Red Bits”. v3.0. v2.0 RTM.
E N D
Visual Studio “Orcas” & .NET Framework v3.5 Mike Taulty, Daniel Moth Developer & Platform Group Microsoft Ltd Mike.Taulty@microsoft.com Daniel.Moth@microsoft.com http://www.mtaulty.com, http://www.danielmoth.com/Blog
“Green Bits” and “Red Bits” v3.0 v2.0 RTM v3.5.xxxx.xx v2.0. 50727.42 v2.0. 50727.42 v3.0.xx Vista RTM v2.0. 50727.xx v3.0 v3.5 Vista Redist v3.5 Redist v2.0. 50727.312
Agenda • Scene Setting • Tour of IDE • Tour of Fx 3.5 • Peer-to-Peer • ADO.NET Sync Services • Fx 3.0 in “Orcas” • LINQ(to objects) • Office Development • Mobility • LINQ to SQL • LINQ to XML • AddIn Model
Tour of the IDE • Not as big as VS.NET 2003 -> VS2005 • Designed to run great on Windows Vista • Comprehensive OOB experience • Today • VS2005 + SP1 + SP1Update + VSTO2005SE + WF Extensions + WPF/WCF Extensions etc • With “Orcas” you get it all plus more • Multitargeting • Aesthetic and usability improvements
.NET Framework 3.5 – part 1 of 3 • Green bits (new assemblies) • System.DirectoryServices.AccountManagement.dll • A managed API for users, groups, etc. • Based on SDS/ADSI under the hood • Works with ADAM as well as AD • System.Management.Instrumentation.dll • WMI.NET Provider Extension 2.0 • Improved scalability for large collections of WMI entities • System.Web.Extensions.dll
.NET Framework 3.5 – part 2 of 3 See all these topics later in this session • System.Net.dll • System.WorkflowServices.dll • System.ServiceModel.Web.dll • System.Data.Linq.dll • System.Xml.Linq.dll • System.AddIn.dll, System.AddIn.Contract.dll
.NET Framework 3.5 – part 3 of 3 • System.Core.dll • 17 namespaces! • 11 with less than 6 types • Remember the red bits vs green bits? • Almost all of System.Core.dll could have been in mscorlib.dll • No single focus • Threading, Security, TimeZone, Diagnostics, Collections, WMI, LINQ, Pipes
System.Core.dll (part 1 of 7) • System.Diagnostics. • EventSchemaTraceListener • High Performance, Logs XML to disk. • Disk logging options e.g. circular logging across files • Eventing.EventProviderTraceListener • Logs to ETW • Thread-safe • Most performant • Eventing.Reader.* • PerfomanceData.* • Vista-only: wraps Perf* APIs in advapi32.dll
System.Core.dll (part 2 of 7) • System.Security.Cryptography • Suite B support: AES • FIPS-certified implementations of SHA and AES • Elliptic Curve Diffie Hellman and Elliptic Curve Digital Signature Algorithm • Built on CNG in Vista
System.Core.dll (part 3 of 7) • System.Security.Cryptography • Hash Algorithms
System.Core.dll (part 4 of 7) • System.Security.Cryptography • Symmetric Algorithms • Asymmetric Algorithms
System.Core.dll (part 5 of 7) • System.Collections.Generic.HashSet • Unordered collection of unique items • Union, intersection and symmetric difference • System.TimeZoneInfo • Replaces System.TimeZone • Convert DateTime from one time TZ to another • Create your own TimeZone • On Vista, takes advantage of Dynamic Time Zone
System.Core.dll (part 6 of 7) • System.Threading.ReaderWriterLockSlim • Perf-critical, scalable ReadWriterLock • Deadlock-free upgradable read support • System.IO.Pipes.* • Wrapper for Win32 API • Named and anonymous • Synchronous and async
System.Core.dll (part 7 of 7) • LINQ • System.Linq.* • System.Runtime.CompilerServices.* we’ll see this later in this session
Peer To Peer Technology Peer to Peer • Peer Name Resolution Protocol • Name registration • Name resolution • No DNS Server Involved • Peer Collaboration API • Register applications • Discover Peers • Invite them to apps • More to come? PNRP V1 supported from Windows XP Service Pack 1 onwards V2 supported in Vista (not compatible with V1 ) ( Collaboration - Windows Vista feature) ( All reliant on IPV6 ) P2P Mesh
ADO.NET Synchronisation Services • Synchronisation Framework • Online/Offline Applications • 2-tier, N-tier architectures • Client Database • SQL Server Compact Edition • Server Database • Any OLEDB compliant store • “Service” Based Approach Server DB Client DB
ADO.NET Synchronisation Services Server DB Sync Agent Transport Client Sync Provider Server Sync Provider Proxy Service Sync Adapters Sync Table Sync Group Client DB
Workflow & Communication Foundation(s) • Workflow • WCF Send/Receive • WorkflowServiceHost • Rules • Communication Foundation • HTTP without SOAP • XML or JSON serialisation • RSS + ATOM Support • Partial Trust Support
Where we’ve Been, Where we’re Going • Scene Setting • Tour of IDE • Tour of Fx 3.5 • Peer-to-Peer • ADO.NET Sync Services • Fx 3.0 in “Orcas” • LINQ(to objects) • Office Development • Mobility • LINQ to SQL • LINQ to XML • AddIn Model
Language Design Goals • Simplify querying data • Integrate query and transform operations • Unify query of data • object, relational, and XML • And • Don’t tie language to specific APIs • Remain 100% backwards compatible
Language Innovations Query expressions var contacts = from c in customers where c.City== "Hove" select new { c.Name, c.Phone }; Local variable type inference Lambda expressions var contacts = customers .Where(c => c.City== "Hove") .Select(c => new { c.Name, c.Phone }); Extension methods Object initializers Anonymous types
Office 2007 Development • 2003 & 2007 Support • 2007 Customisations • Document Level • Application Level • Office Ribbon Designer • Outlook Form Region Designer • Custom Action Panes • ClickOnce Deployment? ( maybe? )
Mobility in “Orcas” timeframe • mini AGENDA • Visual Studio for Devices • .NET Compact Framework 3.5 • Device Emulator v3 • Windows Mobile 6
.NET Compact Framework v3.5 • Distributed, occasionally-connected applications • Support new language features • New and improved diagnostic tools • Customer feature requests • Maintain performance, size and compatibility
Device Emulator v2 • Faster Performance and Bug fixes • Windows Vista support • Tablet PC support • Skins • Updated Config UI • Automatic funckey detection • Networking
Device Emulator v3 • Device Emulator Manager interface fully automated • Enumerate all installed device emulators images • Programmatically connect and cradle emulators • Fully automated COM interface – IDEMVirtualMachineManager • Access to interfaces via VBScript • XML config file to configure emulator instances • Easily-customizable alternative to DE command line • New .decfg file format • Save emulator settings under “My Device Emulators” • Read and reconfigure emulator settings at run time via code • DEM UI changes to mirror automation interfaces
Windows Mobile 6Development Platform • .NET Compact Framework v2 in ROM • SQL Server Compact Edition in ROM • Compatibility with Windows Mobile 5.0 • Support for Basic AJAX Applications • New native APIs • New Windows Mobile 6 SDK
LINQ to SQL (System.Data.Linq) LINQ Pattern fromitemNameinsrcExpr join itemNameinsrcExpronkeyExprequalskeyExpr (intoitemName)? letitemName= selExpr wherepredExpr orderby(keyExpr(ascending| descending)?)* selectselExpr group selExprbykeyExpr intoitemName query-body Object Relational Mapping API Code Gen Tools
LINQ to XML(System.Xml.Linq) LINQ Pattern fromitemNameinsrcExpr join itemNameinsrcExpronkeyExprequalskeyExpr (intoitemName)? letitemName= selExpr wherepredExpr orderby(keyExpr(ascending| descending)?)* selectselExpr group selExprbykeyExpr intoitemName query-body New XML API
System.AddIn, System.AddIn.Contract • Host provides service to addin or vice versa • Discovery is attribute-based with smart caching • Reflection only loading from pre-specified directory • find and activate add-ins in 3 lines of code • AddIns can be • activated in separate AppDomain or process • sanboxed and isolated • Previous versions can continue to work with new hosts!
Summary Codename “Orcas” • Visual Studio “Orcas” • Great for Windows Vista Development • Great for Office 2007 Development • Great for LINQ & .NET Framework v3.5 • Great for Web Development • Pretty Spiffy for .NET 2.0 projects too! • Multitargeting (and no new CLR) • Use the new C#3 and VB9 language features