With WPF I use "MVVM Light Toolkit from galasoft" but with Xamarin does it bring more functionality or simplicity to use a MVVM framework ?
And which framework is best all by being simple ?
I saw that there was "freshmvvm" but it seems that there are quite a few basic things.
With WPF I use "MVVM Light Toolkit from galasoft" but with Xamarin
does it bring more functionality or simplicity to use a MVVM framework
?
This part of the question is OK and I'll answer it, the rest is not and it is strictly prohibited here to ask which library is the best because there is no such thing as the best library.
Speaking of the above there is a major difference between WPF and Xamarin. You can't do some major things in WPF without passing some variables from the backend to the model which deifies the purpose of MVVM, and that's where MVVM libraries got in place, to resolve that. As this is unnecessary in Xamarin, they bring almost no value and a nice pile of problems.
I'll start by coding without an MVVM Framework at first, but I think I'll try FreshMvvm later. The latter seems to be the most suitable for my use.
It is true that many things are done without needing the MVVM Framework with Xamarin.Form
a very good Xamarin.form project architecture MVVM/IOC... : https://github.com/dotnet-architecture/eShopOnContainers
Related
I apologize if this is somewhat too open-ended of a question, but I'm still parsing everything about the Xamarin framework and it's hard to know even what to ask.
Everything I've read claims it's possible to, in theory, write a Xamarin app that has the same views and view controllers for both Android and iOS. The app I am developing has a very comprehensive design that uses almost no native look and feel, so I understand I will need to override the default platform's L&F. Because of this, it seems an ideal candidate to reuse everything for both device platforms, and Xamarin.Forms seems the ideal candidate.
However, I've yet to find a good example that does this. Even all of Microsoft's official examples of Xamarin.Forms (such as https://github.com/xamarin/xamarin-forms-samples/tree/master/BoxView/BasicBoxView) use ViewControllers/AXML files for iOS/Android. Huh? Isn't the point of Forms so I don't have to do that? Why are they mixing Forms and the native Xamarin in an example targeted towards Forms? Is this a sign it's not really possible?
Xamarin seems very flexible, which is great, but I'm also finding it confusing determining what will work together and what will not, plus how to determine the best solution.
Thanks.
I'm fairly new to Xamarin development, but I've started doing some experiments with Xamarin.Forms and I'm really liking it.
Now, I've discovered MVVMCross, and it sounds interesting for developing apps that have separated UIs for each platform, but I'm trying to find updated information regarding how (and if / why) it may tie in with Xamarin.Forms (mvvm's docs has a page for this, but it's empty ATM).
Is there any currently-relevant information I'm not being able to find? (all results I'm finding seem to be too old and not really helpful, please correct me if my google-fu is just not strong enough)
Well, for lack of better replies. From this blog post:
(...) it is crucial to understand that neither MvvmCross nor Xamarin.Forms is a replacement for one another. While both of them provide infrastructure modules that help developers in their mobile application projects, Xamarin.Forms is a UI technology stack that enables common XAML declarative UI implementation for target platforms; MvvmCross is a framework that enforces clear distinction between the UI elements and core logic implementation. Either of them alone or together can increase the shared amount of code in cross platform projects.
I'm thinking of game in game user interface.
Check out XNAML:
http://msmvps.com/blogs/valentin/pages/xnaml-component.aspx
http://xnaml.codeplex.com/
[The] engine is designed to run in a
pure Xna environement on all supported
device. My engine is extensible, you
can add your own controls, inherit
from base classes (such as Control or
Pane) to make your own behavior. The
compatibility with Xaml is complete.
Create your interface on Blend and
make a simple copy/past action to add
the Xaml file in your Xna project !
Extract a C# code from a Silverlight
project and just add it to your own
Xna project !
I would definitely check out the suggestions the The ZMan has put up on this post. There are lots of UI libraries in his post.
I think you should look at this list:
I remember Crazy Eddie as a good GUI builder.
Probably a bare-bones approach (but anything XNA will be) would be the ScreenManager class as used by the Microsoft code samples. A guide to using it can be found in the Game State Management documentation.
Another possibility is XPF, an XNA-compatible library that seeks to replicate some of WPF's UI architecture. I use it myself - it's simple and elegant. It will be free for non-commercial use, with commercial pricing TBA.
(I haven't been able to load the XNAML website, but I'd guess XPF and XNAML have similar goals.)
What I want to create is a Silverlight app with a few tabs/modules that will all be separate DLLs.
I see PRISM has the Shell/Module concepts that seem directed towards doing UI and I find a nice demo (showing how to search digg/twitter).
But it sounds like MEF will be included in VS2010 so I would like to go with that option.
Can anyone somehow clearly explain the differences? (I am not a advanced programmer)
MEF and Prism serve two very distinct goals.
Prism is basically guidance for designing composite applications - where you have a shell and "regions" that are dynamically assigned, and integrated. It includes an IoC container (Unity) that it uses for it's injection.
MEF is a dependency injection framework - it's main goal is to "fill in" depedencies at runtime for an application. In this respect, it's filling the same goal as Unity does within Prism (and, in fact, you could pretty easily rework Prism to use MEF instead of Unity).
Prism fills a broader scope, in some respects, but is also really limited to GUI applications. MEF is just doing one thing (Dep. Injection), but geared to be more general purpose, for any type of application.
As for the lifetime of these products -there is no answer here, but this is kind of how they're being developed:
Prism was developed by the Patterns and Practices team. The goal isn't to necessarily make software, but to provide guidance. As such, they update (although somewhat infrequently) the Prism library and sample, but Prism isn't a core part of the framework shipped by Microsoft. It's really a third party library (even though MS funds a lot of it, most of the P&P people aren't MS FTE).
MEF, from the blog posts, sounds like it is planned to be integrated into the framework, and be used directly inside of MS projects. As such, it's getting heavy development, directly from Microsoft, and being used in their products.
I, personally, have read through the Prism documentation (and have the book), and have gone through the samples. It is very helpful to understand how to break apart an application, but it really is guidance more than a complete, usable framework. The samples are very good at doing what they're designed to do - educate an architect in how to design a composite application.
If your goal is to just keep a clean separation of concerns in a silverlight application, I'd focus more on learning MVVM than necessarily just using Prism.
If you want to use MEF, there are other good options. For example, the WPF Application Framework is an entire MVVM framework built on top of using MEF, and fairly nice.
Basically, MEF is a general-purpose extensibility framework:
If you are building extensible applications, extensible frameworks and application extensions, then MEF is for you.
whereas Prism is mostly for building GUIs:
The Composite Client Application Guidance is designed to help you more easily build modular Windows Presentation Foundation (WPF) and Silverlight client applications.
So MEF and Unity are basically the same...
Well, not exactly. MEF is more focused on extensions which aren't known at compile time, while IOC containers generally focus on dependencies which are known at compile time. The top answer to this question gives a good explanation of the differences.
Yes. Check these two posts for more:
http://blogs.msdn.com/gblock/archive/2009/12/02/mef-and-prism-to-be-or-not-to-be.aspx
http://blogs.msdn.com/dphill/archive/2009/12/09/prism-and-mef.aspx
I have to do a quite big project in J2ME for school.
I didn't used 'till now J2ME, so are there J2ME MVC frameworks
for which I can find books or at least very good online tutorials?
MVC is what I'm looking for because we have to do unit testing and
I'm familiar with MVC from ASP.Net MVC, Rails and Grails.
So, any good framework to use with this project?
We are developing this project for Blackberry cells.
With Java you don't really need a framework, creating MVC-based apps is just about using the principles correctly, so having controllers dictating the response to any action and so on. I'd think about using Observers to help by having your views observe your models and controllers observe your views (to get events and so on.) Unit-testing this then becomes quite simple.
If only, the fact is that every handset is very different - its extremely difficult to build an app that spans all the major J2ME-capable handsets that looks half way decent by following the basic principles. Which is why we end up doing things like using sprite based fonts (ugh). I don't think I've ever worked a mobile project using J2ME where we've managed to stick to just the standard J2ME (and, we try very hard). Even things that should be standard, like reading a JSON feed from a server, persistent storage or even really simple things like sprite rotation is really not very standard at all (yes, I'm looking at you RIM). And, then throw a requirement for Android into the mix and you're done.
I've used Polish, and its really very good. Commercial license is not cheap (but worth it), but for a school project its free. Flash (cough) is also a good alternative too. These days, personally, I find my projects need to span iPhone (Objective-C), Android (Java), Nokia (J2ME) and Blackberry (pseudo-J2ME) and it gets real tricky to not use a commercial framework (or roll your own, if you've the time and inclination). I'm open to ideas for frameworks that span all those platforms?
I'm not sure anything like this exist, as mentioned by previous poster, you just follow the principles of the pattern. However, look at J2ME Polish, it's a very nice framework which makes your life with mobile java much easier. Particularly strong features they offer is the usage of CSS for displays - this gives you pretty good "V" part in MVC pattern.