When is mono a good choice over .net? [closed] - open-source

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
When is using mono a good choice over using .net for developing a production system?
The upfront cost of the tooling is zero, but how does the total cost of development using mono compare to using .net?
What is the sweetspot for adopting mono.?

Mono is .NET running on non-Microsoft platforms.
Use Mono if you're looking to build a .NET application on a non-Microsoft platform. Currently, I'm working on an ASP.NET MVC application running on OS X via Mono (want to target a Linux based server and all my development is being done in OS X). Good stuff.
If you're targeting Windows ONLY, then the free Microsoft tools (Express Editions) are usually the better option.
...where's Miguel when you need him.

Mono can do a few things the MS's .Net can't or won't:
Run on linux, mac, and others (including iPhone now)
Static link the framework dlls, for a zero-dependency deployment scenario.
On the other hand, .Net does some things that mono does not do or does yet not do easily:
Latest version of the framework
Out of the box visual studio support
WPF, WCF, WF, etc
There are a few things in mono that work, but the performance isn't quite at the same level as .Net

Mono let's you run .NET applications on Linux and Mac OS X, while Microsoft main implementation is tied to Windows.
So in the case of:
"What is better for writing cross platform applications?"
The answer is Mono, and I don't think that's even a subjective answer.
Mono supports a surprising breath of .NET all the way up to 3.5. Virtually all the BCL is in, and you can do ASP.NET MVC, Linq, and WinForms. The trunk version of Mono supports .NET 4.0 features as well, so they aren't really far behind. :)
Notable stuff that is behind is the various W* technologies. WPF is basically nonexistent. WF, is pre-alpha quality. WCF is beta quality and still incomplete, but probably the most developed of the W* technologies.

The upfront cost of tooling for a .NET app is zero as well. Checkout SharpDevelop.
The sweetspot for Mono is developing apps for Linux using C# and a familiar .NET-esque Framework.

It's interesting if you need to develop software that runs in a lot of plataforms (Linux, Mac, Windows) using .net ecosystem.
According to their official website:
Mono is a software platform designed
to allow developers to easily create
cross platform applications. It is an
open source implementation of
Microsoft's .Net Framework based on
the ECMA standards for C# and the
Common Language Runtime. We feel that
by embracing a successful,
standardized software platform, we can
lower the barriers to producing great
applications for Linux.
Their official website has a lot of information about IDE's and other helpful information about the project.

Related

WinJS Issues | Windows 8.1 and Windows Phone

I am a C# windows developer. I recently started to work with WinJS. Working with WinJS, I have noticed some challenges and limitations. Can face some new challenges as the community support for WinJS is very less. Below are the few points mentioned regarding this concern
a. WinJS does not support Visual Studio features like Finding References of Classes and Variables which is very useful to code productively.
b. WinJS is not strongly typed as C#. So we will get to know about the errors at runtime only instead of compile time which is difficult to Debug and time taking process.
c. WinJS does not support feature “What you see is what you get”. Visual Studio designer is not available for WinJS. We can see the application design only after we run the application which is again time taking thing.
There are very less chances of availability of “Ready to Work on WinJS” resources. Because most of the developers in Windows community work on C#, XAML languages.
d. Direct compatibility of third party libraries for WinJS might not be available.
Have anybody experience in WinJS and faced similar issues? Or Are there any solutions exists for this? What is the scope of improvement in Windows 10 version for WinJS??
For an HTML/CSS/JS designer, that's what Blend for Visual Studio is for. Load the project into Blend and you'll get a designer that also works when you're running the app. Documentation for this is on https://msdn.microsoft.com/en-us/library/jj129478.aspx, and there's a great video from //build 2013 that shows the flow, http://channel9.msdn.com/Events/Build/2013/2-311. I also cover using Blend to some extent in my free ebook, Programming Windows Store Apps with HTML, CSS, and JavaScript, 2nd Edition.
https://dev.windows.com/en-us/develop/winjs
see this link it give the solution your problem which is given below
a. WinJS does not support Visual Studio features like Finding References of Classes and Variables which is very useful to code productively.
b. WinJS is not strongly typed as C#. So we will get to know about the errors at runtime only instead of compile time which is difficult to Debug and time taking process.
c. WinJS does not support feature “What you see is what you get”. Visual Studio designer is not available for WinJS. We can see the application design only after we run the application which is again time taking thing.

html5 or xaml for windows 8 / 8.1 [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I am new to app development and chose C# and xaml for apps. But things didnt quite go well. I aint a full time programming freak; can just manage an hour or two a day after college studies and with xaml my head really hurts.
Recently i came to know that even html5 can be used to make apps. So my question is this :
Should i continue with xaml or switch to html5 ?
Ref : http://devchic.azurewebsites.net/?p=581
https://stackoverflow.com/questions/11147012/should-i-choose-html5-or-xaml-for-metro-development
My requirements are :
1) Shouldn't be too time consuming
2) I will currently focus on light and simple apps ( Games maybe, but not in near future)
3) They should be available to both wp8 as well as desktop, and if possible to other platforms as well.
(I happen to know c++ and Java at intermediate level.)
While either solution could work, here are some things to consider. I'm going to assume you mean Windows Store applications when you said "desktop."
1) Shouldn't be too time consuming
That's very difficult to say. If you're not familiar with C# and Xaml, there will be a learning curve. You mentioned you know Java though, so the language shouldn't be too much of a challenge. If you're interested in quick to build, I'd suggest you start with Xaml and C# and use the Xaml visual designer to gain some experience and ignore the Xaml output at first. By default, like a web page, the layout system is not absolute and often uses various types of panels (grids, dock panel, etc.) for layout.
Microsoft has a lot of great examples on MSDN that would allow you to both learn more about your options, but even contrast the coding techniques. Having taught someone at work in a little more than an hour how to get started and be productive, you might want to give Xaml another go.
2) I will currently focus on light and simple apps ( Games maybe, but not in near future)
Your definition of light and simple isn't specified. You could create applications that meet that requirement with either platform. If you're building games, the answer changes and becomes more complex. As you're still learning though, I'll not talk about that here.
3) They should be available to both wp8 as well as desktop, and if possible to other platforms as well.
Today, there are 4 common ways of developing an application for Windows 8.1 desktop:
Xaml/C# (C++ is also an option here)
WinJS/HTML/JavaScript (WinJS is a Windows store application-only framework)
Either of the above, hosting a web page (either from a web server or local in-app)
C++/DirectX (for games)
Currently, there isn't a way to use WinJS or the same code for option 4 on Windows Phone. So, you'd likely narrow your options to Xaml or a web page view. While you can't take Xaml and necessarily use the same Xaml on both platforms, the patterns and development experience are very close. By using a "portable class library", it's now possible to share the common business logic between the platforms.
A Xaml approach would allow, without extra effort, the application to be a native experience. Th application would have the appearance and behaviors of a Windows Store application. If you went with just an embedded web page approach, you'd be on your own. I will not take on the experience and look of Windows. If you aren't familiar with doing reasonably complex HTML and CSS, an embedded web page solution may be too time consuming.
(I happen to know c++ and Java at intermediate level.)
Here's a few links that might help you:
Getting started developing apps for Windows Phone and Windows 8
Develop Windows Store apps
This will likely help you with either choice.
Traditional Windows Desktop applications
If you want to build a traditional Windows desktop application and not a Store application, your options are similar, with the exception that you might choose to build your application using WPF. windows Presentation Foundation was the predecessor to the Xaml used in Windows Phone and Store applications. It's not identical, but the knowledge of one transfers well. You can also host an web page inside of a "desktop" application. I've done it frequently. If you're trying to build someone "modern" though, learn the Windows Store frameworks.
If XAML hurts, I say go HTML5. I don't understand XAML very well myself, so I use HTML5 for my Win8 apps.
Regarding your requirements, HTML5 fits 1&2 perfectly. It's not very common to write desktop apps in HTML5 though, so your options there will be quite limited.

A few questions about Metro style applications

