[Photograph] Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Để thực hiện các tác phẩm, Heinz Maier sử dụng một hoặc hai đèn flash, một bộ lọc nhiều màu sắc, khoảng 200 đến 300 ml nước, thiết bị Stopshot cùng một số vật dụng nhỏ. Anh sử dụng một máy ảnh Canon EOS 7D để đảm bảo tốc độ chụp đủ nhanh, một ống kính macro và khi chụp cho các giọt nước rơi từ độ cao khoảng 35 cm.

Trong quá trình rơi hay chạm mặt nước, các giọt nước liên tục thay đổi hình dạng và tạo ra các hình thù rất khác nhau. Cộng với việc sử dụng bộ lọc đa màu sắc, Heinz Maier đã có thể thu được rất nhiều bức hình về giọt nước đẹp.

Dưới đây là các tác phẩm:

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Ngắm ảnh chụp đẹp mê ly từ những giọt nước

Theo: TH/Reds.vn

[Startup] 4 xu hướng thương mại điện tử chủ đạo năm 2014

ecommerce-trend-2014Bất kể bạn đang sở hữu một doanh nghiệp online hay một cửa hàng bày bán sản phẩm, bạn đều có thể mở rộng quy mô kinh doanh với thương mại điện tử. Hơn bao giờ hết, khách hàng đang ngày càng ưa chuộng hình thức mua hàng online vì lý do thuận tiện và ít phức tạp hơn so với cách mua hàng thông thường.

Những doanh nghiệp mới mở rộng phát triển theo hướng thương mại điện tử có thể gặp đôi chút khó khăn, nhưng đối mặt và vượt qua những khó khăn này sẽ mang lại hiệu quả không hề nhỏ. Nếu bạn muốn chọn lựa thương mại điện tử làm hướng đi kiếm tiền trong tương lai của bạn thì dưới đây là 4 xu hướng chủ đạo năm 2014 bạn không nên bỏ qua.

1. Nội dung là quan trọng nhất

Các thuật toán tìm kiếm mới của Google đã thay đổi hoàn toàn danh sách các website được hiển thị trong trang tìm kiếm. Bạn không còn có thể dựa vào các tiêu đề và thẻ từ khoá để có được sự chú ý của Google. Thay vào đó, Google có xu hướng tìm kiếm những website có nội dung thực sự thu hút.

Đối với một website thương mại điện tử việc thay đổi của ông lớn Google này sẽ mang đến hai ý nghĩa. Trước tiên, bạn cần phải cung cấp một mô tả hấp dẫn cũng như thông tin chi tiết về sản phẩm, càng ít những thông tin này, cơ hội Google chú ý đến website của bạn càng thấp. Thứ hai, viết blog về website thương mại điện tử của chính bạn cũng có thể là gợi ý hay. Đây là một cách rất độc đáo giúp bạn cung cấp những bài viết, thông tin, sự hữu dụng cũng như cách sử dụng sản phẩm, điều này cũng giúp bạn tăng khả năng được chú ý mỗi khi người sử dụng tìm kiếm.

E-Commerce

2. Di động hoá

Di động đang ngày càng phát triển và là xu hướng phát triển không thể đảo ngược. Một số nghiên cứu gần đây chỉ ra rằng gần 40% người dân thực hiện mua sắm online thông qua các thiết bị di động. Có thể khẳng định rằng mua sắm trên di động là một xu hướng tất yếu trong tương lai và điều bạn cần làm là biến website của bạn và các trải nghiệm mua sắm trực tuyến của khách hàng trở nên thuận tiện và thân thiện với các thiết bị di động

Tuy nhiên, có một thực tế gần đây là hầu hết các trang web thương mại điện tử ở Việt Nam lại chưa chú trọng hoặc chưa thực sự phát triển các ứng dụng hoặc trang mobile mua sắm của mình. Và nếu bạn nằm trong số những người muốn thử sức với thương mại điện tử, hy vọng rằng bạn đã chú ý đến xu hướng này từ năm trước, nếu không, bạn sẽ cần phải hết sức khẩn trương đầu tư cho yếu tố này ngay từ bây giờ.

Google-smartphone-start

3. Sản phẩm hoặc dịch vụ khác biệt

Khách hàng luôn muốn nổi bật. Họ luôn muốn mọi vật xung quanh mang tính chất phổ biến chỉ trừ những sản phẩm mà họ sở hữu, những sản phẩm mang đến sự khác biệt, dành riêng cho họ. Cung cấp các sản phầm và dịch vụ có khả năng tuỳ chỉnh sẽ làm nổi bật doanh nghiệp của bạn so với các đối thủ cạnh tranh. Bạn càng cung cấp những sản phẩm có khả năng tuỳ chỉnh cao, cơ hội thành công của bạn càng lớn.

Hãy nhìn vào trường hợp tai nghe 7xu.vn, họ sản xuất tai nghe và trang trí theo yêu cầu của khách hàng, và doanh thu mang lại cho họ đã tăng lên đến 47%. Và hầu hết lượng khách hàng đó đều trở thành khách hàng trung thành. Vì vậy, hãy cố gắng để tạo ra điểm nhấn cho dịch vụ hay sản phẩm mà bạn kinh doanh.

Be_Different_by_JollyJoker1411

4. Vận chuyển miễn phí và nhanh chóng

Hiện nay, có rất nhiều ưu đãi hấp dẫn được cung cấp dành cho khách hàng mua sắm online và một lượng lớn website cung cấp dịch vụ miễn phí vận chuyển hoặc ưu đãi khi giao hàng. Doanh nghiệp của bạn nhất thiết phải xây dựng thật hiệu quả theo xu thế này nếu không muốn khách hàng sẽ tìm kiếm cơ hội mua hàng ở những gian hàng khác.

Vì đặc thù giao thông phức tạp như tại Việt Nam nên bài toán về vận chuyển hàng hóa tuy đã được sự tham gia của khá nhiều tay chơi nhưng vẫn chưa đáp ứng đủ nhu cầu của khách hàng. Ghi nhận tại thị trường giao nhận hiện nay ở nước ta chỉ có một vài công ty giao nhận bảo đảm được độ phủ và thời gian vận chuyển hợp lý nên tiềm năng thị trường còn rất lớn. Tuy chi phí giao nhận chiếm chỉ chiếm khoảng 6%-10% giá trị đơn hàng nhưng đây thực sự vẫn là một bài toán mà các nhà thương mại điện tử cần đối mặt và giải quyết.

(Xem thêm: Dịch vụ giao nhận hàng – miếng bánh béo bở cùng với sự phát triển của TMĐT)

Trong khi đó, theo Hiệp hội Các nhà bán lẻ Việt Nam, bộ phận người tiêu dùng “ngồi nhà” sẽ càng tăng cùng với sự gia tăng của bán lẻ trên mạng sẽ thúc đẩy thêm sự phát triển của dịch vụ giao nhận.

