.net - Recommend multi-tier architecture / language / database? -


i'm looking @ new line of business application requirement (technical, not accounting). application needs following architecture:

  • backend database available users around world decent response time. can use replication of database if necessary ensure low latency performance. client organization prefers host rather use saas or cloud because of data security / contractual issues regarding ownership of data. data not particularly relational, more of object tree. there may unique objects in datastore have attributes exist once in database. however, need store audit trail (not rollback) of data changes, made them , when, , allow different versions of data users might looking @ mixture of datasets. real-world description of master drawing various transparencies on changes. when users finished changes publish master , seen others. looking @ various database options (sql via orm, nosql). no strict backend restrictions on platform
  • middle tier business logic, including authentication , authorization of users. auth must active directory compatible client systems. business logic relatively straightforward, passing data database users , back. no restrictions on platform or language - ideally scriptable business logic can added without needing recompile. need performance when being hit hundreds of concurrent users.
  • client tier windows desktop based, both graphical (drawings) , data entry/manipulation. com layer / interfacing ms excel business critical, i'm thinking should .net application.
  • secondary client tier mobile / web interface. not have full functionality of windows desktop application (no drawing interface), have functionality review / comment / approved data , publish data "master layer" in database.

i not full time programmer. have done programming on last 25 years in fortran, common lisp, pascal, vb , python. might described idea guy here - not implementer.

if wanted prototype this, best platform in? i'm thinking because of client end .net good, i'm concerned ability use .net backend if use other sql (i know nothing linq - me?). also, idea of dynamically typed languages because of expressiveness , speed of development.

considering low latency , non-relational kind of data nosql right choice. many of popular databases have support .net (like mongodb, couchbase), lambdas/expressions , linq. have take account eventual consistency, (whatever way go relational or nosql, replication or sharding) may affect backend architecture.

regarding audit trail, versioning , publishing changes @ cqrs , event sourcing architectural patterns, solve such problems well.

for client apps i'd suggest try xamarin. (it's better wpf, think, because it's not focused on particular devices as wpf is) gives main benefit of using same dev platform/language both server , client apps , lower development/support costs.

regarding desktop app, i'm not sure if xamarin supports com if not can share client code , decouple presentation layer. you'll have separate layers desktop (visual studio) , mobile (xamarin)

all of stuff can made using .net , see here great pro: using common code base apps.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -