SlideShare una empresa de Scribd logo
1 de 41
Developing Windows and Web Applications using Visual Studio.NET Peter Gfader
Who did the C# tutorial? What is .NET? What is the .NET framework? What is the CLR? What is OOP? Session 1: Last week
Agenda C# 3.0 Language Enhancement C# 4.0 Language Enhancement C# 5 What is LINQ? LINQ Project Goals LINQ Project Architecture Data Binding via LINQ Session 2: Overview
C# 3 2008
Local Variable Type Interface Anonymous Type Lambda Expressions Extension methods Object initializers Query Expressions C# 3.0 Language Enhancement
Local Variable Type Inference
Fits with complex temporarily variables E.g. I want a temp variable to hold username & password Anonymous Type
Anonymous methods in C#2 NumericalOperationmul1 = (x, y) => x * y;  Console.WriteLine( mul1(4, 5) );  Lambda Expressions
Extend every class with a static „helper“ method Extension methods
More Object initializer’s Query Expressions Please visit: HookedOnLINQ.com
C# 4 April 2010
„dynamic“ keyword Optional parameters Named parameters Co and Contra variance C# 4 Language Enhancement
Co and Contra variance How are generic types “broken” today?  class Animal { }  class Sheep : Animal { }  void Speak(IEnumerable<Animal> animals)  {     //  Do something with Animals  } Not Allowed: IEnumerable<Animal> != IEnumerable<Sheep> var sheep = new List<Sheep>();  Speak(sheep);
Covariance – think “out” Contravariance – think “in” Break it down…
C# 5? ???? 2013 ????
„Meta programming is painful” 	 Compiler as a service C# 5 ?  - Release date?
Auto Implemented Properties Collection Initializers Named parameters Optional parameters Lambdas Can span statements across multiple lines Auto Implemented Properties Collection Initializers (limited) Named parameters Optional parameters Lambdas (limited) Can span statements across multiple lines .NET 3.5
Auto Implemented Properties Collection Initializers Named parameters Optional parameters Lambdas Can span statements across multiple lines Auto Implemented Properties Collection Initializers Named parameters Optional parameters Lambdas Can span statements across multiple lines .NET 4
Data access Show me the data!
The problem
Problem
First showcased at the American International Toy Fair in New York in 2005 LINQ, a clever bluffing game What is LINQ?
LanguageINtegratedQuery Allows you to easily query information about an object LINQ to SQL: An ORM made by Microsoft  LINQ to Entities: Another ORM made by Microsoft  LINQ to XML: Query over XML ... What is LINQ?
   Language syntax+ a library of extension methods+ lambda expressions+ anonymous types+ a little magic What is LINQ?
.NET Framework 3.5
LINQ is a natural language extension, part of .NET 3.5 Different data sources are queried with the same syntax.  Queries are strongly typed Queries benefit from “Intellisense” Applications becomes less error prone LINQ - How does it solve the problem?
Unified programming model for any data type Database Relational Data XML Files Collections & Arrays Introduce more declarative syntax Helps the system find the best execution strategy LINQ Project Goals
LINQ Project Architecture C# VB Others... .NET Language Integrated Query (LINQ) LINQ Enabled Data Sources LINQ Enabled ADO.NET LINQ to Objects LINQ to ??? LINQ to XML LINQ to Datasets LINQ to SQL LINQ to Entities <book>     <title>         <author/>         <price />     </title> </book> Objects Database XML
LINQ Query
stringstrSQL = “SELECT custID FROM Customers“; SqlCommandcmd = new SqlCommand(strSQL, cnn); SqlDataAdapteradAdapter = new SqlDataAdapter(cmd); DataSetdst = new DataSet(); adAdapter.Fill(dst);           Standard Data Access Code
NorthwindDataContext db = newNorthwindDataContext(); var customers = from c indb.Customers 			select c;       Code by LINQ
How to use LINQ
Benefits from LINQ LINQ data binding LINQ
Stored procedures are easier to work with Relationship editor UI is nicer (more like SQL Server) Performance In a recent benchmark LINQ to SQL performed 5 times faster than LINQ to Entities LINQ 2 SQL
More refined ORM than LINQ to SQL Many to Many relationships Richer support for Inheritance Validation Update model from database Mapping Editor LINQ 2 Entities
Do you know why you should choose "LINQ to Entities" over "LINQ to SQL"? http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterLINQ.aspx#WhyLINQtoEntitiesNotSQL What to choose?
LINQ Pad http://www.linqpad.net/ Hot Tip
New features in C# 3.0 New features in C# 4.0 What is LINQ and Why LINQ LINQ data binding Summary
Introduction to LINQhttp://msdn.microsoft.com/en-us/library/bb397897.aspx Getting Started with LINQ in C#http://msdn.microsoft.com/en-us/library/bb397933.aspx LINQ Term and more detailshttp://www.hookedonlinq.com/ LinqPad http://www.linqpad.net/ Resources
What's next?
Thank You! Gateway Court Suite 10 81 - 91 Military Road Neutral Bay, Sydney NSW 2089 AUSTRALIA  ABN: 21 069 371 900  Phone: + 61 2 9953 3000 Fax: + 61 2 9953 3105  info@ssw.com.auwww.ssw.com.au

Más contenido relacionado

La actualidad más candente

Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond SmalltakReflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond SmalltakMarcus Denker
 
ASP.NET 05 - Exception Handling And Validation Controls
ASP.NET 05 - Exception Handling And Validation ControlsASP.NET 05 - Exception Handling And Validation Controls
ASP.NET 05 - Exception Handling And Validation ControlsRandy Connolly
 
Dynamically Composing Collection Operations through Collection Promises
Dynamically Composing Collection Operations through Collection PromisesDynamically Composing Collection Operations through Collection Promises
Dynamically Composing Collection Operations through Collection PromisesMarcus Denker
 
Advanced Reflection in Pharo
Advanced Reflection in PharoAdvanced Reflection in Pharo
Advanced Reflection in PharoMarcus Denker
 
YiiConf 2012 - Alexander Makarov - Yii2, what's new
YiiConf 2012 - Alexander Makarov - Yii2, what's newYiiConf 2012 - Alexander Makarov - Yii2, what's new
YiiConf 2012 - Alexander Makarov - Yii2, what's newAlexander Makarov
 
Mongo db rev001.
Mongo db rev001.Mongo db rev001.
Mongo db rev001.Rich Helton
 
Xtend - better java with -less- noise
Xtend - better java with -less- noiseXtend - better java with -less- noise
Xtend - better java with -less- noiseNeeraj Bhusare
 
Java 8 New features
Java 8 New featuresJava 8 New features
Java 8 New featuresSon Nguyen
 
Introduction to Core Java Programming
Introduction to Core Java ProgrammingIntroduction to Core Java Programming
Introduction to Core Java ProgrammingRaveendra R
 
Before you jump into Angular
Before you jump into AngularBefore you jump into Angular
Before you jump into AngularM A Hossain Tonu
 
Lecture 3 - ES6 Script Advanced for React-Native
Lecture 3 - ES6 Script Advanced for React-NativeLecture 3 - ES6 Script Advanced for React-Native
Lecture 3 - ES6 Script Advanced for React-NativeKobkrit Viriyayudhakorn
 
Apache Flink - A Sneek Preview on Language Integrated Queries
Apache Flink - A Sneek Preview on Language Integrated QueriesApache Flink - A Sneek Preview on Language Integrated Queries
Apache Flink - A Sneek Preview on Language Integrated QueriesFabian Hueske
 
Reflection in Pharo5
Reflection in Pharo5Reflection in Pharo5
Reflection in Pharo5Marcus Denker
 

La actualidad más candente (18)

Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond SmalltakReflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond Smalltak
 
ASP.NET 05 - Exception Handling And Validation Controls
ASP.NET 05 - Exception Handling And Validation ControlsASP.NET 05 - Exception Handling And Validation Controls
ASP.NET 05 - Exception Handling And Validation Controls
 
Dynamically Composing Collection Operations through Collection Promises
Dynamically Composing Collection Operations through Collection PromisesDynamically Composing Collection Operations through Collection Promises
Dynamically Composing Collection Operations through Collection Promises
 
Javascript
JavascriptJavascript
Javascript
 
Advanced Reflection in Pharo
Advanced Reflection in PharoAdvanced Reflection in Pharo
Advanced Reflection in Pharo
 
Variables in Pharo5
Variables in Pharo5Variables in Pharo5
Variables in Pharo5
 
YiiConf 2012 - Alexander Makarov - Yii2, what's new
YiiConf 2012 - Alexander Makarov - Yii2, what's newYiiConf 2012 - Alexander Makarov - Yii2, what's new
YiiConf 2012 - Alexander Makarov - Yii2, what's new
 
Mongo db rev001.
Mongo db rev001.Mongo db rev001.
Mongo db rev001.
 
Xtend - better java with -less- noise
Xtend - better java with -less- noiseXtend - better java with -less- noise
Xtend - better java with -less- noise
 
Java 8 New features
Java 8 New featuresJava 8 New features
Java 8 New features
 
Introduction to Core Java Programming
Introduction to Core Java ProgrammingIntroduction to Core Java Programming
Introduction to Core Java Programming
 
Before you jump into Angular
Before you jump into AngularBefore you jump into Angular
Before you jump into Angular
 
Lecture 3 - ES6 Script Advanced for React-Native
Lecture 3 - ES6 Script Advanced for React-NativeLecture 3 - ES6 Script Advanced for React-Native
Lecture 3 - ES6 Script Advanced for React-Native
 
Roslyn
RoslynRoslyn
Roslyn
 
Apache Flink - A Sneek Preview on Language Integrated Queries
Apache Flink - A Sneek Preview on Language Integrated QueriesApache Flink - A Sneek Preview on Language Integrated Queries
Apache Flink - A Sneek Preview on Language Integrated Queries
 
Apex code (Salesforce)
Apex code (Salesforce)Apex code (Salesforce)
Apex code (Salesforce)
 
Reflection in Pharo5
Reflection in Pharo5Reflection in Pharo5
Reflection in Pharo5
 
The CQRS diet
The CQRS dietThe CQRS diet
The CQRS diet
 

Destacado

C# OOP Advanced Concepts
C# OOP Advanced ConceptsC# OOP Advanced Concepts
C# OOP Advanced Conceptsagni_agbc
 
.NET and C# Introduction
.NET and C# Introduction.NET and C# Introduction
.NET and C# IntroductionSiraj Memon
 
C#강좌
C#강좌C#강좌
C#강좌e12g
 
1장 디자인 패턴 소개
1장 디자인 패턴 소개1장 디자인 패턴 소개
1장 디자인 패턴 소개citylock
 
Scheduling request at random access
Scheduling request at random accessScheduling request at random access
Scheduling request at random accesscitylock
 
SSO with SAML 2.0
SSO with SAML 2.0SSO with SAML 2.0
SSO with SAML 2.0Thieu Mao
 
Hot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaHot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaDexter Jung
 
C#프로그래밍, 어떻게 시작하는가
C#프로그래밍, 어떻게 시작하는가C#프로그래밍, 어떻게 시작하는가
C#프로그래밍, 어떻게 시작하는가GukHwan Ji
 
NAVER D2 2014 돌아보기
NAVER D2 2014 돌아보기NAVER D2 2014 돌아보기
NAVER D2 2014 돌아보기NAVER D2
 
NDC2016 카툰999 포스트모템(피드백의 힘)
NDC2016 카툰999 포스트모템(피드백의 힘)NDC2016 카툰999 포스트모템(피드백의 힘)
NDC2016 카툰999 포스트모템(피드백의 힘)GukHwan Ji
 
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)Seung-June Lee
 