(Biên tập bởi Sơn Trần)

[Startup] Lời khuyên từ IDGVV: “Đam mê và tư duy giải quyết vấn đề là điều startup cần phải có”

Khởi nghiệp Việt Nam hiện nay đang chứng kiến sự ra mắt của rất nhiều các startup và founder mới, cũng như sự lớn mạnh của các startup Việt trên quy mô toàn cầu. Nhìn nhận lại những thành công và quãng đường các startup Việt đã đi, Tech In Asia đã có buổi nói chuyện với anh Nguyễn Hồng Trường, Phó chủ tịch quỹ đầu tư mạo hiểm IDG Ventures Vietnam, về tình hình khởi nghiệp cũng như các nhà khởi nghiệp Việt Nam hiện nay.

idjvv-techinasiaVN

Anh có nhận xét gì về các nhà khởi nghiệp Việt Nam hiện nay?

Các nhà khởi nghiệp Việt Nam hiện nay có hai đặc điểm chính. Thứ nhất, họ là những người rất có hoài bão, rất có quyết tâm, điều tối quan trọng mà một nhà khởi nghiệp cần có. Bởi khởi nghiệp là rất khó khăn, phải bắt đầu từ hai bàn tay trắng, phải có hoài bão, có quyết tâm sắt đá thì mới có thể khởi nghiệp được.

Đặc điểm thứ hai là họ có những thuận lợi hơn so với những nhà khởi nghiệp giai đoạn trước – cách đây 5 năm. Giai đoạn hiện nay, họ có nhiều cơ hội tiếp cận với thông tin hơn, và có cơ hội học hỏi được từ các startup Việt Nam và thế giới, học được từ thành công, thất bại của các startup ấy. Và họ cũng có được sự hỗ trợ tốt hơn so với giai đoạn trước.

Nhưng kèm với những thuận lợi này thì họ cũng phải đối mặt với thách thức, đó là thách thức về thị trường. Giai đoạn trước, trước đây thị trường rộng lớn, chưa có ai làm, khai thác. Đến thời điểm hiện nay thì cục diện thị trường đã tương đối được xác lập rồi. Ở mỗi lĩnh vực đều đã có những nhà khổng lồ thống trị, và vì thế việc tạo ra được một sản phẩm đột phá là không hề đơn giản.

Vậy theo anh, để thành công thì một nhà khởi nghiệp cần có những yếu tố gì?

Yếu tố cơ bản nhất, cũng là điều kiện cần, là nhà khởi nghiệp phải có hoài bão và quyết tâm. Có rất nhiều con đường dẫn đến thành công, nhưng khác với các ngành các lĩnh vực khác, để thành công trong ICT thì nhà khởi nghiệp phải có một hoài bão và quyết tâm rất sắt đá, phải biết luôn nhìn về phía trước. Đó là tinh thần doanh nhân. Nhưng đây cũng như là 1 cái bẫy. Nếu chỉ có hoài bão, quyết tâm mà lại thiếu đi tầm nhìn đúng đắn thì đó chỉ là quyết tâm mù quáng và không đi đến đâu cả. Đó là cạm bẫy cơ bản đối với những người làm khởi nghiệp, làm doanh nhân.

Còn điều kiện đủ là các nhà khởi nghiệp phải tạo ra được sản phẩm phù hợp với thị trường và phù hợp với con người họ. Thiếu một trong hai đều không được. Sản phẩm phải phù hợp với thị trường thì mới có thể có sức sống. Sản phẩm có thể phù hợp với thị trường hiện tại hoặc thị trường tương lai, nhưng nó phải phù hợp, và phải xuất phát từ nhu cầu của thị trường.

Điều thứ hai là sản phẩm phải phù hợp với con người của doanh nhân. Ví dụ như một doanh nhân có sở trường là A mà cứ cố theo đuổi xu hướng thời thượng là B thì sẽ không bao giờ thành công. Họ phải có sự lựa chọn, phải hi sinh những cơ hội không phù hợp với mình.

Có những tính cách nào mà nhà khởi nghiệp cần có?

Nhà khởi nghiệp là người lãnh đạo, và họ phải có được khả năng tập hợp con người và có được sức ảnh hưởng lớn. Đó là yếu tố quan trọng nhất để có thể truyền tải được tầm nhìn và mục tiêu của mình đến với tất cả các thành viên trong đội ngũ, đến với khách hàng, đến với đối tác, như vậy mới đảm bảo được thành công.

yếu tố này lại càng quan trọng hơn trong lĩnh vực dot com. Bởi trong dot com thì yếu tố rủi ro mạo hiểm là cao hơn so với các lĩnh vực khác. Một số mô hình phát triển sản phẩm khá phổ biến trong giới dotcom đòi hỏi một thời kỳ tương đối dài (từ 3-5 năm) sẽ không có lợi nhuận Sức ép ấy là rất lớn, và điều mà founder cần giải quyết là bài toán “Làm thế nào để vượt qua sức ép ấy mà vẫn gìn giữ được đội ngũ và tạo động lực cho đội ngũ của mình?”.

Founder các công ty thành viên của IDG đều có chung đặc điểm ấy. Mỗi founder có một tính cách khác nhau, người mềm mỏng, người quyết liệt, nghiêm khắc… nhưng tất cả đều có khả năng thu hút người khác. Họ đam mê, nhiệt huyết với công ty của mình và họ đều tạo ra tấm gương cho những người xung quanh noi theo. Bản thân họ cũng là những người dám thừa nhận sai lầm, và họ có được cái đặc trưng của ngành này là không tạo khoảng cách với bất kỳ một người nào trong hệ thống. Khoảng cách giữa một người tổng giám đốc với một người nhân viên là không xa, họ đều sẵn sàng bỏ cả cuộc họp để nói chuyện với nhân viên, truyền nhiệt huyết và tầm nhìn của mình cho nhân viên. Họ rất chú trọng đến con người.

Theo anh thì một founder có cần phải có kỹ năng sales không? Có phải các founder chuyên về kỹ thuật sẽ gặp bất lợi hơn?

Đó là một hiểu nhầm lớn. Kỹ năng sales chỉ là một yếu tố bổ sung chứ không phải yếu tố quyết định. Có thể nhìn các tên tuổi lớn trên thế giới như Google, Facebook, Yahoo, Microsoft, các founder của họ có thể có khả năng ăn nói, nhưng xuất thân của họ đều là những người đam mê kỹ thuật. Chính đam mê ấy tạo ra khả năng sales cho họ. Việc đầu tiên không phải là họ sales sản phẩm, mà là sales tầm nhìn, ý tưởng của mình với các cộng sự để cùng nhau tạo nên sản phẩm, và tự sản phẩm ấy sẽ sales họ chứ không tùy thuộc vào kỹ năng sales.

