Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
There are a number of framework out there that provide the skeleton for building applications such as CSLA, XAF, SCSF, ...
Do you use one yourself or do you build from scratch?
.NET is my favorite framework.
The applications I work on are usually too complex to fit into a "skeleton". However when working on Winforms, I like to take advantage of CAB for the UI. I wouldn't say this is the skeleton, but more or less the ground work for which the skeleton can be built, then the meat can be built upon it. I also like using a MVC for connecting the UI to the Data Layer. The Data Layer is typically LLBLGen or nHibernate.
For generating your skeleton for web applications, the ASP.NET Dynamic Data framework looks really promising.
I just use my own class library, which handles things like SQL (differences between different engines), provides lots of custom data structures and types, IoC/Dependency injection, etc.
I have been using the XPO-library from DevExpress before but after having some rather largish performance problems with it I'm back to plain SQL.
I have never used a bigger framework like those you mention. Earlier experience with those have always led me to believe they're powerful, but also restricting. You usually end up combating the way they do things to implement more complex features.
I used CSLA.NET to build an large LOB Windows application (title insurance) in 2007, basically it is a framework that you build your business objects based on. The business objects are generated from database tables with predefined templates. SPs are mostly utilized for data access. Personally I've not liked it because there are lots of code and template need to maintain, I prefer ORM to template based approach.
I've been using XAF to build another Windows based HR application, it can help you create a complete application just in 15 minutes with nice UI and lots of cool stuffs such at localization, customization, skinable and so on. But the big problems with XAF are limitation of the underlying XPO, and not so good performance.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
I would like to create a website similar like imdb.com. Whether imdb.com uses any framework? if so which framework it uses? Otherwise are they developing on their own? Is it easy for a normal PHP developer to create my own php framework?
As a PHP developer:
I have my own php framework, So you can say it's not so hard; But you must first learn how other frameworks work... And decide what your framework need to do... Which design patters you agree with...
Most of big websites didn't use famous frameworks, Or even their own frameworks... Mostly using a plenty of libraries... Because when you use a framework you code faster but you waste resources as RAM, CPU IO/Disk...
A well programmed application is this one that use 100% of its code source, It's good to go OOP, MVC... But not in the way most of frameworks works... This what is life less working time cause a less quality project.
There are two reasons why you would want to create your own framework:
Learning purposes, it's a great learning opportunity because you
will learn a lot.
This one I highly doubt is a issue for you, but
If you believe your framework can be different and better in some
way than those already existing, go for it.
A framework isn't the application, a framework is a tool set that lets you get straight on the application itself, instead of writing a database abstraction layer you learn how built-in in works and writes the busniess logic your application needs.
Developing a new framework is not a trivial or easy work at all. Even for a team is difficult to handle, so be extremely sure you need to create yet another one before starting.
Instead, use open source, well known solutions, so that bugs are likely to be triaged and fixed. There are many which are available even for commercial use. Just choose your favourite one: Symfony, Code Igniter or Kohana or whatever and start building your application on top.
As of IMDB, probably they are using a framework, but there is no way to tell what if any.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
When starting out on any project it could be seen as essential to pick an appropriate framework. I was wondering if you would point out any key questions that should be asked in order to aid the choice. I have looked at numerous sites and there doesn't seem to be any definative questions to ask before a choice is made.
I was wondering if, in any of your experience,s you have come across any key questions.
I gather one of the first is what are you developing? web app or desktop based
Any key questions would be a great help. This is a pretty general question as I am just looking for generic questions that would be asked before a choice is made.
Pick one you (or your team) already know.
Learning a new framework is a time consuming and expensive process that you don't want to be associated with a project. I would say the number one factor when selecting a framework/language is the existing knowledge base in your team.
[Obviously, this isn't very helpful if you don't currently know any, or the ones you do know aren't useful in the project's domain]
The best technology is the one you know. So ask a question - what technologies my team has experience in.
The main question you must ask is about stability. If you are developing an enterprise application wich sould be maintained for several years and should me stable, you should use mature and well tested frameworks. Something Java EE or .NET based for web applications. If your project is experimental, you can use experimental frameworks, technologies, languages etc.
Pick the one with good documentation. The quality of documentation gives you a clue how good the framework is.
A large user community is a plus, especially for opensource frameworks.
Ask yourself right from the start:
What are the things my application
will do, what are the ones it won't ever
do?
Choose a framework that makes it easy to accomplish the things you want from your application, care less for things that are extra. Don't worry, when you'll really need extra, you'll worry about looking then.
Who will use my application? What are
the numbers and needs of people that
will be the application's users?
You need a framework that scales well to the number of users you intend your app to handle and to their specific needs(collaboration, social interaction, ease of use, necessary tools, etc).
Is there a strong support
for the framework(from the developer or the community)?
Make sure you'll have who to turn to if you'll have questions or problems.
I usually try to find the framework that is the most popular. Have a look at a comparison of Javascript frameworks in Google Trends. It's pretty obvious that jQuery is the most popular by a large margin, so I'd lean towards using that.
It's not the only criteria, but more users means better documentation, testing, features, etc. Also, if you're new to an area of programming, then it usually pays to follow the wisdom of the crowd.
I would start by thinking about the pros and cons of frameworks in general. Based on those things that matter most in your situation, see which frameworks fit.
It's also helpful to think about the general features found in most frameworks of a platform (web application frameworks, for example). Decide which of those features are important to you, then investigate the frameworks that provide those features.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 5 years ago.
Improve this question
I'm a bit confused with the "kit" thing.
I'm a .Net guy moving toward linux and iPhone dev. I'm wondering if Kits are simply something like a dll you reference? or is it when you have a complete framework consisting of many parts?
can I call NUnit "TestKit"?
What "kits" are you referring to?
Things like WebKit (open source web page rendering engine spearheaded by Apple), UIKit (User Interface framework for iPhone development), and TuneKit (framework for building iTunes LP content) are all marketing terms used by Apple for various collections of technologies and tools.
from http://en.wiktionary.org/wiki/kit "A set of related parts, tools, clothing or other equipment, collected for some specific purpose."
A set of development tools or libraries can be called a kit. An SDK is a kit.
WebKit is a content engine, so it's not really a kit.
NUnit is a test framework, not a kit. If you ship it together with a Mocking framework you can call those together a kit. A software bundle is often also called a stack. They call LAMP a stack, not a kit.
Kit has no set meaning in Cocoa, it's kind of a suffix for frameworks that Apple likes to use. It has a bit of a connotation of being a compact, elegant, high level way to build whatever it lets you build. Occasionally it's used to distinguish a UI portion of a framework from a non-UI portion, which might have a framework starting in Core. Core is similarly mostly meaningless, but with hints of being more low level or non-UI. On the desktop Core at one point meant "shared between Cocoa and Carbon".
There is a TestKit framework! To me, the intended connotations of calling your framework
"TestKit" are as above. You intend this to be a compact, elegant way to do testing. You will not throw the kitchen sink at the problem, you will endeavor to find a way to solve all the problems people want solved in a minimal way.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Does anyone know of a good Aspose.Word alternative (or similar) product?
Can you mention any pro/con for using either?
I am currently evaluating Aspose.Word, and although it works like a charm, it's missing some of the functionalities that I require.
UPDATE: We ended up writing our own DOCX generator. We are still using Aspose.Word to convert to DOC/HTML when needed.
Our team is using Docentric Toolkit Professional Edition. One of the most important reasons for our decision was also it's relatively affordable price for teams of up to 5 developers.
The toolkit works nice with MS Office 2007/2010/2013. In our scenario, reports are produced centrally on the server, using our custom developed reporting engine, which uses Docentric api calls. Because Docentric uses OpenXML, no Word installation is needed on the server.
We have several hundreds different templates, which are ordinary Word documents, enhanced with placeholders which Docentric recognizes and fills with data at runtime during report creation.
Other features which we are using extensively are tables (included nested ones), images, graphs, conditional content and Header/Footer dynamic content.
I don't know if it's suited for your purpose but you might want to have a look at the b2xtranslator project on SourceForge:
http://b2xtranslator.sourceforge.net/
TX Text Control has an express version, but it doesn't have all the features the full version has. The express is free, and I've used it, and if your sole purpose is to create a word processor, it will not provide all of the features. Like Aspose.Words, buying the full version is REALLY expensive ($2,398.00!), and in my opinion, a ripoff.
The pros and cons are evaluating the free version
Cons:
No spell check in the free version
Cannot read .docx or .doc in the free version
No headers, footers, or dragable textboxes (like there are in Word) in the free version
Pros:
Free
Page breaks
Basic Document editing features
Our company used it for a bit, but got sick of the lack of features, and ended up just ditching it.
If Java is an option (or a preference), you could try docx4j
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am just starting to play with Django/Python and am trying to shift into the MTV mode of programming that Django asks for (insists on). Deciding on what functions should be methods of a model vs simple being a function in a view has so far been confusing. Does anyone know of a book, website, blog, slideshow, whatever that discusses Web Framework programming in more general, abstract terms? I imagine just a book on object oriented programming would do it, but I feel like that would be overkill - I was looking for something web framework specific.
My basic rule in Django is: if you could conceivably need the functionality from somewhere other than the view itself, it doesn't belong in the view function.
I'd also recommend downloading some of the plethora of apps on Django Pluggables and seeing how they do it.
Once you do find some good guide, here's something to remember: Django is a bit special with its terminology. It uses "MTV" for Model, Template and View (and can mention also a URL Dispatcher somewhere along the way), whereas a more standard set of terms is "MVC" for Model, View and Controller.
Model is the same in both meanings - a model of a data entity, often linked to a database table, if the framework implements Object/Relational Mapping (which Django does).
But the two remaining terms might be confusing; where Django talks about Views, the 'rest of the world' talks about Controllers. The basic idea is that this is where the presentation logic is done. Calculations are calculated, arrays are sorted, data is retrieved, etc. I'd say that Django's URL dispatcher is also a part of the conventional Controller concept.
Django's Templates are comparable to Views elsewhere - here you have your presentation, nothing else. Where Django forces you to a very small set of logical commands, other frameworks often just recommend you not to do anything than present HTML, with some presentation logical elements (like loops, branches, etc), but don't stop you from doing other stuff.
So, to recap:
Model: Data objects
Controller (View in Django): Data process
View (Template in Django): Presentation
Oh, btw: For a Django-specific guide, consider reading The Django Book
I've not really used Django in anger before, but in Rails and CakePHP (and by extension, any MVC web-framework) the Fat Model, Skinny Controller approach to organising your methods has been a real eye-opener for me.
If you aren't absolutely set on diving into Django and don't mind trying something else as a start, you might want to give WSGI a shot, which allows you to template your application your own way using a third party engine, rather than having to go exactly by Django's rules. This also allows you to peek at a lower level of handling requests, so you get a bit better understanding of what Django is doing under the hood.
Here are a few links that might be helpful as an overview.
From my own experience, when I first started using MVC based web-frameworks the biggest issue I had was with the Models. Prying SQL out of my fingers and making me use Objects just felt strange. Once I started thinking of my data as Objects instead of SELECT statements it started getting easier.
MVC In laymen's terms
MVC: The Most Vexing Conundrum
How to use Model-View-Controller
View function should only contain display helpers or display logic. View functions should never access the model itself, but should take parameters of model data. It is important to separate the model from the view. So if the function handles accessing the database or database objects, it belongs in the model. If the function handles formatting display, it belongs in the view.