Papago/N2MT 개발이야기
Papago/N2MT 개발이야기Papago/N2MT 개발이야기
Papago/N2MT 개발이야기NAVER D2
 
C# Tutorial
C# Tutorial C# Tutorial
C# Tutorial Jm Ramos
 

Destacado (20)

C# OOP Advanced Concepts
C# OOP Advanced ConceptsC# OOP Advanced Concepts
C# OOP Advanced Concepts
 
Advance oops concepts
Advance oops conceptsAdvance oops concepts
Advance oops concepts
 
C# basics
 C# basics C# basics
C# basics
 
.NET and C# Introduction
.NET and C# Introduction.NET and C# Introduction
.NET and C# Introduction
 
C#강좌
C#강좌C#강좌
C#강좌
 
1장 디자인 패턴 소개
1장 디자인 패턴 소개1장 디자인 패턴 소개
1장 디자인 패턴 소개
 
Scheduling request at random access
Scheduling request at random accessScheduling request at random access
Scheduling request at random access
 
SSO with SAML 2.0
SSO with SAML 2.0SSO with SAML 2.0
SSO with SAML 2.0
 
Hello, C# : OOP
Hello, C# : OOPHello, C# : OOP
Hello, C# : OOP
 
Hot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaHot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With Java
 
C#프로그래밍, 어떻게 시작하는가
C#프로그래밍, 어떻게 시작하는가C#프로그래밍, 어떻게 시작하는가
C#프로그래밍, 어떻게 시작하는가
 
