rdhydur's picture
From rdhydur rss RSS  subscribe Subscribe

Svetlin Nakov - What’s New In CLR 2.0 

Svetlin Nakov - What’s New In CLR 2.0

 

 
 
Views:  310
Published:  December 06, 2009
 
0
download

Share plick with friends Share
save to favorite
Report Abuse Report Abuse
 
Related Plicks
What’s next in business

What’s next in business

From: boccutiu
Views: 289 Comments: 0
What’s next in business
 
What’s New In Socialtext 4.6

What’s New In Socialtext 4.6

From: anon-523404
Views: 34 Comments: 0

 
Tablet PC Android Rumors: What’s Coming Soon?

Tablet PC Android Rumors: What’s Coming Soon?

From: anon-584141
Views: 12 Comments: 0
Tablet PC Android Rumors: What’s Coming Soon?
 
 Bodybuilding Formula,and diet-control

Bodybuilding Formula,and diet-control

From: godsell51
Views: 8 Comments: 0
weight-watching, New Bodybuilding Formula,and diet-control
 
are you a real bodybuilder or not

are you a real bodybuilder or not

From: cnagelgv
Views: 17 Comments: 0
great bodybuilding and workout tips
 
See all 
 
More from this user
constellation energy 2003 Annual Report

constellation energy 2003 Annual Report

From: rdhydur
Views: 662
Comments: 0

Innovation In History Ohio Topics

Innovation In History Ohio Topics

From: rdhydur
Views: 82
Comments: 0

Best Final Year Ieee Projects Advantages Ncct

Best Final Year Ieee Projects Advantages Ncct

From: rdhydur
Views: 1311
Comments: 0

ORIENTACION VOCACIONAL

ORIENTACION VOCACIONAL

From: rdhydur
Views: 508
Comments: 0

Integrated Retail Credentials April 2009

Integrated Retail Credentials April 2009

From: rdhydur
Views: 32
Comments: 0

Enterprise Pricing Policies Crucial To Risk Mitigation

Enterprise Pricing Policies Crucial To Risk Mitigation

From: rdhydur
Views: 41
Comments: 0

See all 
 
 
 URL:          AddThis Social Bookmark Button
Embed Thin Player: (fits in most blogs)
Embed Full Player :
 
 

Name

Email (will NOT be shown to other users)

 

 
 
Comments: (watch)
 
 
Notes:
 
Slide 1: Новости в .NET CLR 2.0 Светлин Наков Българска асоциация на разработчиците на софтуер
Slide 2: Developer Roadmap Visual Studio Orcas “Longhorn” • “Orcas” release • Windows “Longhorn” integration • New UI tools and designers • Extensive managed interfaces Visual Studio .NET 2003 • “Everett Release” • Windows Server 2003 integration • Support for .NET Compact Framework and device development • Improved performance Visual Studio 2005 “Yukon” • “Whidbey” release • SQL Server integration • Improved IDE productivity and community support • Extended support for XML Web services • Office programmability
Slide 3: 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
Slide 4: 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
Slide 5: SQL CLR Functionality VB, C#, … VS .NET Project Build Assembly: geom.dll SQL Data Definition: create assembly … create function … create procedure … create trigger … create type … Define Location.Distance() CLR hosted by SQL (in-proc) SQL Server SQL Queries: SELECT name FROM Supplier WHERE Location::Distance ( @point ) < 3
Slide 6: Sql Programming Model Splitting a string The old way…. declare @str varchar(200) select @Str = 'Microsoft Corporation|SQL Server| 2003|SQL-CLR|2002-08-20|11:32:00|Document|3.b.3' SELECT substring(@Str + '|', 0 + 1, charindex('|', @Str + '|', 0 + 1) - 0 - 1 ), substring(@Str + '|', charindex('|', @Str + '|') + 1, charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) charindex('|', @Str + '|') - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) - 1 ), … charindex('|', charindex('|', charindex('|', charindex('|', charindex('|', @Str @Str @Str @Str @Str + + + + + declare @str varchar(200) select @Str = 'Microsoft Corporation|SQL Server|2003|SQL-CLR|200208-20|11:32:00|Document|3.b.3' SELECT substring(@Str + '|', 0 + 1, charindex('|', @Str + '|', 0 + 1) - 0 - 1 ), substring(@Str + '|', charindex('|', @Str + '|') + 1, charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) charindex('|', @Str + '|') - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1) '|', '|', charindex('|', @Str + '|', '|', '|', charindex('|', @Str + '|', '|') + 1) + 1) + 1) + 1) + 1) + 1) - 1 )
Slide 7: Sql Programming Model Splitting a string The new way…. Public Shared Sub SplitString() Dim s As String s = "Microsoft Corporation|SQL Server| 2003|SQL-CLR|2002-0820|11:32:00| Document|3.b.3" Dim myArray() As String = Split(s, "|") End Sub
Slide 8: 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
Slide 9: 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
Slide 10: 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
Slide 11: 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
Slide 12: 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
Slide 13: Generics public class List<T> public class List { private object[] elements; private T [] elements; private int count; private int count; public void Add(object element) { public void Add( T element) { if (count == == elements.Length) Resize(count if (count elements.Length) Resize(count * 2); 2); elements[count++] = element; } elements[count++] = element; } public object this[int index] { public{ T this[int index] { get return elements[index]; } set { { return elements[index]; } get elements[index] = value; } } set { elements[index] = value; } List intList = new List(); List <int> intList = new List <int> (); } public int Count { intList.Add(1); intList.Add(1); // Argumentboxing // No is boxed public{ int Count { } get return count; intList.Add(2); intList.Add(2); // Argumentboxing // No is boxed } get { return count; } intList.Add(“3"); intList.Add(“3"); // Should be an error // Compile-time } error int i = (int)intList[0]; // Cast required int i = intList[0]; // No cast * } }
Slide 14: 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
Slide 15: Generics in VB Public Class List(Of ItemType )      Private elements() As ItemType      Private elementcount As Integer      Public Sub Add(ByVal element As ItemType )           If elementcount = elements.Length Then Resize(elementcount * 2)           elements(elementcount) = element           count += 1      End Sub      Public Default Property Item(ByVal index As Integer) As ItemType           Get               Return elements(index)           End Get           Set (ByVal Value As ItemType )               elements(index) = Value           End Set      End Property      Public Dim intList As New List(Of Integer) ReadOnly Property Count As Integer           Get intList.Add(1)           ‘ No boxing               Return elementcount intList.Add(2)           ‘ No boxing           End Get intList.Add(“3")     ‘ Compile-time      End Property error End Class Dim i As Integer = intList(0)   ’ No cast
Slide 16: Generics in C++ generic<typename T> public ref class List {    array<T>^ 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 { List<int>^ intList = gcnew List<int>();       int get() { return count; } intList->Add(1); // No boxing    } intList->Add(2); // No boxing }; intList->Add(“3"); // Compile-time error int i = intList[0]; // No cast required
Slide 17: Enhancing the Base Library List<T> Dictionary<K, V> Stack<T> Queue<T> Generic Collections System.Collections.Generic classes System.Collections.Generic interfaces IList<T> IDictionary<K, V> ICollection<T> IEnumerable<T> IEnumerator<T> IComparable<T> IComparer<T>
Slide 18: 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 Dim intVal as Nullable(Of Integer) = 5 If intVal.HasValue Then ‘ checks for a value EventHandler<T> Saves on making your own EventHandlers delegate void EventHandler<T>(Object sender, T e) where T : EventArgs;
Slide 19: 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 My Sou rc e;E rr or; 13 ;Wr on g ke y;; ;; ;;3 18 361 29 018 4;
Slide 20: 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 < l ist en ers > < ad d na me =" ex am ple .lo g" Tr ace Ou tp utO pti on s = Co rre la ti onI d" "T ime st amp ,
Slide 21: 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
Slide 22: 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
Slide 23: Resources BCL Blog http://weblogs.asp.net/bclteam BCL Website http://www.gotdotnet.com/team/clr/bcl/default.aspx BCL public mail alias bclpub@microsoft.com Reference (Brad Abrams) .NET Framework Standard Library Annotated Reference
Slide 24: Attend a free chat or web cast http://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/usa/webcasts/default.asp List of newsgroups http://communities2.microsoft.com/ communities/newsgroups/en-us/default.aspx MS Community Sites http://www.microsoft.com/communities/default.mspx Sofia .NET User Group http://www.sofiadev.org/ Community sites http://www.microsoft.com/communities/related/default.mspx
Slide 25: Q & A: We want your feedback!
Slide 26: © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

   
Time on Slide Time on Plick
Slides per Visit Slide Views Views by Location