I m trying to understand better the two frameworks therfore i m trying to figure out the similarities and differences between FIteagle framework and OpenIot because both of the frameworks includes the same aims, the first one provides a testbeds environments which provide different resources to manage and communicate with and the second one provides the possiblity to connect to different sensors within a database cloud and it provide the ability to communicate with the sensors and to aply some IoT services on it. Does anyone has an idea about the two frameworks ?
Not being familiar with any of the above frameworks, I would say that eventually all IoT frameworks will focus on virtual markets in order to deliver industry-specific services. Consider transportation and smart grids - those are completely separate industries. for example, in transportation - geo analytics is much more important than in smart grids where meters tend to have fixed locations.
For those who are still interesting and making research in this area and looking for a detailed comparative and understanding of the two frameworks, I published a paper in this matter which contain a specific and a complete understanding of both frameworks. Since the paper is not uploaded yet to the internet Please get in touch with me in case you want to read it.
I will provide a link here as soon as I upload it.
Related
I am hearing this phrase for a long time. I read few articles also still I am not able to understand what does it actually mean. I always see they give some framework name. But I want to understand what it means and why it came. Can anyone help me here?
Framework agnostic in general means exactly that i.e. agnostic or independent of any framework.
Since you have not mentioned the context here I assume that you want to know about it from the point of view of JavaScript and front end web development.
To give you an example, companies or product teams often deal with the following priorities
Often in large companies there are multiple teams working on various modules or sections of the front end of their product. These teams are often autonomous and self steering meaning they choose their own Javascript framework to do front end development.
However, being a company you would want to make sure the user experience is same across all the different modules and sections of your product irrespective of what each team chooses to work with.
In order to balance these two competing priorities, the concept of framework agnostic web component libraries comes in handy. To make it work as a company you encourage your team to develop a library of web components that are independent of any framework such as Vue, Angular , React. The teams can then use these components interchangeably no matter what framework they use.
Here are some links that should help
https://dev.to/stefannieuwenhuis/3-reasons-why-i-went-framework-agnostic-and-why-you-should-do-that-too-2o37
https://micro-frontends.org/#the-dom-is-the-api
https://j11y.io/javascript/a-framework-agnostic-model/
xyz is 'Framework agnostic' simply means that xyz does not depend on any framework. It is a great and much required idea that focuses on building libraries/components which are not dependent on any specific framework for their implementation, rather to develop a generic stuff to cater everyone.
Here is a brilliant article to know more about the core idea behind it.
https://micro-frontends.org/#the-dom-is-the-api
I spent short time studing Habanero and i found it good approach for making Enterprise Application in a really short period of time.
The pattern witch Habanero use is "Active Record" as it's developers say.
My questions are:
There any similar application like Habanero witch fully support Domain
Driven Design by determining aggregate roots, entities and value objects
Is it right decision to use such tools in big organizations
Does it worth training our team on such a tool
thank you
Framework support for Domain Driven Design is quite different from frameworks supporting data driven applications. Such framework should increase the productivity of developers that works with an ubiquitous language that evolves with the business and that is learned by a domain-expert.
They should not face concepts like aggregates, root, value objects because they are just modelling concepts, conceptual tools, but ways to ease the development process. Thus a framework exposing abstract classes or interfaces named AggregateRoot, Entity or ValueObject is fundamentally broken. It doesn't provides any real value to an application, just useless indirections.
However:
There are a few frameworks designed to support domain driven design, listed here. Moreover, I'm developing one by myself based on previous experiences that worked very well
It depends, obviosly. For example we used all of the Epic's modeling patterns with success.
We used some "home made" framewoks too, and some of them proved to really increase productivity. However, such frameworks (if useful) always have steep learning curves and it depends very much on how much reliable the software have to be and what are the developers skills.
It depends on the framework, on the complexity of the business (if you don't need a domain expert to understand it, you don't need DDD) and on the developers, too. I faced successful stories and huge failures with different frameworks in different contexts. I've also had a conference that faced the topic (you can see the slides here).
Im currently working on an iphone app project. The app is based on a simple chat function between 2 or more people who have registered to the app. Iv outsourced the project. The developers working on the project would like to use Smartfox servers for the Client and Server side communication. They said its easier to manage and setup and is more efficient.
However Im not sure what the disadvantages are of using the Smartfox framework and whether I should just ask them to develop/code the client and server communication rather than using this framework.
Please let me have your suggestions on this issue.
Thank you
The usual response is: it depends on your budget, your time and needs.
If you just want to make a chat without advanced features, you may make it yourself. I tell "may" because if already made solutions exist why reinvented the wheel?! (except for the price).
However if you envisage to have a lot of users, some cool features or other you should consider a third solution (like Smartfoxserver, Electroserver, or other). They provide robust solutions with a good documentation. Moreover they offered a tons of features, new one appear regularly, there are updated, etc. Below a small non-exhaustive list of pros and cons of using Smartfox rather than a homemade solution, in my opinion:
Advantages compared with a homemade solution:
Gain time
Robust solution
Performance
Multi-platform
Scalability (in time and concurrent users)
Deployment
Network engine fully functional (TCP/UDP, HTTP Tunneling, etc.)
Low learning curve
Low maintenance costs
Tons of features (in your case Buddy Lists, Moderation, Filters, etc.)
etc.
Disadvantages:
Price (for > 100 CCU) (it takes a long time to develop a homemade solution though + maintenance cost)
Many features that you will not use
I hope it'll help you in your reflection.
I am about to start building an app that will be used across all platforms. I will using monotouch and monodriod so I can keep things in .net
I'm a little lazy so I want to be able to reuse as much code as possible.
Lets say I want to create an application that stores contact information. e.g. Name & Phone number
My application needs to be able to retrieve data from a web service and also store data locally.
The MVVM pattern looks like the way to go but im not sure my approach below is 100% correct
Is this correct?
A project that contains my models
A project that contains my views,local storage methods and also view models which I bind my views to. In this case there would be 3 different projects based on the 3 os's
A data access layer project that is used for binding to services and local data storage
Any suggestions would be great.
Thanks for your time
Not specifically answering your question, but here are some lazy pointers...
you can definitely reuse a lot of code across all 3 platforms (plus MonoWebOS?!)
reusing the code is pretty easy, but you'll need to maintain separate project files for every library on each platform (this can be a chore)
MVVM certainly works for WP7. It's not quite as well catered for in MonoTouch and MonoDroid
some of the main areas you'll need to code separately for each device are:
UI abstractions - each platform has their own idea of "tabs", "lists", "toasts", etc
network operations - the System.Net capabilities are slightly different on each
file IO
multitasking capabilities
device interaction (e.g. location, making calls etc)
interface abstraction and IoC (Ninject?) could help with all of these
The same unit tests should be able to run all 3 platforms?
Update - I can't believe I just stumbled across my own answer... :) In addition to this answer, you might want to look at MonoCross and MvvmCross - and no doubt plenty of other hybrid platforms on the way:
https://github.com/slodge/MvvmCross
http://monocross.net (MVC Rather then Mvvm)
Jonas Follesoe's cross platform development talk: Has to be the most comprehensive resource out there at the moment. He talks about how best to share code and resources, abstract out much of the UI and UX differences, shows viable reusable usage of MVVM across platforms and nice techniques for putting together an almost automated build. (yes, that includes a way for you to compile you monotouch stuff on Visual Studio)
Best of all he has a available source code for the finished product and for a number of the major component individually placed in its own workshop project and a 50 + page pdf detailing the steps to do so.FlightsNorway on github
IMO the only thing missing is how best to handle local data storage across all platforms. In which case I would direct you to Vici Cool Storage an ORM that can work with WP7, MonoTouch and (while not officially supported) MonoDroid.
*Disclaimer* The site documentation isn't the most updated but the source code is available. (Because documentation is Kriptonite to many a programmer)
I think the easiest way to write the code once and have it work on all three platforms will probably be a web-based application. Check out Untappd for example.
You can start by looking at Robert Kozak's MonoTouch MVVM framework. It's just a start though.
MonoTouch MVVM
Update: This question was inspired by my larger quest for mapping ontologically the whole software systems architecture enchilada. I've written a blog post about it, and hopefully it will help clarify what I'm after.
Many, many, many frameworks and stacks that's event-driven have too much variation for my little head to get around. Is there somewhere some resources that defines the outline of a reasonable Application Event Model, what events there are, and what triggers are most common?
I've got my own framework with a plugin and event-driven architecture, but I want to open-source it, and as such would like to make it closer to some common ground as not to alienate people.
So to clarify; this is for an application, meaning setting up the environment, the dependencies, the data sources (like databases), and being a MVC framework setting up the model, the view, launching controllers / actions, and in the GUI various stages of the interface (header, content, columns, etc.).
Ideas? Thoughts? Pointers? (And I've made it language and platform neutral at this point)
I read your blog entry, which btw I found an extremely interesting read, but... this question does not seem to reflect the broadness of the issue you are presenting there.
What you are after is very abstract and theoretical. What I mean to say is that if you tie any of those ideas to actual technology you will find yourself 'stuck' with it. This is why many of us are reluctant to use any framework. Especially the 'relabeled' products suddenly claiming to conform to the trend. We choose mainly on the basis of what appears to be needed to reach a predetermined result.
Frameworks (or tools in general) that target the application architecture domain distinguish themselves primarily by the amount of responsibility they are designed to take on. Spring for example only deals with the concept of decoupling and is therefore easily adopted and useable in many situations. The quality of any framework is expressed in terms of how well the designers of such frameworks were able to keep their products within the boundaries of that responsibility. Some front-to-end products will do exactly the opposite, code generators being among the 'worst' of them.
To answer your question at the top of this page, I do not think there is a framework that does what you want at this time and I do not think there is a single model of how applications (should) work. Keep in mind though that the application architecture domain deals with technology more than it does with concepts. In other words: If it works and meets the requirements, then you're pretty much done.
That said, you might find something of value in agent-based systems.
Heh. Most developers pick the major framework they like the tools for and stick with it. That's usually the winning strategy. I sympathize with your desire not to marry a single vendor.
Keep in mind however, that in developing your own framework, you're going to end up tied to a single vendor anyway. :-)
Is there somewhere some resources that defines the outline of a reasonable
Application Event Model, what events there are, and what triggers are most common?
I don't think so.
From what I see, there are two kinds of models out there: those with a real framework with which you can make a working data entry dialog, and abstract meta-meta-models that are optimized for modeling themselves.
Try surveying a few current frameworks that have good documentation online and cross-reference the major terminology in a spreadsheet. It's an interesting exercise.
I'd have a look at Spring for Java, and the XT Framework Spring module (http://springmodules.dev.java.net/docs/reference/0.9/html/xt.html), which apparently supports event-driven architecture, as starting points. Spring has an MVC framework (inc. convention-based routing to controllers), db configuration (for Hibernate, particularly), plus full dependency injection support. There's also a mechanism in Spring for modularising your web apps, called Spring Slices. And it can be integrated with Jersey for building RESTful apps.
(Unfortunately, I tried to provide links to everything, but this place only lets new users post a single link. So you'll have to do some googling :) )