Skip to content

Commit 18be3c5

Browse files
committed
Update ReadMe
1 parent e3f2c4d commit 18be3c5

File tree

1 file changed

+153
-0
lines changed

1 file changed

+153
-0
lines changed

README.md

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,156 @@ A ready-to-use template for ASP.NET Core with repositories, services, models map
1010

1111
- [Nikolay Kostov](https://github.com/NikolayIT)
1212
- [Vladislav Karamfilov](https://github.com/vladislav-karamfilov)
13+
14+
## Package Installation
15+
16+
You can install this template using [NuGet](https://www.nuget.org/packages/AspNetCoreTemplate):
17+
18+
```powershell
19+
Install-Package AspNetCoreTemplate
20+
```
21+
22+
```powershell
23+
dotnet new aspnet-core-template -n YourProjectName
24+
```
25+
26+
## Overview
27+
28+
### Common
29+
30+
**AspNetCoreTemplate.Common** will contains common things for the project solution. For example:
31+
- [GlobalConstants.cs](https://github.com/NikolayIT/ASP.NET-Core-Template/blob/master/src/AspNetCoreTemplate.Common/GlobalConstants.cs).
32+
33+
### Data
34+
This solution folder contains three subfolders
35+
- AspNetCoreTemplate.Data.Common
36+
- AspNetCoreTemplate.Data.Models
37+
- AspNetCoreTemplate.Data
38+
39+
##### AspNetCoreTemplate.Data.Common
40+
[AspNetCoreTemplate.Data.Common.Models](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Data/AspNetCoreTemplate.Data.Common/Models) provides us abstract generics classes and interfaces, which holds information about our entities for example when the object is Created, Modified, Deleted or IsDeleted. It contains a property for the primary key as well.
41+
42+
[AspNetCoreTemplate.Data.Common.Repositories](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Data/AspNetCoreTemplate.Data.Common/Repositories) provides two interfaces IDeletableEntityRepository and IRepository, which are part of our **repository pattern**.
43+
44+
##### AspNetCoreTemplate.Data.Models
45+
[AspNetCoreTemplate.Data.Models](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Data/AspNetCoreTemplate.Data.Models) contains ApplicationUser and ApplicationRole classes, which inherits IdentityRole and IdentityUsers.
46+
47+
##### AspNetCoreTemplate.Data
48+
[AspNetCoreTemplate.Data](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Data/AspNetCoreTemplate.Data) contains our DbContext, Migrations, Configuraitons. It holds our Seeding and Repository functionality.
49+
50+
### Services
51+
This solution folder contains four subfolders
52+
- AspNetCoreTemplate.Services.Data
53+
- AspNetCoreTemplate.Services.Mapping
54+
- AspNetCoreTemplate.Services.Messaging
55+
- AspNetCoreTemplate.Services
56+
57+
##### AspNetCoreTemplate.Services.Data
58+
[AspNetCoreTemplate.Services.Data](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Services/AspNetCoreTemplate.Services.Data) wil contains our service layer.
59+
60+
##### AspNetCoreTemplate.Services.Mapping
61+
[AspNetCoreTemplate.Services.Mapping](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Services/AspNetCoreTemplate.Services.Mapping) provides simplified functionlity for auto mapping. For example:
62+
63+
```csharp
64+
using Blog.Data.Models;
65+
using Blog.Services.Mapping;
66+
67+
public class TagViewModel : IMapFrom<Tag>
68+
{
69+
public int Id { get; set; }
70+
71+
public string Name { get; set; }
72+
}
73+
```
74+
75+
Or if you have something specific:
76+
77+
```csharp
78+
using System;
79+
80+
using AutoMapper;
81+
using Blog.Data.Models;
82+
using Blog.Services.Mapping;
83+
84+
public class IndexPostViewModel : IMapFrom<Post>, IHaveCustomMappings
85+
{
86+
public int Id { get; set; }
87+
88+
public string Title { get; set; }
89+
90+
public string Author { get; set; }
91+
92+
public string ImageUrl { get; set; }
93+
94+
public DateTime CreatedOn { get; set; }
95+
96+
public void CreateMappings(IProfileExpression configuration)
97+
{
98+
configuration.CreateMap<Post, IndexPostViewModel>()
99+
.ForMember(
100+
source => source.Author,
101+
destination => destination.MapFrom(member => member.ApplicationUser.UserName));
102+
}
103+
}
104+
105+
```
106+
107+
##### AspNetCoreTemplate.Services.Messaging
108+
109+
[AspNetCoreTemplate.Services.Messaging](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Services/AspNetCoreTemplate.Services.Messaging) a ready to use integration with [SendGrid](https://sendgrid.com/)
110+
111+
##### AspNetCoreTemplate.Services
112+
113+
[AspNetCoreTemplate.Services.Data](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Services/AspNetCoreTemplate.Services)
114+
115+
### Services
116+
This solution folder contains three subfolders
117+
- AspNetCoreTemplate.Services.Data.Tests
118+
- AspNetCoreTemplate.Web.Tests
119+
- Sandbox
120+
121+
##### AspNetCoreTemplate.Services.Data.Tests
122+
123+
[AspNetCoreTemplate.Services.Data.Tests](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Tests/AspNetCoreTemplate.Services.Data.Tests) will hold unit tests for our service layer. It's already have installer XUnit.
124+
125+
##### AspNetCoreTemplate.Web.Tests
126+
127+
[AspNetCoreTemplate.Web.Tests](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Tests/AspNetCoreTemplate.Web.Tests) setted up Selenuim tests.
128+
129+
##### Sandbox
130+
131+
[Sandbox](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Tests/Sandbox)
132+
133+
### Web
134+
This solution folder contains three subfolders
135+
- AspNetCoreTemplate.Web.Infrastructure
136+
- AspNetCoreTemplate.Web.ViewModels
137+
- AspNetCoreTemplate.Web
138+
139+
##### AspNetCoreTemplate.Web.Infrastructure
140+
141+
[AspNetCoreTemplate.Web.Infrastructure](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Web/AspNetCoreTemplate.Web.Infrastructure) will contains functionality like Middlewares and Filters.
142+
143+
##### AspNetCoreTemplate.Web.ViewModels
144+
145+
[AspNetCoreTemplate.Web.ViewModels](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Web/AspNetCoreTemplate.Web.ViewModels) will contains objects, which will be mapped from our entities and used in the front-end.
146+
147+
##### AspNetCoreTemplate.Web
148+
149+
[AspNetCoreTemplate.Web](https://github.com/NikolayIT/ASP.NET-Core-Template/tree/master/src/Web/AspNetCoreTemplate.Web)
150+
151+
## Support
152+
153+
If you are having problems, please let us know by [raising a new issue](https://github.com/NikolayIT/ASP.NET-Core-Template/issues).
154+
155+
## Contributors
156+
157+
- [Stoyan Shopov](https://github.com/StoyanShopov)
158+
159+
## Example Projects
160+
- https://github.com/NikolayIT/PressCenters.com
161+
- https://github.com/NikolayIT/nikolay.it
162+
163+
## License
164+
165+
This project is licensed with the [MIT license](LICENSE).

0 commit comments

Comments
 (0)