Skip to content

Commit 579ea8b

Browse files
committed
.NET 8 and nullable reference types support
1 parent f673661 commit 579ea8b

File tree

261 files changed

+5034
-5296
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

261 files changed

+5034
-5296
lines changed

.editorconfig

+34-42
Original file line numberDiff line numberDiff line change
@@ -51,30 +51,30 @@ dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
5151
# Symbol specifications
5252
dotnet_naming_symbols.interface.applicable_kinds = interface
5353
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
54-
dotnet_naming_symbols.interface.required_modifiers =
54+
dotnet_naming_symbols.interface.required_modifiers =
5555

5656
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
5757
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
58-
dotnet_naming_symbols.types.required_modifiers =
58+
dotnet_naming_symbols.types.required_modifiers =
5959

6060
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
6161
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
62-
dotnet_naming_symbols.non_field_members.required_modifiers =
62+
dotnet_naming_symbols.non_field_members.required_modifiers =
6363

6464
# Naming styles
6565
dotnet_naming_style.begins_with_i.required_prefix = I
66-
dotnet_naming_style.begins_with_i.required_suffix =
67-
dotnet_naming_style.begins_with_i.word_separator =
66+
dotnet_naming_style.begins_with_i.required_suffix =
67+
dotnet_naming_style.begins_with_i.word_separator =
6868
dotnet_naming_style.begins_with_i.capitalization = pascal_case
6969

70-
dotnet_naming_style.pascal_case.required_prefix =
71-
dotnet_naming_style.pascal_case.required_suffix =
72-
dotnet_naming_style.pascal_case.word_separator =
70+
dotnet_naming_style.pascal_case.required_prefix =
71+
dotnet_naming_style.pascal_case.required_suffix =
72+
dotnet_naming_style.pascal_case.word_separator =
7373
dotnet_naming_style.pascal_case.capitalization = pascal_case
7474

75-
dotnet_naming_style.pascal_case.required_prefix =
76-
dotnet_naming_style.pascal_case.required_suffix =
77-
dotnet_naming_style.pascal_case.word_separator =
75+
dotnet_naming_style.pascal_case.required_prefix =
76+
dotnet_naming_style.pascal_case.required_suffix =
77+
dotnet_naming_style.pascal_case.word_separator =
7878
dotnet_naming_style.pascal_case.capitalization = pascal_case
7979

8080
# Code style settings
@@ -92,9 +92,9 @@ dotnet_style_prefer_conditional_expression_over_assignment = true:silent
9292
dotnet_style_prefer_conditional_expression_over_return = true:silent
9393
dotnet_style_prefer_inferred_tuple_names = true:suggestion
9494
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
95-
dotnet_style_prefer_compound_assignment = true:none
95+
dotnet_style_prefer_compound_assignment = true:suggestion
9696
dotnet_style_prefer_simplified_interpolation = true:suggestion
97-
dotnet_style_namespace_match_folder = true:suggestion
97+
dotnet_style_namespace_match_folder = true:none
9898
dotnet_style_operator_placement_when_wrapping = beginning_of_line
9999

100100
# "This." and "Me." qualification. Use is preferred where true but the lightbulbs tend to show up in places
@@ -111,58 +111,50 @@ dotnet_diagnostic.CA1303.severity = none
111111
# IDE0010: Add missing cases
112112
dotnet_diagnostic.IDE0010.severity = none
113113

114-
# IDE0032: Use auto property
115-
dotnet_diagnostic.IDE0032.severity = none
116-
117-
# IDE0045: Convert to conditional expression
118-
dotnet_diagnostic.IDE0045.severity = none
119-
120-
# IDE0046: Convert to conditional expression
121-
dotnet_diagnostic.IDE0046.severity = none
122-
123-
# IDE0047: Remove unnecessary parentheses
124-
dotnet_diagnostic.IDE0047.severity = none
125-
126-
# IDE0055: Fix formatting
127-
dotnet_diagnostic.IDE0055.severity = none
128-
129-
# IDE0058: Expression value is never used
130-
dotnet_diagnostic.IDE0058.severity = none
131-
132114
# IDE1006: Naming Styles
133115
dotnet_diagnostic.IDE1006.severity = none
134116

