All Projects → dansiegel → Azuremobileclient.helpers

dansiegel / Azuremobileclient.helpers

Licence: mit
Provides a wrapper for the Microsoft.Azure.Mobile.Client library

Projects that are alternatives of or similar to Azuremobileclient.helpers

Vs Streamjsonrpc
The StreamJsonRpc library offers JSON-RPC 2.0 over any .NET Stream, WebSocket, or Pipe. With bonus support for request cancellation, client proxy generation, and more.
Stars: ✭ 421 (+2706.67%)
Mutual labels:  netstandard
Steeltoe
Steeltoe .NET Core Components: CircuitBreaker, Configuration, Connectors, Discovery, Logging, Management, and Security
Stars: ✭ 612 (+3980%)
Mutual labels:  netstandard
Wpfnewprojectsystemsample
Sample WPF application using the new csproj format (.NET Core project system https://github.com/dotnet/project-system/ ). Targering .NET Framework 4.6.2 or higher.
Stars: ✭ 25 (+66.67%)
Mutual labels:  netstandard
Trady
Trady is a handy library for computing technical indicators, and it targets to be an automated trading system that provides stock data feeding, indicator computing, strategy building and automatic trading. It is built based on .NET Standard 2.0.
Stars: ✭ 433 (+2786.67%)
Mutual labels:  netstandard
Nlog
NLog - Advanced and Structured Logging for Various .NET Platforms
Stars: ✭ 5,296 (+35206.67%)
Mutual labels:  netstandard
Xamarinmediamanager
Cross platform Xamarin plugin to play and control Audio and Video
Stars: ✭ 647 (+4213.33%)
Mutual labels:  netstandard
Graphql Client
A GraphQL Client for .NET Standard
Stars: ✭ 418 (+2686.67%)
Mutual labels:  netstandard
Csla
A home for your business logic in any .NET application.
Stars: ✭ 865 (+5666.67%)
Mutual labels:  netstandard
Vs Threading
The Microsoft.VisualStudio.Threading is a xplat library that provides many threading and synchronization primitives used in Visual Studio and other applications.
Stars: ✭ 585 (+3800%)
Mutual labels:  netstandard
Headerpropagation
ASP.NET Core middleware to propagate HTTP headers from the incoming request to the outgoing HTTP Client requests. This is a backport to ASP.NET Core 2.1 (and 2.2) of the ASP.NET Core HeaderPropagation middleware I had recently contributed to the ASP.NET Core project.
Stars: ✭ 23 (+53.33%)
Mutual labels:  netstandard
Opengl.net
Modern OpenGL bindings for C#.
Stars: ✭ 473 (+3053.33%)
Mutual labels:  netstandard
Dryioc
DryIoc is fast, small, full-featured IoC Container for .NET
Stars: ✭ 555 (+3600%)
Mutual labels:  netstandard
Buildxl
Microsoft Build Accelerator
Stars: ✭ 676 (+4406.67%)
Mutual labels:  netstandard
Vortice.windows
.NET standard bindings for DirectX, WIC, Direct2D1, XInput, XAudio and X3DAudio
Stars: ✭ 427 (+2746.67%)
Mutual labels:  netstandard
Brainf cksharp
A complete and full-featured Brainf_ck IDE/console for Windows 10 (UWP), with a high-performance REPL interpreter
Stars: ✭ 26 (+73.33%)
Mutual labels:  netstandard
Advanceddlsupport
Delegate-based C# P/Invoke alternative - compatible with all platforms and runtimes.
Stars: ✭ 419 (+2693.33%)
Mutual labels:  netstandard
Smartformat
An extensible .NET replacement for String.Format
Stars: ✭ 642 (+4180%)
Mutual labels:  netstandard
System.linq.dynamic.core
The .NET Standard / .NET Core version from the System Linq Dynamic functionality.
Stars: ✭ 864 (+5660%)
Mutual labels:  netstandard
Mathos Parser
A mathematical expression parser and evaluation library.
Stars: ✭ 26 (+73.33%)
Mutual labels:  netstandard
Epplus
EPPlus 5-Excel spreadsheets for .NET
Stars: ✭ 693 (+4520%)
Mutual labels:  netstandard

AzureMobileClient.Helpers

AzureMobileClient.Helpers is a lightweight toolkit for using the Microsoft Azure Mobile Client. It provides a set of abstractions and base classes that are based originally on the Samples from Adrian Hall, along with a few tweaks to follow best practices with an interface based design.

Note that this library has been aligned with the Microsoft.Azure.Mobile.Client and is offered using NetStandard1.4 and as such is not compatible with traditional PCL projects. For this reason, it is recommended that you check out the Prism Templates I have available for dotnet new which use a NetStandard1.4 common library for the shared code.

Package Version MyGet
AzureMobileClient.Helpers HelpersShield HelpersMyGetShield
AzureMobileClient.Helpers.Autofac HelpersAutofacShield HelpersAutofacMyGetShield
AzureMobileClient.Helpers.DryIoc HelpersDryIocShield HelpersDryIocMyGetShield
AzureMobileClient.Helpers.SimpleInjector HelpersSimpleInjectorShield HelpersSimpleInjectorMyGetShield
AzureMobileClient.Helpers.Unity HelpersUnityShield HelpersUnityMyGetShield
AzureMobileClient.Helpers.AzureActiveDirectory HelpersAADShield HelpersAADMyGetShield

Support

If this project helped you reduce time to develop and made your app better, please help support this project.

paypal

Resources

Setting up the library for Dependency Injection

The following examples are based on using DryIoc in a Prism Application:

protected override void RegisterTypes()
{
    // ICloudTable is only needed for Online Only data
    Container.Register(typeof(ICloudTable<>), typeof(AzureCloudTable<>), Reuse.Singleton);
    Container.Register(typeof(ICloudSyncTable<>), typeof(AzureCloudSyncTable<>), Reuse.Singleton);

    Container.UseInstance<IPublicClientApplication>(new PublicClientApplication(Secrets.AuthClientId, AppConstants.Authority)
    {
        RedirectUri = AppConstants.RedirectUri
    });

    Container.RegisterMany<AADOptions>(reuse: Reuse.Singleton,
                                       serviceTypeCondition: type =>
                                                type == typeof(IAADOptions) ||
                                                type == typeof(IAADLoginProviderOptions));

    Container.Register<IAzureCloudServiceOptions, AppServiceContextOptions>(Reuse.Singleton);
    Container.RegisterMany<AppDataContext>(reuse: Reuse.Singleton,
                                           serviceTypeCondition: type => 
                                                type == typeof(IAppDataContext) ||
                                                type == typeof(ICloudService));
    Container.RegisterDelegate<IMobileServiceClient>(factoryDelegate: r => r.Resolve<ICloudService>().Client,
                                                     reuse: Reuse.Singleton,
                                                     setup: Setup.With(allowDisposableTransient: true));
    Container.Register<ILoginProvider<AADAccount>,LoginProvider>(Reuse.Singleton);
}
public class AwesomeAppCloudServiceOptions : IAzureCloudServiceOptions
{
    public string AppServiceEndpoint => "https://yourappname.azurewebsites.net";
    public string AlternateLoginHost => string.Empty;
    public string LoginUriPrefix => string.Empty;
    public HttpMessageHandler[] Handlers => new HttpMessageHandler[0];
}

public class AwesomeAppCustomerAppContext : DryIocCloudAppContext
{
    public MyAppClient(IContainer container)
        // We can optionally pass in a database name
        : base(container, "myDatabaseName.db")
    {

    }

    /*
     * NOTE: This is architected to be similar to Entity Framework in that
     * the CloudAppContext will look for properties that are ICloudSyncTable<>
     * so that it can register the Model type with the SQLite Store.
     */
    public ICloudSyncTable<Customer> Customers => SyncTable<Customer>();
    public ICloudSyncTable<Invoice> Invoices => SyncTable<Invoice>();
    public ICloudSyncTable<InvoiceItem> InvoiceItems => SyncTable<InvoiceItem>();
    public ICloudTable<Feedback> Feedback => Table<Feedback>();

}

public class Customer : EntityData
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
}

public class Invoice : EntityData
{
    public string CustomerId { get; set; }
}

public class InvoiceItem : EntityData
{
    public string InvoiceId { get; set; }
    public string ItemId { get; set; }
    public int Quantity { get; set; }
}

public class Feedback : EntityData
{
    public string Message { get; set; }
    public string Status { get; set; }
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].