NAVER D2 2014 돌아보기
NAVER D2 2014 돌아보기NAVER D2 2014 돌아보기
NAVER D2 2014 돌아보기
 
NDC2016 카툰999 포스트모템(피드백의 힘)
NDC2016 카툰999 포스트모템(피드백의 힘)NDC2016 카툰999 포스트모템(피드백의 힘)
NDC2016 카툰999 포스트모템(피드백의 힘)
 
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
 
Php Ppt
Php PptPhp Ppt
Php Ppt
 
PHP Project PPT
PHP Project PPTPHP Project PPT
PHP Project PPT
 
Papago/N2MT 개발이야기
Papago/N2MT 개발이야기Papago/N2MT 개발이야기
Papago/N2MT 개발이야기
 
C# Tutorial
C# Tutorial C# Tutorial
C# Tutorial
 
Php Presentation
Php PresentationPhp Presentation
Php Presentation
 
Introduction to PHP
Introduction to PHPIntroduction to PHP
Introduction to PHP
 

Similar a Develop Windows and Web Apps with Visual Studio.NET

Linq in C# 3.0: An Overview
Linq in C# 3.0: An OverviewLinq in C# 3.0: An Overview
Linq in C# 3.0: An Overviewpradeepkothiyal
 
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondWhat you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondJon Galloway
 
