混合式APP开发被中件方案Rexsee

归来目录

发现Rexsee时,他曾同年差不多从未创新了了,最后版本是2012年之。

当.net frameworks的ef里连连mysql我们早就测试通过了,而于dotnet
core里的efCore上去连接mysql我们用测试一下,并且以测试过程被出现了片题材,当然最终为是解决了,下面总结一下,分享给大家!

 

  1. mysql项目的依靠包
  2. 数量上下文和连续串
  3. 数存储
  4. 长模块扩展
  5. 业务层注入
  6. 事务实现

外的落实思路是通过Android自带的Java – Javascript
桥机制,在WebView中之JavaScript同Java进行通信,而这样的话即Javascript可以直接创造原生UI界面,以获得比较高之属性目标。

mysql项目的依赖包

 

  1. Microsoft.EntityFrameworkCore
  2. MySql.Data.EntityFrameworkCore

这样,它支持C/B/S模式即Hybrid 混合式App的开发。

数量上下文和连串

 

对此mysql的上下文和利用sql没什么两类,需要注意的是使加上的SSL的否认,否则还要会时有发生坏出

1.
眼看本身是Android内置的编制,所欲做的行事但是做一样叠封装,共js使用,所以理论及是富有十分好之扩展性的;

MySql.Data.MySqlClient.MySqlException: The
host localhost does not support SSL connections.

2.
以UI主体布局、升级等效果在Native,内部的功能模块,变化较充分之,放在服务端,利用HTML5的休养生息存特性缓存界面的结构首批数据与逻辑,减少用户提升,并提升用户体验;

    public partial class MySqlERPContext : DbContext, IERPContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseMySQL(@"Server=localhost;database=ef;uid=root;pwd=root;SslMode=None");
            base.OnConfiguring(optionsBuilder);
        }
        public DbSet<system_users> system_users { get; set; }
        public DbSet<User> Users { set; get; }
    }
  1. 仅支持Android平台

数码存储

 

心想事成持续基础设备里的EFRepository就可以了,我们得也仓储传递一个数目上下文进来,就是面定义之Mysql的上下文对象,这样你的蕴藏就可以操作是上下文了.

  public class ERPRepository<T> : EFRepository<T> where T : class
    {
        public ERPRepository() : base(new MySqlERPContext()) { }
    }

丰富模块扩展

咱基础设备里出有一度落实的效应,我们会做成扩展方法,方便为工作葡京娱乐总站平台体系的动,而和事务有关的目标,如工作仓储,业务及下文可以在工作系统添加扩展,方法后期的流入工作,一般的事体扩大代码如下

    /// <summary>
    /// 对于当前项目的模块化扩展
    /// </summary>
    public static class ModuleExtensions
    {
        /// <summary>
        /// 注册一个数据仓库
        /// </summary>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public static ModuleManager UseErpRepository(this ModuleManager configuration)
        {
            configuration.RegisterGenericModule(
                typeof(IRepository<>),
                typeof(ERPRepository<>));
            return configuration;
        }
        /// <summary>
        /// 注册一个数据上下文
        /// </summary>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public static ModuleManager UseErpContext(this ModuleManager configuration)
        {
            configuration.RegisterModule<IERPContext, MySqlERPContext>();
            return configuration;
        }
    }

业务层注入

模块的扩张实现后,就是当业务体系初始化时注入其,实现啊种办法就失报哪里,一般以global或者startup里去落实注入功能.

        //注册模块
            ModuleManager.Create()
                         .UseAutofac()
                         .UseESBIoC()
                         .UseErpContext()
                         .UseErpRepository();

事务实现

得直接从模块里将相应之存储取出来,然后实施相应之curd操作即可

       ModuleManager.Resolve<IRepository<User>>().Insert(new Api.User
            {
                Name = "two"
            });

这样我们当dotnet
core里通过efcore去操作mysql数据库就做到了,需要注意的凡,在mysql连接串中,一定要抬高SslMode=None以此特性,否则会启用ssl链接!

感谢各位阅读!

返回目录