Skip to content

Commit 9f26422

Browse files
committed
Added VSIX extension project
1 parent 16dd85b commit 9f26422

15 files changed

+840
-8
lines changed

OA/.template.config/template.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"author": "Amit Naik",
3+
"classifications": [],
4+
"description": "WhiteApp or QuickApp API solution template which is built on Domain-Driven Design (DDD)-based with all essential feature using .NET Core",
5+
"name": "Onion Architecture",
6+
"defaultName": "OA",
7+
"identity": "OnionArchitecture.CSharp",
8+
"groupIdentity": "OnionArchitecture",
9+
"tags": {
10+
"language": "C#",
11+
"type": "project"
12+
},
13+
"shortName": "OnionArchitecture",
14+
"sourceName": "OA",
15+
"guids": [],
16+
"primaryOutputs": [
17+
{
18+
"path": "OA\\OA.csproj"
19+
},
20+
{
21+
"path": "OA.Data\\OA.Data.csproj"
22+
},
23+
{
24+
"path": "OA.Domain\\OA.Domain.csproj"
25+
},
26+
{
27+
"path": "OA.Infrastructure\\OA.Infrastructure.csproj"
28+
},
29+
{
30+
"path": "OA.Persistence\\OA.Persistence.csproj"
31+
},
32+
{
33+
"path": "OA.Service\\OA.Service.csproj"
34+
},
35+
{
36+
"path": "OA.Test.Integration\\OA.Test.Integration.csproj"
37+
},
38+
{
39+
"path": "OA.Test.Unit\\OA.Test.Unit.csproj"
40+
}
41+
]
42+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
2+
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="ProjectGroup">
3+
<TemplateData>
4+
<Name>Onion Architecture</Name>
5+
<Description>WhiteApp or QuickApp API solution template which is built on Onion Architecture using .NET Core</Description>
6+
<TemplateID>OnionArchitecture.CSharp</TemplateID>
7+
<DefaultName>OA</DefaultName>
8+
9+
<Icon>project-icon.png</Icon>
10+
11+
<ProjectType>CSharp</ProjectType>
12+
<NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
13+
<SortOrder>5000</SortOrder>
14+
<CreateNewFolder>true</CreateNewFolder>
15+
<ProvideDefaultName>true</ProvideDefaultName>
16+
<LocationField>Enabled</LocationField>
17+
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
18+
<LanguageTag>C#</LanguageTag>
19+
<PlatformTag>windows</PlatformTag>
20+
<ProjectTypeTag>API</ProjectTypeTag>
21+
</TemplateData>
22+
<TemplateContent>
23+
<ProjectCollection/>
24+
<CustomParameters>
25+
<CustomParameter Name = "$language$" Value="CSharp" />
26+
<CustomParameter Name = "$uistyle$" Value="none"/>
27+
<CustomParameter Name = "$groupid$" Value="OnionArchitecture" />
28+
<CustomParameter Name = "SideWaffleNewProjNode" Value="CSharp\Web"/>
29+
</CustomParameters>
30+
</TemplateContent>
31+
<WizardExtension>
32+
<Assembly>Microsoft.VisualStudio.TemplateEngine.Wizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
33+
<FullClassName>Microsoft.VisualStudio.TemplateEngine.Wizard.TemplateEngineWizard</FullClassName>
34+
</WizardExtension>
35+
</VSTemplate>

