Лучшее место для нахождения партнеров по кодированию для проектов с открытым исходным кодом? [закрытый]

Я желаю для разработки определенных проектов, но большую часть времени я испытываю недостаток в мотивации, потому что я разрабатываю один.

То, что я обычно делаю, ищут подобные существующие проекты и спрашивают разработчиков, если им нравится сотрудничать, но это довольно твердо.

Существует ли хорошее место (веб-сайт, возможно) для нахождения людей, которые интересуются тем же проектом как я и поэтому хотели бы сотрудничать?

19
задан 5 revs, 2 users 100% 30 January 2010 в 16:08
поделиться

4 ответа

Вам не нужно использовать Marshal.GetFuncterPointerForDelegate (), маршаллер P/Invoke делает это автоматически. Необходимо объявить делегата на стороне C #, подпись которого совместима с объявлением указателя функции на стороне C++. Например:

using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

class UnManagedInterop {
  private delegate int Callback(string text);
  private Callback mInstance;   // Ensure it doesn't get garbage collected

  public UnManagedInterop() {
    mInstance = new Callback(Handler);
    SetCallback(mInstance);
  }
  public void Test() {
    TestCallback();
  }

  private int Handler(string text) {
    // Do something...
    Console.WriteLine(text);
    return 42;
  }
  [DllImport("cpptemp1.dll")]
  private static extern void SetCallback(Callback fn);
  [DllImport("cpptemp1.dll")]
  private static extern void TestCallback();
}

И соответствующий код C++, используемый для создания неуправляемой DLL:

#include "stdafx.h"

typedef int (__stdcall * Callback)(const char* text);

Callback Handler = 0;

extern "C" __declspec(dllexport)
void __stdcall SetCallback(Callback handler) {
  Handler = handler;
}

extern "C" __declspec(dllexport)
void __stdcall TestCallback() {
  int retval = Handler("hello world");
}

Для начала работы достаточно. Есть миллион деталей, которые могут доставить вам неприятности, вы должны столкнуться с некоторыми из них. Гораздо более продуктивным способом получения такого кода является написание обертки на языке C + +/CLI. Это также позволяет переносить класс C++, что невозможно сделать с P/Invoke. Достойный учебник доступен здесь.

-121--1557843-

DLL, возможно, только ресурсы? Они используются, например, довольно часто в целях локализации.

EDIT: также возможно иметь DLL с кодом, который делает что-то в Dll Main (), чтобы каким-то образом сделать его функциональность доступной. DLL может зарегистрироваться у какого-то глобального диспетчера, например, или создать именованные объекты ядра...

-121--4378794-

Вы сами кодируете?

Выпустите код на одном из литейных заводов с открытым исходным кодом. (code.google.com. sf.net. bitbucket.org, github.com и т.д.)

Выберите простую лицензию (x11/MIT хорошая, GPL2/3/AGPL3 если вам нравится, среди прочих.)

Напишите простые инструкции по развертыванию, запуску с одностраничным учебным пособием.

У вас есть сайт, где вы пишете о том, что вы создаете, и о том, что вы хотели бы построить.

Найдите людей, которым нужна помощь, и помогите им. Не растягивай себя.

Для создания доверия требуется время. Доверие требует времени.

Обновление

Вы написали:

Я обычно ищу похожие существующие проекты и спрашиваю разработчиков, хотят ли они сотрудничать, но это довольно сложно.

Если вы видите проект с открытым исходным кодом, скорее всего, разработчики уже любят сотрудничать. Что они могут не захотеть делать, так это говорить о грандиозных схемах о том, как превратить программное обеспечение в следующего пятьдесят миллиардов долларов бегемота. Как правило, если вы присоединяетесь к списку рассылки, представьтесь («Привет, я Джо, и я люблю делать X, и мне нравится это программное обеспечение»)., получить и использовать программное обеспечение, и предоставить обратную связь и конструктивную критику, и продемонстрировать, что вы выполняете инструкции или, по крайней мере, пытаетесь, а затем, если вы предоставляете патч (или ветвь, если гитуб) она может быть рассмотрена и рассмотрена.

Соблюдайте методологию проекта. Например, если они используют тесты, отправьте тесты с вашим патчем.

12
ответ дан 30 November 2019 в 04:44
поделиться

Я попробовал себя, чтобы начать проект с открытым исходным кодом и не удался. Я опубликовал свою идею на форуме, и было около 10 или 15 человек, которые хотели присоединиться к проекту. На самом деле было очень мало активности ...

Я думаю, что главная причина неудачи состояла в том, что я ничего не развил перед публикой. Было бы действительно полезно иметь хотя бы прототип. Другое дело определяет (простой) процесс разработки.

Если бы я попробую это снова, я бы:

  • Разработать прототип
  • Документ Кодекс и архитектуру подробно
  • Записывать задачи, другие могут сделать
  • Опишите процесс разработки
  • Дизайн Хороший сайт и продвижение моей работы
  • опубликовать код в Google Code или что-то в этом роде
6
ответ дан 30 November 2019 в 04:44
поделиться

Проверьте предложения на GitHub.com. Если вы можете использовать Git, я часто нахожу несколько классных проектов, и вы всегда можете вилить репозиторий, чтобы помочь.

1
ответ дан 30 November 2019 в 04:44
поделиться

Во-первых, вы должны зарегистрировать свой проект на открытом исходном коре. В Википедии есть список сравнения: http://en.wikipedia.org/wiki/comparison_of_open_source_software_hosting_source_software_hosting_facilities

На определенных футах есть способ задать помощь. Я знаю, что SourceForge делает: https://sourceforge.net/people/

Я рекомендую, чтобы вы прочитали отличную и полную книгу Карла Фогеля по теме: создание программного обеспечения с открытым исходным кодом . Он свободно доступен онлайн или в печати с Amazon.

1
ответ дан 30 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: