Code Monkey home page Code Monkey logo

sharp-architecture's Introduction

S#arp Architecture

Stable Develop
Build Build status Build status
NuGet NuGet NuGet
Coverage Coverage Status Coverage Status

Samples

To learn how to get a S#arp Architecture solution up and running, please check the samples https://github.com/sharparchitecture/Sharp-Architecture/tree/develop/Samples. Note: Samples for version 5 are not ready yet.

Downloads

Downloads can always be found here: https://github.com/sharparchitecture/Sharp-Architecture/downloads

Building S#arp Architecture

Perform the following command in GitBash:

$ git clone [email protected]:sharparchitecture/Sharp-Architecture.git
$ git checkout develop
$ powershell -file build.ps1 -Target=RunUnitTests

Now you should have the latest development branch of S#arp Architecture.

Documentation and Assemblies

How's this release organized?

  • /Artefacts/: Contains various artefacts for the project.

  • /Common/: Contains files shared among the projects.

  • /NugetTemplates/: Contains templates used for generating S#arp Architecture nuget packages.

  • /Packages/: Contains the NuGet packages that S#arp Architecture depends on.

  • /LICENSE: I'll let you guess what this is.

  • /Src/: This contains all of the source code in their various projects.

  • /VersionHistory.txt: Details version numbers of dependencies, changes since previous releases, upgrade details, and a roadmap of what's coming.

sharp-architecture's People

Contributors

alecwhittington avatar andreialecu avatar cd21h avatar chrisrichards avatar conejo avatar djsmith avatar geoffreysmith avatar howardvanrooijen avatar inventti avatar jamesbroome avatar joelpurra avatar jongeorge1 avatar kabudahab avatar kbaley avatar manishma avatar michaelaird avatar rgomez90 avatar rodpl avatar sandord avatar scpeterson avatar seif avatar tcabanski avatar zekelu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sharp-architecture's Issues

Remove SaveAndEvict from ILinqRepository

SaveAndEvict is specific to NHibernate and should be removed from ILinqRepository and moved into INHibernateRepository, so that other providers can implement ILinqRepository.

Add support for ASP.NET Web API

For example, ASP.NET Web API controllers implement System.Web.Http.IHttpController. SharpArch currently only supports controllers that implement System.Web.Mvc.IController.

Code generation

Hi. Just coming back to Sharp Arch after a couple of years away, to see how things have developed. Downloaded the latest Templify template and deployed. There is no code generation (CRUD scaffolding) project in the deployed code. Am I missing something, or is there a different starting place now?

Log4Net configuration missing

The Log4Net configuration section is missing from the Web.Config. This is causing no logging to occur. Need to check the Templify template to make sure it is working. If it is not, then correct.

BaseObjectEqualityComparer<T> useless?

For most types EqualityComparer<T>.Default returns an instance of ObjectEqualityComparer.
The implementation of ObjectEqualityComparer<T> is almost identical to BaseObjectEqualityComparer<T>.
The only difference I see at a glance is that BaseObjectEqualityComparer<T>.GetHashCode() throws on null, and that looks like a bug to me.

The big difference is that EqualityComparer<T>.Default returns a different implementation if T implements IEquatable<T>. But that shouldn't be relevant either since IEquatable<T> is usually used on value types to avoid boxing and otherwise equivalent to the normal equals.

If you implement IEquatable(Of T), you should also override the base class implementations of Object.Equals(Object) and GetHashCode so that their behavior is consistent with that of the IEquatable(Of T).Equals method.

So for well behaved types I see no difference in behavior between EqualityComparer<T>.Default and your BaseObjectEqualityComparer<T>. So why the need for your own comparer type?


As already stated above BaseObjectEqualityComparer<T>.GetHashCode() throws on null. You should special case that and return a constant instead.


In addition the documentation comment for this class is misleading:

/// NOTE:  Microsoft decided that set operators such as Intersect, Union and Distinct should 
/// not use the IEqualityComparer's Equals() method when comparing objects, but should instead 
/// use IEqualityComparer's GetHashCode() method.

The set operators(and dictionary/hashset too) don't just use GetHashCode() they use both Equals() and GetHashCode(). GetHashCode is used to create buckets, which is necessary to to avoid O(n^2) comparisons.

New Sample Applications

Add new Samples that are all based on an Account Management system.

Basic Requirements

  • Stores a list of Contacts
  • Add Contact
  • Edit Contact
  • Delete Contact
  • Send Contact Communication
  • Contact consists of
    • First Name
    • Last Name
    • Display Name
    • Address
      • Street
      • City
      • State
      • Postal Code
      • Country
    • Email Address
    • Home Phone
    • Mobile Phone
    • Fax Number
    • Time Zone
    • Date Last Contacted
    • Preferred Contact Method

Simple Account Manager

Will be the simplest sample. Expect to see repository calls in the controller and round trips from the client to the server for updates. No Ajax at all.

  • Direct Repository Calls
  • No Commands
  • No ViewModels
  • Entity Model binding via SharpModelBinder

A Better Account Manager

Will be the standard sample. Expect to see Form and View Models, use of Tasks.

  • No direct calls to Repos
  • All Data is gotten via tasks
  • No Commands
  • No Queries
  • Use Form Models to come from Client to Server
  • Use View Models to go from Server to Client
  • No use of SharpModelBinder

A CQRS Account Manager

Show the use of commands and queries to perform the tasks. No Ajax, not yet.

  • IViewModelQueries will be used for read operations
  • Controllers now will issue Commands for write operations
  • No direct calls to repos in Controllers
  • No use of Tasks
  • No use of SharpModelBinder
  • Use Form Models to come from Client to Server
  • Use View Models to go from Server to Client

A client-side Account Manager

Use AngularJs to show how one could implement a client-side based Account Manager that will use the Web Api as a backend.

  • Backend only delivers JSON to front end via the Web Api
  • IViewModelQueries will be used for read operations
  • Controllers now will issue Commands for write operations
  • No direct calls to repos in Controllers
  • No use of Tasks
  • No use of SharpModelBinder
  • Use Form Models to come from Client to Server
  • Use JSON message to go from Server to Client

Tutorial links are dead.

Sorry if this isn't the right place to post this issue, but all the tutorial pages just redirect to the main (new) github page.

For instance,
http://wiki.sharparchitecture.net/TutorialIndex.ashx

reroutes to:
https://github.com/sharparchitecture/sharp-architecture/wiki

AFAIK, there's no way to get to a tutorial without looking at Google's cached copies (which have all sorts of weird formatting errors and are a pain to find).

Were the tutorials hidden/removed on purpose (are they outdated?)

Just trying to get up to speed here and don't see a way of doing this easily without them!

Thanks,
John

Reinstate DbContext get accessor to IRepositoryWithTypedId

In the update to 2.0 RC the DbContext get accessor has been removed from the IRepositoryWithTypedId interface, please reinstate it as below:

    /// <summary>
    /// Provides a handle to application wide DB activities such as committing any pending changes,
    /// beginning a transaction, rolling back a transaction, etc.
    /// </summary>
    IDbContext DbContext { get; }

[NHibernate] Update Setup

Get rid of NHibernateInitializer in favor of a Windsor Facility. This will eliminate Session Storage amongst other things, making initialization simpler.

IViewModelQuery

Add IViewModelQuery to SharpArch.Web.Mvc. It should have one method, Query.

[Windsor] Use Installers

Make use of Windsor Installers within the new samples. Let the different parts of the application register themselves.

HasUniqueDomainSignatureAttribute does not use attribute error message

SharpArch.NHibernate.NHibernateValidatorHasUniqueDomainSignatureAttribute (and HasUniqueDomainSignatureWithGuidIdAttribute) inherits from ValidationAttribute but they don't use the ErrorMessage parameter to generate the error message.

Fix suggestion:
Line 31

  • Remove:
    return "Provided values matched an existing, duplicate entity";
  • Add:
    if (ErrorMessage == null && ErrorMessageResourceName == null && ErrorMessageResourceType == null)
    return "Provided values matched an existing, duplicate entity";
    return ErrorMessageString;

Thank you S# team for this amazing architecture! :-)

Consider adding IRepository.Delete(int id)

Currently, repositories only support deleting entities by reference. Whenever I have only the ID of the entity to delete, this forces me to either:

  • retrieve the instance using the same repository using the known ID (quite inefficient); or
  • load a proxy for the entity from the session, using the known ID (introduces a direct dependency on NHibernate)

So I propose implementing IRepository.Delete(int id), having it do a Delete(Session.Load(id)).

Anyone in favor of this? I'm happy to issue a pull request but if there are any thoughts, I'd like to hear them first.

LinqRepository cannot be cast to ILinqRepository

Actually, to make sure I have everything setup correctly in my project for the 2.0.1 version, I created a new project. Point to a database with one table and one (string) field. I then did a query in the HomeController using LinqRepo so I have this:

public HomeController(ILinqRepository mealRepo)
{
this.mealRepo = mealRepo;
}

public ActionResult Index()
{
var meals = mealRepo.FindAll();
return View();
}

In the ComponentRegistrar I registered the LinqRepo inside AddGenericRepositoriesTo method and so I have this:

container.Register(
Component.For(typeof(ILinqRepository<>))
.ImplementedBy(typeof(LinqRepository<>))
.Named("linqRepository"));

That used to work in 2.0RC. So I thought maybe I should also register ILinqRepositoryWithTypedId to follow what was done for "INHibernateRepository" and so I have this in the code:

container.Register(
Component.For(typeof(ILinqRepository<>))
.ImplementedBy(typeof(LinqRepository<>))
.Named("linqRepository"));

        container.Register(
            Component.For(typeof(ILinqRepositoryWithTypedId<,>))
                .ImplementedBy(typeof(LinqRepositoryWithTypedId<,>))
                .Named("linqRepositoryWithTypedId"));

But I still got the same error:
Object of type 'SharpArch.NHibernate.LinqRepository1[SA_Test.Domain.Person]' cannot be converted to type 'SharpArch.Domain.PersistenceSupport.ILinqRepository1[SA_Test.Domain.Person]'.

MyProject.Tests project references both SharpArch.Testing and SharpArch.Tests

Among other possible issues, this issue will cause the following code to fail because Testing and Tests both have RepositoryTestsHelper defined. Removing the reference SharpArch.Tests fixed this, although I don't know if anything else broke because of removing that reference.

 [SetUp] 
    public virtual void SetUp() 
    { 
        string[] mappingAssemblies = RepositoryTestsHelper.GetMappingAssemblies(); 
        configuration = NHibernateSession.Init(new SimpleSessionStorage(), mappingAssemblies, 
                               new AutoPersistenceModelGenerator().Generate(), 
                               "../../../MyProject.Web.Mvc/NHibernate.config"); 
    } 

DomainSignature being called on child objects

I just upgraded our project to S#arp 2.0.0.3. I am seeing an issue
with how the Entity Duplicate Checker is called. In pre-2.0 this was
called via NHibernate validation. But it appears that it is now
invoked via the DataAnnotations validation framework. This is causing
the duplicate check code to be called unnecessarily.
Consider the following contrived scenario:
public class Song
{
public string SongTitle { get; set; }
public Band Performer { get; set; }
}

[HasUniqueDomainSignature]
public class Band
{
[DomainSignature]
public string BandName { get; set; }
public DateTime DateFormed { get; set; }
}

When I attempt to create or edit a Song object, the
EntityDuplicateChecker is called for the Band object even though I am
not making any changes to the Band object. Iโ€™m only referencing it
from the Song class. Furthermore, if the Performer field in Song is
null, the IsValid method blows up in
HasUniqueDomainSignatureWithGuidIdAttribute.