OA/OA.sln

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@ Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio Version 16
44
VisualStudioVersion = 16.0.30114.105
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OA", "OA\OA.csproj", "{5CE8523B-CD37-4F3E-9F41-9A3D2DAB3D39}"
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OA", "OA\OA.csproj", "{5CE8523B-CD37-4F3E-9F41-9A3D2DAB3D39}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OA.Data", "OA.Data\OA.Data.csproj", "{FD63EE02-D0B5-421A-B64D-FFFD7E1B7276}"
8+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OA.Data", "OA.Data\OA.Data.csproj", "{FD63EE02-D0B5-421A-B64D-FFFD7E1B7276}"
99
EndProject
10-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OA.Domain", "OA.Domain\OA.Domain.csproj", "{74D8BF98-D40C-447E-BB40-29B1BAA363AB}"
10+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OA.Domain", "OA.Domain\OA.Domain.csproj", "{74D8BF98-D40C-447E-BB40-29B1BAA363AB}"
1111
EndProject
12-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OA.Infrastructure", "OA.Infrastructure\OA.Infrastructure.csproj", "{97A14F11-44A9-443C-ADC4-CF5696BC64F7}"
12+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OA.Infrastructure", "OA.Infrastructure\OA.Infrastructure.csproj", "{97A14F11-44A9-443C-ADC4-CF5696BC64F7}"
1313
EndProject
14-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OA.Persistence", "OA.Persistence\OA.Persistence.csproj", "{5F6B0320-95CE-4D4C-82D6-7A0972243716}"
14+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OA.Persistence", "OA.Persistence\OA.Persistence.csproj", "{5F6B0320-95CE-4D4C-82D6-7A0972243716}"
1515
EndProject
16-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OA.Service", "OA.Service\OA.Service.csproj", "{B20723E2-C6FC-41B2-8807-FC1E52B012F0}"
16+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OA.Service", "OA.Service\OA.Service.csproj", "{B20723E2-C6FC-41B2-8807-FC1E52B012F0}"
1717
EndProject
18-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OA.Test.Unit", "OA.Test.Unit\OA.Test.Unit.csproj", "{FDDC1E0E-296B-448C-90C2-9364B118F5E2}"
18+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OA.Test.Unit", "OA.Test.Unit\OA.Test.Unit.csproj", "{FDDC1E0E-296B-448C-90C2-9364B118F5E2}"
1919
EndProject
20-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OA.Test.Integration", "OA.Test.Integration\OA.Test.Integration.csproj", "{4150259A-1CC5-4BB2-A0D4-891F56338028}"
20+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OA.Test.Integration", "OA.Test.Integration\OA.Test.Integration.csproj", "{4150259A-1CC5-4BB2-A0D4-891F56338028}"
21+
EndProject
22+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OATemplate", "OATemplate\OATemplate.csproj", "{A5926428-D707-4D5E-B785-82DFE8C5AC85}"
2123
EndProject
2224
Global
2325
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -57,6 +59,10 @@ Global
5759
{4150259A-1CC5-4BB2-A0D4-891F56338028}.Debug|Any CPU.Build.0 = Debug|Any CPU
5860
{4150259A-1CC5-4BB2-A0D4-891F56338028}.Release|Any CPU.ActiveCfg = Release|Any CPU
5961
{4150259A-1CC5-4BB2-A0D4-891F56338028}.Release|Any CPU.Build.0 = Release|Any CPU
62+
{A5926428-D707-4D5E-B785-82DFE8C5AC85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
63+
{A5926428-D707-4D5E-B785-82DFE8C5AC85}.Debug|Any CPU.Build.0 = Debug|Any CPU
64+
{A5926428-D707-4D5E-B785-82DFE8C5AC85}.Release|Any CPU.ActiveCfg = Release|Any CPU
65+
{A5926428-D707-4D5E-B785-82DFE8C5AC85}.Release|Any CPU.Build.0 = Release|Any CPU
6066
EndGlobalSection
6167
GlobalSection(SolutionProperties) = preSolution
6268
HideSolutionNode = FALSE

OA/OATemplate/LICENSE.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2020 Amit P Naik
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.

OA/OATemplate/OATemplate.csproj

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<!--/-:cnd -->
4+
<PropertyGroup>
5+
<MinimumVisualStudioVersion>15.0</MinimumVisualStudioVersion>
6+
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
7+
<StartAction>Program</StartAction>
8+
<StartProgram>$(DevEnvDir)\devenv.exe</StartProgram>
9+
<StartArguments>/rootsuffix Exp</StartArguments>
10+
</PropertyGroup>
11+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
12+
<PropertyGroup>
13+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
14+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
15+
<SchemaVersion>2.0</SchemaVersion>
16+
<ProjectTypeGuids>{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
17+
<ProjectGuid>{A5926428-D707-4D5E-B785-82DFE8C5AC85}</ProjectGuid>
18+
<OutputType>Library</OutputType>
19+
<AppDesignerFolder>Properties</AppDesignerFolder>
20+
<RootNamespace>OATemplate</RootNamespace>
21+
<AssemblyName>OATemplate</AssemblyName>
22+
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
23+
<GeneratePkgDefFile>false</GeneratePkgDefFile>
24+
<IncludeAssemblyInVSIXContainer>false</IncludeAssemblyInVSIXContainer>
25+
<IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer>
26+
<IncludeDebugSymbolsInLocalVSIXDeployment>false</IncludeDebugSymbolsInLocalVSIXDeployment>
27+
<CopyBuildOutputToOutputDirectory>false</CopyBuildOutputToOutputDirectory>
28+
<CopyOutputSymbolsToOutputDirectory>false</CopyOutputSymbolsToOutputDirectory>
29+
</PropertyGroup>
30+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
31+
<DebugSymbols>true</DebugSymbols>
32+
<DebugType>full</DebugType>
33+
<Optimize>false</Optimize>
34+
<OutputPath>bin\Debug\</OutputPath>
35+
<DefineConstants>DEBUG;TRACE</DefineConstants>
36+
<ErrorReport>prompt</ErrorReport>
37+
<WarningLevel>4</WarningLevel>
38+
</PropertyGroup>
39+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
40+
<DebugType>pdbonly</DebugType>
41+
<Optimize>true</Optimize>
42+
<OutputPath>bin\Release\</OutputPath>
43+
<DefineConstants>TRACE</DefineConstants>
44+
<ErrorReport>prompt</ErrorReport>
45+
<WarningLevel>4</WarningLevel>
46+
</PropertyGroup>
47+
<ItemGroup>
48+
<Compile Include="Properties\AssemblyInfo.cs" />
49+
</ItemGroup>
50+
<ItemGroup>
51+
<None Include="Properties\wafflebuilder.targets">
52+
<SubType>Designer</SubType>
53+
</None>
54+
<None Include="source.extension.vsixmanifest">
55+
<SubType>Designer</SubType>
56+
</None>
57+
<None Include="template\templatepack.OATemplate.proj" />
58+
</ItemGroup>
59+
<ItemGroup>
60+
<Content Include="LICENSE.txt">
61+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
62+
<IncludeInVSIX>true</IncludeInVSIX>
63+
</Content>
64+
<Content Include="OnionArchitecture_icon.png">
65+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
66+
<IncludeInVSIX>true</IncludeInVSIX>
67+
</Content>
68+
<Content Include="Properties\project-icon.png" />
69+
<Content Include="Resources\OnionArchitecture_icon.png">
70+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
71+
<IncludeInVSIX>true</IncludeInVSIX>
72+
</Content>
73+
<Content Include="stylesheet.css" />
74+
<Content Include="template.pkgdef">
75+
<IncludeInVSIX>true</IncludeInVSIX>
76+
</Content>
77+
</ItemGroup>
78+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
79+
<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />
80+
<PropertyGroup>
81+
<WaffleBuilderTargetsPath Condition=" '$(WaffleBuilderTargetsPath)'=='' ">$(MSBuildProjectDirectory)\Properties\wafflebuilder.targets</WaffleBuilderTargetsPath>
82+
</PropertyGroup>
83+
<Import Project="$(WaffleBuilderTargetsPath)" Condition="Exists('$(WaffleBuilderTargetsPath)')" />
84+
<Target Name="WarnOnMissingWaffleBuilderTargets" BeforeTargets="PrepareForBuild">
85+
<PropertyGroup>
86+
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
87+
</PropertyGroup>
88+
<Warn Condition="!Exists('$(WaffleBuilderTargetsPath)')" Text="wafflebuilder.targets not found at [$(WaffleBuilderTargetsPath)]" />
89+
</Target>
90+
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
91+
Other similar extension points exist, see Microsoft.Common.targets.
92+
<Target Name="BeforeBuild">
93+
</Target>
94+
<Target Name="AfterBuild">
95+
</Target>
96+
-->
97+
</Project>
34.7 KB
Loading
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
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("OATemplateProject")]
9+
[assembly: AssemblyDescription("")]
10+
[assembly: AssemblyConfiguration("")]
11+
[assembly: AssemblyCompany("")]
12+
[assembly: AssemblyProduct("OATemplateProject")]
13+
[assembly: AssemblyCopyright("")]
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+
// Version information for an assembly consists of the following four values:
23+
//
24+
// Major Version
25+
// Minor Version
26+
// Build Number
27+
// Revision
28+
//
29+
// You can specify all the values or you can default the Build and Revision Numbers
30+
// by using the '*' as shown below:
31+
// [assembly: AssemblyVersion("1.0.*")]
32+
[assembly: AssemblyVersion("1.0.0.0")]
33+
[assembly: AssemblyFileVersion("1.0.0.0")]
4.06 KB
Loading

0 commit comments

Comments
 (0)