This article lists some of the tech used in the JJ projects.
| Visual Studio | Programming environment used for the development of the software. | 
|---|---|
| VS Code | Used for MarkDownediting. | 
| .NET | Framework from Microsoft that forms the foundation of the software. | 
| Mono | Version of .NETthat worked for other platforms thanWindows. Later versions of.NETitself work on more platforms out-of-the-box. | 
| Unity Game Engine | The first tech at that time, that would cooperate for deploying the code on multiple mobile platforms. It used the Monocompiler. | 
| C# | Primary programming language. | 
| Visual Basic | Some projects might still use this programming language. | 
| ReSharper | Tool for code formatting, refactoring and code smells and such. | 
| Git | Source control, revision history, version management of the code. | 
| GitHub | Where the source code is hosted and shared. | 
| Git for Windows | Windowsversion ofGit. | 
| Git Extensions | User interface for Gitwith many options. | 
| TortoiseGit | Gituser interface that shows state inFile Explorer. | 
| Azure DevOps | Build pipeline, Pre-Release-Package-Feed, original planning boards, may host a  repository not migrated to GitHub. | 
| GitHub Issues | Gradually used more for planning. | 
| MarkDown | Lightweight alternative for HTML. Used for documentation. Compatible with various web tech. | 
| JJ.Framework | In-house programmed extensions to the .NET Framework.GitHub / NuGet / JJs-Pre-Release-Package-Feed | 
| JJ.Framework.Conversion | Makes it easier to convert simple types. | 
| JJ.Framework.Reflection | Helps and speeds up accessing code structure elements through reflection and lambda expressions. | 
| JJ.Framework.Canonical | Types to share data between JJprojects. Small scaleCanonicalmodel for generic handling ofSuccessfulflags,Validation Messagesand combinations ofIDsandNames. | 
| SQL Server | Primary data store technology for relational databases. | 
|---|---|
| ORM | Hides most SQL, exposing an object graph, to focus on the logic, instead of on the data storage. | 
| SQL | For performance reasons SQLis hand-programmed incidentally, combined withORM. | 
| NHibernate | A type of ORM. Chosen in severalJJproject because an employer also so happened to use it. | 
| QueryOver | A strongly-typed query language like LINQ, but then theNHibernateversion. | 
| FluentNHibernate | A way to define ORMmappings with fluent notation. | 
| Entity Framework | A type of ORM. Chosen less in theJJprojects, because of more experience withNHibernate. Worth considering though. | 
| LINQ | A query language usable in C#. Can query several types of data store, but commonly used for in-memory collections. | 
| JJ.Framework.Collections | LINQextensions from theJJ.Framework. | 
| JJ.Framework.Data | Helps hide data access behind abstractions. It does not expose whether it is SQL Server,SQL,ORM,NHibernateorEntity Framework. It would just offer abstracted convenient methods instead. For more information see documentation. | 
| JJ.Framework.Data.EntityFramework | Entity Frameworkextension to work withinterfacesfromJJ.Framework.Data. | 
| JJ.Framework.Data.Memory | Extension to the interfacesspecified inJJ.Framework.Datathat allow working with in-memory data for instance to mock a data store. | 
| JJ.Framework.Data.NHibernate | NHibernateextension to work withinterfacesfromJJ.Framework.Data. | 
| JJ.Framework.Data.SqlClient | Also know as SqlExecutor. Work more easily withSqlClientwith less code. | 
| JJ.Framework.Data.Xml | An extension to JJ.Framework.Datafor storing inXMLfiles.System.Xmlis used internally. | 
| JJ.Framework.Data.Xml.Linq | Additional feature for JJ.Framework.Datathat stores data inXMLfiles.System.Xml.Linqis used internally. | 
| JJ.Framework.Business | Types for supporting a business layer and/or API. Bidirectional relationship synchronization.Resulttypes to pass data, succes flags and (validation) messages.ISideEffect: Used for some polymorphism between small pieces of business logic that go off as a result of data modification. | 
|---|---|
| JJ.Framework.Validation | A nice fluent notation for validations. | 
| JJ.Framework.Mathematics | Helpers for math things. | 
| PagerViewModelFactory | Constructs a PagerViewModelwith properties likeCanGoToFirstPage,CanGoToPreviousPage,CanGoToNextPage,CanGoToLastPage. | 
|---|
| IIS | Or Internet Information Services.For hosting web sites. 
      SomeVisual Studioprojects like to use it upon load. | 