135117
# These are disabled as we're still targeting .NET Framework as well and I don't want a lot of conditional code
136-
# to suppress these.
118+
# to suppress these or I'm not ready to use them just yet.
137119
# IDE0056: Use index operator
138120
dotnet_diagnostic.IDE0056.severity = none
139121

140122
# IDE0057: Use range operator
141123
dotnet_diagnostic.IDE0057.severity = none
142124

143-
# IDE0063: Use simple 'using' statement
144-
dotnet_diagnostic.IDE0063.severity = none
145-
146125
# IDE0066: Convert switch statement to expression
147126
dotnet_diagnostic.IDE0066.severity = none
148127

149-
# IDE0074: Use compound assignment
150-
dotnet_diagnostic.IDE0074.severity = none
151-
152-
# IDE0090: Use 'new(...)'
153-
dotnet_diagnostic.IDE0090.severity = none
128+
# CA1510: Use ArgumentNullException throw helper
129+
dotnet_diagnostic.CA1510.severity = none
154130

155131
# CA1845: Use span-based 'string.Concat'
156132
dotnet_diagnostic.CA1845.severity = none
157133

158134
# CA1846: Prefer 'AsSpan' over 'Substring'
159135
dotnet_diagnostic.CA1846.severity = none
160136

137+
# CA1863: Use 'CompositeFormat'
138+
dotnet_diagnostic.CA1863.severity = none
139+
140+
# CA1865: Use char overload
141+
dotnet_diagnostic.CA1865.severity = none
142+
143+
# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
144+
dotnet_diagnostic.CA2249.severity = none
145+
146+
# SYSLIB1045: Convert to 'GeneratedRegexAttribute'.
147+
dotnet_diagnostic.SYSLIB1045.severity = none
148+
149+
# SYSLIB1054: Use 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time
150+
dotnet_diagnostic.SYSLIB1054.severity = none
151+
161152
[*.cs]
162153
# CSharp code style settings
163154
csharp_style_var_elsewhere = false:none
164155
csharp_style_var_for_built_in_types = false:none
165156
csharp_style_var_when_type_is_apparent = false:none
157+
csharp_style_prefer_primary_constructors = false:none
166158

167159
csharp_style_expression_bodied_accessors = true:suggestion
168160
csharp_style_expression_bodied_constructors = false:none
@@ -187,15 +179,15 @@ csharp_style_prefer_null_check_over_type_check = true:suggestion
187179
csharp_style_prefer_local_over_anonymous_function = true:suggestion
188180
csharp_style_prefer_index_operator = true:suggestion
189181
csharp_style_prefer_range_operator = true:suggestion
190-
csharp_style_implicit_object_creation_when_type_is_apparent = true:none
182+
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
191183
csharp_style_prefer_tuple_swap = true:suggestion
192184
csharp_style_prefer_utf8_string_literals = true:suggestion
193185
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
194186
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
195187

196188
csharp_prefer_braces = when_multiline:none
197189
csharp_prefer_simple_default_expression = true:suggestion
198-
csharp_prefer_simple_using_statement = true:none
190+
csharp_prefer_simple_using_statement = true:suggestion
199191
csharp_preserve_single_line_blocks = true
200192
csharp_using_directive_placement = outside_namespace:silent
201193

Doc/Content/VersionHistory/VersionHistory.aml

+5
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ Data Interchange (PDI) Library </legacyBold> over the life of the project.</para
1515
<para>Select a version below to see a description of its changes.</para>
1616

1717
<list class="bullet">
18+
<listItem>
19+
<para>
20+
<link xlink:href="54933123-5d15-4a68-b3b4-53e6a583ee01" />
21+
</para>
22+
</listItem>
1823
<listItem>
1924
<para>
2025
<link xlink:href="d1d9a1d2-7495-457e-9095-880ab00515a3" />
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<topic id="54933123-5d15-4a68-b3b4-53e6a583ee01" revisionNumber="1">
3+
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
4+
<introduction>
5+
<para>Release notes for version 2025.1.9.0.</para>
6+
</introduction>
7+
8+
<section>
9+
<content>
10+
<list class="bullet">
11+
<listItem>
12+
<para>Removed support for .NET 6 and added support for .NET 8 and later.</para>
13+
</listItem>
14+
15+
<listItem>
16+
<para>Enabled nullable reference types in all projects and updated the classes to support them.</para>
17+
</listItem>
18+
19+
<listItem>
20+
<para>Fixed an inconsistency with how the version property was applied when parsing vCard files.</para>
21+
</listItem>
22+
23+
</list>
24+
25+
</content>
26+
</section>
27+
28+
<relatedTopics>
29+
<link xlink:href="8885fe94-537b-45a2-84e9-112fa9c976ff" />
30+
</relatedTopics>
31+
32+
</developerConceptualDocument>
33+
</topic>

