Search Results

Search found 34580 results on 1384 pages for 'technology is good'.

Page 360/1384 | < Previous Page | 356 357 358 359 360 361 362 363 364 365 366 367  | Next Page >

  • Project of Projects with team Foundation Server 2010

    - by Martin Hinshelwood
    It is pretty much accepted that you should use Areas instead of having many small Team Projects when you are using Team Foundation Server 2010. I have implemented this scenario many times and this is the current iteration of layout and considerations. If like me you work with many customers you will find that you get into a grove for how to set these things up to make them as easily understandable for everyone, while giving the best functionality. The trick is in making it as intuitive as possible for both you and the developers that need to work with it. There are five main places where you need to have the Product or Project name in prominence of any other value. Area Iteration Source Code Work Item Queries Build Once you decide how you are doing this in each of these places you need to keep to it religiously. Evan if you have one source code file to keep, make sure it is in the right place. This makes your developers and others working with the format familiar with where everything should go, as well as building up mussel memory. This prevents the neat system degenerating into a nasty mess. Areas Areas are traditionally used to separate out parts of your product / project so that you can see how much effort has gone into each. Figure: The top level areas are for reporting and work item separation There are massive advantages of using this method. You can: move work from one project to another rename a project / product It is far more likely that a project or product gets renamed than a department. Tip: If you have many projects, over 100, you should consider categorising them here, but make sure that the actual project name always sits at the same level so you know which is which. Figure: Always keep things that are the same at the same level Note: You may use these categories only at the Area/Iteration level to make it easier to select on drop down lists. You may not want to use them everywhere. On the other hand, for consistency it would be better to. Iterations Iterations are usually used to some sort of time based consideration. Here I am splitting into Iterations with periodic releases. Figure: Each product needs to be able to have its own cadence The ability to have each project run at its own pace and to enable them to have their own release schedule is often of paramount importance and you don’t want to fix your 100+ projects to all be released on the same date. Source Code Having a good structure for your source even if you are not branching or having multiple products under the same structure is always a good idea. Figure: Separate out your products source You need to think about both your branches as well as the structure of your source. All your code should be under “Source” and everything you need to build your solution including Build Scripts and 3rd party tools should be under your “Main” (branch) folder. This should them be branched by “Quality”, “Release” or both to get the most out of your branching structure. The important thing is to make sure you branch (or be able to branch) everything you need to build, test and deploy your application to an environment. That environment may be development, test or even production, but I can’t stress the importance of having everything your need. Note: You usually will not be able to install custom software on your build server. Store any *.dll’s or *.exe’s that you need under the “Tools\Tool1” folder. Note: Consult the Branching Guidance for Team Foundation Server 2010 for more on branching Figure: Adding category may be a necessary evil Even if you have to have a couple of categories called “Default”, it is better than not knowing the difference between a folder, Product and Branch. Work Item Queries Queries are used to load lists of Work Items out of TFS so you can see what work you have. This means that you want to also separate queries out by Product / project to make it easier to Figure: Again you have the same first level structure Having Folders also in Work Item Tracking we do the same thing. We put all the queries under a folder named for the Product / Project and change each query to have “AreaPath=[TeamProject]\[ProductX]” in the query instead of the standard “Project=@Project”. Tip: Don’t have a folder with new queries for each iteration. Instead have a single “Current” folder that has queries that point to the current iteration. Just change the queries as you move from one iteration to another. Tip: You can ctrl+drag the “Product1” folder to create your “Product2” folder. Builds You may have many builds both for individual products but also for different quality's. This can be further complicated by having some builds that action “Gated Check-In” and others that are specifically for “Release”, “Test” or another purpose. Figure: There are no folders, yet, for the builds so you need a good naming convention Its a pity that there are no folders under builds, some way to categorise would be nice. In lue of that at the moment you can use a functional naming convention that at least allows you to find what you want. Conclusion It is really easy to both achieve and to stick to this format if you take the time to do it. Unless you have 1000+ builds or 100+ Products you are unlikely run into any issues. Even then there are things you can do to mitigate the issues and I have describes some of them above. Let me know if you can think of any other things to make this easier.

    Read the article

  • Fastest way to run a JSON server on my local machine

    - by Mohsen
    I am a front-end developer. For many experiemnets I do I need to have a server that talks JSON with my client side app. Normally that server is a simple server that response to my POSTs and GETs. For example I need to setup a server that saves, modifies and read data from a "library" database like this: POST /books create a book GET /book/:id gets a book and so on... What is the fastest and easiest technology stack for database and server in this case? I am open to use Ruby, Nodejs and anything that do the job fast and easy. Is there any framework (on any language) that do stuff like this for me?

    Read the article

  • GDD-BR 2010 [0E] Google Geo: Exciting New Features and Tools

    GDD-BR 2010 [0E] Google Geo: Exciting New Features and Tools Speaker: Ossama Alami Track: Google APIs Time: E [14:40 - 15:25] Room: 0 Level: 151 Did you know we have an elevation web service? That you can completely restyle the look of the map tiles? How to use Fusion Tables to host and visualize geo data? A session covering new launches across Google's Geo products and some APIs you might not be aware of. Covering Web services, Earth API, New KML Extensions, Maps Styling, Fusion Tables. From: GoogleDevelopers Views: 0 0 ratings Time: 44:16 More in Science & Technology

    Read the article

  • Oracle's Business Analytics Strategy Webcast

    - by Rob Reynolds
    Join Mark Hurd and Balaji Yelamanchili as they unveil the latest advances in Oracle’s strategy for placing analytics into the hands of every one of your decision-makers—so that they can see more, think smarter, and act faster. Learn about the latest developments in business intelligence technology and applications, advanced analytics, performance management applications, and engineered systems. You’ll find out how you can harness the exploding volumes of data being generated inside your organization—and beyond the firewall—to: Deliver real-time intelligence to your mobile workforce globally Forecast and plan at the speed of business Accelerate your financial close and reporting process Discover how Oracle business analytics can change the way you do business. Register today for this on demand event.

    Read the article

  • Business Success with BPM: Customer Experiences

    - by Ajay Khanna
    Oracle OpenWorld provides a unique opportunity to listen to Oracle Business Process Management Customers. This year we have many customers including Novartis, University of Melbourne, McAfee, Nagravision, Amadeus among others speaking at various sessions. One of such session is the customer panel hosted by Manas Deb from Oracle Product Management team. In this session, you will hear your peers discuss how they have overcome technical and organizational challenges; delivered success; and brought improved efficiency, visibility, and business agility to their companies. If you are interested in hearing more about how our customers use Oracle Business Process Management Suite, join us for the following session: Business Success with BPM: Customer Experiences Monday, Oct 1, 4:45 PM - 5:45 Moscone South - 308 Oracle Business Process Management Track covers a variety of topics, and speakers covering technology, methodology and best practices. You can see the list of Business process Management sessions here. Come back to this blog for more coverage from Oracle OpenWorld!

    Read the article

  • GLOBALFOUNDRIES Accelerates Innovation while Protecting IP with AutoVue for Agile

    - by Celine Beck
    GLOBALFOUNDRIES is a full-service semiconductor foundry with a global footprint. Launched in March 2009, the company quickly grew to be the second-largest foundry in the world, providing a unique combination of advanced technology and manufacturing to more than 160 customers. With operations in Singapore, Germany, and the United States, GLOBALFOUNDRIES is the only foundry that offers the flexibility of having secure manufacturing centers that span three continents.We sat down with Kishan Shah, Manager of PLM Practice at GLOBALFOUNDRIES so that he can explain how Oracle AutoVue integrated with Oracle Agile PLM supports the company’s mission of “turning sand into gold” ; enabling collaborative design-for-manufacturing and fostering innovation, all while protecting critical intellectual property.You can watch the video interview by clicking here. A customer success story is also available on Oracle’s website. 

    Read the article

  • Google I/O 2010 - Deep dive on Gmail contextual gadgets

    Google I/O 2010 - Deep dive on Gmail contextual gadgets Google I/O 2010 - Building context-aware extensions for Gmail - Deep dive on Gmail contextual gadgets Enterprise 201 Dan Holevoet How much time do your users spend in email everyday? Wouldn't it be nice if you could seamlessly integrate your apps into the rich context offered by their email and allow them to avoid shifting to new applications for various tasks? Gmail contextual gadgets allow you to register regular expressions and insert gadgets into e-mail messages based on their content. In this session, you'll learn how to create and distribute these powerful gadgets. For all I/O 2010 sessions, please go to code.google.com From: GoogleDevelopers Views: 7 0 ratings Time: 52:39 More in Science & Technology

    Read the article

  • Server side random selection of players

    - by Ron
    Assuming I have a simple client-server game, where the server picks random players on a very frequent base, I was wondering what is the best way to select a random player (According to the following constraints): Solution must be high performance and highly scalable Random spread should be relatively even (meaning if I have 3 players and pick 99 times, they will all be picked 33 times more or less) Should only pick players who were active in the past X days (optional, but a big bonus) The actual DB or data model used to store players isn't an issue here, as we'll select the technology in accordance to our needs. However, high performance and scalability is (at the moment we have over 60,000 unique daily active players, and we plan on growing even more). Thanks!

    Read the article

  • October 2012 Chicago IT Architects Group Meeting Recap

    - by Tim Murphy
    It seemed very ironic that the day we have a presentation on the architecture of building applications for Windows 8 the Surface tablet is opened for pre-order.  Tom Benton started the evening enlightening the attendees on the user experience for those who had not seen it yet.  He even passed around his table from last year’s Build conference for everyone to play with.  This was followed with a tour of the capabilities and structures that make up a Windows Store App on Windows 8.  Taking it to its conclusion, he rounded out the discussion by covering the certification and deployment process. As usual it was great to see a lot of familiar faces last night.  We are always looking for more people to join in our discussions.  Stay tuned here for announcements up upcoming meetings and topics.  Also, if you have a topic you would like to present or see presented feel free to contact me through this blog. del.icio.us Tags: Chicago Information Technology Architects Group,CITAG,Winodws 8,Windows Store,Tom Benton

    Read the article

  • Eclipse DemoCamp, June 13, Redwood Shores, CA

    - by Tori Wieldt
    Oracle is hosting an Eclipse DemoCamp next week, Wednesday, June 13, in Redwood Shores, CA (@Oracle HQ) from 6pm - 9pm. Come view presentations from folks who are developing exciting technologies for the Eclipse platform and network with your colleagues and peers over beer and pizza.  The evening have a nice mix of technology and vendors.  The following presenters are currently scheduled : The evolution of Java persistence, Doug Clarke, EclipseLink Project Lead, Oracle Integrating BIRT into Applications, Ashwini Verma, Actuate Corporation Developing Rich ADF Applications with Java EE, Greg Stachnick, Oracle Leveraging OSGi In The Enterprise, Kamal Muralidharan, Lead Engineer, eBay NVIDIA® Nsight™ Eclipse Edition, Goodwin (Tech lead - Visual tools), Eugene Ostroukhov (Senior engineer – Visual tools) Did we mention beer and pizza? Learn more.  Register now!

    Read the article

  • 11/15 Webinar: How Top High Tech Companies Grow Channel Revenue and ROMI

    - by Charles Knapp
    See the results of recent Aberdeen research on best practices in sales and marketing effectiveness. Discover how top performing high tech companies manage and use enterprise customer data, measure marketing spend effectiveness, and support internal and channel sales throughout their customer lifecycle -- messaging to leads, selling to prospects, and serving customers. Our speakers will be: Peter Ostrow, Research Director - Sales Effectiveness, Aberdeen Group David Lasher, Global Business Services Partner, IBM Jonathan Oomrigar, Vice President, Global High Technology Business Unit, Oracle Reserve your place now! This global webinar is on Tuesday, November 15, 10-11 am PST / 1-2 pm EST / 6-7 GMT / 7-8 CET

    Read the article

  • Oracle will be a Bronze Sponsor of Grace Hopper Celebration of Women in Cmputing

    - by bubbva
    Oracle is proud to be a Bronze Sponsor at the upcoming Grace Hopper Celebration of Women in Computing from October 3-6, 2012 in Baltimore, MD. Oracle's Women's Leadership group, Oracle's Diversity & Inclusion program and Product Development are proud to be behind this sponsorship.Several women from Oracle will be presenting and participating at the conference: Industry Track: "From Engineer to Executive; The Path Forward", speaker Susan Zwinger VP, Global Systems Technology Service Center Industry Track: "Are We There Yet? Finding Your Career Sweet Spot", speaker Gilda Garreton, Principal Software Engineer Birds of a feather:  "Juggling Our Different Worlds", speaker Gilda Garreton New Investigator Co-Chair, Gilda Garreton Communities Committee Co-Chair, Valerie Fenwick, Manager Software Development "Considering a shift in career from Technical towards Management?" table host,  Valerie Fenwick Oracle will have a booth as well, so stop by and introduce yourself!

    Read the article

  • Html Buttons with Triangles [migrated]

    - by Dmitry
    I'm looking for the simplest way of creating 'buttons' with bootom-central triangles as follows: |--------| | Text | |---\/---| By buttons/menu items I mean something which will will support atomic mouse behavior for the whole shape's region. No rounded corners just the shape itself. I saw plenty of websites doing thsese buttons lately, but now for some strange reason I couldn't find any. Ideally I'm looking for tutorial links or some general guidances, as the topic might be too big to be covered by one post. Technology scope wise - ideally I'm looking for Html5/Css3 solution. I don't care mouch about old IE support and I think Html5/css3 will give a slicker/more elegant solution. On the way forward I might need to add drop shadows, which is another argument in favour of css3. Thanks.

    Read the article

  • Creating your First Crystal Report for Use in a .NET Application

    Have you ever had to create a custom report within an application you have written for a customer? Most developers have, and there are two schools of thought on how developers normally perform this task. Some choose to create the report using the same technology that the application was created in (ASP, WinFrom, WPF) while others choose to use a reporting package such as Crystal Reports. Using a reporting package will help create reports rapidly. This article walk you through the creation of your first report using Crystal Reports.

    Read the article

  • Creating your First Crystal Report for Use in a .NET Application

    Have you ever had to create a custom report within an application you have written for a customer? Most developers have, and there are two schools of thought on how developers normally perform this task. Some choose to create the report using the same technology that the application was created in (ASP, WinFrom, WPF) while others choose to use a reporting package such as Crystal Reports. Using a reporting package will help create reports rapidly. This article walk you through the creation of your first report using Crystal Reports.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

  • RPC protocols comparison

    - by Ricardo
    I have to select a protocol/technology to use for communicating a client-server architecture, with support both for Python and C. The main requirements are: Symmetrical communication in between ends: clients establish a connection and servers can send data back to clients through the same connection. Avoid excessive overhead by using HTTP or a big stack (if possible, TCP direct communication). TLS/SSL support for secure communications. Ease of implementation. For that, I evaluated the following protocols/communications technologies. Is the information on this table accurate and correct? (*1) TLS support for RPyC is based in a no-longer supported Python library.

    Read the article

  • The 10 Best How-To Geek Guides for Perfect Christmas Photos

    - by Eric Z Goodnight
    Taking a lot of pictures this Christmas? Here’s a roundup of some of our favorite How-Tos to help you get the best possible photo prints this year. You might use Photoshop, Free Software, or even Microsoft Word; How-To Geek has something for every user in this collection of How-Tos to help you get the best prints this holiday season Latest Features How-To Geek ETC The Complete List of iPad Tips, Tricks, and Tutorials The 50 Best Registry Hacks that Make Windows Better The How-To Geek Holiday Gift Guide (Geeky Stuff We Like) LCD? LED? Plasma? The How-To Geek Guide to HDTV Technology The How-To Geek Guide to Learning Photoshop, Part 8: Filters Improve Digital Photography by Calibrating Your Monitor MTCrypt Is an Efficient Front End for Mounting TrueCrypt Volumes 10 Things You Should Do with Your New Android Phone Walking Through the Park on a Snowy Night Wallpaper Track Weather Conditions with the Weather Underground Web App for Chrome These 8-Bit Mario Wood Magnets Put Video Games on Your Fridge Christmas Themes 4 Pack for Chrome and Iron Browser

    Read the article

  • Google I/O 2010 - Launch your app in Google Apps w/ gadgets

    Google I/O 2010 - Launch your app in Google Apps w/ gadgets Google I/O 2010 - Launch your app inside of Google Apps with gadgets Enterprise 201 Dan Holevoet Gadgets represent a valuable opportunity to get in front of the many Google Apps users who use Gmail, Google Calendar, and Google Sites throughout the day. This session will talk about how you can write gadgets as natural extensions of your existing products and take advantage of the unique opportunities available to gadgets in Google Apps. For all I/O 2010 sessions, please go to code.google.com From: GoogleDevelopers Views: 14 0 ratings Time: 41:55 More in Science & Technology

    Read the article

  • Google I/O 2012 - Deep Dive into the Next Version of the Google Drive API

    Google I/O 2012 - Deep Dive into the Next Version of the Google Drive API Ali Afshar, Ivan Lee This session discusses a number of best practices with the new Google Drive API. We'll cover how to properly sync files, how to manage sharing, and how to make your applications faster and more efficient than ever before. We'll go through an entire working application that exposes best practices. For all I/O 2012 sessions, go to developers.google.com From: GoogleDevelopers Views: 17 0 ratings Time: 45:50 More in Science & Technology

    Read the article

  • Website misclassified by websense

    - by Jeff Atwood
    I received the following email from a user of one of our websites: This morning I tried to log into example.com and I was blocked by websense at work because it is considered a "social networking" site or something. I assume the websense filter is maintained by a central location, so I'm hoping that by letting you guys know you can get it unblocked. per Wikipedia, Websense is web filtering or Internet content-control software. This means one (or more) of our sites is being miscategorized by websense as "social networking" and thus disallowed for access at any workplace that uses websense to control what websites their users can and cannot access during work hours. (I know, they are monsters!) How do we dispute this websense classification error, as our websites should generally be considered "information technology" and never "social networking"? How do we know what category websense has put our sites in, so we can pro-actively make sure they're not wrong?

    Read the article

  • To My 24 Year Old Self, Wherever You Are&hellip;

    - by D'Arcy Lussier
    A decade is a milestone in one’s life, regardless of when it occurs. 2011 might seem like a weird year to mark a decade, but 2001 was a defining year for me. It marked my emergence into the technology industry, an unexpected loss of innocence, and triggered an ongoing struggle with faith and belief. Once you go through a valley, climbing the mountain and looking back over where you travelled, you can take in the entirety of the journey. Over the last 10 years I kept journals, and in this new year I took some time to review them. For those today that are me a decade ago, I share with you what I’ve gleamed from my experiences. Take it for what it’s worth, and safe travels on your own journeys through life. Life is a Performance-Based Sport Have confidence, believe you’re capable, but realize that life is a performance-based sport. Everything you get in life is based on whether you can show that you deserve it. Performance is also your best defense against personal attacks. Just make sure you know what standards you’re expected to hit and if people want to poke holes at you let them do the work of trying to find them. Sometimes performance won’t matter though. Good things will happen to bad people, and bad things to good people. What’s important is that you do the right things and ensure the good and bad even out in your own life. How you finish is just as important as how you start. Start strong, end strong. Respect is Your Most Prized Reward Respect is more important than status or ego. The formula is simple: Performing Well + Building Trust + Showing Dedication = Respect Focus on perfecting your craft and helping your team and respect will come. Life is a Team Sport Whatever aspect of your life, you can’t do it alone. You need to rely on the people around you and ensure you’re a positive aspect of their lives; even those that may be difficult or unpleasant. Avoid criticism and instead find ways to help colleagues and superiors better whatever environment you’re in (work, home, etc.). Don’t just highlight gaps and issues, but also come to the table with solutions. At the same time though, stand up for yourself and hold others accountable for the commitments they make to the team. A healthy team needs accountability. Give feedback early and often, and make it verbal. Issues should be dealt with immediately, and positives should be celebrated as they happen. Life is a Contact Sport Difficult moments will happen. Don’t run from them or shield yourself from experiencing them. Embrace them. They will further mold you and reveal who you will become. Find Your Tribe and Embrace Your Community We all need a tribe: a group of people that we gravitate to for support, guidance, wisdom, and friendship. Discover your tribe and immerse yourself in them. Don’t look for a non-existent tribe just to fill the need of belonging though that will leave you empty and bitter when they don’t meet your unrealistic expectations. Try to associate with people more experienced and more knowledgeable than you. You’ll always learn, and you’ll always remember you have much to learn. Put yourself out there, get involved with the community. Opportunities will present themselves. When we open ourselves up to be vulnerable, we also give others the chance to do the same. This helps us all to grow and help each other, it’s very important. And listen to your wife. (Easter *is* a romantic holiday btw, regardless of what you may think.) Don’t Believe Your Own Press Clippings (and by that I mean the ones you write) Until you have a track record of performance to refer to, any notions of grandeur are just that: notions. You lose your rookie status through trials and tribulations, not by the number of stamps in your passport. Be realistic about your own “experience and leadership” and be honest when you aren’t ready for something. And always remember: nobody really cares about you as much as you think they do. Don’t Let Assholes Get You Down The world isn’t evil, but there is evil in the world. Know the difference and don’t paint all people with the same brush. Do be wary of those that use personal beliefs to describe their business (i.e. “We’re a [religion] company”). What matters is the culture of the organization, and that will tell you the moral compass and what is truly valued. Don’t make someone or something a priority that only makes you an option. Life is unfair and enemies/opponents will succeed when you fail. Don’t waste your energy getting upset at this; the only one that will lose out is you. As mentioned earlier, nobody really cares about you as much as you think they do. Misc Ecclesiastes is bullshit. Everything is certainly *not* meaningless. Software development is about delivery, not the process. Having a great process means nothing if you don’t produce anything. Watch “The Weatherman” (“It’s not easy, but easy doesn’t enter into grownup life.”). Read Tony Dungee’s autobiography, even if you don’t like football, and even if you aren’t a Christian. Say no, don’t feel like you have to commit right away when someone asks you to.

    Read the article

  • Not able to suspend or hibernate

    - by Tim
    My Ubuntu 10.10 on my laptop Lenovo T400 is not able to suspend or hibernate. Whenever I click Suspend or Hibernate, the moon LED on the bottom of the lid flashes a few seconds, the screen quickly shows something like "some devices fail to suspend, error 5", and then the moon LED goes off and the display still has ambient light illumination. I suppose in suspend or hibernation state, the display should have no illumination, just like when the laptop is turned off, right? If I press any key, the unlock screen dialogue will pop out. I searched a little on the internet, and installed 'acpi-support' according to some advice but it does not help. Any suggestions to solve this problem? Thanks and regards! ADDED: Laptop specifications: CPU Intel Mobile Core 2 Duo P8800 @ 2.66GHz Penryn 45nm Technology RAM 1.9GB Single-Channel DDR3 @ 532MHz (7-7-7-20) Motherboard LENOVO 2764CTO (None) Graphics ThinkPad Display 1440x900 @ 1440x900 ATI Mobility Radeon HD 3400 Series (Lenovo) Hard Drives 244GB Western Digital WDC WD2500BEVS-08VAT2 (SATA) Optical Drives HL-DT-ST DVDRAM GSA-U20N AZCDW EFCPUZ452 SCSI CdRom Device AZCDW EFCPUZ452 SCSI CdRom Device Audio Conexant 20561 SmartAudio HD

    Read the article

  • Content API for Shopping Technical Webinar - April 3, 2012

    Content API for Shopping Technical Webinar - April 3, 2012 This webinar is for those interested in getting up and running with the Google Content API for Shopping without worrying about constructing XML or figuring out how to make an HTTP request in your language of choice. We'll show you how to leverage open source client libraries written by Google engineers so you can focus on the important stuff: your product data. We cover four basic topics: -Review of Existing Resources -Basic Primer on Using the API -Best Practices -Using a Client Library to Manage Product Data Feel free to follow along on the slides: google-content-api-tools.appspot.com From: GoogleDevelopers Views: 1112 16 ratings Time: 46:55 More in Science & Technology

    Read the article

  • Rebuilding CoasterBuzz, Part IV: Dependency injection, it's what's for breakfast

    - by Jeff
    (Repost from my personal blog.) This is another post in a series about rebuilding one of my Web sites, which has been around for 12 years. I hope to relaunch soon. More: Part I: Evolution, and death to WCF Part II: Hot data objects Part III: The architecture using the "Web stack of love" If anything generally good for the craft has come out of the rise of ASP.NET MVC, it's that people are more likely to use dependency injection, and loosely couple the pieces parts of their applications. A lot of the emphasis on coding this way has been to facilitate unit testing, and that's awesome. Unit testing makes me feel a lot less like a hack, and a lot more confident in what I'm doing. Dependency injection is pretty straight forward. It says, "Given an instance of this class, I need instances of other classes, defined not by their concrete implementations, but their interfaces." Probably the first place a developer exercises this in when having a class talk to some kind of data repository. For a very simple example, pretend the FooService has to get some Foo. It looks like this: public class FooService {    public FooService(IFooRepository fooRepo)    {       _fooRepo = fooRepo;    }    private readonly IFooRepository _fooRepo;    public Foo GetMeFoo()    {       return _fooRepo.FooFromDatabase();    } } When we need the FooService, we ask the dependency container to get it for us. It says, "You'll need an IFooRepository in that, so let me see what that's mapped to, and put it in there for you." Why is this good for you? It's good because your FooService doesn't know or care about how you get some foo. You can stub out what the methods and properties on a fake IFooRepository might return, and test just the FooService. I don't want to get too far into unit testing, but it's the most commonly cited reason to use DI containers in MVC. What I wanted to mention is how there's another benefit in a project like mine, where I have to glue together a bunch of stuff. For example, when I have someone sign up for a new account on CoasterBuzz, I'm actually using POP Forums' new account mailer, which composes a bunch of text that includes a link to verify your account. The thing is, I want to use custom text and some other logic that's specific to CoasterBuzz. To accomplish this, I make a new class that inherits from the forum's NewAccountMailer, and override some stuff. Easy enough. Then I use Ninject, the DI container I'm using, to unbind the forum's implementation, and substitute my own. Ninject uses something called a NinjectModule to bind interfaces to concrete implementations. The forum has its own module, and then the CoasterBuzz module is loaded second. The CB module has two lines of code to swap out the mailer implementation: Unbind<PopForums.Email.INewAccountMailer>(); Bind<PopForums.Email.INewAccountMailer>().To<CbNewAccountMailer>(); Piece of cake! Now, when code asks the DI container for an INewAccountMailer, it gets my custom implementation instead. This is a lot easier to deal with than some of the alternatives. I could do some copy-paste, but then I'm not using well-tested code from the forum. I could write stuff from scratch, but then I'm throwing away a bunch of logic I've already written (in this case, stuff around e-mail, e-mail settings, mail delivery failures). There are other places where the DI container comes in handy. For example, CoasterBuzz does a number of custom things with user profiles, and special content for paid members. It uses the forum as the core piece to managing users, so I can ask the container to get me instances of classes that do user lookups, for example, and have zero care about how the forum handles database calls, configuration, etc. What a great world to live in, compared to ten years ago. Sure, the primary interest in DI is around the "separation of concerns" and facilitating unit testing, but as your library grows and you use more open source, it starts to be the glue that pulls everything together.

    Read the article

  • My Last "Catch-Up" Post for 2010 Content

    - by KKline
    I did a lot of writing in 2010. Unfortunately, I didn't do a good job of keeping all of that writing equally distributed throughout all of the channels where I'm active. So here are a few more posts from my blog, put on-line during the months of November and December 2010, that I didn't get posted here on SQLBlog.com: 1. It's Time to Upgrade! So many of my customers and many of you, dear readers, are still on SQL Server 2005. Join Kevin Kline , SQL Server MVP and SQL Server Technology Strategist...(read more)

    Read the article

< Previous Page | 356 357 358 359 360 361 362 363 364 365 366 367  | Next Page >