اشتراک‌ها
نرم افزار نمونه سازی رابط کاربری Pencil
بزارید مطلب رو خیلی ساده بیان کنیم، فرض کنید که یک سفارش طراحی و برنامه نویسی یک نرم افزار به شما داده شده؛ حالا بعد از بستن قرارداد چیکار میکنید؟ آیا به سرعت بدون اینکه مشتری تصوری از برنامه ای که قراره به دستش برسه داشته باشه کار رو شروع می‌کنید؟! خب البته مسلما بهتره که مشتری قبل از طراحی کامل نرم افزار، نمایی از بخش‌های مختلف نرم افزار رو ببینه؛ مشتری با دیدن این بخش‌ها میتونه نیازهایی رو که داره بهتر به شما منتقل کنه.
برای ساخت نمونه‌های رابط کاربری (GUI Prototyping) راه‌ها و نرم افزار‌های مختلفی وجود داره. نرم افزار Pencil یکی از اون راه‌ها است؛ که تونسته با مجتمع سازی یک محیط خوش دست و کارا ساخت نمونه‌های رابط کاربری رو لذت بخش‌تر از قبل بکنه. توسط این نرم افزار میشه نمونه‌های رابط کاربری رو برای نرم افزارهای سیستمی، سایت‌ها و نرم افزار‌های موبایل ایجاد کرد. این نرم افزار رایگان به دو صورت به کاربران ارائه شده: 1- به صورت یک افزونه برای مرورگر محبوب فایرفاکس که آخرین نسخه اون حجمی معادل 5 مگابایت داره. 2- به صورت یک نرم افزار مستقل که فارغ از مرورگر میتونه اجرا بشه البته در این حالت حجمی حدود 22 مگابایت رو به خودش اختصاص داده.

تصویری از محیط برنامه

Pencil


تصویر یه نمونه رابط کاربری ساخته شده توسط این برنامه (خودم ساختمه اش ها!)

Website GUI Prototyping

نرم افزار نمونه سازی رابط کاربری Pencil
نظرات مطالب
هزینه استفاده از دات نت فریم ورک چقدر است؟
سلام مجدد، تازگی‌ها به ذهنم خطور کرده بود که حساب کتاب کنم ببینم در یک شرکت ۲۰ نفره نرم افزاری ایرانی اگر نخواهیم خیلی سخت بگیریم چقدر باید هزینه مجوز کنیم و آیا این هزینه نسبت به بقیه هزینه‌های یک شرکت چیز زیادی می‌شود یا نه. و به این ترتیب بتوان کمی دوستان را ترغیب کرد به رعایت حق تالیف. جالب بود که شما بخش زیادی از این موضوع رو پوشش دادید.

یک نکته در مورد مونو. من چند وقت پیش خیلی دنبال این موضوع بودم که آیا ما ویندوز/ویژوال استودیو کارها می‌تونیم به لینوکس/مونو مهاجرت کنیم و چیز زیادی رو از دست ندیم؟ و دست آخر به این نتیجه رسیدم که اقلاً در مورد ASP.NET مقداری کمبود و کاستی وجود دارد. البته هنوز بررسی‌ها و آزمایشاتم تمام نشده. به اینجا نگاه کنید: http://programmers.stackexchange.com/questions/96154/can-i-use-linux-mono-instead-of-windows-visual-studio-without-any-problem
نظرات مطالب
هزینه استفاده از دات نت فریم ورک چقدر است؟
سلام مجدد، تازگی‌ها به ذهنم خطور کرده بود که حساب کتاب کنم ببینم در یک شرکت ۲۰ نفره نرم افزاری ایرانی اگر نخواهیم خیلی سخت بگیریم چقدر باید هزینه مجوز کنیم و آیا این هزینه نسبت به بقیه هزینه‌های یک شرکت چیز زیادی می‌شود یا نه. و به این ترتیب بتوان کمی دوستان را ترغیب کرد به رعایت حق تالیف. جالب بود که شما بخش زیادی از این موضوع رو پوشش دادید.