Doc/ContentLayout.content

+6-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,12 @@
117117
<HelpKeyword index="K" term="history" />
118118
<HelpKeyword index="K" term="version history" />
119119
</HelpKeywords>
120-
<Topic id="d1d9a1d2-7495-457e-9095-880ab00515a3" visible="True" isSelected="true" title="Version 2023.1.2.0">
120+
<Topic id="54933123-5d15-4a68-b3b4-53e6a583ee01" visible="True" isSelected="true" title="Version 2025.1.9.0">
121+
<HelpKeywords>
122+
<HelpKeyword index="K" term="versions, 2025.1.9.0" />
123+
</HelpKeywords>
124+
</Topic>
125+
<Topic id="d1d9a1d2-7495-457e-9095-880ab00515a3" visible="True" title="Version 2023.1.2.0">
121126
<HelpKeywords>
122127
<HelpKeyword index="K" term="versions, 2023.1.2.0" />
123128
</HelpKeywords>

Doc/EWSoftwarePDI.shfbproj

+3-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<FrameworkVersion>.NET Framework 4.0</FrameworkVersion>
3030
<HelpTitle>EWSoftware.PDI Namespace Documentation</HelpTitle>
3131
<CopyrightHref>https://github.com/EWSoftware/PDI</CopyrightHref>
32-
<CopyrightText>[v{%40HelpFileVersion}] Copyright \xA9 2003-2023, Eric Woodruff, All Rights Reserved</CopyrightText>
32+
<CopyrightText>[v{%40HelpFileVersion}] Copyright \xA9 2003-2025, Eric Woodruff, All Rights Reserved</CopyrightText>
3333
<FeedbackEMailAddress>Eric%40EWoodruff.us</FeedbackEMailAddress>
3434
<PresentationStyle>Default2022</PresentationStyle>
3535
<SyntaxFilters>Standard</SyntaxFilters>
@@ -49,7 +49,7 @@
4949
<NamespaceSummaryItem name="EWSoftware.PDI.Web.Design" isDocumented="True">Personal Data Interchange ASP.NET web server control designers developed by Eric Woodruff.</NamespaceSummaryItem>
5050
<NamespaceSummaryItem name="EWSoftware.PDI.Windows.Forms" isDocumented="True">Personal Data Interchange Windows Forms controls developed by Eric Woodruff.</NamespaceSummaryItem>
5151
</NamespaceSummaries>
52-
<HelpFileVersion>2022.1.2.0</HelpFileVersion>
52+
<HelpFileVersion>2025.1.9.0</HelpFileVersion>
5353
<ApiFilter />
5454
<PlugInConfigurations>
5555
<PlugInConfig id="Output Deployment" enabled="True">
@@ -195,6 +195,7 @@
195195
<None Include="Content\VersionHistory\v2020.7.24.0.aml" />
196196
<None Include="Content\VersionHistory\v2021.11.23.0.aml" />
197197
<None Include="Content\VersionHistory\v2023.1.2.0.aml" />
198+
<None Include="Content\VersionHistory\v2025.1.9.0.aml" />
198199
<None Include="Content\Welcome.aml" />
199200
<None Include="Content\VersionHistory\v2.0.0.2.aml" />
200201
<None Include="Content\VersionHistory\v2.0.0.0.aml" />

IgnoredWords.dic

+10
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
1+
busys
12
Dest
23
ics
34
iso
5+
loc
46
Mins
57
navbar
68
nd
9+
pdi
10+
pid
11+
relateds
712
rdt
13+
todos
14+
tos
15+
tz
16+
tzid
17+
utc
818
utils
919
vcalendar
1020
vcard

MasterBuild.bat

