Giter VIP home page Giter VIP logo

apobekiaris / xaf.sources Goto Github PK

View Code? Open in Web Editor NEW
1.0 5.0 3.0 2.03 MB

XAF extensions distributed as source only Nuget packages

Home Page: http://www.expandframework.com/rss

License: GNU General Public License v3.0

C# 27.09% HTML 3.98% ASP 6.90% PowerShell 61.73% Batchfile 0.30%
devexpress xaf business-solutions business-intelligence devexpress-libraries workflow workflow-scheduler dashboard master-detail validation

xaf.sources's Introduction

Build status GitHub stars GitHub issues GitHub forks

Help needed.

Installing a Win package creates duplicate code

Dependency compilation errors

Introduction

We started this project, because we want provide compact and low dependency components for the XAF framework.

Usually creating packages for the the DevExpress .Net components comes with a necessity to update the packages every time DevExpress publishes a new release, at least a major one. Because of the, we decided to provide our components not a .dlls, but as source code Nuget packages. A source code Nuget package simply installs source code into Your project underneath the App_Packages folder. On a package update, old source files will be deleted and new installed.

This way of packaging allows us not to deal with different DevExpress versions, since breaking changes are quite rare in the DevExpress libraries. Also source code packages can be installed by users, how using self-compiled DevExpress libraries.

This approach make also contribution much easier. Potential contributors don't have to compile the packages locally, they can simply change the source code in their projects and then copy it to their forks and provide us pull requests.

How this works

Nuget source code packages are installed as every other nuget package:

Install-Package PocketXaf.ObjectScripting.SourcePackage

The package is installed in the App_Packages folder:

screenshot installed package

Project structure

Under the src folder we have 2 subfolders: Libraries and TestApplication. The Libraries folder contains the source code for the packages. The Testapplication folder contains a XAF application for testing purposes.

Libraries folder

The libraries folder contains 2 subfolders: PlatformAgnostic and Win. PlatformAgnostic contains platform independent code. And Win folder contains WinForma specific code. We don't have any web components yet. Each of these folders contains a "SourcePackages" folder. This is where the source code for the packages is located. Each packages has it own folder, which contains the source code and the .nuspec file.

How to create a package

  1. Create a new folder inside the SourcePackages folder.

  2. Copy .nuspec file from another package e.g ObjectScripting.

  3. Change the package Id:

<package>
  <metadata>
    <id>PocketXaf.MyNewPackage.SourcePackage</id>
  1. Change the destination folder:
  <files>
    <file src="*.cs" target="content\App_Packages\PocketXaf.MyNewPackage.SourcePackage.$version$" />
  1. Add your source files to the project inside this folder:

package folder
Now the build script will automatically build Your package.

Building packages

To build packages type following command in the src folder:

msbuild build.proj /t:NuGet

xaf.sources's People

Contributors

apobekiaris avatar derjabkin avatar expand avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

xaf.sources's Issues

Dependency compilation errors

I am facing problems with missing from nuget dependencies like DevExpress assemblies. In addition packages depend to the c# language version used and subsequently to VS version.

Looking for ideas....

Installing a Win package creates duplicate code

for example to install DevExprress.XAF.System.Reactive' in you agnostic module-> a XAF.Packagesfolder will be created containing the source code of the packages. Now installDevExprress.XAF.System.Reactive.Wininto your win module. Two foldersXAF.Packages,XAF.Packages.Win` are now created first one is a duplicate of the agnostic version.

Looking for ideas....

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.