یک نکته در مورد مونو. من چند وقت پیش خیلی دنبال این موضوع بودم که آیا ما ویندوز/ویژوال استودیو کارها می‌تونیم به لینوکس/مونو مهاجرت کنیم و چیز زیادی رو از دست ندیم؟ و دست آخر به این نتیجه رسیدم که اقلاً در مورد ASP.NET مقداری کمبود و کاستی وجود دارد. البته هنوز بررسی‌ها و آزمایشاتم تمام نشده. به اینجا نگاه کنید: http://programmers.stackexchange.com/questions/96154/can-i-use-linux-mono-instead-of-windows-visual-studio-without-any-problem
مطالب
صفحه کلید مجازی برای ورود اطلاعات
همانگونه که اطلاع دارید یکی از روش‌های سرقت اطلاعات استفاده از نرم افزارهای جاسوس صفحه کلید (Key Logger) است، البته ثبت کلید‌های فشرده شده می‌تواند توسط سخت افزارهایی که سر راه سوکت صفحه کلید و کیس قرار می‌گیره، انجام بشه. در صورتی که چنین سخت افزاری (مخصوصا در کافی نت‌ها) روی کامپیوتر کاربر نصب باشه، یا توسط ویروس و بدافزارها اینگونه نرم‌افزارهایی روی سیستم کاربر قرار بگیره هر کلیدی که توسط کاربر روی صفحه کلید فشرده میشه توسط اینها ثبت شده و در موقع مناسب برای فرد سازنده به طریقی (ایمیل یا ارتباط از طریق برنامه‌های مبتنی بر سوکت) حتی بسیاری از این برنامه‌ها پا را فراتر گذاشته و عنوان پنجره ای که کلیدها در آن فشرده شده نیز ثبت می‌شود (توسط توابع API ویندوز- البته اگر دوستان مایل باشن و از نظر مدیریت سایت ایرادی نداشته باشه، نحوه طراحی این نوع برنامه‌های جاسوس سخت افزار، صفحه کلید، یا ماوس آموزش می‌دم توی همین سایت)، حال برای امنیت برنامه‌های تحت وب یا ویندوز چگونه می‌توان در زمان ورود اطلاعات حساس مانند کلمه عبور یا شماره کارت اعتباری این امنیت را برای کاربر ایجاد کرد که داده‌هایش توسط این سخت افزارها یا بدافزار‌ها جایی ثبت نشود؟
بله، حدس شما درست است استفاده از صفحه کلیدهای مجازی میشه گفت یکی از بهترین راه‌های ممکن هست، چون در این روش‌ها کلید به صورت سخت افزاری فشرده نمی‌شود (کلید فشرده شده به صف پیام‌های ویندوز نمی‌رود) در نتیجه نرم افزار‌ها یا سخت افزارهای جاسوس نمی‌توانند این اطلاعات را ثبت کنند. و کاربر با خیال راحت می‌تواند داده‌های خود را وارد نمایند (تاکید می‌کنم این روش فقط جلو این نرم افزارها یا سخت افزارها را می‌گیرد و تضمینی برای اینکه در زمان ارسال داده‌های شما لو نرود ندارد).
خوب حال چه باید کرد؟
یک راه می‌تواند پیاده‌سازی صفحه کلید مجازی با کدهای طرف کلاینت مانند جاوا اسکریپت و وی‌بی اسکریپت است، اما گروهی پلاگینی را توسعه داده‌اند که با چند خط کدنویسی ساده به راحتی می‌توانید یک صفحه کلید مجازی چندزبانه (با هر زبانی که دلتون می‌خواد) داشته باشید و از اون در برنامه‌های خودتون استفاده کنید.

نحوه‌ی نصب:
ایتدا فایل‌های مورد نیاز را از سایت سازنده که شامل فایل جاوا اسکریپت ، فایل استایل و یک تصویر (آخرین نسخه) یا از این آدرس به صورت کامل (در حال حاضر نسخه 1.49) دریافت کرده، پس از دریافت فایل‌ها آنها را در هاست خود بارگزاری (آپلود) نمائید. سپس کدهای زیر را در صفحه‌ای که می‌خواهید صفحه کلید نمایش یابد در بین تگ <head> ... و <head/> قرار دهید.
<script type="text/javascript" src="keyboard.js" charset="UTF-8"></script>
<link rel="stylesheet" type="text/css" href="keyboard.css">
حالا فقط کافی است به inputbox‌ها و یا هر ورودی دیگر خود class=keyboardInput بدهید.
مثال:
<input type="text" value="" class="keyboardInput">
در نهایت کد صفحه شما باید اینگونه باشد:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="keyboard.js" charset="UTF-8"></script>
    <link rel="stylesheet" type="text/css" href="keyboard.css"/>
</head>
<body>
    <input type="text" value="" class="keyboardInput"/>
</body>
</html>

با این کار پس از اجرای صفحه مورد نظر خروجی شما مانند تصویر زیر خواهد بود، جهت محدود کردن کلیدها و عملیات دلخواه و سفارشی سازی با پارامترهای دلخواه می‌تواند از دموهای موجود در سایت سازنده بهره بگیرید.

موفق وموید باشید.
بازخوردهای پروژه‌ها
نمونه برنامه نوشته شده با MVC
با تشکر از سری آموزشی بی نظیر MVC
بنده این سری آموزشی را کامل دنبال کرده و از آموزش روان مختصر و کاربردیتان بسیار لذت بردم.
اما خلایی که در این میان وجود دارد یک پروژه آموزشی نوشته شده با MVC که تمرکز آن بر روی رعایت الگو‌های رایج نرم افزار (مثل DI , Repository) معماری چند لایه و کد هایی ترو تمیز و refactor  شده و نحوه استفاده درست ViewModel‌ها و به طور خلاصه رعایت حداقل بخش مهم چک لیست تهیه برنامه‌های MVC  باشد
وقتی نظرات را در ذیل مطالبی مثل این  و این   می‌خونم احساس می‌کنم از نیاز به وجود همچین نمونه برنامه ای برای روشن شدن مطلب احساس می‌شود 
برای شروع هر پروژه نرم افزاری ابتدا نیاز به چهارچوب و یک سیم کشی اولیه است که بنده نیاز به یادگیری آن دارم پروژه هایی مثل این را هم دیده ام که باز هم به طور کامل نیاز من را برطرف نکرد
با تشکر
نظرات نظرسنجی‌ها
با توجه به امکانات جدید Razor Components، آیا در آینده از SPA frameworks استفاده میکنید؟
این فناوری مانند این هست که عنوان کنید از جاوا اسکریپت خسته شدم و الان می‌خوام با سیلورلایت کار کنم. نه پختگی فریم ورک‌های تک صفحه‌ای رو داره، نه معلوم هست که در آینده پشتیبانی میشه. دست آخر باز هم برای یکسری از کارهای پیشرفته مجبور میشید به ترکیبی از جی‌کوئری و کدهای فعلی برسید. دقیقا همون مشکلی که با ام وی سی وجود داره. برای ساخت یک فرم ساده فراتر از عالی هست. اما زمانیکه مجبور شدی کمی رابط کاربری پیچیده‌تری رو طراحی کنی، می‌رسی به یک ترکیب نافرم جاوا اسکریپت و کدهای Razor در یک صفحه که تمام شعار آزمون پذیری سیستم رو زیر سؤال می‌بره. فریم ورک‌های تک صفحه‌ای به لطف تایپ‌اسکریپت این مشکل رو حل کردن و می‌تونی یک لایه رابط کاربری بسیار پیچیده و همچنین قابل نگهداری و آزمایش رو توسعه بدی. 
نظرات مطالب
تغییر استراتژی ساخت مدل در EF5 و رفع مشکل WCF Ria
منظور از اختراع نمی‌دونم چیه؟ ولی DBContext دارای قابلیت  های اضافی بسیاری نسبت به ObjectContext هست . مثل تابع Find و ..... 
بله حرف شما متین هست و DbContext از ObjectContext ارث می‌بره.
شاد و پیروز باشید
اشتراک‌ها
مجموعه مطالبی در مورد scalability

شرکت‌های بزرگ چطور نرم افزارهای خود را تولید میکنند؟ چگونه با چالش‌هایی مانند Scale, performance, availability مواجه می‌شوند؟

The Patterns of Scalable, Reliable, and Performant Large-Scale Systems  



مجموعه مطالبی در مورد scalability