-6
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,6 @@ DEL Source\EWSPDIData\bin\Release\*.nupkg
1010
DEL Source\EWSPDIWeb\bin\Release\*.nupkg
1111
DEL Source\EWSPDIWinForms\bin\Release\*.nupkg
1212

13-
IF EXIST "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0" SET "MSBUILD=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\bin\MSBuild.exe"
14-
IF EXIST "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Professional\MSBuild\15.0" SET "MSBUILD=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\bin\MSBuild.exe"
15-
IF EXIST "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0" SET "MSBUILD=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\bin\MSBuild.exe"
16-
IF EXIST "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\MSBuild\Current" SET "MSBUILD=%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin\MSBuild.exe"
17-
IF EXIST "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Professional\MSBuild\Current" SET "MSBUILD=%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Professional\MSBuild\Current\bin\MSBuild.exe"
18-
IF EXIST "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current" SET "MSBUILD=%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\bin\MSBuild.exe"
1913
IF EXIST "%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current" SET "MSBUILD=%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current\bin\MSBuild.exe"
2014
IF EXIST "%ProgramFiles%\Microsoft Visual Studio\2022\Professional\MSBuild\Current" SET "MSBUILD=%ProgramFiles%\Microsoft Visual Studio\2022\Professional\MSBuild\Current\bin\MSBuild.exe"
2115
IF EXIST "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current" SET "MSBUILD=%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\bin\MSBuild.exe"

Source/CSharpDemos/CalendarBrowser/AboutDlg.cs

+12-9
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
//===============================================================================================================
22
// File : AboutDlg.cs
33
// Author : Eric Woodruff
4-
// Updated : 11/23/2018
5-
// Note : Copyright 2004-2018, Eric Woodruff, All rights reserved
6-
// Compiler: Microsoft Visual C#
4+
// Updated : 01/05/2025
5+
// Note : Copyright 2004-2025, Eric Woodruff, All rights reserved
76
//
87
// This form is used to display application version information
98
//
@@ -50,13 +49,13 @@ public AboutDlg()
5049
private void AboutDlg_Load(object sender, EventArgs e)
5150
{
5251
// Get assembly information not available from the application object
53-
Assembly asm = Assembly.GetEntryAssembly();
52+
Assembly asm = Assembly.GetEntryAssembly()!;
5453
AssemblyTitleAttribute title = (AssemblyTitleAttribute)
55-
AssemblyTitleAttribute.GetCustomAttribute(asm, typeof(AssemblyTitleAttribute));
54+
Attribute.GetCustomAttribute(asm, typeof(AssemblyTitleAttribute))!;
5655
AssemblyCopyrightAttribute copyright = (AssemblyCopyrightAttribute)
57-
AssemblyCopyrightAttribute.GetCustomAttribute(asm, typeof(AssemblyCopyrightAttribute));
56+
Attribute.GetCustomAttribute(asm, typeof(AssemblyCopyrightAttribute))!;
5857
AssemblyDescriptionAttribute desc = (AssemblyDescriptionAttribute)
59-
AssemblyDescriptionAttribute.GetCustomAttribute(asm, typeof(AssemblyDescriptionAttribute));
58+
Attribute.GetCustomAttribute(asm, typeof(AssemblyDescriptionAttribute))!;
6059

6160
// Set the labels
6261
lblName.Text = title.Title;
@@ -68,7 +67,7 @@ private void AboutDlg_Load(object sender, EventArgs e)
6867
foreach(AssemblyName an in asm.GetReferencedAssemblies())
6968
{
7069
ListViewItem lvi = lvComponents.Items.Add(an.Name);
71-
lvi.SubItems.Add(an.Version.ToString());
70+
lvi.SubItems.Add(an.Version!.ToString());
7271
}
7372

7473
lvComponents.Sorting = SortOrder.Ascending;
@@ -109,7 +108,11 @@ private void lnkHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
109108
try
110109
{
111110
// Launch the e-mail URL, this will fail if user does not have an association for e-mail URLs
112-
System.Diagnostics.Process.Start((string)e.Link.LinkData);
111+
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
112+
{
113+
FileName = (string)e.Link!.LinkData!,
114+
UseShellExecute = true,
115+
});
113116
}
114117
catch(Exception ex)
115118
{

0 commit comments

Comments
 (0)