├── .gitignore
├── Desktop-Dev
├── netcore-workshop-desktop.pptx
└── readme.md
├── LICENSE
├── Mobile-Dev
├── netcore-workshop-mobile.pptx
└── readme.md
├── NET-Core-Containers
├── netcore-containers.pptx
└── readme.md
├── NET-Standard
├── Labs
│ ├── netstandard-dataset-demo
│ │ ├── Begin
│ │ │ ├── Northwind.sln
│ │ │ └── Northwind
│ │ │ │ ├── App.config
│ │ │ │ ├── MainForm.Designer.cs
│ │ │ │ ├── MainForm.cs
│ │ │ │ ├── MainForm.resx
│ │ │ │ ├── Northwind.csproj
│ │ │ │ ├── NorthwindDb.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ │ └── northwind.xml
│ │ └── End
│ │ │ ├── Northwind.Data
│ │ │ ├── Northwind.Data.csproj
│ │ │ ├── NorthwindDb.cs
│ │ │ └── northwind.xml
│ │ │ ├── Northwind.Web
│ │ │ ├── Northwind.Web.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── launchSettings.json
│ │ │ └── Startup.cs
│ │ │ ├── Northwind.sln
│ │ │ ├── Northwind
│ │ │ ├── App.config
│ │ │ ├── MainForm.Designer.cs
│ │ │ ├── MainForm.cs
│ │ │ ├── MainForm.resx
│ │ │ ├── Northwind.csproj
│ │ │ ├── Program.cs
│ │ │ └── Properties
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ └── global.json
│ └── netstandard-gps-demo
│ │ ├── Begin
│ │ ├── App_Net461
│ │ │ ├── App.config
│ │ │ ├── App_Net461.csproj
│ │ │ ├── Form1.resx
│ │ │ ├── MainForm.Designer.cs
│ │ │ ├── MainForm.cs
│ │ │ ├── MainForm.resx
│ │ │ ├── Program.cs
│ │ │ └── Properties
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ ├── App_Uwp
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── App_Uwp.csproj
│ │ │ ├── Assets
│ │ │ │ ├── LockScreenLogo.scale-200.png
│ │ │ │ ├── SplashScreen.scale-200.png
│ │ │ │ ├── Square150x150Logo.scale-200.png
│ │ │ │ ├── Square44x44Logo.scale-200.png
│ │ │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ │ │ ├── StoreLogo.png
│ │ │ │ └── Wide310x150Logo.scale-200.png
│ │ │ ├── MainPage.xaml
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── Package.appxmanifest
│ │ │ └── Properties
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ └── Default.rd.xml
│ │ ├── Gps_Net461
│ │ │ ├── GpsLocation.cs
│ │ │ ├── Gps_Net461.csproj
│ │ │ └── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ ├── Gps_Uwp
│ │ │ ├── GpsLocation.cs
│ │ │ ├── Gps_Uwp.csproj
│ │ │ └── Properties
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ └── Gps_Uwp.rd.xml
│ │ └── NetStandard-Gps.sln
│ │ └── End
│ │ ├── App_Net461
│ │ ├── App.config
│ │ ├── App_Net461.csproj
│ │ ├── Form1.resx
│ │ ├── MainForm.Designer.cs
│ │ ├── MainForm.cs
│ │ ├── MainForm.resx
│ │ ├── Program.cs
│ │ └── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── App_Uwp
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── App_Uwp.csproj
│ │ ├── Assets
│ │ │ ├── LockScreenLogo.scale-200.png
│ │ │ ├── SplashScreen.scale-200.png
│ │ │ ├── Square150x150Logo.scale-200.png
│ │ │ ├── Square44x44Logo.scale-200.png
│ │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ │ ├── StoreLogo.png
│ │ │ └── Wide310x150Logo.scale-200.png
│ │ ├── MainPage.xaml
│ │ ├── MainPage.xaml.cs
│ │ ├── Package.appxmanifest
│ │ └── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ └── Default.rd.xml
│ │ ├── Gps
│ │ ├── Gps.csproj
│ │ └── GpsLocation.cs
│ │ └── NetStandard-Gps.sln
├── netcore-workshop-netstandard.pptx
└── readme.md
├── Overview-Tools-Acquisition
├── netcore-workshop-overview-tools.pptx
└── readme.md
├── Porting-From-NET-Framework
├── netcore-workshop-porting.pptx
└── readme.md
├── Web-Dev
├── Images
│ └── new-webapp-individual-accounts.png
├── netcore-workshop-webdev.pptx
├── readme.md
├── single-page-applications.md
└── tag-helpers.md
└── readme.md
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.userosscache
8 | *.sln.docstates
9 | *.DS_Store
10 |
11 | # User-specific files (MonoDevelop/Xamarin Studio)
12 | *.userprefs
13 |
14 | # Build results
15 | [Dd]ebug/
16 | [Dd]ebugPublic/
17 | [Rr]elease/
18 | [Rr]eleases/
19 | x64/
20 | x86/
21 | bld/
22 | [Bb]in/
23 | [Oo]bj/
24 | [Ll]og/
25 |
26 | # Visual Studio 2015 cache/options directory
27 | .vs/
28 | # Uncomment if you have tasks that create the project's static files in wwwroot
29 | #wwwroot/
30 |
31 | # MSTest test Results
32 | [Tt]est[Rr]esult*/
33 | [Bb]uild[Ll]og.*
34 |
35 | # NUNIT
36 | *.VisualState.xml
37 | TestResult.xml
38 |
39 | # Build Results of an ATL Project
40 | [Dd]ebugPS/
41 | [Rr]eleasePS/
42 | dlldata.c
43 |
44 | # DNX
45 | project.lock.json
46 | artifacts/
47 |
48 | *_i.c
49 | *_p.c
50 | *_i.h
51 | *.ilk
52 | *.meta
53 | *.obj
54 | *.pch
55 | *.pdb
56 | *.pgc
57 | *.pgd
58 | *.rsp
59 | *.sbr
60 | *.tlb
61 | *.tli
62 | *.tlh
63 | *.tmp
64 | *.tmp_proj
65 | *.log
66 | *.vspscc
67 | *.vssscc
68 | .builds
69 | *.pidb
70 | *.svclog
71 | *.scc
72 |
73 | # Chutzpah Test files
74 | _Chutzpah*
75 |
76 | # Visual C++ cache files
77 | ipch/
78 | *.aps
79 | *.ncb
80 | *.opendb
81 | *.opensdf
82 | *.sdf
83 | *.cachefile
84 | *.VC.db
85 | *.VC.VC.opendb
86 |
87 | # Visual Studio profiler
88 | *.psess
89 | *.vsp
90 | *.vspx
91 | *.sap
92 |
93 | # TFS 2012 Local Workspace
94 | $tf/
95 |
96 | # Guidance Automation Toolkit
97 | *.gpState
98 |
99 | # ReSharper is a .NET coding add-in
100 | _ReSharper*/
101 | *.[Rr]e[Ss]harper
102 | *.DotSettings.user
103 |
104 | # JustCode is a .NET coding add-in
105 | .JustCode
106 |
107 | # TeamCity is a build add-in
108 | _TeamCity*
109 |
110 | # DotCover is a Code Coverage Tool
111 | *.dotCover
112 |
113 | # NCrunch
114 | _NCrunch_*
115 | .*crunch*.local.xml
116 | nCrunchTemp_*
117 |
118 | # MightyMoose
119 | *.mm.*
120 | AutoTest.Net/
121 |
122 | # Web workbench (sass)
123 | .sass-cache/
124 |
125 | # Installshield output folder
126 | [Ee]xpress/
127 |
128 | # DocProject is a documentation generator add-in
129 | DocProject/buildhelp/
130 | DocProject/Help/*.HxT
131 | DocProject/Help/*.HxC
132 | DocProject/Help/*.hhc
133 | DocProject/Help/*.hhk
134 | DocProject/Help/*.hhp
135 | DocProject/Help/Html2
136 | DocProject/Help/html
137 |
138 | # Click-Once directory
139 | publish/
140 |
141 | # Publish Web Output
142 | *.[Pp]ublish.xml
143 | *.azurePubxml
144 | # TODO: Comment the next line if you want to checkin your web deploy settings
145 | # but database connection strings (with potential passwords) will be unencrypted
146 | *.pubxml
147 | *.publishproj
148 |
149 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
150 | # checkin your Azure Web App publish settings, but sensitive information contained
151 | # in these scripts will be unencrypted
152 | PublishScripts/
153 |
154 | # NuGet Packages
155 | *.nupkg
156 | # The packages folder can be ignored because of Package Restore
157 | **/packages/*
158 | # except build/, which is used as an MSBuild target.
159 | !**/packages/build/
160 | # Uncomment if necessary however generally it will be regenerated when needed
161 | #!**/packages/repositories.config
162 | # NuGet v3's project.json files produces more ignoreable files
163 | *.nuget.props
164 | *.nuget.targets
165 |
166 | # Microsoft Azure Build Output
167 | csx/
168 | *.build.csdef
169 |
170 | # Microsoft Azure Emulator
171 | ecf/
172 | rcf/
173 |
174 | # Windows Store app package directories and files
175 | AppPackages/
176 | BundleArtifacts/
177 | Package.StoreAssociation.xml
178 | _pkginfo.txt
179 |
180 | # Visual Studio cache files
181 | # files ending in .cache can be ignored
182 | *.[Cc]ache
183 | # but keep track of directories ending in .cache
184 | !*.[Cc]ache/
185 |
186 | # Others
187 | ClientBin/
188 | ~$*
189 | *~
190 | *.dbmdl
191 | *.dbproj.schemaview
192 | *.pfx
193 | *.publishsettings
194 | node_modules/
195 | orleans.codegen.cs
196 |
197 | # Since there are multiple workflows, uncomment next line to ignore bower_components
198 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
199 | #bower_components/
200 |
201 | # RIA/Silverlight projects
202 | Generated_Code/
203 |
204 | # Backup & report files from converting an old project file
205 | # to a newer Visual Studio version. Backup files are not needed,
206 | # because we have git ;-)
207 | _UpgradeReport_Files/
208 | Backup*/
209 | UpgradeLog*.XML
210 | UpgradeLog*.htm
211 |
212 | # SQL Server files
213 | *.mdf
214 | *.ldf
215 |
216 | # Business Intelligence projects
217 | *.rdl.data
218 | *.bim.layout
219 | *.bim_*.settings
220 |
221 | # Microsoft Fakes
222 | FakesAssemblies/
223 |
224 | # GhostDoc plugin setting file
225 | *.GhostDoc.xml
226 |
227 | # Node.js Tools for Visual Studio
228 | .ntvs_analysis.dat
229 |
230 | # Visual Studio 6 build log
231 | *.plg
232 |
233 | # Visual Studio 6 workspace options file
234 | *.opt
235 |
236 | # Visual Studio LightSwitch build output
237 | **/*.HTMLClient/GeneratedArtifacts
238 | **/*.DesktopClient/GeneratedArtifacts
239 | **/*.DesktopClient/ModelManifest.xml
240 | **/*.Server/GeneratedArtifacts
241 | **/*.Server/ModelManifest.xml
242 | _Pvt_Extensions
243 |
244 | # Paket dependency manager
245 | .paket/paket.exe
246 | paket-files/
247 |
248 | # FAKE - F# Make
249 | .fake/
250 |
251 | # JetBrains Rider
252 | .idea/
253 | *.sln.iml
254 |
--------------------------------------------------------------------------------
/Desktop-Dev/netcore-workshop-desktop.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/Desktop-Dev/netcore-workshop-desktop.pptx
--------------------------------------------------------------------------------
/Desktop-Dev/readme.md:
--------------------------------------------------------------------------------
1 | ## Desktop Development with .NET Core
2 |
3 | ### New Windows Forms application
4 | 1. Create a new application using `dotnet new winforms`
5 | 1. Run the application using `dotnet run`
6 | 1. Inspect the code, modify and re-run if desired.
7 |
8 | ### New WPF application
9 | 1. Create a new application using `dotnet new wpf`
10 | 1. Run the application using `dotnet run`
11 | 1. Inspect the code, modify and re-run if desired.
12 |
13 | ### Porting from .NET Framework to .NET Core
14 | 1. Follow the steps in [this tutorial](https://devblogs.microsoft.com/dotnet/porting-desktop-apps-to-net-core/).
15 | 1. If time permits, follow this more in-depth tutorial: https://aka.ms/porting-to-netcore3
16 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Jon Galloway
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Mobile-Dev/netcore-workshop-mobile.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/Mobile-Dev/netcore-workshop-mobile.pptx
--------------------------------------------------------------------------------
/Mobile-Dev/readme.md:
--------------------------------------------------------------------------------
1 | In this lab, we'll follow [this quickstart]( https://docs.microsoft.com/en-us/xamarin/get-started/quickstarts/multi-page).
--------------------------------------------------------------------------------
/NET-Core-Containers/netcore-containers.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Core-Containers/netcore-containers.pptx
--------------------------------------------------------------------------------
/NET-Core-Containers/readme.md:
--------------------------------------------------------------------------------
1 | # .NET Core Microservice (1 hour)
2 |
3 | > Okay, we've got a cool, lightweight, cross-platform framework, what can we do with it? How about building out and deploying a microservices architecture? We'll also cover some more advanced requirements, like health checks, orchestration, and deployment.
4 |
5 | ## .NET Core on Docker
6 | For this lab, use the [Building Docker Images for .NET Core Applications
7 | ](https://docs.microsoft.com/en-us/dotnet/articles/core/docker/building-net-docker-images) tutorial.
8 |
9 | ## Visual Studio Docker Tools
10 | For this lab, use the [Visual Studio Tools for Docker
11 | ](https://docs.microsoft.com/en-us/dotnet/articles/core/docker/visual-studio-tools-for-docker) tutorial.
12 |
13 | ## eShopOnContainers
14 | For this lab, we'll be working through the [Setting eShopOnContainer solution up in a Visual Studio 2017 environment](https://github.com/dotnet-architecture/eShopOnContainers/wiki/02.-Setting-eShopOnContainer-solution-up-in-a-Visual-Studio-2017-environment) tutorial.
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26524.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Northwind", "Northwind\Northwind.csproj", "{12EB112B-A120-45C6-9C61-0A4F13C8C4A4}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {12EB112B-A120-45C6-9C61-0A4F13C8C4A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {12EB112B-A120-45C6-9C61-0A4F13C8C4A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {12EB112B-A120-45C6-9C61-0A4F13C8C4A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {12EB112B-A120-45C6-9C61-0A4F13C8C4A4}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/MainForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace Northwind
2 | {
3 | partial class MainForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.loadButton = new System.Windows.Forms.Button();
32 | this.textBox = new System.Windows.Forms.TextBox();
33 | this.SuspendLayout();
34 | //
35 | // loadButton
36 | //
37 | this.loadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
38 | this.loadButton.Location = new System.Drawing.Point(554, 443);
39 | this.loadButton.Name = "loadButton";
40 | this.loadButton.Size = new System.Drawing.Size(212, 89);
41 | this.loadButton.TabIndex = 0;
42 | this.loadButton.Text = "Load";
43 | this.loadButton.UseVisualStyleBackColor = true;
44 | this.loadButton.Click += new System.EventHandler(this.loadButton_Click);
45 | //
46 | // textBox
47 | //
48 | this.textBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
49 | | System.Windows.Forms.AnchorStyles.Left)
50 | | System.Windows.Forms.AnchorStyles.Right)));
51 | this.textBox.Font = new System.Drawing.Font("Consolas", 10F);
52 | this.textBox.Location = new System.Drawing.Point(12, 12);
53 | this.textBox.Multiline = true;
54 | this.textBox.Name = "textBox";
55 | this.textBox.Size = new System.Drawing.Size(754, 425);
56 | this.textBox.TabIndex = 1;
57 | //
58 | // MainForm
59 | //
60 | this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
61 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
62 | this.ClientSize = new System.Drawing.Size(778, 544);
63 | this.Controls.Add(this.textBox);
64 | this.Controls.Add(this.loadButton);
65 | this.Name = "MainForm";
66 | this.Text = "Northwind";
67 | this.ResumeLayout(false);
68 | this.PerformLayout();
69 |
70 | }
71 |
72 | #endregion
73 |
74 | private System.Windows.Forms.Button loadButton;
75 | private System.Windows.Forms.TextBox textBox;
76 | }
77 | }
78 |
79 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/MainForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace Northwind
5 | {
6 | public partial class MainForm : Form
7 | {
8 | public MainForm()
9 | {
10 | InitializeComponent();
11 | }
12 |
13 | private void loadButton_Click(object sender, EventArgs e)
14 | {
15 | textBox.Text = NorthwindDb.GetData();
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/MainForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/Northwind.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {12EB112B-A120-45C6-9C61-0A4F13C8C4A4}
8 | WinExe
9 | Northwind
10 | Northwind
11 | v4.6.1
12 | 512
13 | true
14 | PackageReference
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | Form
50 |
51 |
52 | MainForm.cs
53 |
54 |
55 |
56 |
57 |
58 | MainForm.cs
59 |
60 |
61 | ResXFileCodeGenerator
62 | Resources.Designer.cs
63 | Designer
64 |
65 |
66 | True
67 | Resources.resx
68 |
69 |
70 | SettingsSingleFileGenerator
71 | Settings.Designer.cs
72 |
73 |
74 | True
75 | Settings.settings
76 | True
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 | PreserveNewest
85 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/NorthwindDb.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Data;
3 |
4 | namespace Northwind
5 | {
6 | public class NorthwindDb
7 | {
8 | public static string GetData()
9 | {
10 | string result = "";
11 | DataSet dataSet = new DataSet();
12 | dataSet.ReadXml("northwind.xml");
13 |
14 | DataTable employeeTable = dataSet.Tables["Employees"];
15 |
16 | foreach (DataRow row in employeeTable.Rows)
17 | {
18 | string firstName = Convert.ToString(row["FirstName"]);
19 | string lastName = Convert.ToString(row["LastName"]);
20 | DateTime birthdate = Convert.ToDateTime(row["Birthdate"]);
21 | DateTime retirementDate = birthdate.AddYears(65);
22 |
23 | var isRetired = retirementDate < DateTime.Now;
24 | if (!isRetired)
25 | continue;
26 |
27 | result += $"{firstName} {lastName}: {retirementDate}\r\n";
28 | }
29 |
30 | return result;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace Northwind
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// The main entry point for the application.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new MainForm());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Northwind")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Northwind")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("12eb112b-a120-45c6-9c61-0a4f13c8c4a4")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Northwind.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Northwind.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Northwind.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/Begin/Northwind/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind.Data/Northwind.Data.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind.Data/NorthwindDb.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Data;
3 | using System.Linq;
4 | using NQuery;
5 |
6 | namespace Northwind
7 | {
8 | public class NorthwindDb
9 | {
10 | public static string GetData()
11 | {
12 | var result = "";
13 | var dataSet = new DataSet();
14 | dataSet.ReadXml(@"C:\demos\northwind.xml");
15 |
16 | var dataContext = new DataContext();
17 | dataContext.AddTablesAndRelations(dataSet);
18 |
19 | var sql = @"
20 | SELECT e.FirstName + ' ' + e.LastName
21 | FROM Employees e
22 | WHERE e.Birthdate.AddYears(65) < GETDATE()
23 | ";
24 |
25 | var query = new Query(sql, dataContext);
26 | var results = query.ExecuteDataTable();
27 | var values = results.Rows.Cast().Select(r => (string)r[0]);
28 | result = string.Join(Environment.NewLine, values);
29 |
30 | return result;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind.Web/Northwind.Web.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind.Web/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 | using Microsoft.AspNetCore;
7 | using Microsoft.AspNetCore.Hosting;
8 | using Microsoft.Extensions.Configuration;
9 | using Microsoft.Extensions.Logging;
10 |
11 | namespace Northwind.Web
12 | {
13 | public class Program
14 | {
15 | public static void Main(string[] args)
16 | {
17 | BuildWebHost(args).Run();
18 | }
19 |
20 | public static IWebHost BuildWebHost(string[] args) =>
21 | WebHost.CreateDefaultBuilder(args)
22 | .UseStartup()
23 | .Build();
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind.Web/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "iisSettings": {
3 | "windowsAuthentication": false,
4 | "anonymousAuthentication": true,
5 | "iisExpress": {
6 | "applicationUrl": "http://localhost:52029/",
7 | "sslPort": 0
8 | }
9 | },
10 | "profiles": {
11 | "IIS Express": {
12 | "commandName": "IISExpress",
13 | "launchBrowser": true,
14 | "environmentVariables": {
15 | "ASPNETCORE_ENVIRONMENT": "Development"
16 | }
17 | },
18 | "Northwind.Web": {
19 | "commandName": "Project",
20 | "launchBrowser": true,
21 | "environmentVariables": {
22 | "ASPNETCORE_ENVIRONMENT": "Development"
23 | },
24 | "applicationUrl": "http://localhost:52030/"
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind.Web/Startup.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using Microsoft.AspNetCore.Builder;
6 | using Microsoft.AspNetCore.Hosting;
7 | using Microsoft.AspNetCore.Http;
8 | using Microsoft.Extensions.DependencyInjection;
9 |
10 | namespace Northwind.Web
11 | {
12 | public class Startup
13 | {
14 | // This method gets called by the runtime. Use this method to add services to the container.
15 | // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
16 | public void ConfigureServices(IServiceCollection services)
17 | {
18 | }
19 |
20 | // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
21 | public void Configure(IApplicationBuilder app, IHostingEnvironment env)
22 | {
23 | if (env.IsDevelopment())
24 | {
25 | app.UseDeveloperExceptionPage();
26 | }
27 |
28 | app.Run(async (context) =>
29 | {
30 | await context.Response.WriteAsync(NorthwindDb.GetData());
31 | });
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26730.12
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Northwind", "Northwind\Northwind.csproj", "{12EB112B-A120-45C6-9C61-0A4F13C8C4A4}"
7 | EndProject
8 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Northwind.Data", "Northwind.Data\Northwind.Data.csproj", "{90E6DE00-7DCB-488F-8B55-CCC55058F4FA}"
9 | EndProject
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Northwind.Web", "Northwind.Web\Northwind.Web.csproj", "{DA896685-E9E2-41D1-AE71-FC653D8867CB}"
11 | EndProject
12 | Global
13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
14 | Debug|Any CPU = Debug|Any CPU
15 | Release|Any CPU = Release|Any CPU
16 | EndGlobalSection
17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
18 | {12EB112B-A120-45C6-9C61-0A4F13C8C4A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
19 | {12EB112B-A120-45C6-9C61-0A4F13C8C4A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
20 | {12EB112B-A120-45C6-9C61-0A4F13C8C4A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
21 | {12EB112B-A120-45C6-9C61-0A4F13C8C4A4}.Release|Any CPU.Build.0 = Release|Any CPU
22 | {90E6DE00-7DCB-488F-8B55-CCC55058F4FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23 | {90E6DE00-7DCB-488F-8B55-CCC55058F4FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
24 | {90E6DE00-7DCB-488F-8B55-CCC55058F4FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
25 | {90E6DE00-7DCB-488F-8B55-CCC55058F4FA}.Release|Any CPU.Build.0 = Release|Any CPU
26 | {DA896685-E9E2-41D1-AE71-FC653D8867CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
27 | {DA896685-E9E2-41D1-AE71-FC653D8867CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
28 | {DA896685-E9E2-41D1-AE71-FC653D8867CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
29 | {DA896685-E9E2-41D1-AE71-FC653D8867CB}.Release|Any CPU.Build.0 = Release|Any CPU
30 | EndGlobalSection
31 | GlobalSection(SolutionProperties) = preSolution
32 | HideSolutionNode = FALSE
33 | EndGlobalSection
34 | GlobalSection(ExtensibilityGlobals) = postSolution
35 | SolutionGuid = {A37ADD56-3176-4AA3-90AE-E3998D0601D0}
36 | EndGlobalSection
37 | EndGlobal
38 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind/MainForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace Northwind
2 | {
3 | partial class MainForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.loadButton = new System.Windows.Forms.Button();
32 | this.textBox = new System.Windows.Forms.TextBox();
33 | this.SuspendLayout();
34 | //
35 | // loadButton
36 | //
37 | this.loadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
38 | this.loadButton.Location = new System.Drawing.Point(554, 443);
39 | this.loadButton.Name = "loadButton";
40 | this.loadButton.Size = new System.Drawing.Size(212, 89);
41 | this.loadButton.TabIndex = 0;
42 | this.loadButton.Text = "Load";
43 | this.loadButton.UseVisualStyleBackColor = true;
44 | this.loadButton.Click += new System.EventHandler(this.loadButton_Click);
45 | //
46 | // textBox
47 | //
48 | this.textBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
49 | | System.Windows.Forms.AnchorStyles.Left)
50 | | System.Windows.Forms.AnchorStyles.Right)));
51 | this.textBox.Font = new System.Drawing.Font("Consolas", 10F);
52 | this.textBox.Location = new System.Drawing.Point(12, 12);
53 | this.textBox.Multiline = true;
54 | this.textBox.Name = "textBox";
55 | this.textBox.Size = new System.Drawing.Size(754, 425);
56 | this.textBox.TabIndex = 1;
57 | //
58 | // MainForm
59 | //
60 | this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
61 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
62 | this.ClientSize = new System.Drawing.Size(778, 544);
63 | this.Controls.Add(this.textBox);
64 | this.Controls.Add(this.loadButton);
65 | this.Name = "MainForm";
66 | this.Text = "Northwind";
67 | this.ResumeLayout(false);
68 | this.PerformLayout();
69 |
70 | }
71 |
72 | #endregion
73 |
74 | private System.Windows.Forms.Button loadButton;
75 | private System.Windows.Forms.TextBox textBox;
76 | }
77 | }
78 |
79 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind/MainForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace Northwind
5 | {
6 | public partial class MainForm : Form
7 | {
8 | public MainForm()
9 | {
10 | InitializeComponent();
11 | }
12 |
13 | private void loadButton_Click(object sender, EventArgs e)
14 | {
15 | textBox.Text = NorthwindDb.GetData();
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind/MainForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind/Northwind.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {12EB112B-A120-45C6-9C61-0A4F13C8C4A4}
8 | WinExe
9 | Northwind
10 | Northwind
11 | v4.6.1
12 | 512
13 | true
14 | PackageReference
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | Form
50 |
51 |
52 | MainForm.cs
53 |
54 |
55 |
56 |
57 | MainForm.cs
58 |
59 |
60 | ResXFileCodeGenerator
61 | Resources.Designer.cs
62 | Designer
63 |
64 |
65 | True
66 | Resources.resx
67 |
68 |
69 | SettingsSingleFileGenerator
70 | Settings.Designer.cs
71 |
72 |
73 | True
74 | Settings.settings
75 | True
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | {90e6de00-7dcb-488f-8b55-ccc55058f4fa}
84 | Northwind.Data
85 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace Northwind
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// The main entry point for the application.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new MainForm());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Northwind")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Northwind")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("12eb112b-a120-45c6-9c61-0a4f13c8c4a4")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Northwind.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Northwind.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Northwind.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/Northwind/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-dataset-demo/End/global.json:
--------------------------------------------------------------------------------
1 | {
2 | "sdk": {
3 | "version": "3.1.402"
4 | }
5 | }
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/App_Net461.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {518D012A-836C-4774-9D69-791AC9E43E46}
8 | WinExe
9 | App_Net461
10 | App_Net461
11 | v4.6.1
12 | 512
13 | true
14 |
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | Form
51 |
52 |
53 | MainForm.cs
54 |
55 |
56 |
57 |
58 | MainForm.cs
59 |
60 |
61 | ResXFileCodeGenerator
62 | Resources.Designer.cs
63 | Designer
64 |
65 |
66 | True
67 | Resources.resx
68 | True
69 |
70 |
71 | SettingsSingleFileGenerator
72 | Settings.Designer.cs
73 |
74 |
75 | True
76 | Settings.settings
77 | True
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 | {aadda309-0fc7-40bb-ad6a-027518e348aa}
86 | Gps_Net461
87 |
88 |
89 |
90 |
91 | 4.3.0
92 |
93 |
94 |
95 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/Form1.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/MainForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace App_Net461
2 | {
3 | partial class MainForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.label1 = new System.Windows.Forms.Label();
32 | this.closeButton = new System.Windows.Forms.Button();
33 | this.SuspendLayout();
34 | //
35 | // label1
36 | //
37 | this.label1.AutoSize = true;
38 | this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
39 | this.label1.Location = new System.Drawing.Point(42, 44);
40 | this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
41 | this.label1.Name = "label1";
42 | this.label1.Size = new System.Drawing.Size(247, 36);
43 | this.label1.TabIndex = 0;
44 | this.label1.Text = "Getting location...";
45 | //
46 | // closeButton
47 | //
48 | this.closeButton.Location = new System.Drawing.Point(47, 132);
49 | this.closeButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
50 | this.closeButton.Name = "closeButton";
51 | this.closeButton.Size = new System.Drawing.Size(199, 73);
52 | this.closeButton.TabIndex = 1;
53 | this.closeButton.Text = "Close";
54 | this.closeButton.UseVisualStyleBackColor = true;
55 | this.closeButton.Click += new System.EventHandler(this.closeButton_Click);
56 | //
57 | // Form1
58 | //
59 | this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
60 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
61 | this.ClientSize = new System.Drawing.Size(727, 248);
62 | this.Controls.Add(this.closeButton);
63 | this.Controls.Add(this.label1);
64 | this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
65 | this.Name = "Form1";
66 | this.Text = "Form1";
67 | this.Load += new System.EventHandler(this.Form1_Load);
68 | this.ResumeLayout(false);
69 | this.PerformLayout();
70 |
71 | }
72 |
73 | #endregion
74 |
75 | private System.Windows.Forms.Label label1;
76 | private System.Windows.Forms.Button closeButton;
77 | }
78 | }
79 |
80 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/MainForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 | using Gps;
4 |
5 | namespace App_Net461
6 | {
7 | public partial class MainForm : Form
8 | {
9 | public MainForm()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private async void Form1_Load(object sender, EventArgs e)
15 | {
16 | var geo = await GpsLocation.GetCoordinates();
17 |
18 | label1.Text = $"You're at ({geo.latitude:N2}, {geo.longitude:N2})";
19 | }
20 |
21 | private void closeButton_Click(object sender, EventArgs e)
22 | {
23 | Close();
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/MainForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace App_Net461
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// The main entry point for the application.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new MainForm());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("App_Net461")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("App_Net461")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("518d012a-836c-4774-9d69-791ac9e43e46")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace App_Net461.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("App_Net461.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace App_Net461.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.1.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Net461/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/App.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.ApplicationModel;
7 | using Windows.ApplicationModel.Activation;
8 | using Windows.Foundation;
9 | using Windows.Foundation.Collections;
10 | using Windows.UI.Xaml;
11 | using Windows.UI.Xaml.Controls;
12 | using Windows.UI.Xaml.Controls.Primitives;
13 | using Windows.UI.Xaml.Data;
14 | using Windows.UI.Xaml.Input;
15 | using Windows.UI.Xaml.Media;
16 | using Windows.UI.Xaml.Navigation;
17 |
18 | namespace App_Uwp
19 | {
20 | ///
21 | /// Provides application-specific behavior to supplement the default Application class.
22 | ///
23 | sealed partial class App : Application
24 | {
25 | ///
26 | /// Initializes the singleton application object. This is the first line of authored code
27 | /// executed, and as such is the logical equivalent of main() or WinMain().
28 | ///
29 | public App()
30 | {
31 | this.InitializeComponent();
32 | this.Suspending += OnSuspending;
33 | }
34 |
35 | ///
36 | /// Invoked when the application is launched normally by the end user. Other entry points
37 | /// will be used such as when the application is launched to open a specific file.
38 | ///
39 | /// Details about the launch request and process.
40 | protected override void OnLaunched(LaunchActivatedEventArgs e)
41 | {
42 | Frame rootFrame = Window.Current.Content as Frame;
43 |
44 | // Do not repeat app initialization when the Window already has content,
45 | // just ensure that the window is active
46 | if (rootFrame == null)
47 | {
48 | // Create a Frame to act as the navigation context and navigate to the first page
49 | rootFrame = new Frame();
50 |
51 | rootFrame.NavigationFailed += OnNavigationFailed;
52 |
53 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
54 | {
55 | //TODO: Load state from previously suspended application
56 | }
57 |
58 | // Place the frame in the current Window
59 | Window.Current.Content = rootFrame;
60 | }
61 |
62 | if (e.PrelaunchActivated == false)
63 | {
64 | if (rootFrame.Content == null)
65 | {
66 | // When the navigation stack isn't restored navigate to the first page,
67 | // configuring the new page by passing required information as a navigation
68 | // parameter
69 | rootFrame.Navigate(typeof(MainPage), e.Arguments);
70 | }
71 | // Ensure the current window is active
72 | Window.Current.Activate();
73 | }
74 | }
75 |
76 | ///
77 | /// Invoked when Navigation to a certain page fails
78 | ///
79 | /// The Frame which failed navigation
80 | /// Details about the navigation failure
81 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
82 | {
83 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
84 | }
85 |
86 | ///
87 | /// Invoked when application execution is being suspended. Application state is saved
88 | /// without knowing whether the application will be terminated or resumed with the contents
89 | /// of memory still intact.
90 | ///
91 | /// The source of the suspend request.
92 | /// Details about the suspend request.
93 | private void OnSuspending(object sender, SuspendingEventArgs e)
94 | {
95 | var deferral = e.SuspendingOperation.GetDeferral();
96 | //TODO: Save application state and stop any background activity
97 | deferral.Complete();
98 | }
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/MainPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using Gps;
2 | using Windows.ApplicationModel.Core;
3 | using Windows.UI.Xaml;
4 | using Windows.UI.Xaml.Controls;
5 |
6 | namespace App_Uwp
7 | {
8 | public sealed partial class MainPage : Page
9 | {
10 | public MainPage()
11 | {
12 | InitializeComponent();
13 |
14 | TextBlock.Text = "Getting location...";
15 | }
16 |
17 | private async void Page_Loaded(object sender, RoutedEventArgs e)
18 | {
19 | var geo = await GpsLocation.GetCoordinates();
20 |
21 | TextBlock.Text = $"You're at ({geo.latitude:N2}, {geo.longitude:N2})";
22 | }
23 |
24 | private void Button_Click(object sender, RoutedEventArgs e)
25 | {
26 | CoreApplication.Exit();
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | App_Uwp
7 | immol
8 | Assets\StoreLogo.png
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("App_Uwp")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("App_Uwp")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Version information for an assembly consists of the following four values:
18 | //
19 | // Major Version
20 | // Minor Version
21 | // Build Number
22 | // Revision
23 | //
24 | // You can specify all the values or you can default the Build and Revision Numbers
25 | // by using the '*' as shown below:
26 | // [assembly: AssemblyVersion("1.0.*")]
27 | [assembly: AssemblyVersion("1.0.0.0")]
28 | [assembly: AssemblyFileVersion("1.0.0.0")]
29 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/App_Uwp/Properties/Default.rd.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/Gps_Net461/GpsLocation.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Device.Location;
3 | using System.Threading.Tasks;
4 |
5 | namespace Gps
6 | {
7 | public static class GpsLocation
8 | {
9 | public static Task<(double latitude, double longitude)> GetCoordinates()
10 | {
11 | return Task.Run(async () =>
12 | {
13 | using (var watcher = new GeoCoordinateWatcher())
14 | {
15 | watcher.TryStart(true, TimeSpan.FromSeconds(1));
16 | while (watcher.Position.Location.IsUnknown)
17 | await Task.Delay(TimeSpan.FromMilliseconds(100));
18 |
19 | var location = watcher.Position.Location;
20 | return (location.Latitude, location.Longitude);
21 | }
22 | });
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/Gps_Net461/Gps_Net461.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}
8 | Library
9 | Properties
10 | Gps_Net461
11 | Gps_Net461
12 | v4.6.1
13 | 512
14 |
15 |
16 |
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | pdbonly
27 | true
28 | bin\Release\
29 | TRACE
30 | prompt
31 | 4
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | 4.3.0
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/Gps_Net461/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Gps_Net461")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Gps_Net461")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("aadda309-0fc7-40bb-ad6a-027518e348aa")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/Gps_Uwp/GpsLocation.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Threading.Tasks;
3 | using Windows.Devices.Geolocation;
4 |
5 | namespace Gps
6 | {
7 | public static class GpsLocation
8 | {
9 | public static async Task<(double latitude, double longitude)> GetCoordinates()
10 | {
11 | var locator = new Geolocator();
12 | var position = await locator.GetGeopositionAsync();
13 | var latitude = position.Coordinate.Point.Position.Latitude;
14 | var longitude = position.Coordinate.Point.Position.Longitude;
15 | return (latitude, longitude);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/Gps_Uwp/Gps_Uwp.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}
8 | Library
9 | Properties
10 | Gps_Uwp
11 | Gps_Uwp
12 | en-US
13 | UAP
14 | 10.0.15063.0
15 | 10.0.10586.0
16 | 14
17 | 512
18 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
19 |
20 |
21 | AnyCPU
22 | true
23 | full
24 | false
25 | bin\Debug\
26 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
27 | prompt
28 | 4
29 |
30 |
31 | AnyCPU
32 | pdbonly
33 | true
34 | bin\Release\
35 | TRACE;NETFX_CORE;WINDOWS_UWP
36 | prompt
37 | 4
38 |
39 |
40 | x86
41 | true
42 | bin\x86\Debug\
43 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
44 | ;2008
45 | full
46 | x86
47 | false
48 | prompt
49 |
50 |
51 | x86
52 | bin\x86\Release\
53 | TRACE;NETFX_CORE;WINDOWS_UWP
54 | true
55 | ;2008
56 | pdbonly
57 | x86
58 | false
59 | prompt
60 |
61 |
62 | ARM
63 | true
64 | bin\ARM\Debug\
65 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
66 | ;2008
67 | full
68 | ARM
69 | false
70 | prompt
71 |
72 |
73 | ARM
74 | bin\ARM\Release\
75 | TRACE;NETFX_CORE;WINDOWS_UWP
76 | true
77 | ;2008
78 | pdbonly
79 | ARM
80 | false
81 | prompt
82 |
83 |
84 | x64
85 | true
86 | bin\x64\Debug\
87 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
88 | ;2008
89 | full
90 | x64
91 | false
92 | prompt
93 |
94 |
95 | x64
96 | bin\x64\Release\
97 | TRACE;NETFX_CORE;WINDOWS_UWP
98 | true
99 | ;2008
100 | pdbonly
101 | x64
102 | false
103 | prompt
104 |
105 |
106 | PackageReference
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 | 5.2.4
116 |
117 |
118 | 4.3.0
119 |
120 |
121 |
122 | 14.0
123 |
124 |
125 |
132 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/Gps_Uwp/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Gps_Uwp")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Gps_Uwp")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Version information for an assembly consists of the following four values:
18 | //
19 | // Major Version
20 | // Minor Version
21 | // Build Number
22 | // Revision
23 | //
24 | // You can specify all the values or you can default the Build and Revision Numbers
25 | // by using the '*' as shown below:
26 | // [assembly: AssemblyVersion("1.0.*")]
27 | [assembly: AssemblyVersion("1.0.0.0")]
28 | [assembly: AssemblyFileVersion("1.0.0.0")]
29 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/Gps_Uwp/Properties/Gps_Uwp.rd.xml:
--------------------------------------------------------------------------------
1 |
2 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/Begin/NetStandard-Gps.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26421.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gps_Net461", "Gps_Net461\Gps_Net461.csproj", "{AADDA309-0FC7-40BB-AD6A-027518E348AA}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gps_Uwp", "Gps_Uwp\Gps_Uwp.csproj", "{D82AB3B6-0068-4130-ACA7-7FB485E047C2}"
9 | EndProject
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App_Net461", "App_Net461\App_Net461.csproj", "{518D012A-836C-4774-9D69-791AC9E43E46}"
11 | EndProject
12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App_Uwp", "App_Uwp\App_Uwp.csproj", "{734484AC-D15E-40E5-B1C2-6297F73A09D9}"
13 | EndProject
14 | Global
15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 | Debug|Any CPU = Debug|Any CPU
17 | Debug|ARM = Debug|ARM
18 | Debug|x64 = Debug|x64
19 | Debug|x86 = Debug|x86
20 | Release|Any CPU = Release|Any CPU
21 | Release|ARM = Release|ARM
22 | Release|x64 = Release|x64
23 | Release|x86 = Release|x86
24 | EndGlobalSection
25 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
26 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
27 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
28 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Debug|ARM.ActiveCfg = Debug|Any CPU
29 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Debug|ARM.Build.0 = Debug|Any CPU
30 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Debug|x64.ActiveCfg = Debug|Any CPU
31 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Debug|x64.Build.0 = Debug|Any CPU
32 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Debug|x86.ActiveCfg = Debug|Any CPU
33 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Debug|x86.Build.0 = Debug|Any CPU
34 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
35 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Release|Any CPU.Build.0 = Release|Any CPU
36 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Release|ARM.ActiveCfg = Release|Any CPU
37 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Release|ARM.Build.0 = Release|Any CPU
38 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Release|x64.ActiveCfg = Release|Any CPU
39 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Release|x64.Build.0 = Release|Any CPU
40 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Release|x86.ActiveCfg = Release|Any CPU
41 | {AADDA309-0FC7-40BB-AD6A-027518E348AA}.Release|x86.Build.0 = Release|Any CPU
42 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
43 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
44 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Debug|ARM.ActiveCfg = Debug|ARM
45 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Debug|ARM.Build.0 = Debug|ARM
46 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Debug|x64.ActiveCfg = Debug|x64
47 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Debug|x64.Build.0 = Debug|x64
48 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Debug|x86.ActiveCfg = Debug|x86
49 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Debug|x86.Build.0 = Debug|x86
50 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Release|Any CPU.Build.0 = Release|Any CPU
52 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Release|ARM.ActiveCfg = Release|ARM
53 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Release|ARM.Build.0 = Release|ARM
54 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Release|x64.ActiveCfg = Release|x64
55 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Release|x64.Build.0 = Release|x64
56 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Release|x86.ActiveCfg = Release|x86
57 | {D82AB3B6-0068-4130-ACA7-7FB485E047C2}.Release|x86.Build.0 = Release|x86
58 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
59 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|Any CPU.Build.0 = Debug|Any CPU
60 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|ARM.ActiveCfg = Debug|Any CPU
61 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|ARM.Build.0 = Debug|Any CPU
62 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|x64.ActiveCfg = Debug|Any CPU
63 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|x64.Build.0 = Debug|Any CPU
64 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|x86.ActiveCfg = Debug|Any CPU
65 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|x86.Build.0 = Debug|Any CPU
66 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|Any CPU.ActiveCfg = Release|Any CPU
67 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|Any CPU.Build.0 = Release|Any CPU
68 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|ARM.ActiveCfg = Release|Any CPU
69 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|ARM.Build.0 = Release|Any CPU
70 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|x64.ActiveCfg = Release|Any CPU
71 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|x64.Build.0 = Release|Any CPU
72 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|x86.ActiveCfg = Release|Any CPU
73 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|x86.Build.0 = Release|Any CPU
74 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|Any CPU.ActiveCfg = Debug|x86
75 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|ARM.ActiveCfg = Debug|ARM
76 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|ARM.Build.0 = Debug|ARM
77 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|ARM.Deploy.0 = Debug|ARM
78 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x64.ActiveCfg = Debug|x64
79 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x64.Build.0 = Debug|x64
80 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x64.Deploy.0 = Debug|x64
81 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x86.ActiveCfg = Debug|x86
82 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x86.Build.0 = Debug|x86
83 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x86.Deploy.0 = Debug|x86
84 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|Any CPU.ActiveCfg = Release|x86
85 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|ARM.ActiveCfg = Release|ARM
86 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|ARM.Build.0 = Release|ARM
87 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|ARM.Deploy.0 = Release|ARM
88 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x64.ActiveCfg = Release|x64
89 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x64.Build.0 = Release|x64
90 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x64.Deploy.0 = Release|x64
91 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x86.ActiveCfg = Release|x86
92 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x86.Build.0 = Release|x86
93 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x86.Deploy.0 = Release|x86
94 | EndGlobalSection
95 | GlobalSection(SolutionProperties) = preSolution
96 | HideSolutionNode = FALSE
97 | EndGlobalSection
98 | EndGlobal
99 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/App_Net461.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {518D012A-836C-4774-9D69-791AC9E43E46}
8 | WinExe
9 | App_Net461
10 | App_Net461
11 | v4.6.1
12 | 512
13 | true
14 |
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | Form
51 |
52 |
53 | MainForm.cs
54 |
55 |
56 |
57 |
58 | MainForm.cs
59 |
60 |
61 | ResXFileCodeGenerator
62 | Resources.Designer.cs
63 | Designer
64 |
65 |
66 | True
67 | Resources.resx
68 | True
69 |
70 |
71 | SettingsSingleFileGenerator
72 | Settings.Designer.cs
73 |
74 |
75 | True
76 | Settings.settings
77 | True
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 | 4.3.0
86 |
87 |
88 |
89 |
90 | {90faf697-3a78-4c6c-b4ca-44c30ce9b294}
91 | Gps
92 |
93 |
94 |
95 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/Form1.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/MainForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace App_Net461
2 | {
3 | partial class MainForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.label1 = new System.Windows.Forms.Label();
32 | this.closeButton = new System.Windows.Forms.Button();
33 | this.SuspendLayout();
34 | //
35 | // label1
36 | //
37 | this.label1.AutoSize = true;
38 | this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
39 | this.label1.Location = new System.Drawing.Point(42, 44);
40 | this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
41 | this.label1.Name = "label1";
42 | this.label1.Size = new System.Drawing.Size(247, 36);
43 | this.label1.TabIndex = 0;
44 | this.label1.Text = "Getting location...";
45 | //
46 | // closeButton
47 | //
48 | this.closeButton.Location = new System.Drawing.Point(47, 132);
49 | this.closeButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
50 | this.closeButton.Name = "closeButton";
51 | this.closeButton.Size = new System.Drawing.Size(199, 73);
52 | this.closeButton.TabIndex = 1;
53 | this.closeButton.Text = "Close";
54 | this.closeButton.UseVisualStyleBackColor = true;
55 | this.closeButton.Click += new System.EventHandler(this.closeButton_Click);
56 | //
57 | // Form1
58 | //
59 | this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
60 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
61 | this.ClientSize = new System.Drawing.Size(727, 248);
62 | this.Controls.Add(this.closeButton);
63 | this.Controls.Add(this.label1);
64 | this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
65 | this.Name = "Form1";
66 | this.Text = "Form1";
67 | this.Load += new System.EventHandler(this.Form1_Load);
68 | this.ResumeLayout(false);
69 | this.PerformLayout();
70 |
71 | }
72 |
73 | #endregion
74 |
75 | private System.Windows.Forms.Label label1;
76 | private System.Windows.Forms.Button closeButton;
77 | }
78 | }
79 |
80 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/MainForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 | using Gps;
4 |
5 | namespace App_Net461
6 | {
7 | public partial class MainForm : Form
8 | {
9 | public MainForm()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private async void Form1_Load(object sender, EventArgs e)
15 | {
16 | var geo = await GpsLocation.GetCoordinates();
17 |
18 | label1.Text = $"You're at ({geo.latitude:N2}, {geo.longitude:N2})";
19 | }
20 |
21 | private void closeButton_Click(object sender, EventArgs e)
22 | {
23 | Close();
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/MainForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace App_Net461
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// The main entry point for the application.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new MainForm());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("App_Net461")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("App_Net461")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("518d012a-836c-4774-9d69-791ac9e43e46")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace App_Net461.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("App_Net461.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace App_Net461.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.1.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Net461/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/App.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.ApplicationModel;
7 | using Windows.ApplicationModel.Activation;
8 | using Windows.Foundation;
9 | using Windows.Foundation.Collections;
10 | using Windows.UI.Xaml;
11 | using Windows.UI.Xaml.Controls;
12 | using Windows.UI.Xaml.Controls.Primitives;
13 | using Windows.UI.Xaml.Data;
14 | using Windows.UI.Xaml.Input;
15 | using Windows.UI.Xaml.Media;
16 | using Windows.UI.Xaml.Navigation;
17 |
18 | namespace App_Uwp
19 | {
20 | ///
21 | /// Provides application-specific behavior to supplement the default Application class.
22 | ///
23 | sealed partial class App : Application
24 | {
25 | ///
26 | /// Initializes the singleton application object. This is the first line of authored code
27 | /// executed, and as such is the logical equivalent of main() or WinMain().
28 | ///
29 | public App()
30 | {
31 | this.InitializeComponent();
32 | this.Suspending += OnSuspending;
33 | }
34 |
35 | ///
36 | /// Invoked when the application is launched normally by the end user. Other entry points
37 | /// will be used such as when the application is launched to open a specific file.
38 | ///
39 | /// Details about the launch request and process.
40 | protected override void OnLaunched(LaunchActivatedEventArgs e)
41 | {
42 | Frame rootFrame = Window.Current.Content as Frame;
43 |
44 | // Do not repeat app initialization when the Window already has content,
45 | // just ensure that the window is active
46 | if (rootFrame == null)
47 | {
48 | // Create a Frame to act as the navigation context and navigate to the first page
49 | rootFrame = new Frame();
50 |
51 | rootFrame.NavigationFailed += OnNavigationFailed;
52 |
53 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
54 | {
55 | //TODO: Load state from previously suspended application
56 | }
57 |
58 | // Place the frame in the current Window
59 | Window.Current.Content = rootFrame;
60 | }
61 |
62 | if (e.PrelaunchActivated == false)
63 | {
64 | if (rootFrame.Content == null)
65 | {
66 | // When the navigation stack isn't restored navigate to the first page,
67 | // configuring the new page by passing required information as a navigation
68 | // parameter
69 | rootFrame.Navigate(typeof(MainPage), e.Arguments);
70 | }
71 | // Ensure the current window is active
72 | Window.Current.Activate();
73 | }
74 | }
75 |
76 | ///
77 | /// Invoked when Navigation to a certain page fails
78 | ///
79 | /// The Frame which failed navigation
80 | /// Details about the navigation failure
81 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
82 | {
83 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
84 | }
85 |
86 | ///
87 | /// Invoked when application execution is being suspended. Application state is saved
88 | /// without knowing whether the application will be terminated or resumed with the contents
89 | /// of memory still intact.
90 | ///
91 | /// The source of the suspend request.
92 | /// Details about the suspend request.
93 | private void OnSuspending(object sender, SuspendingEventArgs e)
94 | {
95 | var deferral = e.SuspendingOperation.GetDeferral();
96 | //TODO: Save application state and stop any background activity
97 | deferral.Complete();
98 | }
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/MainPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using Gps;
2 | using Windows.ApplicationModel.Core;
3 | using Windows.UI.Xaml;
4 | using Windows.UI.Xaml.Controls;
5 |
6 | namespace App_Uwp
7 | {
8 | public sealed partial class MainPage : Page
9 | {
10 | public MainPage()
11 | {
12 | InitializeComponent();
13 |
14 | TextBlock.Text = "Getting location...";
15 | }
16 |
17 | private async void Page_Loaded(object sender, RoutedEventArgs e)
18 | {
19 | var geo = await GpsLocation.GetCoordinates();
20 |
21 | TextBlock.Text = $"You're at ({geo.latitude:N2}, {geo.longitude:N2})";
22 | }
23 |
24 | private void Button_Click(object sender, RoutedEventArgs e)
25 | {
26 | CoreApplication.Exit();
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | App_Uwp
7 | immol
8 | Assets\StoreLogo.png
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("App_Uwp")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("App_Uwp")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Version information for an assembly consists of the following four values:
18 | //
19 | // Major Version
20 | // Minor Version
21 | // Build Number
22 | // Revision
23 | //
24 | // You can specify all the values or you can default the Build and Revision Numbers
25 | // by using the '*' as shown below:
26 | // [assembly: AssemblyVersion("1.0.*")]
27 | [assembly: AssemblyVersion("1.0.0.0")]
28 | [assembly: AssemblyFileVersion("1.0.0.0")]
29 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/App_Uwp/Properties/Default.rd.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/Gps/Gps.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0;net461;uap10.0.18362
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 | en-US
21 | UAP,Version=v10.0.18362
22 | UAP
23 | 10.0.18362.0
24 | 10.0.18362.0
25 | .NETCore
26 | v5.0
27 | $(DefineConstants);WINDOWS_UWP
28 | $(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | UAP,Version=v10.0
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/Gps/GpsLocation.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Threading.Tasks;
3 |
4 | namespace Gps
5 | {
6 | public static class GpsLocation
7 | {
8 | public static async Task<(double latitude, double longitude)> GetCoordinates()
9 | {
10 | #if NET461
11 | return await Task.Run(async () =>
12 | {
13 | using (var watcher = new System.Device.Location.GeoCoordinateWatcher())
14 | {
15 | watcher.TryStart(true, TimeSpan.FromSeconds(1));
16 | while (watcher.Position.Location.IsUnknown)
17 | await Task.Delay(TimeSpan.FromMilliseconds(100));
18 |
19 | var location = watcher.Position.Location;
20 | return (location.Latitude, location.Longitude);
21 | }
22 | });
23 | #elif WINDOWS_UWP
24 | var locator = new Windows.Devices.Geolocation.Geolocator();
25 | var position = await locator.GetGeopositionAsync();
26 | var latitude = position.Coordinate.Point.Position.Latitude;
27 | var longitude = position.Coordinate.Point.Position.Longitude;
28 | return (latitude, longitude);
29 | #else
30 | throw new PlatformNotSupportedException();
31 | #endif
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/NET-Standard/Labs/netstandard-gps-demo/End/NetStandard-Gps.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26421.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App_Net461", "App_Net461\App_Net461.csproj", "{518D012A-836C-4774-9D69-791AC9E43E46}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App_Uwp", "App_Uwp\App_Uwp.csproj", "{734484AC-D15E-40E5-B1C2-6297F73A09D9}"
9 | EndProject
10 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Gps", "Gps\Gps.csproj", "{11E78512-8D75-48BD-8371-9A5F1557D751}"
11 | EndProject
12 | Global
13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
14 | Debug|Any CPU = Debug|Any CPU
15 | Debug|ARM = Debug|ARM
16 | Debug|x64 = Debug|x64
17 | Debug|x86 = Debug|x86
18 | Release|Any CPU = Release|Any CPU
19 | Release|ARM = Release|ARM
20 | Release|x64 = Release|x64
21 | Release|x86 = Release|x86
22 | EndGlobalSection
23 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
24 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
25 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|Any CPU.Build.0 = Debug|Any CPU
26 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|ARM.ActiveCfg = Debug|Any CPU
27 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|ARM.Build.0 = Debug|Any CPU
28 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|x64.ActiveCfg = Debug|Any CPU
29 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|x64.Build.0 = Debug|Any CPU
30 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|x86.ActiveCfg = Debug|Any CPU
31 | {518D012A-836C-4774-9D69-791AC9E43E46}.Debug|x86.Build.0 = Debug|Any CPU
32 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|Any CPU.ActiveCfg = Release|Any CPU
33 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|Any CPU.Build.0 = Release|Any CPU
34 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|ARM.ActiveCfg = Release|Any CPU
35 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|ARM.Build.0 = Release|Any CPU
36 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|x64.ActiveCfg = Release|Any CPU
37 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|x64.Build.0 = Release|Any CPU
38 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|x86.ActiveCfg = Release|Any CPU
39 | {518D012A-836C-4774-9D69-791AC9E43E46}.Release|x86.Build.0 = Release|Any CPU
40 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|Any CPU.ActiveCfg = Debug|x86
41 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|ARM.ActiveCfg = Debug|ARM
42 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|ARM.Build.0 = Debug|ARM
43 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|ARM.Deploy.0 = Debug|ARM
44 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x64.ActiveCfg = Debug|x64
45 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x64.Build.0 = Debug|x64
46 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x64.Deploy.0 = Debug|x64
47 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x86.ActiveCfg = Debug|x86
48 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x86.Build.0 = Debug|x86
49 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Debug|x86.Deploy.0 = Debug|x86
50 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|Any CPU.ActiveCfg = Release|x86
51 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|ARM.ActiveCfg = Release|ARM
52 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|ARM.Build.0 = Release|ARM
53 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|ARM.Deploy.0 = Release|ARM
54 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x64.ActiveCfg = Release|x64
55 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x64.Build.0 = Release|x64
56 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x64.Deploy.0 = Release|x64
57 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x86.ActiveCfg = Release|x86
58 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x86.Build.0 = Release|x86
59 | {734484AC-D15E-40E5-B1C2-6297F73A09D9}.Release|x86.Deploy.0 = Release|x86
60 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
61 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Debug|Any CPU.Build.0 = Debug|Any CPU
62 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Debug|ARM.ActiveCfg = Debug|Any CPU
63 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Debug|ARM.Build.0 = Debug|Any CPU
64 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Debug|x64.ActiveCfg = Debug|Any CPU
65 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Debug|x64.Build.0 = Debug|Any CPU
66 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Debug|x86.ActiveCfg = Debug|Any CPU
67 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Debug|x86.Build.0 = Debug|Any CPU
68 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Release|Any CPU.ActiveCfg = Release|Any CPU
69 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Release|Any CPU.Build.0 = Release|Any CPU
70 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Release|ARM.ActiveCfg = Release|Any CPU
71 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Release|ARM.Build.0 = Release|Any CPU
72 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Release|x64.ActiveCfg = Release|Any CPU
73 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Release|x64.Build.0 = Release|Any CPU
74 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Release|x86.ActiveCfg = Release|Any CPU
75 | {11E78512-8D75-48BD-8371-9A5F1557D751}.Release|x86.Build.0 = Release|Any CPU
76 | EndGlobalSection
77 | GlobalSection(SolutionProperties) = preSolution
78 | HideSolutionNode = FALSE
79 | EndGlobalSection
80 | EndGlobal
81 |
--------------------------------------------------------------------------------
/NET-Standard/netcore-workshop-netstandard.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/NET-Standard/netcore-workshop-netstandard.pptx
--------------------------------------------------------------------------------
/NET-Standard/readme.md:
--------------------------------------------------------------------------------
1 | # Maximize Code Reuse With .NET Standard (1 hour)
2 |
3 | > .NET everywhere! In this fun session, we'll explain exactly what .NET Standard is, then show how .NET Standard allows us to write the one .NET class and use it in the full .NET Framework, .NET Core, Xamarin, UWP, and more.
4 |
5 | ## 1. Moving library code to a .NET Standard library
6 | > Note: You can jump to the complete state for demo 1 and 2 by switching to the `result` branch.
7 | 1. Clone [https://github.com/jongalloway/netstandard-dataset-demo](https://github.com/jongalloway/netstandard-dataset-demo)
8 | 1. Run the application and show that it's using an XML backed DataSet in a Windows Forms application. This application shows all Northwind employees that are now at retirement age.
9 | 1. Right-click the solution and add a .NET Standard Class Library to the solution.
10 | 1. Delete `Class1.cs` from the new .NET Standard project.
11 | 1. Drag the `NorthwindDb.cs` class and the `northwind.xml` file from the original project into the new .NET Standard project.
12 | 1. Add a project reference from the original project to the .NET Standard project.
13 | 1. Delete the `NorthwindDb.cs` class and the `northwind.xml` file from the original project.
14 | 1. Run the application and verify it still works.
15 |
16 | ## 2. Referencing an old NuGet package from a .NET Standard library
17 | 1. Add a reference to the `NQuery` package from the .NET Standard library.
18 | 1. Modify the `GetData()` method to use the `NQuery` library as shown below:
19 | ```csharp
20 | public static string GetData()
21 | {
22 | var result = "";
23 | var dataSet = new DataSet();
24 | dataSet.ReadXml(@"C:\demos\northwind.xml");
25 |
26 | var dataContext = new DataContext();
27 | dataContext.AddTablesAndRelations(dataSet);
28 |
29 | var sql = @"
30 | SELECT e.FirstName + ' ' + e.LastName
31 | FROM Employees e
32 | WHERE e.Birthdate.AddYears(65) < GETDATE()
33 | ";
34 |
35 | var query = new Query(sql, dataContext);
36 | var results = query.ExecuteDataTable();
37 | var values = results.Rows.Cast().Select(r => (string)r[0]);
38 | result = string.Join(Environment.NewLine, values);
39 |
40 | return result;
41 | }
42 | ```
43 | 1. Run the application and demonstrate that the reference to the NuGet package is working due to the .NET Standard compatability shim.
44 |
45 | ## 3. Targeting platform specific features from a .NET Standard library
46 | 1. Clone the [https://github.com/terrajobst/netstandard-gps-demo](https://github.com/terrajobst/netstandard-gps-demo) repository.
47 | 1. Note that there are two different applications (Windows Forms and UWP) backed by two different GPS libraries that do essentially the same thing. These libraries don't share code because the different platforms have different geolocation APIs.
48 | 1. Run the Windows Forms application and show that it's using the geolocation API.
49 | > Note: If you're going to run the UWP application, you'll need to publish it locally first.
50 | 1. Switch to the `result` branch for this repository (either by toggling in Visual Studio or using `git checkout result` from the command line).
51 | 1. Note that these two applications are now sharing one .NET Standard library using [C# preprocessor directives](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if).
52 | 1. Explain that this library can also now add an `IsSupported()` method which uses the same preprocessor logic to return true or false depending on whether GPS support is available. This allows you to share the .NET Standard library to any platform, and clients can check if geolocation is supported before making the library call.
53 | 1. In the project properties, turn on NuGet package generation support. Build the application and show that just one NuGet package is created. Previously, you'd need to write your own script to build a single NuGet targeting multiple platforms.
54 |
55 | > Note: You can see these demos in this [.NET Standard Deep Dive](https://channel9.msdn.com/Shows/On-NET/NET-Standard-Deep-Dive) video on Channel 9.
--------------------------------------------------------------------------------
/Overview-Tools-Acquisition/netcore-workshop-overview-tools.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/Overview-Tools-Acquisition/netcore-workshop-overview-tools.pptx
--------------------------------------------------------------------------------
/Overview-Tools-Acquisition/readme.md:
--------------------------------------------------------------------------------
1 | # Overview, Tools and Acquisition (30 minutes)
2 |
3 | > We'll get started with a quick overview of .NET Core: what it is, why you should care, and how to get set up to start using it.
4 |
5 | ## Prerequisites
6 |
7 | ### Visual Studio 2019 Preview
8 | It’s best if you have Visual Studio 2019 16.1 Preview 3 (free Community level is fine), since there are some new desktop tooling enhancements in the recent previews. You’ll need the following workloads:
9 | * ASP.NET and web development
10 | * .NET desktop development
11 | * Mobile development with .NET
12 | * .NET Core cross-platform development
13 |
14 | You can check to see what workloads you have installed by just running the installer (from the start menu, bring up Visual Studio Installer and click on Modify for Visual Studio 2019 Preview if installed).
15 |
16 | ### Visual Studio Code
17 | * Download [Visual Studio Code](https://code.visualstudio.com)
18 | * Install the Live Share Extension
19 |
20 | ### .NET Core 3.0 SDK
21 |
22 | Install [the latest .NET Core 3.0 SDK](http://dot.net/get-core3) for your operating system.
23 |
24 | ## Overview Presentation
25 |
26 | ### Creating a new .NET Core console application using Command Line tools
27 |
28 | 1. From the command line, run `dotnet new console`
29 | 1. Type `dotnet run` to run the application. You'll see a simple "Hello World" message.
30 |
31 | ### Exploring and Editing the Application using Visual Studio Code
32 |
33 | 1. Type `code .` to launch Visual Studio Code in the current directory.
34 | 1. Take a look at the Program.cs file.
35 | 1. Change the "Hello World" message to "Hello .NET".
36 | 1. Switch to the console and type `dotnet run` to to see the update.
37 |
38 | ### Creating a new .NET Core application using Visual Studio 2019
39 |
40 | 1. Follow the steps in the [Building a complete .NET Core solution on Windows, using Visual Studio 2019](https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/using-on-windows-full-solution) tutorial.
41 | > Note: If you'd like simpler one to get started, you can first complete the [Building a C# Hello World application with .NET Core in Visual Studio 2017](https://docs.microsoft.com/en-us/dotnet/articles/csharp/getting-started/with-visual-studio) tutorial.
42 |
43 | ### Extra Credit: Create a Class Library and Xunit test solution
44 |
45 | List available options from `dotnet new`:
46 | ```csharp
47 | dotnet new
48 | ```
49 | Now create a solution with a class library and a test project:
50 | ```csharp
51 | dotnet new sln -o MyApp
52 | cd MyApp
53 | dotnet new classlib -o MyApp
54 | dotnet new xunit -o MyApp.Test
55 | dotnet sln add MyApp/MyApp.csproj
56 | dotnet sln add MyApp.Test/MyApp.Test.csproj
57 | cd MyApp.Test
58 | dotnet add reference ../MyApp/MyApp.csproj
59 | dotnet restore
60 | dotnet build
61 | dotnet test
62 | ```
--------------------------------------------------------------------------------
/Porting-From-NET-Framework/netcore-workshop-porting.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/Porting-From-NET-Framework/netcore-workshop-porting.pptx
--------------------------------------------------------------------------------
/Porting-From-NET-Framework/readme.md:
--------------------------------------------------------------------------------
1 | # Porting From .NET Framework (1 hour)
2 |
3 | > In this session, we'll overview how to update existing code from the full .NET Framework to .NET Core. We'll help you understand which code can and can't port eaisly, and we'll go through some real world porting examples.
4 |
5 | ## Lab: Porting an ASP.NET application to ASP.NET Core 2.0
6 | 1. Create a new ASP.NET MVC 5 application in Visual Studio.
7 | 1. Following the steps of [this tutorial](https://docs.microsoft.com/en-us/aspnet/core/migration/proper-to-2x/), see if you can port the application to ASP.NET Core 2.0. The tutorial covers the following steps:
8 | 1. Prerequisites
9 | 1. Target Frameworks
10 | 1. Project structure differences
11 | 1. Global.asax file replacement
12 | 1. Storing Configurations
13 | 1. Native Dependency Injection
14 | 1. Serving Static Files
15 | 1. Additional Resources
16 |
17 | > *Note*: You might not have time to complete the port in the time allotted. You can come back to it later in the day, or bring it home for homework. The important part is to understand the overall steps involved, not to complete the port.
--------------------------------------------------------------------------------
/Web-Dev/Images/new-webapp-individual-accounts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/Web-Dev/Images/new-webapp-individual-accounts.png
--------------------------------------------------------------------------------
/Web-Dev/netcore-workshop-webdev.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dotnet-presentations/dotnetcore-workshop/e7c14c3b125c5af658d82e5d1df539a220871860/Web-Dev/netcore-workshop-webdev.pptx
--------------------------------------------------------------------------------
/Web-Dev/readme.md:
--------------------------------------------------------------------------------
1 | Web Development with ASP.NET Core (1.5 hours)
2 |
3 | > In this session, we'll cover both what's stayed the same from previous ASP.NET versions and what's changed. We'll dig into some top new features, like Tag Helpers, Middleware, Configuration, and the new high performance cross-platform Hosting model.
4 |
5 | ## Lab: Creating an ASP.NET Core application using Razor Pages
6 | Follow the steps in [this tutorial](https://github.com/dotnet-presentations/aspnetcore-for-beginners) to build a basic Razor Pages app using ASP.NET Core and Entity Framework Core.
7 |
8 | > *Note:* You probably won't have time to complete this entire tutorial. That's okay! Learn as much as you can during this time, and know that you can come back and complete it after this workshop is complete if you'd like.
9 |
10 | To learn more about Razor Pages also read [Introduction to Razor Pages in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/index)
11 |
12 | ## Blazor
13 | 1. Follow the [Get started with Blazor](https://docs.microsoft.com/aspnet/core/blazor/get-started) tutorial.
14 |
15 | ## Tag Helpers
16 | 1. Follow the [Tag Helpers lab](tag-helpers.md).
17 |
18 | ## Single Page Applications using JavaScriptServices
19 | 1. Follow the [Single Page Applications lab](single-page-applications.md).
20 |
--------------------------------------------------------------------------------
/Web-Dev/single-page-applications.md:
--------------------------------------------------------------------------------
1 | ## Option 1: Visual Studio 2017
2 | ### Creating a new Angular 2 application from the command line
3 | 1. In Visual Studio 2019, create a new ASP.NET Core 3.0 application and select the Angular template.
4 | 1. Inspect the application code.
5 | 1. Run the application in Debug mode.
6 |
7 | ## Option 2: CLI and Visual Studio Code
8 | ### Creating a new Angular application from the command line
9 | 1. Create a new ASP.NET Core application using the Angular template by executing the following command:
10 |
11 | ```
12 | dotnet new angular -o MyAngularApp
13 | ```
14 | 1. Change directories (`cd MyAngularApp`) into the new application directory and run `npm install`.
15 | 1. View the application code by typing `code .` to launch Visual Studio Code in the current directory.
16 | 1. Build the application using `dotnet build`
17 |
18 | ### Running the Angular application
19 | 1. From the commandline, set the ASP.NET Core development mode environment variable:
20 |
21 | ```
22 | set ASPNETCORE_ENVIRONMENT=Development
23 | ```
24 | > **Note**: On OSX this is done using `export ASPNETCORE_ENVIRONMENT=Development`
25 |
26 | 1. Run the application using the `dotnet watch` tool:
27 |
28 | ```
29 | dotnet watch run
30 | ```
31 | 1. Navigate to `http://localhost:5000` to view the application.
32 |
33 | > **Note**: Leave the application running and the browser window open for the remainder of the lab.
34 |
35 | ## Experiment with Hot Module Reloading (HMR)
36 | 1. Navigate to the Counter page in running web application.
37 | 1. In Visual Studio Code, Edit the counter implementation (`\ClientApp\app\components\counter\counter.ts`) to change the counter increment to 10:
38 |
39 | ``` typescript
40 | export class Counter {
41 | public currentCount = 0;
42 |
43 | public incrementCounter() {
44 | this.currentCount+=10;
45 | }
46 | }
47 | ```
48 | 1. Edit the Counter template (`\ClientApp\components\counter\counter.html`) to change the H2 heading text.
49 | 1. Observe that the application has refreshed with your changes. View the console output to see the debug messages printed out during the updates.
50 |
51 | ## Extra
52 | 1. Create a Knockout, React, or React + Redux application using the above steps but selecting a different project template.
53 | 1. Create a production build by setting `ASPNETCORE_ENVIRONMENT=Production`, then running the following:
54 |
55 | ```
56 | webpack --config webpack.config.vendor.js
57 | webpack
58 | ```
59 | 1. Inspect the front-end resources in browser tools and verify that the resources are minified.
--------------------------------------------------------------------------------
/Web-Dev/tag-helpers.md:
--------------------------------------------------------------------------------
1 | # Working with Razor Tag Helpers
2 |
3 | ## Look at Tag Helpers in the project template
4 | 1. Create a new ASP.NET Core project using the "Web Application" template with "Individual User Accounts" selected.
5 |
6 | 
7 |
8 | 1. Open the view `Pages/Account/Register.cshtml`
9 | 1. Look at the Tag Helpers attributes being used in this view (examples: `asp-route-returnUrl`, `asp-validation-summary`) and play around with setting the attributes and exploring the IntelliSense offered for the different attribute types.
10 | 1. Run the application and see the HTML output by the Tag Helpers. Note that the Tag Helper attributes are not output in the HTML source.
11 | 1. Look at the other views in `Pages/Account/` folder to see how they use Tag Helpers.
12 | 1. Open the file `Pages/_Layout.cshtml`.
13 | 1. Look at the Tag Helpers being used in the `` element and at the end of the page to render CSS stylesheets and JavaScript files and compare it to the generated HTML output.
14 |
15 | ## Create a custom Tag Helper
16 | 1. Create a new class in the application you created above, `public class RepeatTagHelper : TagHelper` and resolve any required namespaces
17 | 1. Add a property `public int Count { get; set; }`
18 | 1. Add an override for the `TagHelper.ProcessAsync()` method which repeats the content via the `output` parameter in a loop for `Count` iterations, e.g.:
19 |
20 | ``` C#
21 | public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
22 | {
23 | for (int i = 0; i < Count; i++)
24 | {
25 | output.Content.AppendHtml(await output.GetChildContentAsync(useCachedResult: false));
26 | }
27 | }
28 | ```
29 |
30 | 1. Open the `_ViewImports.cshtml` file and add a line to register your Tag Helper: `@addTagHelper *, Lab6` (adjust `Lab6` to your project/assembly name)
31 | 1. Open `Pages/Index.cshtml` and use your Tag Helper, e.g.:
32 |
33 | ``` HTML
34 |
35 | I'll be repeated!! @DateTime.UtcNow.Ticks
36 |
37 | ```
38 |
39 | 1. Run the application again and ensure your Tag Helper is working
40 | 1. Note that the Tag Helper is rendering itself as a `` tag (see it in the rendered HTML). We'll fix that now so that only the contents are rendered.
41 | 1. Open the `RepeatTagHelper` again and in the `ProcessAsync` method add a line to null out the tag name: `output.TagName = null;`
42 | 1. Run the application again and see that the outer tag is no longer rendered
43 |
44 | ## Extra if you have time
45 | 1. Experiment with decorating your `RepeatTagHelper` class with the `[HtmlTargetElement()]` attribute to change which HTML tag and/or attribute names to which it will attach itself.
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | Are you ready to get started with .NET Core? Learn the skills that will make you successful in building .NET applications no matter what operating system you are targeting. We’ll start with an overview of the framework and development tools, dig into ASP.NET Core web development, look at developing desktop and mobile applications, overview code reuse across frameworks, and show you what you need to know to update from the .NET Framework to .NET Core. Bring your laptop and roll up your sleeves for this full day of instructor-led training.
2 |
3 | ## Schedule
4 |
5 | From | To | Session
6 | ---------|----------|-------------------------------------------------
7 | 9:00 AM | 9:30 AM | [Overview, Tools and Acquisition](Overview-Tools-Acquisition) (30 minutes)
8 | 9:30 AM | 11:00 PM | [Web Development](Web-Dev) (1.5 hours)
9 | 11:00 AM | 12:00 PM | [Desktop Development](Desktop-Dev) (1 hour)
10 | 12:00 PM | 1:00 PM | Lunch
11 | 1:00 PM | 2:00 PM | [Mobile Development](Mobile-Dev) (1 hour)
12 | 2:00 PM | 2:45 PM | [Maximize Code Reuse With .NET Standard](NET-Standard) (45 minutes)
13 | 2:45 PM | 3:00 PM | Afternoon Break
14 | 3:00 PM | 3:30 PM | [.NET Containers](NET-Core-Containers) (30 minutes)
15 | 3:30 PM | 4:00 PM | [Porting From .NET Framework](Porting-From-NET-Framework) (30 minutes)
16 | 4:00 PM | 4:15 PM | Docs and Resources
17 | 4:15 PM | 5:00 PM | Q&A / Additional Lab Time
18 |
19 | ## Where to go next
20 | * [http://dot.net](http://dot.net) - .NET Core overview, tutorials, links
21 | * [http://docs.microsoft.com](http://docs.microsoft.com) - All the docs, tutorials, more!
22 | * [ASP.NET Documentation](https://docs.microsoft.com/en-us/aspnet/)
23 | * [.NET Standard docs](https://docs.microsoft.com/en-us/dotnet/articles/standard/library)
24 |
--------------------------------------------------------------------------------