Các founder nên đam mê với sự lựa chọn của mình, và sáng suốt với lựa chọn ấy, để nó phù hợp với thị trường và với chính bản thân, thì lúc ấy tự nó sẽ sales được, chứ kỹ năng sales không giải quyết được vấn đề.

Anh cho rằng phải bao lâu nữa khởi nghiệp Việt Nam mới có được những sản phẩm quy mô tầm cỡ thế giới?

Khi khởi nghiệp, các nhà khởi nghiệp nên đặt câu hỏi là “Tôi có thể làm gì để thay đổi thế giới?”. Câu hỏi ấy nghe có vẻ lớn, nhưng thực sự lại không lớn. Những người khởi nghiệp đều muốn tạo ra sự khác biệt, muốn đem lại sự thay đổi, muốn làm cho thế giới thực tại tốt đẹp hơn nhờ dịch vụ mà họ đem lại, dù chỉ là bắt đầu từ những việc nhỏ nhất. Tất cả những nhà khởi nghiệp lớn mà chúng ta thấy đều bắt đầu bằng việc trả lời câu hỏi:“Tôi có thể làm gì để làm cho hiện thực tốt hơn?”. Sau khi làm được điều ấy, và làm đủ tốt thì tự nhiên nó sẽ trở thành quy mô toàn cầu, chứ không nhất thiết phải nhắm ngay vào thị trường thế giới.

Hiện nay, cũng đã có một số sản phẩm, dịch vụ của Việt Nam có định hướng vào những thị trường rộng hơn Việt Nam, đã có nhiều nhà khởi nghiệp của chúng ta tạo ra những sản phẩm bán được ở nước ngoài, tiêu biểu nhất là ứng dụng di động. Cũng có nhiều doanh nghiệp do các sáng lập viên người Việt Nam tạo nên và định hướng tới thị trường toàn cầu. Nhưng dù vậy thì bản chất những điều họ làm vẫn là trả lời câu hỏi: “Làm gì để thế giới tốt đẹp hơn?”. Ví dụ như Misfit Wearables, mục tiêu của họ không phải là ra toàn cầu, mà là tạo ra những sản phẩm hỗ trợ cho sức khỏe, tạo ra những công cụ bổ trợ cho chế độ tập luyện của con người. Những điều họ làm là để giúp cho thực tại tốt hơn, rồi sau đó mới đến toàn cầu.

Vậy nên, nếu đặt ra bài toán khởi nghiệp Việt Nam có được những sản phẩm quy mô toàn cầu thì không phải là bài toán bây giờ. Khởi nghiệp Việt Nam cần một thời gian tích lũy dài hơn nữa, sau đó tự nhiên câu chuyện ấy sẽ đến.

(Biên tập bởi Sơn Trần)

[Startup] CEO Vật Giá: Bí quyết giữ vững đam mê khởi nghiệp

Trong quá trình khởi nghiệp, con đường từ khi hình thành ý tưởng cho đến lúc biến ý tưởng ấy thành sự thực và trở nên thành công là một con đường dài và đầy trắc trở. Trên con đường ấy, đã không ít người phải gục ngã vì thiếu tiền, thiếu nhân lực hay vì không cạnh tranh được và đặc biệt là không thiếu những trường hợp bỏ cuộc vì mất tinh thần, vì không còn giữ được đam mê với ý tưởng, dự án của mình.

Cũng đã đi từ những khó khăn vất vả nhỏ nhất để gây dựng nên Vật Giá như ngày hôm nay, Nguyễn Ngọc Điệp, founder kiêm CEO Vật Giá đến giờ vẫn còn nguyên lòng đam mê và tinh thần khởi nghiệp như ban đầu. Phần lớn thời gian hàng ngày của anh là dành để quan tâm chăm chút cho công ty, cho sản phẩm và các dự án của mình. Dưới đây là những chia sẻ của anh Nguyễn Ngọc Điệp với Tech In Asia về việc làm thế nào để giữ vững lòng tin và đam mê khởi nghiệp.

50fcae03f26e1_hnc1358309590

Phương Thảo: Những vấn đề mà một startup sẽ thường phải gặp phải là gì? Và làm thế nào để vượt qua những vấn đề đó?

Chuyện mất tinh thần là điều bình thường trong cuộc sống. Và đặc biệt là với những khó khăn trong quá trình khởi nghiệp thì việc chán nản, muốn bỏ cuộc là rất dễ hiểu và không hiếm gặp. Trong Internet, càng muốn tiến xa thì cạnh tranh sẽ càng khốc liệt. Hàng ngày sẽ diễn ra đủ các loại vấn đề, từ các vấn đề về chính sách, pháp luật, từ nhân sự, khách hàng cho đến đối thủ, thị trường, những vấn đề ấy sẽ phát sinh hàng ngày và mình phải biết cách khắc phục. Nếu không, những vấn đề ấy sẽ ảnh hưởng đến mình hàng ngày, làm mình mệt mỏi, sinh nản chí và dễ bỏ cuộc. Cũng như một cái cây vậy, cây đổ không phải vì bão tố quá mạnh, mà là vì những con mọt hàng ngày phá hoại, làm cây yếu đi và có thể gục ngã bất cứ lúc nào

Vậy làm thế nào để anh có thể lấy lại tinh thần trong công việc?

Khi khởi nghiệp thì 100% là sẽ mất tinh thần, mất nhiệt huyết. Mất tiền thì có thể xin đầu tư, nhưng mất nhiệt huyết thì là mất hết. Khi đó, mình phải bình tâm và nhìn lại vấn đề. Điều quan trọng là ở lòng tự trọng, là ở sức mạnh tinh thần của mình. Lúc ý là lúc thử thách lòng tự trọng của mình lớn đến mức độ nào? Mình phải vứt bỏ cái tôi, vứt bỏ những suy nghĩ buồn chán để mà bước tiếp, để cố gắng. Lòng tự trọng của mình phải đủ lớn để trong mọi trường hợp, dù bị vùi dập, bị vấp ngã, thất bại thì vẫn có thể đứng dậy đi tiếp.

Mỗi khi cảm thấy buồn, nản chí thì mình nhìn những tấm gương thành đạt khác để lấy lại tinh thần. Họ đem lại cho mình nguồn năng lượng cực lớn khi mình gục ngã. Thomas Edison 10.000 lần thất bại mới phát minh ra được bóng đèn. Sam Walton năm 32 tuổi vẫn làm nhân viên giặt là, trông kho hàng và sau này sáng lập ra Walmart. Steve Jobs thì từng bị đuổi khỏi công ty do chính mình sáng lập. Bill Gates cũng từng bỏ học. Tuy vậy họ có một tinh thần quyết tâm rất lớn. Nhìn họ, mình hiểu được rằng cần phải có một ý chí mạnh hơn người khác để vượt lên. Nhìn họ, mình nghĩ là mình sẽ làm được!

Điều hành một công ty có hơn 1000 nhân viên hoạt động tại cả Hà Nội và Thành phố Hồ Chí Minh, anh Điệp không chỉ cần phải giữ được tinh thần và nhiệt huyết cho mình mà còn cần duy trì và truyền tải nhiệt huyết ấy đến các nhân viên của mình. Vậy bí quyết của anh là gì?

Mình phải đam mê hơn tất cả, phải giữ tinh thần mình cao hơn tất cả. Và hơn hết, dù trong một lĩnh vực mình có thể không giỏi bằng nhân viên, nhưng tổng hợp tất cả các lĩnh vực, các yếu tố thì là giám đốc, mình phải hơn được họ, như thế mới có thể tạo ra cảm hứng cho họ. Đôi khi phải hơi “điên” mới kéo cả tổ chức đi lên được.

Việc thúc đẩy tinh thần của nhân viên phải thực hiện qua các mối quan hệ, giao tiếp, quan tâm hàng ngày. Với công ty hơn 1000 nhân viên thì người giám đốc không thể nói chuyện, giao tiếp để thúc đẩy tinh thần từng nhân viên được. Quan trọng là phải tạo ra một văn hóa để duy trì tinh thần và nhiệt huyết. Người giám đốc có thể làm được 10 – 20 người xung quanh mình có tinh thần. 20 người ấy sẽ tạo ra cảm hứng cho những người ở dưới họ, và cứ như thế tinh thần ấy sẽ lan tỏa ra, tạo thành văn hóa. Văn hóa ấy là những con người biết quan tâm, biết phấn đấu, nỗ lực, say mê và chính những con người ấy lan tỏa năng lượng và tinh thần cho người khác.

Lời khuyên cho các startup

Để có được cảm hứng và duy trì được tinh thần, các startup nên chọn những “ngôi sao sáng” để học hỏi và đi theo hướng của họ. Chính những “ngôi sao sáng” ấy sẽ truyền năng lượng và giúp mình giữ được “lửa” để tiếp tục tiến xa hơn nữa.

Và để trau dồi tinh thần cũng như tìm thêm được cảm hứng, anh cũng khuyên các startup nên đọc 4 cuốn sách mà theo anh là cực kỳ hữu ích cho quá trình khởi nghiệp, đó là “Xây dựng để trường tồn”, “Từ tốt đến vĩ đại”, “10 quy tắc của Sam Walton” và “Đắc nhân tâm”.

(Biên tập bởi Sơn Trần)

[Startup] Gọi vốn thành công 300 triệu, Long Thần Tướng cất cánh

goivontechinasiabài viết trước, chúng tôi đã đề cập đến dự án Crowdfunding của họa sỹ Nguyễn Thành Phong cho bộ truyện tranh Long Thần Tướng. Đây là một trong số ít những dự án huy động vốn cộng đồng tại Việt Nam nhận được rất nhiều sự quan tâm của cộng đồng yêu thích truyện tranh cũng như những người quan tâm đến crowdfunding (huy động vốn cộng đồng).

Vào lúc 18h00 ngày 26/5/2014, dự án Long Thần Tướng đã chính thức cán mốc 300 triệu, sớm hơn 3 ngày so với kế hoạch đặt ra. Hệ thống crowdfunding vẫn tiếp tục mở cửa cho đến 23h59p ngày 31/5/2014. Sau ngày 31/5, nhóm họa sỹ sẽ tiếp tục cập nhật chi tiết danh sách người đóng góp cũng như lộ trình xuất bản sách trên website chính của mình. Có thể nói, dự án lần này đã vượt xa sự mong đợi của đội ngũ sản xuất dự án. Các con số đóng góp vẫn tiếp tục tăng ngay cả khi dự án đã cán mốc. Vậy điều gì dẫn đến thành cồng cho dự án crowdfunding này?

Long Than Tuong

3 Bài học từ dự án Crowdfunding Việt

Theo tôi có ba lý do giúp cho một dự án crowdfunding thành công tại Việt Nam, Long Thần Tướng đã hội đủ tất cả ba. Thứ nhất, họ đã kể được một câu chuyện hay và khiến tất cả mọi người quan tâm và theo dõi. Họ đã truyền được cảm hứng cho mọi người về sứ mạng của mình đối với cộng đồng truyện tranh Việt Nam. Như vậy Long Thần Tướng đã làm được điều mà không phải một dự án crowdfunding cũng có thể làm được, họ thuyết phục được cộng đồng cùng chung tay cho một sứ mạng mà họ đang nhận lấy.

Thứ hai, đội ngũ họa sỹ đã chứng minh được cho mọi người thấy những gì họ đang làm sẽ thành công bằng cách cập nhập về quá trình thực hiện dự án của mình. Từng công đoạn đều được ghi lại trên blog, thông báo truyền thông rộng rãi nhằm giúp cộng đồng hiểu rõ mình đang đóng góp vào điều gì và thấy được nó đang phát triển như thế nào. Và đặc biệt là ở Việt Nam, mọi người sẽ không dễ gì bỏ tiền vào một dự án trên mạng trong khi vẫn chưa thấy rõ nó sẽ thành hình ra sao. Đội ngũ sản xuất đã đánh đúng vào tâm lý của người Việt Nam, họ cho những donors (người đóng góp) thấy được họ đang làm gì với số tiên mà họ nhận được một cách rất rõ ràng và mạch lạc. Có thể coi nó là một trong những khó khăn cho crowdfunding Việt Nam nhưng Long Thần Tướng đã khắc phục được điều đó.

Screen-Shot-2014-04-14-at-7.56.37-PM

Yếu tố cuối cùng khiến dự án này thành công là do họ đã sử dụng mạng xã hội khá tốt cho quá trình huy động vốn của mình. Có thể nói Facebook đã đóng một vai trò rất quan trọng trong việc kết nối cộng đồng yêu thích truyện tranh cũng như lan tỏa sức ảnh hưởng của dự án này đến giới trẻ. Các influencers (những người có tầm ảnh hưởng trên mạng xã hội) đã chia sẽ và góp sức rất nhiều cho sự thành công này. Hãy tưởng tượng, với danh tiếng có sẵn của Nguyễn Thanh Phong cộng với sự hỗ trợ của các influencers, Long Thần Tướng như được nhiều ngọn gió truyền thông góp lại thành một cơn bão trên các trang mạng xã hội. Đôi khi sự lan tỏa trên Facebook và mạng xã hội còn có tầm ảnh hưởng mạnh mẽ hơn rất nhiều so với các trang tin chính thống. Thực tế đã chứng minh điều này. Theo một góc nhìn nào đó, đây cũng là một cách quảng bá thương hiệu rất thông minh mà Long Thần Tướng đã và đang làm được.

Sự thành công của Long Thần Tướng không chỉ mở ra một hy vọng mới cho các dự án crowdfunding tại Việt Nam trong tương lai, nó còn là một thành quả, một bằng chứng rõ ràng nhất cho thấy người Việt luôn ủng hộ những sản phẩm có giá trị nhân văn. Vậy là những viên gạch đầu tiên đã được đặt cho cộng đồng crowfunding Việt, sẽ còn nhiều nữa những dự án tiếp theo để kiểm chứng cho niềm hy vọng này, chúng ta hãy cùng chờ đợi.

[Startup] Ứng dụng mobile: Tại sao phải là game?

Hiện có tới 90% developer làm game

Trong buổi chia sẻ về tổng quan thị trường ứng dụng moblie trong nước và quốc tế trong khuôn khổ sự kiện Vietnam Mobile Day 2014, ông Nguyễn Văn Tuấn, Giám đốc mảng Mobile của Vccorp cho biết, hiện nay rất khó để tìm được lập trình viên PHP vì hầu hết các developer (dev) đã chuyển sang phát triển app cho mobile. Đây là một xu thế đang diễn ra mạnh mẽ tại Việt Nam.

Tuy nhiên, một thực tế được các diễn giả đưa ra đó là tình trạng “người người làm game, nhà nhà làm game”, hay như ông Trần Vinh Quang, COO của Appota cho biết, hiện có tới 90% dev chuyển sang làm game mobile. Trong khi đó còn hàng loạt mảng app khác như mobile payment, mobile commerce, mobile vas (dịch vụ giá trị gia tăng), hay các ứng dụng tiện ích khác trên mobile hiện còn bỏ ngỏ bởi các dev thiếu quan tâm.

Đồng thời, ông Tuấn cho biết, vòng đời của một tựa game thường rất thấp, chỉ từ 3-6 tháng, trong khi với những ứng dụng tiện ích như camera, xử lý ảnh… nếu tích hợp thêm dịch vụ Mua thêm tính năng trong ứng dụng (in-app-purchase), thì sẽ mang lại nguồn thu khá ổn định cho các dev. Vì vậy ngoài phát triển game, các dev vẫn còn rất nhiều mảng khác để có thể phát triển, miễn là những app đó chạm được vào nhu cầu thực tế của người dùng.

a

Có thể nói việc đông đảo dev chọn game để phát triển một phần là do game dễ kiếm tiền; và khi có tiền thì mới có thể theo đuổi được đam mê. Tuy nhiên một hiện tượng đáng buồn hiện nay là thay vì tự sáng tạo, hoặc được truyền cảm hứng bởi một tựa game, sau đó củng cố tiếp thì nhiều dev chọn việc clone game, tức là nhái hoàn toàn một tựa game nào đó đã được phát hành trên các kho ứng dụng.

Có hai kiểu clone điển hình là re-skin và rip-off. Với re-skin thì khi một tựa game nào đó đang ăn khách, các dev sẽ ăn theo bằng cách thay đổi nhân vật, thay đổi một chút giao diện, còn cách chơi thì y hệt bản gốc. Một ví dụ điển hình là game Flappy bird bị re-skin thay vì là con chim thì sẽ đổi thành máy bay hoặc con cá… nhưng giữ nguyên cách chơi.

Rip-off là dạng clone game thô bạo nhất. Các dev chỉ việc lấy nguyên xi một tựa game nào đó và đổi ngôn ngữ sang tiếng Việt và đem đi phát hành. Các dev gọi việc đó bằng một từ rất hoa mỹ là “Việt hoá”. Đồng thời đa số các game bị rip-off là freemium hoặc khó thu phí vì Việt Nam chưa hỗ trợ nhiều cho thanh toán online, sau khi được “Việt hoá” thì các dev ung dung phát hành và thu phí, hoặc người dùng phải trả tiền để được tiếp tục chơi.

Đối với các dev chân chính thì hành vi clone game này là một sự xỉ nhục, bởi việc này đã khiến Việt Nam trở thành một trong những nước vi phạm bản quyền nghiêm trọng. Tuy nhiên về phía người dùng thì rất khó để phân biệt đâu là game bản quyền và đâu là game clone, do đó người dùng thì cứ trả tiền và các dev chuyên clone game thì cứ ung dung thu lợi mà không mất nhiều công sức.

Hiện nay, Việt Nam vẫn còn là một thị trường ứng dụng mới mẻ và nhiều tiềm năng, cộng đồng dev Việt Nam cũng vẫn còn non trẻ và đang dần khẳng định mình. Do vậy, để có một cộng đồng dev thực sự chuyên nghiệp và phát triển mạnh mẽ nhằm khai thác thị trường ứng dụng đầy tiềm năng này, ngoài phát triển game, cộng đồng dev Việt Nam có thể đẩy mạnh hơn nữa những mảng ứng dụng còn đang bị bỏ ngỏ như ứng dụng cộng đồng, ứng dụng cho doanh nghiệp, ứng dụng tiện ích…

Đồng thời các dev Việt Nam cần hành xử chuyên nghiệp hơn trong vấn nạn clone game. Cộng đồng dev Việt Nam cần tẩy chay, lên án với những hành động clone thô bạo, nhằm tạo dựng một cộng đồng dev trong sạch và bền vững.

(Biên tập bởi Quyen Quyen).

[Discovery] Cuối cùng thì các bác sĩ đã có thể tạm ngừng sự sống của con người

suspended-animation-1. ​


Trước đây, việc tạm ngừng hoạt động sống con người chỉ là một ý tưởng thường gặp trong các phimkhoa học viễn tưởng. Nhưng giờ đây, các bác sĩ tại bệnh viện Presbyterian trực thuộc Đại học y dược Pittsburgh, Pennsylvania đã có thể tạm ngưng sự sống của một số bệnh nhân bị các chấn thương có khả năng tử vong cao nhằm cung cấp thêm thời gian để các bác sĩ phẫu thuật có thời gian xử lý vấn đề, tăng hy vọng cứu sống bệnh nhân. Đây chẳng những là một bước ngoặt trong y học hiện đại mà còn có thể cung cấp thêm nhiều ứng dụng khác, điển hình như tạm ngừng cuộc sống khi di chuyển tới các hành tinh khác cách Trái Đất nhiều năm ánh sáng.

Quá trình tạm ngừng sự sống được thực hiện thông qua kỹ thuật thay thế máu của bệnh nhân bằng một dung dịch muối đặc biệt có nhiệt độ thấp nhằm làm mát cơ thể ngay từ bên trong. Khi muốn “đánh thức” người bệnh, một thiết bị tim – phổi được sử dụng để phục hồi quá trình lưu thông máu và oxy giúp bệnh nhân có thể tái thực hiện những chức năng sống đầu tiên trong quá trình hồi sức.

Samuel Tisherman, bác sĩ ngoại khoa lãnh đạo dự án cho biết rằng: “Chúng tôi đang tạm ngừng sự sống, nhưng chúng tôi không gọi đó là đóng băng vì nghe có vẻ khoa học viễn tưởng. Vì vậy, chúng tôi gọi đây là một biện pháp duy trì và hồi sức khẩn cấp.”

