kxsystems / csharpkdb Goto Github PK
View Code? Open in Web Editor NEWUsing C# with KDB+
Home Page: https://code.kx.com/q
License: Apache License 2.0
Using C# with KDB+
Home Page: https://code.kx.com/q
License: Apache License 2.0
e.g. https://code.kx.com/q/interfaces/csharp-client-for-q/ points to old location
Add explicit methods for Serialize and Deserialize to c.cs
Change will
Add kx.Test unit-test library for testing
Initial check-in add unit-tests for public static methods
Add logic for running code-coverage reports using OpenCover and ReportGenerator
Rename private fields to more meaningful terms
Change will
Add XML comments to public members
Add compiler flags for publishing XML doc as part of build
Add industry standard implemenation of IEquatable and IComparable for helper classes
Cover
Update README.md file
Would be good to have a bit of an intro for a user new to C# of some pointers of what to install/run to build, run tests, generate doc & were you find the results e.g.
Ref: https://github.com/KxSystems/javakdb - start of some docs but needs update with where users find the jar, how to generate javadocs, etc.
May allow someone to get something running in mins, rather than having to wait till they read a c# book or some tutorials on using the build system/etc.
Refactor c.cs code to use standardised .NET format
This will help improve code readability
Run code through .NET Standard 2.0 release build and then decompile
Standard layout of class
Add argument checks for public methods to resolve roslyn:CA1062 warnings highlighted in SonarQube and FxCop scans
Change will
Investigate using BenchmarkDotNet framework to create performance tests for serialization and de-serialization
Tests will
Exclude demo application code from SonarQube scan
Only really want analysis of kx library itself
When serialization throws an exception only general C# exceptions are returned with a stack trace of internal methods within the c.cs file. This means little to the user and leads to time wasted debugging other non issues when in reality their payload could potentially contain invalid data. It is suggested to return a more explicit KException that describes the situation and contains the inner exception.
Add Travis build to repo
Build support
https://ngeor.com/2018/02/17/code-coverage-in-net-core-and-sonarcloud.html
Add FxCop code-analysiser to project build
Long term will identify poor code practices and bugs in legacy c.cs
Expose ability to write directly to the ByteStream to allow IPC savings
Remove unused private fields from c.cs
Change will
This is an industry standard for I/O operations and we should be following it. When an I/O operation is performed the compiler transforms any async I/O method into a form of state machine and can be awaited.ย Once this method is awaited it frees the calling thread up and releases it back to the thread pool for other work while the IO is processing. Once the response comes back a new different thread is spawned to handle that response. This optimizes the number of threads in the pool saves resources.
We should be offering async versions of various calls that reach out to kdb via our TCP client implementation
Add documentation links for Travis-CI build and SonarCloud scan to README.md file
Add unit-tests to coverage basic initialisation and log-in fo c.cs
Allow enabled zip compression for c.cs remote connections
May be useful to have some examples, if this can be compiled as part of the travis job, but avoiding being packaged up with the main lib.
Rather than code being on a doc, it'd make sure the code still builds with any potential changes made to the interface.
Some examples were on https://github.com/KxSystems/javakdb - these also included a bit of a guide to how to run (for someone thats never used kdb before, but might want to see something running). Note: the java docs for examples prob need improved further.
Add script to allow creating Release version of csharpKDB library and publishing to Nuget feed
Resolve minor SonarQube and Roslyn code syntax issues to make code more readable
IDE0041 : simplify null checks
RSPEC-1121 : Extract assignments from operations
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.