SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Back-2-Basics: .NET Coding Standards For The Real World,[object Object]
Back-2-Basics: .NET Coding Standards For The Real World (2011)
dotNetDave Conference DVD!,[object Object],Packed full of:,[object Object],Videos of all sessions from 2010 & 2011(1)!,[object Object],Slide decks from 2011 & 2010!,[object Object],Demo projects from 2011 & 2010!,[object Object],David McCarter’s .NETinterview Questions!,[object Object],Extras,[object Object],Conference Photos from 2010!,[object Object],Surprise videos!,[object Object],Book + DVD $25!,[object Object],Only $15!,[object Object]
Check Out Your Local User Groups!,[object Object],San Diego Cloud Computing User Group,[object Object],www.azureusergroup.com/group/sandiegoazureusergroup,[object Object],San Diego .NET Developers Group,[object Object],www.sddotnetdg.org,[object Object],San Diego .NET User Group,[object Object],www.sandiegodotnet.com,[object Object],San Diego SQL Server User Group,[object Object],www.sdsqlug.org,[object Object]
Agenda,[object Object],5,[object Object]
Overview,[object Object]
Why Do You Need Standards?,[object Object],First, you might not agree witheverything I say… that’s okay!,[object Object],Pick a standard for your company,[object Object],Every programmer on the same page,[object Object],Easier to read and understand code,[object Object],Easier to maintain code,[object Object],Produces more stable, reliable code,[object Object],Stick to the standard!!!,[object Object]
After Selecting a Standard,[object Object],Make sure it’s easily available to each programmer,[object Object],Print or electronically,[object Object],Enforce via code reviews,[object Object],Provide programs to make it easier for programmers to maintain:,[object Object],StyleCop – Free for C# programmers.,[object Object],CodeIt.Right – Enterprise edition shares profiles. Can create custom profiles for your company.,[object Object]
Violations,[object Object],Real World Analysis Example,[object Object],Scenario: In production Client Server Application with millions in sales,[object Object],23 projects of 755,600 lines of .NET code,[object Object],StyleCop,[object Object],fxcop,[object Object],Code.It Right,[object Object],13,152,[object Object],32,798,[object Object],32,696,[object Object],This is why you need to follow good coding practices throughout the lifecycle of the project!,[object Object]
Issues I see all the time!,[object Object],Common Coding Mistakes	,[object Object]
Assembly,[object Object],[assembly: AssemblyTitle(“My App")],[object Object],[assembly: AssemblyDescription(“My App Management System")],[object Object],[assembly: AssemblyCompany(“Acme International")],[object Object],[assembly: AssemblyProduct(“My App")],[object Object],[assembly: AssemblyCopyright("Copyright © 2011 Acme Inc.")],[object Object],[assembly: ComVisible(false)],[object Object],[assembly: AssemblyVersion("2010.3.0.20")],[object Object],[assembly: AssemblyFileVersion("2010.3.0.20")],[object Object],[assembly: CLSCompliant(true)],[object Object],[assembly: AssemblyTitle(“My App")],[object Object],[assembly: AssemblyDescription(“My App Management System")],[object Object],[assembly: AssemblyCompany(“Acme International")],[object Object],[assembly: AssemblyProduct(“My App")],[object Object],[assembly: AssemblyCopyright("Copyright © 2011 Acme Inc.")],[object Object],[assembly: ComVisible(false)],[object Object],[assembly: AssemblyVersion("2010.3.0.20")],[object Object],[assembly: AssemblyFileVersion("2010.3.0.20")],[object Object],Does not use the System.CLSCompliantAttribute,[object Object],Ensures that all its types and members are compliant with the Common Language Specification (CLS). ,[object Object]
Type Design,[object Object],public struct MaxLength{    public int CustomerId;    public int PolicyNumber;},[object Object],public struct MaxLength{    public int CustomerId;    public int PolicyNumber;,[object Object],   public override bool Equals(object obj),[object Object],{,[object Object],var e = (MaxLength)obj;,[object Object],return e.CustomerId == this.CustomerId && ,[object Object],e.PolicyNumber == this.PolicyNumber;,[object Object],}},[object Object],Equals for value types uses Reflection,[object Object],Computationally expensive.,[object Object],Override Equals to gain increased performance,[object Object]
Static Classes,[object Object],public class AssemblyHelper,[object Object],{,[object Object],public static IEnumerable<Type> FindDerivedTypes(string path,,[object Object],                                                    string baseType, ,[object Object],                                                   bool classOnly),[object Object],{,[object Object],          //Code removed for brevity,[object Object],   },[object Object],},[object Object],public static class AssemblyHelper,[object Object],{,[object Object],public static IEnumerable<Type> FindDerivedTypes(string path,,[object Object],                                                    string baseType, ,[object Object],                                                   bool classOnly),[object Object],{,[object Object],          //Code removed for brevity,[object Object],   },[object Object],},[object Object],Classes with only static members should be marked sealed (NotInheritable for Visual Basic) .,[object Object],Cannot be overridden in a derived type or  inherited.,[object Object],Performs slightly better because all its properties and methods are implicitly sealed and the compiler can often inline them.,[object Object]
Constructor,[object Object],public class FileCache,[object Object],{,[object Object],  public FileCache(string tempPath),[object Object],  {,[object Object],    var cacheDir= Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);,[object Object],    if (Directory.Exists(cacheDir) == false),[object Object],     { ,[object Object],       Directory.CreateDirectory(cacheDir);,[object Object],     },[object Object],   },[object Object],},[object Object],public class FileCache,[object Object],{,[object Object], string _tempPath;,[object Object],  public FileCache(string tempPath),[object Object],  {,[object Object],    _tempPath= tempPath,[object Object],  },[object Object],},[object Object],[object Object]
Can cause Exceptions.
Capture parameters only.14,[object Object]
Enums,[object Object],public enum ADODB_PersistFormatEnumEnum,[object Object],{,[object Object],adPersistXML = 1,,[object Object],adPersistADTG = 0,[object Object],},[object Object],public enum DatabasePersistFormat,[object Object],{,[object Object],   Xml,,[object Object],   Adtg,[object Object],},[object Object],Do not use an Enum suffix on Enum type names,[object Object],Do not specify number unless the Enum is a bit flag or absolutely necessary (stored in file, database),[object Object]
Enums,[object Object],public enum AutoSizeSettings ,[object Object],{,[object Object],    flexAutoSizeColWidth,,[object Object],flexAutoSizeRowHeight,[object Object],},[object Object],public enum AutoSizeSetting ,[object Object],{,[object Object],    ColumnWidth,,[object Object],    RowHeight,[object Object],},[object Object],Use a singular name for most Enum types, but use a plural name for Enum types that are bit fields,[object Object],Enum and elements should be Pascal case.,[object Object]
Collections,[object Object],public class ModelItemCollection : Collection<ModelItem> ,[object Object],{,[object Object],    //Code Removed for brevity.,[object Object],},[object Object],public class ModelList : Collection<ModelItem> ,[object Object],{,[object Object],    //Code Removed for brevity.,[object Object],},[object Object],When deriving from a collection base type, use the base type in the type name.,[object Object]
Fields,[object Object],public class Response,[object Object],{,[object Object],    protected WebResponse response;,[object Object],},[object Object],public class Response,[object Object],{,[object Object],    protected WebResponse CurrentResponse {get; set;},[object Object],},[object Object],Public instance fields should never be defined. ,[object Object],Use private fields wrapped inside public properties should be used instead. ,[object Object],This allows validation the incoming value.,[object Object],This allows events to be thrown.,[object Object]
Properties,[object Object],public string[] Cookies { get; private set; },[object Object],public string[] LoadCookies(),[object Object],{,[object Object],	//Code,[object Object],},[object Object],Return a copy of the array, to keep the array tamper-proof, because of arrays returned by properties are not write-protected. ,[object Object],Affects performance negatively. ,[object Object],Method should be used when returning array. ,[object Object]
IDisposable,[object Object],public void Dispose() ,[object Object],{,[object Object],    Close();,[object Object],},[object Object],public void Dispose() ,[object Object],{,[object Object],    Close();,[object Object],   GC.SuppressFinalize();,[object Object],},[object Object],Once the Dispose method has been called, it is typically unnecessary for the garbage collector to call the disposed object's finalizer method. ,[object Object],To prevent automatic finalization, Dispose implementations should call the GC.SuppressFinalize method. ,[object Object]
Performance,[object Object],if (txtPassword.Text == ""),[object Object],{,[object Object],   MessageBox.Show("Enter Password.");,[object Object],},[object Object],if (String.IsNullOrEmpty(txtPassword.Text)),[object Object],{,[object Object],   MessageBox.Show("Enter Password.");,[object Object],},[object Object],Length property of a string should be compared with zero.,[object Object],Use IsNullOrEmpty(System.String) method!,[object Object]
Performance,[object Object],private bool _showAdvancedSettings = false;,[object Object],private bool _showAdvancedSettings;,[object Object],Value types initialized with its default value,[object Object],Increase the size of an assembly,[object Object],Degrade performance. ,[object Object],CLR (Common Language Runtime) initializes all fields with their default values. ,[object Object]
Exceptions,[object Object],private byte[] GetContents(string location),[object Object],{,[object Object],    try,[object Object],{,[object Object],    return ContentManager.Archiver.GetArchive(location);,[object Object],    },[object Object],catch (Exception ex),[object Object],    {,[object Object],        LogWriter.WriteException(ex, TraceEventType.Error,);,[object Object],return null;,[object Object],},[object Object],},[object Object],private byte[] GetContents(string location),[object Object],{,[object Object],    return ContentManager.Archiver.GetArchive(location);,[object Object],},[object Object],Do not catch general Exception or SystemException. Only specific exception should be caught. ,[object Object],If caught re-throw in the catch block.,[object Object],“API” assemblies should not log exceptions/ events,[object Object]
Globalization,[object Object],var postDate = Convert.ToDateTime(“1/1/2010”);,[object Object],var postDate = Convert.ToDateTime(“1/1/2010”, ,[object Object],                                                                            CultureInfo.InvariantCulture);,[object Object],Culture-specific information should be explicitly specified if it is possible.,[object Object],Call appropriate overload of a method and pass,[object Object],System.Globalization.CultureInfo.CurrentCulture,[object Object],System.Globalization.CultureInfo.InvariantCulture,[object Object]
Stop Exceptions BEFORE They Happen!,[object Object],Defensive Programming,[object Object]
Prevent Exceptions/ Issues,[object Object],Practice Defensive Programming!,[object Object],Any code that might cause an exception (accessing files, using objects like DataSets etc.) should check the object (depending on the type) so an Exception is not thrown,[object Object],For example, call File.Exists to avoid a FileNotFoundException,[object Object],Check and object for null,[object Object],Check a DataSet for rows,[object Object],Check an Array for bounds,[object Object],Check String for null or empty,[object Object],Cleaning up unused objects!,[object Object]
All Data Is Bad…,[object Object],Until Verified!,[object Object]
Parameters,[object Object],Always check for valid parameter arguments,[object Object],Perform argument validation for every public or protected method,[object Object],Throw meaningful exceptions to the developer for invalid parameter arguments,[object Object],Use the System.ArgumentException class,[object Object],Or your own class derived from System.ArgumentException ,[object Object]
Enums,[object Object],Never assume that Enum arguments will be in the defined range.,[object Object],Enums are just an Int32, so any valid number in that range could be sent in!,[object Object],Always use Enum.IsDefined to verify value before using!,[object Object]
Exceptions,[object Object],When performing any operation that could cause an exception, wrap in Try - Catch block,[object Object],Use System.Environment.FailFast instead if unsafe for further execution,[object Object],Do not catch non-specific exceptions (for common API’s),[object Object],Use Finally for cleanup code,[object Object],When throwing Exceptions try using from System instead of creating custom Exceptions,[object Object],Use MyApplication_UnhandledException event in VB.NET WinForm apps,[object Object],Use Application_Error event in ASP.NET apps,[object Object]
Code Style,[object Object]
Commenting,[object Object],Comment your code!,[object Object],While coding or before,[object Object],Keep it short and understandable,[object Object],Mark changes with explanation, who changed it and the date (if that is your company standard),[object Object],NEVER WAIT UNTIL AFTER YOU ARE DONE CODING!,[object Object]
Xml Commenting,[object Object],Now supported by VB.NET and C#!,[object Object],Comment all public classes and methods!,[object Object],XML can be turned into help docs, help html with applications like Sandcastle,[object Object],http://sandcastle.notlong.com,[object Object],Very useful for teams and documentation for users.,[object Object],Make this easy by using GhostDoc,[object Object],http://ghostdoc.notlong.com,[object Object]
Back-2-Basics: .NET Coding Standards For The Real World (2011)
Summary,[object Object]
Products To Help Out,[object Object],StyleCop,[object Object],http://stylecop.notlong.com,[object Object],CodeIt.Right,[object Object],http://codeitright.notlong.com,[object Object],FXCop,[object Object],http://fxcop.notlong.com,[object Object],Or Use Analyze in VS Team Systems,[object Object],Refactor Pro! For Visual Studio,[object Object],http://refactorpro.notlong.com ,[object Object],I Use All 4!,[object Object],36,[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Working With Legacy Code
Working With Legacy CodeWorking With Legacy Code
Working With Legacy CodeAndrea Polci
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy CodeNaresh Jain
 
Introduction to automated quality assurance
Introduction to automated quality assuranceIntroduction to automated quality assurance
Introduction to automated quality assurancePhilip Johnson
 
findbugs Bernhard Merkle
findbugs Bernhard Merklefindbugs Bernhard Merkle
findbugs Bernhard Merklebmerkle
 
Finding bugs that matter with Findbugs
Finding bugs that matter with FindbugsFinding bugs that matter with Findbugs
Finding bugs that matter with FindbugsCarol McDonald
 
Working Effectively with Legacy Code
Working Effectively with Legacy CodeWorking Effectively with Legacy Code
Working Effectively with Legacy Codeslicklash
 
TDD and the Legacy Code Black Hole
TDD and the Legacy Code Black HoleTDD and the Legacy Code Black Hole
TDD and the Legacy Code Black HoleNoam Kfir
 
Working Effectively with Legacy Code: Lessons in Practice
Working Effectively with Legacy Code: Lessons in PracticeWorking Effectively with Legacy Code: Lessons in Practice
Working Effectively with Legacy Code: Lessons in PracticeAmar Shah
 
Refactoring - An Introduction
Refactoring - An IntroductionRefactoring - An Introduction
Refactoring - An IntroductionGiorgio Vespucci
 
Back-2-Basics: .NET Coding Standards For The Real World
Back-2-Basics: .NET Coding Standards For The Real WorldBack-2-Basics: .NET Coding Standards For The Real World
Back-2-Basics: .NET Coding Standards For The Real WorldDavid McCarter
 
Mockito vs JMockit, battle of the mocking frameworks
Mockito vs JMockit, battle of the mocking frameworksMockito vs JMockit, battle of the mocking frameworks
Mockito vs JMockit, battle of the mocking frameworksEndranNL
 
JMockit Framework Overview
JMockit Framework OverviewJMockit Framework Overview
JMockit Framework OverviewMario Peshev
 
Stopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestStopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestSeb Rose
 
Journey's diary developing a framework using tdd
Journey's diary   developing a framework using tddJourney's diary   developing a framework using tdd
Journey's diary developing a framework using tddeduardomg23
 

Was ist angesagt? (20)

Working With Legacy Code
Working With Legacy CodeWorking With Legacy Code
Working With Legacy Code
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy Code
 
Introduction to automated quality assurance
Introduction to automated quality assuranceIntroduction to automated quality assurance
Introduction to automated quality assurance
 
findbugs Bernhard Merkle
findbugs Bernhard Merklefindbugs Bernhard Merkle
findbugs Bernhard Merkle
 
Finding bugs that matter with Findbugs
Finding bugs that matter with FindbugsFinding bugs that matter with Findbugs
Finding bugs that matter with Findbugs
 
Working Effectively with Legacy Code
Working Effectively with Legacy CodeWorking Effectively with Legacy Code
Working Effectively with Legacy Code
 
TDD and the Legacy Code Black Hole
TDD and the Legacy Code Black HoleTDD and the Legacy Code Black Hole
TDD and the Legacy Code Black Hole
 
Working Effectively with Legacy Code: Lessons in Practice
Working Effectively with Legacy Code: Lessons in PracticeWorking Effectively with Legacy Code: Lessons in Practice
Working Effectively with Legacy Code: Lessons in Practice
 
Refactoring
RefactoringRefactoring
Refactoring
 
Working Effectively with Legacy Code
Working Effectively with Legacy CodeWorking Effectively with Legacy Code
Working Effectively with Legacy Code
 
JMockit
JMockitJMockit
JMockit
 
Refactoring - An Introduction
Refactoring - An IntroductionRefactoring - An Introduction
Refactoring - An Introduction
 
Write readable tests
Write readable testsWrite readable tests
Write readable tests
 
Back-2-Basics: .NET Coding Standards For The Real World
Back-2-Basics: .NET Coding Standards For The Real WorldBack-2-Basics: .NET Coding Standards For The Real World
Back-2-Basics: .NET Coding Standards For The Real World
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
Mockito vs JMockit, battle of the mocking frameworks
Mockito vs JMockit, battle of the mocking frameworksMockito vs JMockit, battle of the mocking frameworks
Mockito vs JMockit, battle of the mocking frameworks
 
Unit Testing in Java
Unit Testing in JavaUnit Testing in Java
Unit Testing in Java
 
JMockit Framework Overview
JMockit Framework OverviewJMockit Framework Overview
JMockit Framework Overview
 
Stopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestStopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under Test
 
Journey's diary developing a framework using tdd
Journey's diary   developing a framework using tddJourney's diary   developing a framework using tdd
Journey's diary developing a framework using tdd
 

Ähnlich wie Back-2-Basics: .NET Coding Standards For The Real World (2011)

Back-2-Basics: .NET Coding Standards For The Real World
Back-2-Basics: .NET Coding Standards For The Real WorldBack-2-Basics: .NET Coding Standards For The Real World
Back-2-Basics: .NET Coding Standards For The Real WorldDavid McCarter
 
Bring the fun back to java
Bring the fun back to javaBring the fun back to java
Bring the fun back to javaciklum_ods
 
Dart for Java Developers
Dart for Java DevelopersDart for Java Developers
Dart for Java DevelopersYakov Fain
 
Commenting in Agile Development
Commenting in Agile DevelopmentCommenting in Agile Development
Commenting in Agile DevelopmentJan Rybák Benetka
 
Oleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoCOleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoCOleksandr Valetskyy
 
CSharp presentation and software developement
CSharp presentation and software developementCSharp presentation and software developement
CSharp presentation and software developementfrwebhelp
 
The Naked Bundle - Symfony Live London 2014
The Naked Bundle - Symfony Live London 2014The Naked Bundle - Symfony Live London 2014
The Naked Bundle - Symfony Live London 2014Matthias Noback
 
Best Coding Practices For Android Application Development
Best Coding Practices For Android Application DevelopmentBest Coding Practices For Android Application Development
Best Coding Practices For Android Application DevelopmentKetan Raval
 
Annotation Processing
Annotation ProcessingAnnotation Processing
Annotation ProcessingJintin Lin
 
Coding standards for java
Coding standards for javaCoding standards for java
Coding standards for javamaheshm1206
 
The Naked Bundle - Tryout
The Naked Bundle - TryoutThe Naked Bundle - Tryout
The Naked Bundle - TryoutMatthias Noback
 
Android Open source coading guidel ine
Android Open source coading guidel ineAndroid Open source coading guidel ine
Android Open source coading guidel inePragati Singh
 
The Naked Bundle - Symfony Usergroup Belgium
The Naked Bundle - Symfony Usergroup BelgiumThe Naked Bundle - Symfony Usergroup Belgium
The Naked Bundle - Symfony Usergroup BelgiumMatthias Noback
 
Introduction
IntroductionIntroduction
Introductionrichsoden
 

Ähnlich wie Back-2-Basics: .NET Coding Standards For The Real World (2011) (20)

Back-2-Basics: .NET Coding Standards For The Real World
Back-2-Basics: .NET Coding Standards For The Real WorldBack-2-Basics: .NET Coding Standards For The Real World
Back-2-Basics: .NET Coding Standards For The Real World
 
Bring the fun back to java
Bring the fun back to javaBring the fun back to java
Bring the fun back to java
 
Dart for Java Developers
Dart for Java DevelopersDart for Java Developers
Dart for Java Developers
 
Commenting in Agile Development
Commenting in Agile DevelopmentCommenting in Agile Development
Commenting in Agile Development
 
Generics
GenericsGenerics
Generics
 
Ej Chpt#4 Final
Ej Chpt#4 FinalEj Chpt#4 Final
Ej Chpt#4 Final
 
Oleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoCOleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoC
 
Java Basics
Java BasicsJava Basics
Java Basics
 
CSharp presentation and software developement
CSharp presentation and software developementCSharp presentation and software developement
CSharp presentation and software developement
 
The Naked Bundle - Symfony Live London 2014
The Naked Bundle - Symfony Live London 2014The Naked Bundle - Symfony Live London 2014
The Naked Bundle - Symfony Live London 2014
 
Best Coding Practices For Android Application Development
Best Coding Practices For Android Application DevelopmentBest Coding Practices For Android Application Development
Best Coding Practices For Android Application Development
 
Java For Automation
Java   For AutomationJava   For Automation
Java For Automation
 
Annotation Processing
Annotation ProcessingAnnotation Processing
Annotation Processing
 
srgoc
srgocsrgoc
srgoc
 
Coding standards for java
Coding standards for javaCoding standards for java
Coding standards for java
 
The Naked Bundle - Tryout
The Naked Bundle - TryoutThe Naked Bundle - Tryout
The Naked Bundle - Tryout
 
J Unit
J UnitJ Unit
J Unit
 
Android Open source coading guidel ine
Android Open source coading guidel ineAndroid Open source coading guidel ine
Android Open source coading guidel ine
 
The Naked Bundle - Symfony Usergroup Belgium
The Naked Bundle - Symfony Usergroup BelgiumThe Naked Bundle - Symfony Usergroup Belgium
The Naked Bundle - Symfony Usergroup Belgium
 
Introduction
IntroductionIntroduction
Introduction
 

Mehr von David McCarter

Röck Yoür Technical Interview - V3
Röck Yoür Technical Interview - V3Röck Yoür Technical Interview - V3
Röck Yoür Technical Interview - V3David McCarter
 
How To Survive The Technical Interview
How To Survive The Technical InterviewHow To Survive The Technical Interview
How To Survive The Technical InterviewDavid McCarter
 
Real World API Design Using The Entity Framework Services
Real World API Design Using The Entity Framework ServicesReal World API Design Using The Entity Framework Services
Real World API Design Using The Entity Framework ServicesDavid McCarter
 
Building nTier Applications with Entity Framework Services
Building nTier Applications with Entity Framework ServicesBuilding nTier Applications with Entity Framework Services
Building nTier Applications with Entity Framework ServicesDavid McCarter
 
Code Easier With Visual Studio 2010 & Extensions
Code Easier With Visual Studio 2010 & ExtensionsCode Easier With Visual Studio 2010 & Extensions
Code Easier With Visual Studio 2010 & ExtensionsDavid McCarter
 
Back-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETBack-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETDavid McCarter
 
Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)David McCarter
 
Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)David McCarter
 
Back-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETBack-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETDavid McCarter
 
Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)David McCarter
 
Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)David McCarter
 