Một người khác có nhiều đóng góp vào sự phát triển kỹ thuật trên, bác sĩ ngoại khoa Peter Rhee đến từ Đại học Arizona cho biết: “Nếu một bệnh nhân được mang đến bệnh viện sau khi đã chết hơn 2 giờ, bạn không thể nào cứu sống họ được nữa. Nhưng nếu họ đang chết dần và bạn tạm ngừng sự sống của họ, bạn sẽ có thêm cơ hội để cứu sống họ sau khi giải quyết các vấn đề khẩn cấp về sức khỏe của họ.”

Hồi năm 2000, bác sĩ Rhee đã bắt các thử nghiệm thành công kỹ thuật tạm ngừng sự sống trên lợn. Trong một báo cáo vào năm 2006, Rhee cho biết những con lợn bị các vết thương tưởng chừng như sẽ chết, nhưng khi được tạm ngừng sự sống và thực hiện cứu chữa, cơ hội sống sót của nó tăng lên tới hơn 90%. So với cách suy nghĩ thông thường, đó là những con lợn đã bị cắt động mạch và thân nhiệt đã giảm đến mức tưởng chừng như sẽ chết ngay lập tức.

Bác sĩ Rhee cho biết: “Sau khi thực hiện những thí nghiệm trên, định nghĩa về “cái chết” đã thay đổi. Mỗi ngày làm việc, tôi thường xuyên tuyên bố rằng ai đó đã chết. Đó là khi họ không còn dấu hiệu của sự sống, không nhịp tim, không hoạt động não. Cuối cùng, họ sẽ được đặt vào những chiếc túi dành cho tử thi. Nhưng dù vậy, tôi vẫn luôn tâm niệm rằng họ vẫn chưa chết. Giờ đây, tôi có thể tạm ngừng cái chết và có thêm cơ hội để cứu sống họ.”

Với phương pháp trên, các bác sĩ có thể “đóng băng” sự sống của họ về mặt kỹ thuật trong vài giờ với thân nhiệt giảm xuống còn 10 độ C. Sau khi chữa trị, cơ thể của họ sẽ được đưa về nhiệt độ bình thường và bước vào giai đoạn hồi sức.

Hiện tại, phương pháp đã được thực hiện cho 10 bệnh nhân bị các chấn thương nghiêm trọng như bị bắn, bị đâm, bị các chứng suy tim cấp và kết quả đạt được khá khả quan. Cả 10 ca đều nhận được các phương pháp chữa trị thích hợp để lưu giữ tính mạng. So với trong quá khứ, các ca này gần như đều phải qua đời ngay sau đó.

Bên dưới là đoạn video mô tả sơ lược kỹ thuật trên​

[Discovery] Các nhà vật lý đề xuất mô hình mới có thể mở lỗ sâu đủ lâu cho phép 1 photon xuyên qua

lo_sau. ​


Hồi cuối tuần rồi, nhà vật lý Luke Butcher tại Đại học Cambridge đã cho đăng tải báo cáo về một số dạng mô hình lỗ sâu (wormhole) có khả năng duy trì đủ lâu để 1 photon có thể đi qua. Theo mô hình mà Butcher đề xuất thì con người hoàn toàn có thể gởi và nhận những thông điệp xuyên thời gian thông qua lỗ sâu này. Nếu mô hình này được phát triển thành công thì giấc mơ của con người về cỗ máy du hành thời gian sẽ không còn là vấn đề viễn vông nữa mà hoàn toàn có thể khả thi vào một ngày nào đó trong tương lai.

Cho đến nay, du hành thời gian là một khái niệm chỉ tồn tại trong trí tưởng tượng của các nhà văn khoa học viễn tưởng. Một số người còn gọi đây là giấc mơ giữa ban ngày trong khoa học hiện đại. Dù vậy, các nhà vật lý học tin rằng ít nhất là trong lý thuyết, du hành thời gian hoàn toàn có thể thực hiện được. Chính thiên tài vật lý Albert Einstein là người đầu tiên đề xuất khả năng du hành thời gian băng lỗ sâu – một đường hầm xuyên thời gian và không gian. Có thể hình dung đây là một con đường hầm nối thông từ một vùng không gian-thời gian này đến một vùng khác, đôi khi còn cho phép vật chất đi từ vùng này sang vùng kia thông qua đường hầm này.

Tuy nhiên, việc chế tạo một thiết bị nhằm mở lỗ sâu không hề đơn giản. Trở ngại lớn nhất là các lỗ sâu chỉ có thể tồn tại trong thời gian cực ngắn và không có đủ chỗ cho con người đi qua. Trên mặt lý thuyết, một lỗ sâu chỉ có thể cho một hạt đơn hoặc 1 photon đi xuyên qua. Chính vì thế, việc du hành thời gian là vấn đề bế tắc nhất trong vật lý hiện đại. Mãi cho tới năm 1988, nhà vật lý học Kip Thorne đã đề xuất 1 ý tưởng cho phép duy trì một lỗ sâu trong thời gian dài hơn.

Thorne cho rằng lỗ sâu có thể được duy trì độ mở bằng cách sử dụng loại năng – lượng – lượng – tử, còn gọi là năng lượng Casimir. Trong khi đây là một ý tưởng đầy hứa hẹn, nhưng cho đến nay vẫn chưa có một ai tìm ra cách tạo ra năng lượng Casimir để duy trì lỗ sâu và cho phép con người đi qua. Trong nghiên cứu lần này, Butcher đề xuất phương pháp tận dụng năng lượng Casimir trong tự nhiên để tạo nên một số loại lỗ sâu.

Sau khi thực hiện rất nhiều tính toán, Butcher đã kết luận rằng nếu lỗ sâu mở ra càng lâu thì kích thước của nó cũng sẽ càng lớn. Đồng thời ông cũng dự đoán rằng lượng năng lượng Casimir ở mặt bên trong của lỗ sâu sẽ giúp nó có đủ năng lượng để mở ra lâu hơn so với bình thường. Theo ước tính của Butcher, hoàn toàn có thể gởi một photon thông qua lỗ sâu tạo thành từ mô hình do ông đề xuất.

Dù vậy, tất cả những lập luận và nghiên cứu trên đều chỉ là giả thuyết dựa trên hiểu biết của Butcher. Con người vẫn chưa hiểu hết được các thành phần khác của lỗ sâu. Có thể bên trong lỗ sâu sẽ chứa các thành phần ngăn chặn chuyển động của photon hoặc thậm chí là ngăn chặn con người di chuyển xuyên qua. Do đó, việc du hành xuyên thời gian vẫn chỉ là một chủ đề hấp dẫn cho các nhà làm phim hay các nhà văn khoa học viễn tưởng. 

Tuy nhiên, Butcher cho rằng ý tưởng của mình sẽ thúc đẩy nhiều nghiên cứu hơn trong tương lai. Có thể sẽ có nhiều ý tưởng mới được đề xuất thực hiện. Có thể một ngày nào đó việc du hành thời gian không chỉ có thể thực hiện bởi Doctor Who trên truyền hình mà còn có thể được thực hiện trong thực tế.

[Dev tip] Git server on Windows

First of all, let me clarify that Git doesn’t need to specify the side for client and server. Your workstation can be both the client and server. That means you can get code from other computer, you’re the client; while others can also get code from your computer, you’re the server. That’s why Git is great.

In this post, the “Git server” means to make your computer available for others to pull/push code from/to.

The post is long because it’s step by step and with lots of screenshots. In fact, it just takes about 10 minutes to setup all.

Note: CopSSH is not open source any more, please buy it if you want to use it.

We need the following software:

Software required to setup a Git server:
CopSSH (install on the server side)
msysgit (install both on the server side and client side)
PuTTY (install both on the server side and client side)

Software required to integrate with Visual Studio:
GitExtensions (install both on the server side and client side)

Setup steps

1. Install msysgit.

a. When you installing the msysgit, please choose c:\Git as the installation directory, because the space in the directory name may cause issue in bash commands.
image

b. In the “Adjusting your PATH environment”, I recommend to select “Use Git Bash only”.
image

c. Other settings are default. After installation, you get the icon  on your desktop. You can try it with git command, if you get the following screen, you’ve installed the msysgit successfully.
image

d. Add C:\Git\bin and C:\Git\libexec\git-core to Path. This step is very important.
image

2. Install CopSSH

a. Just like the msysgit, we don’t install the CopSSH in program files folder to avoid some space issues. We install it toc:\ICW
image

b. Just use the default account as CopSSH provides:
image

c. After installation, open COPSSH Control Panel
image

d. Click Add button in Users tab
image

e. Choose an existed user on your computer(You can create one in computer management). Here in my sample the user is jinweijie
image

f. Allow all the access:
image

g. After the user is activated, click the Keys… button in the Activated Users section:
image

h. Click Add:
image

i. Use default key settings:
image

j. Enter the Passphrase and File name:
image

k. The private key will be save to c:\ICW\home\jinweijie\ryan-vm-01_2048.ppk
image

[test step]Now we try to use the activated user to log on through SSH, open Git Bash, enter commands:
ssh jinweijie@ryan-vm-01
enter “yes” to continue
image

[test step]After enter your passwords (the windows account’s password), then you try to run git as the ssh user, but it isn’t perform as you expected:
image
That’s because CopSSH cannot find the git.exe on the server, so we need to tell CopSSH the git path.

3. Config CopSSH with Git path.

a. Open C:\ICW\etc\profile with your favorite editor, add :/cygdrive/c/git/bin:/cygdrive/c/git/libexec/git-core (don’t forget the starting colon) to PATH ,  the whole line will be:
export PATH=”/bin:$syspath:$winpath:/cygdrive/c/git/bin:/cygdrive/c/git/libexec/git-core”
Then Save.
image

b. Restart the CopSSH by click twice the big button in CopSSH Control Panel:
image

c. If we run Git Bash again, ssh jinweijie@ryan-vm-01, enter your password and run the git command, git should be found this time:
image

4. Configure private key on client

a. Copy the private key(we generated in step 1-k) from server to client.
SNAGHTMLc1563

b. On the client side, use puttygen.exe to load the key(if you set the password in 1-j, you need to enter the password while loading the key):
image

c.  Click “Save private key” to save a copy of private key for plink.exe to recognize.
image

5. Create repository, integrate with Visual Studio

a. Install gitextensions on both server and client.
image

b. Since we have already install the msysgit in step 1-a, we skip the “Install MsysGit”. But if you haven’t install msysgit on the client machine, you can check the checkbox and install it.
image

c. Install to C:\GitExtensions\, Other settings are default.
image

d. On the server side, open Git Extensions, click “Create new repository”
image

e. Set the path to the project name under you CopSSH user’s home directory, select “Central repository, no working dir”(because we are the server),  then “Initialize”:
image

f. On the client side, open Git Extensions, click “Clone repository”:
image

g. On the client side, the repository address should be ssh://jinweijie@ryan-vm-01/ICW/home/jinweijie/mydotnetproject Please be aware that, the repository should begin with c:\ on the server.
image

h. On the client side, click “Load SSH Key” and load the key which was saved in step 4-b:
image

i. On the client side,  enter the password if you set password to the key, then click Clone:
image

j. On the client side, add ignore files:
image

k. On the client side, open Visual Studio, create a project to mydotnetproject folder(which is the cloned repository), you may find the files are already under git source control:
image

l. Click the “Commit” button on the menu bar, then click “Commit & Push”:
image

m. Push succeeded:
image

n. On the server side, you can find the new pushed files:
image

That’s all, happy GITTING!

(Ref: http://www.codeproject.com/Articles/655560/Step-by-Step-Setup-Git-Server-on-Windows-with-Co)

[.NetWorld] SharePoint Architecture – What are we talking about here?

As I have announced in my previous post – I will start a series of the architecture related SharePoint articles on this blog. This is merely caused by the lack of the proper architecture, in a huge number of the SharePoint applications I have seen. That, on another side, has been caused by numerous reasons, but nevertheless: we have somehow come to the point, where it has become acceptable that the front end talks directly to the back end. Say, a SharePoint web part communicating directly with the data in the SharePoint list.

Well, it is not acceptable, not in any other technology, and not in SharePoint.

As I have written before – this series of the articles will be accompanied by a CodePlex project, where all of the staff which I talk about in these articles, will be accompanied with the real, living code. The test solution will be the about the conference organization: if you have ever been to a SharePoint conference, or any other development conference for that matter, you know that there is a lot of stuff to be done – from the speakers’ perspective (speaker bios, session abstracts, session schedule…), but mostly from the visitors’ perspective (applying for the conference participation, registering for a single session, rating a session…).

Of course, we will want to have a nice, modern way of doing things – we want visitors to register to a session simply by scanning a QR code on the door. We want them to be able to rate a session in a nice web interface on the conference web page. Even better, with a Windows Phone 7 app. OK, maybe even with the mobile-optimized HTML5 page (there are still some folks out there which are not using Windows Phone, from whatever reason it might be).

Conference administrators, on the other side, will mainly use the standard SharePoint interface for managing the conference data – visitors, sessions, schedules etc. But we want to make their lives a bit easier – we want them to know the session ratings immediately after the visitors have given them. We want them to know the session visitors immediately after the session end. And we would like to give them a nice geographical distribution of visitors, overview for the whole conference, and for each single session.

This will be our project. As you can see, a lot of work is waiting there, but we have to start somehow.

It is obvious, even now at the beginning, that a solution without architecture would not give us any benefits here. Just consider the task of rating a single session. We have said – we want it to be possible to do that through the web interface. Let’s say – we need a web part for it. Then we have said that we want to make it possible through the WP7 app. And, on the end, we want a sleek app for the non-Windows Phone mobile devices. Should we then develop this logic three times? Once, we talk directly to the SharePoint from the web part. Then we develop the same thing for the Windows Phone. Then we develop a special page which would be optimized for the other mobile devices. Now, that does not make any sense, does it? We need to have one piece of code for rating the presentations. Our web part, our mobile devices optimized web page, our WP7 app – they need to talk to that piece of code. So when we change the rating logic, it’s changed everywhere.

Not to mention, how much easier testing of that code will be when we write it only once. And testing is also kind of important. As we see, it’s all about architecture.

So, how does a generic architecture for a complex SharePoint solution looks like? Well, there is no uniform answer for it. It all depends on the needs of the application. But the next picture can give an overview about some standard cornerstones which should be found in the solution.

APArchitecture - Simplified
We see quite a number of boxes here, even if it is a simplified model. It would be too much, to explain it all in one article, but, let’s just identify here architecture layers we have used in this example:

SharePoint UI Layer

This is all about SharePoint, so let’s start with the stuff which should be well known for most of the SharePoint developers – SharePoint UI Layer. Web parts, ASPX pages, workflows, event receivers…

Wait a moment. Workflows and event receivers are in the UI Layer?! Well, a kind of. Of course they are not really UI, but when you think about it – they actually do a typical UI tasks: they trigger business processes. Of course we can make them actually EXECUTE business processes, but we can do that in a web part as well, can’t we?

You get the idea -a web part, an ASPX page – it is all UI, they don’t do any business – they interact with user, they collect data, and they give that data to someone else to do the dirty work. If we think about our example solution – conference organization – this is where the visitors will give ratings to the sessions. They will see a form, they will enter ratings, and they will click the OK button. That’s it.

Business Layer

This is where the dirty work has been done: we actually need to DO something with the input data which comes here. And yes, we also define our data model here (data entities). If you think from the SharePoint perspective, you don’t want to write a series of strings and numbers (which represent our rating) in the fields of a SPListItem. Of course you can do that, but, then good luck with validation, testing, debugging, and, oh yes – with the maintaining that code. That is the reason why we will have the Rating entity, where we will store our ratings. We will have a number of supporting methods for that rating – to validate rating, to calculate the average rating (not as simple as you think!), well, a number of different things to do. You can’t do that with the values of the fields in the SPListItem object.

architecture layersAnd yes, this is theoretically the only layer of the solution which you will never want to replace. You might improve it, you might add some new functionality, but this is the ONLY part of the solution which you don’t want to replace. You can replace the front end – you can develop new web parts, you can develop new interfaces for new devices, but they will all talk to your business logic. You can also replace the back end – your customer might tell you that she has, after a long and painful thinking process, decided that she does not want SharePoint Server on the back end. She wants a SQL Server. You might curse, but you will make a new Data Access Layer, with new persistence methods. Your business logic stays the same. It didn’t change, did it?

Data Access Layer

And this is where you write your data to the SharePoint, and where you read it from there. You don’t do any calculations here (like calculation of the average rating), you simply read and write your data. It is more than enough work for this piece of code.

And you will want to have more than one Data Access Layer implementation in your solution. You will at least want to have a mock implementation, so you can make some isolated tests, without bothering about SharePoint. Or, from the example above, you might want to implement an alternative, SQL Server Data Access Layer. All this can happen. So, this is why you need an interface. Your interface is basically telling what the Data Access Layer has to do, and the different implementations of this interface (SharePoint, SQL, Mock…) will do that. Since this interface is closely related to our business entities, it is stored in the Business Layer, but all of the different Data Access Layer implementations will implement that interface. It might seem odd at first, but it is actually quite handy.

There is another challenge with the SharePoint implementation of the Data Access Layer. It needs to be aware of the context. Well, you might think, but we know the context from the front end – SharePoint UI elements? Yes, we do, but we have the Business Layer in between, and it has no idea about the SharePoint context. Why should it? It shouldn’t even know, where are we storing the data that it is manipulating. And, if you think about it, our WP7 and HTML clients will also not be aware of the context. These are the challenges we will deal with in the following articles.

Data layer

Data layer is pure SharePoint Server, SQL Server, or whatever we want it to be. In the case of SharePoint, we need to configure it, to create lists and libraries, create workflows, change different settings.

Infrastructure Layer

This is where we do our common stuff. Logging, application configuration, exception handling, dealing with localization (a huge issue in SharePoint) and similar stuff. Where are we going to log? ULS is the natural answer for the SharePoint, but what if we want to switch the logging to, say, Event Log, or to the local text file? Do we need to refactor our solution to change that stuff in all pieces of code where we have used the logging? Do we have different logging implementations in the front end and business layer (front end might not be SharePoint-aware)? And how do we configure that logging and the application in general?

All those questions will be dealt with in the infrastructure layer – I can already tell you that it will contain a number of interfaces, and a number of the implementations of those interfaces. And that a huge portion of this series of articles will be devoted to the infrastructure layer.

Service Layer

We need to expose our business logic to the outer world – we might have some quite different client implementations. Some people are still using iPhones. Scary, I know, but that’s the fact. And different clients can have different ways of communication. No problem, we can cover them all – WCF, REST, even the good ol’ ASMX is not quite dead yet (and it is aware of the SharePoint Context). This stuff will be our interface to the world.  Whatever might be out there.

UI Layer

This is all UI, which is not the SharePoint UI. And as we have said – it can be a lot of things. Silverlight application, different .NET managed clients, web stuff, interfaces to the other applications, whatever you might think of. Very often you will not even control it – there will be other people and applications who will want to connect to you. It’s all UI for you.

Wait, Silverlight? And managed .NET applications? Don’t we have the SCOM (SharePoint Client Object Model) now? Aren’t we reinventing a wheel with this? No, we are not reinventing a wheel. Or do you want to develop the session-rating logic again in your Silverlight client? And when rating logic changes, you need to change it in two different pieces of code? We don’t want that.

Is the CSOM obscure then? Useless? Not at all. CSOM is a great thing, if you have a LOB application which needs to exchange the data with SharePoint. Or, to use SharePoint’s collaboration features – document storage, collaboration, versioning… This is where the CSOM is your (very) good friend. When your business logic stays in the external LOB application, and when you just need a way to persist the data in the SharePoint, this is the playground for CSOM. But you shouldn’t implement the business logic with CSOM, from the numerous reasons, which were all stated above at least once.

But it is enough for now. In the next article, I will describe our Conference Organization solution, it’s parts, and finally start coding. Until then, cheers.

(Ref: http://blog.sharedove.com/adisjugo/index.php/2011/09/03/sharepoint-architecture-what-are-we-talking-about-here)