Search Results

Search found 21995 results on 880 pages for 'round trip software eng'.

Page 114/880 | < Previous Page | 110 111 112 113 114 115 116 117 118 119 120 121  | Next Page >

  • Alternatives to Project Euler for improving Excel ability

    - by Jonathan Deamer
    I've recently been enjoying using the mathematical problems listed at Project Euler to learn Python. My Excel ability is better than my Python, but I think I'd still benefit from the sort of inductive learning that comes with solving a series of increasingly difficult puzzles using a particular tool. I know Project Euler can be completed using Excel, but are there any other puzzle series similar to this or The Python Challenge specifically tailored for people trying to increase their knowledge of Excel and what it can do? NB. I'm not looking for a "tutorial", I know there are plenty of these. And apologies if this isn't completely appropriate for programmers.SE.com - some of the folks at SuperUser suggested it was a better fit here than there!

    Read the article

  • C#/.NET Little Wonders: Getting Caller Information

    - by James Michael Hare
    Originally posted on: http://geekswithblogs.net/BlackRabbitCoder/archive/2013/07/25/c.net-little-wonders-getting-caller-information.aspx Once again, in this series of posts I look at the parts of the .NET Framework that may seem trivial, but can help improve your code by making it easier to write and maintain. The index of all my past little wonders posts can be found here. There are times when it is desirable to know who called the method or property you are currently executing.  Some applications of this could include logging libraries, or possibly even something more advanced that may server up different objects depending on who called the method. In the past, we mostly relied on the System.Diagnostics namespace and its classes such as StackTrace and StackFrame to see who our caller was, but now in C# 5, we can also get much of this data at compile-time. Determining the caller using the stack One of the ways of doing this is to examine the call stack.  The classes that allow you to examine the call stack have been around for a long time and can give you a very deep view of the calling chain all the way back to the beginning for the thread that has called you. You can get caller information by either instantiating the StackTrace class (which will give you the complete stack trace, much like you see when an exception is generated), or by using StackFrame which gets a single frame of the stack trace.  Both involve examining the call stack, which is a non-trivial task, so care should be done not to do this in a performance-intensive situation. For our simple example let's say we are going to recreate the wheel and construct our own logging framework.  Perhaps we wish to create a simple method Log which will log the string-ified form of an object and some information about the caller.  We could easily do this as follows: 1: static void Log(object message) 2: { 3: // frame 1, true for source info 4: StackFrame frame = new StackFrame(1, true); 5: var method = frame.GetMethod(); 6: var fileName = frame.GetFileName(); 7: var lineNumber = frame.GetFileLineNumber(); 8: 9: // we'll just use a simple Console write for now 10: Console.WriteLine("{0}({1}):{2} - {3}", 11: fileName, lineNumber, method.Name, message); 12: } So, what we are doing here is grabbing the 2nd stack frame (the 1st is our current method) using a 2nd argument of true to specify we want source information (if available) and then taking the information from the frame.  This works fine, and if we tested it out by calling from a file such as this: 1: // File c:\projects\test\CallerInfo\CallerInfo.cs 2:  3: public class CallerInfo 4: { 5: Log("Hello Logger!"); 6: } We'd see this: 1: c:\projects\test\CallerInfo\CallerInfo.cs(5):Main - Hello Logger! This works well, and in fact CallStack and StackFrame are still the best ways to examine deeper into the call stack.  But if you only want to get information on the caller of your method, there is another option… Determining the caller at compile-time In C# 5 (.NET 4.5) they added some attributes that can be supplied to optional parameters on a method to receive caller information.  These attributes can only be applied to methods with optional parameters with explicit defaults.  Then, as the compiler determines who is calling your method with these attributes, it will fill in the values at compile-time. These are the currently supported attributes available in the  System.Runtime.CompilerServices namespace": CallerFilePathAttribute – The path and name of the file that is calling your method. CallerLineNumberAttribute – The line number in the file where your method is being called. CallerMemberName – The member that is calling your method. So let’s take a look at how our Log method would look using these attributes instead: 1: static int Log(object message, 2: [CallerMemberName] string memberName = "", 3: [CallerFilePath] string fileName = "", 4: [CallerLineNumber] int lineNumber = 0) 5: { 6: // we'll just use a simple Console write for now 7: Console.WriteLine("{0}({1}):{2} - {3}", 8: fileName, lineNumber, memberName, message); 9: } Again, calling this from our sample Main would give us the same result: 1: c:\projects\test\CallerInfo\CallerInfo.cs(5):Main - Hello Logger! However, though this seems the same, there are a few key differences. First of all, there are only 3 supported attributes (at this time) that give you the file path, line number, and calling member.  Thus, it does not give you as rich of detail as a StackFrame (which can give you the calling type as well and deeper frames, for example).  Also, these are supported through optional parameters, which means we could call our new Log method like this: 1: // They're defaults, why not fill 'em in 2: Log("My message.", "Some member", "Some file", -13); In addition, since these attributes require optional parameters, they cannot be used in properties, only in methods. These caveats aside, they do let you get similar information inside of methods at a much greater speed!  How much greater?  Well lets crank through 1,000,000 iterations of each.  instead of logging to console, I’ll return the formatted string length of each.  Doing this, we get: 1: Time for 1,000,000 iterations with StackTrace: 5096 ms 2: Time for 1,000,000 iterations with Attributes: 196 ms So you see, using the attributes is much, much faster!  Nearly 25x faster in fact.  Summary There are a few ways to get caller information for a method.  The StackFrame allows you to get a comprehensive set of information spanning the whole call stack, but at a heavier cost.  On the other hand, the attributes allow you to quickly get at caller information baked in at compile-time, but to do so you need to create optional parameters in your methods to support it. Technorati Tags: Little Wonders,CSharp,C#,.NET,StackFrame,CallStack,CallerFilePathAttribute,CallerLineNumberAttribute,CallerMemberName

    Read the article

  • Using jQuery to customize the styles in table cells

    - by Chris Hammond
    Originally posted on ChrisHammond.com I was trying to do some work with the Form and List module in DotNetNuke today and I needed to apply some custom styles to the LIST view of a module, without going in and creating a full XSL template for the module to use, I wanted to style the default table based grid view. In order to customize this view though I needed to do some custom jQuery that runs after the table is loaded, the jQuery then goes through and looks for columns, and based on the number of...(read more)

    Read the article

  • Need a graphical renaming tool which can rename files recursively

    - by user37991
    ATM I am forced to use freeware in Windows to rename SOME Linux data files. Linux also creates files like "Filename.ext" as being different to "filename.ext", and !@#$hg".ext ... which cannot be recognized by Windows. "pyrenamer" ... mentioned in another answer cannot auto-rename more than the one immediate folder. I use Ubuntu, not ARCH linux, because I am not CLI. Despite some answers here (designed by and for CLI programmers), how can Ubuntu GUI (not CLI) do file renaming? BTY: in ONE folder only, THUNAR is far better than silly pyrenamer. But Thunar cannot auto-rename recursively.

    Read the article

  • Various issues linked to my CD drive, when it has a disc in it

    - by Voyagerfan5761
    When I go to the Desktop and click on a media icon (for my flash drive, a CD, whatever it is), the following problems occur, in this approximate sequence: Nautilus will close if it's open. the desktop icons disappear my Window List shows a button that says "Starting File Manager" the icons reappear the button in Window List disappears Because of this problem, I can no longer drag and drop media, nor can I right-click to perform actions such as "Eject" and "Safely Remove Drive". The same symptoms occur if I click a media icon (that is also present on the desktop) in Nautilus' Computer view, though notably not if I click in the places list on the left. I have confirmed that this problem happens only if there is a CD in the drive (Matshita UJDA360). Also, inserting a disc into the CD drive appears to kill all running programs and restart Nautilus (or X; I'm not sure). Applications like Brasero and Rhythmbox will not start while there is a disc in the drive. Removing the disc doesn't result in the list of media updating; it must be forced to update by clicking on one of the desktop icons and going through one of the above-described cycles. It doesn't seem to matter what type of disc is in the drive. This has happened with CD-RWs I burned years ago using Roxio on Windows XP, the Ubuntu disc I installed from (burned with InfraRecorder Portable under Windows XP), and the retail game disc for Star Trek Armada II. The first indication of a problem was Brasero dying when I tried to insert a disc for erasure and rewriting. Since then, I've drafted several different questions on various issues, finally combining them into this one when I realized that having a CD in the drive was the common link. Could this be a simple driver issue? If Ubuntu is dynamically detecting my hardware on boot, can I specify drivers for devices that I know will be a problem if the default files are used? I'm beginning to think that my laptop, an old Dell Inspiron 2650, is just too old or proprietary-driver-hungry (or something, maybe RAM-starved) for Ubuntu and Windows XP to play nicely alongside each other. Or maybe I just need to carefully take my wall-wart machine to a coffee shop for an afternoon so I can download updates and such from the Internet, as I lack a home connection.

    Read the article

  • What is the best idea to put available OS (linux) and Web application to client?

    - by Fernando Costa
    After a year programming a web based business management system, I got my idea divided into two differents ways to do what I'm doing... I will try to explain in follow lines: First I will describe my enviroment: Webserver: apache, ngynx Programming Language: PHP, Shell Script, Java Script, SQL Database: Mysql Operating System: Linux, UNIX (All Distros) (If manually configured works on windows) Authentication Server: FreeRadius First situation I have my application running on this enviroment that I had just described before, as my application is a SaaS app, then I have my own server to run it all and customers pay to use it as a service accessed by webbrowser. Second Situation The same as before but with one big difference, everything (environment) is installed in the customer, then I need to cryptography all my codes (It includes PHP and Shell Scripts). I think this situation is most difficulty, but I would like to hear it from different points of view.

    Read the article

  • Adding a SQL Server Membership Provider using the aspnet_regsql.exe Utility

    - by nannette
    You may add a SQL Server Membership Provider using the aspnet_regsql.exe Utility on either your SQL Server Express local database or on a full-blown SQL Server database . In both implementations, you would use the aspnet_regsql.exe utility. This tool is installed when you install your .NET Framework. To use this on your SQL Server 2008 database server, for instance, you would need to first download and install the .NET Framework onto your server. Then you would need to find the location of the aspnet_regsql...(read more)

    Read the article

  • How to create a screencast?

    - by Riccardo Murri
    How can I create a screencast on Ubuntu? What applications are available? The app I'm looking for has ideally all of these features: Can record in a format that can be played back easily on any platform and/or accepted by youtube or another popular video site Can record just a window (instead of the whole screen), possibly selecting it with a mouse click Can start recording after a configurable delay (e.g., I launch the app and have time to do arrangements to my desktop/window before actual recording starts)

    Read the article

  • Best sites to find good .NET Developers

    - by Mag20
    I am looking for good sites to post a position for a .NET developer. I already tried: Craig's list got about 10 resumes, but most couldn't answer our technical questions StackOverflow Careers no responses What sites did you have success with finding good developers? UPDATE 1: Wanted to provide some more information: My company is in NJ. We are a small startup. Less then 10 people. Monster, Dice, CareerBuilder all charge like $500 a month per posting. Seems a bit much. Also only Dice is specifically targeting technical positions. With monster and career builder I am a bit worried about having to go through hundreds of resumes that don't apply.

    Read the article

  • Creating Multiple Queries for Running Objects

    - by edurdias
    Running Objects combines the power of LINQ with Metadata definition to let you leverage multiples perspectives of your queries of objects. By default, RO brings all the objects in natural order of insertion and including all the visible properties of your class. In this post, we will understand how the QueryAttribute class is structured and how to make use of it. The QueryAttribute class This class is the responsible to specify all the possible perspectives of a list of objects. In other words, is...(read more)

    Read the article

  • What is the Best way to learn c# programming and capability to do anything with C#?

    - by MSU
    I browsed all the answers given in Stackoverflow,i couldn't find my answer that's why i am writing this, so please don't mark this a duplicate. My case i want to get the capability of doing anything in C# from building applications to solving problems. I searched for and tried to read books. Then one of the experts said, reading books will not make any good for you, for learning you have to solve problems i.e. real world problems in C#, he gave me some sample problems, which i previously did in C++, i started doing, but the thing is that i know the internal logic of solving the problem or the algorithm to solve. But i don't know how to imepelement them using C# efficiently. so, the gap is, i can't think in C#, I know the message to passed but don't the exact way to pass it. I did a program to solve a problem, then find out there are much easier ways of doing it wherever i was doing it in tougher way. So, can you guys(C# experts) please enlighten me, what i need to get hold of the language and get the ability to code in C# proficiently?

    Read the article

  • ROI in choosing a CMS solution

    - by Tio
    At the company I work for we need a CMS. The question is, what to choose, for me I think the best solution is to develop one of our own, but we ( my boss and I ), talked about using Drupal. But my boss is completely non-technical, and want's to take a lot of shortcut's which for programming is utterly bad. Too many shortcut's ( and that's why just last Friday we had a bug on one of our systems that caused a lot of panic ). So I'm trying to investigate on the ROI of using already existing CMS solutions VS developing our own customized CMS ( based on a open source library or not ). So that I can sell this to my boss. I'm almost sure that developing a customized CMS is the best for our small company. After a search on google I found this: Choose between a commercial, open source, or customized CMS, but the link is from 2003, it has some truth's, but the world changed a lot from 2003. But I can't seem to find anything else about it. I've developed my own CMS, so I know it's not the most easy thing to do, and that it takes time. Can someone give me any tips? EDIT: With CMS I mean Content Management System, to manage the webpages of our clients.

    Read the article

  • Open source ASP.NET MVC project for a SaaS application

    - by DotnetDude
    I am working on a personal project that offers a service online. I'd like put this out to the public. I don't want to reinvent the wheel and use an existing template/open source project and add my service specific functionality. The features I am looking for are: Support for different roles (I need to have an admin role, customer and preferred customer roles) An admin section where admins can manage user accounts, login as with users credentials for providing support Customer pages that are role specific (Ex: Some functionality can be used by preferred customers but not non preferred ones) Preferably a pricing/plans page with payment gateway integration These are some of the basic pages available in most of service sites online. Is there a MVC 3 (preferably 4) written in C# that I can use as a shell to build upon? Thanks

    Read the article

  • Which version control system to use?

    - by deshmukh
    I am looking at using a version control system to ensure that I can go back in time to a particular version for all documents in ~, if I have to. What is the best suited tool for this given that: I am without much experience in version control systems Several files will be plain text files but there will be some Libre-Office files also The tool should: Be easy to set-up, run and maintain Have easy to understand configuration options (what directories to track, for how long, how frequently the changes should be captured, etc.) Ideally have a GUI front also Be able to recover deleted files What is the best/ most widely used tool that will be suitable for me?

    Read the article

  • How do I make the jump from Android to Windows Phone 7?

    - by Rob S.
    I'm planning on making the jump over from developing apps for Android to developing apps for Windows Phone 7 as well. For starters, I figured I would port over my simplest app. The code itself isn't much of a problem. The transition from Java to C# isn't that bad. It's actually easier than I expected. What is troublesome is switching SDKs. I've already compiled some basic Windows Phone 7 apps and ran through some tutorials but I'm still feeling a bit lost. For example, I'm not sure what the equivalent of a ScrollView on Android would be on Windows Phone 7. So does anyone have any advice or any resources they can offer me to help me make this transition? Additionally, any comments on the Windows Phone 7 app market (especially in comparison to the Android market) would be greatly appreciated as well. Thank you very much in advance for your time.

    Read the article

  • problem in installing wireshark on ubuntu 12.04

    - by iqbal
    i tried to install wireshark on ubuntu 12.04 but when i enter the cod the message is whone to me is iqbal@iqbal-HP-ProBook-4530s:~$ sudo apt-get install wireshark Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: wireshark : Depends: wireshark-common (= 1.11.4+svn20140420104827~d0489f2a-0ubuntu1~precise1~ppa0) but it is not going to be installed E: Unable to correct problems, you have held broken packages so how can i install wireshark on ubuntu 12.04 if any one can please tell me thanks

    Read the article

  • Where should I store 3rd party jar (Java archive) files?

    - by Martijn
    Hi folks, What would be the best place to save jar files of libraries I want to use in a project, that are not in any repositories, and how should I set permissions? Should I put them in /usr/share/java, or is it better to store them somewhere in my home folder? What would be the most usefull access rights? Does it make sense to follow the convention in /usr/share/java of making a symlink with the package name to the specific version of the jar, and follow the permissions as used there?

    Read the article

  • Any interesting thesis topic?

    - by revers
    Hi, I study Computer Science at Technical University of Lodz (in Poland) with Computer Game and Simulation Technology specialization. I'm going to defend BSc thesis next year and I was wondering what topic I could choose but nothing really interesting is coming to my mind. Maybe You could help me and suggest some subjects related to programming graphics, games or simulations? (or maybe something else that is interesting enough :) ). I would be very grateful for any suggestion!

    Read the article

  • How can I gather client's data on Google App Engine without using Datastore/Backend Instances too much?

    - by ruslan
    One of the projects I'm working on is online survey engine. It's my first big commercial project on Google App Engine. I need your advice on how to collect stats and efficiently record them in DataStore without bankrupting me. Initial requirements are: After user finishes survey client sends list of pairs [ID (int) + PercentHit (double)]. This list shows how close answers of this user match predefined answers of reference answerers (which identified by IDs). I call them "target IDs". Creator of the survey wants to see aggregated % for given IDs for last hour, particular timeframe or from the beginning of the survey. Some surveys may have thousands of target/reference answerers. So I created entity public class HitsStatsDO implements Serializable { @Id transient private Long id; transient private Long version = (long) 0; transient private Long startDate; @Parent transient private Key parent; // fake parent which contains target id @Transient int targetId; private double avgPercent; private long hitCount; } But writing HitsStatsDO for each target from each user would give a lot of data. For instance I had a survey with 3000 targets which was answered by ~4 million people within one week with 300K people taking survey in first day. Even if we assume they were answering it evenly for 24 hours it would give us ~1040 writes/second. Obviously it hits concurrent writes limit of Datastore. I decided I'll collect data for one hour and save that, that's why there are avgPercent and hitCount in HitsStatsDO. GAE instances are stateless so I had to use dynamic backend instance. There I have something like this: // Contains stats for one hour private class Shard { ReadWriteLock lock = new ReentrantReadWriteLock(); Map<Integer, HitsStatsDO> map = new HashMap<Integer, HitsStatsDO>(); // Key is target ID public void saveToDatastore(); public void updateStats(Long startDate, Map<Integer, Double> hits); } and map with shard for current hour and previous hour (which doesn't stay here for long) private HashMap<Long, Shard> shards = new HashMap<Long, Shard>(); // Key is HitsStatsDO.startDate So once per hour I dump Shard for previous hour to Datastore. Plus I have class LifetimeStats which keeps Map<Integer, HitsStatsDO> in memcached where map-key is target ID. Also in my backend shutdown hook method I dump stats for unfinished hour to Datastore. There is only one major issue here - I have only ONE backend instance :) It raises following questions on which I'd like to hear your opinion: Can I do this without using backend instance ? What if one instance is not enough ? How can I split data between multiple dynamic backend instances? It hard because I don't know how many I have because Google creates new one as load increases. I know I can launch exact number of resident backend instances. But how many ? 2, 5, 10 ? What if I have no load at all for a week. Constantly running 10 backend instances is too expensive. What do I do with data from clients while backend instance is dead/restarting?

    Read the article

  • Null Or Empty Coalescing

    - by Latest Microsoft Blogs
    In my last blog post, I wrote about the proper way to check for empty enumerations and proposed an IsNullOrEmpty method for collections which sparked a lot of discussion. This post covers a similar issue, but from a different angle. A very long time ago Read More......(read more)

    Read the article

  • Error while removing the new kernel 2.6.37

    - by Tarek
    Hi! I tried to install the new kernel but something went wrong and I'm trying to remove it now. The error massege is: mhd@Tarek-Laptop:~$ sudo apt-get install -f Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: linux-image-2.6.37-020637-generic 0 upgraded, 0 newly installed, 1 to remove and 9 not upgraded. 1 not fully installed or removed. After this operation, 111MB disk space will be freed. Do you want to continue [Y/n]? y (Reading database ... 188780 files and directories currently installed.) Removing linux-image-2.6.37-020637-generic ... Examining /etc/kernel/postrm.d . run-parts: executing /etc/kernel/postrm.d/initramfs-tools 2.6.37-020637-generic /boot/vmlinuz-2.6.37-020637-generic run-parts: executing /etc/kernel/postrm.d/zz-update-grub 2.6.37-020637-generic /boot/vmlinuz-2.6.37-020637-generic /etc/default/grub: 33: Syntax error: EOF in backquote substitution run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 2 Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-2.6.37-020637-generic.postrm line 328. dpkg: error processing linux-image-2.6.37-020637-generic (--remove): subprocess installed post-removal script returned error exit status 1 Errors were encountered while processing: linux-image-2.6.37-020637-generic E: Sub-process /usr/bin/dpkg returned an error code (1) The previous unsloved error is on this bug. This is my grub configuration file: # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` RUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1024x768-24,mtrr=3,scroll=ywrap" video=uvesafb:mode_option=>>1024x768-24<<,mtrr=3,scroll=ywrap" GRUB_CMDLINE_LINUX=" vga=792 splash" # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' GRUB_GFXMODE=1024x768-24 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_LINUX_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" thank you for answering.

    Read the article

  • Right mix of planning and programing on a new project

    - by WarrenFaith
    I am about to start a new project (a game, but thats unimportant). The basic idea is in my head but not all the details. I don't want to start programming without planning, but I am seriously fighting my urge to just do it. I want some planning before to prevent refactoring the whole app just because a new feature I could think of requires it. On the other hand, I don't want to plan multiple months (spare time) and start that because I have some fear that I will lose my motivation in this time. What I am looking for is a way of combining both without one dominating the other. Should I realize the project in the way of scrum? Should I creating user stories and then realize them? Should I work feature driven? (I have some experience in scrum and the classic "specification to code" way.)

    Read the article

  • Tiny program to register work hours

    - by amin
    Hi dear ubuntu users. I'm searching for a tiny application to register my working hours so when I come to work and power on my pc it register my entrance and as a power off my pc it register me left. I know it's as simple as adding a note in gedit but I want it automated, phproject has a timer application as you start a task you push start and as you finish calculate time to register fot task , I'm searching for such small timer. thanks

    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

  • What is the path to JavaScript mastery?

    - by Eric Wilson
    I know how we start with JavaScript, we cut-and-paste a snippit to gain a little client-side functionality or validation. But if you follow this path in trying to implement rich interactive behavior, it doesn't take long before you realize that you are creating a Big Ball Of Mud. So what is the path towards expertise in programming the interaction layer? What books, tutorials, exercises, and processes contribute towards the ability to program robust, maintainable JavaScript? We all know that practice is important in any endeavor, but I'm looking for a path similar to the answer here: http://stackoverflow.com/questions/2573135/

    Read the article

< Previous Page | 110 111 112 113 114 115 116 117 118 119 120 121  | Next Page >