Rearrange Test projects

I'm using mapping integration tests and found that RepositoryTestsHelper is located in Sharp.Tests and SharpArch.Testing.NUnit referencing it.
I think it would be better to move in into SharpArch.Testing.NUnit.

P.S. The same thing for EntityIdSetter helper.

Problem CRUD using SharpArc +Nhibernate in ORACLE

I have problem, since i migrate database to ORACLE from SQL SERVER
an error has been occured : null id in entry (don't flush the Session after an exception occurs).
Can everyone give me solution????

Thanks

SharpModelBinder does not bind child entities

There seems to be a problem in EntityValueBinder where when the view has

@Html.HiddenFor(m => m.Entity.ChildEntity.Id)

It does not bind the ChildEntity properly, but requires a change to

https://github.com/sharparchitecture/Sharp-Architecture/blob/master/Solutions/SharpArch.Web.Mvc/ModelBinder/EntityValueBinder.cs#L23

to become

var valueProviderResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName + ".Id");

Originally noticed problem when reported problem for SharpLite in this commit:
https://github.com/seif/DevelopmentStack/commit/520a2e0eaa783a85fa4c77de4ea25ede5b49a7af

SharpModelBinder feature request

I am using the same View for my create and edit actions. This gives me
a tiny issue in that the entity is set to null on create action. And
this is because I put a hidden field for ID on the form. So I have
something like:

@Html.HiddenFor(m=>m.Id)

I understand that that won't work for a create since the
SharpModelBinder queries for the entity. And in our case there's no
record with an ID of zero in the database. So I was thinking if it's
good to have a checking that if the ID is zero (for int) or empty for
(GUID) SharpModelBinder will just return a new entity. In this manner
we can reuse a single view for both create and edit and doesn't have
to write a logic not to write the ID as a hidden field.

I am not sure how much value this puts in S#arp especially that some
people starts an ID with a zero. And also if the requested change
breaks a best practice implemented in S#arp.

Additionally, if my approach on the UI doesn't make sense, please let
me know if there is a better way of doing it.

Move castle specific classes out SharpArch.Web.Mvc

In order to allow easier integration with other IoC containers, the classes in the SharpArch.Web.Mvc.Castle namespace should be split out into their own assembly (SharpArch.Web.Mvc.Castle :) and remove reference to castle from SharpArch.Web.Mvc.

The NuGet package is already called SharpArch.Web.Mvc.Castle, and would need to be changed to have a dependency on the new SharpArch.Web.Mvc NuGet package, that way users will not really notice the difference (new reference would be added by nuget).

This is a breaking change for users who have not used the templify package and not used nuget to add dependencies. Not sure if this should wait till 3.0 or get done with 2.1.

Incorrect hashcode caching in Entity

Entity caches the hash code on the first call to GetHashCode(). This is a bug because the properties from which the hashcode is calculated can change thus rendering the cached hashcode invalid and violation the combined contract of Equals and GetHashCode.

Command test fails on localization string

The test Tests.SharpArch.Domain.Commands.CanGetValidationResultsForInvalidCommand is english platform dependant. I modified it for spanish return messages.

enumerator.MoveNext();
//Localization issue
//Assert.AreEqual("The Invalid field is required.", enumerator.Current.ErrorMessage);
Assert.AreEqual("El campo Invalid es obligatorio.", enumerator.Current.ErrorMessage);

enumerator.MoveNext();
//Localization issue
//Assert.AreEqual("The field InvalidInt must be between 100 and 199.", enumerator.Current.ErrorMessage);
Assert.AreEqual("El campo InvalidInt debe estar entre 100 y 199.", enumerator.Current.ErrorMessage);

RavenDb issues

