Web Application VS Windows Application
-
@scottalanmiller said:
@IT-ADMIN said:
i'm just reading about MangoDB
http://www.tutorialspoint.com/mongodb/mongodb_overview.htmdo you know a good documentation about this ?? or the above link is good ??
We are recording this conversation on MongoDB If you search for MongoDB in titles in MangoLassi, you will find that I wrote up an install guide for it last week
MongoDB's own website is pretty decent for getting you started. However, you don't need to learn the database to use it. Many frameworks, like Meteor, use it by default and everything that you need to interact with it is built in. So you can focus on programming, instead of on designing databases.
In the event that you do try Meteor.js and your colleague doesn't like it, there is a PHP library for MongoDB as well.
-
Ok, is it possible to use MongoDB if we have a relation many to many in our data model ?? i know it is possible but is it that simple as RDBMS ???
-
@IT-ADMIN said:
Ok, is it possible to use MongoDB if we have a relation many to many in our data model ?? i know it is possible but is it that simple as RDBMS ???
This question doesn't even make sense. You not be using your model, of course. The model that you have made exists solely to service a system you shouldn't be using. Just skip it.
No, it is far SIMPLER. Everything you have done already is unnecessary. not that it is all bad, it is good to know the data. But you are overthinking this. NoSQL makes this far easier in your case (and nearly all cases.) You are mired in the complexities of relational databases, you need to think more simply and more easily.
-
@dafyre said:
@scottalanmiller said:
@IT-ADMIN said:
i'm just reading about MangoDB
http://www.tutorialspoint.com/mongodb/mongodb_overview.htmdo you know a good documentation about this ?? or the above link is good ??
We are recording this conversation on MongoDB If you search for MongoDB in titles in MangoLassi, you will find that I wrote up an install guide for it last week
MongoDB's own website is pretty decent for getting you started. However, you don't need to learn the database to use it. Many frameworks, like Meteor, use it by default and everything that you need to interact with it is built in. So you can focus on programming, instead of on designing databases.
In the event that you do try Meteor.js and your colleague doesn't like it, there is a PHP library for MongoDB as well.
But you will likely make everything harder. It's hard to get easier than Meteor.
-
is mongoDB opensource, right??
-
in my above data model diagram, where i have many to many relationships between entities, what is the best approach: references or embedded documents ??
-
-
dear Scott please can you tell me what are the right steps to follow when working with document DB ?? i mean are there any models to follow in document DB similar to Merise or UML in relational DB ??
-
@IT-ADMIN said:
dear Scott please can you tell me what are the right steps to follow when working with document DB ?? i mean are there any models to follow in document DB similar to Merise or UML in relational DB ??
No, I don't believe any modeling tools like that have been created yet. Although the need for them mostly does not exist.
-
Try this, take Word and try making a sample "document" of sample data for one or two users. That should, mostly, guide you as to what the MongoDB document will look like.
Do it something like this...
First Name: John
Last Name: Doe
SSID: 123.45.678
Cell Phone: (132) 465-7896Something like that.
-
wow, how it can be arbitrary like this, no rules, no models to follow,
strange -
@IT-ADMIN said:
wow, how it can be arbitrary like this, no rules, no models to follow,
strangeThere are rules, they are just more lax and flexible. Maybe a better question would be... what were all of those rules for?
-
ah i see, so there are rules, can you please give me any guide how to start a project using document DB from A to Z, because really i'm lost in this stage, document DB is new for me and i do not know where i should start,
you can imagine someone hear something for the first time and he is ignorant of the steps he should follow -
before with relational DB, we establish the conceptual model that include all entities of the whole project and the relation between them (one to many or many to many) then based on the entities we create tables and start developing the app based on the model, but now i'm lost with this new methodology of DB,
between us i really found this document DB very useful and easy but i'm still unable to put my feet on the right way -
@IT-ADMIN said:
between us i really found this document DB very useful and easy but i'm still unable to put my feet on the right way
I think that you are overthinking it. Try taking the data that you have and instead of thinking of a place for each "type" of data, make a single document for a single user/person and put all of the necessary data into that document. The data remains related by the nature of existing within a single document. If you look at the data that you have in a relational design, you can assemble a document by doing a join on it. Instead of data all over to assemble to a user, start with the data in one place.
And try not starting with the database, start with the application. You don't need to design the database at this stage.
-
@IT-ADMIN it's been a few months. Any follow up on your development project?
-
Pinging against in case this got missed @IT-ADMIN
-
Long thread for me to go through on my phone.. But another option since you mentioned vb.net that may have already been mentioned is to publish it as a clickonce application. I use that on a project and it works well.
In my case Click once does not need administrator right to "install" and handles updates automatically.
-
Desktop apps have their place, this is silly.
A native desktop app can better utilize hardware, take advantage of native OS abilities that chromeless frameworks can't.Native apps can be built in lower-level languages and be built to be much more solid, speedy, use fewer resources, take less RAM without all the middlemen fluff.
I'm all for web apps, they are cool and all, but they depend on a browser and a tab being open. They have limited abilities, they can't even put an icon in the system tray, or startup with Windows. They are not as easy to control via OS security policies.
Maybe I just have bad luck, but I ALWAYS try to find services that give native desktop apps. If not native, then at least full featured frameworks that can use native OS features.
I rarely touch Office online because it's just slow, herky jerky, buggy, crashy. I absolutely hate interfaces that aren't very responsive.I agree with Scott that IF the app can be a web app, go for it. But there are also times when you might want native OS features, lower level language that compiles with fewer dependencies, smaller size, greater efficiency, and so forth.
Apps can be built to self-update, most desktop apps do. I've never had to do anything fancy to get Slack to update, it just updates itself. Slack isn't native, it's a framework, just using it as an example.
I think when the OP talked about Windows apps being "buttons and boxes" or whatever, he probably just means that there is a drag-n-drop interface for common .NET form controls. You just place all the controls where you want and program from there. Things like minimize/max/close, resize-able borders and control menus are all sort of automatic.
But with web apps, form libraries are not as popular, and there aren't any really good drag-n-drop designers for creating UI FROM such things anyway.
Much time has to be spent designing the UI, even if you do use a library (you have to learn the library!), or even a CSS framework like Bootstrap or Foundation, you still have to code and try to keep straight the rows and columns and how you want things to respond and slide around responsively.In any case. Desktop apps definitely have their place. I use desktop email, desktop photo editing, desktop file and information management tools, chat, backup apps, file sync, document readers, DB management tools, remote control tools, FTP, text editors/IDEs, and 3 dozen others that are just way more better suited to native.
Native apps always have the option of avoiding updates. Or lets say an update ruins things, you can usually reinstall a previous good version. With web apps, if they screw up and something breaks, you have no options but complete down time waiting for fixes or trying to fix it yourself depending on where the problem lies.
And of course, browser tabs are, for the most part, sandboxed, so there are already limitations regarding file system. Try auto-connecting to files over the local network from a web app. Web apps don't have unlimited power, if they did, we would be right back to having huge malware issues. Malware has made web apps more limited and locked down. Native apps are still the way to go if you need power and greater control of OS abilities and features.This web versus native argument can go forever, but just like most things in life, you pick the best tool for the job. If a web app will do it, always go web app. They are typically easy to set up and maintain. If you want native OS features or require to greatest efficiency, security, or OS-level features, then obviously native.
If you want to do both, as is popular these days, look into crossover frameworks like Meteor, Electron, or Cordova for mobile as well.I believe cross-platform frameworks are going to be huge for some time to come, but there will always be a special place in my heart for a native app that can fully utilize system tray, startup, notifications, file system, and full system power.
Yes frameworks can do some of this, but they have to come with a lot of middlemen architecture, bloating the apps RAM use probably 3 to 5 times more than would be necessary with native programming.Anyway, I've rambled on long enough.
-
@guyinpv said in Web Application VS Windows Application:
Desktop apps have their place, this is silly.
A native desktop app can better utilize hardware, take advantage of native OS abilities that chromeless frameworks can't.Native apps can be built in lower-level languages and be built to be much more solid, speedy, use fewer resources, take less RAM without all the middlemen fluff.
CAN be, yes. But very rarely do any of those things matter, especially for business apps. Those are things that apply very commonly to video games, and once in a great while to business apps (CAD for example) but almost never.