Presentation is loading. Please wait.

Presentation is loading. Please wait.

ITF11006.NET Industrial Programming. Guidelines – Development Guidelines – UX Guidelines Quality Measures – Code Metrics – Code Analyses Robustness –

Similar presentations


Presentation on theme: "ITF11006.NET Industrial Programming. Guidelines – Development Guidelines – UX Guidelines Quality Measures – Code Metrics – Code Analyses Robustness –"— Presentation transcript:

1 ITF11006.NET Industrial Programming

2 Guidelines – Development Guidelines – UX Guidelines Quality Measures – Code Metrics – Code Analyses Robustness – Error handling (exceptions) – Resource handling

3 Guidelines Design Guidelines for Developing Class Libraries (http://msdn.microsoft.com/en-us/library/ms229042.aspx) Design Guidelines for Developing Class Librarieshttp://msdn.microsoft.com/en-us/library/ms229042.aspx – Guidelines for Names Capitalization Conventions (http://msdn.microsoft.com/en-us/library/ms229043(v=vs.100).aspx) Capitalization Conventionshttp://msdn.microsoft.com/en-us/library/ms229043(v=vs.100).aspx) Use Pascal casing ALLWAYS Except, use camel casing for: – parameter names – variables and (none-public) fields – Member Design Guidelines Choosing Between Properties and Methods (http://msdn.microsoft.com/en-us/library/ms229054.aspx) Choosing Between Properties and Methods – Never public fields (except for structs) Documentation of code

4 Documentable Entities – Class / Struct – Method –…–… Cannot document Namespace through XML tag Shows up in – Object Browser – Intellisense – Library Documentation (http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx) Library Documentation

5 Documentation of code (cont.) XML tags (http://msdn.microsoft.com/en-us/library/5ast78ax.aspx) XML tags – summary – param – example – code – exception – returns GhostDoc (http://submain.com/products/ghostdoc.aspx) GhostDoc

6 Guidelines Design Guidelines for Developing Class Libraries (http://msdn.microsoft.com/en-us/library/ms229042.aspx) Design Guidelines for Developing Class Librarieshttp://msdn.microsoft.com/en-us/library/ms229042.aspx – Guidelines for Names Capitalization Conventions (http://msdn.microsoft.com/en-us/library/ms229043(v=vs.100).aspx) Capitalization Conventionshttp://msdn.microsoft.com/en-us/library/ms229043(v=vs.100).aspx) – Member Design Guidelines Choosing Between Properties and Methods (http://msdn.microsoft.com/en-us/library/ms229054.aspx) Choosing Between Properties and Methods Documentation of code UX Guidelines

7 Windows Size – Default – Min – Max Windows Position Resizing must work! Clean layout Shortcuts Tab-order

8 Industrial Programming Guidelines – Development Guidelines – UX Guidelines Quality Measures – Code Metrics – Code Analyses Robustness – Error handling (exceptions) – Resource handling

9 Code Metrics Cyclomatic complexity – Structural complexity of code – Calculates number of different code paths – High values requires more unit tests to cover all paths Class Coupling – Measures the Efferent Coupling, the number of classes this method depends on – High coupling means brittle, likely to change, probably unfocused and lack of responsibility Lines of Code – Based on IL, so approximate, but better than source – Excludes white space, comments, braces, types etc.

10 Code Metrics (cont.) Maintainability Index: – A weighted number based on Halstead volume, cyclomatic complexity and lines of code – Maintainability Index = MAX(0,(171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code))*100 / 171) – A green rating is between 20 and 100 and indicates that the code has good maintainability. A yellow rating is between 10 and 19 and indicates that the code is moderately maintainable. A red rating is a rating between 0 and 9 and indicates low maintainability.

11 Code Metrics MetricGreenYellowRed Maintainability Index100-6060-40<40 Cyclomatic complexity<1010-20>20 Class Coupling<1010-20>20 Lines of Code<1010-30>30 Use MS official sample – “Image slideshow in full screen mode” ( http://code.msdn.microsoft.com/CSImageFullScreenSlideShow-79e29568 )

12 Code Metrics – VS 2010

13 Code Metrics – Excel

14 Code Analyses Rule Set Rule Action Automatic / Manual execution Use from Start

15 Code Analyses - Settings

16 Code Analyses – Results/Fix

17 Code Analyses – Requirements Microsoft Minimum Recommended Rules +Microsoft.Naming (All) HiOf.Net.ruleset

18 Industrial Programming Guidelines – Development Guidelines – UX Guidelines Quality Measures – Code Metrics – Code Analyses Robustness – Defensive Programming – Error handling (exceptions) – Resource handling

19 Defensive Programming Handle anticipated deviations – Missing Directory / File – Lack of database connectivity – Lost database connection Verify input data – Do not let the user enter erroneous data Guard against SQL injection – Use SQL procedures / bind variables

20 Exception Handling

21 Catching Exceptions

22 Exceptions Design Guidelines for Exceptions (http://msdn.microsoft.com/en-us/library/ms229014.aspx) Design Guidelines for Exceptions Do not throw System.Exception Inherit from System.Exception End with Exception

23 User Defined Exceptions public class NewException : BaseException, ISerializable { public NewException() { // Add implementation. } public NewException(string message) { // Add implementation. } public NewException(string message, Exception inner) { // Add implementation. } // This constructor is needed for serialization. protected NewException(SerializationInfo info, StreamingContext context) { // Add implementation. }

24 Exceptions Exception handling Throwing exceptions Exception info – Message – InnerException Library code rethrows/do not catch Clients shall handle exceptions

25 Resource handling Unmanaged resources – Implementing IDisposable – Consuming Using vs. try/finally Closing vs Disposing – Database, files, …


Download ppt "ITF11006.NET Industrial Programming. Guidelines – Development Guidelines – UX Guidelines Quality Measures – Code Metrics – Code Analyses Robustness –"

Similar presentations


Ads by Google