Browse Source

Created first document.

pull/129/head
Halil İbrahim Kalkan 9 years ago
parent
commit
601865fde7
  1. 6
      README.md
  2. 120
      docs/Getting-Started-Console-Application.md
  3. 9
      docs/Index.md
  4. BIN
      docs/images/create-new-net-core-console-application.png

6
README.md

@ -1 +1,5 @@
# abp EDGE
# ABP
ABP is a modern application development framework based on cross platform .Net Core framework.
See <a href="docs\Index.md" target="_blank">documentation</a>.

120
docs/Getting-Started-Console-Application.md

@ -0,0 +1,120 @@
## Getting Started ABP With Console Application
### Create A New Project
Create a new Regular .Net Core Console Application from Visual Studio:
![](images/create-new-net-core-console-application.png)
### Install Volo.Abp Package
Volo.Abp is the core nuget package to create ABP based applications. So, install it to your project:
````
Install-Package Volo.Abp
````
### Create First ABP Module
ABP is a modular framework and it requires a **root module** class derived from ``AbpModule``:
````C#
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity;
namespace AbpConsoleDemo
{
public class AppModule : AbpModule
{
public override void ConfigureServices(IServiceCollection services)
{
services.AddAssemblyOf<AppModule>();
}
}
}
````
``AppModule`` is a good name for the root module for a console application. A module class can register services to Dependency Injection by overriding ``ConfigureServices`` method as shown here. ``AddAssemblyOf<...>`` is a special extension method of ABP that registers all services in an assembly by convention (TODO: link to DI document). While this is optional, a module generally registers some of it's services.
### Initialize The Application
The next step is to bootstrap the application using the module created above:
````C#
using System;
using Volo.Abp;
namespace AbpConsoleDemo
{
class Program
{
static void Main(string[] args)
{
using (var application = AbpApplicationFactory.Create<AppModule>())
{
application.Initialize();
Console.WriteLine("Press ENTER to stop application...");
Console.ReadLine();
}
}
}
}
````
``AbpApplicationFactory`` is used to create the application and load all modules taking ``AppModule`` as the root (starting) module. ``Initialize()`` method starts the application.
### Hellow World!
The application above does nothing. Let's create a service that writes "Hello World!" to the console:
````C#
using System;
using Volo.Abp.DependencyInjection;
namespace AbpConsoleDemo
{
public class HelloWorldService : ITransientDependency
{
public void SayHello()
{
Console.WriteLine("Hello World!");
}
}
}
````
``ITransientDependency`` is a special interface of ABP that automatically registers the service as transient (TODO: link to MS DI documentation and ABP DI documentation).
Now, we can resolve the ``HelloWorldService`` and say hello. Change the Program.cs as shown below:
````C#
using System;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;
namespace AbpConsoleDemo
{
class Program
{
static void Main(string[] args)
{
using (var application = AbpApplicationFactory.Create<AppModule>())
{
application.Initialize();
//Resolve a service and use it
var helloWorldService = application.ServiceProvider.GetService<HelloWorldService>();
helloWorldService.SayHello();
Console.WriteLine("Press ENTER to stop application...");
Console.ReadLine();
}
}
}
}
````
While it's enough for this simple code example, it's always suggested to create scopes in case of directly resolving dependencies from ``IServiceProvider`` (TODO: see DI documentation).

9
docs/Index.md

@ -0,0 +1,9 @@
# ABP Documentation
## Table of Contents
### Overall
* Getting Started
* <a href="Getting-Started-Console-Application.md" target="_blank">With Console Application</a>
* With ASP.NET Core Web Application

BIN
docs/images/create-new-net-core-console-application.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Loading…
Cancel
Save