[Mono-list] Does Mono Basic support lag behind C#?

mauleyzaola mauricio.leyzaola at gmail.com
Fri May 30 17:51:29 UTC 2014


Hello Michael,

Nice reading and maybe this reply is too late, but I would like to give my
two cents here. I have been doing .NET development since 2004. First three
years we created an small ERP for a manufacturing company using Winforms and
most of the business rules on SQL Server stored procedures. It was a very
solid product, working until 2011 when the company switched to SAP.

Since that project we moved from desktop to web development, gaining much
more productivity, better and friendlier UI's and with all the bells and
whistles a modern plattform can give you (Winform and even WPF look old
IMO).

Taking into account you are aware on how complex ERP development can get I
would like to share my thoughts with you.

1. C# is such a powerful language. I've been into Visual Basic in the 90's
and it's a pain to mantain a medium or large project. C# when you have the
skills, is highly productive. It can be a typed language or even dynamic as
required. I can't speak for VB.NET though, never been there.

2. Since an ERP needs to support adding new fields It will be hard to create
dynamic bindings using any desktop technology. Name it GTK or Winforms. WPF
is really easy once you master it, but it is not supported on Linux. HTML /
Javascript are more powerful with bindings, either using server side
templating like ASP MVC or client side (which I prefer actually); using any
MVC or MVVM framework such as AngularJs (my favourite), EmberJs or
KnockoutJs and such.

3. Creating a project in .NET / Mono that looks native on each OS is hard to
accomplish. For an ERP maybe this is not very important at first, but users
are more and more likely to chose modern and ergonomics UI's.

4. Deployment and support of a web application is far eaiser than its
desktop counterparts. Even with technologies such as ClickOnce it is a pain
in the butt compared to having a web server connected to any number of
clients.

5. Out of the box, a web based system targets any OS and most of the mobile
devices. Sure, you will have to deal with different browser issues, but I
think it is trivial if you do your homework. For instance my applications
only support HTML5 browsers. If the client cannot achieve that requierement,
I display a message and suggest to use a more modern browser.

6. Cross platform development. Mono is a great thing, really. But you will
find some bugs and issues now and then. Some are easy to fix, but some are
not. We develop in Windows because Visual Studio is the best fit for my
team. We use git as a repository engine and also, to keep continuous
integration working automatically. That is, source code is compiled in
Windows, binaries are deployed to git and then test on Linux.

7. Layering of the Solution. We have found a mix which just works and is
fast to execute. .NET/Mono is a console program which has all the business
rules. We prefer to keep database independent, so ORM comes to the rescue
99% of the times. For the 1% of these really complex queries, we create one
Postgresql child class and another MSSQL child class with custom SQL and/or
procedures when needed.
This gives us the chance to debug and test on the application layer. Not to
mention we have mocks for unit testing and use SQL Lite in memory, so tests
execute much faster.

8. Architecture. From bottom to top, this is what we are using successfully:
Postgres Database --> Mono console application serving HTTP REST API -->
NodeJs for Web Template Rendering --> HTML / CSS / Javascript clients using
AngularJs for the bindings.
All of our code runs async, which let us have relative small appliances
serving many concurrent users

Since last year we are building an ERP product like you are, and the first
beta will come out by November this year. If you have any concerns, please
don't hesitate to ask. Hope my comments have helped you somehow.

Cheers and good luck.

Mauricio



--
View this message in context: http://mono.1490590.n4.nabble.com/Does-Mono-Basic-support-lag-behind-C-tp4661888p4662963.html
Sent from the Mono - General mailing list archive at Nabble.com.


More information about the Mono-list mailing list