|
2.0, 3.0 and 3.5 use the same 2.0 CLR. 3.0 and 3.5 are just a bunch of extensions on top of 2.0.
4.0 is a completely new CLR. There are 2 versions of the .NET Framework now. There is the full, heavyweight version that everyone is used to seeing and now there is a Client Profile version which is much lighter in weight and only includes the components that are used the most across the majority of applications.
You can read more about it, and what's included and what's not, here[^].
|
|
|
|
|
You need all the three runtimes installed (unless you specify the runtime using the runtime tag in your application configuration file).
.Net 4 is actually a big change over the others as a new version of the CLR has been released along with it.
modified on Tuesday, May 4, 2010 1:43 AM
|
|
|
|
|
i tried to install a .dll file to gac using gacutil.exe. i did it successfully , but i don't see that dll
in the gac folder.i want to know whether it copied to gac from the source when we install it using gacutil, if not what happens.
|
|
|
|
|
For GAC Commands and other details you can check following links.
http://msdn.microsoft.com/en-us/library/ex0ss12c%28VS.80%29.aspx[^]
You can confirm whether your assembly is really added to GAC or not by traversing following path
which opens GAC Space where all the assemblies (added to GAC) reside.
%WINDIR%\assembly
You can also add your assembly to GAC by directly drag your assembly and drop it in GAC Space.
Hope this will help!
Jinal Desai - LIVE
|
|
|
|
|
Make sure your dll is strongly named before trying to put it in the GAC.
|
|
|
|
|
thank you for your help, i found my dll in the assembly.
|
|
|
|
|
How add launch condition for my deployment to insure that the required registry tree exists and that AutoCAD 2008 or higher version is installed on the client machine?
I am using registry key search and set the launche condition.
In search Target machine node i have added node via Add registry search
in this node of property window i set the property like this.
Name :Search for AutoCAD 2008 RegistryEntry
Property:R17.1
RegKey:HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R17.1\ACAD-6001:409
Root:vsdrrHKCU
Value:AutoCAD 2008
Then in Launch Condition node via right click i did Add Launcd Condtion
and in this property window i have set the value like this.
Name :AutoCAD 2008 Condition
Condition: 17.1
Installurl:
Message:AutoCAD 2008 is not installed in your machine.
After succesfuly builded this setup if run the set up icon the error message
comes out "AutoCAD 2008 is not installed in your machine" where AutoCAD 2008 is alredy installed.
Can anyone guide me plz where i am wrong here.
with regards
tarak
|
|
|
|
|
how to apply jquery effect to dynamic data in asp.net
|
|
|
|
|
You need to reference the jquery javascript in your application. Beyond that, you need to provide more information as to what effects you are trying to apply.
"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
|
|
|
|
|
Hi,
I'm trying to include some user credentials for accessing a remote
webservice. The remote location requires that I use Basic
authentication(RFC2617), which means, from browsing around, I need to include
the user name and password in the HTTP header, but I'm not quite sure
how to access the HTTP header that is sent with the webservice soap
message request.
Can anyone help?
Thanks in Advance.
Kunal Tilak
|
|
|
|
|
|
Very useful. A link to a website requiring registration before you can view the article.
Maybe google result 2[^] would have been more use, as it is accessible to anyone.
|
|
|
|
|
|
for safety reasons the lock object should be private, so nobody can mess with it. That is all there is to it.
|
|
|
|
|
|
all is fine if the outside world cannot touch the lock object, so if you have say a return _collection; somewhere, then the first is no good. Same for the second if you were to have a way to export _collectionLock somehow.
It is good practice to have a private member that is used for locking and locking only. That makes verification a bit easier.
|
|
|
|
|
|
Collin Jasnoch wrote: Why does it need an object just for locking?
it does not. I said "good practice".
|
|
|
|
|
|
Here[^] is 800+ pages of good practice. You can ignore it, and maybe get away with it; or you can learn to appreciate it, but that will take time.
|
|
|
|
|
|
Its a good practice because in most cases you have more than one object you have to sync over threads.
Now if you just use, lets say some list, you have to sync. Its possible to sync everything with the reference to the list object. After 5 months of work, your costumer says he needs some extras. Now how many work do you have if this extras not only need to sync this list but also some other variables (in most cases controlled by this list, but not in all) . Do you really want to lock the list every time you need to access some of this variables?
Thats why its an good practice, cause in the scenario above you do not have to change anything in your locking behavior, if you use an extra object.
Greetings
Covean
|
|
|
|
|
Thanks for sharing!
|
|
|
|
|
Because there are situations where you need one lock to cover operations on multiple objects.
There are also cases where you will be returning the object that you put the lock on. Since you just passed the object to an outside caller, the caller can now try to lock on that object as well, but it'll hang since there's already a lock there.
To avoid problems such as these, you would normally use a seperate lock object than the objects your are actually working with.
|
|
|
|
|
In addition to Luc's postings.
In your example it really doesn't matter if you use the collection itself or create an object for locking.
But how about this example (I just typed it here, not tested, hope you got what I mean):
private object m_objVideoPlayerSync = new object();
private List<string> m_lstVideos = new List<string>();
private EnumPlaybackState m_playbackState = EnumPlaybackState.Stopped;
private void AddVideoToList(string szVideoFileName)
{
lock(m_objVideoPlayerSync)
{
m_lstVideos.Add(szVideoFileName);
}
}
private void PlayNextVideo()
{
lock(m_objVideoPlayerSync)
{
string szVideo = m_lstVideos[0];
m_lstVideos.RemoveAt(0);
m_playbackState = EnumPlaybackState.Playback;
StartPlayBack();
}
}
private void StopVideo()
{
lock(m_objVideoPlayerSync)
{
StopPlayBack();
m_playbackState = EnumPlaybackState.Stopped;
}
}
In the function StopVideo() locking the list of videos would be crude, cause you never do anything on this list, but you need some object to lock.
But doing 2 locks in PlayNextVideo() like
string szVideo = string.Empty;
lock(m_lstVideos)
{
szVideo = m_lstVideos[0];
m_lstVideos.RemoveAt(0);
}
lock(m_objVideoPlayerSync)
{
m_playbackState = EnumPlaybackState.Playback;
StartPlayBack();
}
raises the chance that two threads, both starting the function PlayNextVideo() at the same, would play the same video.
In my first example this would never happen!
Here are some guidelines from MSDN how to use and not to use locks:
In general, avoid locking on a public type, or instances beyond your code's control. The common constructs lock (this), lock (typeof (MyType)), and lock ("myLock") violate this guideline:
lock (this) is a problem if the instance can be accessed publicly.
lock (typeof (MyType)) is a problem if MyType is publicly accessible.
lock(“myLock”) is a problem since any other code in the process using the same string, will share the same lock.
Best practice is to define a private object to lock on, or a private static object variable to protect data common to all instances.
I hope this helps you to understand locking a little bit better.
Greetings
Covean
|
|
|
|