Code Monkey home page Code Monkey logo

devexpress.mvvm.free's Introduction

DevExpress.Mvvm.Free

DevExpress MVVM Framework is a set of components that simplify the implementation of the Model-View-ViewModel pattern in WPF.

Documentation

There are two versions of the DevExpress MVVM Framework:

  • The DevExpress.Mvvm version is included in the DevExpress WPF component suite and designed for use with the DevExpress WPF controls.
  • The DevExpress.Mvvm.Free version is designed for use with standard or third-party controls.

The DevExpress.Mvvm.Free version is a mirror of the DevExpress.Mvvm framework, so you can use the documentation for both versions.

Note that the free version of the framework is not compatible with the DevExpress WPF suite.

NuGet

The Free DevExpress MVVM Framework is available from NuGet.

Pull Requests

This repository mirrors the full version of the DevExpress MVVM framework included in DevExpress WPF installation packages. For this reason, we do not accept any pull requests to this repository. If you have an idea on how to improve our MVVM Framework, please contact us at our support center.

Release Notes

23.2.3

22.1.3

21.1.5

  • DevExpress MVVM Framework now includes the IEventArgsTwoWayConverter interface. This interface allows you to define back conversion logic and return values from a command to an event. Refer to the following topic for more information: EventToCommand.

20.2.3

  • T917390 - The IDelegateCommand and IAsyncCommand interfaces have been moved to the DevExpress.Mvvm namespace.

20.1.6

  • T831750 - The PropertyManager class has been removed.
  • T832854 - The IWindowService and ICurrentWindowService interfaces have been changed.
  • T906028 - Make the BindableBase.SetProperty method virtual.

19.2.3

  • DevExpress MVVM Framework now supports .NET Core 3.
  • T817657 - The IDispatcherService interface has been changed.

18.2.3

  • Async Commands Enhancements. Our POCO ViewModels and ViewModelBase descendants can now automatically generate Async Commands for methods marked with the async keyword. You can also reference your async method when invalidating an auto-generated Async Command.
[AsyncCommand(UseCommandManager = false)]
public async Task Calculate() {
    for(int i = 0; i <= 100; i++) {
        Progress = i;
        await Task.Delay(20);
    }
}
void UpdateCalculateCommand() {
    this.RaiseCanExecuteChanged(x => x.Calculate());
}
  • Dynamic Binding Converters - New API. The new DelegateConverterFactory class provides a set of functions to create IValueConverter and IMutliValueConverter instances based on passed delegates.

  • Both the BindableBase and ViewModelBase classes now offer a more simplified syntax for getters and setters:

public string FullName {
    get { return GetValue<string>(); }
    set { SetValue(value, OnFullNameChanged); }
}

string fullName;
public string FullName {
    get { return fullName; }
    set { SetValue(ref fullName, value, OnFullNameChanged); }
}
  • CompositeCommandBehavior - our new CanExecuteCondition property specifies whether the command target should be disabled when the CanExecute method of one of the commands returns true.

18.1.3

  • BC4250 - The DXBinding, DXEvent, and DXCommand extensions use a new expression evaluation engine by default. Expressions are now initialized up to 2 times faster. The new Expression Evaluation Engine includes the following features:
    • Dynamic Typing
    • No casting is required to compare or return values
    • Ability to create objects using the β€˜new’ operator
    • Ability to assign values using the equals (=) operator in DXCommand and DXEvent

16.2.3

  • New Module Injection Framework (MIF). MIF makes it easier to develop, test, maintain, and deploy modular applications built with loosely coupled modules. The frameworks's key features include:
    • Automatic persistence of the application's logical state and layout.
    • Code separation into logical modules coupled with straightforward navigation.
    • Unit Testing.

16.1.4

15.2.5

devexpress.mvvm.free's People

Contributors

alexanderegorov avatar art-denisov avatar friedcucumber avatar goncharovgit avatar phantomtypist avatar sh-kirill 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

devexpress.mvvm.free's Issues

[Question] usage on MVVM.Free

Note that the free version of the framework is not compatible with the DevExpress WPF suite.

Does this mean that I can start development using DevExpress.Mvvm.Free and when I buy DX WPF I just have to remove nuget package or assembly from mvvm.free to the full one?

Designer error in ObjectToObjectConverter

I get the following error in designer but it works on runtime. Have I done something wrong or is there a way to remove this error?

  <mvvm:ObjectToObjectConverter x:Key="StringToString">
            <mvvm:MapItem Source="String" Target="String" />
        </mvvm:ObjectToObjectConverter>
		
		Error	XLS0503	A value of type 'MapItem' cannot be added to a collection or dictionary of type 'ObservableCollection'.

Error on installing package.

Hi,
i'm trying to install the package but i get this error:
......
Added file 'app.config' to project 'SD.DXWPFLibrary'.
Install failed. Rolling back...
Removed package 'DevExpressMvvm 15.1.4' from 'packages.config'
Removed reference 'DevExpress.Mvvm.dll' from project 'SD.DXWPFLibrary'
Removed reference 'DevExpress.Mvvm.UI.dll' from project 'SD.DXWPFLibrary'
Removing package 'DevExpressMvvm 15.1.4' from folder 'C:\Lavori\Stoa\Metalpro\B2K.NET\B2K.NET\packages'
Removed file 'DevExpressMvvm.15.1.4.nupkg' from folder 'C:\Lavori\Stoa\Metalpro\B2K.NET\B2K.NET\packages\DevExpressMvvm.15.1.4.0'.
Removed folder 'C:\Lavori\Stoa\Metalpro\B2K.NET\B2K.NET\packages\DevExpressMvvm.15.1.4.0'.
Removed package 'DevExpressMvvm 15.1.4' from folder 'C:\Lavori\Stoa\Metalpro\B2K.NET\B2K.NET\packages'
System.Runtime.InteropServices.COMException (0x80004005): Cannot add the file 'app.config'. There is already a linked file in this folder with the same name.
at EnvDTE.ProjectItems.AddFromFileCopy(String FilePath)
at NuGet.PackageManagement.VisualStudio.VSMSBuildNuGetProjectSystem.AddFileToContainer(String fullPath, String folderPath, ProjectItems container)
at NuGet.PackageManagement.VisualStudio.VSMSBuildNuGetProjectSystem.d__31.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.VSMSBuildNuGetProjectSystem.<>c__DisplayClass26_0.<b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread()
at NuGet.PackageManagement.VisualStudio.VSMSBuildNuGetProjectSystem.AddFile(String path, Stream stream)
at NuGet.PackageManagement.VisualStudio.BindingRedirectManager.Save(XDocument document)
at NuGet.PackageManagement.VisualStudio.BindingRedirectManager.AddBindingRedirects(IEnumerable`1 bindingRedirects)
at NuGet.PackageManagement.VisualStudio.RuntimeHelpers.d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.RuntimeHelpers.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.RuntimeHelpers.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.RuntimeHelpers.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.RuntimeHelpers.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.RuntimeHelpers.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.RuntimeHelpers.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.RuntimeHelpers.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.VisualStudio.VSMSBuildNuGetProjectSystem.<b__55_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread()
at NuGet.PackageManagement.VisualStudio.VSMSBuildNuGetProjectSystem.AddBindingRedirects()
at NuGet.ProjectManagement.MSBuildNuGetProject.PostProcessAsync(INuGetProjectContext nuGetProjectContext, CancellationToken token)
at NuGet.PackageManagement.NuGetPackageManager.d__42.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at NuGet.PackageManagement.NuGetPackageManager.d__42.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.UI.UIActionEngine.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NuGet.PackageManagement.UI.UIActionEngine.d__3.MoveNext()
========== Finished ==========

.NET Core 3.0+ support

Hello there.

Do you have any plans to support .NET Core WPF projects (accord .NET Core 3.0 release)?
Nowadays this warning I get every time I trying to build .NET Core WPF project:

warning NU1701: Package 'DevExpressMvvm 18.2.3' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.0'. This package may not be fully compatible with your project.

Problem in Messenger

Hi
I write simple code for using Messenger. but it doesn't work:

public partial class MainWindow : Window
{
	public MainWindow()
        {
            InitializeComponent();
            DevExpress.Mvvm.Messenger.Default.Register<string>(this, null, false, method1);
            DevExpress.Mvvm.Messenger.Default.Register<string>(this, null, false, method2);
        }
        void method1(string str)  { MessageBox.Show(str, "method1"); }
        void method2(string str)  { MessageBox.Show(str, "method2"); }
}
public class ViewModel
{
        public DevExpress.Mvvm.DelegateCommand TestCommand { get; set; }
        public ViewModel()
        {
            TestCommand = new DevExpress.Mvvm.DelegateCommand(ExecuteTestCommand);
        }
        private void ExecuteTestCommand()
        {
            DevExpress.Mvvm.Messenger.Default.Send("Test", typeof(string), null);
        }
}

I trace the code. The problem is In the DevExpress.Mvvm/Native/ActionInvoker/ActionInvokerBase.cs , Line 19:

if(messageTargetType == null || messageTargetType.IsAssignableFrom(target.GetType())) {
        Execute(parameter);
}

The type of messageTargetType is "string". but the type of targer is "MainWindow", so Execute Action never run.

How to use IDialogService

I am having a bit of trouble discovering the IDialogService. Is this not implemented in the free MVVM Framework?
If not, is it possible to get an example how to do this?

[Q] WPF MVVM + .NET 5 Microsoft.Extensions.DependencyInjection

Just getting started, I'm used to working with Ninject and Caliburn Micro.

For a new project I'm starting with DX MVVM, WPF and Microsoft DI (Microsoft.Extensions.DependencyInjection) in .NET 5.

I'm just strugling to get started as the way of working seems to be a bit different and the documentation is not always giving me an answer.

In the code below you will see that I want to show TestView when I run the application:

<Application x:Class="Foo.Bar.Wpf.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:Foo.Bar.Wpf"
             Startup="OnStartup">
    <Application.Resources>
         
    </Application.Resources>
</Application>

  public partial class App : Application
  {
    private readonly ServiceProvider _ServiceProvider;

    public App()
    {
      var serviceCollection = new ServiceCollection();
      ConfigureServices(serviceCollection);
      _ServiceProvider = serviceCollection.BuildServiceProvider(); 
    }

    private void ConfigureServices(IServiceCollection services)
    {

      services.AddSingleton<IWindowService, WindowService>();

    }

    private void OnStartup(object sender, StartupEventArgs e)
    {
      // how to get the viewmodel to auto inject constructor parameters?
      var myViewModel = new ViewModels.Foo.TestViewModel(); 
      var ws = _ServiceProvider.GetService<IWindowService>();
      ws.Show("TestView", myViewModel);
    }

  }

  public class TestViewModel : ViewModelBase
  {
    public TestViewModel()
    {
    }
  }

<UserControl ...
             xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
             xmlns:ViewModel="clr-namespace:Foo.Bar.Wpf.ViewModels.Foo"
             DataContext="{dxmvvm:ViewModelSource ViewModel:TestViewModel}">
</UserControl>
  1. Is this the correct way of registering the DX Services to the MS IoC/DI? or should they be defined in App.xaml resources and requested via ServiceContainer.Default.GetService<...>() ? (can you do this like I did via the MS IoC/DI or how should it be done? cf. https://docs.devexpress.com/WPF/17444/mvvm-framework/services/getting-started )
  2. In case my viewmodel has constructor parameters, how do I create/request a VM so that my services (own and DX) are automatically injected?
  3. Should the DX services always be registered in the specific View xaml (or App.xaml) ?

Update free component to the 17.2.*?

Hello,

Can you update the components of the free version to the 17.2.7+ ?

I am using it to send code samples with problems (WPF component) to support teams of other components and it is convenient to just include nuget in the project.

Samples are not using DX components, but I can copy existing VM without any changes and bind to regular buttons and textBoxes/etc.

Unfortunately VS doesn't like 17.1 and 17.2 together :)

/ Best regards
Dmitri

Clone Project

Dear Sir/ Madam
Can I rebuilded this project for my own app (My app using .net 4.5.1, I rebuiled this project to .net 4.5.1 and it run with no problem). Do you allow it? (License etc..).
Please answer me.
Thanhks You!

ReSharper is reporting lots of "Cannot resolve property..." on POCO ViewModels

I am having a lot of fun writing an application using this framework, and the POCO ViewModel approach makes everything a lot easier than normal when using MVVM.

However, I get a lot of "Cannot resolve property 'XXXX' in data context of type 'XXXViewModel'" warnings from ReSharper as it is not able to connect stuff correctly as design time because of the way POCO ViewModels work.

Is there anything that be done about this, or do I have to accept that this is the way it is?

Thank you for a great MVVM Framework.

DispatcherService Bug

DispatcherService.cs
BeginInvoke method accesses Delay dependency property wich belongs to UI thread and that causes System.InvalidOperationException.

As I see, whole BeginInvoke method body should be wrapped in action and passed to BeginInvokeCore, with inner action.Invoke() replacement.

Faced that bug running DispatcherService example.

DialogService

Hi! Atm DialogService is part of dx.core, do you plan to introduce it to mvvm.free?

how to fix this wrong

Details about calling real-time (JIT) debugging instead of this dialog box,

See the end of this message.

************************** Abnormal Text****************************

System.ArgumentException:

Parameter name: args

In DevExpress. Mvvm. UI. Native. JumpAction ManagerClient. Run (String [] args, Action `1 startProcess) location C: Users Bing\ Desktop DevExpress. Mvvm. Free-master DevExpress. Mvm. UI. Application Jumper Launcher\ JumpionsManager. Clics: line number 271.