By the looks of it, it seems that the RavenDb library was never used because there are various problems with it:

  1. RavenDbRepositoryWithTypeId<T, TIdT> incorrectly defines the T type as being constrained to Entity instead of EntityWithTypedId making it impossible to use.

  2. BaseObject has the [JsonObject(MemberSerialization.OptIn)] attribute applied, meaning that entities are not being serialized properly by default and they would all need various other attributes applied on them. see http://groups.google.com/group/sharp-architecture/browse_thread/thread/1013519ac90e4ad1

  3. RavenDb uses string based keys by default. Things like "users/1234". This means we'd have to use EntityWithTypedId on all entities and RavenDbRepositoryWithTypeId<User, string> on all repositories, which is too verbose.

I suggest that RavenDbRepository is changed to use string keys by default instead of int keys. And a new class called RavenEntity be added:

public class RavenEntity : EntityWithTypedId<string>
{
}
  1. RavenDbRepositoryWithTypeId should be RavenDbRepositoryWithType_d_Id for consistency purposes.

  2. The NHibernateRepository implementation provides protected access to the underlaying ISession. RavenDbRepository has the IDocumentSession as private. It should be changed to protected and exposed as a property.

I'll attach a pull request with all of the changes. Comments are welcome.

1.9.6 Templify package - MVC 3 reference

It would appear that the 1.9.6 Templify package is dependent on MVC 3 being installed on the machine. Need to analyze the references and make sure there is no hard dependency on MVC 3 being installed.

Issues while implementating Sharp architecture

HI all,

I have used the new Tempify and created a project using Sharp Architecture Template. Following are the list of items that are causing issues and not working properly.

  1. HandleError is not working at all, if there is any issues it is not redirecting to Error view. and also if I go directly to Error View it is coming with a resource cannot be found. Do i have to configure some thing to make it work...
  2. Log4Net is also not logging any error. can some one please provide a sample which has this working if possible or guide me how to fix it. I have tried this http://wiki.sharparchitecture.net/Default.aspx?Page=ContribLogging&AspxAutoDetectCookieSupport=1. but it does not help at all.
  3. I have post a Issue in stackoverflow http://stackoverflow.com/questions/5863759/sharp-architecture-validation-in-employee-crud-screen-when-using-department-refer. can some one help me with this.

I have uploaded the complete project along with the DB Back up in the DB folder. following is the link

http://www.box.net/shared/r64cdc1us3

please let me know if need any thing else.

Thanks & regards
BK

Remove DBContext property from IRepository

All it does is Commit/Rollback transactions, and not all providers support transactions, this should be removed in favour of people injecting IDBContext when they want to manually manage transaction

SharpModelBinder does not bind entity types

I noticed that SharpModelBinder does not bind entity types in SA v2.0.0.2.
Here is an example to re-produce this. When I run this code under SA 1.9, p.Model gets binded, however the same code under SA 2.0.0.2 does not bind a value to p.Model.

Models:
public class Product : Entity { [Required(ErrorMessage = "Gotta have a name dude")] public virtual string Name { get; set; } public virtual ProductModel Model { get; set; } }
public class ProductModel : Entity { public virtual string Name { get; set; } public virtual DateTime ModifiedDate { get; set; } }

View:
<form action="/Home/Index" method="post"> <input name="Name" value="foo" /> <input name="Model" value="1" /> <input type="submit" /> </form>

Controller:
public class HomeController : Controller { public ActionResult Index() { return View(); } [HttpPost] public ActionResult Index(Product p) { //p.Model should not be null return View(); } }

_Layout.cshtml needs to be built as Content

Pushing to AppHarbor gives an error that "~/Views/Shared/_Layout.cshtml" cannot be found.

To fix, select the _Layout.cshtml file in Visual Studio, then go to Properties > Build Action > Content.

Transaction Attribute doesn't work with multiple databases on 2.0

I am using the Multi-Tenant solution provided by Chris Richards and
found that none of my updates were being committed when testing out my
upgrade to 2.0 RC. I realized that no transactions were being created
because of the following line of code:

