|
Goalie35 wrote: My company is looking into beginning to integrate Silverlight into some of our upcoming web projects soon
Okay that is nice, but have you ask the question: 'Why are we thinking of doing this?
Every successful application must fist use the correct technology to be successful. Ie. I wouldn't use JAVA as my technology on a windows installation when I can use .NET. Reason being I only need to support one operating system, .NET is better suited for Windows and I gain nothing using Java.
Goalie35 wrote: I want to get some opinions from those who are already experienced in developing in it
Well, I enjoy developing under both WPF and Silverlight. They are both way easier to develop under then the competing technologies. And as Microsoft's track record shows they keep making it easier to develop with. For example the edition of SketchFlow (a rapid proto typing development system) integrated into the new version of Expression Blend (The Designer Studio usied to develop Silverlight and WPF).
Goalie35 wrote: From what I've read, Silverlight seems to be slowly picking up marketshare
Check it out on Google Trends:
Silverlight on Google Trends[^]
Goalie35 wrote: but what do you see for the future of Silverlight?
It will only keep getting better as more people keep using and downloading it. I think it's the way of the future. I really like the new stuff they added with .NET 4 and Silverlight 3. I made some requirements in an application I was to develop as an MS ISV. All the missing items in my design were added to Silverlight 3. I think it's going to continue to grow and gain support from the community.
Goalie35 wrote: Just trying to weigh our options at this point before we dive into it.
I don't have a crystal ball for you. I would google ScottGu and find out what he has released on it. Usually they are pretty tight lipped about it. SketchFlow is really going to save many people a lot of time in the development process. I had a hand in giving my opinion on that also.
I would make a matrix. Create a dream list of what you want and need both now and in the future. Then measure and weigh it against other products.
XAML has already suceeded SVG and Adobie no longer supports it. SVG is a technology like XAML but requires JavaScript to be used to make it really useful as a Rich End Point.
|
|
|
|
|
Hi all.
What we have:
I have a listbox binded to the CollectionViewSource.
What I need:
Allow a user to select any block of text in the listbox to copy it like it was in a richtextbox.
I wonder if I can realize it someway. I don't think it's the best idea to use richtextbox for holding items.
The DataTemplate for listbox ItemTemplate:
<DataTemplate x:Key="ChatMessageTemplate" DataType="{x:Type bl:Message}"><br />
<Grid Name="gMessages"> <br />
<Grid.RowDefinitions><br />
<RowDefinition Height="14"/><br />
<RowDefinition Height="*"/><br />
</Grid.RowDefinitions> <br />
<TextBlock Name="tbHeader" Margin="4,2,0,0" Grid.Row="0" FontFamily="Segoe UI" FontSize="10" Foreground="Black" FontWeight="Bold" TextAlignment="Left" VerticalAlignment="Top" HorizontalAlignment="Left"><br />
<TextBlock.Text><br />
<MultiBinding StringFormat="{}{0} ({1})"><br />
<Binding Path="Author.Name" /><br />
<Binding Path="CreationDate" /> <br />
</MultiBinding><br />
</TextBlock.Text> <br />
</TextBlock> <br />
<!--{Binding ElementName=gMessages, Path=ActualWidth}--><br />
<!--HorizontalAlignment="Left" TextAlignment="Left"--> <br />
<TextBlock Width="300" Name="tbText" Grid.Row="1" Margin="4,0,0,0" FontFamily="Segoe UI" Text="{Binding Path=Text, Mode=OneWay}" FontSize="10" Foreground="Black" TextWrapping="Wrap" HorizontalAlignment="Stretch"/><br />
</Grid><br />
<br />
<DataTemplate.Triggers><br />
<DataTrigger Binding="{Binding Path=Author.ID, Converter={StaticResource isCurrentUserConverter}}" Value="false"><br />
<Setter TargetName="tbHeader" Property="Foreground" Value="Blue" /><br />
</DataTrigger><br />
</DataTemplate.Triggers><br />
</DataTemplate>
|
|
|
|
|
|
Thanks a lot. Looks like a solution.
|
|
|
|
|
Hi frds...I am working with Asp.Net and c#, now i installed Expression web 3 for for learning some basics of WPF or Silverlight...Can anybody give me a suggestion for starting tutorials which suited me as developer.
|
|
|
|
|
|
Thanks a lot
|
|
|
|
|
Hi,
I'm working on extensibility of my Silverlight application and would like to load a dll on the client side and invoke methods based on an interface, can it be done? Any links to good articles?
I would prefer to not include it in my build of my application, ie the client can upload extensions, and then invoke them, so its not a referenced library...
____________________________________________________________
Be brave little warrior, be VERY brave
|
|
|
|
|
Adriaan Davel wrote: would like to load a dll on the client side and invoke methods based on an interface, can it be done?
Yes.
Given a Stream to an assembly DLL, you can use the
AssemblyPart.Load method to load the assembly into
the current app domain and get an Assembly object.
Then you can use Assembly.CreateInstance to create
instances of classes in the assembly.
Stream sourcestream = ...;
AssemblyPart assemblypart = new AssemblyPart();
Assembly assembly = assemblypart.Load(sourcestream);
IMyInterface myinterfaceobject = assembly.CreateInstance("MyNamespace.SomeClassThatInheritsFromIMyInterface") as IMyInterface;
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hi Mark,
Thanks for the reply. Loading the assembly and creating an instance is easy enough, my challenge is getting the assembly to the client side in the best possible way as it will not ship with the .xap file, any ideas around that?
____________________________________________________________
Be brave little warrior, be VERY brave
|
|
|
|
|
Adriaan Davel wrote: my challenge is getting the assembly to the client side in the best possible way as it will not ship with the .xap file, any ideas around that?
Maybe try downloading it like you would any resource.
For example, Using the WebClient class' OpenReadAsync() method
to download the assembly DLL, you'll get a stream in the
OpenReadCompleted event which you can use in the sample code
I posted.
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I've played with OpenReadAsync and it works well, but it means that I have to download the assembly everytime, which I'm trying to avoid...
____________________________________________________________
Be brave little warrior, be VERY brave
|
|
|
|
|
Adriaan Davel wrote: it means that I have to download the assembly everytime, which I'm trying to avoid...
The XAP file is downloaded every time too, along with every
resource not included in the XAP file. Cached versions will be
used if available.
The only option you have without user intervention is
isolated storage.
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thanks, right now I'm trying to understand MEF, else Isolated Storage is probably the right option...
____________________________________________________________
Be brave little warrior, be VERY brave
|
|
|
|
|
Here's a version that searches the assembly for the first
instance of a class that implements your interface, and if
found, creates an instance of that class:
IMyInterface myinterfaceobject = null;
Stream sourcestream = ...;
AssemblyPart assemblypart = new AssemblyPart();
Assembly assembly = assemblypart.Load(sourcestream);
foreach (Type t in assembly.GetTypes())
{
if (null != t.GetInterface("IMyInterface", false))
{
myinterfaceobject = assembly.CreateInstance(t.FullName) as IMyInterface;
break;
}
}
if (myinterfaceobject != null)
{
}
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I'm also looking at MEF for this, still not sure if it will work for this (or even how it works )
____________________________________________________________
Be brave little warrior, be VERY brave
|
|
|
|
|
Hi,
currently I'm testing a really small WPF app that uses resources
from external sources and at first it appeared to work fine. Now,
magically, it's not even able to load a resource from the same assembly.
The following code:
Uri uri = new Uri("thewinda.xaml", UriKind.Relative);
Window w = Application.LoadComponent(uri) as Window;
causes a XamlParseException with the message:
Cannot create instance of 'thewinda' defined in assembly 'WpfTemplateTry, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Exception has been thrown by the target of an invocation. Error in markup file 'thewinda.xaml' Line 1 Position 9.
One of its inner exceptions says:
The calling thread must be STA, because many UI components require this.
This is quite weird as "thewinda.xaml" is a file added to the same project as my application.
I've read this error can be connected with threading/async issues, but I have no idea,
how I could apply this hint to my case.
This is the body of "thewinda.xaml":
<Window x:Class="WpfTemplateTry.thewinda"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
</Window>
|
|
|
|
|
Are you doing the load on a separate thread?
What is the build type set to on the thewinda.xaml file?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thanks for your response.
I've managed to overcome the problem, but rather by changing my approach than by understanding what's actually wrong.
I was not loading the mentioned file on a separate thread explicitly. Maybe the system was doing something alike without letting me know.
Anyway, I tried to run that WPF application with a custom Main() method. (I didn't alter the auto-generated entry point file, but created my own basing on WinForms experience.) It was like that:
Main()
{
DerivedAppClass app = new DerivedAppClass();
app.Run();
}
DerivedAppClass was located in an external dll as an extension of the WPF's Application class. It's obvious, but seems to be not that straightforward in WPF. After I started following the default scheme(App.xaml + App.xaml.cs), it's working as expected.
|
|
|
|
|
New threads are MTA by default, but if you need STA you can
specify STA.
On your custom entry point function you can use
STAThreadAttribute:
[STAThread]
Main()
{
DerivedAppClass app = new DerivedAppClass();
app.Run();
}
On dynamically created threads you can use the SetApartmentState()
method:
mynewthread.SetApartmentState(ApartmentState.STA);
mynewthread.Start(...);
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Oh, excellent remark. LoadComponent() is working flawlessly from now on.
Thank you for your help and time.
|
|
|
|
|
I am really new for WPF, I am trying to create Radiobuttons,checkbox and textbox control at run time.
Is it possible to create controls at runtime in WPF,if yes then please let me know good link or sample code.
Thanks for taking your time!
I am using C# and VisualStudio2008.
|
|
|
|
|
Sr...Frank wrote: Is it possible to create controls at runtime in WPF
Of course. Elements declared in markup (XAML) are created
just like any other CLR objects.
Sr...Frank wrote: ,if yes then please let me know good link or sample code
using System.Windows.Controls;
...
RadioButton radiobutton = new RadioButton();
CheckBox checkbox = new CheckBox();
TextBox textbox = new TextBox();
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
How to bound them with windows form in WPF?
|
|
|
|
|
Sr...Frank wrote: How to bound them with windows form in WPF?
I'm not sure what you're asking here...
If you're using Windows Forms, why use WPF controls?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|