Search Results

Search found 16078 results on 644 pages for 'oracle engineering construction'.

Page 572/644 | < Previous Page | 568 569 570 571 572 573 574 575 576 577 578 579  | Next Page >

  • Should I concentrate on writing code for money or my studies while in college?

    - by A-Cube
    I am college student of Software Engineering. My worries are that while I am concentrating on my studies, my peers are getting down with the code (e.g. HTML, ASP, PHP, etc) to earn money. Should I be worried that I am not doing coding like them? I was asked to be Microsoft Student Partner but I refused because the person what was doing before me told it was just arranging events. Nothing as such like getting with Microsoft and coding. Should I be writing code and earning money as I still am in 4th semester? I only have C++ as learning language in college. Will my job count on these projects that I do, or should I concentrate on studies for now to get maximum benefit?

    Read the article

  • Sources of requirements? [closed]

    - by user970696
    I was reading a book about SW engineering the other day and it went like: Sources of both functional and non-functional requirements are: law (for specific cases) business and user requirements etc. //what else then? So the question is, what other sources of requirements there are when an analyst is gathering the information? Lets consider a desktop app for mobile operator. As for the comment, I do not think this is a broad question as the books usually mention 1-2 sources. I would like to know more, if anyone can help.

    Read the article

  • What modern alternatives to Numerical Recipes exist?

    - by Stewart
    In the past, the Numerical Recipes book was considered the gold standard reference for numerical algorithms. The earliest Fortran Edition was followed by editions in C and C++ and others, bringing it then more up-to-date. Through these, it provided reference code for the state-of-the-art algorithms of the day. Older editions are available online for free nowadays. Unfortunately, I think it is now mostly useful only as a historic tome. The "software engineering" practises seem to me to be outdated, and the actual content hasn't kept pace with the literature. What comprehensive yet approachable references should the modern programmer look at instead?

    Read the article

  • “Can You See Me Think?”

    - by andyleonard
    Introduction This post is the fifty-seventh part of a ramble-rant about the software business. The current posts in this series can be found on the series landing page . A Story… Once upon a time I was a manufacturing systems integrator. That’s a fancy description of a person who designs and builds machine control systems. I was asked to replace a control system and given a tight timeline to accomplish the work. My engineering spidey-senses were tingling, but there were bills to pay and the promise...(read more)

    Read the article

  • Mozilla publie une démonstration de la vidéoconférence sans plugins avec WebRTC et HTML 5

    Mozilla publie une démonstration de la vidéoconférence sans plug-ins avec WebRTC et HTML 5 Mozilla travaille sur le support en natif de la vidéoconférence dans son navigateur Firefox. L'organisme a publié récemment une démonstration de la vidéoconférence sans plug-ins en utilisant uniquement HTML5, JavaScript et l'API WebRTC à l'occasion d'une conférence de l'IETF (Internet Engineering Task Force). WebRTC est un framework de communications audio et vidéo open source publié par Google. Il intègre le codec vocal à large et très large spectre iSAC (internet Speech Audio Codec) et codec VP8. Il prend aussi en...

    Read the article

  • exchange live feed with pre-recorded video for wireless internet camera to router

    - by nate
    I wasn't sure if this should be asked in Web Applications, or Network Engineering, or what... Long story short, I have a video camera with mic that is wirelessly connected to a router (NETGEAR R6200), which can then be viewed through an online service. I would like to be able to somehow exchange the live feed with a pre-recorded video, or image, preferably with pre-recorded sound (the sound of silence would be easiest). Can I place this inbetween the camera and the router, do I need to redirect the camera feed to my laptop first, and then push out the fake video/audio onto the router, without the service knowing the difference? Thanks much and I hope this is well understood!

    Read the article

  • Time it would take me to learn c++ given my speed? [closed]

    - by ashwin
    I am a student in second year of engineering and my life is hard, nowadays. To make my future secure and at least get good jobs, I have started learning C++; I have learned J2SE, ASP.NET (little, basic C#), PHP (little), HTML, CSS, AJAX, Javascript, SQL, a little android development (I have built a benchmark app) in 4 months and have received 1 gold medal in CSS and 1 each in HTML, CSS, Java. I am able to make things in C#, Java and all other, so I can apply all this knowledge. I was able to do all this, because I loved learning and I hate to ask this question. How much time would it take me to learn C++, good-enough to get good jobs at Google, Microsoft? I am currently learning data structures, so that's excluded.

    Read the article

  • Engines of Loss and Gain

    - by andyleonard
    Introduction This post is the fortieth part of a ramble-rant about the software business. The current posts in this series can be found on the series landing page . This post is about winning (no really). NASCAR I like watching NASCAR races. On the surface, a race looks like a bunch of folks driving fast on a circuitous course. But there’s much more to it than that. There’s engineering and strategy and frankly, a little luck. A NASCAR race is a lot like life when you look beneath the surface. Forty-three...(read more)

    Read the article

  • DotNetNuke 5.3.0 Released

    I am happy to announce that the DotNetNuke 5.3.0 release is now available for download. This release marks the fourth month in a row where we have hit our targeted release date. That is a huge accomplishment for the project as the DotNetNuke Corporation engineering team is really starting to gel. During this release cycle we also had a number of significant contributions by core team members. Over the past year, as our development methodology has undergone change and we have hired more members for...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

  • What do you do when one think the code isn't complicated enough?

    - by Chris
    After six months of development on a project, our stakeholders have had a "gut check" and have decided that the path that we've been walking (a custom designed application framework and data access layer) is holding us (the developers) back from quickly developing the features they would like to see. After several days of debate management and the development team have decided to scrap the current incarnation and start over using ASP.net MVC, with Entity Framework as the bases of the a 'quick and dirty', lets just get it done project. In days following, our senior developer who has never worked with MVC or Entity Framework has finally gotten into a sample project and done some work. His take on ASP.net MVC, "this is not software engineering". So my question is this; what do you do, when one doesn't think the code is complicated enough?

    Read the article

  • What do you do when the code isn't complicated enough?

    - by Chris
    After six months of development on a project, our stakeholders have had a "gut check" and have decided that the path that we've been walking (a custom designed application framework and data access layer) is holding us (the developers) back from quickly developing the features they would like to see. After several days of debate management and the development team have decided to scrap the current incarnation and start over using ASP.net MVC, with Entity Framework as the bases of the a 'quick and dirty', lets just get it done project. In days following, our senior developer who has never worked with MVC or Entity Framework has finally gotten into a sample project and done some work. His take on ASP.net MVC, "this is not software engineering". So my question is this; what do you do, when one doesn't think the code is complicated enough?

    Read the article

  • Most important research article for software development [closed]

    - by Fabian Fagerholm
    Researchers all over the world collectively publish thousands of articles on software development topics every year, hoping to benefit practical software development in the long run. (Of course, some of them only publish to increase their publication count, but hopefully most still aim to advance the field.) But what is really useful for practical software development? Of all the research articles you have read, what do you consider being the most important one for the software development field? What is it about that article that makes it stand out as especially important in your view? Note: I deliberately chose the term "software development", but you can freely interpret it as "programming" or "software engineering", or anything else that fits into the "software development" category.

    Read the article

  • Un rapport affirme que la technologie GPS est utilisée dans trop de domaines, et que son inaccessibilité serait trop déstabilisante

    Un rapport affirme que la technologie GPS est utilisée dans trop de domaines, et qu'une coupure de son accessibilité pour déstabiliser de nombreux services Un rapport anglais, publié par la Royal Academy of Engineering, affirme que les systèmes de navigation par satellite son trop largement utilisés, et qu'il pourrait potentiellement en résulter certains dangers. Cette confiance et ce recours de plus en plus systématique en les systèmes GPS pourraient ainsi créer les problèmes suivants : conducteurs envoyés hors des routes, vaisseaux dirigés vers des endroits dangereux, parasitage des communications des services d'urgence, etc. De plus, de très nombreux systèmes se reposent sur la technologie GSP, même ceux dont on n...

    Read the article

  • Need some advice on CLI design, I need to provide simple but powerful command line options

    - by howtechstuffworks
    I am writing a utility that runs on RHEL5 command line. I need my command line options to be simple but powerful. I looked at the various UNIX utilities to get an idea of how simple command line utilities have to be. Do you guys suggest any documents/links that talk about command line etiquette? I am modelling my utility on top of LVM (that's all the info I can give for now). I know it's a software engineering question, but I thought it would be appropriate to post here. Please advise.... PS: I am not asking for details about getopt or command line utility parsers.....

    Read the article

  • Beginner's steps to game programming [on hold]

    - by CodeTrasher
    I have graduated from university less than 6 months ago and became a B.Eng in Software Engineering. I have moderate understanding of programming experience from languages like C++, Java and C#. But mostly on simple desktop and mobile applications. I've tried some simple Pong-like games but never finished even the smallest game. I have a couple of nice ideas growing (IMO, at least...) in my mind but don't really know where to begin. 2D is way to go, of course, at the beginning. I just want to hear from more experienced game devs how they started out. Should I make a rough outline of the core idea and mechanics and start working on a prototype of core gameplay? Or should I just practice more by making Pong, Asteroids and that sort of games and get an understanding of those before moving on? Thanks to all!

    Read the article

  • Documentation vs tutorials vs video tutorials - which one's better?

    - by Cat
    As a developer/software engineer, what would you say are the most helpful resources when attempting to learn and use a new system? If you had to integrate a new SDK into your codebase/application, which one of the following options would you much rather go with? documentation tutorials video tutorials Same question for learning a new framework (e.g. writing an iOS app, learning Python, integrating the Android SDK, etc.). I'm not referring to becoming an expert, just get to know enough to use a system/language/framework properly. This is a pretty general question, but I think it's very relevant to anyone who's doing engineering work, since learning how to use new systems quickly is a very important skill to have. Thank you!

    Read the article

  • Les tests d'interopérabilités sur HTTP 2.0 bientôt amorcés, la navigation internet sera plus rapide grâce au multiplexage

    Les tests d'interopérabilités sur HTTP 2.0 bientôt amorcés, la navigation internet sera plus rapide grâce au multiplexageLe web est susceptible de changer fondamentalement bientôt. L'IETF (Internet Engineering Task Force) prépare la version 2.0 du protocole HTTP, a expliqué Mark Nottingham qui dirige actuellement l'équipe d'IETF HTTPBIS. Pour sa première ébauche, HTTP 2.0 s'appuiera sur SPDY, le protocole développé par Google. Le responsable de l'équipe de travail prévoit toutefois des changements significatifs. Parmi eux, un nouvel algorithme de compression d'en-tête. Il faut aussi noter que bien que SPDY n'autorise que les connexions chiffrées, pour HTTP 2.0 elles seront facultatives. HTTP 2.0...

    Read the article

  • What companies do what I'm interested in? [closed]

    - by Alex
    I'm a systems guy. People change their concentrations to avoid taking operating systems, while I took it during my first semester after transferring. I'm taking compilers and networks now, and I think they're awesome. And yet there are so many job postings looking for people to do work in things like web development, and so few postings looking for people to work in kernel hacking or network engineering. What sorts of companies do these things? I'm currently awaiting a contract in the mail for an internship with VMWare, so I'm not out of a job for the summer. Still, I'd like to companies do these things.

    Read the article

  • As a minor, how can I make programming profitable? [closed]

    - by lesderid
    Possible Duplicate: Can I be “too young” to get a programming job? I’m 15 and I want to Freelance I've always loved programming. I started when I was about 8 with making some silly WinForms applications in VB.Net that basically did nothing. Now, I'm 15 and I would say I'm quite good C# and I'm reading through Jon Skeet's C# In Depth. I also have some experience with VB, C++ and Assembler (mostly reverse engineering). I really love coding, which got me wondering about college, what I can study to get into the software business. However, I would like to earn some money now, so I can spend it on better hardware, on development tools or on other hobbies. This is hard because I don't have any work experience nor have I done any programming-related studies. It's also not legal for me to do any freelancing jobs as I'm under the age of 18. How can I use my current experience at my age to earn some money?

    Read the article

  • mobile apllication building

    - by Tekwane Mwendwa
    I got this from a guy thats to build a mobile application what does most of it mean purpose (what problem does your application solve) Audience (who will use your app? what are some examples of user cases?) platforms (iOS, Android, web/responsive web, etc) detailed feature requirements (consider both front and back end, if you can) what services you need from Sourcebits (design & engineering?) any important technical details (existing dependencies such as a server that your app will need to interface with, custom APIs, etc etc any wireframes or other visual assets? any existing apps with similar purpose / design / interactive sense budget/funding limitations development timeframe

    Read the article

  • Someone who needs inspiration [on hold]

    - by Anestis
    My apologies if it is not a code problem. However, it is a problem that concerns programming. As a recently graduated Computer Systems Engineering I have gained some basic knowledge with programming using JAVA. I have realised 2 things, the first one is that I realy liked programming and the second is that I am not good at all. More specifically, I struggle on problem solving and when i face complex tasks I feel lost. Every day , I spend some quality time doing simple exercises in order to be more familiar with JAVA. My target is to become a good programmer and find a job on a software company. I am afraid maybe " I dont have it" thats why I am asking you , what should I do? Should i give up? Thanks in advance, Anestis

    Read the article

  • Am I unhireable?

    - by DrSammyD
    I've received my B.S. in Software Engineering in August 2010 and I've been looking for a job since. I've gotten two interviews since that went up to the technical phone interview and then they were no longer interested. One of the recruiters mentioned to me that they thought my fundamentals weren't strong enough. What do I need to brush up on in order to get past the technical phone interview. My language of most experience is C#. I know Object Oriented Programming. I know what the difference between an interface and an abstract class is. I've applied to positions from game programming to WPF/Silverlight. I have a portfolio website www.samarmstrong.me. It also has my resume on there. I never had real internship. Am I unhireable?

    Read the article

  • DotNetNuke 5.3.0 Almost there

    The 5.3.0 development cycle has been unlike any in our 7+ year history. In some respects this is good and in others not so much. As I explained in my Just Like Clockwork post, we are working hard to make monthly releases a habit and to have release schedules that are predictable. DotNetNuke 5.3.0 marks the first major release we have attempted since splitting our engineering group into feature development and maintenance groups. As always, doing anything for the first time can be challenging. The...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

  • Multi-tenant ASP.NET MVC - Views

    - by zowens
    Part I – Introduction Part II – Foundation Part III – Controllers   So far we have covered the basic premise of tenants and how they will be delegated. Now comes a big issue with multi-tenancy, the views. In some applications, you will not have to override views for each tenant. However, one of my requirements is to add extra views (and controller actions) along with overriding views from the core structure. This presents a bit of a problem in locating views for each tenant request. I have chosen quite an opinionated approach at the present but will coming back to the “views” issue in a later post. What’s the deal? The path I’ve chosen is to use precompiled Spark views. I really love Spark View Engine and was planning on using it in my project anyways. However, I ran across a really neat aspect of the source when I was having a look under the hood. There’s an easy way to hook in embedded views from your project. There are solutions that provide this, but they implement a special Virtual Path Provider. While I think this is a great solution, I would rather just have Spark take care of the view resolution. The magic actually happens during the compilation of the views into a bin-deployable DLL. After the views are compiled, the are simply pulled out of the views DLL. Each tenant has its own views DLL that just has “.Views” appended after the assembly name as a convention. The list of reasons for this approach are quite long. The primary motivation is performance. I’ve had quite a few performance issues in the past and I would like to increase my application’s performance in any way that I can. My customized build of Spark removes insignificant whitespace from the HTML output so I can some some bandwidth and load time without having to deal with whitespace removal at runtime.   How to setup Tenants for the Host In the source, I’ve provided a single tenant as a sample (Sample1). This will serve as a template for subsequent tenants in your application. The first step is to add a “PostBuildStep” installer into the project. I’ve defined one in the source that will eventually change as we focus more on the construction of dependency containers. The next step is to tell the project to run the installer and copy the DLL output to a folder in the host that will pick up as a tenant. Here’s the code that will achieve it (this belongs in Post-build event command line field in the Build Events tab of settings) %systemroot%\Microsoft.NET\Framework\v4.0.30319\installutil "$(TargetPath)" copy /Y "$(TargetDir)$(TargetName)*.dll" "$(SolutionDir)Web\Tenants\" copy /Y "$(TargetDir)$(TargetName)*.pdb" "$(SolutionDir)Web\Tenants\" The DLLs with a name starting with the target assembly name will be copied to the “Tenants” folder in the web project. This means something like MultiTenancy.Tenants.Sample1.dll and MultiTenancy.Tenants.Sample1.Views.dll will both be copied along with the debug symbols. This is probably the simplest way to go about this, but it is a tad inflexible. For example, what if you have dependencies? The preferred method would probably be to use IL Merge to merge your dependencies with your target DLL. This would have to be added in the build events. Another way to achieve that would be to simply bypass Visual Studio events and use MSBuild.   I also got a question about how I was setting up the controller factory. Here’s the basics on how I’m setting up tenants inside the host (Global.asax) protected void Application_Start() { RegisterRoutes(RouteTable.Routes); // create a container just to pull in tenants var topContainer = new Container(); topContainer.Configure(config => { config.Scan(scanner => { scanner.AssembliesFromPath(Path.Combine(Server.MapPath("~/"), "Tenants")); scanner.AddAllTypesOf<IApplicationTenant>(); }); }); // create selectors var tenantSelector = new DefaultTenantSelector(topContainer.GetAllInstances<IApplicationTenant>()); var containerSelector = new TenantContainerResolver(tenantSelector); // clear view engines, we don't want anything other than spark ViewEngines.Engines.Clear(); // set view engine ViewEngines.Engines.Add(new TenantViewEngine(tenantSelector)); // set controller factory ControllerBuilder.Current.SetControllerFactory(new ContainerControllerFactory(containerSelector)); } The code to setup the tenants isn’t actually that hard. I’m utilizing assembly scanners in StructureMap as a simple way to pull in DLLs that are not in the AppDomain. Remember that there is a dependency on the host in the tenants and a tenant cannot simply be referenced by a host because of circular dependencies.   Tenant View Engine TenantViewEngine is a simple delegator to the tenant’s specified view engine. You might have noticed that a tenant has to define a view engine. public interface IApplicationTenant { .... IViewEngine ViewEngine { get; } } The trick comes in specifying the view engine on the tenant side. Here’s some of the code that will pull views from the DLL. protected virtual IViewEngine DetermineViewEngine() { var factory = new SparkViewFactory(); var file = GetType().Assembly.CodeBase.Without("file:///").Replace(".dll", ".Views.dll").Replace('/', '\\'); var assembly = Assembly.LoadFile(file); factory.Engine.LoadBatchCompilation(assembly); return factory; } This code resides in an abstract Tenant where the fields are setup in the constructor. This method (inside the abstract class) will load the Views assembly and load the compilation into Spark’s “Descriptors” that will be used to determine views. There is some trickery on determining the file location… but it works just fine.   Up Next There’s just a few big things left such as StructureMap configuring controllers with a convention instead of specifying types directly with container construction and content resolution. I will also try to find a way to use the Web Forms View Engine in a multi-tenant way we achieved with the Spark View Engine without using a virtual path provider. I will probably not use the Web Forms View Engine personally, but I’m sure some people would prefer using WebForms because of the maturity of the engine. As always, I love to take questions by email or on twitter. Suggestions are always welcome as well! (Oh, and here’s another link to the source code).

    Read the article

  • Differences Between NHibernate and Entity Framework

    - by Ricardo Peres
    Introduction NHibernate and Entity Framework are two of the most popular O/RM frameworks on the .NET world. Although they share some functionality, there are some aspects on which they are quite different. This post will describe this differences and will hopefully help you get started with the one you know less. Mind you, this is a personal selection of features to compare, it is by no way an exhaustive list. History First, a bit of history. NHibernate is an open-source project that was first ported from Java’s venerable Hibernate framework, one of the first O/RM frameworks, but nowadays it is not tied to it, for example, it has .NET specific features, and has evolved in different ways from those of its Java counterpart. Current version is 3.3, with 3.4 on the horizon. It currently targets .NET 3.5, but can be used as well in .NET 4, it only makes no use of any of its specific functionality. You can find its home page at NHForge. Entity Framework 1 came out with .NET 3.5 and is now on its second major version, despite being version 4. Code First sits on top of it and but came separately and will also continue to be released out of line with major .NET distributions. It is currently on version 4.3.1 and version 5 will be released together with .NET Framework 4.5. All versions will target the current version of .NET, at the time of their release. Its home location is located at MSDN. Architecture In NHibernate, there is a separation between the Unit of Work and the configuration and model instances. You start off by creating a Configuration object, where you specify all global NHibernate settings such as the database and dialect to use, the batch sizes, the mappings, etc, then you build an ISessionFactory from it. The ISessionFactory holds model and metadata that is tied to a particular database and to the settings that came from the Configuration object, and, there will typically be only one instance of each in a process. Finally, you create instances of ISession from the ISessionFactory, which is the NHibernate representation of the Unit of Work and Identity Map. This is a lightweight object, it basically opens and closes a database connection as required and keeps track of the entities associated with it. ISession objects are cheap to create and dispose, because all of the model complexity is stored in the ISessionFactory and Configuration objects. As for Entity Framework, the ObjectContext/DbContext holds the configuration, model and acts as the Unit of Work, holding references to all of the known entity instances. This class is therefore not lightweight as its NHibernate counterpart and it is not uncommon to see examples where an instance is cached on a field. Mappings Both NHibernate and Entity Framework (Code First) support the use of POCOs to represent entities, no base classes are required (or even possible, in the case of NHibernate). As for mapping to and from the database, NHibernate supports three types of mappings: XML-based, which have the advantage of not tying the entity classes to a particular O/RM; the XML files can be deployed as files on the file system or as embedded resources in an assembly; Attribute-based, for keeping both the entities and database details on the same place at the expense of polluting the entity classes with NHibernate-specific attributes; Strongly-typed code-based, which allows dynamic creation of the model and strongly typing it, so that if, for example, a property name changes, the mapping will also be updated. Entity Framework can use: Attribute-based (although attributes cannot express all of the available possibilities – for example, cascading); Strongly-typed code mappings. Database Support With NHibernate you can use mostly any database you want, including: SQL Server; SQL Server Compact; SQL Server Azure; Oracle; DB2; PostgreSQL; MySQL; Sybase Adaptive Server/SQL Anywhere; Firebird; SQLLite; Informix; Any through OLE DB; Any through ODBC. Out of the box, Entity Framework only supports SQL Server, but a number of providers exist, both free and commercial, for some of the most used databases, such as Oracle and MySQL. See a list here. Inheritance Strategies Both NHibernate and Entity Framework support the three canonical inheritance strategies: Table Per Type Hierarchy (Single Table Inheritance), Table Per Type (Class Table Inheritance) and Table Per Concrete Type (Concrete Table Inheritance). Associations Regarding associations, both support one to one, one to many and many to many. However, NHibernate offers far more collection types: Bags of entities or values: unordered, possibly with duplicates; Lists of entities or values: ordered, indexed by a number column; Maps of entities or values: indexed by either an entity or any value; Sets of entities or values: unordered, no duplicates; Arrays of entities or values: indexed, immutable. Querying NHibernate exposes several querying APIs: LINQ is probably the most used nowadays, and really does not need to be introduced; Hibernate Query Language (HQL) is a database-agnostic, object-oriented SQL-alike language that exists since NHibernate’s creation and still offers the most advanced querying possibilities; well suited for dynamic queries, even if using string concatenation; Criteria API is an implementation of the Query Object pattern where you create a semi-abstract conceptual representation of the query you wish to execute by means of a class model; also a good choice for dynamic querying; Query Over offers a similar API to Criteria, but using strongly-typed LINQ expressions instead of strings; for this, although more refactor-friendlier that Criteria, it is also less suited for dynamic queries; SQL, including stored procedures, can also be used; Integration with Lucene.NET indexer is available. As for Entity Framework: LINQ to Entities is fully supported, and its implementation is considered very complete; it is the API of choice for most developers; Entity-SQL, HQL’s counterpart, is also an object-oriented, database-independent querying language that can be used for dynamic queries; SQL, of course, is also supported. Caching Both NHibernate and Entity Framework, of course, feature first-level cache. NHibernate also supports a second-level cache, that can be used among multiple ISessionFactorys, even in different processes/machines: Hashtable (in-memory); SysCache (uses ASP.NET as the cache provider); SysCache2 (same as above but with support for SQL Server SQL Dependencies); Prevalence; SharedCache; Memcached; Redis; NCache; Appfabric Caching. Out of the box, Entity Framework does not have any second-level cache mechanism, however, there are some public samples that show how we can add this. ID Generators NHibernate supports different ID generation strategies, coming from the database and otherwise: Identity (for SQL Server, MySQL, and databases who support identity columns); Sequence (for Oracle, PostgreSQL, and others who support sequences); Trigger-based; HiLo; Sequence HiLo (for databases that support sequences); Several GUID flavors, both in GUID as well as in string format; Increment (for single-user uses); Assigned (must know what you’re doing); Sequence-style (either uses an actual sequence or a single-column table); Table of ids; Pooled (similar to HiLo but stores high values in a table); Native (uses whatever mechanism the current database supports, identity or sequence). Entity Framework only supports: Identity generation; GUIDs; Assigned values. Properties NHibernate supports properties of entity types (one to one or many to one), collections (one to many or many to many) as well as scalars and enumerations. It offers a mechanism for having complex property types generated from the database, which even include support for querying. It also supports properties originated from SQL formulas. Entity Framework only supports scalars, entity types and collections. Enumerations support will come in the next version. Events and Interception NHibernate has a very rich event model, that exposes more than 20 events, either for synchronous pre-execution or asynchronous post-execution, including: Pre/Post-Load; Pre/Post-Delete; Pre/Post-Insert; Pre/Post-Update; Pre/Post-Flush. It also features interception of class instancing and SQL generation. As for Entity Framework, only two events exist: ObjectMaterialized (after loading an entity from the database); SavingChanges (before saving changes, which include deleting, inserting and updating). Tracking Changes For NHibernate as well as Entity Framework, all changes are tracked by their respective Unit of Work implementation. Entities can be attached and detached to it, Entity Framework does, however, also support self-tracking entities. Optimistic Concurrency Control NHibernate supports all of the imaginable scenarios: SQL Server’s ROWVERSION; Oracle’s ORA_ROWSCN; A column containing date and time; A column containing a version number; All/dirty columns comparison. Entity Framework is more focused on Entity Framework, so it only supports: SQL Server’s ROWVERSION; Comparing all/some columns. Batching NHibernate has full support for insertion batching, but only if the ID generator in use is not database-based (for example, it cannot be used with Identity), whereas Entity Framework has no batching at all. Cascading Both support cascading for collections and associations: when an entity is deleted, their conceptual children are also deleted. NHibernate also offers the possibility to set the foreign key column on children to NULL instead of removing them. Flushing Changes NHibernate’s ISession has a FlushMode property that can have the following values: Auto: changes are sent to the database when necessary, for example, if there are dirty instances of an entity type, and a query is performed against this entity type, or if the ISession is being disposed; Commit: changes are sent when committing the current transaction; Never: changes are only sent when explicitly calling Flush(). As for Entity Framework, changes have to be explicitly sent through a call to AcceptAllChanges()/SaveChanges(). Lazy Loading NHibernate supports lazy loading for Associated entities (one to one, many to one); Collections (one to many, many to many); Scalar properties (thing of BLOBs or CLOBs). Entity Framework only supports lazy loading for: Associated entities; Collections. Generating and Updating the Database Both NHibernate and Entity Framework Code First (with the Migrations API) allow creating the database model from the mapping and updating it if the mapping changes. Extensibility As you can guess, NHibernate is far more extensible than Entity Framework. Basically, everything can be extended, from ID generation, to LINQ to SQL transformation, HQL native SQL support, custom column types, custom association collections, SQL generation, supported databases, etc. With Entity Framework your options are more limited, at least, because practically no information exists as to what can be extended/changed. It features a provider model that can be extended to support any database. Integration With Other Microsoft APIs and Tools When it comes to integration with Microsoft technologies, it will come as no surprise that Entity Framework offers the best support. For example, the following technologies are fully supported: ASP.NET (through the EntityDataSource); ASP.NET Dynamic Data; WCF Data Services; WCF RIA Services; Visual Studio (through the integrated designer). Documentation This is another point where Entity Framework is superior: NHibernate lacks, for starters, an up to date API reference synchronized with its current version. It does have a community mailing list, blogs and wikis, although not much used. Entity Framework has a number of resources on MSDN and, of course, several forums and discussion groups exist. Conclusion Like I said, this is a personal list. I may come as a surprise to some that Entity Framework is so behind NHibernate in so many aspects, but it is true that NHibernate is much older and, due to its open-source nature, is not tied to product-specific timeframes and can thus evolve much more rapidly. I do like both, and I chose whichever is best for the job I have at hands. I am looking forward to the changes in EF5 which will add significant value to an already interesting product. So, what do you think? Did I forget anything important or is there anything else worth talking about? Looking forward for your comments!

    Read the article

< Previous Page | 568 569 570 571 572 573 574 575 576 577 578 579  | Next Page >