   private string GetEffectiveFactoryKey()
   {
       return String.IsNullOrEmpty(this.factoryKey) ?
           NHibernateSession.DefaultFactoryKey : this.factoryKey;
   }

which was previously (in 1.9.6) using the session key helper to find
the current session rather than having to pass it in via the
attribute...

   private string GetEffectiveFactoryKey()
   {
       return String.IsNullOrEmpty(factoryKey)
               ? SessionFactoryKeyHelper.GetKey()
               : factoryKey;
   }

Road map Discussion

This is just to discuss the 3.0 Road map in a transparent way. Please feel free to comment.

With 3.0, we are planning on a few breaking changes as well as a few proposed changes that would break 2.X and earlier versions. We will try to provide a clear update path, but cannot guarantee anything.

Confirmed

  • Upgrade to MVC 4
  • Remove ServiceLocator in favor of MVC Dependency resolver
  • Make use of WebActivators
  • Upgrade all external dependencies
  • Update NH initialization to use fluent config
  • Get rid of NH requirements for Session Storage
  • Make use of Windsor for Session management
  • Make use of Windsor Installers
  • Look into using Windsor Facility for WCF integration
    • Do we still need to provide anything for WCF if we change the way we are accessing NH?
  • Try to remove the dependency on Windsor in SharpArch.Web.Mvc
  • Upgrade default template to use Bootstrap
  • Add a "Boilerplate" template
  • Remove NHQuery from the base
  • Add IViewModelQuery to SharpArch.Web.Mvc
  • Add EF support
  • Add MongoDb support
  • Use AngularJS in a a client side sample application
  • Update solution to VS 2012 w/ backwards compatibility to VS 2010

Proposed

  • Remove IRepository and all of it's implementations
  • Add abstraction for a ServiceBus
    • Not sure what SB we would use
    • Abstraction would work in conjunction with Commands. The existing ICommands would be for synchronous and a new IAsyncCommand would be used for Async operations.
  • Re-evaluate events and see if we need to enhance them to support an event store.
  • Incorporate S# Contrib into main project

Test project not working

Having several problems with a very simple test on a very simple query using a newly deployed test project from the 2.0.3 templify solution.

Firstly it complained about missing dialects, I believe this was due to it not copying the hibernate config file on build, so i done this manually.

It then starting giving me this error:

----> NHibernate.HibernateException : Could not create the driver from NHibernate.Driver.SQLite20Driver.
----> System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
----> System.BadImageFormatException : Could not load file or assembly 'System.Data.SQLite' or one of its dependencies. An attempt was made to load a program with an incorrect format.

Done some more playing around and got past this one, which now leads me to this error:

----> NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException : Unable to load type 'NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle' during configuration of proxy factory class.
Possible causes are:

  • The NHibernate.Bytecode provider assembly was not deployed.
  • The typeName used to initialize the 'proxyfactory.factory_class' property of the session-factory section is not well formed.

Solution:
Confirm that your deployment folder contains one of the following assemblies:
NHibernate.ByteCode.LinFu.dll
NHibernate.ByteCode.Castle.dll
----> System.IO.FileNotFoundException : Could not load file or assembly 'NHibernate.ByteCode.Castle' or one of its dependencies. The system cannot find the file specified.
TearDown : System.IO.FileNotFoundException : Could not load file or assembly 'NHibernate.Validator, Version=1.3.1.4000, Culture=neutral, PublicKeyToken=70154e18752585bd' or one of its dependencies. The system cannot find the file specified.

Here is a test project:
https://www.sugarsync.com/pf/D211145_7650812_6542193

Paul

Missing crudscaffolding

Hi,
I looked at s# 2 years ago. It had T4 templates to generate CRUD scaffolding for NHibernate , test doubles etc. Where has all that gone? IS it still in the product? Has it been removed to another project?

Daniel C. Doran

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.