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 1 year ago.
Improve this question
We are thinking about convert Asp.Net MVC/EF/SQL application to NoSQL application to improve development speed and application speed. It looks like there is mixed response on ravendb, I want to know if you have using NoSQL in a .Net environment , what you are using.
Also, our business still rely on SSRS to do reports, and it is important that we can still export data from NoSQL to SQL environment, what will you suggest to export data from NoSQL to SQL Server.
Thanks for you comments.
My 2 cents:
RavenDB is a good document database. I'm using it in a .NET environment and it integrated nicely.
Move to a NoSQL database only if your data makes sense in such a structure or the foreseen performance improvement is compelling enough. RavenDB is a document database so it works great with documents but it's much harder to work with relational data. You'll likely find that keeping relational data in a SQL database is more efficient from a development perspective, but perhaps you'll find better performance with a NoSQL database (probably not RavenDB) at the expense of some developer efficiency.
Be open to a mix of SQL and NoSQL in your environment. For example you may find that your relational data fits best in SQL and your document data fits best in RavenDB. Or perhaps you'll want your document data in both places which would require some SQL-RavenDB syncing.
For exporting from RavenDB to SQL, check out RavenDB's Index Replication Bundle. Please see Matt's comment about the latest bundle to use.
You will find (open sourced) BrightStarDB the closest fit from a DBContext solution for entityframework, as for pulling data out you can export it either writing your own app/query/or its own query language. Got a few options there.
Check it out BrightStarDb.com
Related
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 2 years ago.
Improve this question
Any ideas/options about handling Data Lineage in Snowflake? We are following a microservice architecture in which we are running a set of stored procedures that contain quite a few SQL queries as soon as certain events are triggered.
Example: When Table A is populated execute SP_Populate_Table_B and the result is that Table B is populated. We have a big set of SPs as we are populating the Staging Area, DataVault and our Dimensional Model.
We are in the lookout for any good way of handling all the metadata around this microservice way of performing our ETL. Basically automated way to track dependencies between tables, visualize the orchestration, have a better way to handle the changes of the SPs when tables are changed etc.
Can you please advice for some frameworks or tools, preferably open-source, that you have tried for Snowflake? Will DBT be a solution to that?
Thank you
Pantelis
dbt is a good solution to deploying your warehouse as code, but not a great solution for using your warehouse as a db for services to write intermediary tables.
If you care about data lineage, and you're willing to rethink the SP approach, then I would recommend dbt as a tool to deploy your warehouse infrastructure as code, and easily understand the downstream dependencies of your data.
dbt is great if you are willing to approach everything as an ELT problem, and allow dbt to be the infrastructure that transforms a subset of your mass-loaded data/events, into something that is ready to be analyzed or ingested for BI.
Read this for more context:
https://discourse.getdbt.com/t/understanding-idempotent-data-transformations/518
I'm not 100% sure if it supports snowflake just yet but I'd highly recommend looking into Packyderm. I believe it was built to solve just this kind of problem.
Might be worth a look or even contributing to if you really want Snowflake support.
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
My web project is using telerik dataaccess ORM,when I deal with the data,I can use stored procedures or direct write code.I find it is more efficient to use stored procedures.But some of my workmate say that using stored procedures is difficult to maintain, especially for some of the new recruits.Can anyone tell me when to use stored procedures and when direct write code in ORM better?
The whole idea of using an ORM is that you don't have to write much "raw" SQL code anymore - you work with the ORM layer to get back nice .NET objects from the database, and you work with those.
However, if you have some extensive processing where you need to crunch through thousands or millions of rows, and in the end you just need one or two numerical values back (like an average and a deviation or something along those lines), then it probably makes more sense to do this extensive number crunching on the server inside a stored procedure, and just get back those few result values that you need. In this case, I'd use a stored procedure on the server - instead of pulling down millions of rows from the server to your application and computing those numbers locally. Just a matter of efficiency.
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
The question is very simple.
Should I use Core Data only to persist data, to store it locally on a device or should I use it ALWAYS just to manage my application's model even if I do not persist significant amount of data?
What do you think?
Core Data provides an infrastructure for change management and for saving objects to and retrieving them from storage. It is not, though, in and of itself a database. You can use an in-memory store in your application.
Use it Always ? : NO. Use it when you think that your require the features that the Core Data framework offers to you, like any other framework.
Short answer is no. As others said if you do not need persistent store just create runtime objects and manage them.
Even when you need persistent database, Core Data is not always the best solution. For example if you have multi-platform app, or if you plan to port your application in future I'll definitely consider use base sqlite3 with requests. This way I can use same database structure in my Android, iOS and BB application, and even my sql statements will be written only once(with their interface) and then I'll just need some platform specific implementation above them.
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'm writing an application which uses core data, and I use it to store a reasonable amount of user generated data.
However, the app also has a few settings ... such as the users name, age.
I'm wondering if it is better practice to store setting information in CoreData, or to simply store this information in UserDefaults?
answer acording to title: no
(added: especially not large amounts of binary data)
This is really more a question for Programmers Stack Exchange, but I give it a quick go over.
Core Data is powerful, but that power comes at a cost. It adds complexity and indirection.
I think it good to think of all your model objects separately. Figure out what makes the most sense for that object. This is not to say let chaos rule, patterns make code easier to understand. I think it's not good to shoehorn something into an existing pattern, because you want everything in your app to fit the pattern.
All that said. Unless your app is storing a list of users, I think it's better to use the simpler approach of NSUserDefaults.
Core Data is a big thing, not really simple. I would rather you to think about your data model first. If its "big" enough and you think about to expand it maybe in the future i would recommend you to use core data.
Now to my personal opinion:
I'm not really a fan of Core Data. I use mostly a SQlite-Database. If you need alot more and you are a starter checkout parse.com. Its a complete backend-service in verious languages. Check it out..
If you are saving credentials or some other protected data then this is the best practice:
iOS: How to store username/password within an app?
For temp data and most of other flat data use UserDefaults...
Use CoreData as more structural data storage, when you have lots of records or linked records, for more complex data structures in general...
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
I am starting new medium size ASP.Net MVC project. There will be 50-60 tables. IE: employee tables(assigning training etc/) , basic warehouse management,. There wont be complicated workflows also.
I am looking for the ways to reduce my development time.
Scaffolding is a good starting point but hard to manage.
I could not decide about using AngularJS SPA or not, Using angular JS reduce the development time ? Or what is the advangates of using angular ?
What is your recommandations about reducing the development time on ASP.Net MVC projects, which ways are you using to building medium size applications.
I don't know your experience with MVC, but generally speaking, I'd suggest to use a UI Framework (like Telerik, DevExpress or Aspnetawesome) because they offer plenty of example on how to organize your project. It definitly saves you time. Then which one you choose depends on your preference and budget. All 3 are good.
As for managing your data, just create a Domain project which will only contain your data access (probably repositories). For that project, it is no different from a normal C# project. You'll probably want to use Entity Framework, nHibernate or a similar ORM.
So to recap, divide your solution in at least 2 projects, one for the data and one for the UI, then use a UI framework for the MVC project and an ORM for the data access.
As for AngularJS, I would not focus on such tool unless you are really comfortable with MVC.
Pros:
On the long term, you may save some time
It is free
It is well supported and seems to be there to last
Cons:
If you are part (now or eventually) of a team, not all members will
know that tool
If you are comfortable with MVC, this will not save you significant time in my opinion. You don't become an MVC superstar
because of it
If you are not that comfortable with MVC, incorporating such tool is a bad idea. It is better to know a few tools but to use them
properly than to poorly use many of them.