In DevExpress.Mvvm.UI.Application JumpTask Launcher.Program.Main (String[] args) location C: Users\ Bing Desktop\ DevExpress.Mvvvm.Free-master DevExpress.Mvvvm.UI.Application JumpTask Launcher\ Program.cs: line number 11

**************************** Loaded Assemblies********************

Mscorlib

Assembly version: 4.0.0.0

Win32 Version: 4.7.3221.0 Build by: NET472REL1LAST_C

Basic code: file://C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll


DevExpress. Mvvm. UI. Application JumpTask Launcher

Assembly version: 18.2.0.0

Win32 Version: 18.2.0.0

Basic code: file://C:/Users/Bing/Desktop/DevExpress.Mvvm.Free-master/Bin/Framework 4/DevExpress.Mvvvm.UI.Application JumpTask Launcher.exe


System

Assembly version: 4.0.0.0

Win32 Version: 4.7.3190.0 Build by: NET472REL1LAST_C

Basic code: file://C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0_u b77a5c561934e089/System.dll


System.Windows.Forms

Assembly version: 4.0.0.0

Win32 Version: 4.7.3221.0 Build by: NET472REL1LAST_C

Basic code: file://C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0_u b77a5c561934e089/System.Windows.Forms.dll


System.Drawing

Assembly version: 4.0.0.0

