困惑很久的一个问题,大家帮忙解惑

jameshooo 2010-03-21 03:51:33
加精
本人设计了一套 DIRECTUI 框架,已经有雏形了,设计方案这里不想细说,有兴趣的去我网站(http://www.huyuhan.com/)看,当然花不了大家太多时间,只看简介和特性介绍就够了,详细内容暂时不需要看。简介都不想看的人,就此离开此帖,别看下面的内容了。

看了简介毫无感觉的人,或者认为这套设计框架没价值没前途的人,现在也可以离开了。

看到这里的人应该认为这套设计还有点吸引人,好,就烦请你们帮忙分析一下它的未来走向:
1、做成商业软件
2、做成免费软件
3、做成开源软件

首先我自己分析一下这三种未来:
第一种:是一个正在考虑的选项,问题在于凭个人力量难以快速完成,太多杂事干扰。当然如果能成功,财源滚滚来。
第二种:我根本不考虑,免费软件是鸡肋,吃力不讨好,免费软件永远被人认为是半成品,不可相信。
第三种:跟第一种一样是可选项,它的好处太多了,问题也不少:一是如果没有人愿意参与,还不如不开源;二是没解决吃饭问题;三是项目质量难以控制;四是“窃书不能算偷”;五是……还没想到。

希望着重讨论第三种未来,如何解决开源带来的问题。我自己只有一个小思路,核心源码可以全部公开,所有人都可以“读代码”,但不会让任何人能编译通过,除非他是核心参与者(扩展开发者因为不涉及核心而不受影响)。但开源的核心源码只提供基础功能,扩展模块不受开源协议限制,可以做成开源,也可以做成商业模块。

选择开源的目的是为了有更多人参与,整套设计方案本身就是可扩展的,所有模块或者要素全部能用同一种方式扩展,一个扩展可以只实现一个很小的功能要素,也能同时实现很多功能要素,例如基础控件都是矩形外观,一个小扩展就能实现圆角矩形外观。下面的例子代码是项目中已使用的:

// 所有绘制目标封装成了CSurface 类,这是一个基类
class CSurface
{
public:
virtual BOOL IsGDI() = 0;
virtual BOOL IsOffscreen() = 0;

virtual HDC GetDC() = 0;
virtual void ReleaseDC(HDC hdc) = 0;
virtual void BltToPrimary(LPRECT pRectSrc=NULL) = 0; // 仅仅针对离屏表面有效
// ...
};

// 下面的类都是从 CSurface 派生的
class CPrimarySurface // DDRAW
class COffscreenSurface // DDRAW
class CGdiSurface // GDI
class COffscreenGdiSurface // GDI

// 在未来的版本或者扩展库中会提供如下的派生类
class CD2DSurface // D2D
class CD3DSurface // D3D



如果开源条件不满足,例如参与人数太少,本人不会公开源码!
...全文
3385 162 打赏 收藏 转发到动态 举报
写回复
用AI写文章
162 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2011-10-23
  • 打赏
  • 举报
回复
相同的东西我已经在做了,有兴趣可以交流;先从技术角度谈谈自己看法:
1)说UI没有技术含量,我不发表言论 ---- 看你要作到什么程度,如果只是像多数PC上的UI,我同意您的观念,但客户的胃口已经发生改变;看看Windows 8的Blend再仔细想想;
2)UI客户和功能分离已经是趋势(同样看Windows 8开发),当前我的UI程序的做法是客户端由Script完成,如JavaScript、ActionScript或类似HTML 5的东西,而功能端由用户自己喜欢的合适语言,如Native C/C++或仍使用Script;这样即使美术或仅仅懂得Script语言的就可以轻松完成UI的设计,而软件工程师仅仅需要完成好功能,他们不需要操心按钮怎么显示,画面怎么表示 ----- 多数工程师比较理性,请工程师作UI明显不合适;
3)UI工具涉及两个技术层面的东西:JIT和图形学的东西;很简单Script需要JIT的处理,够酷狗炫的显示一定要依赖一个高效的图形引擎 ----- 不是指GDI+或MFC等等的东西,这些不能跨平台,明天让您改成Android一定会哭上几个晚上的;
4)使用有合适制作工具的:完成以上的UI引擎您已经可以被奉为“神”了,再没有一个好的工具,再好的东西都是扯淡 ----- 所以最好的办法使用现成的;最好是美术人员拿来就可以为您设计UI ----- 充分发挥他们的艺术才能

关于商业上考虑:
1)不相信开源代码,所以以上核心技术要借助其他手段 ----- 不要过分相信自己的能力
2)好的推广模式
3)好的合作伙伴
BruceLin2008 2010-06-09
  • 打赏
  • 举报
回复
我直接离开了。。
nikua 2010-06-08
  • 打赏
  • 举报
回复
支持!有钱挣钱,没钱开源!
社会栋梁 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 xianglitian 的回复:]
5、还有人总觉得自己没能力参与,那么谁有能力参与呢?别这么没自信,代码都是人写的,学学就会了。我不止一次说过,做界面没有技术,要的是细心 + 耐心,其它的都是经验和一些小技巧而已,但这些都是可以学的。也许我的经验稍微多点,也只是把这些经验揉在一起而已。
========================================================================……
[/Quote]
佩服楼主
也支持24楼,
另,权衡利弊,估计是得开源了,而且还得快
向立天 2010-04-14
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
zhangxin357 2010-04-14
  • 打赏
  • 举报
回复
支持开源啊
zhangxin357 2010-04-06
  • 打赏
  • 举报
回复
up1,要有一个软件著作权的申请做个签定
niyujun 2010-04-03
  • 打赏
  • 举报
回复
LZ牛人~~学习来了
我一个毕业设计就搞得头疼了
哎~~~
zhao13627541954 2010-04-02
  • 打赏
  • 举报
回复
选择商业软件吧,先解决温饱问题吧
这个社会,现在年轻什么也没挣下,等你老了,
没地方睡,睡大街上,城管都会抓你,
理由是--影响市容.
lptzone 2010-04-02
  • 打赏
  • 举报
回复
拿分 学习
zgbj999 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 54 楼 daofen007 的回复:]
个人觉得先把东西做好,首先要让你自己的东西是一流的; 然后慢慢推广,自己写些例子漂亮界面的例子, 可免费给一些产品使用; 然后等着别人来收购你的源码。

对个人来说,Foxmail, 优化大师的成功路子可能是最佳的。

不要开源, 开源的东西是最不值钱的。
[/Quote]
支持
Timely_Tryhard 2010-03-26
  • 打赏
  • 举报
回复
看看!!
llh959451820 2010-03-26
  • 打赏
  • 举报
回复
三种想法都可以试一试。先免费,再收费,最后开源
l27737422 2010-03-25
  • 打赏
  • 举报
回复
选择1吧,招几个人一起干,省心。
lovelbmmm15 2010-03-25
  • 打赏
  • 举报
回复
学习中学习中学习中学习中学习中学习中学习中学习中学习中学习中学习中学习中学习中学习中学习中学习中学习中学习中学习中
ukyoking 2010-03-25
  • 打赏
  • 举报
回复
粗略看了一下,像是一套仿WPF的东西,建议还是开源好
ding814051097 2010-03-25
  • 打赏
  • 举报
回复
路过看看
chouwenyi 2010-03-25
  • 打赏
  • 举报
回复
真的強的話可以先從2 開始做的不錯再轉1
xiaodan007 2010-03-25
  • 打赏
  • 举报
回复
林子大了, 什么鸟都有。
shaonew 2010-03-25
  • 打赏
  • 举报
回复
看看而已
加载更多回复(142)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