Coder Social home page Coder Social logo

dapperrepositoryold's Introduction

Welcome to ErgodicMage's GitHub repositories!

I have been developing since 1980 and have programmed in many languages across many platforms. Since 2005 my development efforts have been almost exclusively with .Net, starting .Net 1.1 then 3.5, 4.6, 4.7 and 4.8 till today with .Net 6. The repositories are mostly my experminetal side programming to learn .Net 6 and modernize my development skills using newer techniques which were not available back when I started with .Net.

The repositories I have on GitHub are:
Result A simple implementation of the Result Pattern with Guard Clauses that return Result instead of throwing exceptions.

StellarMap
A core library for organizing stars, planets and so forth so that they can be mapped and analyzed similar to other star catalogs. It includes two expansions on the core library. Progression which is my own fictional science fiction setting that uses real stars grouped together as Clusters, Sectors and more with rules for wormhole travel detailed in Rules.md. There is also an experiment to convert Traveller maps to StellarMap with the possibility of replacing Traveller's jump system with Progression's workhole travel. This was my first github project and I will update it from time to time with new features and modern programming styles.

DapperRepository
Enhances Dapper with CRUD capabilites that works with entity classes using custom attributes to generate the sql needed for Get, Insert, Update and Delete. From there it uses the lower level enhancements to provide the framework for implementing Repository Patern around the entities.

FileSystemProcessor
This library greatly expands up .Net's System.IO Directory and File capabilities adding recursion, file and directory filtering and more. With FileSystemProcess can operate on files and folders in an easy and consistant manner.

MailKitHelper
A lite wrapper around MailKit. It mainly adds standard configuration along with common email functionality.

PDFProducer
An experiment to write a library that will help with generating PDFs using templates.

All of my repositories are works in progress and I welcome any and all constructive criticisms to improve them. Please note that I'm not always great at naming conventions so suggestions for better names are appreciated.

dapperrepositoryold's People

Contributors

ergodicmage avatar

Watchers

 avatar

dapperrepositoryold's Issues

EntityMapper functionality

Currently DapperRepository only uses custom attributes and is determined at compile time, there is no way of customizing entities at runtime to match other needs.
Add an EntityMapper class where the entity attributes can be set as part of the implementation and then used in generating the sql for queries. The default action of EntityMapper would be to read the entity through reflection as is currently done, to modify the mapping a derived class can override the default. Could possibly allow modifications to existing mapping and/or allow for multiple mappings to be used.
To implement an EntityMapper significant changes will be needed to the Builder classes as well as the internal caching.

Remove Editable Attribute

The EditableAttribute when set to false [Editable(false)] is the same as the NotMapped attribute and causes some problems with Updates.
Remove EditableAttribute from EntityAttributes.cs and any internal handling of the attribute.

Caching CustomAttributes

Currently custom attributes are retrieved by using reflection which happens when putting together where clauses and doing updates. Caching all custom attributes of properties of the entity should provide an improvement in performance.
This issue needs to be ran through Benchmark.net to determine whether this will actually improve performance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.