5. According to MSDN: “The type is a static type, but an object of type dynamic bypasses static type checking. In most cases, it functions like it has type object. At compile time, an element that is typed as dynamic is assumed to support any operation.”
6.
7.
8.
9. Creation method via 1. Constructor 2. Static method create of System.Tuple
11. Tuplesvs Anonymous Type1. Anonymous Type: Can’t be passed as return type from a method. Tuples can be passed as input parameters and return type. 2. Tuples can’t be identified with name, they are just called item1,item2,item3…itemn. However items of anonymous type can be named. Demo Code: http://softarchitect.wordpress.com/2010/08/15/software-architecture-c-sharp-4-0-new-feature-tuple/
14. Suggests that “an object is not created till it is used by the first time the Lazy(Of T).Value property is accessed or the Lazy(Of T).ToString method is called”
19. Optional parameters are defined at the end of the parameter list, after any required parameters. If the caller provides an argument for any one of a succession of optional parameters, it must provide arguments for all preceding optional parameters.
33. Covariance and Contravariance and Invariance A Giraffe may be assigned to a variable of type Animal, and therefore an sequence of Giraffes may be assigned to a variable that can hold a sequence of Animals. IEnumerable<T> is covariant" what we mean is "the projection which takes a reference type T and produces a reference type IEnumerable<T> is a covariant projection". Demo Code 1 & 2 http://msdn.microsoft.com/en-us/library/ms173174(v=vs.80).aspx http://blogs.msdn.com/b/ericlippert/archive/2009/11/30/what-s-the-difference-between-covariance-and-assignment-compatibility.aspxVideos: http://msdn.microsoft.com/en-us/vcsharp/Video/ee672314 http://msdn.microsoft.com/en-us/vcsharp/video/Ee672319
34. GenerateFrom Usage Trick is to first use class,itsproperies,its method , its constructor and then generate code on basis of usage by simply pressing CTRL + “.” several times. [Demo] Generating a Class from Usage Generating a Delegate Stub from Usage Generating an Interface Stub from Usage Generating New Types with Additional Options from Usage ( General for all ) http://msdn.microsoft.com/en-us/library/dd409796.aspx
35. Intelliense Modes Use suggestion mode when classes and members are used before they are defined. In suggestion mode, when you type in the editor and then commit the entry, the text you typed is inserted into the code. When you commit an entry in completion mode, the highlighted entry in the members list is inserted into the code. To avoid this problem, press CTRL+ALT+SPACEBAR to switch to IntelliSense suggestion mode (as opposed to completion mode). http://msdn.microsoft.com/en-us/library/exbffbc2.aspx
36. Call Hierarchy window To navigate through your code by displaying all calls to and from a selected method, property, or constructor. Available at design time, unlike the call stack that is displayed by the debugger. Search Scope box >> My Solution, Current Project, and Current Document. Context Menu Item >>Add As New Root , Remove Root , Go To Definition , Find All References , Copy , Refresh Reference: http://msdn.microsoft.com/en-us/library/dd409859.aspx
37. Navigate To Window A quick search tool for symbols Just press CTRL + “,” (or click Edit and then Navigate To) to see the new Navigate To window. Other Options>>Object Browser,FindSymbol,Find ,Go To Line. Reference: http://msdn.microsoft.com/en-us/library/4sadchd3(v=VS.100).aspx
38. Productivity Options Reference Highlighting Put the cursor on a symbol (method, property, variable, etc.), all instances of this symbol are automatically highlighted in the code editor. Navigate from one instance to another within a file by pressing CTRL+SHIFT+UP/DOWN ARROW. Zoom Press CTRL and use your mouse wheel to enlarge or decrease your font size. Box Selection and Multiline Editing Press ALT and then use your mouse or arrow keys to select the box area. Multiline box selection was there for delete from many versions of studio. But now insert,edit,replace is also supported. http://blogs.msdn.com/b/vseditor/archive/2009/05/25/the-new-box-selection-now-with-multi-line-editing.aspx
39. Productivity Options Code Intellisense with VS 2010 (Regardless of what word it starts with – Find all keywords having that word) Searching for Keywords Searching for Types Examples: Exception , List Pascal Case Intellisense Find and filter methods based on their pascal naming pattern. For details see: http://weblogs.asp.net/scottgu/archive/2009/10/22/vs-2010-code-intellisense-improvements-vs-2010-and-net-4-0-series.aspx
40. Debugging Tips Position cursor on the line in your code that you want to run the application to, and then press the Ctrl + F10 keys together. Grouping Multiple Breakpoints Together using a Label + Filtering/Sorting Breakpoints by Label +Toggling Breakpoints On/Off by Label Importing/Exporting Breakpoints Pinned DataTips Associating Comments with Pinned DataTips See the Value Pinned DataTips from Last Debug Session Importing/Exporting Pinned DataTips Debugging Applications with IntelliTrace - Totally new debugger tool [Only for ultimate edition-Not covered in presentation-Self Reading] Parallel Tasks and Parallel Stacks windows to debug a parallel application. [Not covered in presentation-Self Reading] http://weblogs.asp.net/scottgu/archive/2010/08/18/debugging-tips-with-visual-studio-2010.aspx http://weblogs.asp.net/scottgu/archive/2010/04/21/vs-2010-debugger-improvements-breakpoints-datatips-import-export.aspx
41. Pinning Projects and Solutions Pinning concept is there only for Windows 7 Window 7 allow to pin Mspaintot any other application. Same can be done for Visual studio 2010 Even Projects can be pinned, so that they are available for quick access. http://weblogs.asp.net/scottgu/archive/2010/05/10/pinning-projects-and-solutions-with-visual-studio-2010.aspx
42. ASP .Net4.0 New Features Read details here: http://www.asp.net/learn/whitepapers/aspnet4 Filtering Data with the QueryExtender Control http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linqdatasource.where.aspx http://www.asp.net/learn/whitepapers/aspnet4#0.2__Toc253429258
43. ASP .Net Routing in ASP.NET 4 Buildin Support – Namespace Setting Client IDs http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms-client-ids-vs-2010-and-net-4-0-series.aspx Persisting Row Selection in Data Controls http://softarchitect.wordpress.com/2010/11/27/software-architecture-asp-net-4-0-for-data-bound-control-enablepersistedselection/
44. ASP .Net ASP .Net Charting buildin support http://weblogs.asp.net/scottgu/archive/2010/02/07/built-in-charting-controls-vs-2010-and-net-4-series.aspx jQuery library The Visual Studio templates for both Web Forms and MVC include the open-source jQuery library. Enabling View State for Individual Controls In earlier versions of ASP.NET, developers could disable view state (EnableViewState)for individual controls in order to reduce page size, but had to do so explicitly for individual controls. In ASP.NET 4, Web server controls include a ViewStateMode property that lets you disable view state by default and then enable it only for the controls that require it in the page. The ViewStateMode property takes an enumeration that has three values: Enabled, Disabled, and Inherit. Enabledenables view state for that control and for any child controls that are set to Inherit or that have nothing set. Disabled disables view state, and Inherit specifies that the control uses the ViewStateMode setting from the parent control.
45. ASP .Net - Extensible Output Caching Recap till ASP .Net 3.5 <%@ OutputCache Duration="#ofseconds" Location="Any | Client | Downstream | Server | None | ServerAndClient " Shared="True | False" VaryByControl="controlname" VaryByCustom="browser | customstring" VaryByHeader="headers" VaryByParam="parametername" VaryByContentEncoding="encodings" CacheProfile="cache profile name | ''" NoStore="true | false" SqlDependency="database/table name pair | CommandNotification" ProviderName="Provider Name" %> http://weblogs.asp.net/scottgu/archive/2010/01/27/extensible-output-caching-with-asp-net-4-vs-2010-and-net-4-0-series.aspx http://msdn.microsoft.com/en-us/library/hdxfb6cy(v=VS.100).aspx
46. Memory-mapped According Wiki A memory-mapped file is a segment of virtual memory which has been assigned a direct byte-for-byte correlation with some portion of a file or file-like resource. This resource is typically a file that is physically present on-disk, but can also be a device, shared memory object, or other resource that the operating system can reference through a file descriptor. In C# 4.0, Microsoft has introduced a new namespace “System.IO.MemoryMappedFiles” for manipulating memory mapped file. CreateViewStream method of MemoryMappedFiles is used to create a stream which is mapped to memory mapped file. Reference: http://softarchitect.wordpress.com/2010/08/15/software-architecture-c-sharp-4-0-new-feature-memory-mapped-file/
47. Enum-HasFlag(Enum flag ) In C# 4.0, enum has a new function as:public boolHasFlag(Enum flag ) which takes second enum as parameter and return bool as true if the bit field or bit fields that are set in flag are also set in the current instance; otherwise, false. Logically HasFlag evaluates following expression: thisInstance And flag = flag Reference: http://softarchitect.wordpress.com/2010/09/15/software-architecture-c-sharp-4-0-new-feature-enum-hasflag/
48. Managed Extensibility Framework or MEF The Managed Extensibility Framework or MEF is a library for creating lightweight, extensible applications. It allows application developers to discover and use extensions with no configuration required. It also lets extension developers easily encapsulate code and avoid fragile hard dependencies. MEF not only allows extensions to be reused within applications, but across applications as well. Reference: http://softarchitect.wordpress.com/2010/08/14/software-architecture-c-sharp-4-0-new-feature-whywhathow-of-managed-extensibility-framework-mef-sample-calculator-code/