Changes between Version 15 and Version 16 of CodeBestPractices
- Timestamp:
- 2012-03-25 20:26:17 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CodeBestPractices
v15 v16 5 5 .NET is in theory system-independent, and .NET applications can be deployed under Unix, Linux, MacOS, etc using runtime environments such as [http://www.mono-project.com/Main_Page Mono]. However, not all .NET features work under Mono, most notably the Microsoft.!VisualBasic assembly. This can prove problematic since every Visual Basic project by default receives a reference to this assembly. 6 6 7 In !EwE we have worked around this problem by redefining key types and constants from the Microsoft.!VisualBasic assembly in [http://webservice.ecopath.org/Ecopath/Help/Index.aspx EwEUtils]. You should not use Chr, Asc, IIF, !TriState, !MsgBox, !UBound, !InStr, vbTab, !vbCrLF and a whole whack of other old and familiar constructs if you wish your application to run on any other OS than Windows.7 In EwE we have worked around this problem by redefining key types and constants from the Microsoft.!VisualBasic assembly in [http://webservice.ecopath.org/Ecopath/Help/Index.aspx EwEUtils]. You should not use Chr, Asc, IIF, !TriState, !MsgBox, !UBound, !InStr, vbTab, !vbCrLF and a whole whack of other old and familiar constructs if you wish your application to run on any other OS than Windows. 8 8 9 9 To remove reliance on Microsoft.!VisualBasic simply remove the auto-generated reference in the project properties References page. For most constructs .NET offers a solid alternative (for instance Array.!GetUpperBound()), but for other constructs you may have to be creative (vcTab becomes Convert.!ToChar(9).!ToString() - or do you have a better idea?).