What have been some of the most helpful resources for learning Blend from a developers perspective?
I suspect in the end we will hand off the XAML of our app to a design expert, but until that blessed day there are some things even a coding grunt should be able to manage in Blend that are painful in Visual Studio (styles for example)
Have you checked out the Microsoft training site? There is also lynda.com which has some free training to make use of. Overtime I have found the videos to the most rewarding, as walking through static screenshots is not very beneficial. Especially when attempting to understand the layout of Blend and making use of the varying tools within the product.
In addition, since you mention Silverlight, Tim Heuer has a blog which covers Silverlight and at times touches on Expression Blend. There is also Jesse Liberty who has since moved into WP7 to some degree but has varying tutorials on his web site which again touch on Blend to some degree. Both Tim and Jesse work for Microsoft so they can often times provide insightful information and are fairly active within the community in getting questions answered.
Related
My final year B.Tech. project is to (application development in VB.NET) automate the design & analysis of Intze Tank. The complete design with all the details (blueprints) need to be generated into a DWG file (AutoCAD).
I need to know how feasible it is for me (alone) to come close to completing such a project.What all libraries & learning resources I can benefit from?Where can I find similar such project(s)? (even names/links would be enough)Contacts of any knowledgeable person other than Autodesk personnel would also be very helpful.Thanks!
Can it be done as a school project?That depends upon the level of detail required. Generating a few simple drawings from some entered parameters should be a doable semester project. A complete builder's blueprint set would consist of tens or hundreds of detailed drawings - that would be a bit much for a school project.
It would help a great deal if you have had some experience in or at least exposure to technical drawing. The acad APIs make a great deal of sense to drafters but are somewhat meaningless to everyday programmers.
The AutoCAD tag wiki has some links to get you started. The AutoCAD API documentation is some of the best that I have ever used, that is mostly how I learned and worked. Owen Wengerd's blog is the only non-Autodesk resource I can think of right now.
I heard someone say that developing on the mac using cocoa is great for rapid development.
Is it a good framework for building GUI based apps relatively fast?
Here's for some historical perspective:
The Cocoa framework evolved from the NeXTSTEP framework when Apple bought NeXT (and Steve Jobs along with it) to form the basis of OS X. This is why you see lots of NS littered throughout Cocoa. And NeXTSTEP was one of the earliest frameworks to call itself a RAD framework. So from that point yes, Cocoa is a RAD framework.
There was a famous demo of how fast you can develop apps in NeXTSTEP where a full-fledged text editor (with font selection, file load/save, everything) was developed during the course of the demo (I believe it was under 30 minutes).
Another famous use of NeXTSTEP was the invention of the World Wide Web. Basically HTTP and HTML. Legend has it that Tim Berners-Lee cooked up HTTP and HTML and prototyped the worlds first web browser and web server in just a couple of days. And remember, that first web browser had the ability to edit as well as view HTML -- yes, the original internet was a giant Wiki!
Even at the time it was released as Cocoa around 96/97 it was still considered one of the top RAD environments around. This was around the time Borland was heavily positioning Delphi as a RAD environment and Microsoft's MFC was painful to use in comparison.
These days I would say that it is roughly comparable to .Net. Though I personally feel (and I know lots of long-time Cocoa programmers tend to share this sentiment) that Cocoa still has an edge in how fast I can take an idea to completion and how clean the resulting code is. It's an older framework, more mature and implemented lots of things right but other frameworks have had lots of time to catch up.
I strongly believe the combination of Interface Builder and Cocoa makes prototyping an application faster than anything else I've used. Typically, creating something that is 'visible' takes just a few minutes using IB to wire controls to code, and a few more to write the code itself. Factor in the modular nature of View Controllers and the process of adding GUI elements to a large codebase is suddenly very easy. The next version of Xcode makes this process even faster, so I daresay you've got a lot to look forward to.
If you are familiar with the tools and willing to work with the provided UI elements then I think so. However because you're working with a fairly rich and stateful UI once you decide that you need custom views then you have signed up for some real work.
Overall I find web development slightly faster, largely because there's a wider selection of available libraries and frameworks to build on, but that's only an alternative for certain types of applications.
I think one of the best ways to learn a new programming language is to dive into source code and see how experienced coders write. I've found this kind of question asked here on Stack Overflow for other languages, but none targeted at Objective-C. The closest I've found is this question about good-looking Cocoa user interfaces, but I'm thinking in terms of general code quality, such as good use of idioms and design patterns, and usable documentation. Another good characteristic would be a code-base that is large enough to require real organizational discipline, but small enough that a beginner can fit his/her head around.
What do you think is a high-quality open source project that meets these criteria?
There's a decent list of open source Mac projects on CocoaDev: http://cocoadev.com/CocoaOpen
Not all of the projects are still active, but a decent number of them are. I particularly recommend:
BWToolkit - http://bitbucket.org/bwalkin/bwtoolkit/
BGHUDAppKit - http://www.binarymethod.com/bghudappkit/
CHDataStructures - http://cocoaheads.byu.edu/code/CHDataStructures
MGTwitterEngine - http://mattgemmell.com/source
Sparkle - http://code.google.com/p/sparkleplus/
Colloquy - http://colloquy.info/project/wiki/Source%20Code
CocoaRest - http://github.com/sdegutis/CocoaREST
CorePlot - http://code.google.com/p/core-plot/
I've found Adium to be a well-designed and written Objective-C project. It has a huge codebase, too.
I don't think there's any one place to learn all the Objective-C idioms and best practices, but you can pick them up here and there over time and practice. Cocoa mailing lists and blogs are good resources for this. (There are several SO questions relating to that.)
I haven't dived into the source myself, but the Omni frameworks are well-respected in the Mac community.
I work on a framework of my own that's still rough around the edges, but I strive for quality documentation in addition to understandable, well-structured code.
Google Quick Search Box [ qsb-mac - Google Code ]
I think The Google Quick Search Box (QSB) is worth a look. IMHO it's pretty much a cleaner googley rewrite of Quicksilver (Note: N. Jitkoff, the QS programmer, is also involved in the Google QSB).
Apple has tons of downloadable examples on their developer website. You get to see the source, and the license is BSDish from what I recall (use it for whatever, but don't repost original code without the license).
http://developer.apple.com/samplecode/Cocoa/index-date.html
Check Out lots off open source project here.
http://code4app.net
http://code4app.com
https://www.cocoacontrols.com
Here's a test app I wrote earlier today. Download links under “get source” in the top-right.
It's small, but it demonstrates good organizational discipline (separate controller object, instead of everything crammed into AppDelegate), a simple model layer with one model class (Header), and correct use of Cocoa Bindings.
I used to work on the GNUstep sources, they've got a good consistent coding style and the code is well-organised. Of course the project is hardly small, but given that you know what most of the classes do as you've used them in your Cocoa projects it's easy to zoom in on a piece that interests you. Some of the GNUstep Applications Project or Étoilé apps may also be a good place to start.
Check out PSTreeGraph, a view control for iPad applications.
iMedia Browser
, shows support of 10.4 - 10.7 strategies, is neatly and purposefully organized, and deeply commented. inherent problems using ImageKit have been boldly approached and solved.
i aspire to this level of thought mixed with practicality.
As I get myself ready to move my Winform applications to XAML, I was wondering what are the must-have third party XAML controls that will save me developing time and will make my app look shiny with little work?
Thanks,
Nestor
XAML is markup language rather than a platform. In fact, you don't even have to use XAML to write WPF applications if you really don't want to. Since you're talking about converting from WinForms I believe that the question you're asking is more one of which third-party WPF control kits exist, so I'll answer on that assumption.
There are a few companies that have pretty extensive suites. As Shoban mentioned above, Telerik is one. You also have Infragistics, Actipro, Component One, to name just a few.
There are also quite a few specialty libraries to aid in Business Intelligence, Graphics Processing and more.
In other words, it's not possibility to make a good recommendation as to specific control libraries, but I can point you in a couple of directions.
WindowsClient.Net attempts to maintain a control gallery (not just for WPF, either). That's a good place to start. There are also software sales companies such as ComponentSource which can also set you in a direction or two.
I tried to link the other companies, but SO apparently thinks I'm too much of a noob to be trusted with high-security stuff such as multiple hyperlinks. :)
Check out Telerik. They have some nice controls.
I posted this community wiki in the hopes of creating a thread of expertise. My question is thus ... "Where do the experts go to learn about the newest coding techniques?".
I'm basically looking for the leading/bleeding edge of architecture, design, development and theory.
I know conferences and trade shows are probably the best venues to see the latest and greatest, but for those on a limited budget (of both time and money) such as myself, I'm looking for websites that I can read in the evenings that will keep me current on what's new in the world.
I program mostly in C# but the websites need not be geared towards C#.
Blogs
Martin Fowler, the best starting point I think. (http://martinfowler.com/)
articles like "Consumer-Driven Contracts: A Service Evolution Pattern", "Mocks Aren't Stubs", "Inversion of Control Containers and the Dependency Injection pattern" (http://martinfowler.com/articles.html)
David Hayden (http://www.davidhayden.com/)
Reflective Perspective, a good daily feed (http://blog.cwa.me.uk/tags/morning-brew/)
Ayende (http://ayende.com/Blog/)
Eric Lippert - Works on the language. Sometimes read about new C# features before they're announced elsewhere.
Scott Hanselman
Journals
The Architecture Journal (http://msdn.microsoft.com/en-us/architecture/bb410935.aspx) And what's a great option - you can order free, paper based copies!
MSDN Magazine (http://msdn.microsoft.com/en-us/magazine/default.aspx)
Community
Codeproject.com, short and large articles
pnpguidance.com, tutorials, blogs and articles
Real applications and devteams
pattern&practices home: http://msdn.microsoft.com/en-us/practices/default.aspx, and P&P products
SCSF, the Smart Client Software Factory home. Learn about desktop enterprise systems. (http://msdn.microsoft.com/en-us/library/aa480482.aspx)
WCSF, the Web Client Software Factory home. Learn about busines(process) oriented web architecures. (http://msdn.microsoft.com/en-us/library/bb264518.aspx)
Enterprise Library
For free - I would recommend MSDN, particularly keep an eye on the C# and .NET technology pages. Lots of blogs, and nearly every announcements about what's up and coming is put there.
Serverside.net
The ondemand(previously recorded) webcasts from Microsoft are normally really good, but it's a painful number of clicks to actually get to the point where you can download the file, and sometimes you find that it is not available.
Also sometimes you can find a .NET User Group locally that will have speakers/sessions occasionally. These are also great ways to network and find out what kind of work is going on in your area.
Books, books, books! Good books are written by subject matter expects, involve input from many sources, are peer reviewed, well structured and go orders of magnitude deeper than trade shows, and most online material. When you buy a book, you get the experience of an expert for a very reasonable price.
NDepend documentation comes with two white books and also online blog posts and articles concerning the architecture for large .NET application:
Partitioning code base through .NET assemblies and Visual Studio projects (8 pages)
Defining .NET Components with Namespaces (7 pages)
Control Components Dependencies to gain Clean Architecture
Re-factoring, Re-Structuring and the cost of Levelizing
Evolutionary Design and Acyclic componentization
Layering, the Level metric and the Discourse of Method
Fighting Fabricated Complexity
I never get to go to PDC, but I do love to watch the videos.
As a previous post mentioned the MS PDC videos are on online. Same with Mix which has good MS Web development related content. Also, for general MS videos there is Channel 9, it's not all technical content, but it's worth searching if you are looking for something in particular.
Someone already mentioned blogs, here are a few more:
Scott Hansleman - lots of stuff on there, a lot of ASP, MVC stuff.
Phil Haack - another good MVC guy.
Rob Connery - again a lot of focus on MVC.
ScottGu - according to his blog he "builds a few products for Microsoft", which has to be the understatment of the year - he is in charge of ASP, IIS, SIlverlight and much more besides at MS.
Check out Sharp Architecture, it's very promising.
I've collected several RSS feeds that I regularly to stay up-to-date on .NET and Agile. If you like I can share the list with you. It contains most of the stuff already mentioned here.