Search Results

Search found 9516 results on 381 pages for 'duplicate resource'.

Page 119/381 | < Previous Page | 115 116 117 118 119 120 121 122 123 124 125 126  | Next Page >

  • PostSharp, Obfuscation, and IL

    - by simonc
    Aspect-oriented programming (AOP) is a relatively new programming paradigm. Originating at Xerox PARC in 1994, the paradigm was first made available for general-purpose development as an extension to Java in 2001. From there, it has quickly been adapted for use in all the common languages used today. In the .NET world, one of the primary AOP toolkits is PostSharp. Attributes and AOP Normally, attributes in .NET are entirely a metadata construct. Apart from a few special attributes in the .NET framework, they have no effect whatsoever on how a class or method executes within the CLR. Only by using reflection at runtime can you access any attributes declared on a type or type member. PostSharp changes this. By declaring a custom attribute that derives from PostSharp.Aspects.Aspect, applying it to types and type members, and running the resulting assembly through the PostSharp postprocessor, you can essentially declare 'clever' attributes that change the behaviour of whatever the aspect has been applied to at runtime. A simple example of this is logging. By declaring a TraceAttribute that derives from OnMethodBoundaryAspect, you can automatically log when a method has been executed: public class TraceAttribute : PostSharp.Aspects.OnMethodBoundaryAspect { public override void OnEntry(MethodExecutionArgs args) { MethodBase method = args.Method; System.Diagnostics.Trace.WriteLine( String.Format( "Entering {0}.{1}.", method.DeclaringType.FullName, method.Name)); } public override void OnExit(MethodExecutionArgs args) { MethodBase method = args.Method; System.Diagnostics.Trace.WriteLine( String.Format( "Leaving {0}.{1}.", method.DeclaringType.FullName, method.Name)); } } [Trace] public void MethodToLog() { ... } Now, whenever MethodToLog is executed, the aspect will automatically log entry and exit, without having to add the logging code to MethodToLog itself. PostSharp Performance Now this does introduce a performance overhead - as you can see, the aspect allows access to the MethodBase of the method the aspect has been applied to. If you were limited to C#, you would be forced to retrieve each MethodBase instance using Type.GetMethod(), matching on the method name and signature. This is slow. Fortunately, PostSharp is not limited to C#. It can use any instruction available in IL. And in IL, you can do some very neat things. Ldtoken C# allows you to get the Type object corresponding to a specific type name using the typeof operator: Type t = typeof(Random); The C# compiler compiles this operator to the following IL: ldtoken [mscorlib]System.Random call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle( valuetype [mscorlib]System.RuntimeTypeHandle) The ldtoken instruction obtains a special handle to a type called a RuntimeTypeHandle, and from that, the Type object can be obtained using GetTypeFromHandle. These are both relatively fast operations - no string lookup is required, only direct assembly and CLR constructs are used. However, a little-known feature is that ldtoken is not just limited to types; it can also get information on methods and fields, encapsulated in a RuntimeMethodHandle or RuntimeFieldHandle: // get a MethodBase for String.EndsWith(string) ldtoken method instance bool [mscorlib]System.String::EndsWith(string) call class [mscorlib]System.Reflection.MethodBase [mscorlib]System.Reflection.MethodBase::GetMethodFromHandle( valuetype [mscorlib]System.RuntimeMethodHandle) // get a FieldInfo for the String.Empty field ldtoken field string [mscorlib]System.String::Empty call class [mscorlib]System.Reflection.FieldInfo [mscorlib]System.Reflection.FieldInfo::GetFieldFromHandle( valuetype [mscorlib]System.RuntimeFieldHandle) These usages of ldtoken aren't usable from C# or VB, and aren't likely to be added anytime soon (Eric Lippert's done a blog post on the possibility of adding infoof, methodof or fieldof operators to C#). However, PostSharp deals directly with IL, and so can use ldtoken to get MethodBase objects quickly and cheaply, without having to resort to string lookups. The kicker However, there are problems. Because ldtoken for methods or fields isn't accessible from C# or VB, it hasn't been as well-tested as ldtoken for types. This has resulted in various obscure bugs in most versions of the CLR when dealing with ldtoken and methods, and specifically, generic methods and methods of generic types. This means that PostSharp was behaving incorrectly, or just plain crashing, when aspects were applied to methods that were generic in some way. So, PostSharp has to work around this. Without using the metadata tokens directly, the only way to get the MethodBase of generic methods is to use reflection: Type.GetMethod(), passing in the method name as a string along with information on the signature. Now, this works fine. It's slower than using ldtoken directly, but it works, and this only has to be done for generic methods. Unfortunately, this poses problems when the assembly is obfuscated. PostSharp and Obfuscation When using ldtoken, obfuscators don't affect how PostSharp operates. Because the ldtoken instruction directly references the type, method or field within the assembly, it is unaffected if the name of the object is changed by an obfuscator. However, the indirect loading used for generic methods was breaking, because that uses the name of the method when the assembly is put through the PostSharp postprocessor to lookup the MethodBase at runtime. If the name then changes, PostSharp can't find it anymore, and the assembly breaks. So, PostSharp needs to know about any changes an obfuscator does to an assembly. The way PostSharp does this is by adding another layer of indirection. When PostSharp obfuscation support is enabled, it includes an extra 'name table' resource in the assembly, consisting of a series of method & type names. When PostSharp needs to lookup a method using reflection, instead of encoding the method name directly, it looks up the method name at a fixed offset inside that name table: MethodBase genericMethod = typeof(ContainingClass).GetMethod(GetNameAtIndex(22)); PostSharp.NameTable resource: ... 20: get_Prop1 21: set_Prop1 22: DoFoo 23: GetWibble When the assembly is later processed by an obfuscator, the obfuscator can replace all the method and type names within the name table with their new name. That way, the reflection lookups performed by PostSharp will now use the new names, and everything will work as expected: MethodBase genericMethod = typeof(#kGy).GetMethod(GetNameAtIndex(22)); PostSharp.NameTable resource: ... 20: #kkA 21: #zAb 22: #EF5a 23: #2tg As you can see, this requires direct support by an obfuscator in order to perform these rewrites. Dotfuscator supports it, and now, starting with SmartAssembly 6.6.4, SmartAssembly does too. So, a relatively simple solution to a tricky problem, with some CLR bugs thrown in for good measure. You don't see those every day! Cross posted from Simple Talk.

    Read the article

  • How to compare Shared versus VPS hosting? [closed]

    - by Itai
    Possible Duplicate: How to find web hosting that meets my requirements? While shopping around for a new hosting service, I have find that I have no idea how to decide between shared hosting (which I presently use for all my sites) service or go towards virtual (VPS) hosting which are always much more expensive. The real question is How to determine when shared hosting is no longer an option for a site? PS: This question covers some similar ground but is too specific for my needs.

    Read the article

  • What defines a language as a scripting language? [closed]

    - by Mathew Foscarini
    Possible Duplicate: What is the main difference between Scripting Languages and Programming Languages? I'd like to know what defines a language as a scripting language compared against other programming languages. Some possible scripting languages might include AutoCad LISP, Linux Bash, DOS Batch, Javascript or ActionScript in Flash. Where is the distinction made that makes a language a scripting language? Are there a set of clearly define rules to classify it as such?

    Read the article

  • Simple project - make a 3D box tumble and fall to the ground [closed]

    - by Dominic Bou-Samra
    Possible Duplicate: Resources to learn programming rigid body simulation Hi guys, I want to try learning rigid-body dynamic simulation. I have done a fluid and cloth simulation before, but never anything rigid. My maths knowledge is limited in that I don't know the notation that well. Are there any good cliff-notes, tutorials, guides on how I would accomplish a simple task like this? I don't want a super complex pdf that's only a little relevant. Thanks.

    Read the article

  • How to Downgrade Packages on Ubuntu

    - by Chris Hoffman
    Ubuntu’s Update Manager keeps your packages at the latest version, but occasionally a new package version may not work properly. You can downgrade an installed package and lock it at a specific version to prevent it from being updated. This is particularly useful when you run into an updated package with a regression – a bug that prevents things from working properly. How to Banish Duplicate Photos with VisiPic How to Make Your Laptop Choose a Wired Connection Instead of Wireless HTG Explains: What Is Two-Factor Authentication and Should I Be Using It?

    Read the article

  • How to prevent forum spam [closed]

    - by whamsicore
    Possible Duplicate: Make your site anti-bot? I want to prevent spam from overrunning my website, but neither do I want to make the user type in captcha each time they make a post. Any suggestions? Context: My website allows anonymous users to make leave comments on the fly. Comments are randomly displayed, so the more spam = higher chance of it being shown. Need to prevent spam but don't want to have each comment require captcha input.

    Read the article

  • Cannot install apt-fast

    - by Ronald
    During installation of apt-fast the screen looped and after a while I closed the window. How can I fix it? sudo dpkg --configure -a Setting up apt-fast (1.7.2-1~precise1) ... debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable dpkg: error processing apt-fast (--configure): subprocess installed post-installation script returned error exit status 1 Errors were encountered while processing: apt-fast

    Read the article

  • Linux needs to do more for programmers

    <b>Cyber Cynic: </b>"Much as I hate to admit it, Microsoft does some things better, much better, than Linux. Number one with a bullet is how Microsoft helps programmers and ISVs (independent software vendors). MSDN (Microsoft Software Developer Network) is a wonderful online developer resource. Linux has had nothing to compare."

    Read the article

  • I'm looking to learn how to apply traditional animation techniques to my graphics engine - are there any tutorials or online-resources that can help?

    - by blueberryfields
    There are many traditional animation techniques - such as blurring of motion, motion along an elliptical curve rather than a straight line, counter-motion before beginning of movement - which help with creating the appearance of a realistic 3D animated character. I'm looking to incorporate tools and short cuts for some of these into my graphics engine, to make it easier for my end users to use these techniques in their animations. Is there a good resource listing the techniques and the principles behind them, especially how they might apply to a graphics engine or 3D animation?

    Read the article

  • test post, not public

    test test test more test more test more test more test This site is a resource for asp.net web programming. It has examples by Peter Kellner of techniques for high performance programming...Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

    Read the article

  • How does Ubuntu create the guest session? [closed]

    - by tarantinofan
    Possible Duplicate: How do I change the guest session defaults In Ubuntu 10.04, I am able to create a guest session from the indicator-applet-session applet menu. When it is active, this session has its home folder in /tmp, an entry in /etc/passwd and /etc/shadow, and so on. This temporary guest user and its session exists only while it is active. I want to know how this guest session is created, because I want to modify it a bit.

    Read the article

  • What is the cost of custom made 2D game sprites? [closed]

    - by Michael Harroun
    Possible Duplicate: How much to pay for artwork in an indie game? I am looking for sprites similar in style to those of Final fantasy Tactics, but with a much higher resolution that will work well for both a browser and an iPhone. In terms of animations: Walking in 4 directions Swinging with 1 hand Some sort of "casting animation" (depending on cost I may use the 1 hand swing with a wand). Taking a hit Kneeling Fallen How much would something like that cost per sprite?

    Read the article

  • Resources relating to Java EE and Scala

    - by Ant Kutschera
    Are there any good sites / blogs / books / articles on using Java EE together with Scala? Or indeed articles saying that it should not be done. Many Scala resources talk about using Akka and Lift. Akka solves a different domain problem than Java EE. I don't know Lift, but I assume its geared towards the web end of Java EE and doesn't replace app server containers which provide transactions, security, scalability, resource management, reliability, etc. (all those things which Java EE markets itself as being good at).

    Read the article

  • i can't get spotify, Please i really need help [closed]

    - by Prince
    Possible Duplicate: How do I fix a “Problem with MergeList” error when trying to do an update? I tried to get spotify review and this is what it keeps saying sudo apt-get install spotify-client Reading package lists... Error! E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/apt/lists/extras.ubuntu.com_ubuntu_dists_quantal_main_i18n_Translation-en E: The package lists or status file could not be parsed or opened

    Read the article

  • Are there any preexisting maps for a Minecraft-like level I could use in my engine?

    - by Rishav Sharan
    I am working on a tiny cube-based engine like Minecraft. I was wondering if there is a way for me to get large blocky terrain in a text format that I can use for rendering on my engine? I don't want to start on procedural generation now, I just want a resource where I can get the coord list for a pretty looking terrain. Alternatively, is it possible for me to parse the Minecraft world files and use that data to generate terrain/buildings in my code?

    Read the article

  • APress Deal of the Day - 19/June/2011

    - by TATWORTH
    Today's $10 Apress Deal of the Day from Apress at http://www.apress.com/ is Visual C# 2010 Recipes - A Problem-Solution Approach "When you are facing a Visual C# 2010 problem, this book likely contains a recipe providing the solution—or at least points you in the right direction. Even if you are simply looking to broaden your knowledge of the .NET Framework class library, Visual C# 2010 Recipes is the perfect resource to assist you."

    Read the article

  • Thunderbird is preferred mail app, messaging menu still loads evolution [closed]

    - by user9069
    Possible Duplicate: Is there a way to add Mozilla Thunderbird to the messaging menu? Hi, After installing ubuntu I setup my email in evolution, which is fine but on balance I prefer Thunderbird so I installed and set that up. Under preferred applications I have set the mail to Thunderbird, but when I click on the icon in the top right (the mail envelope) and select mail it still loads evolution. Is there a way to switch this to Thunderbird?

    Read the article

  • How can I keep current with Python coding style?

    - by vartec
    I've been using Python since version 2.2. I do pick up new language constructs like for example with statement or dictionary/set comprehensions. However, I've realized that even though I'm being consistent with PEP-8, for existing constructs I'm using old style, rather than new style (for example except Exception, e instead of except Exception as e). Is there a resource which would have either most current style guide, or even better a list of changes in Python's coding style?

    Read the article

  • Shared Hosting Provider [closed]

    - by Garry
    Possible Duplicate: How to find web hosting that meets my requirements? I've been with Dreamhost for 5 years but the amount of downtime I have experienced over the last 6 months has been outrageous. As of now (2012) which hosting provider would you recommend? Most of my sites are small to medium readership blogs running WordPress. I've been looking at Inmotion and Hostgator. Reliability is paramount. Thanks

    Read the article

  • Simple question about what methodology to pick for my information system [closed]

    - by Neenee Kale
    Possible Duplicate: I need help on methodologies for information system project I will be implementing a student information system for parents for my final year project. I have to choose the best suitable methodology which i could use through out my project. could you please recommend me any methodologies i could use please. Also i would like to ask is Agile system development a methodology?

    Read the article

  • multilingual mobile site and google seo [closed]

    - by kollo
    Possible Duplicate: How should I structure my urls for both SEO and localization? What's the preferred SEO compliance for a mobile website that is multilingual ? I have - web: en: http://mysite.com fr: http://fr.mysite.com es: http://es.mysite.com mobi: http://m.mysite.com Should I use http://m.fr.mysite.com for my mobile french version ? Nothing is specified on google blog for mobile : http://googlewebmastercentral.blogspot.co.uk/2011/12/new-markup-for-multilingual-content.html

    Read the article

  • APress Deal of the Day 4/Jan/2011 - Pro SQL Server 2008 Mirroring

    - by TATWORTH
    Todays Apress $10 deal of the day at http://www.apress.com/info/dailydeal is "Pro SQL Server 2008 Mirroring is your complete guide to planning, using, deploying, and maintaining database mirroring as a high-availability option. Mirroring protects you by maintaining one or more duplicate copies of your database for use in the event the primary copy is damaged. It is a key component of any production-level, high-availability solution. This book covers the full spectrum of database mirroring, taking you from the planning phase through the implementation to the maintenance phase and beyond."

    Read the article

< Previous Page | 115 116 117 118 119 120 121 122 123 124 125 126  | Next Page >