|
Thank you for the Replay
Here the bulk of data fetch from data base, So the Query class in
Model and that Result set class is ViewModel, so that result set is directly
binding to view class .
Or
The Result set class also in Model , that datas are return to the
another one collection class. that collection class is binding to the
View class
Which one is correct
Thank you...
|
|
|
|
|
My thoughts,
I would prefer the second method as the View should be independent of the Model. You have all your processing and business knowledge in the Model. You expose the data to View through the ViewModel. If you directly expose the Model to the View, the View won't be flexible to be used with some other Model in future. The point is, View should not be expected to know of Model, the ViewModel is responsible for everything it needs to know and do.
|
|
|
|
|
Thank you for Replay and explanation.
|
|
|
|
|
Appreciate the reply. It would be very beneficial if you invest some time and read through the excellent MVVM resources on the net. You would get a fair picture of the pros and cons of different approaches being taken and what best suits your need.
|
|
|
|
|
give some Path related to the MVVM design pattern
( if have code more useful to me )
Thank you
|
|
|
|
|
You will get abundant resources on the net. Here are some jems Josh Smith[^], Karl[^] to get you started.
|
|
|
|
|
ABitSmart has given you good advice.
In MVVM, your View never binds to the Model - it always binds to the ViewModel. There are many reasons for this, but the biggest one is that a well designed MVVM application should be testable without the view, so you can "poke" at the ViewModel to exercise it without having to mock up a view.
Similarly, your ViewModel shouldn't access the underlying data - that's the purpose of the model. The ViewModel exists solely to map between a view and a model - it's that simple. So, why do this? Why not map the view to the model? After all, you can test a model in isolation. Well, part of this is because the model exists solely to handle data - it shouldn't provide extensive validation of values, it shouldn't perform business logic, it shouldn't receive invalid values. The ViewModel isolates the model from potentially harmful changes due to user error.
I hope this helps to clarify some of the rationale behind MVVM, and why things are done where they are.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
MVVM really simplifies Testability. I developed a similar architecture named "Part-View-Contract" for the product I was working on two years ago. Acropolis was beta and couldn't depend on its release time frame. It had a Plugin architecure, where Part(as in model),View and Contract(as in ViewModel) dependency were specified as plugin's in a plugin file and the whole UI built up dynamically from the file. The whole idea was to add/remove components by just editing the plugin file. It's been a while now :>
|
|
|
|
|
|
i have an application that was done using silverlight, in which i have used WFC services to establish the comunication with my database (SQL 2008), i have no problem running the application from visual studio 2008 but at the moment of mounting the application in my IIS 7.0 server and try to do any action that requieres communication using the WCF services, it throws me the next error:
User agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; InfoPath.2)
Fecha: Wed, 25 Mar 2009 18:06:51 UTC
Message: Unhandled Error in Silverlight 2 Application Exception during operation. The result is invalid. Check InnerException for exception details. in System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary ()
in Chat.ServiceReference.isValidCompletedEventArgs.get_Result ()
in Chat.popIniciarSesion.validation_isValidCompleted (Object sender, isValidCompletedEventArgs e)
in Chat.ServiceReference.ServicesClient.OnisValidCompleted (Object state)
Line: 1
Char: 1
Code: 0
URI: http://localhost/Chat.WEB/ChatTestPage.aspx
|
|
|
|
|
Any more useful info in the InnerException?
Miraxz wrote: at the moment of mounting the application in my IIS 7.0 server
For the WCF service app:
If you're using web.config to configure the WCF services, make sure your app.config
that works in VS isn't overwriting your web.config if you're using VS to publish the app.
Make sure your svc file(s) are correct.
Are you able to hit your WCF service(s) directly from a URL in a browser?
For the ASP.NET with Silverlight app:
How are you configuring your service client endpoints?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
i have already tried to publish it from VS and also tried to copy the web application folder and neither of them has worked.
I also tried to open the service directly from the explorer and it seems to work fine, it shows the following message : "created a service".
Concerning the EndPoints i have them in basicHTTPBinding if that's what you mean, i have searched and don't see anymore for the innerException.
in fact.. something strange occurs.. i had executed mi application from visual studio at the moment of closing it the temporal asp server that it creates doesn't close, i didn't give it importance at all first but when i tried to run again my application, that i had mounted in my IIS it worked just perfectly. I stopped the temporal asp server and again it stopped working
I see no sense because I never connect to localhost using the port that gave me my temporary server asp...
|
|
|
|
|
Miraxz wrote: when i tried to run again my application, that i had mounted in my IIS it worked just perfectly. I stopped the temporal asp server and again it stopped working
That sounds like the WCF service isn't configured correctly.
Can you post the <system.serviceModel> section of your WCF service web.config
as well as the <system.serviceModel> section of the Silverlight app's
ServiceReferences.ClientConfig file (the published ones, not the ones in the Visual Studio
project)?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hi!
in the web.config i have
<system.servicemodel>
<behaviors>
<servicebehaviors>
<behavior name="Chat.Web.ServicesBehavior">
<servicemetadata httpgetenabled="true" />
<servicedebug includeexceptiondetailinfaults="false" />
</behavior>
</servicebehaviors>
</behaviors>
<services>
<service behaviorconfiguration="Chat.Web.ServicesBehavior" name="Chat.Web.Services">
<endpoint address="" binding="basicHttpBinding" contract="Chat.Web.IServices">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.servicemodel>
in ServiceReferences.ClientConfig
<system.servicemodel>
<bindings>
<basichttpbinding>
<binding name="BasicHttpBinding_IServices" maxbuffersize="2147483647">
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basichttpbinding>
</bindings>
<client>
<endpoint address="http://localhost:49245/Services.svc" binding="basicHttpBinding">
bindingConfiguration="BasicHttpBinding_IServices" contract="ServiceReference.IServices"
name="BasicHttpBinding_IServices" />
</endpoint></client>
</system.servicemodel>
ServiceReferences.ClientConfig not found it in my application mounted at the IIS, I guess is in the .XAP of my IIS ... or... I am wrong?
thk again...
|
|
|
|
|
Miraxz wrote: I guess is in the .XAP of my IIS
I think you already found it, but just in case...
Yes, it should be
The xap is a zip file so you can extract/edit/etc. files in the xap just
like any other zip file.
Cheers,
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
thk Mark!!!
the ServiceReference.ClientConfig was configured in precisely the wrong endpoint...
<client>
<endpoint address="http://localhost:49245/Services.svc" binding="basicHttpBinding">
bindingConfiguration="BasicHttpBinding_IServices" contract="ServiceReference.IServices"
name="BasicHttpBinding_IServices" />
</endpoint></client>
Change that line "http://localhost:49245/Services.svc"
for "http://localhost/Chat/Services.svc"
really thk!!! !!! !!! !!!
|
|
|
|
|
Cool!
Miraxz wrote: http://localhost/Chat/Services.svc
Don't forget that will only work for clients on the same machine the service is
running on
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I tried it the traditional C# way of:
public String test
{
get
{
return "hi";
}
set
{
button1.Content = value;
}
}
But the WPF designer didn't seem to be able to detect it, although I could still do it programatically.
What's the proper way of declaring a new property for a control?
Thanks.
|
|
|
|
|
That Asian Guy wrote: WPF designer didn't seem to be able to detect it
It does show up in XAML. What exactly are you referring to ?
That Asian Guy wrote: What's the proper way of declaring a new property for a control?
If you want it to take part in binding(as a target specifically),styles,animations etc. you might want to implement it as a DependencyProperty[^]
|
|
|
|
|
Hi all!
I'm newbie in WPF, so sorry about stupid question.
It is possible to show combobox side by side with selected TreeViewItem?
I need something like shown in the left picture at the following link: http://www.mypicx.com/03242009/Combobox_in_TreeviewItem/
I tried to do thus:
<TreeView Name="treeView1">
<TreeViewItem Header="aaa">
<ComboBox Height="19">
<ComboBoxItem Content="111" IsSelected="True"></ComboBoxItem>
<ComboBoxItem>222</ComboBoxItem>
<ComboBoxItem Content="333"></ComboBoxItem>
</ComboBox>
<TreeViewItem Header="aaa1">
</TreeViewItem>
<TreeViewItem Header="aaa2">
</TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="bbb">
<TreeViewItem Header="bbb1" />
<TreeViewItem Header="bbb2" />
</TreeViewItem>
<TreeViewItem Header="ccc" />
</TreeView>
and the result you can see in the right picture.
Meantime I need to know, how to do this visually. Later I need to do something with SelectedItemChanged event.
Thanks in advance!
P.S. sorry about my english
|
|
|
|
|
Put the combobox in the header aswell.
<TreeView Name="treeView1">
<TreeViewItem>
<TreeViewItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock>aaa</TextBlock>
<ComboBox Height="19">
<ComboBoxItem Content="111" IsSelected="True"></ComboBoxItem>
<ComboBoxItem>222</ComboBoxItem>
<ComboBoxItem Content="333"></ComboBoxItem>
</ComboBox>
</StackPanel>
</TreeViewItem.Header>
<TreeViewItem Header="aaa1">
</TreeViewItem>
<TreeViewItem Header="aaa2">
</TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="bbb">
<TreeViewItem Header="bbb1" />
<TreeViewItem Header="bbb2" />
</TreeViewItem>
<TreeViewItem Header="ccc" />
</TreeView>
|
|
|
|
|
Great!
Thank you very much.
|
|
|
|
|
I am experiencing some problems using the trackball.cs class from 3D Tools.
I bind the class to an object surrounding my 3D viewport (because if you bind on the viewport the clickable area is only on the object if i'm not mistaken) and my object turns to face wherever I click. The camera DOES rotate when I drag the mouse, but on the mousedown event the camera resets to wherever i'm clicking which is very annoying.
Here is a link to my app which will help you understand the problem. (checked with virus total)
http://www.yourfilehost.com/media.php?cat=other&file=3121Jubei_WPF_App_3D.zip
Any insight on the issue would be appreciated!
Jubei
|
|
|
|
|
Hi
i received a request to create a Music Player with specific features ,sincerely i did not develop a Music Player in past time(just 7 months i began to develop programs ).
I try to explain correctly these features requested right now.
This Music Player will Play music in modality "Random" (first request) downloading songs from a folder and one more request is to change "Genre" of music each 4 hours for example:
- from 8am to 12am : plays "Romantic" songs;
- from 12am to 4pm : plays "Latin" songs;
- from 4pm to 8pm : plays "Rock" songs;
- from 8pm to midnight : plays "Dance" music;
My purpose is to create different song's folder for each Genre and give respective TitleName(Romantic,Latin,Rock,etc..etc..) and when start the music player will automatic download the song's folder following the time slot...i hope to be clear.
So i ask you some advice about the code how organize these features because i don't know how change the Genre Music for hours and put the music player in modality Random .
I hope don't give you bother.
Thanks in advantage.
Nice Regards
|
|
|
|
|
For the music player check the MediaElement. To make it play randomly and select songs from a folder, I would put the songs in a collection; get the length of the collection, and randomly select a song.
I use this logic to make the music player in my software work. It picks songs randomly.
|
|
|
|