I have a few questions about Metro style applications.
Do they require .NET Framework or any framework?
Which programming languages can be used to create Metro style apps?
Can they be cross platform?
It does not require using .NET - you can build native apps with C++ or C++/CX or use HTML and Javascript
C#, Visual Basic, C++, C++/CX, XAML, Javascript, HTML, CSS
It depends what you understand by cross platform - these apps can run on any Windows 8 platform, but not on Windows Phone, Mac or Linux
Metro applications are either developed using Microsoft .Net (c#) OR C++ OR HTML 5 / Javascript
Api Reference of Metro Aplication
For more detailed information, check this page : http://msdn.microsoft.com/library/windows/apps/
HTML5 - Javascript
These are the languages used by any browser, making them compatible on any system
Microsoft .Net
Can only be run on a Windows computer, but you may want to check Mono for compiling multi-platform applications made in C#
C++
Well C++ is c++... it can pretty much do anything anywhere

Which continuous integration software do you use? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Google says there are:
Jenkins ( first impression: not lightweight )
Cruise control ( first impression: not lightweight )
Bitten ( seems to be dead, last ticket >8 months old)
BuildBot
But BuildBot seems a bit outdated, offering no statistics, not very intuitive to configure... Features we are interested in are:
Multi platform support for build slaves: Linux, Mac OS X, Windows
Easy build slave setup
Mercurial support with branch sensitivity
Scheduled builds
Commit-hook builds
Email notification with full debug output
Trac integration would be nice but is not a must-have feature
Edit:
I favour Jenkins over Hudson by now, since its the real open source fork of Hudson. Oracle just failed.
Hudson is my recommendation. It's easy to setup and use, it's free, there are a large amount of third-party plugins and good community support.
TeamCity by JetBrains.
Google says there are: [...]
There is a huge wikipedia page on CI software comparison:
http://en.wikipedia.org/wiki/Comparison_of_Continuous_Integration_Software
Personally I am also using buildbot and I think it could fulfill all of your requirements. It's a bit of work to setup because it is a distributed application but frankly as pyfunc said it's a breeze to setup a new slave once you know what two commands to type (one is an "easy_install", the other one a "buildbot create-slave" with the right options).
Also it is still under heavy development and I chose it because it is easily extensible, whereas XML-based tools are confined to the types of build specs which were coded in the tool: perfect for Java/Ant/Maven projects but it can be limited for slightly more complex ones (e.g., involving DB, or embedded software, etc.).
Hope it'll help.
Cheers,
Christophe.
= The act of automating doesn't solve problems, it just automates them --Joseph Weizenbaum =
I have used Hudson with Mercurial and found it to be excellent. The Feeds, web site, status reports, etc. were all "just the right size" for us in a 20 person shop. Just run it in a VM and forget about it; we did.
I have used BuildBot. My experience has been good with it. Installation is a breeze. It uses configuration to setup the master, slave and has various means for communicating result from publishing on web to mail integration.
http://buildbot.net/trac
I have blogged about the buildbot setup. I find it easy. There are few dependencies like twisted that needs to be taken care of.
http://pyfunc.blogspot.com/2010/09/using-buildbot-for-continuos.html
[Edit: I tried to put together a post on how to configure BuildBot - master.cfg]
http://pyfunc.blogspot.com/2010/10/setting-up-buildbot-customizing.html
As others have recommended, Hudson satisfies your list of requirements. There's also a plugin for Trac integration.
Regarding "lightweight", Hudson configuration is not XML hell. You can do everything via the Web interface. So it's very easy to get up and running.
Hudson's plugin architecture provides a lot of extension points and integration with other tools. (Although it can be a pain to sort through all the possibilities for the plugin that has the behavior you need.)
You can also script it through the remote access API. This is a powerful way to introduce new behavior for your environment without needing to dive into writing a plugin.
Our free hosted CI environment (fazend.com) is powered by CruiseControl 2.8.3, which is a free open-source product, written in Java. One of its benefits (for us) is that it doesn't need any database, everything is in files.

Codeplex/Sourceforge for internal use [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm looking for a free/open source collaborative project manager that can be deployed internally in my workplace that would act similar to Codeplex or Sourceforge. Does anyone know of something like this, and if so do you have experience with it.
Requirements:
Open Source or Free
Locally Deployable
Has the same types of features found in Sourceforge / Codeplex
Issue/Feature Tracking
Community Interaction (ie. Voting, Roles, etc.)
SCM Integration (Optional)
.NET/Windows Friendly (Optional)
Every business ends up having internal utilities, and domain specific apps that developers create to make life easier. Given the input of the internal developer community they have the potential to become much better (can you say GMail...), and I would simply like to foster such an environment internally by providing an easy place for that interaction to take place.
UPDATE:
So I like what I am seeing in both Trac and GForge, but both are heavily geared towards UNIX/Subversion environments. I should have specified this, but we are a MS shop from top to bottom. How practical do you think it is going to be to try and use these in a MS .NET environment? Would that be like trying to shove a square peg through a round hole?
I like redmine for this: http://www.redmine.org. The only thing it's missing from your criteria is voting, but there might even be a plugin for this.
Trac is also popular (http://trac.edgewall.org) but it lacks suport for aggregation of data across projects.
Try GForge, it's a SourceForge fork and has most of its features.
I agree, Trac should work. IMHO setting up Subversion should be relatively easy on Windows too, there are great Windows clients for it (tortoiseSvn), and Trac runs on python, so it will work on Windows too.
Other advantages of Sourceforge Enterprise are these plugins. There are extra plugins for Visual Studio wich can be found here and here.
SourceForge Enterprise Edition 4.4 is available for free for up to 15 users. We use it for our development team and another development team where I work.
It's been working great for us. It has subversion and cvs built in (whichever you wish to use). If you plan on accessing it over the internet you might want to enable HTTPS. I had to do a little finagling to get HTTPS to work correctly (finding the right CentOS packages to install). If you wanted to use this solution with HTTPS I wouldn't mind if you sent me a message asking for help.
It comes with a VM for VMWare Player:
http://www.collab.net/downloads/sfee/index4.4.html
Launchpad has support for Code Hosting and version control, Bug tracking, Blueprints, Answers, Polls, Translations, etc.
Launchpad is used by the Ubuntu Project.
A few weeks ago, Launchapad was released as open source.
I was just wondering the same thing, something like Trac but in .NET, after a quick GOOGLE search (I have never tried these tools) I found
sharpforge (This no longer looks free!)
I like how the site .netTiers looks.
They use screwturn wiki.
It is totally free if you fulfill all GPLv2 statements.
Assembla and BeanStalk are nice, both have things like; wiki, discussion, alerts, chat, ticketing, Trac, Git and Subversion
What about Trac? It's pretty simple, but does it's Job for a lot of Open Source projects.
I would concur on the Trac suggestion. I use it both for an open source project and for an internal project. It has decent issue tracking and integration with Subversion which allows links between tickets and subversion checkins. It also has an integrated wiki, which can be of some use for documentation. Although we do not use it for voting / community type features, I know there's a number of addons to it that might serve this purpose.