Новости в.NET CLR 2.0 Светлин Наков Българска асоциация на разработчиците на софтуер.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
FIRST LOOK AT “ORCAS” Scott Guthrie General Manager.NET Developer Platform.
.Net Framework Joel Pereira
Advantage Data Dictionary. agenda Creating and Managing Data Dictionaries –Tables, Indexes, Fields, and Triggers –Defining Referential Integrity –Defining.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Web Platform Introduction With a focus on “free” Mike Taulty Developer & Platform Group Microsoft Ltd
64bit Development Overview March 28 Microsoft. Objectives Learn about the current 64-bit platforms from a hardware, software and tools perspective Review.
Thursday Evening 6.30VB.NET Introduction 7.30Break for food 8.00VB.NET Migration 8.45Q & A 9.00Done.
Visual Studio 2008 and ASP.NET 3.5 Mike Ormond Developer & Platform Group Microsoft Ltd
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
NameTitle Microsoft Corporation. For businesses with Visual Basic 6.0 assets, Visual Basic 2008 is the natural, most productive choice for Windows, Web,
IIS 7: The Next Generation Web Application Server Platform Michael Volodarsky Program Manager Web Platform and Tools Team Microsoft Corporation.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
Virtual techdays INDIA │ august 2010 Building ASP.NET applications using SQL Server Compact Chaitanya Solapurkar │ Partner Technical Consultant,
Platforms and tools for Web Services and Mobile Applications Introduction to C# Bent Thomsen Aalborg University 3rd and 4th of June 2004.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
Oracle Developer Tools for Visual Studio.NET Christian Shay Principal Product Manager Oracle Corporation Prerequisites for presentation:
.Net Framework Joel Pereira Software Design Engineer WinFS API Team Microsoft Corporation.
Using.NET Skills To Build Mobile Applications In Compact Framework Punit Shah Technical Lead | Microsoft |
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
1 Chapter One A First Program Using C#. 2 Objectives Learn about programming tasks Learn object-oriented programming concepts Learn about the C# programming.
McGraw-Hill© 2007 The McGraw-Hill Companies, Inc. All rights reserved. 1-1.
A First Program Using C#
1 Introduction to.NET Framework. 2.NETFramework Internet COM+ Orchestration Orchestration Windows.NET Enterprise ServersBuildingBlockServices Visual Studio.NET.
1 Sandcastle Documentation Compilers For Managed Class Libraries common) Enabling managed class library developers throughout the world to easily create.
Eric Vogel Software Developer A.J. Boggs & Company.
Module 1: Introduction to C# Module 2: Variables and Data Types
.NET Overview. 2 Objectives Introduce.NET –overview –languages –libraries –development and execution model Examine simple C# program.
Native Support for Web Services  Native Web services access  Enables cross platform interoperability  Reduces middle-tier dependency (no IIS)  Simplifies.
Microsoft Visual Basic 2005: Reloaded Second Edition
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
Chapter 1: A First Program Using C#. Programming Computer program – A set of instructions that tells a computer what to do – Also called software Software.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Programming in C#. I. Introduction C# (or C-Sharp) is a programming language. C# is used to write software that runs on the.NET Framework. Although C#
DEV339 Best Practices for Debugging Visual Studio.NET Applications Keith Pleas Architect, Guided Design
Rajiv and Shipra Introduction to.NET (asp.net,c#,vb)
Hoang Anh Viet Hà Nội University of Technology Chapter 1. Introduction to C# Programming.
Lesson 2 What is ASP.NET? What is ASP.NET? What is Web Matrix? What is Web Matrix? What are the features of Web Matrix? What are the features of Web Matrix?
What’s New for Web Developers in ASP.NET and Visual Studio 2008 Kate Gregory Microsoft Regional Director
Name Microsoft Student Partner Overview of the Visual Studio 2005 Express Products.
Module 1: Getting Started. Introduction to.NET and the.NET Framework Exploring Visual Studio.NET Creating a Windows Application Project Overview Use Visual.
WEB320 Migrating ASP.NET 1.x Applications to ASP.NET 2.0 Stefan Schackow Program Manager Web Platform and Tools Team Microsoft Corporation.
Windows Role-Based Access Control Longhorn Update
C# 2.0 and Future Directions Anders Hejlsberg Technical Fellow Microsoft Corporation.
DEV303 ASP.NET: Leveraging Visual Studio.NET For Web Projects Tony Goodhew Product Manager Microsoft Corp.
DEV330 Visual Studio.NET IDE Tips and Tricks Billy Hollis Author / consultant.
1 Visual Basic “Whidbey”: Advanced Language and IDE Features Steven Lees, Amanda Silver, Program Managers.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
Web Services Error Handling and Debugging. Agenda Simple SOAP faults Advanced SOAP faults SOAP headers and faults Error handling From a Service Perspective.
Migrating from ASP.NET 1.1 to ASP.NET 2.0 Scott Guthrie Web Platform and Tools Team Microsoft Corporation
1 Visual Basic “Whidbey”: RAD for the Visual Basic Developer Jay Schmelzer and Shamez Rajan Program Manager Microsoft Corporation Jay Schmelzer and Shamez.
CIS 375—Web App Dev II ASP.NET 1 Getting Started.
Microsoft Visual Studio 2005 Tools for the Office System: Building Office Solutions Using Visual Studio 2005 Tools for Office Andrew Coates Developer Evangelist.
Visual Basic 2005: Advanced Language and IDE Features Amanda Silver Program Manager Visual Basic Session Code: DEV343.
DEV394.NET Framework: Migrating To Managed Code Adam Nathan QA Lead Richard Lander Program Manager Microsoft Corporation.
.NET Mobile Application Development XML Web Services.
INTRODUCTION CHAPTER #1 Visual Basic.NET. VB.Net General features It is an object oriented language  In the past VB had objects but focus was not placed.
The 2007 Microsoft Office System Servers Enterprise Content Management, Workflow and Forms Martin Parry Developer and Platform Group, Microsoft Ltd
SQL Server 2005:.NET Framework Programming in the Database Tim Sneath Architectural Engineer, Microsoft
Introduction ITEC 420.
Introducing the Microsoft® .NET Framework
DotNetSpider Editor Hefin Dsouza
Visual Studio Tools for Office 2005
Module 1: Getting Started
Microsoft Connect /1/2018 2:36 AM
Getting Ready for Visual Studio 2005
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Новости в.NET CLR 2.0 Светлин Наков Българска асоциация на разработчиците на софтуер

Developer Roadmap “Orcas” release “Orcas” release Windows “Longhorn” integrationWindows “Longhorn” integration New UI tools and designersNew UI tools and designers Extensive managed interfacesExtensive managed interfaces Visual Studio Orcas “Longhorn” Visual Studio.NET 2003 “Everett Release” “Everett Release” Windows Server 2003 integrationWindows Server 2003 integration Support for.NET Compact Framework and device developmentSupport for.NET Compact Framework and device development Improved performanceImproved performance Visual Studio 2005 “Yukon” “Whidbey” release “Whidbey” release SQL Server integrationSQL Server integration Improved IDE productivity and community supportImproved IDE productivity and community support Extended support for XML Web servicesExtended support for XML Web services Office programmabilityOffice programmability

Agenda Extending the Platform SQL Server Integration Moving to 64 bit Improving the Platform Performance work RAD Debugging Security improvements Innovating in the Platform Generics support BCL Enhancements

SQL Server Integration Design Goal Bring framework programming model into the database tier Allow business logic to easily migrate to the most appropriate tier Enable safe database extensions Result: Stored Procedures, Triggers, data types defined in managed code

VS.NET Project Assembly: geom.dll VB, C#, … Build SQL Server SQL Data Definition: create assembly … create function … create procedure … create trigger … create type … SQL Queries: SELECT name FROM Supplier WHERE Location::Distance ) < 3 CLR hosted by SQL (in-proc) SQL CLR Functionality Define Location.Distance()

Sql Programming Model Splitting a string The old way…. varchar(200) = 'Microsoft Corporation|SQL Server|2003|SQL- CLR| |11:32:00|Document|3.b.3' SELECT + '|', 0 + 1, + '|', 0 + 1) ), + '|', 0 + 1) ), + '|', + '|') + 1, + '|', + '|', + '|') + 1) - + '|') + 1) - + '|') - 1 ), + '|') - 1 ), + '|', + '|', + '|') + 1) + 1, + '|') + 1) + 1, + '|', + '|', + '|', + '|', + '|') + 1) + 1) - + '|') + 1) + 1) - + '|', + '|', + '|') + 1) - 1 ), + '|') + 1) - 1 ),… varchar(200) = 'Microsoft Corporation|SQL Server|2003|SQL-CLR| |11:32:00|Document|3.b.3' SELECT + '|', 0 + 1, + '|', 0 + 1) ), + '|', 0 + 1) ), + '|', + '|') + 1, + '|', + '|', + '|') + 1) - + '|') + 1) - + '|') - 1 ), + '|') - 1 ), + '|', + '|', + '|') + 1) + 1, + '|') + 1) + 1, + '|', + '|', + '|', + '|', + '|') + 1) + 1) - + '|') + 1) + 1) - + '|', + '|', + '|') + 1) - 1 ), + '|') + 1) - 1 ), + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1, + '|') + 1) + 1) + 1, + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) - + '|') + 1) + 1) + 1) - + '|', + '|', + '|', + '|', + '|') + 1) + 1) - 1 ), + '|') + 1) + 1) - 1 ), + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1, + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) + 1) - + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) - 1 ), + '|') + 1) + 1) + 1) - 1 ), + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1) + 1, + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) + 1) + 1) - + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) + 1) - 1 ), + '|') + 1) + 1) + 1) + 1) - 1 ), + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1) + 1) + 1, + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) + 1) + 1) + 1) - + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) + 1) + 1) - 1 ), + '|') + 1) + 1) + 1) + 1) + 1) - 1 ), + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1, + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1) - + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|', + '|') + 1) + 1) + 1) + 1) + 1) + 1) - 1 ) + '|') + 1) + 1) + 1) + 1) + 1) + 1) - 1 )

Sql Programming Model Splitting a string Public Shared Sub SplitString() Dim s As String Dim s As String s = "Microsoft Corporation|SQL Server|2003|SQL-CLR| |11:32:00|Document|3.b.3" s = "Microsoft Corporation|SQL Server|2003|SQL-CLR| |11:32:00|Document|3.b.3" Dim myArray() As String = Split(s, "|") Dim myArray() As String = Split(s, "|") End Sub The new way….

Moving to 64 bit 64 bit for Servers and workstations X64 and IA64 bit support Enable SQL Server 2005 and ASP.NET Verifiable managed binaries just run! Support for WoW64 Enables 32bit apps to run on 64 bit machines 1.0 and 1.1 apps always run in the WoW VS: Runs as a 32bit application You can develop, deploy, and debug 32 and 64bit applications

Performance Objectives: make.NET an even greater programming platform Long-Term: make the performance characteristics of the CLR similar to native code Reduce marginal cost of additional managed processes Reduce startup time and working set NGen Compiles IL code to native code, saving results to disk Advantages: no need to recompile IL to native code, and class layout already set so better startup time VS 2005: Significant reductions in the amount of private, non-shareable working set OS: ‘no-Jit’ plan, all managed code will be NGened

Performance everywhere New, Performant APIs APIs for faster resource lookup Lightweight CodeGen: only generates essential code (contrast to Reflect Emit) Existing APIs Improved Cross AppDomain Remoting Between 1.1 and 200x faster. Biggest gains for simpler items (strings, integers, serializable objects) Delegate invoke performance has more than doubled AppDomain Footprints: significantly reduced UTF8Encoding: translation is 2.5x faster

RAD Debugging Edit and Continue: Edit Code at runtime Allowed Edits: Examples Add private fields to a class Add private non-virtual methods to a class Change a function body, even while stepping Disallowed Edits: Examples Removing fields/methods Edits to generic classes Serialization will not recognize new fields Display Attributes for a better debugging experience

CLR Security New cryptography support PKCS7 support XML encryption support Enhanced support for X509 certificates Enhanced Application Security Permission Calculator Integration with ClickOnce Debug-In-Zone Managed ACL Support

public class List { private object[] elements; private object[] elements; private int count; private int count; public void Add(object element) { public void Add(object element) { if (count == elements.Length) Resize(count * 2); if (count == elements.Length) Resize(count * 2); elements[count++] = element; elements[count++] = element; } public object this[int index] { public object this[int index] { get { return elements[index]; } get { return elements[index]; } set { elements[index] = value; } set { elements[index] = value; } } public int Count { public int Count { get { return count; } get { return count; } }} Generics public class List public class List { private T[] elements; private T[] elements; private int count; private int count; public void Add(T element) { public void Add(T element) { if (count == elements.Length) Resize(count * 2); if (count == elements.Length) Resize(count * 2); elements[count++] = element; elements[count++] = element; } public T this[int index] { public T this[int index] { get { return elements[index]; } get { return elements[index]; } set { elements[index] = value; } set { elements[index] = value; } } public int Count { public int Count { get { return count; } get { return count; } }} List intList = new List(); intList.Add(1);intList.Add(2);intList.Add(“3"); int i = (int)intList[0]; List intList = new List(); intList.Add(1); // Argument is boxed intList.Add(2); // Argument is boxed intList.Add(“3"); // Should be an error int i = (int)intList[0]; // Cast required List intList = new List (); intList.Add(1); // No boxing intList.Add(2); // No boxing intList.Add(“3"); // Compile-time error int i = intList[0]; // No cast required

Generics Why generics? Compile-time type checking Performance (no boxing, no downcasts) Reduced code bloat (typed collections) VB, C#, MC++ produce & consume generics Use generics freely in internal APIs Consider using generics in public APIs Generics are not yet in CLS To be CLS compliant, provide a non-generic API alternative Microsoft is actively pursuing standardization of generics in runtime and languages

Generics in VB Public Class List(Of ItemType) Private elements() As ItemType Private elements() As ItemType Private elementcount As Integer Private elementcount As Integer Public Sub Add(ByVal element As ItemType) Public Sub Add(ByVal element As ItemType) If elementcount = elements.Length Then Resize(elementcount * 2) If elementcount = elements.Length Then Resize(elementcount * 2) elements(elementcount) = element elements(elementcount) = element count += 1 count += 1 End Sub End Sub Public Default Property Item(ByVal index As Integer) As ItemType Public Default Property Item(ByVal index As Integer) As ItemType Get Get Return elements(index) Return elements(index) End Get End Get Set (ByVal Value As ItemType) elements(index) = Value Set (ByVal Value As ItemType) elements(index) = Value End Set End Set End Property End Property Public ReadOnly Property Count As Integer Public ReadOnly Property Count As Integer Get Get Return elementcount Return elementcount End Get End Get End Property End Property End Class Dim intList As New List(Of Integer) intList.Add(1) ‘ No boxing intList.Add(2) ‘ No boxing intList.Add(“3") ‘ Compile-time error Dim i As Integer = intList(0) ’ No cast required

Generics in C++ generic generic public ref class List { array ^ elements; array ^ elements; int count; int count;public: void Add(T element) { void Add(T element) { if (count == elements->Length) Resize(count * 2); if (count == elements->Length) Resize(count * 2); elements[count++] = element; elements[count++] = element; } property T default [int index] { property T default [int index] { T get() { return elements[index]; } T get() { return elements[index]; } void set(T value) { elements[index] = value; } void set(T value) { elements[index] = value; } } property int Count { property int Count { int get() { return count; } int get() { return count; } }}; List ^ intList = gcnew List (); intList->Add(1); // No boxing intList->Add(2); // No boxing intList->Add(“3"); // Compile-time error int i = intList[0]; // No cast required

Enhancing the Base Library Generic Collections System.Collections.Generic classes List<T> Dictionary Dictionary Stack<T>Queue<T> System.Collections.Generic interfaces IList<T> IDictionary IDictionary ICollection<T>IEnumerable<T>IEnumerator<T>IComparable<T>IComparer<T>

Enhancing The Base Library Other Generics to look out for Nullable(Of T) Extremely useful for situations where null is a value, such as database valuetypes T will be constrained to valueTypes EventHandler EventHandler Saves on making your own EventHandlers Dim intVal as Nullable(Of Integer) = 5 If intVal.HasValue Then ‘ checks for a value delegate void EventHandler (Object sender, T e) where T : EventArgs;

VS 2005 Tracing Features Additional Listeners Pre - VS 2005 Formatting of Trace information was predefined, and not controllable No Console listener, ASP had their own tracing mechanism VS 2005 Predefined listeners (Console, ETW) and you can make your own Integrated ASP Tracing into our own Support formatting of output, into defined formats, such as delimitered, or XML MySource;Error;13;Wrong key;;;;;; ;

VS 2005 Tracing Features Simple Thread Identification Pre - VS 2005 : specific threads were difficult to identify, and filter on VS 2005 : Correlation ID has been added, which allows quick and easy identification of a thread, and simple subsequent filtering Auto-generated Data Pre - VS 2005 : Standard information such as timestamp or callstack would have to be explicitly generated VS 2005 : An Admin can easily generate this data automatically, via config settings <add name="example.log" TraceOutputOptions= "Timestamp, CorrelationId"

VS 2005 Tracing Features Listener Filtering Pre - VS 2005 : Filtering of Trace information was predefined, and not controllable VS 2005 : Assign filtering to listeners, so only certain messages are traced. This allows filtering on any property of a message. E.g., ID, TimeStamp, etc. Switches Pre - VS 2005 : Couldn’t determine what tracing a component supported VS 2005 : Support the ability to determine what tracing mechanisms a component has

Summary Extending the Platform SQL Server Integration Moving to 64 bit Improving the Platform Performance work RAD Debugging Security improvements Innovating in the Platform Generics support BCL Enhancements

Resources BCL Blog BCL Website BCL public mail alias Reference (Brad Abrams).NET Framework Standard Library Annotated Reference

Attend a free chat or web cast List of newsgroups communities/newsgroups/en-us/default.aspx MS Community Sites Sofia.NET User Group Community sites

Q & A: We want your feedback!

© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.