Building N Tier Applications With Entity Framework Services 2010
Building N Tier Applications With Entity Framework Services 2010Building N Tier Applications With Entity Framework Services 2010
Building N Tier Applications With Entity Framework Services 2010David McCarter
 

Mehr von David McCarter (12)

Röck Yoür Technical Interview - V3
Röck Yoür Technical Interview - V3Röck Yoür Technical Interview - V3
Röck Yoür Technical Interview - V3
 
How To Survive The Technical Interview
How To Survive The Technical InterviewHow To Survive The Technical Interview
How To Survive The Technical Interview
 
Real World API Design Using The Entity Framework Services
Real World API Design Using The Entity Framework ServicesReal World API Design Using The Entity Framework Services
Real World API Design Using The Entity Framework Services
 
Building nTier Applications with Entity Framework Services
Building nTier Applications with Entity Framework ServicesBuilding nTier Applications with Entity Framework Services
Building nTier Applications with Entity Framework Services
 
Code Easier With Visual Studio 2010 & Extensions
Code Easier With Visual Studio 2010 & ExtensionsCode Easier With Visual Studio 2010 & Extensions
Code Easier With Visual Studio 2010 & Extensions
 
Back-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETBack-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NET
 
Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)
 
Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)
 
Back-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETBack-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NET
 
Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)
 
Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)
 
Building N Tier Applications With Entity Framework Services 2010
Building N Tier Applications With Entity Framework Services 2010Building N Tier Applications With Entity Framework Services 2010
Building N Tier Applications With Entity Framework Services 2010
 

Kürzlich hochgeladen

UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 

Kürzlich hochgeladen (20)

UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 

Back-2-Basics: .NET Coding Standards For The Real World (2011)

  • 1.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 37.
  • 38.
  • 39.