Search Results

Search found 12541 results on 502 pages for 'secure the world'.

Page 221/502 | < Previous Page | 217 218 219 220 221 222 223 224 225 226 227 228  | Next Page >

  • Microsoft Prepares 64 GB Zune HD for Upcoming Release

    To hopefully increase its market share in the ever-competitive world of MP3 players Microsoft has announced that it will release the new 64 GB version of the Zune HD on April 12 2 1 . The 64 GB version of the Zune HD provides much more storage capacity than the previously-released 16 GB and 32 GB versions of the player that were released to the public in September of 2 9.... Business Productivity Online Suite From $10 per user per month. Includes a 12-month subscription. Min 5 seats.

    Read the article

  • Myths about Coding Craftsmanship part 2

    - by tom
    Myth 3: The source of all bad code is inept developers and stupid people When you review code is this what you assume?  Shame on you.  You are probably making assumptions in your code if you are assuming so much already.  Bad code can be the result of any number of causes including but not limited to using dated techniques (like boxing when generics are available), not following standards (“look how he does the spacing between arguments!” or “did he really just name that variable ‘bln_Hello_Cats’?”), being redundant, using properties, methods, or objects in a novel way (like switching on button.Text between “Hello World” and “Hello World “ //clever use of space character… sigh), not following the SOLID principals, hacking around assumptions made in earlier iterations / hacking in features that should be worked into the overall design.  The first two issues, while annoying are pretty easy to spot and can be fixed so easily.  If your coding team is made up of experienced professionals who are passionate about staying current then these shouldn’t be happening.  If you work with a variety of skills, backgrounds, and experience then there will be some of this stuff going on.  If you have an opportunity to mentor such a developer who is receptive to constructive criticism don’t be a jerk; help them and the codebase will improve.  A little patience can improve the codebase, your work environment, and even your perspective. The novelty and redundancy I have encountered has often been the use of creativity when language knowledge was perceived as unavailable or too time consuming.  When developers learn on the job you get a lot of this.  Rather than going to MSDN developers will use what they know.  Depending on the constraints of their assignment hacking together what they know may seem quite practical.  This was not stupid though I often wonder how much time is actually “saved” by hacking.  These issues are often harder to untangle if we ever do.  They can also grow out of control as we write hack after hack to make it work and get back to some development that is satisfying. Hacking upon an existing hack is what I call “feeding the monster”.  Code monsters are anti-patterns and hacks gone wild.  The reason code monsters continue to get bigger is that they keep growing in scope, touching more and more of the application.  This is not the result of dumb developers. It is probably the result of avoiding design, not taking the time to understand the problems or anticipate or communicate the vision of the product.  If our developers don’t understand the purpose of a feature or product how do we expect potential customers to do so? Forethought and organization are often what is missing from bad code.  Developers who do not use the SOLID principals should be encouraged to learn these principals and be given guidance on how to apply them.  The time “saved” by giving hackers room to hack will be made up for and then some. Not as technical debt but as shoddy work that if not replaced will be struggled with again and again.  Bad code is not the result of dumb developers (usually) it is the result of trying to do too much without the proper resources and neglecting the right thing that needs doing with the first thoughtless thing that comes into our heads. Object oriented code is all about relationships between objects.  Coders who believe their coworkers are all fools tend to write objects that are difficult to work with, not eager to explain themselves, and perform erratically and irrationally.  If you constantly find you are surrounded by idiots you may want to ask yourself if you are being unreasonable, if you are being closed minded, of if you have chosen the right profession.  Opening your mind up to the idea that you probably work with rational, well-intentioned people will probably make you a better coder and it might even make you less grumpy.  If you are surrounded by jerks who do not engage in the exchange of ideas who do not care about their customers or the durability of the code you are building together then I suggest you find a new place to work.  Myth 4: Customers don’t care about “beautiful” code Craftsmanship is customer focused because it means that the job was done right, the product will withstand the abuse, modifications, and scrutiny of our customers.  Users can appreciate a predictable timeline for a release, a product delivered on time and on budget, a feature set that does not interfere with the task(s) it is supporting, quick turnarounds on exception messages, self healing issues, and less issues.  These are all hindered by skimping on craftsmanship.  When we write data access and when we write reusable code.   What do you think?  Does bad code come primarily from low IQ individuals?  Do customers care about beautiful code?

    Read the article

  • What are the processes of true Quality assurance?

    - by user970696
    Having read that Quality Assurance (QA) is focused on processes (while Quality Control (QC) is focused on the product), the books often mentions QA is the verification process - doing peer reviews, inspections etc. I still tend to think these are also QC as they check intermediate products. Elsewhere I have read that QA activity is e.g. choosing the right bugtracker. That sounds better to me in terms of process improvement. The question that close-voting person obviously missed is pretty clear: What are the activities that true QA should perform? I would appreciate the reference as I work on my thesis dealing with all these discrepancies and inconsistencies in the software quality world.

    Read the article

  • How to Align Gun with Bullets

    - by Shane
    I have a top-down 2D shooter. I have an image of a player holding a gun, that rotates to face the mouse. Please note that the gun isn't a separate image tethered to the player, but rather part of the player. Right now, bullets are created at the player's x and y. This works when the player is facing the right way, but not when they rotate. The bullets move in the right direction, but don't come from the gun. How can I fix this? TL;DR: When the player rotates, bullets don't come from gun. public void fire() { angle = sprite.getRotation(); System.out.println(angle); x = sprite.getX(); y = sprite.getY(); Bullet b = new Bullet(x, y, angle); Utils.world.addBullet(b); }

    Read the article

  • Training a 'replacement', how to enforce standards?

    - by Mohgeroth
    Not sure that this is the right stack exchange site to ask this of, but here goes... Scope I work for a small company that employs a few hundred people. The development team for the company is small and works out of visual foxpro. A specific department in the company hired me in as a 'lone gunman' to fix and enhance a pre-existing invoicing system. I've successfully taken an Access application that suffered from a lot of risks and limitations and converted it into a C# application driven off of a SQL server backend. I have recently obtained my undergraduate and am no expert by any means. To help make up for that I've felt that earning microsoft certifications will force me to understand more about .net and how it functions. So, after giving my notice with 9 months in advance, 3 months ago a replacement finally showed up. Their role is to learn what I have been designing to an attempt to support the applications designed in C#. The Replacement Fresh out of college with no real-world work experience, the first instinct for anything involving data was and still is listboxes... any time data is mentioned the list box is the control of choice for the replacement. This has gotten to the point, no matter how many times I discuss other controls, where I've seen 5 listboxes on a single form. Classroom experience was almost all C++ console development. So, an example of where I have concern is in a winforms application: Users need to key Reasons into a table to select from later. Given that I know that a strongly typed data set exists, I can just drag the data source from the toolbox and it would create all of this for me. I realize this is a simple example but using databinding is the key. For the past few months now we have been talking about the strongly typed dataset, how to use it and where it interacts with other controls. Data sets, how they work in relation to binding sources, adapters and data grid views. After handing this project off I expected questions about how to implement these since for me this is the way to do it. What happened next simply floors me: An instance of an adapter from the strongly typed dataset was created in the activate event of the form, a table was created and filled with data. Then, a loop was made to manually add rows to a listbox from this table. Finally, a variable was kept to do lookups to figure out what ID the record was for updates if required. How do they modify records you ask? That was my first question too. You won't believe how simple it is, all you do it double click and they type into a pop-up prompt the new value to change it to. As a data entry operator, all the modal popups would drive me absolutely insane. The final solution exceeds 100 lines of code that must be maintained. So my concern is that none of this is sinking in... the department is only allowed 20 hours a week of their time. Up until last week, we've only been given 4-5 hours a week if I'm lucky. The past week or so, I've been lucky to get 10. Question WHAT DO I DO?! I have 4 weeks left until I leave and they fully 'support' this application. I love this job and the opportunity it has given me but it's time for me to spread my wings and find something new. I am in no way, shape or form convinced that they are ready to take over. I do feel that the replacement has the technical ability to 'figure it out' but instead of learning they just write code to do all of this stuff manually. If the replacement wants to code differently in the end, as long as it works I'm fine with that as horrifiying at it looks. However to support what I have designed they MUST to understand how it works and how I have used controls and the framework to make 'magic' happen. This project has about 40 forms, a database with over 30 some odd tables, triggers and stored procedures. It relates labor to invoices to contracts to projections... it's not as simple as it was three years ago when I began this project and the department is now in a position where they cannot survive without it. How in the world can I accomplish any of the following?: Enforce standards or understanding in constent design when the department manager keeps telling them they can do it however they want to Find a way to engage the replacement in active learning of the framework and system design that support must be given for Gracefully inform sr. management that 5-9 hours a week is simply not enough time to learn about the department, pre-existing processes, applications that need to be supported AND determine where potential enhancements to the system go... Yes I know this is a wall of text, thanks for reading through me but I simply don't know what I should be doing. For me, this job is a monster of a reference and things would look extremely bad if I left and things fell apart. How do I handle this?

    Read the article

  • Issues while trying to install Xsane

    - by Sebastian
    :) I am sort of new in the world of Linux. I installed Zorin OS and I am very happy with it. My only problem is that I would like to be able to use my scanner. My Kodak printer works fine, but the scanner is not detected; therefore, I am trying to install Xsane. The issue remains, every time that I try to install it, and error message comes up saying; "Package dependencies cannot be resolved" What can I do? thanks!

    Read the article

  • Static GitHub powered blog engine

    - by Daniel Cazzulino
    Blog engines were the new &quot;cool thing to write&quot; after the fever of writing a new DI framework was over. It was kinda like the new &quot;hello world++&quot; example. Almost every single engine uses a database of some sort to keep posts and comments. Almost every one is not leveraging the web as a consequence ;) I was intrigued by the possibilities that a flexible and general-purpose hosting solution like Github could offer for a static blog engine: basically keeping plain markdown/HTML/razor/WLW/whatever files that through a publish/build time process generate static files that pass for a &quot;blog engine&quot;. GitHub even supports custom domain names, so why not? Such an &quot;engine&quot; would have a number of benefits: Plain CSS styling Arbitrary JavaScript Leverage the web infrastructure (caching, CDNs, etc.) ...Read full article

    Read the article

  • What are the preferred documentation tools for the major programming languages?

    - by Dave Peck
    I'm interested in compiling a list of major programming languages and their preferred documentation toolsets. To scope this a bit: The exact structure of the answer may vary from language to language, but there appear to be two aspects common to all languages: (1) in-code syntax for documentation, and (2) documentation generators that make use of said syntax. There are also cases where generators are used independent of code. For example, tutorial-style documentation is common in the Python world and is often disconnected from underlying code. Many languages have multiple commonly-used documentation strategies and tool chains, and I'd love to capture this. Finally, there are cross-language tools like Doxygen that also have some traction and would be worth noting here. Here are some obvious target languages to start with: Python, Ruby, Java, C#, PHP, Objective-C, C/C++, Haskell, Erlang, Scala, Clojure If this question catches on, I'll try and keep this section updated with the most recent list. Thanks!

    Read the article

  • Oracle OpenWorld Update -- Scaling Infrastructure to Meet Business Growth: A Coherence Customer Panel

    - by Ruma Sanyal
    Today being the Monday of OpenWorld is packed with great content and sessions. I have already blogged about the general session by Ajay Patel and the classic Cloud Application Foundation roadmap and strategy session by Mike Lehmann. But we will be remiss if we don’t list the customer panel for Coherence. Come listen to customers spanning a wide variety of industries such as consumer goods, railways, and agricultural biotechnology discuss how Oracle Coherence enables business growth, cost cutting, and improved customer experience. You will learn how Coherence helps scale services cost-effectively, improve performance, and assure service availability in both on-premises and cloud deployments. Each customer will present details of their specific use cases, benefits and war stories of developing, deploying and managing some of the largest data grid deployments in the world. The session will be moderated by Cameron Purdy, VP of Development, and Mr. Coherence himself J For more information about this and other Coherence sessions, review the Coherence Focus on document. Details: Monday, 10/1, 12:15 p.m. - 1:15 p.m., Moscone South Room 309

    Read the article

  • JavaOne 2012 LAD Session: The Future of JVM Performance Tuning

    - by Ricardo Ferreira
    Hi folks. This year, together with the Oracle Open World Latin America, happened another edition of the JavaOne Latin America, the more important event of Java for the developers community. I would like to share with you the slides that I've used in my session. The session was "The Future of JVM Performance Tuning" and the idea was to share some knowledge about JVM enhancements that Oracle implemented in Hotspot about performance, specially those ones related with GC ("Garbage Collection") and SDP ("Sockets Direct Protocol"). I hope you enjoy the content :)

    Read the article

  • GDD-BR 2010 [1H] VC Panel: Entrepreneurship, Incubation and Venture Capital

    GDD-BR 2010 [1H] VC Panel: Entrepreneurship, Incubation and Venture Capital Speakers: Don Dodge, Eric Acher, Humberto Matsuda, Alex Tabor Track: Panels Time slot: H [17:20 - 18:05] Room: 1 Startups can be built and funded anywhere in the world, not just Silicon Valley. Venture Capital investors are investing in startups globally, and funding incubators to hatch their future investments. Find out how you can get into an incubator, or funded by a Venture Capitalist or Angel Investors. Learn from examples in the USA and hear from local VC investors in this panel discussion. Get your questions answered by real investors. From: GoogleDevelopers Views: 6 0 ratings Time: 37:39 More in Science & Technology

    Read the article

  • ARM TechCON 2013 presentation: Java SE 8 Compact Profiles

    - by hinkmond
    I'll be giving a technical session presentation at ARM TechCON 2013 this Wed. 10/30 @ 11:30am. So if you are in Santa Clara, Calif. come over to the conference and hear me present on this fun-filled topic! See: Java SE 8 Compact Profiles Here's a quote: Java SE 8 has a new Compact Profiles feature that allows for three new specification–compliant subsets of Java SE 8 APIs. Compact Profiles will enable the creation of Java SE 8 runtimes that support configurations that previously were possible only with the CDC version of J2ME... It's an important topic in today's mad, mad world of Embedded Development. You never want to develop in Java for small devices with your Compact Profiles. It's just not what you'd want! Hinkmond

    Read the article

  • SOA Galore: New Books for Technical Eyes Only

    - by Bob Rhubart
    In my part of the world the weather has taken its seasonal turn toward the kind of cold, damp, miserable stuff that offers a major motivation to stay indoors. While I plan on spending some of that indoor time working my way through the new 50th anniversary James Bond box set, I will also devote some time to improving my mind rather than my martini-mixing skills by catching up on my reading. If you're in a similar situation, you might want to spend some of your time  with these new technical books written by community members: Oracle SOA Suite 11g Administrator's Handbook by Ahmed Aboulnaga and Arun Pareek. Oracle BPM Suite 11g: Advanced BPMN Topics by Mark Nelson and Tanya Williams Oracle SOA Suite 11g Developer's Cookbook by Antony Reynolds and Matt Wright (Coming in December; available for pre-order).

    Read the article

  • Boat passing under a bridge in a 2D tile based RTS

    - by aleguna
    I'm writing a 2D tile based RTS. And I want to add a 'pseudo 3D' feature to it - bridges over the rivers. I havent't start any coding yet, just trying to think how it fits the collision detection model. A boat passing under the bridge and a unit moving over the bridge will eventually occupy the same cell on the map. How to prement them from colliding? Is there a common approach to solve such a problem? Or I need to implement a 3D world to do this?

    Read the article

  • Pivotal change in strategy at Microsoft

    - by Sahil Malik
    SharePoint, WCF and Azure Trainings: more information Drop whatever you are doing, and watch this video. Here is what Microsoft’s new CEO Satya Nadella said, .. If there is anything that would define windows, I think of the cloud as being in a heterogeneous device world. It will not be limited to Windows. I think that is perhaps the biggest pivotal change in our strategy. We absolutely think of building services and infrastructure in the cloud that will be across Android, iOS and Windows, and we will differentiate windows family with user experience that is consistent across all these devices .. Read full article ....

    Read the article

  • How do I set up hosting a domain name at home with Apache?

    - by Andrew McIntyre
    I am relatively new to Ubuntu Linux and I am struggling to figure out the basic set-up of hosting a domain name at home with Apache2. I understand that you have to change your IP from dynamic to a static IP Address but I am not sure how you achieve that step. I am looking for some assistance on this on how to enable self signing certificates, make the domain name resolve on the Internet from hosting the website on the web server, enabling protected directories and the basic commands of accessing the directory where the website files can be uploaded and available on the World Wide Web.

    Read the article

  • how do we clear new programming concept

    - by Sarang
    In IT world, new latest technologies are generated daily. Every time, every programmer need to learn something & then clear it conceptually to implement. All new technologies are built on some basic concepts. But, these technologies have their own area of development & a developer is supposed to grasp it from very basic. This seems like starting from very beginning to reach till current. What is the best & fast way to learn and grasp a new developed technology ?

    Read the article

  • Erlang web frameworks survey

    - by Zachary K
    (Inspired by similar question on Haskel) There are several web frameworks for Erlang like Nitrogen, Chicago Boss, and Zotonic, and a few more. In what aspects do they differ from each other? For example: features (e.g. server only, or also client scripting, easy support for different kinds of database) maturity (e.g. stability, documentation quality) scalability (e.g. performance, handy abstraction) main targets Also, what are examples of real-world sites / web apps using these frameworks? EDIT: Starting a bounty in hopes that it will get some conversation going

    Read the article

  • inforsacom ist Oracle EMEA Database Partner of the Year – wir gratulieren!

    - by A&C Redaktion
    Der Jubel war groß auf der Oracle Open World 2012 in San Francisco: inforsacom ist EMEA Specialized Database Partner of the Year! Bei der Verleihung betonte David Callaghan, Senior Vice President EMEA A&C, die Auszeichnung gehe an die spezialisierten Partner, „die höchste Level an Innovation und Leistungsfähigkeit in ihren Spezialgebieten erzielt haben.“ Die inforsacom Informationssysteme GmbH mit Sitz in Deutschland entwickelt und liefert seit 1997 integrierte IT-Lösungen im Data-Center. Die Auszeichnung des Platinum Partners ist die Krönung einer langjährigen erfolgreichen Zusammenarbeit mit Oracle. Kunden schätzen das Unternehmen als Experten für Infrastruktur-Lösungen und -Services im Bereich Rechenzentren. Neben dem Fokus auf Oracle Datenbank-Technologien ist inforsacom auch auf das Hardware- und Engineered Systems Portofolio spezialisiert. inforsacom hat als „trusted advisor“ immer den größtmöglichen Kundennutzen im Blick – das zahlt sich aus. Herzlichen Glückwunsch! Hier ist die Pressemeldung zur Award-Verleihung und das sind die Gewinner in den sechs weiteren Kategorien: Middleware: egabi Solutions (Ägypten) Applications: Accenture (Niederlande) Industry: Mannai Trading Corporation (Katar) Oracle Accelerate for Midsize Companies: Inoapps Ltd (United Kingdom) Oracle on Oracle: Capgemini Espania, S.L. (Spanien) Server and Storage Systems: Mannai Trading Corporation (Katar)

    Read the article

  • inforsacom ist Oracle EMEA Database Partner of the Year – wir gratulieren!

    - by A&C Redaktion
    Der Jubel war groß auf der Oracle Open World 2012 in San Francisco: inforsacom ist EMEA Specialized Database Partner of the Year! Bei der Verleihung betonte David Callaghan, Senior Vice President EMEA A&C, die Auszeichnung gehe an die spezialisierten Partner, „die höchste Level an Innovation und Leistungsfähigkeit in ihren Spezialgebieten erzielt haben.“ Die inforsacom Informationssysteme GmbH mit Sitz in Deutschland entwickelt und liefert seit 1997 integrierte IT-Lösungen im Data-Center. Die Auszeichnung des Platinum Partners ist die Krönung einer langjährigen erfolgreichen Zusammenarbeit mit Oracle. Kunden schätzen das Unternehmen als Experten für Infrastruktur-Lösungen und -Services im Bereich Rechenzentren. Neben dem Fokus auf Oracle Datenbank-Technologien ist inforsacom auch auf das Hardware- und Engineered Systems Portofolio spezialisiert. inforsacom hat als „trusted advisor“ immer den größtmöglichen Kundennutzen im Blick – das zahlt sich aus. Herzlichen Glückwunsch! Hier ist die Pressemeldung zur Award-Verleihung und das sind die Gewinner in den sechs weiteren Kategorien: Middleware: egabi Solutions (Ägypten) Applications: Accenture (Niederlande) Industry: Mannai Trading Corporation (Katar) Oracle Accelerate for Midsize Companies: Inoapps Ltd (United Kingdom) Oracle on Oracle: Capgemini Espania, S.L. (Spanien) Server and Storage Systems: Mannai Trading Corporation (Katar)

    Read the article

  • How to choose a development method?

    - by Martin
    There are many academic/industrial researchs about various development methods (Scrum, XP, waterfall, ect.), telling us how to do it right and stuff. But I never saw something that suggest how to choose a method, what will be better for a given project. I know that what the developers are used to is an very important aspect. But lets say that I am assembling a new group from scratch, and that every programmer in the world is willing to work with me. :) What aspects of the project should I consider to decide between Scrum, XP, TDD, ect.? Or is that an entirely human thing, regardless of what is being developed? I said that all programmers are available, but you may comment they're knowledge about the domain, or other characteristics in the answers. E.g. "If you chose to hire people with no domain knowledge, MethodX is better than MathodY, beacause ...." is a completely welcomed answer.

    Read the article

  • Rainbows and Unicorns at the Devoxx OTN Hack Fest

    - by Tori Wieldt
    At the OTN Hack Fest at Devoxx, several developers did their first "hello world" with the Internet of Things (IoT). They had fun and built basic applications with Java Embedded, Raspberry Pi and Leap Motion controllers. Experts Yara & Vinicius Senger and Geert Bevin provided the basics and support. Geert Bevin did a bit of hacking too. Check out this video to see what he came up with a short amount of time: &amp;amp;amp;amp;lt;span id=&amp;amp;amp;amp;quot;XinhaEditingPostion&amp;amp;amp;amp;quot;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;lt;/span&amp;amp;amp;amp;gt; Learn more about Java Embedded at the Oracle Technology Network. 

    Read the article

  • Oracle Usability Advisory Board, Europe

    - by ultan o'broin
    Earlier this month, I attended the first Oracle Usability Advisory Board meeting in Europe (held in Oracle's big campus in Thames Valley Park, Reading, in the UK). My main interest here of of course was to listen to customer's experiences and requirements in the area of user experience, focusing in on user assistance natch, but also, given my background in the translation and internationalization world, to watch out for issues in those areas that impact on the UX. I met some great people there and took away some powerful UX thoughts about where might go with the area of language in the UI, localizations, and other cultural issues. One area of special interest to me is language as part of the user experience. By language I mean terminology and style of wordings you see in interfaces and help. Are they reflective of how people really work and are used to. What is its relationship to competitiveness and productivity. An area rich in research potential for UX. Debra Lilley Fujitsu (Oracle partner), who also attended, has some good coverage of the event here. On to the next one!

    Read the article

  • It's Time to Chart Your Course with Oracle HCM Applications - Featuring Row Henson

    - by jay.richey
    Total human capital costs average nearly 70% of operating expenses. There's never been more pressure on HR professionals to deliver mission-critical programs to retain rising stars, develop core performers, and cut costs from workforce operations. Join Row Henson, Oracle HCM Fellow, and Scott Ewart, Senior Director of Product Marketing, to find out: What real-world strategies HR practitioners and experts are prioritizing today to optimize their investment in people Why nearly two-thirds of PeopleSoft and E-Business Suite HCM customers have chosen to upgrade to the latest releases and where Oracle's strategic product roadmaps are headed How Fusion HCM will introduce a new standard for work and innovation - not only for the HR professional, but for every single employee and manager in your business Date: January 20th, 2011 at 9:00 PST / 12:00 EST Register now!

    Read the article

  • Visual Tree Enumeration

    - by codingbloke
    I feel compelled to post this blog because I find I’m repeatedly posting this same code in silverlight and windows-phone-7 answers in Stackoverflow. One common task that we feel we need to do is burrow into the visual tree in a Silverlight or Windows Phone 7 application (actually more recently I found myself doing this in WPF as well).  This allows access to details that aren’t exposed directly by some controls.  A good example of this sort of requirement is found in the “Restoring exact scroll position of a listbox in Windows Phone 7”  question on stackoverflow.  This required that the scroll position of the scroll viewer internal to a listbox be accessed. A caveat One caveat here is that we should seriously challenge the need for this burrowing since it may indicate that there is a design problem.  Burrowing into the visual tree or indeed burrowing out to containing ancestors could represent significant coupling between module boundaries and that generally isn’t a good idea. Why isn’t this idea just not cast aside as a no-no?  Well the whole concept of a “Templated Control”, which are in extensive use in these applications, opens the coupling between the content of the visual tree and the internal code of a control.   For example, I can completely change the appearance and positioning of elements that make up a ComboBox.  The ComboBox control relies on specific template parts having set names of a specified type being present in my template.  Rightly or wrongly this does kind of give license to writing code that has similar coupling. Hasn’t this been done already? Yes it has.  There are number of blogs already out there with similar solutions.  In fact if you are using Silverlight toolkit the VisualTreeExtensions class already provides this feature.  However I prefer my specific code because of the simplicity principle I hold to.  Only write the minimum code necessary to give all the features needed.  In this case I add just two extension methods Ancestors and Descendents, note I don’t bother with “Get” or “Visual” prefixes.  Also I haven’t added Parent or Children methods nor additional “AndSelf” methods because all but Children is achievable with the addition of some other Linq methods.  I decided to give Descendents an additional overload for depth hence a depth of 1 is equivalent to Children but this overload is a little more flexible than simply Children. So here is the code:- VisualTreeEnumeration public static class VisualTreeEnumeration {     public static IEnumerable<DependencyObject> Descendents(this DependencyObject root, int depth)     {         int count = VisualTreeHelper.GetChildrenCount(root);         for (int i = 0; i < count; i++)         {             var child = VisualTreeHelper.GetChild(root, i);             yield return child;             if (depth > 0)             {                 foreach (var descendent in Descendents(child, --depth))                     yield return descendent;             }         }     }     public static IEnumerable<DependencyObject> Descendents(this DependencyObject root)     {         return Descendents(root, Int32.MaxValue);     }     public static IEnumerable<DependencyObject> Ancestors(this DependencyObject root)     {         DependencyObject current = VisualTreeHelper.GetParent(root);         while (current != null)         {             yield return current;             current = VisualTreeHelper.GetParent(current);         }     } }   Usage examples The following are some examples of how to combine the above extension methods with Linq to generate the other axis scenarios that tree traversal code might require. Missing Axis Scenarios var parent = control.Ancestors().Take(1).FirstOrDefault(); var children = control.Descendents(1); var previousSiblings = control.Ancestors().Take(1)     .SelectMany(p => p.Descendents(1).TakeWhile(c => c != control)); var followingSiblings = control.Ancestors().Take(1)     .SelectMany(p => p.Descendents(1).SkipWhile(c => c != control).Skip(1)); var ancestorsAndSelf = Enumerable.Repeat((DependencyObject)control, 1)     .Concat(control.Ancestors()); var descendentsAndSelf = Enumerable.Repeat((DependencyObject)control, 1)     .Concat(control.Descendents()); You might ask why I don’t just include these in the VisualTreeEnumerator.  I don’t on the principle of only including code that is actually needed.  If you find that one or more of the above  is needed in your code then go ahead and create additional methods.  One of the downsides to Extension methods is that they can make finding the method you actually want in intellisense harder. Here are some real world usage scenarios for these methods:- Real World Scenarios //Gets the internal scrollviewer of a ListBox ScrollViewer sv = someListBox.Descendents().OfType<ScrollViewer>().FirstOrDefault(); // Get all text boxes in current UserControl:- var textBoxes = this.Descendents().OfType<TextBox>(); // All UIElement direct children of the layout root grid:- var topLevelElements = LayoutRoot.Descendents(0).OfType<UIElement>(); // Find the containing `ListBoxItem` for a UIElement:- var container = elem.Ancestors().OfType<ListBoxItem>().FirstOrDefault(); // Seek a button with the name "PinkElephants" even if outside of the current Namescope:- var pinkElephantsButton = this.Descendents()     .OfType<Button>()     .FirstOrDefault(b => b.Name == "PinkElephants"); //Clear all checkboxes with the name "Selector" in a Treeview foreach (CheckBox checkBox in elem.Descendents()     .OfType<CheckBox>().Where(c => c.Name == "Selector")) {     checkBox.IsChecked = false; }   The last couple of examples above demonstrate a common requirement of finding controls that have a specific name.  FindName will often not find these controls because they exist in a different namescope. Hope you find this useful, if not I’m just glad to be able to link to this blog in future stackoverflow answers.

    Read the article

< Previous Page | 217 218 219 220 221 222 223 224 225 226 227 228  | Next Page >