![]() |
VOOZH | about |
dotnet add package DragonFly.Proxy.Attributes --version 0.9.20
NuGet\Install-Package DragonFly.Proxy.Attributes -Version 0.9.20
<PackageReference Include="DragonFly.Proxy.Attributes" Version="0.9.20" />
<PackageVersion Include="DragonFly.Proxy.Attributes" Version="0.9.20" />Directory.Packages.props
<PackageReference Include="DragonFly.Proxy.Attributes" />Project file
paket add DragonFly.Proxy.Attributes --version 0.9.20
#r "nuget: DragonFly.Proxy.Attributes, 0.9.20"
#:package DragonFly.Proxy.Attributes@0.9.20
#addin nuget:?package=DragonFly.Proxy.Attributes&version=0.9.20Install as a Cake Addin
#tool nuget:?package=DragonFly.Proxy.Attributes&version=0.9.20Install as a Cake Tool
| Package | Release |
|---|---|
| DragonFly.Core | 👁 NuGet |
| DragonFly.AspNetCore | 👁 NuGet |
| DragonFly.API | 👁 NuGet |
| DragonFly.Client | 👁 NuGet |
| DragonFly.BlockField | 👁 NuGet |
| DragonFly.Proxy | 👁 NuGet |
| DragonFly.ImageWizard | 👁 NuGet |
| DragonFly.MongoDB | 👁 NuGet |
| DragonFly.Identity | 👁 NuGet |
| DragonFly.ApiKeys | 👁 NuGet |
To use the project template you need first to download and install it from NuGet.
dotnet new install DragonFly.Templates
After this you can create the project with:
dotnet new DragonFly
If you have a remote MongoDB instance, you need to add some appsettings:
"MongoDB": {
"Hostname": "localhost",
"Database": "DragonFly_App",
"Port": 27017,
"Username": "",
"Password": ""
},
IContentStorage contentStorage = ...;//use MongoStorage or ClientContentService (http client)
//create brand schema
ContentSchema schemaBrand = new ContentSchema("Brand")
.AddString("Name")
.AddSlug("Slug")
.AddTextArea("Description");
//Define schema for product
ContentSchema schemaProduct = new ContentSchema("Product")
.AddReference("Brand")
.AddString("Name", options => options.IsRequired = true)
.AddSlug("Slug")
.AddBool("IsAvailable", options => options.DefaultValue = true)
.AddFloat("Price")
.AddTextArea("Description", options => options.MaxLength = 255)
.AddArray("Attributes", options => options
.AddString("Name")
.AddString("Value"));
await contentStorage.CreateAsync(schemaProduct);
//create product by schema
ContentItem contentProduct = schemaProduct
.CreateContent()
.SetReference("Brand", new ContentItem(Guid.Parse(""), schemaBrand))
.SetString("Name", "ProductA")
.SetBool("IsAvailable", true)
.SetFloat("Price", 9.99)
.SetTextArea("Description", "...")
.AddArrayItem("Attributes", schemaProduct, item => item
.SetString("Name", "Size")
.SetString("Value", "M"));
await contentStorage.CreateAsync(contentProduct);
[ContentItem("BlogPost")]
public class BlogPostModel : EntityPageModel
{
[DateField(Required = true)]
public virtual DateTime? Date { get; set; }
[StringField(Required = true, Searchable = true, ListField = true, MinLength = 8, MaxLength = 512)]
public virtual string Title { get; set; }
[TextField]
public virtual string Description { get; set; }
[SlugField(Required = true, Index = true)]
public virtual string Slug { get; set; }
[AssetField(ListField = true, ShowPreview = true)]
public virtual AssetField Image { get; set; }
[BlockField]
public virtual BlockField MainContent { get; set; }
}
builder.Services.AddDragonFly()
.AddProxy(x => x.AddType<BlogPostModel>());
//get first item
var first = await ContentStorage.FirstOrDefaultAsync<BlogPostModel>(x => x
.SlugQuery(x => x.Slug, slug));
//get all items
var result = await ContentStorage.QueryAsync<BlogPostModel>(x => x
.Published(true)
.Top(10)
.SlugQuery(x => x.Slug, slug));
For long running jobs you can use the BackgroundTaskManager.
IBackgroundTaskManager taskManager = app.Services.GetRequiredService<IBackgroundTaskManager>();
taskManager.Start("Test", async ctx => await Task.Delay(TimeSpan.FromSeconds(60), ctx.CancellationToken));
builder.Services.Configure<DragonFlyOptions>(Configuration.GetSection("General"));
builder.Services.Configure<MongoDbOptions>(Configuration.GetSection("MongoDB"));
//add DragonFly services
builder.Services.AddDragonFly()
.AddImageWizard()
.AddRestApi()
.AddMongoDbStorage()
.AddMongoDbIdentity()
.AddBlockField()
.AddApiKeys();
var app = builder.Build();
//init DragonFly
await app.InitDragonFlyAsync();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseWebAssemblyDebugging();
}
app.UseDragonFly(x => x
.MapImageWizard()
.MapApiKey()
.MapIdentity()
.MapRestApi());
app.UseDragonFlyManager();
app.UseRouting();
app.Run();
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<DragonFly.App.Client.App>("app");
//Register DragonFly components
builder.AddDragonFly()
.AddRestApi()
.AddBlockField()
.AddIdentity()
.AddApiKeys();
WebAssemblyHost host = builder.Build();
await host.InitDragonFlyAsync();
await host.RunAsync();
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 net7.0 is compatible. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 1 NuGet packages that depend on DragonFly.Proxy.Attributes:
| Package | Downloads |
|---|---|
|
DragonFly.Proxy
Headless CMS based on ASP.NET Core and Blazor |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.9.20 | 588 | 6/27/2023 |
| 0.9.19 | 549 | 6/22/2023 |
| 0.9.17 | 576 | 5/9/2023 |
| 0.9.16 | 576 | 4/28/2023 |
| 0.9.15 | 603 | 4/27/2023 |
| 0.9.14 | 582 | 4/27/2023 |
| 0.9.13 | 646 | 4/15/2023 |
| 0.9.12 | 696 | 3/19/2023 |
| 0.9.11 | 657 | 3/15/2023 |
| 0.9.10 | 716 | 3/5/2023 |
| 0.9.9 | 677 | 3/3/2023 |
| 0.9.8 | 698 | 3/2/2023 |
| 0.9.7 | 797 | 1/29/2023 |
| 0.9.6 | 810 | 1/27/2023 |
| 0.9.5 | 784 | 1/25/2023 |
| 0.9.3 | 788 | 1/2/2023 |
| 0.9.2 | 783 | 1/2/2023 |
| 0.9.0 | 800 | 12/28/2022 |
| 0.8.3 | 748 | 12/19/2022 |
| 0.8.2 | 702 | 12/18/2022 |