1.NET Framework Overview: A Road Map Brad Framework Team Microsoft Corporation BradA@microsoft.com...

Click here to load reader

  • date post

    03-Jan-2016
  • Category

    Documents

  • view

    215
  • download

    3

Embed Size (px)

Transcript of 1.NET Framework Overview: A Road Map Brad Framework Team Microsoft Corporation BradA@microsoft.com...

  • .NET Framework Overview: A Road MapBrad Abrams.NET Framework Team Microsoft Corporation BradA@microsoft.com ARC 200Jeffrey Richter Co-founder Wintellect

  • ToolsClient Application ModelAvalonWindows FormsWeb & Service Application ModelASP.NET / IndigoWin FSCompact FrameworkYukonMobile PC OptimizedSystem.HelpSystem.DrawingSystem.NaturalLanguageServicesData Systems Application ModelPresentationDataMobile PC & Devices Application ModelCommunicationCommand LineNT ServiceDataSetMappingObjectSpacesObjectSpaceQuerySchemaItemRelationshipMediaAudioVideoImagesSystem.MessagingSystem. DiscoverySystem.DirectoryServicesSystem.RemotingSystem.Runtime.RemotingActive DirectoryUddiSystem.Web.ServicesWeb.ServiceDescriptionDiscoveryProtocolsSystem.MessageBusTransportPortChannelServiceQueuePubSubRouterSystem.TimersSystem.GlobalizationSystem.SerializationSystem.ThreadingSystem.TextSystem.DesignBase & Application ServicesFundamentalsSystem.ComponentModelSystem.CodeDomSystem.ReflectionSystem.EnterpriseServicesSystem.TransactionsSecuritySystem.Windows. TrustManagementSystem.Web. SecuritySystem.Message Bus.SecurityAuthorizationAccessControlCredentialsCryptographySystem.Web.ConfigurationSystem.MessageBus.ConfigurationSystem.ConfigurationSystem.ResourcesSystem.ManagementSystem.DeploymentSystem.DiagnosticsConfigurationDeployment/ManagementSystem.WindowsSystem.WindowsSystem.Windows.FormsSystem.ConsoleSystem.ServiceProcessSystem.Windows.FormsSystem.WebSystem.StorageSystem.Data.SqlServerAnimationControlsControlDesignPanelControlsDialogsSideBarNotificationSystem.WindowsDocumentsText ElementShapesShapeInkUI ElementExplorerMediaSystem.Windows.FormsFormsControlPrint DialogDesignSystem.Web.UIPageControlHtmlControlsMobileControlsWebControlsAdaptorsDesignPortsInteropServicesSystem.RuntimeSystem.IOSystem.CollectionsGenericSystem.SearchAnnotationsMonitoringLoggingRelevanceSystem.DataSqlClientSqlTypesSqlXMLOdbcClientOleDbClientOracleClientCoreContactLocationMessageDocumentEventSystem.StorageSystem.WebPersonalizationCachingSessionStateSystem.XmlSchemaSerializationXpathQueryPermissionsPolicyPrincipalTokenSystem.SecuritySystem.CollaborationRealTimeEndpointTransientDataSessionSignalingSessionMediaActivitiesHttpWebRequestFtpWebListenerSslClientStreamWebClientSystem.NetNetworkInformationSocketsCacheSystem.WebAdministrationManagementNavigationPeer GroupPolicySerializationCompilerServicesRecognitionSystem.SpeechSynthesis

  • AgendaThe .NET Framework TodayInnovations in WhidbeyIn the BaseOn the Data TierYukonData Access APIsOn the Web TierASP.NETWeb ServicesOn the Client TierOn DevicesPath to the Future

  • The .NET FrameworkA Once in a Decade ChangePDC 2000 Paradigm ShiftWeb servicesManaged Code198019902000RichnessWin16Win32COMMFCComponentsServicesAPIs

  • Landmarks To DateRunning in over 60% of Fortune 100More than 70M systems with .NET FrameworkStrong developer ecosystemISO standardization

  • ToolsClient Application ModelWindows FormsWeb & Service Application ModelASP.NET Compact FrameworkYukonData Systems Application ModelPresentationMobile PC & Devices Application ModelCommunicationCommand LineNT ServiceSystem.MessagingSystem.DirectoryServicesSystem.Runtime.RemotingSystem.Windows.FormsSystem.ConsoleSystem.ServiceProcessSystem.Windows.FormsSystem.WebSystem.Data.SqlServerHttpWebRequestFtpWebListenerSslClientStreamWebClientSystem.NetNetworkInformationSocketsCacheSystem.Windows.FormsFormsControlPrint DialogDesignSystem.Web.UIPageControlHtmlControlsMobileControlsWebControlsAdaptorsDesignSystem.DrawingSystem.Web.ServicesWeb.ServiceDescriptionDiscoveryProtocolsSystem.TimersSystem.GlobalizationSystem.SerializationSystem.ThreadingSystem.TextSystem.DesignSerializationCompilerServicesBase & Application ServicesFundamentalsSystem.ComponentModelSystem.CodeDomSystem.ReflectionSystem.EnterpriseServicesSystem.TransactionsSecuritySystem.Web. SecurityAccessControlCredentialsCryptographySystem.Web.ConfigurationSystem.ConfigurationSystem.ResourcesSystem.ManagementSystem.DeploymentSystem.DiagnosticsConfigurationDeployment/ManagementPortsInteropServicesSystem.RuntimeSystem.IOSystem.CollectionsGenericPermissionsPolicyPrincipalTokenSystem.SecuritySystem.WebAdministrationManagement.NET Framework WhidbeyDataSystem.WebPersonalizationCachingSessionStateSystem.XmlSchemaSerializationXpathQueryDataSetMappingObjectSpacesObjectSpaceQuerySchemaSystem.DataSqlClientSqlTypesSqlXMLOdbcClientOleDbClientOracleClient

  • Trustworthy CommitmentMicrosoft Cultural ShiftThousands of hours spent in security reviews on .NET Framework to dateFoundstone, @Stake security reviewsHardening the .NET FrameworkMaking Security Easier for CustomersPrescriptive Architectural GuidanceFeature changes in .NET FrameworkSECSYM: Security SymposiumARC340: CLR Under the Covers: .Net Framework Application Security

  • Base Innovations64-bit SupportPerformanceEdit and ContinueBase Library EnhancementsGenericsARC280: .NET Framework: Exploring What's New in the Base Class Library for "WhidbeyARC413: CLR Under the Covers: "Whidbey" CLR InternalsARCL01: CLR: Tips and Tricks for Faster Managed Code: How To and What's New

  • Genericspublic class List{ private object[] elements; private int count;

    public void Add(object element) { if (count == elements.Length) Resize(count * 2); elements[count++] = element; }

    public object this[int index] { get { return elements[index]; } set { elements[index] = value; } }

    public int Count { get { return count; } }}

    public class List{ private T[] elements; private int count;

    public void Add(T element) { if (count == elements.Length) Resize(count * 2); elements[count++] = element; }

    public T this[int index] { get { return elements[index]; } set { elements[index] = value; } }

    public int Count { get { return count; } }}

    List intList = new List();

    intList.Add(1);intList.Add(2);intList.Add("Three");

    int i = (int)intList[0];List intList = new List();

    intList.Add(1); // Argument is boxedintList.Add(2); // Argument is boxedintList.Add("Three"); // Should be an error

    int i = (int)intList[0]; // Cast requiredList intList = new List();

    intList.Add(1); // No boxingintList.Add(2); // No boxingintList.Add("Three"); // Compile-time error

    int i = intList[0]; // No cast requiredBefore Generics

  • Generics In VBPublic Class List(Of T) Private elements() As T Private elementcount As Integer Public Sub Add(ByVal element As T) If elementcount = elements.Length Then Resize(elementcount * 2) elements(elementcount) = element count += 1 End Sub Public Default Property Item(ByVal index As Integer) As T Get Return elements(index) End Get Set (ByVal Value As T) elements(index) = Value End Set End PropertyDim intList As New List(Of Integer) intList.Add(1) // No boxing intList.Add(2) // No boxing intList.Add("Three") // Compile-time error Dim i As Integer = intList(0) // No cast required

  • Generics In C++genericpublic ref class List { array^ elements; int count;public: void Add(T element) { if (count == elements->Length) Resize(count * 2); elements[count++] = element; } property T default [int index] { T get() { return elements[index]; } void set(T value) { elements[index] = value; } } property int Count { int get() { return count; } }};

    List^ intList = gcnew List();intList->Add(1); // No boxingintList->Add(2); // No boxingintList->Add("Three"); // Compile-time errorint i = intList[0]; // No cast required

  • Generics In Eiffelclass LIST [G] creation make feature {NONE} elements: ARRAY [G] count: INTEGER

    invariant elements_not_void: elements /= Void

    feature add (v: G) is do if count = elements.count then elements.grow (count * 2) end elements.put (v, count) count := count + 1 end

    feature i_th (i: INTEGER): G is require valid_index: valid_index (i) do Result := elements.item (i) end

    feature put_i_th (v: G; i: INTEGER) is require valid_index: valid_index (i)do elements.put (v, i) end

    feature valid_index (i: INTEGER): BOOLEAN is do Result := (0

  • Innovations In Data AccessADO.NETNo Model ChangesAdvanced FeaturesPerformanceSystem.XmlPerformanceXQueryObjectSpacesBuilds on ADO.NETDomain objects: Customer, Order, AddressARC403 Programming ADO.NET in "WhidbeyDAT410 .NET Framework: Developing Applications Using the New Object-RelationalARC380 .NET Framework: What's New in System.Xml for "Whidbey"

  • ADO.NET And ObjectSpacesstring query = "SELECT * FROM T_CUSTOMERS WHERE C_CITY=Seattle";SqlCommand cmd = new SqlCommand(query, new SqlConnection(cnString));cn.Open();SqlDataReader r = cmd.ExecuteReader(); while (r.Read()) { Console.WriteLine(r.GetString(1));} r.Close(); DAT410: .NET Framework: Developing Applications Using the New Object-Relational Tech..

  • Innovations In Data Access:SQL Server YukonExtend SQLs type system, stored procs, functions, triggers in managed code Leverage broad developer ecosystem Wide choice of languages Visual Basic, C#, MC++, COBOL, and T-SQL Leverages much of the .NET Framework BCL, network access, Web services Enable third parties to write libraries to extend the DB DAT300: Overview: What's New for Developers in SQL Server "Yukon

  • Innovations On The WebASP.NET WhidbeyReduce plumbing code by 70%Building BlocksPage Framework40+ New ASP.NET controlsWSV200: ASP.NET: Overview of ASP.NET "Whidbey"

  • Yukon And ASP.NET V2: Book Reviews Part 1

  • ASP.NET Whidbey Developer StackMembershipRole ManagerPersonalizationSite NavigationSite CountersManagement

  • ASP.NET Whidbey Developer StackMembershipWindowsSQL ServerCu