Win32 Version: 4.7.3056.0 Build by: NET472REL1

Basic code: file://C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0_u b03f5f7f11d50a3a/System.Drawing.dll


System.Core

Assembly version: 4.0.0.0

Win32 Version: 4.7.3221.0 Build by: NET472REL1LAST_C

Basic code: file://C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0_u b77a5c561934e089/System.Core.dll


System.Configuration

Assembly version: 4.0.0.0

Win32 Version: 4.7.3056.0 Build by: NET472REL1

Basic code: file://C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0_u b03f5f7f11d50a3a/System.Configuration.dll


System.Xml

Assembly version: 4.0.0.0

Win32 Version: 4.7.3056.0 Build by: NET472REL1

Basic code: file://C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0_u b77a5c561934e089/System.Xml.dll


Mscorlib.resources

Assembly version: 4.0.0.0

Win32 Version: 4.7.3056.0 Build by: NET472REL1

Basic code: file://C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/mscorlib.resources.dll


System. Windows. Forms. Resources

Assembly version: 4.0.0.0

Win32 Version: 4.7.3056.0 Build by: NET472REL1

Basic code: file://C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0.0_zh-Hans_b77a5c561934e089/System.Windows.Forms.dll.


************************ JIT Debugging**************************************

To enable real-time (JIT) debugging,

The system. windows. forms section of the application or computer's. config file (machine. config) must be set

JitDebugging value.

The application must also be enabled when compiling

Debugging.

For example:

<system.windows.forms jitDebugging="true"/>

Any unhandled exception after JIT debugging is enabled

Will be sent to the JIT debugger registered on this computer.

Instead of being handled by this dialog box.

ObjectToObject DynamicResource

Hi,

I've tried following the example on DevExpress.com except that I use a dynamicresource as brush instead of a fixed color but it fails. Any workaround?

<dxmvvm:MapItem Source="True" Target="{DynamicResource TestBrushInResourceDictionary}" />

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.