|---|---|
| MVC | Or Microsoft ASP.NET MVC Framework.Web development tech. Code runs mostly server side. | 
| Razor | A view renderer for web. Terse syntax, combining C#andHTMLalmost seamlessly. | 
| JavaScript | Used to support UI details in web. In this architecture most (UI) logic would be handled in C#instead. | 
| TypeScript | Might be preferred over JavaScriptin the future. | 
| AJAX | For retrieving / posting back parts of pages to the server and back. | 
| jQuery | Used to support UI details in web. Can make some JavaScriptshorter. | 
| JJ.Framework.JavaScript | Used to support UI details in web.
      Remembering scroll position, cookie functions, URL parsing.
      Might be extended with one-line AJAXfunctions one day. | 
| JJ.Framework.Mvc | Extensions to MVCfor web development. | 
| Html.BeginCollection | Part of JJ.Framework.Mvc. Makes it possible to send tree structures overHTTPto the server-sideMVC. | 
| Html.BeginCollectionItem | Alternative for JJ.Framework'sHtml.BeginCollection.
      Allows sending a collection overHTTPto server-sideMVC, but not trees. | 
| WinForms | Used in some projects: in small utilities and JJ.Synthesizeruses it as the top-most layer. | 
|---|---|
| SimpleProcessForm | Part of JJ.Framework.WinForms. A base user interface for a utility that runs a process. | 
| JJ.Framework.VectorGraphics | A custom-programmed vector graphics model. Can be used for component-based user interfaces. | 
| MSTest | For automated / unit testing. Seems a deprecated framework. Might upgrade, but it ain't on the top of the list. | 
|---|---|
| JJ.Framework.Testing | Extends the Assert class, but automatically includes the tested expression in the error messages. | 
| DebuggerDisplays | A technique to quickly display helpful info in the watch screen of a programming environment. | 
| JJ.Framework.Exceptions | Contains Exception classesfor basic errors.
      Clear concise error messages,
      that include tested expressions and tested values. | 
| Accessor | For accessing the internals of typesfor instance for testing purposes. | 
| JJ.Framework.Text | Basic helpers for working with text. | 
|---|---|
| JJ.Framework.IO | Contains various file functions, functions for working with streams and working with CSV's. | 
| JJ.Framework.HtmlToXml | HtmlToXmlConverter classthat steals fromSgmlReader. It does what its name implies. | 
| JJ.Framework.Xml | A convenient way to map XMLto (C#) classes.Access XMLnodes more safely, with null and uniqueness checks. | 
| JJ.Framework.Xml.Linq | " | 
| Embedded Resources | Embedded resources allow compiling files and content right inside a DLLorEXE. | 
| EmbeddedResourceReader | Makes it a little easier to get embedded resource Streams,bytesandstrings. | 
| Resource Strings | For localization, resxfiles can be used inVisual Studio. | 
|---|---|
| JJ.Framework.ResourceStrings | Reusable button texts and such in multiple languages. For now supports Dutch, US English and some broken Polish. | 
| Localization | More ideas about localization. | 
| JJ.Framework.Configuration | For working with complex configuration files. Easier than System.Configuration. | 
|---|---|
| Configuration | More info about configuration. | 
| JJ.Framework.Security | A generic interfacing for authenticating a user and yet to be tested hashed salted password authentication. | 
|---|---|
| Security | If more might be needed security-wise, it may be hidden behind generic interfaces, abstracting the security system. | 
| JJ.Framework.Logging | For now contains not much more than the ExceptionHelperclass, which for instance convertsExceptioninformation to astring. | 
|---|---|
| Logging | More info how JJ.Framework.Loggingmight be extended to contain more code for logging. |