Whidbey old
Whidbey old Whidbey old
Whidbey old grenaud
 
Asp.net c# mvc Training-Day-5 of Day-9
Asp.net c# mvc Training-Day-5 of Day-9Asp.net c# mvc Training-Day-5 of Day-9
Asp.net c# mvc Training-Day-5 of Day-9AHM Pervej Kabir
 
Dot Net Fundamentals
Dot Net FundamentalsDot Net Fundamentals
Dot Net FundamentalsLiquidHub
 
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource GroupLINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource GroupShahzad
 
Linq To The Enterprise
Linq To The EnterpriseLinq To The Enterprise
Linq To The EnterpriseDaniel Egan
 
What's New for Data?
What's New for Data?What's New for Data?
What's New for Data?ukdpe
 
Asp.Net 3.5 Part 2
Asp.Net 3.5 Part 2Asp.Net 3.5 Part 2
Asp.Net 3.5 Part 2asim78
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2Eric Nelson
 
LINQ to Relational in Visual Studio 2008 SP1
LINQ to Relational in Visual Studio 2008 SP1LINQ to Relational in Visual Studio 2008 SP1
LINQ to Relational in Visual Studio 2008 SP1ukdpe
 
LINQ in Visual Studio 2008
LINQ in Visual Studio 2008LINQ in Visual Studio 2008
LINQ in Visual Studio 2008ukdpe
 
Module 3: Introduction to LINQ (Material)
Module 3: Introduction to LINQ (Material)Module 3: Introduction to LINQ (Material)
Module 3: Introduction to LINQ (Material)Mohamed Saleh
 

Similar a Develop Windows and Web Apps with Visual Studio.NET (20)

Linq in C#
Linq in C#Linq in C#
Linq in C#
 
Linq in C# 3.0: An Overview
Linq in C# 3.0: An OverviewLinq in C# 3.0: An Overview
Linq in C# 3.0: An Overview
 
Linq
LinqLinq
Linq
 
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondWhat you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyond
 
Revealing C# 5
Revealing C# 5Revealing C# 5
Revealing C# 5
 
B_110500002
B_110500002B_110500002
B_110500002
 
Whidbey old
Whidbey old Whidbey old
Whidbey old
 
Asp.net c# mvc Training-Day-5 of Day-9
Asp.net c# mvc Training-Day-5 of Day-9Asp.net c# mvc Training-Day-5 of Day-9
Asp.net c# mvc Training-Day-5 of Day-9
 
.net Framework
.net Framework.net Framework
.net Framework
 
Dot Net Fundamentals
Dot Net FundamentalsDot Net Fundamentals
Dot Net Fundamentals
 
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource GroupLINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
 
Linq To The Enterprise
Linq To The EnterpriseLinq To The Enterprise
Linq To The Enterprise
 
What's New for Data?
What's New for Data?What's New for Data?
What's New for Data?
 
Asp.Net 3.5 Part 2
Asp.Net 3.5 Part 2Asp.Net 3.5 Part 2
Asp.Net 3.5 Part 2
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2
 
LINQ to Relational in Visual Studio 2008 SP1
LINQ to Relational in Visual Studio 2008 SP1LINQ to Relational in Visual Studio 2008 SP1
LINQ to Relational in Visual Studio 2008 SP1
 
LINQ in Visual Studio 2008
LINQ in Visual Studio 2008LINQ in Visual Studio 2008
LINQ in Visual Studio 2008
 
Module 3: Introduction to LINQ (Material)
Module 3: Introduction to LINQ (Material)Module 3: Introduction to LINQ (Material)
Module 3: Introduction to LINQ (Material)
 
Introduction to Visual Studio.NET
Introduction to Visual Studio.NETIntroduction to Visual Studio.NET
Introduction to Visual Studio.NET
 
Intro dotnet
Intro dotnetIntro dotnet
Intro dotnet
 

Más de Peter Gfader

Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Peter Gfader
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019Peter Gfader
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)Peter Gfader
 
How to make more impact as an engineer
How to make more impact as an engineerHow to make more impact as an engineer
How to make more impact as an engineerPeter Gfader
 
13 explosive things you should try as an agilist
13 explosive things you should try as an agilist13 explosive things you should try as an agilist
13 explosive things you should try as an agilistPeter Gfader
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucksPeter Gfader
 
Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Peter Gfader
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryPeter Gfader
 
Qcon london2012 recap
Qcon london2012 recapQcon london2012 recap
Qcon london2012 recapPeter Gfader
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployPeter Gfader
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Peter Gfader
 
Clean Code Development
Clean Code DevelopmentClean Code Development
Clean Code DevelopmentPeter Gfader
 
Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Peter Gfader
 
SSAS - Other Cube Browsers
SSAS - Other Cube BrowsersSSAS - Other Cube Browsers
SSAS - Other Cube BrowsersPeter Gfader
 
Reports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesReports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesPeter Gfader
 
OLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesOLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesPeter Gfader
 
Business Intelligence with SQL Server
Business Intelligence with SQL ServerBusiness Intelligence with SQL Server
Business Intelligence with SQL ServerPeter Gfader
 
SQL Server - Full text search
SQL Server - Full text searchSQL Server - Full text search
SQL Server - Full text searchPeter Gfader
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesPeter Gfader
 

Más de Peter Gfader (20)

Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
 
How to make more impact as an engineer
How to make more impact as an engineerHow to make more impact as an engineer
How to make more impact as an engineer
 
13 explosive things you should try as an agilist
13 explosive things you should try as an agilist13 explosive things you should try as an agilist
13 explosive things you should try as an agilist
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucks
 
Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous Delivery
 
Speed = $$$
Speed = $$$Speed = $$$
Speed = $$$
 
Qcon london2012 recap
Qcon london2012 recapQcon london2012 recap
Qcon london2012 recap
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
 
Clean Code Development
Clean Code DevelopmentClean Code Development
Clean Code Development
 
Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Data Mining with SQL Server 2008
Data Mining with SQL Server 2008
 
SSAS - Other Cube Browsers
SSAS - Other Cube BrowsersSSAS - Other Cube Browsers
SSAS - Other Cube Browsers
 
Reports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesReports with SQL Server Reporting Services
Reports with SQL Server Reporting Services
 
OLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesOLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis Services
 
Business Intelligence with SQL Server
Business Intelligence with SQL ServerBusiness Intelligence with SQL Server
Business Intelligence with SQL Server
 
SQL Server - Full text search
SQL Server - Full text searchSQL Server - Full text search
SQL Server - Full text search
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET Features
 

Último

Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 

Último (20)

Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 

Develop Windows and Web Apps with Visual Studio.NET

  • 1. Developing Windows and Web Applications using Visual Studio.NET Peter Gfader
  • 2. Who did the C# tutorial? What is .NET? What is the .NET framework? What is the CLR? What is OOP? Session 1: Last week
  • 3. Agenda C# 3.0 Language Enhancement C# 4.0 Language Enhancement C# 5 What is LINQ? LINQ Project Goals LINQ Project Architecture Data Binding via LINQ Session 2: Overview
  • 5. Local Variable Type Interface Anonymous Type Lambda Expressions Extension methods Object initializers Query Expressions C# 3.0 Language Enhancement
  • 7. Fits with complex temporarily variables E.g. I want a temp variable to hold username & password Anonymous Type
  • 8. Anonymous methods in C#2 NumericalOperationmul1 = (x, y) => x * y; Console.WriteLine( mul1(4, 5) ); Lambda Expressions
  • 9. Extend every class with a static „helper“ method Extension methods
  • 10. More Object initializer’s Query Expressions Please visit: HookedOnLINQ.com
  • 11. C# 4 April 2010
  • 12. „dynamic“ keyword Optional parameters Named parameters Co and Contra variance C# 4 Language Enhancement
  • 13. Co and Contra variance How are generic types “broken” today? class Animal { } class Sheep : Animal { } void Speak(IEnumerable<Animal> animals) { // Do something with Animals } Not Allowed: IEnumerable<Animal> != IEnumerable<Sheep> var sheep = new List<Sheep>(); Speak(sheep);
  • 14. Covariance – think “out” Contravariance – think “in” Break it down…
  • 15. C# 5? ???? 2013 ????
  • 16. „Meta programming is painful”  Compiler as a service C# 5 ? - Release date?
  • 17. Auto Implemented Properties Collection Initializers Named parameters Optional parameters Lambdas Can span statements across multiple lines Auto Implemented Properties Collection Initializers (limited) Named parameters Optional parameters Lambdas (limited) Can span statements across multiple lines .NET 3.5
  • 18. Auto Implemented Properties Collection Initializers Named parameters Optional parameters Lambdas Can span statements across multiple lines Auto Implemented Properties Collection Initializers Named parameters Optional parameters Lambdas Can span statements across multiple lines .NET 4
  • 19. Data access Show me the data!
  • 22. First showcased at the American International Toy Fair in New York in 2005 LINQ, a clever bluffing game What is LINQ?
  • 23. LanguageINtegratedQuery Allows you to easily query information about an object LINQ to SQL: An ORM made by Microsoft LINQ to Entities: Another ORM made by Microsoft LINQ to XML: Query over XML ... What is LINQ?
  • 24. Language syntax+ a library of extension methods+ lambda expressions+ anonymous types+ a little magic What is LINQ?
  • 26. LINQ is a natural language extension, part of .NET 3.5 Different data sources are queried with the same syntax. Queries are strongly typed Queries benefit from “Intellisense” Applications becomes less error prone LINQ - How does it solve the problem?
  • 27. Unified programming model for any data type Database Relational Data XML Files Collections & Arrays Introduce more declarative syntax Helps the system find the best execution strategy LINQ Project Goals
  • 28. LINQ Project Architecture C# VB Others... .NET Language Integrated Query (LINQ) LINQ Enabled Data Sources LINQ Enabled ADO.NET LINQ to Objects LINQ to ??? LINQ to XML LINQ to Datasets LINQ to SQL LINQ to Entities <book> <title> <author/> <price /> </title> </book> Objects Database XML
  • 30. stringstrSQL = “SELECT custID FROM Customers“; SqlCommandcmd = new SqlCommand(strSQL, cnn); SqlDataAdapteradAdapter = new SqlDataAdapter(cmd); DataSetdst = new DataSet(); adAdapter.Fill(dst); Standard Data Access Code
  • 31. NorthwindDataContext db = newNorthwindDataContext(); var customers = from c indb.Customers select c; Code by LINQ
  • 32. How to use LINQ
  • 33. Benefits from LINQ LINQ data binding LINQ
  • 34. Stored procedures are easier to work with Relationship editor UI is nicer (more like SQL Server) Performance In a recent benchmark LINQ to SQL performed 5 times faster than LINQ to Entities LINQ 2 SQL
  • 35. More refined ORM than LINQ to SQL Many to Many relationships Richer support for Inheritance Validation Update model from database Mapping Editor LINQ 2 Entities
  • 36. Do you know why you should choose "LINQ to Entities" over "LINQ to SQL"? http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterLINQ.aspx#WhyLINQtoEntitiesNotSQL What to choose?
  • 38. New features in C# 3.0 New features in C# 4.0 What is LINQ and Why LINQ LINQ data binding Summary
  • 39. Introduction to LINQhttp://msdn.microsoft.com/en-us/library/bb397897.aspx Getting Started with LINQ in C#http://msdn.microsoft.com/en-us/library/bb397933.aspx LINQ Term and more detailshttp://www.hookedonlinq.com/ LinqPad http://www.linqpad.net/ Resources
  • 41. Thank You! Gateway Court Suite 10 81 - 91 Military Road Neutral Bay, Sydney NSW 2089 AUSTRALIA ABN: 21 069 371 900 Phone: + 61 2 9953 3000 Fax: + 61 2 9953 3105 info@ssw.com.auwww.ssw.com.au

Notas del editor

  1. Click to add notesPeter Gfader Developing Windows and Web applications
  2. Who did the C# tutorial?What is .NET?What is .NET framework?What is the CLR?What is OOP?Classes, Objects, Properties, Events, MethodsEncapsulation, Abstraction, Inheritance, Polymorphism
  3. Ask student questions. Who use c# 3.0 before, what is linq
  4. Some people think that is a kind of backward. But that is not really the case… then….With this feature, the type of the local variable being declared is inferred from the expression used to initialize the variable. This is achieved using the var keyword (familiar to those who work with scripting languages, but actually it is quite different). It allows us to write the following code:The compiler would generate the same IL as if we compiled:Note that there is no un-typed variable reference nor late-binding happening, instead the compiler is inferring and declaring the type of the variable from the right-hand side of the assignment. As a result, the var keyword is generating a strongly typed variable reference.Help developers lazy
  5. Anonyous typesThis feature is simply, creating a complex type on the fly, which helps sometimes when you want a temp variable of complex type, that you&apos;ll never use again, so you don&apos;t need to write a class for it, so you just tell the compiler to write it for you, as you can see in the slide, you use the varkeyword to refer to the variable, and initailize by specifying the properties of the complex type and in the same time initializing them, so the compiler can also infere the type of the properties so the compiler can generate the class for you.Create a small demo. Live tmpUser.Username …
  6. Lambda Expressions is one of most common features between dynamic and functional languages such as Lisp &amp; Python .. etc.Lambda Expressions is an improvement of the delegate idea, which improved in C# 2.0 as Anonymous Methods, and now in C# 3.0 it is Lambda Expressions.Consider the following code, we declared a delegate called NumericalOperation which refers to a function that accepts two inputs of type int, and returns output of type int, and int first lines in the main, we are using C# 1.x code to use this delegate, so we create an object of the NumericalOperation that refers to the Add function, and then call the function using the delegate.then in the next lines we are using C# 2.0 code to declare the object and in the same time declare the function using the anonymous method style, so we created a function that subtracts two integers, and use it .then in the next lines we are using C# 3.0 code to declare the object and in the same time declaring the function using the lambda expressions code, which is somehow looks weird in the first time, but it is really easy to understandfirst we write the delegate type followed by the object name on the left hand side, then on the right hand side we list all the input parameters that will be used in the expression in a coma list, then the arrow operator =&gt; followed by the expression that evaluates the return value.so if you want to write a lambda expression that adds two numbers, so you can say it like thisNumericalOperation op = (x, y) =&gt; x + y;delegate intNumericalOperation(int x, int y);internal static void Main(){// C# 1.0 NumericalOperation add = new NumericalOperation(Add);Console.WriteLine(&quot;C# 1.0: delegates {0,28}&quot;, add(1, 2));//C# 2.0 NumericalOperation sub = delegate(int x, int y){return x - y;};Console.WriteLine(&quot;C# 2.0: Anonymous Methods {0,20}&quot;, sub(2, 1));//C# 3.0 NumericalOperation mul1 = ( x, y)=&gt; x * y; Console.WriteLine(&quot;C# 3.0: Lambda Expressions {0,20}&quot;, mul1(4, 5));//Another Approach without the need to write the delegate Func&lt;int, int, int&gt; mul2 = (x, y)=&gt;x*y;Console.WriteLine(&quot;C# 3.0: Lambda Expressions {0,20}&quot;, mul2(4, 5));}internal static int Add(int x, int y){return x + y;}
  7. Open the site, show few points
  8. http://blogs.msdn.com/somasegar/archive/2009/08/19/vb-and-c-enhancements-in-vs-2010.aspx
  9. „Meta programming is painful”Dynamic code generationEFLINQ2SQLReflection.EmitC# compiler in managed code“Compiler as a service”Neuer C#-Compiler, geschrieben in C# - schonseit 16 Monaten in Arbeit  ImplementiertalswiederverwendbaresModul  Verwendung des Compilers auseigenenProgrammenherauswirdeinfacher  Vorteile  Eval  Embedding, DSLs, …   Meta-programming (etwasunklar)   Language Object Model
  10. Show the data access problem!!SQL Server: tables and rowsC#: Objects and propertiesRelational vs. object oriented
  11. As a good start, let&apos;s see the problem we&apos;ve been dealing with for the past decades. Both data manipulation and logic implementation improved in different direction, while the data manipulation were treated declaratively using languages like SQL, on the other hand, logic implementation treated imperatively using Object oriented programming concepts and also standard control flow constructs like conditions &amp; loops.This small problem introduced a bigger problem which is making the application always divided into two different contextThe Data context Relational Databases Structured Documents (XML) Any other data store (Excel sheets, ... etc)The Logic contextand also another problem comes from dealing with different context, which is dealing with every context in a different way, so you can&apos;t easily have a join between a relational database table and an object-in-memory collection or XML document, several solutions were provided for this, but they were either too hard or too complexHistory:RecordsetDatasetlinq
  12. The platform provides the basis. 3.5 new technology ---- LINQ
  13. Object-relational mappingLanguage syntax+ a library of extension methods+ lambda expressions+ anonymous types+ a little magic= LINQ
  14. Object-relational mapping
  15. LINQ (Language-Integrated Query) Have more details in the following slides
  16. LINQ is a natural language extension, part of .NET 3.5Different data sources are queried with the same syntax. Queries are strongly typedQueries benefit from intellisenseApplications becomes less error proneLinq is mainly help for developerOptimize
  17. So from understanding the problem, LINQ provides the solution, first it introduce a unified model of dealing with data, which all data can be treated similarly in memory, so you can have something like joining data records coming from a database table with a collection in memory then saving the results in a XML document in the same instruction.Also LINQ is using SQL-like instructions, which are very familiar to developers, and also providing a good level of abstraction using more declarative syntax, which gives the system more space for decisions
  18. LINQ Architecture is very elegant and simple, as shown in the slide it provides queries for both C# 3 &amp; VB9 as a first class citizen, and also it provides an abstraction for different implementations of LINQ like LINQ-To-Objects, LINQ-To-SQL (DLINQ) and LINQ-To-XML (XLINQ).In addition it provides a good extensibility model to implement LINQ on different data stores.LINQ – SQLLINQ - Object
  19. The only difference is select goes last. For the intelence purpose…Interactive with people, before show the LINQ stuff.Write in console application.
  20. String strSQL = &quot;SELECT custID FROM Customers“;SqlCommandcmd = New SqlCommand(strSQL, cnn);SqlDataAdapteradAdapter = New SqlDataAdapter(cmd);DataSetdst = New DataSet();adAdapter.Fill(dst);
  21. NorthwindDataClassesDataContext db = newNorthwindDataClassesDataContext();var customers = from c indb.Customers select c;
  22. Eric’s demo
  23. Dbml – database modelExplain to people the code behind for the layout of that designer.csRun sqlproflier . See LINQ is very smart, can optimize the query for you
  24. # Many to Many relationships * In LINQ to SQL when you model a many to many relationship (e.g. Employees and Territories from Northwind) it involved 3 tables: Employee, EmployeeTerritories and Territory * In LINQ to Entities it only uses the Employee and Territory tables and does not need the associative table EmployeeTerrirories# Richer support for Inheritance * Table per Hierarchy - store all the data from the inherited types into the same table e.g. Employee, Customer classes will store data into the Person table * Table per Type - each type is stored in a separate tables# Validation * This means you can use the designer to make changes and validate it against your schema# Update model from database * This tells you if schema has changed and allows you to update the mapping from the designer. This was a short coming in LINQ to SQL# Mapping EditorAllows you to use the designer to create the mappings - similar to the Java Hibernate editor (eclipse add-in)
  25. Let student download it then show how to use itUse it before presentationChange to C# statementsResult.Count().Dump()How to translate to SQLTutorial