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. _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
